Kenya Disease Surveillance FHIR Implementation Guide.
0.1.0 - ci-build Kenya flag

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

: MeaslesLabResultsMap - JSON Representation

Draft as of 2026-05-04

Raw json | Download

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