Kenya Disease Surveillance FHIR Implementation Guide., published by Kenya National Public Health Institute. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/IntelliSOFT-Consulting/Surveillance-FHIR-IG/ and changes regularly. See the Directory of published versions
| Draft as of 2026-05-04 |
{
"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\"> "</span>http://example.org/StructureMap/MeaslesLabResultsMap<span style=\"color: navy\">" = "</span>MeaslesLabResultsMap<span style=\"color: navy\">"\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\"> "</span><a href=\"http://hl7.org/fhir/R4/questionnaireresponse.html\" title=\"QuestionnaireResponse\">http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse</a><span style=\"color: navy\">" </span><b>alias </b>QuestionnaireResponse <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/bundle.html\" title=\"Bundle\">http://hl7.org/fhir/StructureDefinition/Bundle</a><span style=\"color: navy\">" </span><b>alias </b>Bundle <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/observation.html\" title=\"Observation\">http://hl7.org/fhir/StructureDefinition/Observation</a><span style=\"color: navy\">" </span><b>alias </b>Observation <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/diagnosticreport.html\" title=\"DiagnosticReport\">http://hl7.org/fhir/StructureDefinition/DiagnosticReport</a><span style=\"color: navy\">" </span><b>alias </b>DiagnosticReport <b>as </b><b>target</b>\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> -> </b></span>bundle.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"bundleId"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>bundle.type = <span style=\"color: blue\">'transaction'</span> <i>"bundleType"</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> -> </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> -> </b></span>e.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">measlesObs</span><b> then </b>MapMeaslesIgM<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">measlesObs</span><span style=\"color: navy\">)</span> <i>"execMeaslesIgM"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span> e.request<b> as </b><span style=\"color: maroon\">req</span><span style=\"color: navy\">, </span> req.method = <span style=\"color: blue\">'POST'</span><span style=\"color: navy\">, </span> req.url = <span style=\"color: blue\">'Observation'</span> <i>"measlesObsReq"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"measlesIgMEntry"</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> -> </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> -> </b></span>e.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">rubellaObs</span><b> then </b>MapRubellaIgM<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">rubellaObs</span><span style=\"color: navy\">)</span> <i>"execRubellaIgM"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span> e.request<b> as </b><span style=\"color: maroon\">req</span><span style=\"color: navy\">, </span> req.method = <span style=\"color: blue\">'POST'</span><span style=\"color: navy\">, </span> req.url = <span style=\"color: blue\">'Observation'</span> <i>"rubellaObsReq"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rubellaIgMEntry"</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> -> </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> -> </b></span>e.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'DiagnosticReport'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">report</span><b> then </b>MapLabDiagnosticReport<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">report</span><span style=\"color: navy\">)</span> <i>"execReport"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span> e.request<b> as </b><span style=\"color: maroon\">req</span><span style=\"color: navy\">, </span> req.method = <span style=\"color: blue\">'POST'</span><span style=\"color: navy\">, </span> req.url = <span style=\"color: blue\">'DiagnosticReport'</span> <i>"reportReq"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"diagnosticReportEntry"</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> -> </b></span>obs.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"obsId"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>obs.status = <span style=\"color: blue\">'final'</span> <i>"status"</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> -> </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> -> </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> -> </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"loincSys"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.code = <span style=\"color: blue\">'20479-4'</span> <i>"measlesIgMCode"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.display = <span style=\"color: blue\">'Measles virus IgM Ab [Presence] in Serum'</span> <i>"measlesIgMDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"measlesIgMCoding"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>code.text = <span style=\"color: blue\">'Measles IgM'</span> <i>"obsText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeBlock"</i><span style=\"color: navy\">;</span>\r\n src.subject<b> as </b><span style=\"color: maroon\">subj</span><span style=\"color: navy\"><b> -> </b></span> obs.subject<b> as </b><span style=\"color: maroon\">ref</span><span style=\"color: navy\">, </span> ref.reference = <span style=\"color: navy\">(</span>'Patient/' + subj.reference<span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\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> -> </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> -> </b></span>id.system = <span style=\"color: blue\">'http://example.org/identifier/lab-id'</span> <i>"labIdSys"</i><span style=\"color: navy\">;</span>\r\n ans<span style=\"color: navy\"><b> -> </b></span>id.value = <span style=\"color: maroon\">ans.valueString</span> <i>"labIdValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"labId"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"labIdItem"</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> -> </b></span>obs.effective = <span style=\"color: maroon\">ans.valueDate</span> <i>"effectiveDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"specimenSentDate"</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> -> </b></span>obs.issued = <span style=\"color: maroon\">ans.valueDate</span> <i>"issued"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"receivedDate"</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> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">note</span><span style=\"color: navy\">, </span> note.text = <span style=\"color: navy\">(</span>'Specimen condition: ' + ans.valueCoding.display<span style=\"color: navy\">)</span> <i>"conditionNote"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"specimenCondition"</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> -> </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> -> </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> -> </b></span>cod.system = <span style=\"color: blue\">'http://example.org/CodeSystem/lab-result'</span> <i>"resultSys"</i><span style=\"color: navy\">;</span>\r\n ans<span style=\"color: navy\"><b> -> </b></span>cod.code = <span style=\"color: navy\">(</span>ans.valueCoding.code<span style=\"color: navy\">)</span> <i>"resultCode"</i><span style=\"color: navy\">;</span>\r\n ans<span style=\"color: navy\"><b> -> </b></span>cod.display = <span style=\"color: navy\">(</span>ans.valueCoding.display<span style=\"color: navy\">)</span> <i>"resultDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"resultCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"measlesIgMResult"</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> -> </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> -> </b></span> interp.coding<b> as </b><span style=\"color: maroon\">cod</span><span style=\"color: navy\">, </span> cod.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: blue\">'POS'</span><span style=\"color: navy\">, </span> cod.display = <span style=\"color: blue\">'Positive'</span> <i>"posInterp"</i><span style=\"color: navy\">;</span>\r\n ans.valueCoding<b> as </b><span style=\"color: maroon\">val</span><b> where </b>code = 'Negative'<span style=\"color: navy\"><b> -> </b></span> interp.coding<b> as </b><span style=\"color: maroon\">cod</span><span style=\"color: navy\">, </span> cod.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: blue\">'NEG'</span><span style=\"color: navy\">, </span> cod.display = <span style=\"color: blue\">'Negative'</span> <i>"negInterp"</i><span style=\"color: navy\">;</span>\r\n ans.valueCoding<b> as </b><span style=\"color: maroon\">val</span><b> where </b>code = 'Indeterminate'<span style=\"color: navy\"><b> -> </b></span> interp.coding<b> as </b><span style=\"color: maroon\">cod</span><span style=\"color: navy\">, </span> cod.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: blue\">'IND'</span><span style=\"color: navy\">, </span> cod.display = <span style=\"color: blue\">'Indeterminate'</span> <i>"indInterp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"interpretation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"measlesIgMItem"</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> -> </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> -> </b></span>ext.url = <span style=\"color: blue\">'http://example.org/StructureDefinition/resultsSentDate'</span> <i>"extUrl"</i><span style=\"color: navy\">;</span>\r\n ans<span style=\"color: navy\"><b> -> </b></span>ext.valueDate = <span style=\"color: maroon\">ans.valueDate</span> <i>"extValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"resultsSentExt"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"resultsSentDate"</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> -> </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> -> </b></span>ext.url = <span style=\"color: blue\">'http://example.org/StructureDefinition/regionalLabDate'</span> <i>"extUrl"</i><span style=\"color: navy\">;</span>\r\n ans<span style=\"color: navy\"><b> -> </b></span>ext.valueDate = <span style=\"color: maroon\">ans.valueDate</span> <i>"extValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"regionalLabExt"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"regionalLabDate"</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> -> </b></span> obs.note<b> as </b><span style=\"color: maroon\">note</span><span style=\"color: navy\">, </span> note.text = <span style=\"color: navy\">(</span>'Final classification: ' + ans.valueCoding.display<span style=\"color: navy\">)</span> <i>"classificationNote"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"finalClassification"</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> -> </b></span>obs.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"obsId"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>obs.status = <span style=\"color: blue\">'final'</span> <i>"status"</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> -> </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> -> </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> -> </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"loincSys"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.code = <span style=\"color: blue\">'22501-3'</span> <i>"rubellaIgMCode"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.display = <span style=\"color: blue\">'Rubella virus IgM Ab [Presence] in Serum'</span> <i>"rubellaIgMDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rubellaIgMCoding"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>code.text = <span style=\"color: blue\">'Rubella IgM'</span> <i>"obsText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeBlock"</i><span style=\"color: navy\">;</span>\r\n src.subject<b> as </b><span style=\"color: maroon\">subj</span><span style=\"color: navy\"><b> -> </b></span> obs.subject<b> as </b><span style=\"color: maroon\">ref</span><span style=\"color: navy\">, </span> ref.reference = <span style=\"color: navy\">(</span>'Patient/' + subj.reference<span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\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> -> </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> -> </b></span>id.system = <span style=\"color: blue\">'http://example.org/identifier/lab-id'</span> <i>"labIdSys"</i><span style=\"color: navy\">;</span>\r\n ans<span style=\"color: navy\"><b> -> </b></span>id.value = <span style=\"color: maroon\">ans.valueString</span> <i>"labIdValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"labId"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"labIdItem"</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> -> </b></span>obs.effective = <span style=\"color: maroon\">ans.valueDate</span> <i>"effectiveDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"receivedDate"</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> -> </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> -> </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> -> </b></span>cod.system = <span style=\"color: blue\">'http://example.org/CodeSystem/lab-result'</span> <i>"resultSys"</i><span style=\"color: navy\">;</span>\r\n ans<span style=\"color: navy\"><b> -> </b></span>cod.code = <span style=\"color: navy\">(</span>ans.valueCoding.code<span style=\"color: navy\">)</span> <i>"resultCode"</i><span style=\"color: navy\">;</span>\r\n ans<span style=\"color: navy\"><b> -> </b></span>cod.display = <span style=\"color: navy\">(</span>ans.valueCoding.display<span style=\"color: navy\">)</span> <i>"resultDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"resultCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rubellaIgMResult"</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> -> </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> -> </b></span> interp.coding<b> as </b><span style=\"color: maroon\">cod</span><span style=\"color: navy\">, </span> cod.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: blue\">'POS'</span><span style=\"color: navy\">, </span> cod.display = <span style=\"color: blue\">'Positive'</span> <i>"posInterp"</i><span style=\"color: navy\">;</span>\r\n ans.valueCoding<b> as </b><span style=\"color: maroon\">val</span><b> where </b>code = 'Negative'<span style=\"color: navy\"><b> -> </b></span> interp.coding<b> as </b><span style=\"color: maroon\">cod</span><span style=\"color: navy\">, </span> cod.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: blue\">'NEG'</span><span style=\"color: navy\">, </span> cod.display = <span style=\"color: blue\">'Negative'</span> <i>"negInterp"</i><span style=\"color: navy\">;</span>\r\n ans.valueCoding<b> as </b><span style=\"color: maroon\">val</span><b> where </b>code = 'Indeterminate'<span style=\"color: navy\"><b> -> </b></span> interp.coding<b> as </b><span style=\"color: maroon\">cod</span><span style=\"color: navy\">, </span> cod.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: blue\">'IND'</span><span style=\"color: navy\">, </span> cod.display = <span style=\"color: blue\">'Indeterminate'</span> <i>"indInterp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"interpretation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rubellaIgMItem"</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> -> </b></span> obs.status = <span style=\"color: blue\">'cancelled'</span><span style=\"color: navy\">, </span> obs.dataAbsentReason<b> as </b><span style=\"color: maroon\">reason</span><span style=\"color: navy\">, </span> reason.coding<b> as </b><span style=\"color: maroon\">cod</span><span style=\"color: navy\">, </span> cod.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/data-absent-reason'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: blue\">'not-performed'</span> <i>"notDone"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rubellaNotDone"</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> -> </b></span>report.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"reportId"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>report.status = <span style=\"color: blue\">'final'</span> <i>"status"</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> -> </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> -> </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> -> </b></span>coding.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/v2-0074'</span> <i>"catSys"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.code = <span style=\"color: blue\">'LAB'</span> <i>"catCode"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.display = <span style=\"color: blue\">'Laboratory'</span> <i>"catDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"catCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"category"</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> -> </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> -> </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> -> </b></span>coding.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"loincSys"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.code = <span style=\"color: blue\">'41852-5'</span> <i>"panelCode"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.display = <span style=\"color: blue\">'Microorganism or agent identified in Specimen'</span> <i>"panelDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"panelCoding"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>code.text = <span style=\"color: blue\">'Measles/Rubella Serology Panel'</span> <i>"codeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"codeBlock"</i><span style=\"color: navy\">;</span>\r\n src.subject<b> as </b><span style=\"color: maroon\">subj</span><span style=\"color: navy\"><b> -> </b></span> report.subject<b> as </b><span style=\"color: maroon\">ref</span><span style=\"color: navy\">, </span> ref.reference = <span style=\"color: navy\">(</span>'Patient/' + subj.reference<span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\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> -> </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> -> </b></span>id.system = <span style=\"color: blue\">'http://example.org/identifier/lab-id'</span> <i>"labIdSys"</i><span style=\"color: navy\">;</span>\r\n ans<span style=\"color: navy\"><b> -> </b></span>id.value = <span style=\"color: maroon\">ans.valueString</span> <i>"labIdValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"labId"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"labIdItem"</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> -> </b></span>report.effective = <span style=\"color: maroon\">ans.valueDate</span> <i>"effectiveDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"effectiveDate"</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> -> </b></span>report.issued = <span style=\"color: maroon\">ans.valueDate</span> <i>"issued"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"issuedDate"</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> -> </b></span>report.conclusion = <span style=\"color: navy\">(</span>ans.valueCoding.display<span style=\"color: navy\">)</span> <i>"conclusion"</i><span style=\"color: navy\">;</span>\r\n item.answer first<b> as </b><span style=\"color: maroon\">ans</span><span style=\"color: navy\"><b> -> </b></span>report.conclusionCode<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\r\n</span> ans<span style=\"color: navy\"><b> -> </b></span> code.coding<b> as </b><span style=\"color: maroon\">cod</span><span style=\"color: navy\">, </span> cod.system = <span style=\"color: blue\">'http://example.org/CodeSystem/measles-classification'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: navy\">(</span>ans.valueCoding.code<span style=\"color: navy\">)</span><span style=\"color: navy\">, </span> cod.display = <span style=\"color: navy\">(</span>ans.valueCoding.display<span style=\"color: navy\">)</span> <i>"conclusionCode"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"conclusionCode"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"classification"</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"
}
]
}
]
}
]
}
]
}
]
}
]
}