<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="EPLabPrescriptionLine-9b7a3d71-6d8c-4cb7-b750-84c0d7aa709f" />
  <url value="https://www.esante.lu/fhir-spec/StructureDefinition/EPLabPrescriptionLine" />
  <version value="1.2.0" />
  <name value="EPLabPrescriptionLine" />
  <status value="active" />
  <fhirVersion value="4.0.1" />
  <mapping>
    <identity value="workflow" />
    <uri value="http://hl7.org/fhir/workflow" />
    <name value="Workflow Pattern" />
  </mapping>
  <mapping>
    <identity value="v2" />
    <uri value="http://hl7.org/v2" />
    <name value="HL7 v2 Mapping" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <mapping>
    <identity value="w5" />
    <uri value="http://hl7.org/fhir/fivews" />
    <name value="FiveWs Pattern Mapping" />
  </mapping>
  <mapping>
    <identity value="quick" />
    <uri value="http://siframework.org/cqf" />
    <name value="Quality Improvement and Clinical Knowledge (QUICK)" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="ServiceRequest" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/ServiceRequest" />
  <derivation value="constraint" />
  <differential>
    <element id="ServiceRequest.id">
      <path value="ServiceRequest.id" />
      <definition value="The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.&#xD;&#xA;Is assigned by the server, do not provide a value." />
    </element>
    <element id="ServiceRequest.meta">
      <path value="ServiceRequest.meta" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.meta.id">
      <path value="ServiceRequest.meta.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.meta.versionId">
      <path value="ServiceRequest.meta.versionId" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.meta.lastUpdated">
      <path value="ServiceRequest.meta.lastUpdated" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.meta.source">
      <path value="ServiceRequest.meta.source" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.meta.profile">
      <path value="ServiceRequest.meta.profile" />
      <min value="1" />
      <max value="1" />
      <fixedCanonical value="https://www.esante.lu/fhir-spec/StructureDefinition/EPLabPrescriptionLine" />
    </element>
    <element id="ServiceRequest.meta.security">
      <path value="ServiceRequest.meta.security" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.meta.tag">
      <path value="ServiceRequest.meta.tag" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.implicitRules">
      <path value="ServiceRequest.implicitRules" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.language">
      <path value="ServiceRequest.language" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.text">
      <path value="ServiceRequest.text" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.contained">
      <path value="ServiceRequest.contained" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.identifier">
      <path value="ServiceRequest.identifier" />
      <short value="An identifier for the prescription line" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPSimpleIdentifier" />
      </type>
    </element>
    <element id="ServiceRequest.instantiatesCanonical">
      <path value="ServiceRequest.instantiatesCanonical" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.instantiatesUri">
      <path value="ServiceRequest.instantiatesUri" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.basedOn">
      <path value="ServiceRequest.basedOn" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.replaces">
      <path value="ServiceRequest.replaces" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requisition">
      <path value="ServiceRequest.requisition" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.status">
      <path value="ServiceRequest.status" />
      <short value="active | completed" />
      <condition value="val-activeOrCompleted" />
      <constraint>
        <key value="val-activeOrCompleted" />
        <severity value="error" />
        <human value="Only active or completed is allowed" />
        <expression value="($this = 'active') or ($this = 'completed')" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPLabPrescriptionLine" />
      </constraint>
    </element>
    <element id="ServiceRequest.intent">
      <path value="ServiceRequest.intent" />
      <definition value="Constant value" />
      <fixedCode value="order" />
    </element>
    <element id="ServiceRequest.category">
      <path value="ServiceRequest.category" />
      <short value="Type of ServiceRequest" />
      <min value="1" />
      <max value="1" />
      <patternCodeableConcept>
        <coding>
          <system value="https://www.esante.lu/fhir-spec/CodeSystem/EPrescCategories" />
          <code value="LAB_PRESLINE" />
        </coding>
      </patternCodeableConcept>
    </element>
    <element id="ServiceRequest.category.id">
      <path value="ServiceRequest.category.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.category.coding">
      <path value="ServiceRequest.category.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="ServiceRequest.category.coding.id">
      <path value="ServiceRequest.category.coding.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.category.coding.system">
      <path value="ServiceRequest.category.coding.system" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.category.coding.version">
      <path value="ServiceRequest.category.coding.version" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.category.coding.code">
      <path value="ServiceRequest.category.coding.code" />
      <short value="The code" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.category.coding.display">
      <path value="ServiceRequest.category.coding.display" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.category.coding.userSelected">
      <path value="ServiceRequest.category.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.category.text">
      <path value="ServiceRequest.category.text" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.priority">
      <path value="ServiceRequest.priority" />
      <short value="routine | urgent" />
      <min value="1" />
      <condition value="val-priority" />
      <constraint>
        <key value="val-priority" />
        <severity value="error" />
        <human value="Only the priorities routine or urgent are used" />
        <expression value="($this = 'routine') or ($this = 'urgent')" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPLabPrescriptionLine" />
      </constraint>
    </element>
    <element id="ServiceRequest.doNotPerform">
      <path value="ServiceRequest.doNotPerform" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.code">
      <path value="ServiceRequest.code" />
      <short value="The analysis to perform" />
      <min value="1" />
      <type>
        <code value="CodeableConcept" />
        <profile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPCodeableConcept" />
      </type>
      <example>
        <label value="HDL" />
        <valueCodeableConcept>
          <coding>
            <system value="https://www.esante.lu/fhir-spec/CodeSystem/BioPrescCodesSystem" />
            <code value="lu_bio_presc_77" />
          </coding>
        </valueCodeableConcept>
      </example>
      <binding>
        <strength value="example" />
        <description value="The analysis to do" />
        <valueSet value="https://www.esante.lu/fhir-spec/ValueSet/BioPrescCodes" />
      </binding>
    </element>
    <element id="ServiceRequest.code.coding">
      <path value="ServiceRequest.code.coding" />
      <binding>
        <strength value="required" />
        <valueSet value="https://www.esante.lu/fhir-spec/ValueSet/BioPrescCodes" />
      </binding>
    </element>
    <element id="ServiceRequest.orderDetail">
      <path value="ServiceRequest.orderDetail" />
      <short value="Additional order information for the lab" />
      <max value="1" />
    </element>
    <element id="ServiceRequest.orderDetail.coding">
      <path value="ServiceRequest.orderDetail.coding" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.orderDetail.text">
      <path value="ServiceRequest.orderDetail.text" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.quantity[x]">
      <path value="ServiceRequest.quantity[x]" />
      <definition value="Total number of analysis to do" />
      <min value="1" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="ServiceRequest.quantity[x].id">
      <path value="ServiceRequest.quantity[x].id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.quantity[x].value">
      <path value="ServiceRequest.quantity[x].value" />
      <short value="Integer value" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.quantity[x].comparator">
      <path value="ServiceRequest.quantity[x].comparator" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.quantity[x].unit">
      <path value="ServiceRequest.quantity[x].unit" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.quantity[x].system">
      <path value="ServiceRequest.quantity[x].system" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.quantity[x].code">
      <path value="ServiceRequest.quantity[x].code" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.subject">
      <path value="ServiceRequest.subject" />
      <short value="The patient" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPPatient" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="ServiceRequest.subject.id">
      <path value="ServiceRequest.subject.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.subject.reference">
      <path value="ServiceRequest.subject.reference" />
      <short value="Reference to a patient from the Bundle" />
      <min value="1" />
      <example>
        <label value="Example" />
        <valueString value="urn:uuid:43b25517-9ab1-4a3b-96b0-809e7f118c41" />
      </example>
      <condition value="val-uuid" />
      <constraint>
        <key value="val-uuid" />
        <severity value="error" />
        <human value="SHALL be a v4 UUID prefixed by urn:uuid:" />
        <expression value="startsWith('urn:uuid:') and length()=45" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPLabPrescriptionLine" />
      </constraint>
    </element>
    <element id="ServiceRequest.subject.type">
      <path value="ServiceRequest.subject.type" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.subject.identifier">
      <path value="ServiceRequest.subject.identifier" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.subject.display">
      <path value="ServiceRequest.subject.display" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.encounter">
      <path value="ServiceRequest.encounter" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.occurrence[x]">
      <path value="ServiceRequest.occurrence[x]" />
      <short value="The posology in free text" />
      <definition value="If needed, the posoology (which result in a total amount of repetition of the analysis written in quantity)." />
      <type>
        <code value="Timing" />
      </type>
    </element>
    <element id="ServiceRequest.occurrence[x].id">
      <path value="ServiceRequest.occurrence[x].id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.occurrence[x].event">
      <path value="ServiceRequest.occurrence[x].event" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.occurrence[x].repeat">
      <path value="ServiceRequest.occurrence[x].repeat" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.occurrence[x].code">
      <path value="ServiceRequest.occurrence[x].code" />
      <definition value="Posology infree text" />
      <min value="1" />
    </element>
    <element id="ServiceRequest.occurrence[x].code.id">
      <path value="ServiceRequest.occurrence[x].code.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.occurrence[x].code.coding">
      <path value="ServiceRequest.occurrence[x].code.coding" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.occurrence[x].code.text">
      <path value="ServiceRequest.occurrence[x].code.text" />
      <short value="The posology" />
      <definition value="The posology" />
      <min value="1" />
      <example>
        <label value="Example" />
        <valueString value="Jour 1 matin et soir, puis 2 jours après midi et soir" />
      </example>
    </element>
    <element id="ServiceRequest.asNeeded[x]">
      <path value="ServiceRequest.asNeeded[x]" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.authoredOn">
      <path value="ServiceRequest.authoredOn" />
      <short value="In the ePrescription context, same date as the prescription date" />
      <min value="1" />
      <condition value="val-dateDayPrecision" />
      <constraint>
        <key value="val-dateDayPrecision" />
        <severity value="error" />
        <human value="Shall be precise to the day" />
        <expression value="toString().length()=10" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPLabPrescriptionLine" />
      </constraint>
    </element>
    <element id="ServiceRequest.requester">
      <path value="ServiceRequest.requester" />
      <short value="The prescriber" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPPractitioner" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="ServiceRequest.requester.id">
      <path value="ServiceRequest.requester.id" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requester.reference">
      <path value="ServiceRequest.requester.reference" />
      <short value="A reference to the health professional" />
      <min value="1" />
      <example>
        <label value="Example" />
        <valueString value="urn:uuid:759d46a4-b0a2-429e-a426-ce7be8e0736e" />
      </example>
      <condition value="val-uuid" />
      <constraint>
        <key value="val-uuid" />
        <severity value="error" />
        <human value="SHALL be a v4 UUID prefixed by urn:uuid:" />
        <expression value="startsWith('urn:uuid:') and length()=45" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPLabPrescriptionLine" />
      </constraint>
    </element>
    <element id="ServiceRequest.requester.type">
      <path value="ServiceRequest.requester.type" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requester.identifier">
      <path value="ServiceRequest.requester.identifier" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.requester.display">
      <path value="ServiceRequest.requester.display" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performerType">
      <path value="ServiceRequest.performerType" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.performer">
      <path value="ServiceRequest.performer" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.locationCode">
      <path value="ServiceRequest.locationCode" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.locationReference">
      <path value="ServiceRequest.locationReference" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.reasonCode">
      <path value="ServiceRequest.reasonCode" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.reasonReference">
      <path value="ServiceRequest.reasonReference" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.insurance">
      <path value="ServiceRequest.insurance" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.supportingInfo">
      <path value="ServiceRequest.supportingInfo" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.specimen">
      <path value="ServiceRequest.specimen" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.bodySite">
      <path value="ServiceRequest.bodySite" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.note">
      <path value="ServiceRequest.note" />
      <max value="0" />
    </element>
    <element id="ServiceRequest.relevantHistory">
      <path value="ServiceRequest.relevantHistory" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>