<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="EPCommunicationRequest-0534125c-ab0a-4688-b64c-b2520cc615cd" />
  <url value="https://www.esante.lu/fhir-spec/StructureDefinition/EPCommunicationRequest" />
  <version value="1.2.0" />
  <name value="EPCommunicationRequest" />
  <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="w5" />
    <uri value="http://hl7.org/fhir/fivews" />
    <name value="FiveWs Pattern Mapping" />
  </mapping>
  <mapping>
    <identity value="rim" />
    <uri value="http://hl7.org/v3" />
    <name value="RIM Mapping" />
  </mapping>
  <kind value="resource" />
  <abstract value="false" />
  <type value="CommunicationRequest" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/CommunicationRequest" />
  <derivation value="constraint" />
  <differential>
    <element id="CommunicationRequest">
      <path value="CommunicationRequest" />
      <short value="Asking to send the lab result to another health professional or the patient" />
      <condition value="val-recipientOnePatient" />
      <condition value="val-recipientNotPrescriber" />
      <constraint>
        <key value="val-recipientOnePatient" />
        <severity value="error" />
        <human value="SHALL contains max. 1 patient" />
        <expression value="recipient.reference.where(startsWith('Patient')).count()&lt;=1" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPCommunicationRequest" />
      </constraint>
      <constraint>
        <key value="val-recipientNotPrescriber" />
        <severity value="error" />
        <human value="The prescriber SHALL NOT be put in the CommunicationRequest recipients" />
        <expression value="requester.reference.subsetOf(recipient.reference)=false" />
        <source value="https://www.esante.lu/fhir-spec/StructureDefinition/EPCommunicationRequest" />
      </constraint>
    </element>
    <element id="CommunicationRequest.meta">
      <path value="CommunicationRequest.meta" />
      <min value="1" />
    </element>
    <element id="CommunicationRequest.meta.id">
      <path value="CommunicationRequest.meta.id" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.meta.versionId">
      <path value="CommunicationRequest.meta.versionId" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.meta.lastUpdated">
      <path value="CommunicationRequest.meta.lastUpdated" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.meta.source">
      <path value="CommunicationRequest.meta.source" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.meta.profile">
      <path value="CommunicationRequest.meta.profile" />
      <min value="1" />
      <max value="1" />
      <fixedCanonical value="https://www.esante.lu/fhir-spec/StructureDefinition/EPCommunicationRequest" />
    </element>
    <element id="CommunicationRequest.meta.security">
      <path value="CommunicationRequest.meta.security" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.meta.tag">
      <path value="CommunicationRequest.meta.tag" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.implicitRules">
      <path value="CommunicationRequest.implicitRules" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.language">
      <path value="CommunicationRequest.language" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.text">
      <path value="CommunicationRequest.text" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.contained">
      <path value="CommunicationRequest.contained" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.identifier">
      <path value="CommunicationRequest.identifier" />
      <short value="An identifier for the communication request" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Identifier" />
        <profile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPSimpleIdentifier" />
      </type>
    </element>
    <element id="CommunicationRequest.basedOn">
      <path value="CommunicationRequest.basedOn" />
      <short value="The prescription" />
      <min value="1" />
      <max value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPLabPrescription" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="CommunicationRequest.basedOn.id">
      <path value="CommunicationRequest.basedOn.id" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.basedOn.reference">
      <path value="CommunicationRequest.basedOn.reference" />
      <short value="Reference to the CarePlan by its fullURL" />
      <min value="1" />
      <example>
        <label value="Example" />
        <valueString value="urn:uuid:d00069b7-1fc8-4397-bc7c-c9571319d890" />
      </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/EPCommunicationRequest" />
      </constraint>
    </element>
    <element id="CommunicationRequest.basedOn.type">
      <path value="CommunicationRequest.basedOn.type" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.basedOn.identifier">
      <path value="CommunicationRequest.basedOn.identifier" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.basedOn.display">
      <path value="CommunicationRequest.basedOn.display" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.replaces">
      <path value="CommunicationRequest.replaces" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.groupIdentifier">
      <path value="CommunicationRequest.groupIdentifier" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.status">
      <path value="CommunicationRequest.status" />
      <fixedCode value="active" />
    </element>
    <element id="CommunicationRequest.statusReason">
      <path value="CommunicationRequest.statusReason" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.category">
      <path value="CommunicationRequest.category" />
      <definition value="Constant" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="CommunicationRequest.category.id">
      <path value="CommunicationRequest.category.id" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.category.coding">
      <path value="CommunicationRequest.category.coding" />
      <min value="1" />
      <max value="1" />
      <patternCoding>
        <system value="https://www.esante.lu/fhir-spec/CodeSystem/EPrescCategories" />
        <code value="LAB_RESULT" />
      </patternCoding>
    </element>
    <element id="CommunicationRequest.category.coding.id">
      <path value="CommunicationRequest.category.coding.id" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.category.coding.system">
      <path value="CommunicationRequest.category.coding.system" />
      <min value="1" />
    </element>
    <element id="CommunicationRequest.category.coding.version">
      <path value="CommunicationRequest.category.coding.version" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.category.coding.code">
      <path value="CommunicationRequest.category.coding.code" />
      <min value="1" />
    </element>
    <element id="CommunicationRequest.category.coding.display">
      <path value="CommunicationRequest.category.coding.display" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.category.coding.userSelected">
      <path value="CommunicationRequest.category.coding.userSelected" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.category.text">
      <path value="CommunicationRequest.category.text" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.priority">
      <path value="CommunicationRequest.priority" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.doNotPerform">
      <path value="CommunicationRequest.doNotPerform" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.medium">
      <path value="CommunicationRequest.medium" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.subject">
      <path value="CommunicationRequest.subject" />
      <short value="The patient" />
      <min value="1" />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPPatient" />
        <aggregation value="bundled" />
      </type>
    </element>
    <element id="CommunicationRequest.subject.id">
      <path value="CommunicationRequest.subject.id" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.subject.reference">
      <path value="CommunicationRequest.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/EPCommunicationRequest" />
      </constraint>
    </element>
    <element id="CommunicationRequest.subject.type">
      <path value="CommunicationRequest.subject.type" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.subject.identifier">
      <path value="CommunicationRequest.subject.identifier" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.subject.display">
      <path value="CommunicationRequest.subject.display" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.about">
      <path value="CommunicationRequest.about" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.encounter">
      <path value="CommunicationRequest.encounter" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.payload">
      <path value="CommunicationRequest.payload" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.occurrence[x]">
      <path value="CommunicationRequest.occurrence[x]" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.authoredOn">
      <path value="CommunicationRequest.authoredOn" />
      <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/EPCommunicationRequest" />
      </constraint>
    </element>
    <element id="CommunicationRequest.requester">
      <path value="CommunicationRequest.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="CommunicationRequest.requester.id">
      <path value="CommunicationRequest.requester.id" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.requester.reference">
      <path value="CommunicationRequest.requester.reference" />
      <short value="A reference to the prescriber" />
      <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/EPCommunicationRequest" />
      </constraint>
    </element>
    <element id="CommunicationRequest.requester.type">
      <path value="CommunicationRequest.requester.type" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.requester.identifier">
      <path value="CommunicationRequest.requester.identifier" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.requester.display">
      <path value="CommunicationRequest.requester.display" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.recipient">
      <path value="CommunicationRequest.recipient" />
      <short value="A patient or health professional who shall receive a copy of the results" />
      <definition value="A practitioner shall be referenced referenced, and thus provided in the Buldle. The patient shall be referenced as well in the Bundle. The prescriber SHALL NOT be present as he will always receive results anyway. See examples." />
      <type>
        <code value="Reference" />
        <targetProfile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPPatient" />
        <targetProfile value="https://www.esante.lu/fhir-spec/StructureDefinition/EPPractitionerUnk" />
      </type>
    </element>
    <element id="CommunicationRequest.recipient.id">
      <path value="CommunicationRequest.recipient.id" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.recipient.reference">
      <path value="CommunicationRequest.recipient.reference" />
      <min value="1" />
      <example>
        <label value="Example for a patient" />
        <valueString value="urn:uuid:43b25517-9ab1-4a3b-96b0-809e7f118c41" />
      </example>
      <example>
        <label value="Example for another health professional" />
        <valueString value="urn:uuid:9ae67594-b37f-40e5-9373-d3d26537da6e" />
      </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/EPCommunicationRequest" />
      </constraint>
    </element>
    <element id="CommunicationRequest.recipient.type">
      <path value="CommunicationRequest.recipient.type" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.recipient.identifier">
      <path value="CommunicationRequest.recipient.identifier" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.recipient.display">
      <path value="CommunicationRequest.recipient.display" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.sender">
      <path value="CommunicationRequest.sender" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.reasonCode">
      <path value="CommunicationRequest.reasonCode" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.reasonReference">
      <path value="CommunicationRequest.reasonReference" />
      <max value="0" />
    </element>
    <element id="CommunicationRequest.note">
      <path value="CommunicationRequest.note" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>