WHO Immunization Implementation Guide
0.1.0 - CI Build
WHO Immunization Implementation Guide, published by World Health Organization (WHO). This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-immunizations and changes regularly. See the Directory of published versions
Draft as of 2024-05-30 |
<StructureMap xmlns="http://hl7.org/fhir">
<id value="IMMZD1QRToLM"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><pre class="fml">
<b>map</b><span style="color: navy"> "</span>http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1QRToLM<span style="color: navy">" = "</span>IMMZD1QRToLM<span style="color: navy">"
</span><b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/questionnaireresponse.html" title="QuestionnaireResponse">http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse</a><span style="color: navy">" </span><b>alias </b>QResp <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="StructureDefinition-IMMZD1ClientHistory.html" title="IMMZ.D1 Capture Client History for All Antigens">http://smart.who.int/ig/smart-immunizations/StructureDefinition/IMMZD1ClientHistory</a><span style="color: navy">" </span><b>alias </b>IMMZD1 <b>as </b><b>target</b>
<b>group </b>QRespToIMMZD1<span style="color: navy">(</span><b>source</b> <span style="color: maroon">qr</span><span style="color: navy"> : </span>QResp, <b>target</b> <span style="color: maroon">immz</span><span style="color: navy"> : </span>IMMZD1<span style="color: navy">)</span><span style="color: navy"> {
</span> qr.subject<b> as </b><span style="color: maroon">patient</span><span style="color: navy"><b> -> </b></span>immz.patient = <span style="color: maroon">patient</span> <i>"SetPatient"</i><span style="color: navy">;</span>
qr.item<b> as </b><span style="color: maroon">item</span><b> then</b><span style="color: navy"> {
</span> item.answer<b> as </b><span style="color: maroon">answer</span><b> where </b>item.linkId = 'type'<b> then</b><span style="color: navy"> {
</span> answer.value<b> as </b><span style="color: maroon">coding</span><span style="color: navy"><b> -> </b></span>immz.type = <span style="color: maroon">coding</span> <i>"SetVaccineType"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"AnswerForType"</i><span style="color: navy">;</span>
item.answer first<b> as </b><span style="color: maroon">answer</span><b> where </b>item.linkId = 'booster'<b> then</b><span style="color: navy"> {
</span> answer.value<b> as </b><span style="color: maroon">content</span><span style="color: navy"><b> -> </b></span>immz.booster = <span style="color: maroon">content</span> <i>"SetBooster"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"FirstAnswerForBooster"</i><span style="color: navy">;</span>
item.answer first<b> as </b><span style="color: maroon">answer</span><b> where </b>item.linkId = 'completedPrimarySeries'<b> then</b><span style="color: navy"> {
</span> answer.value<b> as </b><span style="color: maroon">content</span><span style="color: navy"><b> -> </b></span>immz.completedPrimarySeries = <span style="color: maroon">content</span> <i>"SetCompletedPrimarySeries"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"FirstAnswerForCompletedPrimarySeries"</i><span style="color: navy">;</span>
item.answer first<b> as </b><span style="color: maroon">answer</span><b> where </b>item.linkId = 'dateSeriesCompleted'<b> then</b><span style="color: navy"> {
</span> answer.value<b> as </b><span style="color: maroon">content</span><span style="color: navy"><b> -> </b></span>immz.dateSeriesCompleted = <span style="color: maroon">content</span> <i>"SetDateSeriesCompleted"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"FirstAnswerDateSeriesCompleted"</i><span style="color: navy">;</span>
item.answer first<b> as </b><span style="color: maroon">answer</span><b> where </b>item.linkId = 'hivStatus'<b> then</b><span style="color: navy"> {
</span> answer.value<b> as </b><span style="color: maroon">coding</span><span style="color: navy"><b> -> </b></span>immz.hivStatus = <span style="color: maroon">coding</span> <i>"SetHIVStatus"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"FirstAnswerForHIVStatus"</i><span style="color: navy">;</span>
item.answer first<b> as </b><span style="color: maroon">answer</span><b> where </b>item.linkId = 'pretermBirth'<b> then</b><span style="color: navy"> {
</span> answer.value<b> as </b><span style="color: maroon">content</span><span style="color: navy"><b> -> </b></span>immz.pretermBirth = <span style="color: maroon">content</span> <i>"SetPretermBirth"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"FirstAnswerForPretermBirth"</i><span style="color: navy">;</span>
item.answer first<b> as </b><span style="color: maroon">answer</span><b> where </b>item.linkId = 'immunocompromised'<b> then</b><span style="color: navy"> {
</span> answer.value<b> as </b><span style="color: maroon">content</span><span style="color: navy"><b> -> </b></span>immz.immunocompromised = <span style="color: maroon">content</span> <i>"SetImmunocompromised"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"FirstAnswerForImmunocompromised"</i><span style="color: navy">;</span>
item.answer first<b> as </b><span style="color: maroon">answer</span><b> where </b>item.linkId = 'onART'<b> then</b><span style="color: navy"> {
</span> answer.value<b> as </b><span style="color: maroon">content</span><span style="color: navy"><b> -> </b></span>immz.onART = <span style="color: maroon">content</span> <i>"SetOnART"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"FirstAnswerForOnART"</i><span style="color: navy">;</span>
item<b> as </b><span style="color: maroon">history</span><b> where </b>item.linkId = 'vaccineHistory'<span style="color: navy"><b> -> </b></span>immz.vaccineHistory<b> as </b><span style="color: maroon">vaccine</span><b> then</b><span style="color: navy"> {
</span> history.item<b> as </b><span style="color: maroon">entry</span><b> then</b><span style="color: navy"> {
</span> entry.answer<b> as </b><span style="color: maroon">answer</span><b> where </b>entry.linkId = 'vaccineType'<b> then</b><span style="color: navy"> {
</span> answer.value<b> as </b><span style="color: maroon">coding</span><span style="color: navy"><b> -> </b></span>vaccine.vaccineType = <span style="color: maroon">coding</span> <i>"SetVaccineType"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"AnswerForVaccineType"</i><span style="color: navy">;</span>
entry.answer<b> as </b><span style="color: maroon">answer</span><b> where </b>entry.linkId = 'vaccineDate'<b> then</b><span style="color: navy"> {
</span> answer.value<b> as </b><span style="color: maroon">content</span><span style="color: navy"><b> -> </b></span>vaccine.vaccineDate = <span style="color: maroon">content</span> <i>"SetVaccineDate"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"AnswerForVaccineDate"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"HistoryLoop"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"ForVaccineHistory"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"processItems"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span></pre></div>
</text>
<url
value="http://smart.who.int/ig/smart-immunizations/StructureMap/IMMZD1QRToLM"/>
<version value="0.1.0"/>
<name value="IMMZD1QRToLM"/>
<status value="draft"/>
<date value="2024-05-30T21:26:16+00:00"/>
<publisher value="World Health Organization (WHO)"/>
<contact>
<name value="World Health Organization (WHO)"/>
<telecom>
<system value="url"/>
<value value="https://www.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://hl7.org/fhir/StructureDefinition/QuestionnaireResponse"/>
<mode value="source"/>
<alias value="QResp"/>
</structure>
<structure>
<url
value="http://smart.who.int/ig/smart-immunizations/StructureDefinition/IMMZD1ClientHistory"/>
<mode value="target"/>
<alias value="IMMZD1"/>
</structure>
<group>
<name value="QRespToIMMZD1"/>
<typeMode value="none"/>
<input>
<name value="qr"/>
<type value="QResp"/>
<mode value="source"/>
</input>
<input>
<name value="immz"/>
<type value="IMMZD1"/>
<mode value="target"/>
</input>
<rule>
<name value="SetPatient"/>
<source>
<context value="qr"/>
<element value="subject"/>
<variable value="patient"/>
</source>
<target>
<context value="immz"/>
<contextType value="variable"/>
<element value="patient"/>
<transform value="copy"/>
<parameter>
<valueId value="patient"/>
</parameter>
</target>
</rule>
<rule>
<name value="processItems"/>
<source>
<context value="qr"/>
<element value="item"/>
<variable value="item"/>
</source>
<rule>
<name value="AnswerForType"/>
<source>
<context value="item"/>
<element value="answer"/>
<variable value="answer"/>
<condition value="item.linkId = 'type'"/>
</source>
<rule>
<name value="SetVaccineType"/>
<source>
<context value="answer"/>
<element value="value"/>
<variable value="coding"/>
</source>
<target>
<context value="immz"/>
<contextType value="variable"/>
<element value="type"/>
<transform value="copy"/>
<parameter>
<valueId value="coding"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="FirstAnswerForBooster"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="answer"/>
<condition value="item.linkId = 'booster'"/>
</source>
<rule>
<name value="SetBooster"/>
<source>
<context value="answer"/>
<element value="value"/>
<variable value="content"/>
</source>
<target>
<context value="immz"/>
<contextType value="variable"/>
<element value="booster"/>
<transform value="copy"/>
<parameter>
<valueId value="content"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="FirstAnswerForCompletedPrimarySeries"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="answer"/>
<condition value="item.linkId = 'completedPrimarySeries'"/>
</source>
<rule>
<name value="SetCompletedPrimarySeries"/>
<source>
<context value="answer"/>
<element value="value"/>
<variable value="content"/>
</source>
<target>
<context value="immz"/>
<contextType value="variable"/>
<element value="completedPrimarySeries"/>
<transform value="copy"/>
<parameter>
<valueId value="content"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="FirstAnswerDateSeriesCompleted"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="answer"/>
<condition value="item.linkId = 'dateSeriesCompleted'"/>
</source>
<rule>
<name value="SetDateSeriesCompleted"/>
<source>
<context value="answer"/>
<element value="value"/>
<variable value="content"/>
</source>
<target>
<context value="immz"/>
<contextType value="variable"/>
<element value="dateSeriesCompleted"/>
<transform value="copy"/>
<parameter>
<valueId value="content"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="FirstAnswerForHIVStatus"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="answer"/>
<condition value="item.linkId = 'hivStatus'"/>
</source>
<rule>
<name value="SetHIVStatus"/>
<source>
<context value="answer"/>
<element value="value"/>
<variable value="coding"/>
</source>
<target>
<context value="immz"/>
<contextType value="variable"/>
<element value="hivStatus"/>
<transform value="copy"/>
<parameter>
<valueId value="coding"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="FirstAnswerForPretermBirth"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="answer"/>
<condition value="item.linkId = 'pretermBirth'"/>
</source>
<rule>
<name value="SetPretermBirth"/>
<source>
<context value="answer"/>
<element value="value"/>
<variable value="content"/>
</source>
<target>
<context value="immz"/>
<contextType value="variable"/>
<element value="pretermBirth"/>
<transform value="copy"/>
<parameter>
<valueId value="content"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="FirstAnswerForImmunocompromised"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="answer"/>
<condition value="item.linkId = 'immunocompromised'"/>
</source>
<rule>
<name value="SetImmunocompromised"/>
<source>
<context value="answer"/>
<element value="value"/>
<variable value="content"/>
</source>
<target>
<context value="immz"/>
<contextType value="variable"/>
<element value="immunocompromised"/>
<transform value="copy"/>
<parameter>
<valueId value="content"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="FirstAnswerForOnART"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="answer"/>
<condition value="item.linkId = 'onART'"/>
</source>
<rule>
<name value="SetOnART"/>
<source>
<context value="answer"/>
<element value="value"/>
<variable value="content"/>
</source>
<target>
<context value="immz"/>
<contextType value="variable"/>
<element value="onART"/>
<transform value="copy"/>
<parameter>
<valueId value="content"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="ForVaccineHistory"/>
<source>
<context value="item"/>
<variable value="history"/>
<condition value="item.linkId = 'vaccineHistory'"/>
</source>
<target>
<context value="immz"/>
<contextType value="variable"/>
<element value="vaccineHistory"/>
<variable value="vaccine"/>
</target>
<rule>
<name value="HistoryLoop"/>
<source>
<context value="history"/>
<element value="item"/>
<variable value="entry"/>
</source>
<rule>
<name value="AnswerForVaccineType"/>
<source>
<context value="entry"/>
<element value="answer"/>
<variable value="answer"/>
<condition value="entry.linkId = 'vaccineType'"/>
</source>
<rule>
<name value="SetVaccineType"/>
<source>
<context value="answer"/>
<element value="value"/>
<variable value="coding"/>
</source>
<target>
<context value="vaccine"/>
<contextType value="variable"/>
<element value="vaccineType"/>
<transform value="copy"/>
<parameter>
<valueId value="coding"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="AnswerForVaccineDate"/>
<source>
<context value="entry"/>
<element value="answer"/>
<variable value="answer"/>
<condition value="entry.linkId = 'vaccineDate'"/>
</source>
<rule>
<name value="SetVaccineDate"/>
<source>
<context value="answer"/>
<element value="value"/>
<variable value="content"/>
</source>
<target>
<context value="vaccine"/>
<contextType value="variable"/>
<element value="vaccineDate"/>
<transform value="copy"/>
<parameter>
<valueId value="content"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
</rule>
</group>
</StructureMap>