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="MeaslesLabResultsMap"/>
<text>
<status value="generated"/>
<div xmlns="http://www.w3.org/1999/xhtml"><p class="res-header-id"><b>Generated Narrative: StructureMap MeaslesLabResultsMap</b></p><a name="MeaslesLabResultsMap"> </a><a name="hcMeaslesLabResultsMap"> </a><pre class="fml">
<b>map</b><span style="color: navy"> "</span>http://example.org/StructureMap/MeaslesLabResultsMap<span style="color: navy">" = "</span>MeaslesLabResultsMap<span style="color: navy">"
</span><span style="color: navy">// </span><span style="color: green">Measles Lab Results QuestionnaireResponse to FHIR resources</span>
<span style="color: navy">// </span><span style="color: green">Maps to: Observation (Measles IgM), Observation (Rubella IgM), DiagnosticReport</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/observation.html" title="Observation">http://hl7.org/fhir/StructureDefinition/Observation</a><span style="color: navy">" </span><b>alias </b>Observation <b>as </b><b>target</b>
<b>uses</b><span style="color: navy"> "</span><a href="http://hl7.org/fhir/R4/diagnosticreport.html" title="DiagnosticReport">http://hl7.org/fhir/StructureDefinition/DiagnosticReport</a><span style="color: navy">" </span><b>alias </b>DiagnosticReport <b>as </b><b>target</b>
<b>group </b>MeaslesLabResultsMap<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>
<span style="color: navy">// </span><span style="color: green">Measles IgM Observation</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">'Observation'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">measlesObs</span><b> then </b>MapMeaslesIgM<span style="color: navy">(</span><span style="color: maroon">src</span><span style="color: navy">, </span><span style="color: maroon">measlesObs</span><span style="color: navy">)</span> <i>"execMeaslesIgM"</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">'Observation'</span> <i>"measlesObsReq"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"measlesIgMEntry"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Rubella IgM Observation</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">'Observation'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">rubellaObs</span><b> then </b>MapRubellaIgM<span style="color: navy">(</span><span style="color: maroon">src</span><span style="color: navy">, </span><span style="color: maroon">rubellaObs</span><span style="color: navy">)</span> <i>"execRubellaIgM"</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">'Observation'</span> <i>"rubellaObsReq"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"rubellaIgMEntry"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">DiagnosticReport</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">'DiagnosticReport'</span><span style="color: navy">)</span><b> as </b><span style="color: maroon">report</span><b> then </b>MapLabDiagnosticReport<span style="color: navy">(</span><span style="color: maroon">src</span><span style="color: navy">, </span><span style="color: maroon">report</span><span style="color: navy">)</span> <i>"execReport"</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">'DiagnosticReport'</span> <i>"reportReq"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"diagnosticReportEntry"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>MapMeaslesIgM<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">obs</span><span style="color: navy"> : </span>Observation<span style="color: navy">)</span><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>obs.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span> <i>"obsId"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>obs.status = <span style="color: blue">'final'</span> <i>"status"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">LOINC code for Measles virus IgM Ab in Serum</span>
src<span style="color: navy"><b> -> </b></span>obs.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://loinc.org'</span> <i>"loincSys"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.code = <span style="color: blue">'20479-4'</span> <i>"measlesIgMCode"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.display = <span style="color: blue">'Measles virus IgM Ab [Presence] in Serum'</span> <i>"measlesIgMDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"measlesIgMCoding"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>code.text = <span style="color: blue">'Measles IgM'</span> <i>"obsText"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"codeBlock"</i><span style="color: navy">;</span>
src.subject<b> as </b><span style="color: maroon">subj</span><span style="color: navy"><b> -> </b></span> obs.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">Lab ID as identifier</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '8732404074721'<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>obs.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/lab-id'</span> <i>"labIdSys"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>id.value = <span style="color: maroon">ans.valueString</span> <i>"labIdValue"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"labId"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"labIdItem"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Specimen sent date → effective period start</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '718251724172'<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>obs.effective = <span style="color: maroon">ans.valueDate</span> <i>"effectiveDate"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"specimenSentDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Date specimen received → issued</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = 'date-specimen-received'<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>obs.issued = <span style="color: maroon">ans.valueDate</span> <i>"issued"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"receivedDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Specimen condition as note</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = 'specimen-condition'<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> obs.note<b> as </b><span style="color: maroon">note</span><span style="color: navy">, </span> note.text = <span style="color: navy">(</span>'Specimen condition: ' + ans.valueCoding.display<span style="color: navy">)</span> <i>"conditionNote"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"specimenCondition"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Measles IgM result → value</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = 'measles-igm'<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>obs.valueCodeableConcept<b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span>coding.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://example.org/CodeSystem/lab-result'</span> <i>"resultSys"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>cod.code = <span style="color: navy">(</span>ans.valueCoding.code<span style="color: navy">)</span> <i>"resultCode"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>cod.display = <span style="color: navy">(</span>ans.valueCoding.display<span style="color: navy">)</span> <i>"resultDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"resultCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"measlesIgMResult"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Interpretation</span>
item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>obs.interpretation<b> as </b><span style="color: maroon">interp</span><b> then</b><span style="color: navy"> {
</span> ans.valueCoding<b> as </b><span style="color: maroon">val</span><b> where </b>code = 'Positive'<span style="color: navy"><b> -> </b></span> interp.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/v3-ObservationInterpretation'</span><span style="color: navy">, </span> cod.code = <span style="color: blue">'POS'</span><span style="color: navy">, </span> cod.display = <span style="color: blue">'Positive'</span> <i>"posInterp"</i><span style="color: navy">;</span>
ans.valueCoding<b> as </b><span style="color: maroon">val</span><b> where </b>code = 'Negative'<span style="color: navy"><b> -> </b></span> interp.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/v3-ObservationInterpretation'</span><span style="color: navy">, </span> cod.code = <span style="color: blue">'NEG'</span><span style="color: navy">, </span> cod.display = <span style="color: blue">'Negative'</span> <i>"negInterp"</i><span style="color: navy">;</span>
ans.valueCoding<b> as </b><span style="color: maroon">val</span><b> where </b>code = 'Indeterminate'<span style="color: navy"><b> -> </b></span> interp.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/v3-ObservationInterpretation'</span><span style="color: navy">, </span> cod.code = <span style="color: blue">'IND'</span><span style="color: navy">, </span> cod.display = <span style="color: blue">'Indeterminate'</span> <i>"indInterp"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"interpretation"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"measlesIgMItem"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Date results sent out</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = 'date-lab-sent-results'<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>obs.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/resultsSentDate'</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>"resultsSentExt"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"resultsSentDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Regional lab referral date</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '655865451155'<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>obs.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/regionalLabDate'</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>"regionalLabExt"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"regionalLabDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Final classification as note</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = 'final-classification'<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> obs.note<b> as </b><span style="color: maroon">note</span><span style="color: navy">, </span> note.text = <span style="color: navy">(</span>'Final classification: ' + ans.valueCoding.display<span style="color: navy">)</span> <i>"classificationNote"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"finalClassification"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>MapRubellaIgM<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">obs</span><span style="color: navy"> : </span>Observation<span style="color: navy">)</span><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>obs.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span> <i>"obsId"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>obs.status = <span style="color: blue">'final'</span> <i>"status"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">LOINC code for Rubella virus IgM Ab in Serum</span>
src<span style="color: navy"><b> -> </b></span>obs.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://loinc.org'</span> <i>"loincSys"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.code = <span style="color: blue">'22501-3'</span> <i>"rubellaIgMCode"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.display = <span style="color: blue">'Rubella virus IgM Ab [Presence] in Serum'</span> <i>"rubellaIgMDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"rubellaIgMCoding"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>code.text = <span style="color: blue">'Rubella IgM'</span> <i>"obsText"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"codeBlock"</i><span style="color: navy">;</span>
src.subject<b> as </b><span style="color: maroon">subj</span><span style="color: navy"><b> -> </b></span> obs.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">Lab ID as identifier</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '8732404074721'<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>obs.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/lab-id'</span> <i>"labIdSys"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>id.value = <span style="color: maroon">ans.valueString</span> <i>"labIdValue"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"labId"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"labIdItem"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Specimen received date → effective</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = 'date-specimen-received'<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>obs.effective = <span style="color: maroon">ans.valueDate</span> <i>"effectiveDate"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"receivedDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Rubella IgM result → value</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = 'rubella-igm'<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>obs.valueCodeableConcept<b> as </b><span style="color: maroon">coding</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span>coding.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://example.org/CodeSystem/lab-result'</span> <i>"resultSys"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>cod.code = <span style="color: navy">(</span>ans.valueCoding.code<span style="color: navy">)</span> <i>"resultCode"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>cod.display = <span style="color: navy">(</span>ans.valueCoding.display<span style="color: navy">)</span> <i>"resultDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"resultCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"rubellaIgMResult"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Interpretation</span>
item.answer first<b> as </b><span style="color: maroon">ans</span><span style="color: navy"><b> -> </b></span>obs.interpretation<b> as </b><span style="color: maroon">interp</span><b> then</b><span style="color: navy"> {
</span> ans.valueCoding<b> as </b><span style="color: maroon">val</span><b> where </b>code = 'Positive'<span style="color: navy"><b> -> </b></span> interp.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/v3-ObservationInterpretation'</span><span style="color: navy">, </span> cod.code = <span style="color: blue">'POS'</span><span style="color: navy">, </span> cod.display = <span style="color: blue">'Positive'</span> <i>"posInterp"</i><span style="color: navy">;</span>
ans.valueCoding<b> as </b><span style="color: maroon">val</span><b> where </b>code = 'Negative'<span style="color: navy"><b> -> </b></span> interp.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/v3-ObservationInterpretation'</span><span style="color: navy">, </span> cod.code = <span style="color: blue">'NEG'</span><span style="color: navy">, </span> cod.display = <span style="color: blue">'Negative'</span> <i>"negInterp"</i><span style="color: navy">;</span>
ans.valueCoding<b> as </b><span style="color: maroon">val</span><b> where </b>code = 'Indeterminate'<span style="color: navy"><b> -> </b></span> interp.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/v3-ObservationInterpretation'</span><span style="color: navy">, </span> cod.code = <span style="color: blue">'IND'</span><span style="color: navy">, </span> cod.display = <span style="color: blue">'Indeterminate'</span> <i>"indInterp"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"interpretation"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"rubellaIgMItem"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Status: not done if absent</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = 'rubella-igm'<b> then</b><span style="color: navy"> {
</span> item<b> where </b>answer.empty()<span style="color: navy"><b> -> </b></span> obs.status = <span style="color: blue">'cancelled'</span><span style="color: navy">, </span> obs.dataAbsentReason<b> as </b><span style="color: maroon">reason</span><span style="color: navy">, </span> reason.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/data-absent-reason'</span><span style="color: navy">, </span> cod.code = <span style="color: blue">'not-performed'</span> <i>"notDone"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"rubellaNotDone"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span><b>group </b>MapLabDiagnosticReport<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">report</span><span style="color: navy"> : </span>DiagnosticReport<span style="color: navy">)</span><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>report.id = <b>uuid</b><span style="color: navy">(</span><span style="color: navy">)</span> <i>"reportId"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>report.status = <span style="color: blue">'final'</span> <i>"status"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Category: Laboratory</span>
src<span style="color: navy"><b> -> </b></span>report.category<b> as </b><span style="color: maroon">cat</span><b> then</b><span style="color: navy"> {
</span> src<span style="color: navy"><b> -> </b></span>cat.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://terminology.hl7.org/CodeSystem/v2-0074'</span> <i>"catSys"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.code = <span style="color: blue">'LAB'</span> <i>"catCode"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.display = <span style="color: blue">'Laboratory'</span> <i>"catDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"catCoding"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"category"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Measles serology panel LOINC</span>
src<span style="color: navy"><b> -> </b></span>report.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://loinc.org'</span> <i>"loincSys"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.code = <span style="color: blue">'41852-5'</span> <i>"panelCode"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>coding.display = <span style="color: blue">'Microorganism or agent identified in Specimen'</span> <i>"panelDisplay"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"panelCoding"</i><span style="color: navy">;</span>
src<span style="color: navy"><b> -> </b></span>code.text = <span style="color: blue">'Measles/Rubella Serology Panel'</span> <i>"codeText"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"codeBlock"</i><span style="color: navy">;</span>
src.subject<b> as </b><span style="color: maroon">subj</span><span style="color: navy"><b> -> </b></span> report.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">Lab ID</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = '8732404074721'<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>report.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/lab-id'</span> <i>"labIdSys"</i><span style="color: navy">;</span>
ans<span style="color: navy"><b> -> </b></span>id.value = <span style="color: maroon">ans.valueString</span> <i>"labIdValue"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"labId"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"labIdItem"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Effective date from specimen received</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = 'date-specimen-received'<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>report.effective = <span style="color: maroon">ans.valueDate</span> <i>"effectiveDate"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"effectiveDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Issued date from results sent</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = 'date-lab-sent-results'<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>report.issued = <span style="color: maroon">ans.valueDate</span> <i>"issued"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"issuedDate"</i><span style="color: navy">;</span>
<span style="color: navy">// </span><span style="color: green">Final classification as conclusion</span>
src.item<b> as </b><span style="color: maroon">item</span><b> where </b>linkId = 'final-classification'<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>report.conclusion = <span style="color: navy">(</span>ans.valueCoding.display<span style="color: navy">)</span> <i>"conclusion"</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>report.conclusionCode<b> as </b><span style="color: maroon">code</span><b> then</b><span style="color: navy"> {
</span> ans<span style="color: navy"><b> -> </b></span> code.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/measles-classification'</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>"conclusionCode"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"conclusionCode"</i><span style="color: navy">;</span>
<span style="color: navy">}</span> <i>"classification"</i><span style="color: navy">;</span>
<span style="color: navy">}
</span></pre></div>
</text>
<url value="http://example.org/StructureMap/MeaslesLabResultsMap"/>
<version value="0.1.0"/>
<name value="MeaslesLabResultsMap"/>
<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="Measles Lab Results QuestionnaireResponse to FHIR resources
Maps to: Observation (Measles IgM), Observation (Rubella IgM), DiagnosticReport"/>
<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/Observation"/>
<mode value="target"/>
<alias value="Observation"/>
</structure>
<structure>
<url value="http://hl7.org/fhir/StructureDefinition/DiagnosticReport"/>
<mode value="target"/>
<alias value="DiagnosticReport"/>
</structure>
<group>
<name value="MeaslesLabResultsMap"/>
<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="measlesIgMEntry"/>
<source>
<context value="src"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<rule>
<name value="execMeaslesIgM"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="measlesObs"/>
<transform value="create"/>
<parameter>
<valueString value="Observation"/>
</parameter>
</target>
<dependent>
<name value="MapMeaslesIgM"/>
<variable value="src"/>
<variable value="measlesObs"/>
</dependent>
</rule>
<rule>
<name value="measlesObsReq"/>
<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="Observation"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="rubellaIgMEntry"/>
<source>
<context value="src"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<rule>
<name value="execRubellaIgM"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="rubellaObs"/>
<transform value="create"/>
<parameter>
<valueString value="Observation"/>
</parameter>
</target>
<dependent>
<name value="MapRubellaIgM"/>
<variable value="src"/>
<variable value="rubellaObs"/>
</dependent>
</rule>
<rule>
<name value="rubellaObsReq"/>
<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="Observation"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="diagnosticReportEntry"/>
<source>
<context value="src"/>
</source>
<target>
<context value="bundle"/>
<contextType value="variable"/>
<element value="entry"/>
<variable value="e"/>
</target>
<rule>
<name value="execReport"/>
<source>
<context value="src"/>
</source>
<target>
<context value="e"/>
<contextType value="variable"/>
<element value="resource"/>
<variable value="report"/>
<transform value="create"/>
<parameter>
<valueString value="DiagnosticReport"/>
</parameter>
</target>
<dependent>
<name value="MapLabDiagnosticReport"/>
<variable value="src"/>
<variable value="report"/>
</dependent>
</rule>
<rule>
<name value="reportReq"/>
<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="DiagnosticReport"/>
</parameter>
</target>
</rule>
</rule>
</group>
<group>
<name value="MapMeaslesIgM"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="QuestionnaireResponse"/>
<mode value="source"/>
</input>
<input>
<name value="obs"/>
<type value="Observation"/>
<mode value="target"/>
</input>
<rule>
<name value="obsId"/>
<source>
<context value="src"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="uuid"/>
</target>
</rule>
<rule>
<name value="status"/>
<source>
<context value="src"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="status"/>
<transform value="copy"/>
<parameter>
<valueString value="final"/>
</parameter>
</target>
</rule>
<rule>
<name value="codeBlock"/>
<source>
<context value="src"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="code"/>
<variable value="code"/>
</target>
<rule>
<name value="measlesIgMCoding"/>
<source>
<context value="src"/>
</source>
<target>
<context value="code"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
</target>
<rule>
<name value="loincSys"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://loinc.org"/>
</parameter>
</target>
</rule>
<rule>
<name value="measlesIgMCode"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="20479-4"/>
</parameter>
</target>
</rule>
<rule>
<name value="measlesIgMDisplay"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Measles virus IgM Ab [Presence] in Serum"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="obsText"/>
<source>
<context value="src"/>
</source>
<target>
<context value="code"/>
<contextType value="variable"/>
<element value="text"/>
<transform value="copy"/>
<parameter>
<valueString value="Measles IgM"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="subject"/>
<source>
<context value="src"/>
<element value="subject"/>
<variable value="subj"/>
</source>
<target>
<context value="obs"/>
<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="labIdItem"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '8732404074721'"/>
</source>
<rule>
<name value="labId"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="id"/>
</target>
<rule>
<name value="labIdSys"/>
<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/lab-id"/>
</parameter>
</target>
</rule>
<rule>
<name value="labIdValue"/>
<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>
<name value="specimenSentDate"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '718251724172'"/>
</source>
<rule>
<name value="effectiveDate"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="effective"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="receivedDate"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = 'date-specimen-received'"/>
</source>
<rule>
<name value="issued"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="issued"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="specimenCondition"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = 'specimen-condition'"/>
</source>
<rule>
<name value="conditionNote"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<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="'Specimen condition: ' + ans.valueCoding.display"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="measlesIgMItem"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = 'measles-igm'"/>
</source>
<rule>
<name value="measlesIgMResult"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="valueCodeableConcept"/>
<variable value="coding"/>
</target>
<rule>
<name value="resultCoding"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="cod"/>
</target>
<rule>
<name value="resultSys"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://example.org/CodeSystem/lab-result"/>
</parameter>
</target>
</rule>
<rule>
<name value="resultCode"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueString value="ans.valueCoding.code"/>
</parameter>
</target>
</rule>
<rule>
<name value="resultDisplay"/>
<source>
<context value="ans"/>
</source>
<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="interpretation"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="interpretation"/>
<variable value="interp"/>
</target>
<rule>
<name value="posInterp"/>
<source>
<context value="ans"/>
<element value="valueCoding"/>
<variable value="val"/>
<condition value="code = 'Positive'"/>
</source>
<target>
<context value="interp"/>
<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/v3-ObservationInterpretation"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="POS"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Positive"/>
</parameter>
</target>
</rule>
<rule>
<name value="negInterp"/>
<source>
<context value="ans"/>
<element value="valueCoding"/>
<variable value="val"/>
<condition value="code = 'Negative'"/>
</source>
<target>
<context value="interp"/>
<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/v3-ObservationInterpretation"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="NEG"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Negative"/>
</parameter>
</target>
</rule>
<rule>
<name value="indInterp"/>
<source>
<context value="ans"/>
<element value="valueCoding"/>
<variable value="val"/>
<condition value="code = 'Indeterminate'"/>
</source>
<target>
<context value="interp"/>
<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/v3-ObservationInterpretation"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="IND"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Indeterminate"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="resultsSentDate"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = 'date-lab-sent-results'"/>
</source>
<rule>
<name value="resultsSentExt"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<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/resultsSentDate"/>
</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="regionalLabDate"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '655865451155'"/>
</source>
<rule>
<name value="regionalLabExt"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<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/regionalLabDate"/>
</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="finalClassification"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = 'final-classification'"/>
</source>
<rule>
<name value="classificationNote"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<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="'Final classification: ' + ans.valueCoding.display"/>
</parameter>
</target>
</rule>
</rule>
</group>
<group>
<name value="MapRubellaIgM"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="QuestionnaireResponse"/>
<mode value="source"/>
</input>
<input>
<name value="obs"/>
<type value="Observation"/>
<mode value="target"/>
</input>
<rule>
<name value="obsId"/>
<source>
<context value="src"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="uuid"/>
</target>
</rule>
<rule>
<name value="status"/>
<source>
<context value="src"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="status"/>
<transform value="copy"/>
<parameter>
<valueString value="final"/>
</parameter>
</target>
</rule>
<rule>
<name value="codeBlock"/>
<source>
<context value="src"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="code"/>
<variable value="code"/>
</target>
<rule>
<name value="rubellaIgMCoding"/>
<source>
<context value="src"/>
</source>
<target>
<context value="code"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
</target>
<rule>
<name value="loincSys"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://loinc.org"/>
</parameter>
</target>
</rule>
<rule>
<name value="rubellaIgMCode"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="22501-3"/>
</parameter>
</target>
</rule>
<rule>
<name value="rubellaIgMDisplay"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Rubella virus IgM Ab [Presence] in Serum"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="obsText"/>
<source>
<context value="src"/>
</source>
<target>
<context value="code"/>
<contextType value="variable"/>
<element value="text"/>
<transform value="copy"/>
<parameter>
<valueString value="Rubella IgM"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="subject"/>
<source>
<context value="src"/>
<element value="subject"/>
<variable value="subj"/>
</source>
<target>
<context value="obs"/>
<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="labIdItem"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '8732404074721'"/>
</source>
<rule>
<name value="labId"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="id"/>
</target>
<rule>
<name value="labIdSys"/>
<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/lab-id"/>
</parameter>
</target>
</rule>
<rule>
<name value="labIdValue"/>
<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>
<name value="receivedDate"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = 'date-specimen-received'"/>
</source>
<rule>
<name value="effectiveDate"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="effective"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="rubellaIgMItem"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = 'rubella-igm'"/>
</source>
<rule>
<name value="rubellaIgMResult"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="valueCodeableConcept"/>
<variable value="coding"/>
</target>
<rule>
<name value="resultCoding"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="cod"/>
</target>
<rule>
<name value="resultSys"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://example.org/CodeSystem/lab-result"/>
</parameter>
</target>
</rule>
<rule>
<name value="resultCode"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="evaluate"/>
<parameter>
<valueString value="ans.valueCoding.code"/>
</parameter>
</target>
</rule>
<rule>
<name value="resultDisplay"/>
<source>
<context value="ans"/>
</source>
<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="interpretation"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="interpretation"/>
<variable value="interp"/>
</target>
<rule>
<name value="posInterp"/>
<source>
<context value="ans"/>
<element value="valueCoding"/>
<variable value="val"/>
<condition value="code = 'Positive'"/>
</source>
<target>
<context value="interp"/>
<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/v3-ObservationInterpretation"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="POS"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Positive"/>
</parameter>
</target>
</rule>
<rule>
<name value="negInterp"/>
<source>
<context value="ans"/>
<element value="valueCoding"/>
<variable value="val"/>
<condition value="code = 'Negative'"/>
</source>
<target>
<context value="interp"/>
<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/v3-ObservationInterpretation"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="NEG"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Negative"/>
</parameter>
</target>
</rule>
<rule>
<name value="indInterp"/>
<source>
<context value="ans"/>
<element value="valueCoding"/>
<variable value="val"/>
<condition value="code = 'Indeterminate'"/>
</source>
<target>
<context value="interp"/>
<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/v3-ObservationInterpretation"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="IND"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Indeterminate"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="rubellaNotDone"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = 'rubella-igm'"/>
</source>
<rule>
<name value="notDone"/>
<source>
<context value="item"/>
<condition value="answer.empty()"/>
</source>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="status"/>
<transform value="copy"/>
<parameter>
<valueString value="cancelled"/>
</parameter>
</target>
<target>
<context value="obs"/>
<contextType value="variable"/>
<element value="dataAbsentReason"/>
<variable value="reason"/>
</target>
<target>
<context value="reason"/>
<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/data-absent-reason"/>
</parameter>
</target>
<target>
<context value="cod"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="not-performed"/>
</parameter>
</target>
</rule>
</rule>
</group>
<group>
<name value="MapLabDiagnosticReport"/>
<typeMode value="none"/>
<input>
<name value="src"/>
<type value="QuestionnaireResponse"/>
<mode value="source"/>
</input>
<input>
<name value="report"/>
<type value="DiagnosticReport"/>
<mode value="target"/>
</input>
<rule>
<name value="reportId"/>
<source>
<context value="src"/>
</source>
<target>
<context value="report"/>
<contextType value="variable"/>
<element value="id"/>
<transform value="uuid"/>
</target>
</rule>
<rule>
<name value="status"/>
<source>
<context value="src"/>
</source>
<target>
<context value="report"/>
<contextType value="variable"/>
<element value="status"/>
<transform value="copy"/>
<parameter>
<valueString value="final"/>
</parameter>
</target>
</rule>
<rule>
<name value="category"/>
<source>
<context value="src"/>
</source>
<target>
<context value="report"/>
<contextType value="variable"/>
<element value="category"/>
<variable value="cat"/>
</target>
<rule>
<name value="catCoding"/>
<source>
<context value="src"/>
</source>
<target>
<context value="cat"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
</target>
<rule>
<name value="catSys"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString
value="http://terminology.hl7.org/CodeSystem/v2-0074"/>
</parameter>
</target>
</rule>
<rule>
<name value="catCode"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="LAB"/>
</parameter>
</target>
</rule>
<rule>
<name value="catDisplay"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString value="Laboratory"/>
</parameter>
</target>
</rule>
</rule>
</rule>
<rule>
<name value="codeBlock"/>
<source>
<context value="src"/>
</source>
<target>
<context value="report"/>
<contextType value="variable"/>
<element value="code"/>
<variable value="code"/>
</target>
<rule>
<name value="panelCoding"/>
<source>
<context value="src"/>
</source>
<target>
<context value="code"/>
<contextType value="variable"/>
<element value="coding"/>
<variable value="coding"/>
</target>
<rule>
<name value="loincSys"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="system"/>
<transform value="copy"/>
<parameter>
<valueString value="http://loinc.org"/>
</parameter>
</target>
</rule>
<rule>
<name value="panelCode"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="code"/>
<transform value="copy"/>
<parameter>
<valueString value="41852-5"/>
</parameter>
</target>
</rule>
<rule>
<name value="panelDisplay"/>
<source>
<context value="src"/>
</source>
<target>
<context value="coding"/>
<contextType value="variable"/>
<element value="display"/>
<transform value="copy"/>
<parameter>
<valueString
value="Microorganism or agent identified in Specimen"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="codeText"/>
<source>
<context value="src"/>
</source>
<target>
<context value="code"/>
<contextType value="variable"/>
<element value="text"/>
<transform value="copy"/>
<parameter>
<valueString value="Measles/Rubella Serology Panel"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="subject"/>
<source>
<context value="src"/>
<element value="subject"/>
<variable value="subj"/>
</source>
<target>
<context value="report"/>
<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="labIdItem"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = '8732404074721'"/>
</source>
<rule>
<name value="labId"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="report"/>
<contextType value="variable"/>
<element value="identifier"/>
<variable value="id"/>
</target>
<rule>
<name value="labIdSys"/>
<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/lab-id"/>
</parameter>
</target>
</rule>
<rule>
<name value="labIdValue"/>
<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>
<name value="effectiveDate"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = 'date-specimen-received'"/>
</source>
<rule>
<name value="effectiveDate"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="report"/>
<contextType value="variable"/>
<element value="effective"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="issuedDate"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = 'date-lab-sent-results'"/>
</source>
<rule>
<name value="issued"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="report"/>
<contextType value="variable"/>
<element value="issued"/>
<transform value="copy"/>
<parameter>
<valueId value="ans.valueDate"/>
</parameter>
</target>
</rule>
</rule>
<rule>
<name value="classification"/>
<source>
<context value="src"/>
<element value="item"/>
<variable value="item"/>
<condition value="linkId = 'final-classification'"/>
</source>
<rule>
<name value="conclusion"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="report"/>
<contextType value="variable"/>
<element value="conclusion"/>
<transform value="evaluate"/>
<parameter>
<valueString value="ans.valueCoding.display"/>
</parameter>
</target>
</rule>
<rule>
<name value="conclusionCode"/>
<source>
<context value="item"/>
<element value="answer"/>
<listMode value="first"/>
<variable value="ans"/>
</source>
<target>
<context value="report"/>
<contextType value="variable"/>
<element value="conclusionCode"/>
<variable value="code"/>
</target>
<rule>
<name value="conclusionCode"/>
<source>
<context value="ans"/>
</source>
<target>
<context value="code"/>
<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/measles-classification"/>
</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>
</group>
</StructureMap>