Kenya Disease Surveillance FHIR Implementation Guide., published by Kenya National Public Health Institute. 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/IntelliSOFT-Consulting/Surveillance-FHIR-IG/ and changes regularly. See the Directory of published versions
| Draft as of 2026-05-04 |
<StructureMap xmlns="http://hl7.org/fhir">
<id value="AfpCaseReportMap"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureMap AfpCaseReportMap</b></p><a name="AfpCaseReportMap"> </a><a name="hcAfpCaseReportMap"> </a><pre class="fml">
<b>map</b><span style="color: navy"> "</span>http://example.org/StructureMap/AfpCaseReportMap<span style="color: navy">" = "</span>AfpCaseReportMap<span style="color: navy">"
</span><span style="color: navy">// </span><span style="color: green">AFP Case Report QuestionnaireResponse to FHIR resources</span>
<span style="color: navy">// </span><span style="color: green">Maps to: Patient, Encounter, Condition (AFP), Immunization (OPV), Specimen (stool)</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>QuestionnaireResponse <b>as </b><b>source</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/bundle.html" title="Bundle">http://hl7.org/fhir/StructureDefinition/Bundle</a><span style="color: navy">" </span><b>alias </b>Bundle <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/patient.html" title="Patient">http://hl7.org/fhir/StructureDefinition/Patient</a><span style="color: navy">" </span><b>alias </b>Patient <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/encounter.html" title="Encounter">http://hl7.org/fhir/StructureDefinition/Encounter</a><span style="color: navy">" </span><b>alias </b>Encounter <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/condition.html" title="Condition">http://hl7.org/fhir/StructureDefinition/Condition</a><span style="color: navy">" </span><b>alias </b>Condition <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/immunization.html" title="Immunization">http://hl7.org/fhir/StructureDefinition/Immunization</a><span style="color: navy">" </span><b>alias </b>Immunization <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/specimen.html" title="Specimen">http://hl7.org/fhir/StructureDefinition/Specimen</a><span style="color: navy">" </span><b>alias </b>Specimen <b>as </b><b>target</b>
<b>group </b>AfpCaseReportMap<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>QuestionnaireResponse, <b>target</b> <span style="color: maroon">bundle</span><span style="color: navy"> : </span>Bundle<span style="color: navy">)</span><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>bundle.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span> <i>"bundleId"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>bundle.type = <span style="color: blue">'transaction'</span> <i>"bundleType"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>bundle.entry<b> as </b><span style="color: maroon">e</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>e.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">patient</span><b> then </b>MapAfpPatient<span style="color: navy">(</span><span style="color: maroon">src</span><span style="color: navy">, </span><span style="color: maroon">patient</span><span style="color: navy">)</span> <i>"execPatient"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span> e.request<b> as </b><span style="color: maroon">req</span><span style="color: navy">, </span> req.method = <span style="color: blue">'PUT'</span><span style="color: navy">, </span> req.url = <span style="color: navy">(</span>'Patient/' + %src.subject.reference<span style="color: navy">)</span> <i>"patientReq"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"patientEntry"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>bundle.entry<b> as </b><span style="color: maroon">e</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Encounter'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">encounter</span><b> then </b>MapAfpEncounter<span style="color: navy">(</span><span style="color: maroon">src</span><span style="color: navy">, </span><span style="color: maroon">encounter</span><span style="color: navy">)</span> <i>"execEncounter"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span> e.request<b> as </b><span style="color: maroon">req</span><span style="color: navy">, </span> req.method = <span style="color: blue">'POST'</span><span style="color: navy">, </span> req.url = <span style="color: blue">'Encounter'</span> <i>"encounterReq"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"encounterEntry"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>bundle.entry<b> as </b><span style="color: maroon">e</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Condition'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">condition</span><b> then </b>MapAfpCondition<span style="color: navy">(</span><span style="color: maroon">src</span><span style="color: navy">, </span><span style="color: maroon">condition</span><span style="color: navy">)</span> <i>"execCondition"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span> e.request<b> as </b><span style="color: maroon">req</span><span style="color: navy">, </span> req.method = <span style="color: blue">'POST'</span><span style="color: navy">, </span> req.url = <span style="color: blue">'Condition'</span> <i>"conditionReq"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"conditionEntry"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>bundle.entry<b> as </b><span style="color: maroon">e</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>e.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">immunization</span><b> then </b>MapAfpImmunization<span style="color: navy">(</span><span style="color: maroon">src</span><span style="color: navy">, </span><span style="color: maroon">immunization</span><span style="color: navy">)</span> <i>"execImmunization"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span> e.request<b> as </b><span style="color: maroon">req</span><span style="color: navy">, </span> req.method = <span style="color: blue">'POST'</span><span style="color: navy">, </span> req.url = <span style="color: blue">'Immunization'</span> <i>"immunizationReq"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"immunizationEntry"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>bundle.entry<b> as </b><span style="color: maroon">e</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>e.resource = <b>create</b><span style="color: navy">(</span><span style="color: blue">'Specimen'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">specimen</span><b> then </b>MapAfpSpecimen<span style="color: navy">(</span><span style="color: maroon">src</span><span style="color: navy">, </span><span style="color: maroon">specimen</span><span style="color: navy">)</span> <i>"execSpecimen"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span> e.request<b> as </b><span style="color: maroon">req</span><span style="color: navy">, </span> req.method = <span style="color: blue">'POST'</span><span style="color: navy">, </span> req.url = <span style="color: blue">'Specimen'</span> <i>"specimenReq"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"specimenEntry"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>MapAfpPatient<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>QuestionnaireResponse, <b>target</b> <span style="color: maroon">patient</span><span style="color: navy"> : </span>Patient<span style="color: navy">)</span><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>patient.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span> <i>"patientId"</i><span style="color: navy">;</span>
src.item<b> as </b><span style="color: maroon">demographics</span><b> where </b>linkId = '359809652429'<b> then</b><span style="color: navy"> {
</span> <span style="color: navy">// </span><span style="color: green">Given name</span>
demographics.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '873240407472'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span> patient.name<b> as </b><span style="color: maroon">name</span><span style="color: navy">, </span> name.given = <span style="color: maroon">ans.valueString</span> <i>"givenName"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"firstName"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Middle name (appended to given)</span>
demographics.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '246751846436'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span> patient.name<b> as </b><span style="color: maroon">name</span><span style="color: navy">, </span> name.given = <span style="color: maroon">ans.valueString</span> <i>"middleName"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"middleName"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Family name</span>
demographics.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '486402457213'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span> patient.name<b> as </b><span style="color: maroon">name</span><span style="color: navy">, </span> name.family = <span style="color: maroon">ans.valueString</span> <i>"familyName"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"familyName"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Gender</span>
demographics.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '929966324957'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>patient.gender = <span style="color: navy">(</span>ans.valueCoding.code<span style="color: navy">)</span> <i>"gender"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"gender"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Date of birth</span>
demographics.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '257830485990'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>patient.birthDate = <span style="color: maroon">ans.valueDate</span> <i>"birthDate"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"birthDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Parent / Guardian name as contact</span>
demographics.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '856448027666'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>patient.contact<b> as </b><span style="color: maroon">contact</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span> contact.name<b> as </b><span style="color: maroon">cname</span><span style="color: navy">, </span> cname.text = <span style="color: maroon">ans.valueString</span> <i>"contactName"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"parentContact"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"parentName"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Parent / Guardian phone</span>
demographics.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '576318206363'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span> patient.telecom<b> as </b><span style="color: maroon">tel</span><span style="color: navy">, </span> tel.system = <span style="color: blue">'phone'</span><span style="color: navy">, </span> tel.value = <span style="color: maroon">ans.valueString</span> <i>"phone"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"phone"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Residence address</span>
demographics.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = 'residence-details'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span> patient.address<b> as </b><span style="color: maroon">addr</span><span style="color: navy">, </span> addr.text = <span style="color: maroon">ans.valueString</span> <i>"address"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"address"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Neighborhood landmark</span>
demographics.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '946232932304'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span> patient.address<b> as </b><span style="color: maroon">addr</span><span style="color: navy">, </span> addr.district = <span style="color: maroon">ans.valueString</span> <i>"landmark"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"landmark"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"demographics"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>MapAfpEncounter<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>QuestionnaireResponse, <b>target</b> <span style="color: maroon">encounter</span><span style="color: navy"> : </span>Encounter<span style="color: navy">)</span><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>encounter.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span> <i>"encounterId"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>encounter.status = <span style="color: blue">'finished'</span> <i>"status"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>encounter.class<b> as </b><span style="color: maroon">cls</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>cls.system = <span style="color: blue">'http://terminology.hl7.org/CodeSystem/v3-ActCode'</span> <i>"clsSys"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>cls.code = <span style="color: blue">'AMB'</span> <i>"clsCode"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"class"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Subject reference</span>
src.subject<b> as </b><span style="color: maroon">subj</span><span style="color: navy"><b> -> </b></span> encounter.subject<b> as </b><span style="color: maroon">ref</span><span style="color: navy">, </span> ref.reference = <span style="color: navy">(</span>'Patient/' + subj.reference<span style="color: navy">)</span><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Reporting site page</span>
src.item<b> as </b><span style="color: maroon">reportSite</span><b> where </b>linkId = '151479012557'<b> then</b><span style="color: navy"> {
</span> <span style="color: navy">// </span><span style="color: green">EPID No as identifier</span>
reportSite.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '992818778559'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>encounter.identifier<b> as </b><span style="color: maroon">id</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span>id.system = <span style="color: blue">'http://example.org/identifier/epid'</span> <i>"epidSys"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>id.value = <span style="color: maroon">ans.valueString</span> <i>"epidValue"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"epidId"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"epidNo"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"reportSite"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Case information page</span>
src.item<b> as </b><span style="color: maroon">caseInfo</span><b> where </b>linkId = '451840456960'<b> then</b><span style="color: navy"> {
</span> <span style="color: navy">// </span><span style="color: green">Date of investigation as period start</span>
caseInfo.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '502488184403'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span> encounter.period<b> as </b><span style="color: maroon">period</span><span style="color: navy">, </span> period.start = <span style="color: maroon">ans.valueDate</span> <i>"periodStart"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"investigationDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Date of notification extension</span>
caseInfo.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '426321975477'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>encounter.extension<b> as </b><span style="color: maroon">ext</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span>ext.url = <span style="color: blue">'http://example.org/StructureDefinition/notificationDate'</span> <i>"extUrl"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>ext.valueDate = <span style="color: maroon">ans.valueDate</span> <i>"extValue"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"notificationExt"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"notificationDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Notified by</span>
caseInfo.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '171292274939'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>encounter.extension<b> as </b><span style="color: maroon">ext</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span>ext.url = <span style="color: blue">'http://example.org/StructureDefinition/notifiedBy'</span> <i>"extUrl"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>ext.valueString = <span style="color: navy">(</span>ans.valueCoding.display<span style="color: navy">)</span> <i>"extValue"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"notifiedByExt"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"notifiedBy"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Admission date</span>
caseInfo.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '507199621281'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>encounter.hospitalization<b> as </b><span style="color: maroon">hosp</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span> hosp.admitSource<b> as </b><span style="color: maroon">src</span><span style="color: navy">, </span> src.coding<b> as </b><span style="color: maroon">cod</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span>cod.system = <span style="color: blue">'http://terminology.hl7.org/CodeSystem/admit-source'</span> <i>"admitSys"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>cod.code = <span style="color: blue">'hosp-trans'</span> <i>"admitCode"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"admitSource"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"hospitalization"</i><span style="color: navy">;</span>
item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span> encounter.period<b> as </b><span style="color: maroon">period</span><span style="color: navy">, </span> period.start = <span style="color: maroon">ans.valueDate</span> <i>"admitDate"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"admissionDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">IP/OP number</span>
caseInfo.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '525996604810'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>encounter.identifier<b> as </b><span style="color: maroon">id</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span>id.system = <span style="color: blue">'http://example.org/identifier/ip-op'</span> <i>"ipopSys"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>id.value = <span style="color: maroon">ans.valueString</span> <i>"ipopValue"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"ipopId"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"ipopNo"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"caseInfo"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>MapAfpCondition<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>QuestionnaireResponse, <b>target</b> <span style="color: maroon">condition</span><span style="color: navy"> : </span>Condition<span style="color: navy">)</span><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>condition.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span> <i>"conditionId"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">AFP SNOMED code</span>
src<span style="color: navy"><b> -> </b></span>condition.code<b> as </b><span style="color: maroon">code</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>code.coding<b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>coding.system = <span style="color: blue">'http://snomed.info/sct'</span> <i>"snomedSys"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.code = <span style="color: blue">'398102009'</span> <i>"afpCode"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.display = <span style="color: blue">'Acute flaccid paralysis'</span> <i>"afpDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"afpCoding"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>code.text = <span style="color: blue">'Acute Flaccid Paralysis (AFP)'</span> <i>"afpText"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"afpCodeBlock"</i><span style="color: navy">;</span>
src.subject<b> as </b><span style="color: maroon">subj</span><span style="color: navy"><b> -> </b></span> condition.subject<b> as </b><span style="color: maroon">ref</span><span style="color: navy">, </span> ref.reference = <span style="color: navy">(</span>'Patient/' + subj.reference<span style="color: navy">)</span><span style="color: navy">;</span>
src.item<b> as </b><span style="color: maroon">clinicalInfo</span><b> where </b>linkId = '735342695013'<b> then</b><span style="color: navy"> {
</span> <span style="color: navy">// </span><span style="color: green">Date of onset of paralysis</span>
clinicalInfo.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '728034137219'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>condition.onset = <span style="color: maroon">ans.valueDate</span> <i>"onsetDate"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"onsetDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Outcome → clinical status</span>
clinicalInfo.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '212304573462'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>condition.clinicalStatus<b> as </b><span style="color: maroon">status</span><b> then</b><span style="color: navy"> {
</span> ans.valueCoding<b> as </b><span style="color: maroon">val</span><b> where </b>code = 'dead'<span style="color: navy"><b> -> </b></span> status.coding<b> as </b><span style="color: maroon">cod</span><span style="color: navy">, </span> cod.system = <span style="color: blue">'http://terminology.hl7.org/CodeSystem/condition-clinical'</span><span style="color: navy">, </span> cod.code = <span style="color: blue">'inactive'</span> <i>"deadStatus"</i><span style="color: navy">;</span>
ans.valueCoding<b> as </b><span style="color: maroon">val</span><b> where </b>code = 'alive'<span style="color: navy"><b> -> </b></span> status.coding<b> as </b><span style="color: maroon">cod</span><span style="color: navy">, </span> cod.system = <span style="color: blue">'http://terminology.hl7.org/CodeSystem/condition-clinical'</span><span style="color: navy">, </span> cod.code = <span style="color: blue">'active'</span> <i>"aliveStatus"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"clinicalStatus"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"outcome"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Fever at onset as note</span>
clinicalInfo.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '932108244312'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span> condition.note<b> as </b><span style="color: maroon">note</span><span style="color: navy">, </span> note.text = <span style="color: navy">(</span>iif(ans.valueCoding.code = 'yes', 'Fever at onset: Yes', 'Fever at onset: No')<span style="color: navy">)</span> <i>"feverNote"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"fever"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Site of paralysis as body site</span>
clinicalInfo.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '828001350323'<b> then</b><span style="color: navy"> {
</span> item.answer<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>condition.bodySite<b> as </b><span style="color: maroon">bodySite</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span> bodySite.coding<b> as </b><span style="color: maroon">cod</span><span style="color: navy">, </span> cod.system = <span style="color: blue">'http://snomed.info/sct'</span><span style="color: navy">, </span> cod.display = <span style="color: navy">(</span>ans.valueCoding.display<span style="color: navy">)</span> <i>"bodySiteCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"paralysisBodySite"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"paralysisBodySites"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">True AFP confirmation</span>
clinicalInfo.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '564450145870'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>condition.verificationStatus<b> as </b><span style="color: maroon">vs</span><b> then</b><span style="color: navy"> {
</span> ans.valueCoding<b> as </b><span style="color: maroon">val</span><b> where </b>code = 'yes'<span style="color: navy"><b> -> </b></span> vs.coding<b> as </b><span style="color: maroon">cod</span><span style="color: navy">, </span> cod.system = <span style="color: blue">'http://terminology.hl7.org/CodeSystem/condition-ver-status'</span><span style="color: navy">, </span> cod.code = <span style="color: blue">'confirmed'</span> <i>"confirmed"</i><span style="color: navy">;</span>
ans.valueCoding<b> as </b><span style="color: maroon">val</span><b> where </b>code = 'no'<span style="color: navy"><b> -> </b></span> vs.coding<b> as </b><span style="color: maroon">cod</span><span style="color: navy">, </span> cod.system = <span style="color: blue">'http://terminology.hl7.org/CodeSystem/condition-ver-status'</span><span style="color: navy">, </span> cod.code = <span style="color: blue">'refuted'</span> <i>"refuted"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"verificationStatus"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"trueAfp"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"clinicalInfo"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>MapAfpImmunization<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>QuestionnaireResponse, <b>target</b> <span style="color: maroon">immunization</span><span style="color: navy"> : </span>Immunization<span style="color: navy">)</span><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>immunization.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span> <i>"immunizationId"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>immunization.status = <span style="color: blue">'completed'</span> <i>"status"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">OPV vaccine code</span>
src<span style="color: navy"><b> -> </b></span>immunization.vaccineCode<b> as </b><span style="color: maroon">code</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>code.coding<b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>coding.system = <span style="color: blue">'http://hl7.org/fhir/sid/cvx'</span> <i>"cvxSys"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.code = <span style="color: blue">'02'</span> <i>"opvCode"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.display = <span style="color: blue">'Oral Poliovirus Vaccine (OPV)'</span> <i>"opvDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"opvCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"vaccineCode"</i><span style="color: navy">;</span>
src.subject<b> as </b><span style="color: maroon">subj</span><span style="color: navy"><b> -> </b></span> immunization.patient<b> as </b><span style="color: maroon">ref</span><span style="color: navy">, </span> ref.reference = <span style="color: navy">(</span>'Patient/' + subj.reference<span style="color: navy">)</span> <i>"patient"</i><span style="color: navy">;</span>
src.item<b> as </b><span style="color: maroon">vaccination</span><b> where </b>linkId = '446305443608'<b> then</b><span style="color: navy"> {
</span> <span style="color: navy">// </span><span style="color: green">Vaccination status</span>
vaccination.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '970455623029'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><b> where </b>valueCoding.code = 'no'<span style="color: navy"><b> -> </b></span>immunization.status = <span style="color: blue">'not-done'</span> <i>"notVaccinated"</i><span style="color: navy">;</span>
item.answer first<b> as </b><span style="color: maroon">ans</span><b> where </b>valueCoding.code = 'unknown'<span style="color: navy"><b> -> </b></span> immunization.statusReason<b> as </b><span style="color: maroon">reason</span><span style="color: navy">, </span> reason.text = <span style="color: blue">'Unknown vaccination status'</span> <i>"unknownStatus"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"vaccinationStatus"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Number of doses</span>
vaccination.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '886125589225'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>immunization.protocolApplied<b> as </b><span style="color: maroon">protocol</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span>protocol.doseNumber = <span style="color: maroon">ans.valueInteger</span> <i>"doseNumber"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"protocol"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"doses"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Date of OPV at birth</span>
vaccination.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '413372430071'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>immunization.occurrenceDateTime = <span style="color: maroon">ans.valueDate</span> <i>"opvBirthDate"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"opvBirth"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Date of last OPV dose through SIA</span>
vaccination.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '910678978959'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>immunization.extension<b> as </b><span style="color: maroon">ext</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span>ext.url = <span style="color: blue">'http://example.org/StructureDefinition/lastSIADate'</span> <i>"extUrl"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>ext.valueDate = <span style="color: maroon">ans.valueDate</span> <i>"extValue"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"lastSIADate"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"siaDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Source of vaccination information</span>
vaccination.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '650080600932'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>immunization.reportOrigin<b> as </b><span style="color: maroon">origin</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span> origin.coding<b> as </b><span style="color: maroon">cod</span><span style="color: navy">, </span> cod.system = <span style="color: blue">'http://example.org/CodeSystem/vaccination-info-source'</span><span style="color: navy">, </span> cod.code = <span style="color: navy">(</span>ans.valueCoding.code<span style="color: navy">)</span><span style="color: navy">, </span> cod.display = <span style="color: navy">(</span>ans.valueCoding.display<span style="color: navy">)</span> <i>"origin"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"reportOrigin"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"infoSource"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"vaccination"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>MapAfpSpecimen<span style="color: navy">(</span><b>source</b> <span style="color: maroon">src</span><span style="color: navy"> : </span>QuestionnaireResponse, <b>target</b> <span style="color: maroon">specimen</span><span style="color: navy"> : </span>Specimen<span style="color: navy">)</span><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>specimen.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span> <i>"specimenId"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Stool specimen type</span>
src<span style="color: navy"><b> -> </b></span>specimen.type<b> as </b><span style="color: maroon">type</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>type.coding<b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>coding.system = <span style="color: blue">'http://snomed.info/sct'</span> <i>"snomedSys"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.code = <span style="color: blue">'119339001'</span> <i>"stoolCode"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.display = <span style="color: blue">'Stool specimen'</span> <i>"stoolDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"stoolCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"specimenType"</i><span style="color: navy">;</span>
src.subject<b> as </b><span style="color: maroon">subj</span><span style="color: navy"><b> -> </b></span> specimen.subject<b> as </b><span style="color: maroon">ref</span><span style="color: navy">, </span> ref.reference = <span style="color: navy">(</span>'Patient/' + subj.reference<span style="color: navy">)</span><span style="color: navy">;</span>
src.item<b> as </b><span style="color: maroon">stoolCollection</span><b> where </b>linkId = '350784256533'<b> then</b><span style="color: navy"> {
</span> <span style="color: navy">// </span><span style="color: green">Date of first specimen collection</span>
stoolCollection.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '737703942433'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span> specimen.collection<b> as </b><span style="color: maroon">coll</span><span style="color: navy">, </span> coll.collectedDateTime = <span style="color: maroon">ans.valueDate</span> <i>"firstSpecimen"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"firstSpecimenDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Date of second specimen (as processing step)</span>
stoolCollection.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '711388438654'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>specimen.processing<b> as </b><span style="color: maroon">proc</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span>proc.description = <span style="color: blue">'2nd specimen collected'</span> <i>"procDesc"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>proc.timeDateTime = <span style="color: maroon">ans.valueDate</span> <i>"procTime"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"secondSpecimen"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"secondSpecimenDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Date sent to national level</span>
stoolCollection.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '808177332790'<b> then</b><span style="color: navy"> {
</span> item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>specimen.processing<b> as </b><span style="color: maroon">proc</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span>proc.description = <span style="color: blue">'Specimen sent to national level'</span> <i>"procDesc"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>proc.timeDateTime = <span style="color: maroon">ans.valueDate</span> <i>"procTime"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"sentToNational"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"sentToNationalDate"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"stoolCollection"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span></pre></div>
</text>
<url value="http://example.org/StructureMap/AfpCaseReportMap"/>
<version value="0.1.0"/>
<name value="AfpCaseReportMap"/>
<status value="draft"/>
<date value="2026-05-04T06:19:40+00:00"/>
<publisher value="Kenya National Public Health Institute"/>
<contact>
<name value="Kenya National Public Health Institute"/>
<telecom>
<system value="url"/>
<value value="https://www.nphi.go.ke/"/>
</telecom>
</contact>
<contact>
<name value="Kenya National Public Health Institute"/>
<telecom>
<system value="url"/>
<value value="https://www.nphi.go.ke/"/>
<use value="work"/>
</telecom>
</contact>
<description
value="AFP Case Report QuestionnaireResponse to FHIR resources
Maps to: Patient, Encounter, Condition (AFP), Immunization (OPV), Specimen (stool)"/>
<jurisdiction>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="KE"/>
<display value="Kenya"/>
</coding>
</jurisdiction>
<structure>
<url
value="http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse"/>
<mode value="source"/>
<alias value="QuestionnaireResponse"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Bundle"/>
<mode value="target"/>
<alias value="Bundle"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Patient"/>
<mode value="target"/>
<alias value="Patient"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Encounter"/>
<mode value="target"/>
<alias value="Encounter"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Condition"/>
<mode value="target"/>
<alias value="Condition"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Immunization"/>
<mode value="target"/>
<alias value="Immunization"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/Specimen"/>
<mode value="target"/>
<alias value="Specimen"/>
</structure>
<group>
<name value="AfpCaseReportMap"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="QuestionnaireResponse"/>
<mode value="source"/>
</input>
<input>
<name value="bundle"/>
<type value="Bundle"/>
<mode value="target"/>
</input>
<rule>
<name value="bundleId"/>
<source>
<context value="src"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="uuid"/>
</target>
</rule>
<rule>
<name value="bundleType"/>
<source>
<context value="src"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="type"/>
<transform value="copy"/>
<parameter>
<valueString value="transaction"/>
</parameter>
</target>
</rule>
<rule>
<name value="patientEntry"/>
<source>
<context value="src"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<rule>
<name value="execPatient"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="patient"/>
<transform value="create"/>
<parameter>
<valueString value="Patient"/>
</parameter>
</target>
<dependent>
<name value="MapAfpPatient"/>
<variable value="src"/>
<variable value="patient"/>
</dependent>
</rule>
<rule>
<name value="patientReq"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="request"/>
<variable value="req"/>
</target>
<target>
<context value="req"/>
<contextType value="variable"/>
<element value="method"/>
<transform value="copy"/>
<parameter>
<valueString value="PUT"/>
</parameter>
</target>
<target>
<context value="req"/>
<contextType value="variable"/>
<element value="url"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'Patient/' + %src.subject.reference"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="encounterEntry"/>
<source>
<context value="src"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<rule>
<name value="execEncounter"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="encounter"/>
<transform value="create"/>
<parameter>
<valueString value="Encounter"/>
</parameter>
</target>
<dependent>
<name value="MapAfpEncounter"/>
<variable value="src"/>
<variable value="encounter"/>
</dependent>
</rule>
<rule>
<name value="encounterReq"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="request"/>
<variable value="req"/>
</target>
<target>
<context value="req"/>
<contextType value="variable"/>
<element value="method"/>
<transform value="copy"/>
<parameter>
<valueString value="POST"/>
</parameter>
</target>
<target>
<context value="req"/>
<contextType value="variable"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString value="Encounter"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="conditionEntry"/>
<source>
<context value="src"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<rule>
<name value="execCondition"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="condition"/>
<transform value="create"/>
<parameter>
<valueString value="Condition"/>
</parameter>
</target>
<dependent>
<name value="MapAfpCondition"/>
<variable value="src"/>
<variable value="condition"/>
</dependent>
</rule>
<rule>
<name value="conditionReq"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="request"/>
<variable value="req"/>
</target>
<target>
<context value="req"/>
<contextType value="variable"/>
<element value="method"/>
<transform value="copy"/>
<parameter>
<valueString value="POST"/>
</parameter>
</target>
<target>
<context value="req"/>
<contextType value="variable"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString value="Condition"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="immunizationEntry"/>
<source>
<context value="src"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<rule>
<name value="execImmunization"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="immunization"/>
<transform value="create"/>
<parameter>
<valueString value="Immunization"/>
</parameter>
</target>
<dependent>
<name value="MapAfpImmunization"/>
<variable value="src"/>
<variable value="immunization"/>
</dependent>
</rule>
<rule>
<name value="immunizationReq"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="request"/>
<variable value="req"/>
</target>
<target>
<context value="req"/>
<contextType value="variable"/>
<element value="method"/>
<transform value="copy"/>
<parameter>
<valueString value="POST"/>
</parameter>
</target>
<target>
<context value="req"/>
<contextType value="variable"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString value="Immunization"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="specimenEntry"/>
<source>
<context value="src"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<rule>
<name value="execSpecimen"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="specimen"/>
<transform value="create"/>
<parameter>
<valueString value="Specimen"/>
</parameter>
</target>
<dependent>
<name value="MapAfpSpecimen"/>
<variable value="src"/>
<variable value="specimen"/>
</dependent>
</rule>
<rule>
<name value="specimenReq"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="request"/>
<variable value="req"/>
</target>
<target>
<context value="req"/>
<contextType value="variable"/>
<element value="method"/>
<transform value="copy"/>
<parameter>
<valueString value="POST"/>
</parameter>
</target>
<target>
<context value="req"/>
<contextType value="variable"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString value="Specimen"/>
</parameter>
</target>
</rule>
</rule>
</group>
<group>
<name value="MapAfpPatient"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="QuestionnaireResponse"/>
<mode value="source"/>
</input>
<input>
<name value="patient"/>
<type value="Patient"/>
<mode value="target"/>
</input>
<rule>
<name value="patientId"/>
<source>
<context value="src"/>
</source>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="uuid"/>
</target>
</rule>
<rule>
<name value="demographics"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="demographics"/>
<condition value="linkId = '359809652429'"/>
</source>
<rule>
<name value="firstName"/>
<source>
<context value="demographics"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '873240407472'"/>
</source>
<rule>
<name value="givenName"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="name"/>
<variable value="name"/>
</target>
<target>
<context value="name"/>
<contextType value="variable"/>
<element value="given"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueString"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="middleName"/>
<source>
<context value="demographics"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '246751846436'"/>
</source>
<rule>
<name value="middleName"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="name"/>
<variable value="name"/>
</target>
<target>
<context value="name"/>
<contextType value="variable"/>
<element value="given"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueString"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="familyName"/>
<source>
<context value="demographics"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '486402457213'"/>
</source>
<rule>
<name value="familyName"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="name"/>
<variable value="name"/>
</target>
<target>
<context value="name"/>
<contextType value="variable"/>
<element value="family"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueString"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="gender"/>
<source>
<context value="demographics"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '929966324957'"/>
</source>
<rule>
<name value="gender"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="gender"/>
<transform value="evaluate"/>
<parameter>
<valueString value="ans.valueCoding.code"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="birthDate"/>
<source>
<context value="demographics"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '257830485990'"/>
</source>
<rule>
<name value="birthDate"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="birthDate"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="parentName"/>
<source>
<context value="demographics"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '856448027666'"/>
</source>
<rule>
<name value="parentContact"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="contact"/>
<variable value="contact"/>
</target>
<rule>
<name value="contactName"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="contact"/>
<contextType value="variable"/>
<element value="name"/>
<variable value="cname"/>
</target>
<target>
<context value="cname"/>
<contextType value="variable"/>
<element value="text"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueString"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="phone"/>
<source>
<context value="demographics"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '576318206363'"/>
</source>
<rule>
<name value="phone"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="telecom"/>
<variable value="tel"/>
</target>
<target>
<context value="tel"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="phone"/>
</parameter>
</target>
<target>
<context value="tel"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueString"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="address"/>
<source>
<context value="demographics"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = 'residence-details'"/>
</source>
<rule>
<name value="address"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="address"/>
<variable value="addr"/>
</target>
<target>
<context value="addr"/>
<contextType value="variable"/>
<element value="text"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueString"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="landmark"/>
<source>
<context value="demographics"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '946232932304'"/>
</source>
<rule>
<name value="landmark"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="patient"/>
<contextType value="variable"/>
<element value="address"/>
<variable value="addr"/>
</target>
<target>
<context value="addr"/>
<contextType value="variable"/>
<element value="district"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueString"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</group>
<group>
<name value="MapAfpEncounter"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="QuestionnaireResponse"/>
<mode value="source"/>
</input>
<input>
<name value="encounter"/>
<type value="Encounter"/>
<mode value="target"/>
</input>
<rule>
<name value="encounterId"/>
<source>
<context value="src"/>
</source>
<target>
<context value="encounter"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="uuid"/>
</target>
</rule>
<rule>
<name value="status"/>
<source>
<context value="src"/>
</source>
<target>
<context value="encounter"/>
<contextType value="variable"/>
<element value="status"/>
<transform value="copy"/>
<parameter>
<valueString value="finished"/>
</parameter>
</target>
</rule>
<rule>
<name value="class"/>
<source>
<context value="src"/>
</source>
<target>
<context value="encounter"/>
<contextType value="variable"/>
<element value="class"/>
<variable value="cls"/>
</target>
<rule>
<name value="clsSys"/>
<source>
<context value="src"/>
</source>
<target>
<context value="cls"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://terminology.hl7.org/CodeSystem/v3-ActCode"/>
</parameter>
</target>
</rule>
<rule>
<name value="clsCode"/>
<source>
<context value="src"/>
</source>
<target>
<context value="cls"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="AMB"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="subject"/>
<source>
<context value="src"/>
<element value="subject"/>
<variable value="subj"/>
</source>
<target>
<context value="encounter"/>
<contextType value="variable"/>
<element value="subject"/>
<variable value="ref"/>
</target>
<target>
<context value="ref"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'Patient/' + subj.reference"/>
</parameter>
</target>
</rule>
<rule>
<name value="reportSite"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="reportSite"/>
<condition value="linkId = '151479012557'"/>
</source>
<rule>
<name value="epidNo"/>
<source>
<context value="reportSite"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '992818778559'"/>
</source>
<rule>
<name value="epidId"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="encounter"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="id"/>
</target>
<rule>
<name value="epidSys"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="id"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://example.org/identifier/epid"/>
</parameter>
</target>
</rule>
<rule>
<name value="epidValue"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="id"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueString"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
<rule>
<name value="caseInfo"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="caseInfo"/>
<condition value="linkId = '451840456960'"/>
</source>
<rule>
<name value="investigationDate"/>
<source>
<context value="caseInfo"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '502488184403'"/>
</source>
<rule>
<name value="periodStart"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="encounter"/>
<contextType value="variable"/>
<element value="period"/>
<variable value="period"/>
</target>
<target>
<context value="period"/>
<contextType value="variable"/>
<element value="start"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="notificationDate"/>
<source>
<context value="caseInfo"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '426321975477'"/>
</source>
<rule>
<name value="notificationExt"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="encounter"/>
<contextType value="variable"/>
<element value="extension"/>
<variable value="ext"/>
</target>
<rule>
<name value="extUrl"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="ext"/>
<contextType value="variable"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://example.org/StructureDefinition/notificationDate"/>
</parameter>
</target>
</rule>
<rule>
<name value="extValue"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="ext"/>
<contextType value="variable"/>
<element value="valueDate"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="notifiedBy"/>
<source>
<context value="caseInfo"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '171292274939'"/>
</source>
<rule>
<name value="notifiedByExt"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="encounter"/>
<contextType value="variable"/>
<element value="extension"/>
<variable value="ext"/>
</target>
<rule>
<name value="extUrl"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="ext"/>
<contextType value="variable"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://example.org/StructureDefinition/notifiedBy"/>
</parameter>
</target>
</rule>
<rule>
<name value="extValue"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="ext"/>
<contextType value="variable"/>
<element value="valueString"/>
<transform value="evaluate"/>
<parameter>
<valueString value="ans.valueCoding.display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="admissionDate"/>
<source>
<context value="caseInfo"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '507199621281'"/>
</source>
<rule>
<name value="hospitalization"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="encounter"/>
<contextType value="variable"/>
<element value="hospitalization"/>
<variable value="hosp"/>
</target>
<rule>
<name value="admitSource"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="hosp"/>
<contextType value="variable"/>
<element value="admitSource"/>
<variable value="src"/>
</target>
<target>
<context value="src"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="cod"/>
</target>
<rule>
<name value="admitSys"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://terminology.hl7.org/CodeSystem/admit-source"/>
</parameter>
</target>
</rule>
<rule>
<name value="admitCode"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="hosp-trans"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="admitDate"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="encounter"/>
<contextType value="variable"/>
<element value="period"/>
<variable value="period"/>
</target>
<target>
<context value="period"/>
<contextType value="variable"/>
<element value="start"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="ipopNo"/>
<source>
<context value="caseInfo"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '525996604810'"/>
</source>
<rule>
<name value="ipopId"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="encounter"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="id"/>
</target>
<rule>
<name value="ipopSys"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="id"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://example.org/identifier/ip-op"/>
</parameter>
</target>
</rule>
<rule>
<name value="ipopValue"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="id"/>
<contextType value="variable"/>
<element value="value"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueString"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
</group>
<group>
<name value="MapAfpCondition"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="QuestionnaireResponse"/>
<mode value="source"/>
</input>
<input>
<name value="condition"/>
<type value="Condition"/>
<mode value="target"/>
</input>
<rule>
<name value="conditionId"/>
<source>
<context value="src"/>
</source>
<target>
<context value="condition"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="uuid"/>
</target>
</rule>
<rule>
<name value="afpCodeBlock"/>
<source>
<context value="src"/>
</source>
<target>
<context value="condition"/>
<contextType value="variable"/>
<element value="code"/>
<variable value="code"/>
</target>
<rule>
<name value="afpCoding"/>
<source>
<context value="src"/>
</source>
<target>
<context value="code"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
</target>
<rule>
<name value="snomedSys"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://snomed.info/sct"/>
</parameter>
</target>
</rule>
<rule>
<name value="afpCode"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="398102009"/>
</parameter>
</target>
</rule>
<rule>
<name value="afpDisplay"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Acute flaccid paralysis"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="afpText"/>
<source>
<context value="src"/>
</source>
<target>
<context value="code"/>
<contextType value="variable"/>
<element value="text"/>
<transform value="copy"/>
<parameter>
<valueString value="Acute Flaccid Paralysis (AFP)"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="subject"/>
<source>
<context value="src"/>
<element value="subject"/>
<variable value="subj"/>
</source>
<target>
<context value="condition"/>
<contextType value="variable"/>
<element value="subject"/>
<variable value="ref"/>
</target>
<target>
<context value="ref"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'Patient/' + subj.reference"/>
</parameter>
</target>
</rule>
<rule>
<name value="clinicalInfo"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="clinicalInfo"/>
<condition value="linkId = '735342695013'"/>
</source>
<rule>
<name value="onsetDate"/>
<source>
<context value="clinicalInfo"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '728034137219'"/>
</source>
<rule>
<name value="onsetDate"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="condition"/>
<contextType value="variable"/>
<element value="onset"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="outcome"/>
<source>
<context value="clinicalInfo"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '212304573462'"/>
</source>
<rule>
<name value="clinicalStatus"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="condition"/>
<contextType value="variable"/>
<element value="clinicalStatus"/>
<variable value="status"/>
</target>
<rule>
<name value="deadStatus"/>
<source>
<context value="ans"/>
<element value="valueCoding"/>
<variable value="val"/>
<condition value="code = 'dead'"/>
</source>
<target>
<context value="status"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="cod"/>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="inactive"/>
</parameter>
</target>
</rule>
<rule>
<name value="aliveStatus"/>
<source>
<context value="ans"/>
<element value="valueCoding"/>
<variable value="val"/>
<condition value="code = 'alive'"/>
</source>
<target>
<context value="status"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="cod"/>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="active"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="fever"/>
<source>
<context value="clinicalInfo"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '932108244312'"/>
</source>
<rule>
<name value="feverNote"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="condition"/>
<contextType value="variable"/>
<element value="note"/>
<variable value="note"/>
</target>
<target>
<context value="note"/>
<contextType value="variable"/>
<element value="text"/>
<transform value="evaluate"/>
<parameter>
<valueString
value="iif(ans.valueCoding.code = 'yes', 'Fever at onset: Yes', 'Fever at onset: No')"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="paralysisBodySites"/>
<source>
<context value="clinicalInfo"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '828001350323'"/>
</source>
<rule>
<name value="paralysisBodySite"/>
<source>
<context value="item"/>
<element value="answer"/>
<variable value="ans"/>
</source>
<target>
<context value="condition"/>
<contextType value="variable"/>
<element value="bodySite"/>
<variable value="bodySite"/>
</target>
<rule>
<name value="bodySiteCoding"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="bodySite"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="cod"/>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://snomed.info/sct"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueString value="ans.valueCoding.display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="trueAfp"/>
<source>
<context value="clinicalInfo"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '564450145870'"/>
</source>
<rule>
<name value="verificationStatus"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="condition"/>
<contextType value="variable"/>
<element value="verificationStatus"/>
<variable value="vs"/>
</target>
<rule>
<name value="confirmed"/>
<source>
<context value="ans"/>
<element value="valueCoding"/>
<variable value="val"/>
<condition value="code = 'yes'"/>
</source>
<target>
<context value="vs"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="cod"/>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://terminology.hl7.org/CodeSystem/condition-ver-status"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="confirmed"/>
</parameter>
</target>
</rule>
<rule>
<name value="refuted"/>
<source>
<context value="ans"/>
<element value="valueCoding"/>
<variable value="val"/>
<condition value="code = 'no'"/>
</source>
<target>
<context value="vs"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="cod"/>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://terminology.hl7.org/CodeSystem/condition-ver-status"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="refuted"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
</group>
<group>
<name value="MapAfpImmunization"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="QuestionnaireResponse"/>
<mode value="source"/>
</input>
<input>
<name value="immunization"/>
<type value="Immunization"/>
<mode value="target"/>
</input>
<rule>
<name value="immunizationId"/>
<source>
<context value="src"/>
</source>
<target>
<context value="immunization"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="uuid"/>
</target>
</rule>
<rule>
<name value="status"/>
<source>
<context value="src"/>
</source>
<target>
<context value="immunization"/>
<contextType value="variable"/>
<element value="status"/>
<transform value="copy"/>
<parameter>
<valueString value="completed"/>
</parameter>
</target>
</rule>
<rule>
<name value="vaccineCode"/>
<source>
<context value="src"/>
</source>
<target>
<context value="immunization"/>
<contextType value="variable"/>
<element value="vaccineCode"/>
<variable value="code"/>
</target>
<rule>
<name value="opvCoding"/>
<source>
<context value="src"/>
</source>
<target>
<context value="code"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
</target>
<rule>
<name value="cvxSys"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://hl7.org/fhir/sid/cvx"/>
</parameter>
</target>
</rule>
<rule>
<name value="opvCode"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="02"/>
</parameter>
</target>
</rule>
<rule>
<name value="opvDisplay"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Oral Poliovirus Vaccine (OPV)"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="patient"/>
<source>
<context value="src"/>
<element value="subject"/>
<variable value="subj"/>
</source>
<target>
<context value="immunization"/>
<contextType value="variable"/>
<element value="patient"/>
<variable value="ref"/>
</target>
<target>
<context value="ref"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'Patient/' + subj.reference"/>
</parameter>
</target>
</rule>
<rule>
<name value="vaccination"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="vaccination"/>
<condition value="linkId = '446305443608'"/>
</source>
<rule>
<name value="vaccinationStatus"/>
<source>
<context value="vaccination"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '970455623029'"/>
</source>
<rule>
<name value="notVaccinated"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
<condition value="valueCoding.code = 'no'"/>
</source>
<target>
<context value="immunization"/>
<contextType value="variable"/>
<element value="status"/>
<transform value="copy"/>
<parameter>
<valueString value="not-done"/>
</parameter>
</target>
</rule>
<rule>
<name value="unknownStatus"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
<condition value="valueCoding.code = 'unknown'"/>
</source>
<target>
<context value="immunization"/>
<contextType value="variable"/>
<element value="statusReason"/>
<variable value="reason"/>
</target>
<target>
<context value="reason"/>
<contextType value="variable"/>
<element value="text"/>
<transform value="copy"/>
<parameter>
<valueString value="Unknown vaccination status"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="doses"/>
<source>
<context value="vaccination"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '886125589225'"/>
</source>
<rule>
<name value="protocol"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="immunization"/>
<contextType value="variable"/>
<element value="protocolApplied"/>
<variable value="protocol"/>
</target>
<rule>
<name value="doseNumber"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="protocol"/>
<contextType value="variable"/>
<element value="doseNumber"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueInteger"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="opvBirth"/>
<source>
<context value="vaccination"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '413372430071'"/>
</source>
<rule>
<name value="opvBirthDate"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="immunization"/>
<contextType value="variable"/>
<element value="occurrenceDateTime"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="siaDate"/>
<source>
<context value="vaccination"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '910678978959'"/>
</source>
<rule>
<name value="lastSIADate"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="immunization"/>
<contextType value="variable"/>
<element value="extension"/>
<variable value="ext"/>
</target>
<rule>
<name value="extUrl"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="ext"/>
<contextType value="variable"/>
<element value="url"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://example.org/StructureDefinition/lastSIADate"/>
</parameter>
</target>
</rule>
<rule>
<name value="extValue"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="ext"/>
<contextType value="variable"/>
<element value="valueDate"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="infoSource"/>
<source>
<context value="vaccination"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '650080600932'"/>
</source>
<rule>
<name value="reportOrigin"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="immunization"/>
<contextType value="variable"/>
<element value="reportOrigin"/>
<variable value="origin"/>
</target>
<rule>
<name value="origin"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="origin"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="cod"/>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://example.org/CodeSystem/vaccination-info-source"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueString value="ans.valueCoding.code"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="evaluate"/>
<parameter>
<valueString value="ans.valueCoding.display"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
</group>
<group>
<name value="MapAfpSpecimen"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="QuestionnaireResponse"/>
<mode value="source"/>
</input>
<input>
<name value="specimen"/>
<type value="Specimen"/>
<mode value="target"/>
</input>
<rule>
<name value="specimenId"/>
<source>
<context value="src"/>
</source>
<target>
<context value="specimen"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="uuid"/>
</target>
</rule>
<rule>
<name value="specimenType"/>
<source>
<context value="src"/>
</source>
<target>
<context value="specimen"/>
<contextType value="variable"/>
<element value="type"/>
<variable value="type"/>
</target>
<rule>
<name value="stoolCoding"/>
<source>
<context value="src"/>
</source>
<target>
<context value="type"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
</target>
<rule>
<name value="snomedSys"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://snomed.info/sct"/>
</parameter>
</target>
</rule>
<rule>
<name value="stoolCode"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="119339001"/>
</parameter>
</target>
</rule>
<rule>
<name value="stoolDisplay"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Stool specimen"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="subject"/>
<source>
<context value="src"/>
<element value="subject"/>
<variable value="subj"/>
</source>
<target>
<context value="specimen"/>
<contextType value="variable"/>
<element value="subject"/>
<variable value="ref"/>
</target>
<target>
<context value="ref"/>
<contextType value="variable"/>
<element value="reference"/>
<transform value="evaluate"/>
<parameter>
<valueString value="'Patient/' + subj.reference"/>
</parameter>
</target>
</rule>
<rule>
<name value="stoolCollection"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="stoolCollection"/>
<condition value="linkId = '350784256533'"/>
</source>
<rule>
<name value="firstSpecimenDate"/>
<source>
<context value="stoolCollection"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '737703942433'"/>
</source>
<rule>
<name value="firstSpecimen"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="specimen"/>
<contextType value="variable"/>
<element value="collection"/>
<variable value="coll"/>
</target>
<target>
<context value="coll"/>
<contextType value="variable"/>
<element value="collectedDateTime"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="secondSpecimenDate"/>
<source>
<context value="stoolCollection"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '711388438654'"/>
</source>
<rule>
<name value="secondSpecimen"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="specimen"/>
<contextType value="variable"/>
<element value="processing"/>
<variable value="proc"/>
</target>
<rule>
<name value="procDesc"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="proc"/>
<contextType value="variable"/>
<element value="description"/>
<transform value="copy"/>
<parameter>
<valueString value="2nd specimen collected"/>
</parameter>
</target>
</rule>
<rule>
<name value="procTime"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="proc"/>
<contextType value="variable"/>
<element value="timeDateTime"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="sentToNationalDate"/>
<source>
<context value="stoolCollection"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '808177332790'"/>
</source>
<rule>
<name value="sentToNational"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="specimen"/>
<contextType value="variable"/>
<element value="processing"/>
<variable value="proc"/>
</target>
<rule>
<name value="procDesc"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="proc"/>
<contextType value="variable"/>
<element value="description"/>
<transform value="copy"/>
<parameter>
<valueString value="Specimen sent to national level"/>
</parameter>
</target>
</rule>
<rule>
<name value="procTime"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="proc"/>
<contextType value="variable"/>
<element value="timeDateTime"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
</rule>
</rule>
</group>
</StructureMap>