<StructureDefinition xmlns="http://hl7.org/fhir">
  <url value="https://dedalus.cms.sermas.hgugm.org/fhir/StructureDefinition/CMS_Flag" />
  <name value="CMS_Flag" />
  <status value="draft" />
  <fhirVersion value="4.0.1" />
  <kind value="resource" />
  <abstract value="false" />
  <type value="Flag" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Flag" />
  <derivation value="constraint" />
  <differential>
    <element id="Flag.identifier.system">
      <path value="Flag.identifier.system" />
      <short value="Default system in CMS" />
      <definition value="http://apiframework..eu/id" />
      <min value="1" />
    </element>
    <element id="Flag.identifier.value">
      <path value="Flag.identifier.value" />
      <short value="Value of the identifier depending on the HL7 message coming from the external system" />
      <comment value="PRB.4 in case of PPR&#xD;&#xA;OBX.21 in case of ADT and OBX.2='ST' &amp; OBX.3.3 = 'ALARM'" />
      <min value="1" />
    </element>
    <element id="Flag.status">
      <path value="Flag.status" />
      <comment value="PPR: &#xD;&#xA;IF MSH-9.2 = 'PC1' and (PRB-1 = 'AD' OR PRB-1 is null) then 'active'&#xD;&#xA;ELSE IF MSH-9.2 = 'PC3' and (PRB-1 = 'DE' OR PRB-1 is null) then 'inactive' &#xD;&#xA;END&#xD;&#xA;ADT: &#xD;&#xA;IF OBX-2 = 'ST' and OBX-3.3 = 'ALARM' then&#xD;&#xA;   IF OBX-11 = 'F' then 'active'&#xD;&#xA;   ELSE IF OBX-11 = 'D' then 'inactive'&#xD;&#xA;   END&#xD;&#xA;END" />
    </element>
    <element id="Flag.category">
      <path value="Flag.category" />
      <min value="2" />
      <max value="2" />
    </element>
    <element id="Flag.category.coding.system">
      <path value="Flag.category.coding.system" />
      <definition value="http://hl7.org/fhir/ValueSet/flag-category" />
      <min value="1" />
      <fixedUri value="http://hl7.org/fhir/ValueSet/flag-category" />
    </element>
    <element id="Flag.category.coding.code">
      <path value="Flag.category.coding.code" />
      <definition value="PPR: destination_id = MappingConfig(PRB-3.1, FlagCategoryCode0)&#xD;&#xA;ADT: IF OBX-2 = 'ST' and OBX-3.3 = 'ALARM' then destination_id = MappingConfig(OBX-21, FlagCategoryCode0)" />
      <min value="1" />
      <fixedCode value="PRB-3" />
    </element>
    <element id="Flag.category.coding.display">
      <path value="Flag.category.coding.display" />
      <comment value="PPR: destination_desc = MappingConfig(PRB-3.1, FlagCategoryCode0)&#xD;&#xA;ADT: IF OBX-2 = 'ST' and OBX-3.3 = 'ALARM' then destination_desc = MappingConfig(OBX-21, FlagCategoryCode0)" />
      <min value="1" />
      <fixedString value="PRB-3" />
    </element>
    <element id="Flag.category.text">
      <path value="Flag.category.text" />
      <requirements value="PRB-3" />
    </element>
    <element id="Flag.code.coding">
      <path value="Flag.code.coding" />
      <min value="1" />
      <max value="1" />
    </element>
    <element id="Flag.code.coding.system">
      <path value="Flag.code.coding.system" />
      <min value="1" />
      <fixedUri value="http://terminology.hcis.eu/HCIS/alerta" />
    </element>
    <element id="Flag.code.coding.code">
      <path value="Flag.code.coding.code" />
      <comment value="PPR: PRB-4&#xD;&#xA;ADT: IF OBX-2 = 'ST' and OBX-3.3 = 'ALARM' then OBX-21" />
      <min value="1" />
    </element>
    <element id="Flag.code.coding.display">
      <path value="Flag.code.coding.display" />
      <comment value="PPR: No problem display available in this type of messages. Will remain empty untill ADT is received.&#xD;&#xA;ADT: IF OBX-2 = 'ST' and OBX-3.3 = 'ALARM' then OBX-5" />
      <min value="1" />
    </element>
    <element id="Flag.subject.reference">
      <path value="Flag.subject.reference" />
      <min value="1" />
      <fixedString value="Patient/HASH[PID-3.1]" />
    </element>
    <element id="Flag.period.start">
      <path value="Flag.period.start" />
      <comment value="PPR:&#xD;&#xA;IF MSH-9.2 = 'PC1' and PRB-1 = 'AD' then&#xD;&#xA;   IF PRB-7 is not null then PRB-7&#xD;&#xA;   ELSE IF PRB-2 is not null then PRB-2&#xD;&#xA;   ELSE MSH-7&#xD;&#xA;   END&#xD;&#xA;END&#xD;&#xA;ADT:&#xD;&#xA;IF OBX-2 = 'ST' and OBX-3.3 = 'ALARM' then OBX-14" />
      <min value="1" />
    </element>
    <element id="Flag.period.end">
      <path value="Flag.period.end" />
      <comment value="PPR: &#xD;&#xA;IF MSH-9.2 = 'PC3' and PRB-1 = 'DE' then&#xD;&#xA;   IF PRB-9 is not null then PRB-9&#xD;&#xA;   ELSE IF PRB-2 is not null then PRB-2&#xD;&#xA;   ELSE MSH-7&#xD;&#xA;   END&#xD;&#xA;END&#xD;&#xA;ADT:&#xD;&#xA;IF OBX-2 = 'ST' and OBX-3.3 = 'ALARM' then OBX-12&#xD;&#xA;&#xD;&#xA;Format YYYY-MM-DDTHH:mm:ssZ" />
      <min value="1" />
    </element>
  </differential>
</StructureDefinition>