This is the continuous build for version 1.0.0. This version is based on the current content of https://github.com/WorldHealthOrganization/ddcc and changes regularly.
Draft as of 2024-01-19 |
<StructureMap xmlns="http://hl7.org/fhir">
<id value="DDCCtoEUdcc"/>
<meta>
<versionId value="1"/>
<lastUpdated value="2022-03-01T19:17:57.411+00:00"/>
</meta>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><pre>map "http://smart.who.int/ddcc/StructureMap/DDCCtoEUdcc" = "DDCCtoEUdcc"
uses "http://smart.who.int/ddcc/StructureDefinition/DDCCVSomposition" alias DDCC as source
uses "http://smart.who.int/ddcc/StructureDefinition/DDCCDocument" alias DDCCDocument as source
uses "http://smart.who.int/ddcc/StructureDefinition/DDCCPatient" alias DDCCPatient as source
uses "http://smart.who.int/ddcc/StructureDefinition/DDCCVSComposition" alias DDCCVSComposition as source
uses "http://smart.who.int/ddcc/StructureDefinition/DDCCOrganization" alias DDCCOrganization as source
uses "http://smart.who.int/ddcc/StructureDefinition/DDCCCountryOfVaccination" alias DDCCCountryOfVaccination as source
uses "http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineBrand" alias DDCCVaccineBrand as source
uses "http://smart.who.int/ddcc/StructureDefinition/DDCCImmunization" alias DDCCImmunization as source
uses "http://hl7.eu/fhir/ig/dcc/StructureDefinition/HC1" alias EUDCC as target
uses "http://hl7.eu/fhir/ig/dcc/StructureDefinition/v" alias vacEvent as target
group DecodeDDCCtoQR(source ddcc : DDCCDocument, target qr : EUDCC) {
ddcc -> qr.ver = 'XXX' "Version";
ddcc.entry as entry then {
entry.resource : DDCCPatient as patient then DecodePatientToQR(patient, qr) "Patient";
} "Patient";
ddcc.entry as entry then {
entry.resource : Immunization as immunization then DecodeImmunizationToQR(ddcc, immunization, qr) "Immunization";
} "Immunization";
}
group DecodePatientToQR(source patient : DDCCPatient, target qr : EUDCC) {
patient.birthDate as birthDate -> qr.dob = birthDate;
patient.name as name then {
name.text as text -> qr.nam = text;
};
}
group DecodeImmunizationToQR(source ddcc : DDCCDocument, source immunization : DDCCImmunization, target qr : EUDCC) {
immunization -> qr.v = create('http://hl7.eu/fhir/ig/dcc/StructureDefinition/v') as vacEvent then {
immunization.protocolApplied as protocol then {
protocol.doseNumberPositiveInt as dose -> vacEvent.dn = dose;
protocol.seriesDosesPositiveInt as doseNum -> vacEvent.sd = doseNum;
protocol.targetDisease as targetDisease then {
targetDisease.coding as coding then {
coding.code as code -> vacEvent.tg = code;
} "Protocol-Disease-Code";
} "Protocol-Disease";
} "Protocol";
immunization.occurrenceDateTime as date -> vacEvent.dt = date;
// TODO: need to populate vacEvent.ma market authorization holder
immunization.extension as country where (url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCCountryOfEvent') then {
country.valueCode as code -> vacEvent.co = code;
} "Country";
// immunization.extension : DDCCBrand as brand
immunization.extension as brand where (url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCEventBrand') then {
brand.valueCoding as valueCoding then {
valueCoding.code as code -> vacEvent.mp = code;
} "Vaccine-Brand-Code";
} "Vaccine-Brand";
// immunization.vaccineCode : Coding as vaccineCode then {
immunization.vaccineCode as vaccineCode then {
vaccineCode.coding as coding then {
coding.code as code -> vacEvent.vp = code;
} "Vaccine-Code";
} "Vaccine-Coding";
ddcc.entry as entry then {
// entry.resource : DDCCOrganization as organization
entry.resource : Organization as organization then {
organization.name as name -> vacEvent.is = name;
} "Centre-Name";
} "Vaccination-Centre";
ddcc.entry as entry then {
// entry.resource : DDCCVSComposition as composition
entry.resource : Composition as composition then {
composition.identifier as identifier then {
identifier.value as value -> vacEvent.ci = value;
} "Vaccination-Event-ID-Value";
} "Vaccination-Event-ID";
} "Vaccination-Event";
} "Vaccination";
}
</pre></div>
</text>
<url value="http://smart.who.int/ddcc/StructureMap/DDCCtoEUdcc"/>
<version value="1.0.0"/>
<name value="DDCCtoEUdcc"/>
<status value="draft"/>
<date value="2024-01-19T16:18:21+00:00"/>
<publisher value="WHO"/>
<contact>
<name value="WHO"/>
<telecom>
<system value="url"/>
<value value="http://who.int"/>
</telecom>
</contact>
<jurisdiction>
<coding>
<system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
<code value="001"/>
</coding>
</jurisdiction>
<structure>
<url
value="http://smart.who.int/ddcc/StructureDefinition/DDCCVSomposition"/>
<mode value="source"/>
<alias value="DDCC"/>
</structure>
<structure>
<url value="http://smart.who.int/ddcc/StructureDefinition/DDCCDocument"/>
<mode value="source"/>
<alias value="DDCCDocument"/>
</structure>
<structure>
<url value="http://smart.who.int/ddcc/StructureDefinition/DDCCPatient"/>
<mode value="source"/>
<alias value="DDCCPatient"/>
</structure>
<structure>
<url
value="http://smart.who.int/ddcc/StructureDefinition/DDCCVSComposition"/>
<mode value="source"/>
<alias value="DDCCVSComposition"/>
</structure>
<structure>
<url
value="http://smart.who.int/ddcc/StructureDefinition/DDCCOrganization"/>
<mode value="source"/>
<alias value="DDCCOrganization"/>
</structure>
<structure>
<url
value="http://smart.who.int/ddcc/StructureDefinition/DDCCCountryOfVaccination"/>
<mode value="source"/>
<alias value="DDCCCountryOfVaccination"/>
</structure>
<structure>
<url
value="http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineBrand"/>
<mode value="source"/>
<alias value="DDCCVaccineBrand"/>
</structure>
<structure>
<url
value="http://smart.who.int/ddcc/StructureDefinition/DDCCImmunization"/>
<mode value="source"/>
<alias value="DDCCImmunization"/>
</structure>
<structure>
<url value="http://hl7.eu/fhir/ig/dcc/StructureDefinition/HC1"/>
<mode value="target"/>
<alias value="EUDCC"/>
</structure>
<structure>
<url value="http://hl7.eu/fhir/ig/dcc/StructureDefinition/v"/>
<mode value="target"/>
<alias value="vacEvent"/>
</structure>
<group>
<name value="DecodeDDCCtoQR"/>
<typeMode value="none"/>
<input>
<name value="ddcc"/>
<type value="DDCCDocument"/>
<mode value="source"/>
</input>
<input>
<name value="qr"/>
<type value="EUDCC"/>
<mode value="target"/>
</input>
<rule>
<name value="Version"/>
<source>
<context value="ddcc"/>
</source>
<target>
<context value="qr"/>
<contextType value="variable"/>
<element value="ver"/>
<transform value="copy"/>
<parameter>
<valueString value="XXX"/>
</parameter>
</target>
</rule>
<rule>
<name value="Patient"/>
<source>
<context value="ddcc"/>
<element value="entry"/>
<variable value="entry"/>
</source>
<rule>
<name value="Patient"/>
<source>
<context value="entry"/>
<type value="DDCCPatient"/>
<element value="resource"/>
<variable value="patient"/>
</source>
<dependent>
<name value="DecodePatientToQR"/>
<variable value="patient"/>
<variable value="qr"/>
</dependent>
</rule>
</rule>
<rule>
<name value="Immunization"/>
<source>
<context value="ddcc"/>
<element value="entry"/>
<variable value="entry"/>
</source>
<rule>
<name value="Immunization"/>
<source>
<context value="entry"/>
<type value="Immunization"/>
<element value="resource"/>
<variable value="immunization"/>
</source>
<dependent>
<name value="DecodeImmunizationToQR"/>
<variable value="ddcc"/>
<variable value="immunization"/>
<variable value="qr"/>
</dependent>
</rule>
</rule>
</group>
<group>
<name value="DecodePatientToQR"/>
<typeMode value="none"/>
<input>
<name value="patient"/>
<type value="DDCCPatient"/>
<mode value="source"/>
</input>
<input>
<name value="qr"/>
<type value="EUDCC"/>
<mode value="target"/>
</input>
<rule>
<name value="birthDate"/>
<source>
<context value="patient"/>
<element value="birthDate"/>
<variable value="birthDate"/>
</source>
<target>
<context value="qr"/>
<contextType value="variable"/>
<element value="dob"/>
<transform value="copy"/>
<parameter>
<valueId value="birthDate"/>
</parameter>
</target>
</rule>
<rule>
<name value="name"/>
<source>
<context value="patient"/>
<element value="name"/>
<variable value="name"/>
</source>
<rule>
<name value="text"/>
<source>
<context value="name"/>
<element value="text"/>
<variable value="text"/>
</source>
<target>
<context value="qr"/>
<contextType value="variable"/>
<element value="nam"/>
<transform value="copy"/>
<parameter>
<valueId value="text"/>
</parameter>
</target>
</rule>
</rule>
</group>
<group>
<name value="DecodeImmunizationToQR"/>
<typeMode value="none"/>
<input>
<name value="ddcc"/>
<type value="DDCCDocument"/>
<mode value="source"/>
</input>
<input>
<name value="immunization"/>
<type value="DDCCImmunization"/>
<mode value="source"/>
</input>
<input>
<name value="qr"/>
<type value="EUDCC"/>
<mode value="target"/>
</input>
<rule>
<name value="Vaccination"/>
<source>
<context value="immunization"/>
</source>
<target>
<context value="qr"/>
<contextType value="variable"/>
<element value="v"/>
<variable value="vacEvent"/>
<transform value="create"/>
<parameter>
<valueString
value="http://hl7.eu/fhir/ig/dcc/StructureDefinition/v"/>
</parameter>
</target>
<rule>
<name value="Protocol"/>
<source>
<context value="immunization"/>
<element value="protocolApplied"/>
<variable value="protocol"/>
</source>
<rule>
<name value="doseNumberPositiveInt"/>
<source>
<context value="protocol"/>
<element value="doseNumberPositiveInt"/>
<variable value="dose"/>
</source>
<target>
<context value="vacEvent"/>
<contextType value="variable"/>
<element value="dn"/>
<transform value="copy"/>
<parameter>
<valueId value="dose"/>
</parameter>
</target>
</rule>
<rule>
<name value="seriesDosesPositiveInt"/>
<source>
<context value="protocol"/>
<element value="seriesDosesPositiveInt"/>
<variable value="doseNum"/>
</source>
<target>
<context value="vacEvent"/>
<contextType value="variable"/>
<element value="sd"/>
<transform value="copy"/>
<parameter>
<valueId value="doseNum"/>
</parameter>
</target>
</rule>
<rule>
<name value="Protocol-Disease"/>
<source>
<context value="protocol"/>
<element value="targetDisease"/>
<variable value="targetDisease"/>
</source>
<rule>
<name value="Protocol-Disease-Code"/>
<source>
<context value="targetDisease"/>
<element value="coding"/>
<variable value="coding"/>
</source>
<rule>
<name value="code"/>
<source>
<context value="coding"/>
<element value="code"/>
<variable value="code"/>
</source>
<target>
<context value="vacEvent"/>
<contextType value="variable"/>
<element value="tg"/>
<transform value="copy"/>
<parameter>
<valueId value="code"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="occurrenceDateTime"/>
<source>
<context value="immunization"/>
<element value="occurrenceDateTime"/>
<variable value="date"/>
</source>
<target>
<context value="vacEvent"/>
<contextType value="variable"/>
<element value="dt"/>
<transform value="copy"/>
<parameter>
<valueId value="date"/>
</parameter>
</target>
</rule>
<rule>
<name value="Country"/>
<source>
<context value="immunization"/>
<element value="extension"/>
<variable value="country"/>
<condition
value="(url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCCountryOfEvent')"/>
</source>
<rule>
<name value="valueCode"/>
<source>
<context value="country"/>
<element value="valueCode"/>
<variable value="code"/>
</source>
<target>
<context value="vacEvent"/>
<contextType value="variable"/>
<element value="co"/>
<transform value="copy"/>
<parameter>
<valueId value="code"/>
</parameter>
</target>
</rule>
<documentation
value="TODO: need to populate vacEvent.ma market authorization holder"/>
</rule>
<rule>
<name value="Vaccine-Brand"/>
<source>
<context value="immunization"/>
<element value="extension"/>
<variable value="brand"/>
<condition
value="(url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCEventBrand')"/>
</source>
<rule>
<name value="Vaccine-Brand-Code"/>
<source>
<context value="brand"/>
<element value="valueCoding"/>
<variable value="valueCoding"/>
</source>
<rule>
<name value="code"/>
<source>
<context value="valueCoding"/>
<element value="code"/>
<variable value="code"/>
</source>
<target>
<context value="vacEvent"/>
<contextType value="variable"/>
<element value="mp"/>
<transform value="copy"/>
<parameter>
<valueId value="code"/>
</parameter>
</target>
</rule>
</rule>
<documentation value="immunization.extension : DDCCBrand as brand"/>
</rule>
<rule>
<name value="Vaccine-Coding"/>
<source>
<context value="immunization"/>
<element value="vaccineCode"/>
<variable value="vaccineCode"/>
</source>
<rule>
<name value="Vaccine-Code"/>
<source>
<context value="vaccineCode"/>
<element value="coding"/>
<variable value="coding"/>
</source>
<rule>
<name value="code"/>
<source>
<context value="coding"/>
<element value="code"/>
<variable value="code"/>
</source>
<target>
<context value="vacEvent"/>
<contextType value="variable"/>
<element value="vp"/>
<transform value="copy"/>
<parameter>
<valueId value="code"/>
</parameter>
</target>
</rule>
</rule>
<documentation
value="immunization.vaccineCode : Coding as vaccineCode then {"/>
</rule>
<rule>
<name value="Vaccination-Centre"/>
<source>
<context value="ddcc"/>
<element value="entry"/>
<variable value="entry"/>
</source>
<rule>
<name value="Centre-Name"/>
<source>
<context value="entry"/>
<type value="Organization"/>
<element value="resource"/>
<variable value="organization"/>
</source>
<rule>
<name value="name"/>
<source>
<context value="organization"/>
<element value="name"/>
<variable value="name"/>
</source>
<target>
<context value="vacEvent"/>
<contextType value="variable"/>
<element value="is"/>
<transform value="copy"/>
<parameter>
<valueId value="name"/>
</parameter>
</target>
</rule>
<documentation
value="entry.resource : DDCCOrganization as organization"/>
</rule>
</rule>
<rule>
<name value="Vaccination-Event"/>
<source>
<context value="ddcc"/>
<element value="entry"/>
<variable value="entry"/>
</source>
<rule>
<name value="Vaccination-Event-ID"/>
<source>
<context value="entry"/>
<type value="Composition"/>
<element value="resource"/>
<variable value="composition"/>
</source>
<rule>
<name value="Vaccination-Event-ID-Value"/>
<source>
<context value="composition"/>
<element value="identifier"/>
<variable value="identifier"/>
</source>
<rule>
<name value="value"/>
<source>
<context value="identifier"/>
<element value="value"/>
<variable value="value"/>
</source>
<target>
<context value="vacEvent"/>
<contextType value="variable"/>
<element value="ci"/>
<transform value="copy"/>
<parameter>
<valueId value="value"/>
</parameter>
</target>
</rule>
</rule>
<documentation
value="entry.resource : DDCCVSComposition as composition"/>
</rule>
</rule>
</rule>
</group>
</StructureMap>
IG © 2021+ WHO. Package who.ddcc#1.0.0 based on FHIR 4.0.1. Generated 2024-01-19
Links: Table of Contents |
QA Report
| Issues
| Version History | License