WHO Digital Documentation of COVID-19 Certificates (DDCC)
1.0.1 - release
This page is part of the WHO Digital Documentation of COVID-19 Certificates (DDCC) (v1.0.1: releases Draft) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version in its permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions
Draft as of 2024-12-18 |
<StructureMap xmlns="http://hl7.org/fhir">
<id value="DDCCtoSHC"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureMap DDCCtoSHC</b></p><a name="DDCCtoSHC"> </a><a name="hcDDCCtoSHC"> </a><a name="DDCCtoSHC-en-US"> </a><pre class="fml">
<b>map</b><span style="color: navy"> "</span>http://smart.who.int/ddcc/StructureMap/DDCCtoSHC<span style="color: navy">" = "</span>DDCCtoSHC<span style="color: navy">"
</span><b>uses</b><span style="color: navy"> "</span><a href="StructureDefinition-DDCCDocument.html" title="DDCC Document">http://smart.who.int/ddcc/StructureDefinition/DDCCDocument</a><span style="color: navy">" </span><b>alias </b>DDCCDocument <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="StructureDefinition-DDCCPatient.html" title="DDCC Patient">http://smart.who.int/ddcc/StructureDefinition/DDCCPatient</a><span style="color: navy">" </span><b>alias </b>DDCCPatient <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="StructureDefinition-DDCCComposition.html" title="DDCC Composition">http://smart.who.int/ddcc/StructureDefinition/DDCCComposition</a><span style="color: navy">" </span><b>alias </b>DDCCComposition <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="StructureDefinition-DDCCOrganization.html" title="DDCC Organization">http://smart.who.int/ddcc/StructureDefinition/DDCCOrganization</a><span style="color: navy">" </span><b>alias </b>DDCCOrganization <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span>http://smart.who.int/ddcc/StructureDefinition/DDCCCountryOfVaccination<span style="color: navy">" </span><b>alias </b>DDCCCountryOfVaccination <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span>http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineBrand<span style="color: navy">" </span><b>alias </b>DDCCVaccineBrand <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="StructureDefinition-DDCCImmunization.html" title="DDCC Immunization">http://smart.who.int/ddcc/StructureDefinition/DDCCImmunization</a><span style="color: navy">" </span><b>alias </b>DDCCImmunization <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span>http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-vaccination-bundle-dm<span style="color: navy">" </span><b>alias </b>SHCVaccinationBundleDM <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span>http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-patient-general-dm<span style="color: navy">" </span><b>alias </b>SHCPatientDM <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span>http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-vaccination-dm<span style="color: navy">" </span><b>alias </b>SHCImmunizationDM <b>as </b><b>target</b>
<b>group </b>DDCCtoSHC<span style="color: navy">(</span><b>source</b> <span style="color: maroon">ddcc</span><span style="color: navy"> : </span>DDCCDocument, <b>target</b> <span style="color: maroon">shc</span><span style="color: navy"> : </span>SHCVaccinationBundleDM<span style="color: navy">)</span><span style="color: navy"> {
</span> ddcc<span style="color: navy"><b> -> </b></span>shc.type = <span style="color: blue">'collection'</span> <i>"set bundle type"</i><span style="color: navy">;</span>
ddcc.entry<b> as </b><span style="color: maroon">entry</span><b> then</b><span style="color: navy"> {
</span> entry.resource<span style="color: navy"> : </span>Patient first<b> as </b><span style="color: maroon">patient</span><b> then</b><span style="color: navy"> {
</span> entry<span style="color: navy"><b> -> </b></span>shc.entry<b> as </b><span style="color: maroon">entrySHC</span><b> then</b><span style="color: navy"> {
</span> entry.fullUrl<span style="color: navy"><b> -> </b></span>entrySHC.fullUrl = <span style="color: blue">'resource:0'</span> <i>"Full URL"</i><span style="color: navy">;</span>
patient<span style="color: navy"><b> -> </b></span>entrySHC.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Patient'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">patientSHC</span><b> then </b>DDCCPatienttoSHC<span style="color: navy">(</span><span style="color: maroon">patient</span><span style="color: navy">, </span><span style="color: maroon">patientSHC</span><span style="color: navy">)</span> <i>"Patient resource"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"Patient entry"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"Is Patient entry"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"map patients"</i><span style="color: navy">;</span>
ddcc.entry<b> as </b><span style="color: maroon">entry</span><b> then</b><span style="color: navy"> {
</span> entry.resource<span style="color: navy"> : </span>Immunization first<b> as </b><span style="color: maroon">immunization</span><b> where </b>status = 'completed'<b> then</b><span style="color: navy"> {
</span> entry<span style="color: navy"><b> -> </b></span>shc.entry<b> as </b><span style="color: maroon">entrySHC</span><b> then</b><span style="color: navy"> {
</span> entry.fullUrl<span style="color: navy"><b> -> </b></span>entrySHC.fullUrl = <span style="color: blue">'resource:1'</span> <i>"Full URL"</i><span style="color: navy">;</span>
immunization<span style="color: navy"><b> -> </b></span>entrySHC.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Immunization'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">immunizationSHC</span><b> then</b><span style="color: navy"> {
</span> immunization<span style="color: navy"><b> -> </b></span>immunizationSHC<b> then </b>DDCCImmunizationtoSHC<span style="color: navy">(</span><span style="color: maroon">immunization</span><span style="color: navy">, </span><span style="color: maroon">immunizationSHC</span><span style="color: navy">)</span> <i>"Immunization"</i><span style="color: navy">;</span>
ddcc.entry<b> as </b><span style="color: maroon">orgEntry</span><b> then</b><span style="color: navy"> {
</span> orgEntry.resource<span style="color: navy"> : </span>Organization first<b> as </b><span style="color: maroon">organization</span><b> then </b>DDCCOrganizationtoSHCImmunization<span style="color: navy">(</span><span style="color: maroon">organization</span><span style="color: navy">, </span><span style="color: maroon">immunizationSHC</span><span style="color: navy">)</span> <i>"Organization entry"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"map organizations"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"Immunization resource"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"Immunization entry"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"Is Immunization entry"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"map immunizations"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>DDCCPatienttoSHC<span style="color: navy">(</span><b>source</b> <span style="color: maroon">patient</span><span style="color: navy"> : </span>DDCCPatient, <b>target</b> <span style="color: maroon">patientSHC</span><span style="color: navy"> : </span>SHCPatientDM<span style="color: navy">)</span><span style="color: navy"> {
</span> patient.name only_one<b> as </b><span style="color: maroon">name</span><span style="color: navy"><b> -> </b></span>patientSHC.name<b> as </b><span style="color: maroon">nameSHC</span><b> then</b><span style="color: navy"> {
</span> name.given<b> as </b><span style="color: maroon">givenname</span><span style="color: navy"><b> -> </b></span>nameSHC.given = <span style="color: maroon">givenname</span> <i>"Given Name"</i><span style="color: navy">;</span>
name.family<b> as </b><span style="color: maroon">familyname</span><span style="color: navy"><b> -> </b></span>nameSHC.family = <span style="color: maroon">familyname</span> <i>"Family Name"</i><span style="color: navy">;</span>
name<b> where </b>name.given.exists().not() and name.family.exists().not()<b> then</b><span style="color: navy"> {
</span> name.text<b> as </b><span style="color: maroon">text</span><span style="color: navy"><b> -> </b></span>nameSHC.text = <span style="color: maroon">text</span> <i>"Text Name"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"vcnameinvariant"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"Name"</i><span style="color: navy">;</span>
patient.birthDate<b> as </b><span style="color: maroon">birthDate</span><span style="color: navy"><b> -> </b></span>patientSHC.birthDate = <span style="color: maroon">birthDate</span> <i>"Birth Date"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>DDCCImmunizationtoSHC<span style="color: navy">(</span><b>source</b> <span style="color: maroon">immunization</span><span style="color: navy"> : </span>DDCCImmunization, <b>target</b> <span style="color: maroon">immunizationSHC</span><span style="color: navy"> : </span>SHCImmunizationDM<span style="color: navy">)</span><span style="color: navy"> {
</span> immunization.status<b> as </b><span style="color: maroon">status</span><span style="color: navy"><b> -> </b></span>immunizationSHC.status = <span style="color: maroon">status</span> <i>"Status"</i><span style="color: navy">;</span>
immunization.vaccineCode<b> as </b><span style="color: maroon">vaccineCode</span><span style="color: navy"><b> -> </b></span>immunizationSHC.vaccineCode<b> as </b><span style="color: maroon">vaccineCodeSHC</span><b> then</b><span style="color: navy"> {
</span> vaccineCode.coding first<b> as </b><span style="color: maroon">coding</span><span style="color: navy"><b> -> </b></span>vaccineCodeSHC.coding<b> as </b><span style="color: maroon">codingSHC</span><b> then </b>MinimizeCoding<span style="color: navy">(</span><span style="color: maroon">coding</span><span style="color: navy">, </span><span style="color: maroon">codingSHC</span><span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"VaccineCode"</i><span style="color: navy">;</span>
immunization.patient<b> as </b><span style="color: maroon">patient</span><span style="color: navy"><b> -> </b></span> immunizationSHC.patient<b> as </b><span style="color: maroon">patientSHC</span><span style="color: navy">, </span> patientSHC.reference = <span style="color: blue">'resource:0'</span> <i>"Patient"</i><span style="color: navy">;</span>
immunization.occurrence<b> as </b><span style="color: maroon">occurrenceDateTime</span><span style="color: navy"><b> -> </b></span>immunizationSHC.occurrence = <span style="color: maroon">occurrenceDateTime</span> <i>"Occurrence DateTime"</i><span style="color: navy">;</span>
immunization.extension<b> as </b><span style="color: maroon">ext</span><b> then</b><span style="color: navy"> {
</span> ext first<b> as </b><span style="color: maroon">maholder</span><b> where </b>ext.url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineMarketAuthorization'<b> then</b><span style="color: navy"> {
</span> maholder.valueCoding<b> as </b><span style="color: maroon">coding</span><span style="color: navy"><b> -> </b></span> immunizationSHC.manufacturer<b> as </b><span style="color: maroon">tman</span><span style="color: navy">, </span> tman.identifier<b> as </b><span style="color: maroon">tident</span><b> then</b><span style="color: navy"> {
</span> coding.system<b> as </b><span style="color: maroon">system</span><span style="color: navy"><b> -> </b></span>tident.system = <span style="color: maroon">system</span><span style="color: navy">;</span>
coding.code<b> as </b><span style="color: maroon">code</span><span style="color: navy"><b> -> </b></span>tident.value = <span style="color: maroon">code</span> <i>"value"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"Manufacturer"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"DDCCVaccineMarketAuthorization"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"Extension"</i><span style="color: navy">;</span>
immunization<b> as </b><span style="color: maroon">src</span><b> where </b>extension.where(url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineMarketAuthorization').first().valueCoding.exists().not()<b> then</b><span style="color: navy"> {
</span> src.manufacturer<b> as </b><span style="color: maroon">manufacturer</span><b> then</b><span style="color: navy"> {
</span> manufacturer.identifier<b> as </b><span style="color: maroon">identifier</span><span style="color: navy"><b> -> </b></span> immunizationSHC.manufacturer<b> as </b><span style="color: maroon">tman</span><span style="color: navy">, </span> tman.identifier<b> as </b><span style="color: maroon">tident</span><b> then</b><span style="color: navy"> {
</span> identifier.system<b> as </b><span style="color: maroon">system</span><span style="color: navy"><b> -> </b></span>tident.system = <span style="color: maroon">system</span><span style="color: navy">;</span>
identifier.value<b> as </b><span style="color: maroon">value</span><span style="color: navy"><b> -> </b></span>tident.value = <span style="color: maroon">value</span><span style="color: navy">;</span>
<span style="color: navy">}</span><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"Manufacturer"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"if maholder code empty"</i><span style="color: navy">;</span>
immunization.lotNumber<b> as </b><span style="color: maroon">lotNumber</span><span style="color: navy"><b> -> </b></span>immunizationSHC.lotNumber = <span style="color: maroon">lotNumber</span> <i>"Lot Number"</i><span style="color: navy">;</span>
immunization.isSubpotent<b> as </b><span style="color: maroon">isSubpotent</span><b> where </b>true<span style="color: navy"><b> -> </b></span>immunizationSHC.isSubpotent = <span style="color: maroon">isSubpotent</span> <i>"Is Subpotent"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>DDCCOrganizationtoSHCImmunization<span style="color: navy">(</span><b>source</b> <span style="color: maroon">organization</span><span style="color: navy"> : </span>DDCCOrganization, <b>target</b> <span style="color: maroon">immunizationSHC</span><span style="color: navy"> : </span>SHCImmunizationDM<span style="color: navy">)</span><span style="color: navy"> {
</span> organization.name<b> as </b><span style="color: maroon">name</span><span style="color: navy"><b> -> </b></span> immunizationSHC.performer<b> as </b><span style="color: maroon">performer</span><span style="color: navy">, </span> performer.actor<b> as </b><span style="color: maroon">actor</span><span style="color: navy">, </span> actor.display = <span style="color: maroon">name</span> <i>"Performer Actor Display"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>MinimizeCoding<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>Coding, <b>target</b> <span style="color: maroon">tgt</span><span style="color: navy"> : </span>Coding<span style="color: navy">)</span><span style="color: navy"> {
</span> src.system<b> as </b><span style="color: maroon">system</span><span style="color: navy"><b> -> </b></span>tgt.system = <span style="color: maroon">system</span><span style="color: navy">;</span>
src.code<b> as </b><span style="color: maroon">code</span><span style="color: navy"><b> -> </b></span>tgt.code = <span style="color: maroon">code</span><span style="color: navy">;</span>
<span style="color: navy">}
</span></pre></div>
</text>
<url value="http://smart.who.int/ddcc/StructureMap/DDCCtoSHC"/>
<version value="1.0.1"/>
<name value="DDCCtoSHC"/>
<status value="draft"/>
<date value="2024-12-18T16:40:01+01: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/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/DDCCComposition"/>
<mode value="source"/>
<alias value="DDCCComposition"/>
</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.org/fhir/uv/shc-vaccination/StructureDefinition/shc-vaccination-bundle-dm"/>
<mode value="target"/>
<alias value="SHCVaccinationBundleDM"/>
</structure>
<structure>
<url
value="http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-patient-general-dm"/>
<mode value="target"/>
<alias value="SHCPatientDM"/>
</structure>
<structure>
<url
value="http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-vaccination-dm"/>
<mode value="target"/>
<alias value="SHCImmunizationDM"/>
</structure>
<group>
<name value="DDCCtoSHC"/>
<typeMode value="none"/>
<input>
<name value="ddcc"/>
<type value="DDCCDocument"/>
<mode value="source"/>
</input>
<input>
<name value="shc"/>
<type value="SHCVaccinationBundleDM"/>
<mode value="target"/>
</input>
<rule>
<name value="set bundle type"/>
<source>
<context value="ddcc"/>
</source>
<target>
<context value="shc"/>
<contextType value="variable"/>
<element value="type"/>
<transform value="copy"/>
<parameter>
<valueString value="collection"/>
</parameter>
</target>
</rule>
<rule>
<name value="map patients"/>
<source>
<context value="ddcc"/>
<element value="entry"/>
<variable value="entry"/>
</source>
<rule>
<name value="Is Patient entry"/>
<source>
<context value="entry"/>
<type value="Patient"/>
<element value="resource"/>
<listMode value="first"/>
<variable value="patient"/>
</source>
<rule>
<name value="Patient entry"/>
<source>
<context value="entry"/>
</source>
<target>
<context value="shc"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="entrySHC"/>
</target>
<rule>
<name value="Full URL"/>
<source>
<context value="entry"/>
<element value="fullUrl"/>
</source>
<target>
<context value="entrySHC"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="copy"/>
<parameter>
<valueString value="resource:0"/>
</parameter>
</target>
</rule>
<rule>
<name value="Patient resource"/>
<source>
<context value="patient"/>
</source>
<target>
<context value="entrySHC"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="patientSHC"/>
<transform value="create"/>
<parameter>
<valueString value="Patient"/>
</parameter>
</target>
<dependent>
<name value="DDCCPatienttoSHC"/>
<variable value="patient"/>
<variable value="patientSHC"/>
</dependent>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="map immunizations"/>
<source>
<context value="ddcc"/>
<element value="entry"/>
<variable value="entry"/>
</source>
<rule>
<name value="Is Immunization entry"/>
<source>
<context value="entry"/>
<type value="Immunization"/>
<element value="resource"/>
<listMode value="first"/>
<variable value="immunization"/>
<condition value="status = 'completed'"/>
</source>
<rule>
<name value="Immunization entry"/>
<source>
<context value="entry"/>
</source>
<target>
<context value="shc"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="entrySHC"/>
</target>
<rule>
<name value="Full URL"/>
<source>
<context value="entry"/>
<element value="fullUrl"/>
</source>
<target>
<context value="entrySHC"/>
<contextType value="variable"/>
<element value="fullUrl"/>
<transform value="copy"/>
<parameter>
<valueString value="resource:1"/>
</parameter>
</target>
</rule>
<rule>
<name value="Immunization resource"/>
<source>
<context value="immunization"/>
</source>
<target>
<context value="entrySHC"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="immunizationSHC"/>
<transform value="create"/>
<parameter>
<valueString value="Immunization"/>
</parameter>
</target>
<rule>
<name value="Immunization"/>
<source>
<context value="immunization"/>
</source>
<target>
<context value="immunizationSHC"/>
<contextType value="variable"/>
</target>
<dependent>
<name value="DDCCImmunizationtoSHC"/>
<variable value="immunization"/>
<variable value="immunizationSHC"/>
</dependent>
</rule>
<rule>
<name value="map organizations"/>
<source>
<context value="ddcc"/>
<element value="entry"/>
<variable value="orgEntry"/>
</source>
<rule>
<name value="Organization entry"/>
<source>
<context value="orgEntry"/>
<type value="Organization"/>
<element value="resource"/>
<listMode value="first"/>
<variable value="organization"/>
</source>
<dependent>
<name value="DDCCOrganizationtoSHCImmunization"/>
<variable value="organization"/>
<variable value="immunizationSHC"/>
</dependent>
</rule>
</rule>
</rule>
</rule>
</rule>
</rule>
</group>
<group>
<name value="DDCCPatienttoSHC"/>
<typeMode value="none"/>
<input>
<name value="patient"/>
<type value="DDCCPatient"/>
<mode value="source"/>
</input>
<input>
<name value="patientSHC"/>
<type value="SHCPatientDM"/>
<mode value="target"/>
</input>
<rule>
<name value="Name"/>
<source>
<context value="patient"/>
<element value="name"/>
<listMode value="only_one"/>
<variable value="name"/>
</source>
<target>
<context value="patientSHC"/>
<contextType value="variable"/>
<element value="name"/>
<variable value="nameSHC"/>
</target>
<rule>
<name value="Given Name"/>
<source>
<context value="name"/>
<element value="given"/>
<variable value="givenname"/>
</source>
<target>
<context value="nameSHC"/>
<contextType value="variable"/>
<element value="given"/>
<transform value="copy"/>
<parameter>
<valueId value="givenname"/>
</parameter>
</target>
</rule>
<rule>
<name value="Family Name"/>
<source>
<context value="name"/>
<element value="family"/>
<variable value="familyname"/>
</source>
<target>
<context value="nameSHC"/>
<contextType value="variable"/>
<element value="family"/>
<transform value="copy"/>
<parameter>
<valueId value="familyname"/>
</parameter>
</target>
</rule>
<rule>
<name value="vcnameinvariant"/>
<source>
<context value="name"/>
<condition
value="name.given.exists().not() and name.family.exists().not()"/>
</source>
<rule>
<name value="Text Name"/>
<source>
<context value="name"/>
<element value="text"/>
<variable value="text"/>
</source>
<target>
<context value="nameSHC"/>
<contextType value="variable"/>
<element value="text"/>
<transform value="copy"/>
<parameter>
<valueId value="text"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="Birth Date"/>
<source>
<context value="patient"/>
<element value="birthDate"/>
<variable value="birthDate"/>
</source>
<target>
<context value="patientSHC"/>
<contextType value="variable"/>
<element value="birthDate"/>
<transform value="copy"/>
<parameter>
<valueId value="birthDate"/>
</parameter>
</target>
</rule>
</group>
<group>
<name value="DDCCImmunizationtoSHC"/>
<typeMode value="none"/>
<input>
<name value="immunization"/>
<type value="DDCCImmunization"/>
<mode value="source"/>
</input>
<input>
<name value="immunizationSHC"/>
<type value="SHCImmunizationDM"/>
<mode value="target"/>
</input>
<rule>
<name value="Status"/>
<source>
<context value="immunization"/>
<element value="status"/>
<variable value="status"/>
</source>
<target>
<context value="immunizationSHC"/>
<contextType value="variable"/>
<element value="status"/>
<transform value="copy"/>
<parameter>
<valueId value="status"/>
</parameter>
</target>
</rule>
<rule>
<name value="VaccineCode"/>
<source>
<context value="immunization"/>
<element value="vaccineCode"/>
<variable value="vaccineCode"/>
</source>
<target>
<context value="immunizationSHC"/>
<contextType value="variable"/>
<element value="vaccineCode"/>
<variable value="vaccineCodeSHC"/>
</target>
<rule>
<name value="coding"/>
<source>
<context value="vaccineCode"/>
<element value="coding"/>
<listMode value="first"/>
<variable value="coding"/>
</source>
<target>
<context value="vaccineCodeSHC"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="codingSHC"/>
</target>
<dependent>
<name value="MinimizeCoding"/>
<variable value="coding"/>
<variable value="codingSHC"/>
</dependent>
</rule>
</rule>
<rule>
<name value="Patient"/>
<source>
<context value="immunization"/>
<element value="patient"/>
<variable value="patient"/>
</source>
<target>
<context value="immunizationSHC"/>
<contextType value="variable"/>
<element value="patient"/>
<variable value="patientSHC"/>
</target>
<target>
<context value="patientSHC"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="copy"/>
<parameter>
<valueString value="resource:0"/>
</parameter>
</target>
</rule>
<rule>
<name value="Occurrence DateTime"/>
<source>
<context value="immunization"/>
<element value="occurrence"/>
<variable value="occurrenceDateTime"/>
</source>
<target>
<context value="immunizationSHC"/>
<contextType value="variable"/>
<element value="occurrence"/>
<transform value="copy"/>
<parameter>
<valueId value="occurrenceDateTime"/>
</parameter>
</target>
</rule>
<rule>
<name value="Extension"/>
<source>
<context value="immunization"/>
<element value="extension"/>
<variable value="ext"/>
</source>
<rule>
<name value="DDCCVaccineMarketAuthorization"/>
<source>
<context value="ext"/>
<listMode value="first"/>
<variable value="maholder"/>
<condition
value="ext.url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineMarketAuthorization'"/>
</source>
<rule>
<name value="Manufacturer"/>
<source>
<context value="maholder"/>
<element value="valueCoding"/>
<variable value="coding"/>
</source>
<target>
<context value="immunizationSHC"/>
<contextType value="variable"/>
<element value="manufacturer"/>
<variable value="tman"/>
</target>
<target>
<context value="tman"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="tident"/>
</target>
<rule>
<name value="system"/>
<source>
<context value="coding"/>
<element value="system"/>
<variable value="system"/>
</source>
<target>
<context value="tident"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueId value="system"/>
</parameter>
</target>
</rule>
<rule>
<name value="value"/>
<source>
<context value="coding"/>
<element value="code"/>
<variable value="code"/>
</source>
<target>
<context value="tident"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueId value="code"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="if maholder code empty"/>
<source>
<context value="immunization"/>
<variable value="src"/>
<condition
value="extension.where(url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineMarketAuthorization').first().valueCoding.exists().not()"/>
</source>
<rule>
<name value="Manufacturer"/>
<source>
<context value="src"/>
<element value="manufacturer"/>
<variable value="manufacturer"/>
</source>
<rule>
<name value="identifier"/>
<source>
<context value="manufacturer"/>
<element value="identifier"/>
<variable value="identifier"/>
</source>
<target>
<context value="immunizationSHC"/>
<contextType value="variable"/>
<element value="manufacturer"/>
<variable value="tman"/>
</target>
<target>
<context value="tman"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="tident"/>
</target>
<rule>
<name value="system"/>
<source>
<context value="identifier"/>
<element value="system"/>
<variable value="system"/>
</source>
<target>
<context value="tident"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueId value="system"/>
</parameter>
</target>
</rule>
<rule>
<name value="value"/>
<source>
<context value="identifier"/>
<element value="value"/>
<variable value="value"/>
</source>
<target>
<context value="tident"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueId value="value"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="Lot Number"/>
<source>
<context value="immunization"/>
<element value="lotNumber"/>
<variable value="lotNumber"/>
</source>
<target>
<context value="immunizationSHC"/>
<contextType value="variable"/>
<element value="lotNumber"/>
<transform value="copy"/>
<parameter>
<valueId value="lotNumber"/>
</parameter>
</target>
</rule>
<rule>
<name value="Is Subpotent"/>
<source>
<context value="immunization"/>
<element value="isSubpotent"/>
<variable value="isSubpotent"/>
<condition value="true"/>
</source>
<target>
<context value="immunizationSHC"/>
<contextType value="variable"/>
<element value="isSubpotent"/>
<transform value="copy"/>
<parameter>
<valueId value="isSubpotent"/>
</parameter>
</target>
</rule>
</group>
<group>
<name value="DDCCOrganizationtoSHCImmunization"/>
<typeMode value="none"/>
<input>
<name value="organization"/>
<type value="DDCCOrganization"/>
<mode value="source"/>
</input>
<input>
<name value="immunizationSHC"/>
<type value="SHCImmunizationDM"/>
<mode value="target"/>
</input>
<rule>
<name value="Performer Actor Display"/>
<source>
<context value="organization"/>
<element value="name"/>
<variable value="name"/>
</source>
<target>
<context value="immunizationSHC"/>
<contextType value="variable"/>
<element value="performer"/>
<variable value="performer"/>
</target>
<target>
<context value="performer"/>
<contextType value="variable"/>
<element value="actor"/>
<variable value="actor"/>
</target>
<target>
<context value="actor"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueId value="name"/>
</parameter>
</target>
</rule>
</group>
<group>
<name value="MinimizeCoding"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="Coding"/>
<mode value="source"/>
</input>
<input>
<name value="tgt"/>
<type value="Coding"/>
<mode value="target"/>
</input>
<rule>
<name value="system"/>
<source>
<context value="src"/>
<element value="system"/>
<variable value="system"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueId value="system"/>
</parameter>
</target>
</rule>
<rule>
<name value="code"/>
<source>
<context value="src"/>
<element value="code"/>
<variable value="code"/>
</source>
<target>
<context value="tgt"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueId value="code"/>
</parameter>
</target>
</rule>
</group>
</StructureMap>