<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="biobankcy-sd-medicationsummary" />
  <url value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-medicationsummary" />
  <name value="BIOBANKCYSDMedicationSummary" />
  <title value="Profile: Medication Summary (biobank.cy)" />
  <status value="draft" />
  <publisher value="biobank.cy" />
  <contact>
    <name value="Molecular Medicine Research Center (MMRC)" />
    <telecom>
      <system value="email" />
      <value value="biobank@ucy.ac.cy" />
      <use value="work" />
    </telecom>
  </contact>
  <description value="Represents a statement on historic or current prescription of medications for a a donor (research subject) of the biobank.cy. These medication statements can be self-reported by the patient or reported by a medical doctor or nurse." />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="MedicationStatement" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/MedicationStatement" />
  <derivation value="constraint" />
  <differential>
    <element id="MedicationStatement.status">
      <path value="MedicationStatement.status" />
      <comment value="For medication statements reported to biobank.cy officers (e.g. nurses) use status = &quot;unknown&quot;. &#xD;&#xA;For medication statements drawn from the national EHR use the status reported in the EHR." />
    </element>
    <element id="MedicationStatement.medication[x]">
      <path value="MedicationStatement.medication[x]" />
      <comment value="Need to update the value set with the biobank.cy reported medication list (in a new slice in Coding)." />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.medication[x].coding">
      <path value="MedicationStatement.medication[x].coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="MedicationStatement.medication[x].coding:absentOrUnknownMedication">
      <path value="MedicationStatement.medication[x].coding" />
      <sliceName value="absentOrUnknownMedication" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <description value="eHDSI Absent or Unknown Medication" />
        <valueSet value="http://ig.ehealth4u.eu/fhir/ValueSet/cyehr-vs-ehdsiabsentorunknownallergy" />
      </binding>
    </element>
    <element id="MedicationStatement.medication[x].coding:absentOrUnknownMedication.system">
      <path value="MedicationStatement.medication[x].coding.system" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.medication[x].coding:absentOrUnknownMedication.code">
      <path value="MedicationStatement.medication[x].coding.code" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.medication[x].coding:absentOrUnknownMedication.display">
      <path value="MedicationStatement.medication[x].coding.display" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.subject">
      <path value="MedicationStatement.subject" />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <targetProfile value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-donor" />
        <targetProfile value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-citizen" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.subject.reference">
      <path value="MedicationStatement.subject.reference" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.context">
      <path value="MedicationStatement.context" />
      <definition value="The encounter or episode of care that establishes the context for this MedicationStatement. The encounter shall be provided if the medication statement is created in the cotnext of a visit of a donor (or patient) in the biobnak.cy. Can be omitted when the profile is used to describe a medication summary pulled by the national EHR or other eHealth system." />
      <comment value="Can be omitted when the profile is used to describe a medication summary pulled by the national EHR or other eHealth system." />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Encounter" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/EpisodeOfCare" />
        <targetProfile value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-visit" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.context.reference">
      <path value="MedicationStatement.context.reference" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.effective[x]">
      <path value="MedicationStatement.effective[x]" />
      <definition value="The interval of time during which it is being asserted that the patient is/was/will be taking the medication ." />
      <comment value="Use period to describe the interval of time during which the patient is/was/will be taking the medication. In case of pulling this info from the national EHR in a dateTime format, assign the dateTime to effectivePeriod.start and calculate the effectivePeriod.end by adding the national EHR's MedicationStatement.dosage.timing.repeat.bounds[x]:boundsDuration to the start date." />
      <type>
        <code value="Period" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.effective[x].start">
      <path value="MedicationStatement.effective[x].start" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dateAsserted">
      <path value="MedicationStatement.dateAsserted" />
      <comment value="Report when this data resource was recorded in the data warehouse of the biobank.cy." />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.informationSource">
      <path value="MedicationStatement.informationSource" />
      <comment value="(1) If the medication statement is created based on Patient's input, reference to Patient (citizen or donor). (2) If the medication statement is pulled by the national EHR reference to Organization (NeHA)." />
      <type>
        <code value="Reference" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Patient" />
        <targetProfile value="http://hl7.org/fhir/StructureDefinition/Organization" />
        <targetProfile value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-citizen" />
        <targetProfile value="http://ig.biobank.cy/fhir/StructureDefinition/biobankcy-sd-donor" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.informationSource.reference">
      <path value="MedicationStatement.informationSource.reference" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage">
      <path value="MedicationStatement.dosage" />
      <max value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing">
      <path value="MedicationStatement.dosage.timing" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsDuration">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x]" />
      <sliceName value="boundsDuration" />
      <type>
        <code value="Duration" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsDuration.value">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].value" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsDuration.unit">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].unit" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsDuration.system">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].system" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.bounds[x]:boundsDuration.code">
      <path value="MedicationStatement.dosage.timing.repeat.bounds[x].code" />
      <min value="1" />
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.frequency">
      <path value="MedicationStatement.dosage.timing.repeat.frequency" />
      <comment value="How many times in the selected period/periodUnit the medication is/was/will be administrated. (e.g. frequency = 2 per period = 1 and periodUnit =&quot;d&quot;  means 2 times per day in the specified boundsPeriod or boundsDuration)." />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.period">
      <path value="MedicationStatement.dosage.timing.repeat.period" />
      <comment value="How many times in the selected period/periodUnit the medication is/was/will be administrated. (e.g. frequency = 2 per period = 1 and periodUnit =&quot;d&quot;  means 2 times per day in the specified boundsPeriod or boundsDuration)." />
    </element>
    <element id="MedicationStatement.dosage.timing.repeat.periodUnit">
      <path value="MedicationStatement.dosage.timing.repeat.periodUnit" />
      <comment value="How many times in the selected period/periodUnit the medication is/was/will be administrated. (e.g. frequency = 2 per period = 1 and periodUnit =&quot;d&quot;  means 2 times per day in the specified boundsPeriod or boundsDuration)." />
    </element>
    <element id="MedicationStatement.dosage.route">
      <path value="MedicationStatement.dosage.route" />
      <type>
        <code value="CodeableConcept" />
        <profile value="http://hl7.org/fhir/uv/ips/StructureDefinition/CodeableConcept-uv-ips" />
      </type>
      <mustSupport value="true" />
    </element>
    <element id="MedicationStatement.dosage.route.coding">
      <path value="MedicationStatement.dosage.route.coding" />
      <slicing>
        <discriminator>
          <type value="pattern" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage.route.coding.system">
      <path value="MedicationStatement.dosage.route.coding.system" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage.route.coding.code">
      <path value="MedicationStatement.dosage.route.coding.code" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage.route.coding.display">
      <path value="MedicationStatement.dosage.route.coding.display" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage.route.coding:edqmRouteOfAdministration">
      <path value="MedicationStatement.dosage.route.coding" />
      <sliceName value="edqmRouteOfAdministration" />
      <mustSupport value="true" />
      <binding>
        <strength value="required" />
        <valueSet value="http://ig.ehealth4u.eu/fhir/ValueSet/cyehr-vs-ehdsirouteofadministration" />
      </binding>
    </element>
    <element id="MedicationStatement.dosage.route.coding:edqmRouteOfAdministration.system">
      <path value="MedicationStatement.dosage.route.coding.system" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage.route.coding:edqmRouteOfAdministration.code">
      <path value="MedicationStatement.dosage.route.coding.code" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage.route.coding:edqmRouteOfAdministration.display">
      <path value="MedicationStatement.dosage.route.coding.display" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x]" />
      <slicing>
        <discriminator>
          <type value="type" />
          <path value="$this" />
        </discriminator>
        <rules value="open" />
      </slicing>
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseQuantity">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x]" />
      <sliceName value="doseQuantity" />
      <type>
        <code value="Quantity" />
      </type>
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseQuantity.value">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].value" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseQuantity.unit">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].unit" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseQuantity.system">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].system" />
      <min value="1" />
    </element>
    <element id="MedicationStatement.dosage.doseAndRate.dose[x]:doseQuantity.code">
      <path value="MedicationStatement.dosage.doseAndRate.dose[x].code" />
      <min value="1" />
      <binding>
        <strength value="extensible" />
        <description value="UCUM value set with units" />
        <valueSet value="http://ig.ehealth4u.eu/fhir/ValueSet/cyehr-vs-ehdsiunit" />
      </binding>
    </element>
  </differential>
</StructureDefinition>