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" : "MeaslesCaseReportMap",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap MeaslesCaseReportMap</b></p><a name=\"MeaslesCaseReportMap\"> </a><a name=\"hcMeaslesCaseReportMap\"> </a><pre class=\"fml\">\r\n<b>map</b><span style=\"color: navy\"> "</span>http://example.org/StructureMap/MeaslesCaseReportMap<span style=\"color: navy\">" = "</span>MeaslesCaseReportMap<span style=\"color: navy\">"\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">Measles Case Report QuestionnaireResponse to FHIR resources</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Maps to: Patient, Encounter, Condition (Measles), Immunization (MR/Measles), Specimen</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/patient.html\" title=\"Patient\">http://hl7.org/fhir/StructureDefinition/Patient</a><span style=\"color: navy\">" </span><b>alias </b>Patient <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/encounter.html\" title=\"Encounter\">http://hl7.org/fhir/StructureDefinition/Encounter</a><span style=\"color: navy\">" </span><b>alias </b>Encounter <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/condition.html\" title=\"Condition\">http://hl7.org/fhir/StructureDefinition/Condition</a><span style=\"color: navy\">" </span><b>alias </b>Condition <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/immunization.html\" title=\"Immunization\">http://hl7.org/fhir/StructureDefinition/Immunization</a><span style=\"color: navy\">" </span><b>alias </b>Immunization <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R4/specimen.html\" title=\"Specimen\">http://hl7.org/fhir/StructureDefinition/Specimen</a><span style=\"color: navy\">" </span><b>alias </b>Specimen <b>as </b><b>target</b>\r\n\r\n<b>group </b>MeaslesCaseReportMap<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 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\">'Patient'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">patient</span><b> then </b>MapMeaslesPatient<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">patient</span><span style=\"color: navy\">)</span> <i>"execPatient"</i><span style=\"color: navy\">;</span>\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\">'PUT'</span><span style=\"color: navy\">, </span> req.url = <span style=\"color: navy\">(</span>'Patient/' + %src.subject.reference<span style=\"color: navy\">)</span> <i>"patientReq"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"patientEntry"</i><span style=\"color: navy\">;</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\">'Encounter'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">encounter</span><b> then </b>MapMeaslesEncounter<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">encounter</span><span style=\"color: navy\">)</span> <i>"execEncounter"</i><span style=\"color: navy\">;</span>\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\">'Encounter'</span> <i>"encounterReq"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"encounterEntry"</i><span style=\"color: navy\">;</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\">'Condition'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">condition</span><b> then </b>MapMeaslesCondition<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">condition</span><span style=\"color: navy\">)</span> <i>"execCondition"</i><span style=\"color: navy\">;</span>\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\">'Condition'</span> <i>"conditionReq"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"conditionEntry"</i><span style=\"color: navy\">;</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\">'Immunization'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">immunization</span><b> then </b>MapMeaslesImmunization<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">immunization</span><span style=\"color: navy\">)</span> <i>"execImmunization"</i><span style=\"color: navy\">;</span>\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\">'Immunization'</span> <i>"immunizationReq"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"immunizationEntry"</i><span style=\"color: navy\">;</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\">'Specimen'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">specimen</span><b> then </b>MapMeaslesSpecimen<span style=\"color: navy\">(</span><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">specimen</span><span style=\"color: navy\">)</span> <i>"execSpecimen"</i><span style=\"color: navy\">;</span>\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\">'Specimen'</span> <i>"specimenReq"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"specimenEntry"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>MapMeaslesPatient<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>QuestionnaireResponse, <b>target</b> <span style=\"color: maroon\">patient</span><span style=\"color: navy\"> : </span>Patient<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>patient.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"patientId"</i><span style=\"color: navy\">;</span>\r\n src.item<b> as </b><span style=\"color: maroon\">demographics</span><b> where </b>linkId = '670954892057'<b> then</b><span style=\"color: navy\"> {\r\n</span> <span style=\"color: navy\">// </span><span style=\"color: green\">Given name</span>\r\n demographics.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '873240407472'<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> patient.name<b> as </b><span style=\"color: maroon\">name</span><span style=\"color: navy\">, </span> name.given = <span style=\"color: maroon\">ans.valueString</span> <i>"givenName"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"firstName"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Middle name</span>\r\n demographics.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '246751846436'<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> patient.name<b> as </b><span style=\"color: maroon\">name</span><span style=\"color: navy\">, </span> name.given = <span style=\"color: maroon\">ans.valueString</span> <i>"middleName"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"middleName"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Family name</span>\r\n demographics.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '486402457213'<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> patient.name<b> as </b><span style=\"color: maroon\">name</span><span style=\"color: navy\">, </span> name.family = <span style=\"color: maroon\">ans.valueString</span> <i>"familyName"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"familyName"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Gender</span>\r\n demographics.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '929966324957'<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>patient.gender = <span style=\"color: navy\">(</span>ans.valueCoding.code<span style=\"color: navy\">)</span> <i>"gender"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"gender"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Date of birth</span>\r\n demographics.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '257830485990'<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>patient.birthDate = <span style=\"color: maroon\">ans.valueDate</span> <i>"birthDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"birthDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Residence (Urban/Rural) as address use</span>\r\n demographics.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = 'residence'<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>patient.address<b> as </b><span style=\"color: maroon\">addr</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 = 'Urban'<span style=\"color: navy\"><b> -> </b></span> addr.use = <span style=\"color: blue\">'home'</span><span style=\"color: navy\">, </span> addr.type = <span style=\"color: blue\">'physical'</span> <i>"urbanAddr"</i><span style=\"color: navy\">;</span>\r\n ans.valueCoding<b> as </b><span style=\"color: maroon\">val</span><b> where </b>code = 'Rural'<span style=\"color: navy\"><b> -> </b></span> addr.use = <span style=\"color: blue\">'home'</span><span style=\"color: navy\">, </span> addr.type = <span style=\"color: blue\">'physical'</span><span style=\"color: navy\">, </span> addr.district = <span style=\"color: blue\">'Rural'</span> <i>"ruralAddr"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"residenceType"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"residence"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Parent / Guardian</span>\r\n demographics.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = 'parent'<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>patient.contact<b> as </b><span style=\"color: maroon\">contact</span><b> then</b><span style=\"color: navy\"> {\r\n</span> ans<span style=\"color: navy\"><b> -> </b></span> contact.name<b> as </b><span style=\"color: maroon\">cname</span><span style=\"color: navy\">, </span> cname.text = <span style=\"color: maroon\">ans.valueString</span> <i>"contactName"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"parentContact"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"parent"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Phone</span>\r\n demographics.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '754217593839'<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> patient.telecom<b> as </b><span style=\"color: maroon\">tel</span><span style=\"color: navy\">, </span> tel.system = <span style=\"color: blue\">'phone'</span><span style=\"color: navy\">, </span> tel.value = <span style=\"color: maroon\">ans.valueString</span> <i>"phone"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"phone"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">County/Sub-County/Ward address</span>\r\n demographics.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '242811643559'<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> patient.address<b> as </b><span style=\"color: maroon\">addr</span><span style=\"color: navy\">, </span> addr.line = <span style=\"color: maroon\">ans.valueString</span> <i>"village"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"village"</i><span style=\"color: navy\">;</span>\r\n demographics.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '946232932304'<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> patient.address<b> as </b><span style=\"color: maroon\">addr</span><span style=\"color: navy\">, </span> addr.district = <span style=\"color: maroon\">ans.valueString</span> <i>"landmark"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"landmark"</i><span style=\"color: navy\">;</span>\r\n demographics.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '424111786438'<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> patient.address<b> as </b><span style=\"color: maroon\">addr</span><span style=\"color: navy\">, </span> addr.line = <span style=\"color: maroon\">ans.valueString</span> <i>"street"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"street"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"demographics"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>MapMeaslesEncounter<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>QuestionnaireResponse, <b>target</b> <span style=\"color: maroon\">encounter</span><span style=\"color: navy\"> : </span>Encounter<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>encounter.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"encounterId"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>encounter.status = <span style=\"color: blue\">'finished'</span> <i>"status"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>encounter.class<b> as </b><span style=\"color: maroon\">cls</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>cls.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/v3-ActCode'</span> <i>"clsSys"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>cls.code = <span style=\"color: blue\">'AMB'</span> <i>"clsCode"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"class"</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> encounter.subject<b> as </b><span style=\"color: maroon\">ref</span><span style=\"color: navy\">, </span> ref.reference = <span style=\"color: navy\">(</span>'Patient/' + subj.reference<span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">EPID No from reporting site</span>\r\n src.item<b> as </b><span style=\"color: maroon\">reportSite</span><b> where </b>linkId = '151479012557'<b> then</b><span style=\"color: navy\"> {\r\n</span> reportSite.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '992818778559'<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>encounter.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/epid'</span> <i>"epidSys"</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>"epidValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"epidId"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"epidNo"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"reportSite"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Case information</span>\r\n src.item<b> as </b><span style=\"color: maroon\">caseInfo</span><b> where </b>linkId = '216343227137'<b> then</b><span style=\"color: navy\"> {\r\n</span> <span style=\"color: navy\">// </span><span style=\"color: green\">Date first seen at facility → period start</span>\r\n caseInfo.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '554231819382'<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> encounter.period<b> as </b><span style=\"color: maroon\">period</span><span style=\"color: navy\">, </span> period.start = <span style=\"color: maroon\">ans.valueDate</span> <i>"periodStart"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"firstSeen"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">IP/OP number</span>\r\n caseInfo.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '755731625544'<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>encounter.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/ip-op'</span> <i>"ipopSys"</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>"ipopValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ipopId"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ipopNo"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Hospitalization</span>\r\n caseInfo.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '483042281962'<b> then</b><span style=\"color: navy\"> {\r\n</span> item.answer first<b> as </b><span style=\"color: maroon\">ans</span><b> where </b>valueCoding.code = 'yes'<span style=\"color: navy\"><b> -> </b></span>encounter.hospitalization<b> as </b><span style=\"color: maroon\">hosp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> ans<span style=\"color: navy\"><b> -> </b></span> hosp.admitSource<b> as </b><span style=\"color: maroon\">src</span><span style=\"color: navy\">, </span> src.coding<b> as </b><span style=\"color: maroon\">cod</span><span style=\"color: navy\">, </span> cod.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/admit-source'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: blue\">'hosp-trans'</span> <i>"admitSource"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"hospitalization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"hospitalized"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Date of admission</span>\r\n caseInfo.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '340908984116'<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> encounter.period<b> as </b><span style=\"color: maroon\">period</span><span style=\"color: navy\">, </span> period.start = <span style=\"color: maroon\">ans.valueDate</span> <i>"admitDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"admitDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Outcome → disposition</span>\r\n caseInfo.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '508745697175'<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>encounter.hospitalization<b> as </b><span style=\"color: maroon\">hosp</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 = 'Alive'<span style=\"color: navy\"><b> -> </b></span> hosp.dischargeDisposition<b> as </b><span style=\"color: maroon\">disp</span><span style=\"color: navy\">, </span> disp.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/discharge-disposition'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: blue\">'home'</span> <i>"alive"</i><span style=\"color: navy\">;</span>\r\n ans.valueCoding<b> as </b><span style=\"color: maroon\">val</span><b> where </b>code = 'Dead'<span style=\"color: navy\"><b> -> </b></span> hosp.dischargeDisposition<b> as </b><span style=\"color: maroon\">disp</span><span style=\"color: navy\">, </span> disp.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/discharge-disposition'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: blue\">'exp'</span> <i>"dead"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"outcomeDisp"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"outcome"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"caseInfo"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Case type (Case or Line List) as type</span>\r\n src.item<b> as </b><span style=\"color: maroon\">clinicalHistory</span><b> where </b>linkId = '477144604557'<b> then</b><span style=\"color: navy\"> {\r\n</span> clinicalHistory.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '865158268604'<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>encounter.type<b> as </b><span style=\"color: maroon\">type</span><b> then</b><span style=\"color: navy\"> {\r\n</span> ans<span style=\"color: navy\"><b> -> </b></span> type.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-case-type'</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>"caseType"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"encounterType"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"caseOrLineList"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"clinicalHistory"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>MapMeaslesCondition<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>QuestionnaireResponse, <b>target</b> <span style=\"color: maroon\">condition</span><span style=\"color: navy\"> : </span>Condition<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>condition.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"conditionId"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Measles SNOMED code</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>condition.code<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\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://snomed.info/sct'</span> <i>"snomedSys"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.code = <span style=\"color: blue\">'14189004'</span> <i>"measlesCode"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.display = <span style=\"color: blue\">'Measles'</span> <i>"measlesDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"measlesCoding"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>code.text = <span style=\"color: blue\">'Measles'</span> <i>"measlesText"</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> condition.subject<b> as </b><span style=\"color: maroon\">ref</span><span style=\"color: navy\">, </span> ref.reference = <span style=\"color: navy\">(</span>'Patient/' + subj.reference<span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n src.item<b> as </b><span style=\"color: maroon\">clinicalHistory</span><b> where </b>linkId = '477144604557'<b> then</b><span style=\"color: navy\"> {\r\n</span> <span style=\"color: navy\">// </span><span style=\"color: green\">Date of onset of illness</span>\r\n clinicalHistory.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '728034137219'<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>condition.onset = <span style=\"color: maroon\">ans.valueDate</span> <i>"onsetDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"onsetDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Clinical symptoms as body site / note</span>\r\n clinicalHistory.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '745196148424'<b> then</b><span style=\"color: navy\"> {\r\n</span> item.answer<b> as </b><span style=\"color: maroon\">ans</span><span style=\"color: navy\"><b> -> </b></span> condition.note<b> as </b><span style=\"color: maroon\">note</span><span style=\"color: navy\">, </span> note.text = <span style=\"color: navy\">(</span>ans.valueCoding.display<span style=\"color: navy\">)</span> <i>"symptomNote"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"symptoms"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Date of rash onset</span>\r\n clinicalHistory.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '576528567552'<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>condition.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/rashOnsetDate'</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>"rashOnset"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rashDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Type of rash</span>\r\n clinicalHistory.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '704922081985'<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> condition.note<b> as </b><span style=\"color: maroon\">note</span><span style=\"color: navy\">, </span> note.text = <span style=\"color: navy\">(</span>'Rash type: ' + ans.valueCoding.display<span style=\"color: navy\">)</span> <i>"rashTypeNote"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rashType"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Home visited for contact investigation</span>\r\n clinicalHistory.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '207408507040'<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> condition.note<b> as </b><span style=\"color: maroon\">note</span><span style=\"color: navy\">, </span> note.text = <span style=\"color: navy\">(</span>iif(ans.valueCoding.code = 'yes', 'Home visited for contact investigation: Yes', 'Home visited for contact investigation: No')<span style=\"color: navy\">)</span> <i>"contactInvestNote"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"homeVisited"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Date of home visit</span>\r\n clinicalHistory.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '566661890668'<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>condition.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/contactInvestigationDate'</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>"homeVisitExt"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"homeVisitDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"clinicalHistory"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Outcome → clinical status from case info</span>\r\n src.item<b> as </b><span style=\"color: maroon\">caseInfo</span><b> where </b>linkId = '216343227137'<b> then</b><span style=\"color: navy\"> {\r\n</span> caseInfo.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '508745697175'<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>condition.clinicalStatus<b> as </b><span style=\"color: maroon\">status</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 = 'Dead'<span style=\"color: navy\"><b> -> </b></span> status.coding<b> as </b><span style=\"color: maroon\">cod</span><span style=\"color: navy\">, </span> cod.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/condition-clinical'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: blue\">'inactive'</span> <i>"deadStatus"</i><span style=\"color: navy\">;</span>\r\n ans.valueCoding<b> as </b><span style=\"color: maroon\">val</span><b> where </b>code = 'Alive'<span style=\"color: navy\"><b> -> </b></span> status.coding<b> as </b><span style=\"color: maroon\">cod</span><span style=\"color: navy\">, </span> cod.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/condition-clinical'</span><span style=\"color: navy\">, </span> cod.code = <span style=\"color: blue\">'active'</span> <i>"aliveStatus"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"clinicalStatus"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"outcome"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"caseInfoStatus"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>MapMeaslesImmunization<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>QuestionnaireResponse, <b>target</b> <span style=\"color: maroon\">immunization</span><span style=\"color: navy\"> : </span>Immunization<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>immunization.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"immunizationId"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>immunization.status = <span style=\"color: blue\">'completed'</span> <i>"status"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">MR / Measles vaccine code</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>immunization.vaccineCode<b> as </b><span style=\"color: maroon\">code</span><b> then</b><span style=\"color: navy\"> {\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://hl7.org/fhir/sid/cvx'</span> <i>"cvxSys"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.code = <span style=\"color: blue\">'05'</span> <i>"measlesCode"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.display = <span style=\"color: blue\">'Measles-Rubella (MR) Vaccine'</span> <i>"mrDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mrCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vaccineCode"</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> immunization.patient<b> as </b><span style=\"color: maroon\">ref</span><span style=\"color: navy\">, </span> ref.reference = <span style=\"color: navy\">(</span>'Patient/' + subj.reference<span style=\"color: navy\">)</span> <i>"patient"</i><span style=\"color: navy\">;</span>\r\n src.item<b> as </b><span style=\"color: maroon\">vaccination</span><b> where </b>linkId = '736291402384'<b> then</b><span style=\"color: navy\"> {\r\n</span> <span style=\"color: navy\">// </span><span style=\"color: green\">Vaccination status</span>\r\n vaccination.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '517772812375'<b> then</b><span style=\"color: navy\"> {\r\n</span> item.answer first<b> as </b><span style=\"color: maroon\">ans</span><b> where </b>valueCoding.code = 'no'<span style=\"color: navy\"><b> -> </b></span>immunization.status = <span style=\"color: blue\">'not-done'</span> <i>"notVaccinated"</i><span style=\"color: navy\">;</span>\r\n item.answer first<b> as </b><span style=\"color: maroon\">ans</span><b> where </b>valueCoding.code = 'unknown'<span style=\"color: navy\"><b> -> </b></span> immunization.statusReason<b> as </b><span style=\"color: maroon\">reason</span><span style=\"color: navy\">, </span> reason.text = <span style=\"color: blue\">'Unknown vaccination status'</span> <i>"unknownStatus"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vaccinationStatus"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Number of doses</span>\r\n vaccination.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '886125589225'<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>immunization.protocolApplied<b> as </b><span style=\"color: maroon\">protocol</span><b> then</b><span style=\"color: navy\"> {\r\n</span> ans<span style=\"color: navy\"><b> -> </b></span>protocol.doseNumber = <span style=\"color: maroon\">ans.valueInteger</span> <i>"doseNumber"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"doses"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">MR vaccination in last 30 days</span>\r\n vaccination.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '308128177300'<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>immunization.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/vaccineLast30Days'</span> <i>"extUrl"</i><span style=\"color: navy\">;</span>\r\n ans<span style=\"color: navy\"><b> -> </b></span>ext.valueCoding = <span style=\"color: maroon\">ans.valueCoding</span> <i>"extValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"last30DaysExt"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"last30Days"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Date of last vaccination</span>\r\n vaccination.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '544290619304'<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>immunization.occurrenceDateTime = <span style=\"color: maroon\">ans.valueDate</span> <i>"lastVaccDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"lastVaccDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vaccination"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>MapMeaslesSpecimen<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">src</span><span style=\"color: navy\"> : </span>QuestionnaireResponse, <b>target</b> <span style=\"color: maroon\">specimen</span><span style=\"color: navy\"> : </span>Specimen<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>specimen.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"specimenId"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Blood/Urine/Respiratory type (default to blood serum for measles serology)</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>specimen.type<b> as </b><span style=\"color: maroon\">type</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>type.coding<b> as </b><span style=\"color: maroon\">coding</span><b> then</b><span style=\"color: navy\"> {\r\n</span> src<span style=\"color: navy\"><b> -> </b></span>coding.system = <span style=\"color: blue\">'http://snomed.info/sct'</span> <i>"snomedSys"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.code = <span style=\"color: blue\">'119364003'</span> <i>"serumCode"</i><span style=\"color: navy\">;</span>\r\n src<span style=\"color: navy\"><b> -> </b></span>coding.display = <span style=\"color: blue\">'Serum specimen'</span> <i>"serumDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"serumCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"specimenType"</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> specimen.subject<b> as </b><span style=\"color: maroon\">ref</span><span style=\"color: navy\">, </span> ref.reference = <span style=\"color: navy\">(</span>'Patient/' + subj.reference<span style=\"color: navy\">)</span><span style=\"color: navy\">;</span>\r\n src.item<b> as </b><span style=\"color: maroon\">specimenCollection</span><b> where </b>linkId = '271053545237'<b> then</b><span style=\"color: navy\"> {\r\n</span> <span style=\"color: navy\">// </span><span style=\"color: green\">Specimen type(s) selected</span>\r\n specimenCollection.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '412689284625'<b> then</b><span style=\"color: navy\"> {\r\n</span> item.answer<b> as </b><span style=\"color: maroon\">ans</span><span style=\"color: navy\"><b> -> </b></span> specimen.note<b> as </b><span style=\"color: maroon\">note</span><span style=\"color: navy\">, </span> note.text = <span style=\"color: navy\">(</span>'Specimen collected: ' + ans.valueCoding.display<span style=\"color: navy\">)</span> <i>"specimenNote"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"specimenTypes"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Date of specimen collection</span>\r\n specimenCollection.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '8962468583341'<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> specimen.collection<b> as </b><span style=\"color: maroon\">coll</span><span style=\"color: navy\">, </span> coll.collectedDateTime = <span style=\"color: maroon\">ans.valueDate</span> <i>"collectionDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"collectionDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Date specimen sent to lab</span>\r\n specimenCollection.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>specimen.processing<b> as </b><span style=\"color: maroon\">proc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> ans<span style=\"color: navy\"><b> -> </b></span>proc.description = <span style=\"color: blue\">'Specimen sent to lab'</span> <i>"procDesc"</i><span style=\"color: navy\">;</span>\r\n ans<span style=\"color: navy\"><b> -> </b></span>proc.timeDateTime = <span style=\"color: maroon\">ans.valueDate</span> <i>"procTime"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"sentToLab"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"sentToLabDate"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Other specimen types</span>\r\n specimenCollection.item<b> as </b><span style=\"color: maroon\">item</span><b> where </b>linkId = '340507649387'<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> specimen.note<b> as </b><span style=\"color: maroon\">note</span><span style=\"color: navy\">, </span> note.text = <span style=\"color: navy\">(</span>'Other specimen type: ' + ans.valueString<span style=\"color: navy\">)</span> <i>"otherSpecimenNote"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"otherSpecimen"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"specimenCollection"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"
},
"url" : "http://example.org/StructureMap/MeaslesCaseReportMap",
"version" : "0.1.0",
"name" : "MeaslesCaseReportMap",
"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 Case Report QuestionnaireResponse to FHIR resources\r\nMaps to: Patient, Encounter, Condition (Measles), Immunization (MR/Measles), Specimen",
"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/Patient",
"mode" : "target",
"alias" : "Patient"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Encounter",
"mode" : "target",
"alias" : "Encounter"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Condition",
"mode" : "target",
"alias" : "Condition"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Immunization",
"mode" : "target",
"alias" : "Immunization"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Specimen",
"mode" : "target",
"alias" : "Specimen"
}
],
"group" : [
{
"name" : "MeaslesCaseReportMap",
"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" : "patientEntry",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "bundle",
"contextType" : "variable",
"element" : "entry",
"variable" : "e"
}
],
"rule" : [
{
"name" : "execPatient",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "e",
"contextType" : "variable",
"element" : "resource",
"variable" : "patient",
"transform" : "create",
"parameter" : [
{
"valueString" : "Patient"
}
]
}
],
"dependent" : [
{
"name" : "MapMeaslesPatient",
"variable" : [
"src",
"patient"
]
}
]
},
{
"name" : "patientReq",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "e",
"contextType" : "variable",
"element" : "request",
"variable" : "req"
},
{
"context" : "req",
"contextType" : "variable",
"element" : "method",
"transform" : "copy",
"parameter" : [
{
"valueString" : "PUT"
}
]
},
{
"context" : "req",
"contextType" : "variable",
"element" : "url",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "'Patient/' + %src.subject.reference"
}
]
}
]
}
]
},
{
"name" : "encounterEntry",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "bundle",
"contextType" : "variable",
"element" : "entry",
"variable" : "e"
}
],
"rule" : [
{
"name" : "execEncounter",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "e",
"contextType" : "variable",
"element" : "resource",
"variable" : "encounter",
"transform" : "create",
"parameter" : [
{
"valueString" : "Encounter"
}
]
}
],
"dependent" : [
{
"name" : "MapMeaslesEncounter",
"variable" : [
"src",
"encounter"
]
}
]
},
{
"name" : "encounterReq",
"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" : "Encounter"
}
]
}
]
}
]
},
{
"name" : "conditionEntry",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "bundle",
"contextType" : "variable",
"element" : "entry",
"variable" : "e"
}
],
"rule" : [
{
"name" : "execCondition",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "e",
"contextType" : "variable",
"element" : "resource",
"variable" : "condition",
"transform" : "create",
"parameter" : [
{
"valueString" : "Condition"
}
]
}
],
"dependent" : [
{
"name" : "MapMeaslesCondition",
"variable" : [
"src",
"condition"
]
}
]
},
{
"name" : "conditionReq",
"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" : "Condition"
}
]
}
]
}
]
},
{
"name" : "immunizationEntry",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "bundle",
"contextType" : "variable",
"element" : "entry",
"variable" : "e"
}
],
"rule" : [
{
"name" : "execImmunization",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "e",
"contextType" : "variable",
"element" : "resource",
"variable" : "immunization",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"dependent" : [
{
"name" : "MapMeaslesImmunization",
"variable" : [
"src",
"immunization"
]
}
]
},
{
"name" : "immunizationReq",
"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" : "Immunization"
}
]
}
]
}
]
},
{
"name" : "specimenEntry",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "bundle",
"contextType" : "variable",
"element" : "entry",
"variable" : "e"
}
],
"rule" : [
{
"name" : "execSpecimen",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "e",
"contextType" : "variable",
"element" : "resource",
"variable" : "specimen",
"transform" : "create",
"parameter" : [
{
"valueString" : "Specimen"
}
]
}
],
"dependent" : [
{
"name" : "MapMeaslesSpecimen",
"variable" : [
"src",
"specimen"
]
}
]
},
{
"name" : "specimenReq",
"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" : "Specimen"
}
]
}
]
}
]
}
]
},
{
"name" : "MapMeaslesPatient",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"type" : "QuestionnaireResponse",
"mode" : "source"
},
{
"name" : "patient",
"type" : "Patient",
"mode" : "target"
}
],
"rule" : [
{
"name" : "patientId",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "patient",
"contextType" : "variable",
"element" : "id",
"transform" : "uuid"
}
]
},
{
"name" : "demographics",
"source" : [
{
"context" : "src",
"element" : "item",
"variable" : "demographics",
"condition" : "linkId = '670954892057'"
}
],
"rule" : [
{
"name" : "firstName",
"source" : [
{
"context" : "demographics",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '873240407472'"
}
],
"rule" : [
{
"name" : "givenName",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "patient",
"contextType" : "variable",
"element" : "name",
"variable" : "name"
},
{
"context" : "name",
"contextType" : "variable",
"element" : "given",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueString"
}
]
}
]
}
]
},
{
"name" : "middleName",
"source" : [
{
"context" : "demographics",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '246751846436'"
}
],
"rule" : [
{
"name" : "middleName",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "patient",
"contextType" : "variable",
"element" : "name",
"variable" : "name"
},
{
"context" : "name",
"contextType" : "variable",
"element" : "given",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueString"
}
]
}
]
}
]
},
{
"name" : "familyName",
"source" : [
{
"context" : "demographics",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '486402457213'"
}
],
"rule" : [
{
"name" : "familyName",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "patient",
"contextType" : "variable",
"element" : "name",
"variable" : "name"
},
{
"context" : "name",
"contextType" : "variable",
"element" : "family",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueString"
}
]
}
]
}
]
},
{
"name" : "gender",
"source" : [
{
"context" : "demographics",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '929966324957'"
}
],
"rule" : [
{
"name" : "gender",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "patient",
"contextType" : "variable",
"element" : "gender",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "ans.valueCoding.code"
}
]
}
]
}
]
},
{
"name" : "birthDate",
"source" : [
{
"context" : "demographics",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '257830485990'"
}
],
"rule" : [
{
"name" : "birthDate",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "patient",
"contextType" : "variable",
"element" : "birthDate",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueDate"
}
]
}
]
}
]
},
{
"name" : "residence",
"source" : [
{
"context" : "demographics",
"element" : "item",
"variable" : "item",
"condition" : "linkId = 'residence'"
}
],
"rule" : [
{
"name" : "residenceType",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "patient",
"contextType" : "variable",
"element" : "address",
"variable" : "addr"
}
],
"rule" : [
{
"name" : "urbanAddr",
"source" : [
{
"context" : "ans",
"element" : "valueCoding",
"variable" : "val",
"condition" : "code = 'Urban'"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "use",
"transform" : "copy",
"parameter" : [
{
"valueString" : "home"
}
]
},
{
"context" : "addr",
"contextType" : "variable",
"element" : "type",
"transform" : "copy",
"parameter" : [
{
"valueString" : "physical"
}
]
}
]
},
{
"name" : "ruralAddr",
"source" : [
{
"context" : "ans",
"element" : "valueCoding",
"variable" : "val",
"condition" : "code = 'Rural'"
}
],
"target" : [
{
"context" : "addr",
"contextType" : "variable",
"element" : "use",
"transform" : "copy",
"parameter" : [
{
"valueString" : "home"
}
]
},
{
"context" : "addr",
"contextType" : "variable",
"element" : "type",
"transform" : "copy",
"parameter" : [
{
"valueString" : "physical"
}
]
},
{
"context" : "addr",
"contextType" : "variable",
"element" : "district",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Rural"
}
]
}
]
}
]
}
]
},
{
"name" : "parent",
"source" : [
{
"context" : "demographics",
"element" : "item",
"variable" : "item",
"condition" : "linkId = 'parent'"
}
],
"rule" : [
{
"name" : "parentContact",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "patient",
"contextType" : "variable",
"element" : "contact",
"variable" : "contact"
}
],
"rule" : [
{
"name" : "contactName",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "contact",
"contextType" : "variable",
"element" : "name",
"variable" : "cname"
},
{
"context" : "cname",
"contextType" : "variable",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueString"
}
]
}
]
}
]
}
]
},
{
"name" : "phone",
"source" : [
{
"context" : "demographics",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '754217593839'"
}
],
"rule" : [
{
"name" : "phone",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "patient",
"contextType" : "variable",
"element" : "telecom",
"variable" : "tel"
},
{
"context" : "tel",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "phone"
}
]
},
{
"context" : "tel",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueString"
}
]
}
]
}
]
},
{
"name" : "village",
"source" : [
{
"context" : "demographics",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '242811643559'"
}
],
"rule" : [
{
"name" : "village",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "patient",
"contextType" : "variable",
"element" : "address",
"variable" : "addr"
},
{
"context" : "addr",
"contextType" : "variable",
"element" : "line",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueString"
}
]
}
]
}
]
},
{
"name" : "landmark",
"source" : [
{
"context" : "demographics",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '946232932304'"
}
],
"rule" : [
{
"name" : "landmark",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "patient",
"contextType" : "variable",
"element" : "address",
"variable" : "addr"
},
{
"context" : "addr",
"contextType" : "variable",
"element" : "district",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueString"
}
]
}
]
}
]
},
{
"name" : "street",
"source" : [
{
"context" : "demographics",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '424111786438'"
}
],
"rule" : [
{
"name" : "street",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "patient",
"contextType" : "variable",
"element" : "address",
"variable" : "addr"
},
{
"context" : "addr",
"contextType" : "variable",
"element" : "line",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueString"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "MapMeaslesEncounter",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"type" : "QuestionnaireResponse",
"mode" : "source"
},
{
"name" : "encounter",
"type" : "Encounter",
"mode" : "target"
}
],
"rule" : [
{
"name" : "encounterId",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "encounter",
"contextType" : "variable",
"element" : "id",
"transform" : "uuid"
}
]
},
{
"name" : "status",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "encounter",
"contextType" : "variable",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueString" : "finished"
}
]
}
]
},
{
"name" : "class",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "encounter",
"contextType" : "variable",
"element" : "class",
"variable" : "cls"
}
],
"rule" : [
{
"name" : "clsSys",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "cls",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/v3-ActCode"
}
]
}
]
},
{
"name" : "clsCode",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "cls",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "AMB"
}
]
}
]
}
]
},
{
"name" : "subject",
"source" : [
{
"context" : "src",
"element" : "subject",
"variable" : "subj"
}
],
"target" : [
{
"context" : "encounter",
"contextType" : "variable",
"element" : "subject",
"variable" : "ref"
},
{
"context" : "ref",
"contextType" : "variable",
"element" : "reference",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "'Patient/' + subj.reference"
}
]
}
]
},
{
"name" : "reportSite",
"source" : [
{
"context" : "src",
"element" : "item",
"variable" : "reportSite",
"condition" : "linkId = '151479012557'"
}
],
"rule" : [
{
"name" : "epidNo",
"source" : [
{
"context" : "reportSite",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '992818778559'"
}
],
"rule" : [
{
"name" : "epidId",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "encounter",
"contextType" : "variable",
"element" : "identifier",
"variable" : "id"
}
],
"rule" : [
{
"name" : "epidSys",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "id",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://example.org/identifier/epid"
}
]
}
]
},
{
"name" : "epidValue",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "id",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueString"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "caseInfo",
"source" : [
{
"context" : "src",
"element" : "item",
"variable" : "caseInfo",
"condition" : "linkId = '216343227137'"
}
],
"rule" : [
{
"name" : "firstSeen",
"source" : [
{
"context" : "caseInfo",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '554231819382'"
}
],
"rule" : [
{
"name" : "periodStart",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "encounter",
"contextType" : "variable",
"element" : "period",
"variable" : "period"
},
{
"context" : "period",
"contextType" : "variable",
"element" : "start",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueDate"
}
]
}
]
}
]
},
{
"name" : "ipopNo",
"source" : [
{
"context" : "caseInfo",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '755731625544'"
}
],
"rule" : [
{
"name" : "ipopId",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "encounter",
"contextType" : "variable",
"element" : "identifier",
"variable" : "id"
}
],
"rule" : [
{
"name" : "ipopSys",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "id",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://example.org/identifier/ip-op"
}
]
}
]
},
{
"name" : "ipopValue",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "id",
"contextType" : "variable",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueString"
}
]
}
]
}
]
}
]
},
{
"name" : "hospitalized",
"source" : [
{
"context" : "caseInfo",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '483042281962'"
}
],
"rule" : [
{
"name" : "hospitalization",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans",
"condition" : "valueCoding.code = 'yes'"
}
],
"target" : [
{
"context" : "encounter",
"contextType" : "variable",
"element" : "hospitalization",
"variable" : "hosp"
}
],
"rule" : [
{
"name" : "admitSource",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "hosp",
"contextType" : "variable",
"element" : "admitSource",
"variable" : "src"
},
{
"context" : "src",
"contextType" : "variable",
"element" : "coding",
"variable" : "cod"
},
{
"context" : "cod",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/admit-source"
}
]
},
{
"context" : "cod",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "hosp-trans"
}
]
}
]
}
]
}
]
},
{
"name" : "admitDate",
"source" : [
{
"context" : "caseInfo",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '340908984116'"
}
],
"rule" : [
{
"name" : "admitDate",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "encounter",
"contextType" : "variable",
"element" : "period",
"variable" : "period"
},
{
"context" : "period",
"contextType" : "variable",
"element" : "start",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueDate"
}
]
}
]
}
]
},
{
"name" : "outcome",
"source" : [
{
"context" : "caseInfo",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '508745697175'"
}
],
"rule" : [
{
"name" : "outcomeDisp",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "encounter",
"contextType" : "variable",
"element" : "hospitalization",
"variable" : "hosp"
}
],
"rule" : [
{
"name" : "alive",
"source" : [
{
"context" : "ans",
"element" : "valueCoding",
"variable" : "val",
"condition" : "code = 'Alive'"
}
],
"target" : [
{
"context" : "hosp",
"contextType" : "variable",
"element" : "dischargeDisposition",
"variable" : "disp"
},
{
"context" : "disp",
"contextType" : "variable",
"element" : "coding",
"variable" : "cod"
},
{
"context" : "cod",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/discharge-disposition"
}
]
},
{
"context" : "cod",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "home"
}
]
}
]
},
{
"name" : "dead",
"source" : [
{
"context" : "ans",
"element" : "valueCoding",
"variable" : "val",
"condition" : "code = 'Dead'"
}
],
"target" : [
{
"context" : "hosp",
"contextType" : "variable",
"element" : "dischargeDisposition",
"variable" : "disp"
},
{
"context" : "disp",
"contextType" : "variable",
"element" : "coding",
"variable" : "cod"
},
{
"context" : "cod",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/discharge-disposition"
}
]
},
{
"context" : "cod",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "exp"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "clinicalHistory",
"source" : [
{
"context" : "src",
"element" : "item",
"variable" : "clinicalHistory",
"condition" : "linkId = '477144604557'"
}
],
"rule" : [
{
"name" : "caseOrLineList",
"source" : [
{
"context" : "clinicalHistory",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '865158268604'"
}
],
"rule" : [
{
"name" : "encounterType",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "encounter",
"contextType" : "variable",
"element" : "type",
"variable" : "type"
}
],
"rule" : [
{
"name" : "caseType",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "type",
"contextType" : "variable",
"element" : "coding",
"variable" : "cod"
},
{
"context" : "cod",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://example.org/CodeSystem/measles-case-type"
}
]
},
{
"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"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "MapMeaslesCondition",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"type" : "QuestionnaireResponse",
"mode" : "source"
},
{
"name" : "condition",
"type" : "Condition",
"mode" : "target"
}
],
"rule" : [
{
"name" : "conditionId",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "condition",
"contextType" : "variable",
"element" : "id",
"transform" : "uuid"
}
]
},
{
"name" : "codeBlock",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "condition",
"contextType" : "variable",
"element" : "code",
"variable" : "code"
}
],
"rule" : [
{
"name" : "measlesCoding",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "code",
"contextType" : "variable",
"element" : "coding",
"variable" : "coding"
}
],
"rule" : [
{
"name" : "snomedSys",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "coding",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://snomed.info/sct"
}
]
}
]
},
{
"name" : "measlesCode",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "coding",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "14189004"
}
]
}
]
},
{
"name" : "measlesDisplay",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "coding",
"contextType" : "variable",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Measles"
}
]
}
]
}
]
},
{
"name" : "measlesText",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "code",
"contextType" : "variable",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Measles"
}
]
}
]
}
]
},
{
"name" : "subject",
"source" : [
{
"context" : "src",
"element" : "subject",
"variable" : "subj"
}
],
"target" : [
{
"context" : "condition",
"contextType" : "variable",
"element" : "subject",
"variable" : "ref"
},
{
"context" : "ref",
"contextType" : "variable",
"element" : "reference",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "'Patient/' + subj.reference"
}
]
}
]
},
{
"name" : "clinicalHistory",
"source" : [
{
"context" : "src",
"element" : "item",
"variable" : "clinicalHistory",
"condition" : "linkId = '477144604557'"
}
],
"rule" : [
{
"name" : "onsetDate",
"source" : [
{
"context" : "clinicalHistory",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '728034137219'"
}
],
"rule" : [
{
"name" : "onsetDate",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "condition",
"contextType" : "variable",
"element" : "onset",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueDate"
}
]
}
]
}
]
},
{
"name" : "symptoms",
"source" : [
{
"context" : "clinicalHistory",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '745196148424'"
}
],
"rule" : [
{
"name" : "symptomNote",
"source" : [
{
"context" : "item",
"element" : "answer",
"variable" : "ans"
}
],
"target" : [
{
"context" : "condition",
"contextType" : "variable",
"element" : "note",
"variable" : "note"
},
{
"context" : "note",
"contextType" : "variable",
"element" : "text",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "ans.valueCoding.display"
}
]
}
]
}
]
},
{
"name" : "rashDate",
"source" : [
{
"context" : "clinicalHistory",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '576528567552'"
}
],
"rule" : [
{
"name" : "rashOnset",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "condition",
"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/rashOnsetDate"
}
]
}
]
},
{
"name" : "extValue",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "ext",
"contextType" : "variable",
"element" : "valueDate",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueDate"
}
]
}
]
}
]
}
]
},
{
"name" : "rashType",
"source" : [
{
"context" : "clinicalHistory",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '704922081985'"
}
],
"rule" : [
{
"name" : "rashTypeNote",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "condition",
"contextType" : "variable",
"element" : "note",
"variable" : "note"
},
{
"context" : "note",
"contextType" : "variable",
"element" : "text",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "'Rash type: ' + ans.valueCoding.display"
}
]
}
]
}
]
},
{
"name" : "homeVisited",
"source" : [
{
"context" : "clinicalHistory",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '207408507040'"
}
],
"rule" : [
{
"name" : "contactInvestNote",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "condition",
"contextType" : "variable",
"element" : "note",
"variable" : "note"
},
{
"context" : "note",
"contextType" : "variable",
"element" : "text",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "iif(ans.valueCoding.code = 'yes', 'Home visited for contact investigation: Yes', 'Home visited for contact investigation: No')"
}
]
}
]
}
]
},
{
"name" : "homeVisitDate",
"source" : [
{
"context" : "clinicalHistory",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '566661890668'"
}
],
"rule" : [
{
"name" : "homeVisitExt",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "condition",
"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/contactInvestigationDate"
}
]
}
]
},
{
"name" : "extValue",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "ext",
"contextType" : "variable",
"element" : "valueDate",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueDate"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "caseInfoStatus",
"source" : [
{
"context" : "src",
"element" : "item",
"variable" : "caseInfo",
"condition" : "linkId = '216343227137'"
}
],
"rule" : [
{
"name" : "outcome",
"source" : [
{
"context" : "caseInfo",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '508745697175'"
}
],
"rule" : [
{
"name" : "clinicalStatus",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "condition",
"contextType" : "variable",
"element" : "clinicalStatus",
"variable" : "status"
}
],
"rule" : [
{
"name" : "deadStatus",
"source" : [
{
"context" : "ans",
"element" : "valueCoding",
"variable" : "val",
"condition" : "code = 'Dead'"
}
],
"target" : [
{
"context" : "status",
"contextType" : "variable",
"element" : "coding",
"variable" : "cod"
},
{
"context" : "cod",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/condition-clinical"
}
]
},
{
"context" : "cod",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "inactive"
}
]
}
]
},
{
"name" : "aliveStatus",
"source" : [
{
"context" : "ans",
"element" : "valueCoding",
"variable" : "val",
"condition" : "code = 'Alive'"
}
],
"target" : [
{
"context" : "status",
"contextType" : "variable",
"element" : "coding",
"variable" : "cod"
},
{
"context" : "cod",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/condition-clinical"
}
]
},
{
"context" : "cod",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "active"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "MapMeaslesImmunization",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"type" : "QuestionnaireResponse",
"mode" : "source"
},
{
"name" : "immunization",
"type" : "Immunization",
"mode" : "target"
}
],
"rule" : [
{
"name" : "immunizationId",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "immunization",
"contextType" : "variable",
"element" : "id",
"transform" : "uuid"
}
]
},
{
"name" : "status",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "immunization",
"contextType" : "variable",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueString" : "completed"
}
]
}
]
},
{
"name" : "vaccineCode",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "immunization",
"contextType" : "variable",
"element" : "vaccineCode",
"variable" : "code"
}
],
"rule" : [
{
"name" : "mrCoding",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "code",
"contextType" : "variable",
"element" : "coding",
"variable" : "coding"
}
],
"rule" : [
{
"name" : "cvxSys",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "coding",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://hl7.org/fhir/sid/cvx"
}
]
}
]
},
{
"name" : "measlesCode",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "coding",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "05"
}
]
}
]
},
{
"name" : "mrDisplay",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "coding",
"contextType" : "variable",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Measles-Rubella (MR) Vaccine"
}
]
}
]
}
]
}
]
},
{
"name" : "patient",
"source" : [
{
"context" : "src",
"element" : "subject",
"variable" : "subj"
}
],
"target" : [
{
"context" : "immunization",
"contextType" : "variable",
"element" : "patient",
"variable" : "ref"
},
{
"context" : "ref",
"contextType" : "variable",
"element" : "reference",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "'Patient/' + subj.reference"
}
]
}
]
},
{
"name" : "vaccination",
"source" : [
{
"context" : "src",
"element" : "item",
"variable" : "vaccination",
"condition" : "linkId = '736291402384'"
}
],
"rule" : [
{
"name" : "vaccinationStatus",
"source" : [
{
"context" : "vaccination",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '517772812375'"
}
],
"rule" : [
{
"name" : "notVaccinated",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans",
"condition" : "valueCoding.code = 'no'"
}
],
"target" : [
{
"context" : "immunization",
"contextType" : "variable",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueString" : "not-done"
}
]
}
]
},
{
"name" : "unknownStatus",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans",
"condition" : "valueCoding.code = 'unknown'"
}
],
"target" : [
{
"context" : "immunization",
"contextType" : "variable",
"element" : "statusReason",
"variable" : "reason"
},
{
"context" : "reason",
"contextType" : "variable",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Unknown vaccination status"
}
]
}
]
}
]
},
{
"name" : "doses",
"source" : [
{
"context" : "vaccination",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '886125589225'"
}
],
"rule" : [
{
"name" : "protocol",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "immunization",
"contextType" : "variable",
"element" : "protocolApplied",
"variable" : "protocol"
}
],
"rule" : [
{
"name" : "doseNumber",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "protocol",
"contextType" : "variable",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueInteger"
}
]
}
]
}
]
}
]
},
{
"name" : "last30Days",
"source" : [
{
"context" : "vaccination",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '308128177300'"
}
],
"rule" : [
{
"name" : "last30DaysExt",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "immunization",
"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/vaccineLast30Days"
}
]
}
]
},
{
"name" : "extValue",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "ext",
"contextType" : "variable",
"element" : "valueCoding",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueCoding"
}
]
}
]
}
]
}
]
},
{
"name" : "lastVaccDate",
"source" : [
{
"context" : "vaccination",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '544290619304'"
}
],
"rule" : [
{
"name" : "lastVaccDate",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "immunization",
"contextType" : "variable",
"element" : "occurrenceDateTime",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueDate"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "MapMeaslesSpecimen",
"typeMode" : "none",
"input" : [
{
"name" : "src",
"type" : "QuestionnaireResponse",
"mode" : "source"
},
{
"name" : "specimen",
"type" : "Specimen",
"mode" : "target"
}
],
"rule" : [
{
"name" : "specimenId",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "specimen",
"contextType" : "variable",
"element" : "id",
"transform" : "uuid"
}
]
},
{
"name" : "specimenType",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "specimen",
"contextType" : "variable",
"element" : "type",
"variable" : "type"
}
],
"rule" : [
{
"name" : "serumCoding",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "type",
"contextType" : "variable",
"element" : "coding",
"variable" : "coding"
}
],
"rule" : [
{
"name" : "snomedSys",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "coding",
"contextType" : "variable",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://snomed.info/sct"
}
]
}
]
},
{
"name" : "serumCode",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "coding",
"contextType" : "variable",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "119364003"
}
]
}
]
},
{
"name" : "serumDisplay",
"source" : [
{
"context" : "src"
}
],
"target" : [
{
"context" : "coding",
"contextType" : "variable",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Serum specimen"
}
]
}
]
}
]
}
]
},
{
"name" : "subject",
"source" : [
{
"context" : "src",
"element" : "subject",
"variable" : "subj"
}
],
"target" : [
{
"context" : "specimen",
"contextType" : "variable",
"element" : "subject",
"variable" : "ref"
},
{
"context" : "ref",
"contextType" : "variable",
"element" : "reference",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "'Patient/' + subj.reference"
}
]
}
]
},
{
"name" : "specimenCollection",
"source" : [
{
"context" : "src",
"element" : "item",
"variable" : "specimenCollection",
"condition" : "linkId = '271053545237'"
}
],
"rule" : [
{
"name" : "specimenTypes",
"source" : [
{
"context" : "specimenCollection",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '412689284625'"
}
],
"rule" : [
{
"name" : "specimenNote",
"source" : [
{
"context" : "item",
"element" : "answer",
"variable" : "ans"
}
],
"target" : [
{
"context" : "specimen",
"contextType" : "variable",
"element" : "note",
"variable" : "note"
},
{
"context" : "note",
"contextType" : "variable",
"element" : "text",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "'Specimen collected: ' + ans.valueCoding.display"
}
]
}
]
}
]
},
{
"name" : "collectionDate",
"source" : [
{
"context" : "specimenCollection",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '8962468583341'"
}
],
"rule" : [
{
"name" : "collectionDate",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "specimen",
"contextType" : "variable",
"element" : "collection",
"variable" : "coll"
},
{
"context" : "coll",
"contextType" : "variable",
"element" : "collectedDateTime",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueDate"
}
]
}
]
}
]
},
{
"name" : "sentToLabDate",
"source" : [
{
"context" : "specimenCollection",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '718251724172'"
}
],
"rule" : [
{
"name" : "sentToLab",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "specimen",
"contextType" : "variable",
"element" : "processing",
"variable" : "proc"
}
],
"rule" : [
{
"name" : "procDesc",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "proc",
"contextType" : "variable",
"element" : "description",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Specimen sent to lab"
}
]
}
]
},
{
"name" : "procTime",
"source" : [
{
"context" : "ans"
}
],
"target" : [
{
"context" : "proc",
"contextType" : "variable",
"element" : "timeDateTime",
"transform" : "copy",
"parameter" : [
{
"valueId" : "ans.valueDate"
}
]
}
]
}
]
}
]
},
{
"name" : "otherSpecimen",
"source" : [
{
"context" : "specimenCollection",
"element" : "item",
"variable" : "item",
"condition" : "linkId = '340507649387'"
}
],
"rule" : [
{
"name" : "otherSpecimenNote",
"source" : [
{
"context" : "item",
"element" : "answer",
"listMode" : "first",
"variable" : "ans"
}
],
"target" : [
{
"context" : "specimen",
"contextType" : "variable",
"element" : "note",
"variable" : "note"
},
{
"context" : "note",
"contextType" : "variable",
"element" : "text",
"transform" : "evaluate",
"parameter" : [
{
"valueString" : "'Other specimen type: ' + ans.valueString"
}
]
}
]
}
]
}
]
}
]
}
]
}