{
  "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"
            }]
          }]
        }]
      }]
    }]
  }]
}