SGHI FHIR Profile Implementation Guide
0.1.0 - ci-build
SGHI FHIR Profile Implementation Guide, published by Kathurima Kimathi. 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/savannahghi/sil_fhir_profile_ig/ and changes regularly. See the Directory of published versions
| Active as of 2026-09-14 |
{
"resourceType" : "StructureMap",
"id" : "ExtractMOH510ImmunisationRegister",
"text" : {
"status" : "generated",
"div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: StructureMap ExtractMOH510ImmunisationRegister</b></p><a name=\"ExtractMOH510ImmunisationRegister\"> </a><a name=\"hcExtractMOH510ImmunisationRegister\"> </a><pre class=\"fml\">\r\n<span style=\"color: #cc00cc\">/// <b>url</b> = </span><span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/StructureMap/ExtractMOH510ImmunisationRegister'</span>\r\n<span style=\"color: #cc00cc\">/// <b>name</b> = </span><span style=\"color: blue\">'ExtractMOH510ImmunisationRegister'</span>\r\n<span style=\"color: #cc00cc\">/// <b>title</b> = </span><span style=\"color: blue\">'MOH 510 Immunisation Permanent Register Extraction'</span>\r\n<span style=\"color: #cc00cc\">/// <b>status</b> = </span><span style=\"color: blue\">'active'</span>\r\n<span style=\"color: #cc00cc\">/// <b>description</b> = </span><span style=\"color: blue\">'Extracts a transaction Bundle from a QuestionnaireResponse to the Kenya MOH 510 Immunisation Permanent Register: guardian RelatedPersons, growth-monitoring Observations, one Immunization per antigen dose for sections L-Y/AA-AB/AD, Vitamin A MedicationAdministrations for section Z, danger-signs and education Observations, and an Appointment for the next scheduled visit. It creates no Patient, Encounter or EpisodeOfCare -- the register is launched from inside a visit the EMR has already opened, so all three arrive as context on the QuestionnaireResponse and are referenced rather than minted. QuestionnaireResponse.subject and .encounter are therefore both required.'</span>\r\n<span style=\"color: #cc00cc\">/// <b>experimental</b> = </span><span style=\"color: blue\">true</span>\r\n\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R5/questionnaireresponse.html\" title=\"QuestionnaireResponse\">http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse</a><span style=\"color: navy\">" </span><b>alias </b>QR <b>as </b><b>source</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R5/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/R5/relatedperson.html\" title=\"RelatedPerson\">http://hl7.org/fhir/StructureDefinition/RelatedPerson</a><span style=\"color: navy\">" </span><b>alias </b>RelatedPerson <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R5/observation.html\" title=\"Observation\">http://hl7.org/fhir/StructureDefinition/Observation</a><span style=\"color: navy\">" </span><b>alias </b>Observation <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R5/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/R5/medicationadministration.html\" title=\"MedicationAdministration\">http://hl7.org/fhir/StructureDefinition/MedicationAdministration</a><span style=\"color: navy\">" </span><b>alias </b>MedicationAdministration <b>as </b><b>target</b>\r\n<b>uses</b><span style=\"color: navy\"> "</span><a href=\"http://hl7.org/fhir/R5/appointment.html\" title=\"Appointment\">http://hl7.org/fhir/StructureDefinition/Appointment</a><span style=\"color: navy\">" </span><b>alias </b>Appointment <b>as </b><b>target</b>\r\n\r\n<b>group </b>ExtractMOH510ImmunisationRegister<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <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> qr<span style=\"color: navy\"><b> -> </b></span>bundle.type = <span style=\"color: blue\">'transaction'</span> <i>"setBundleType"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------- A-K</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">gReg</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-group-registration'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> <span style=\"color: navy\">// </span><span style=\"color: green\">No Patient is emitted. The child is registered before the register entry</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">is filled, so the patient already exists and arrives as</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">QuestionnaireResponse.subject -- every resource below references it.</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Sections C (child number), D (name), E (sex), F (date of birth) and</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">J (address) are the paper form transcribing demographics the EMR already</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">holds, so they are deliberately not extracted: creating a Patient here</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">would mint a duplicate record, and a blind PUT would clobber fields the</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">form does not carry. Reconciling them belongs in registration, not here.</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">This makes QuestionnaireResponse.subject mandatory for extraction --</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">without it Immunization.patient (1..1) cannot be populated.</span>\r\n gReg.item<b> as </b><span style=\"color: maroon\">itH</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-RG-H-father-name'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itH.answer first<b> as </b><span style=\"color: maroon\">aH</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aH<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eFat</span><span style=\"color: navy\">, </span> eFat.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'RelatedPerson'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">fat</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> fat<span style=\"color: navy\">, </span> eFat<b> then </b>BuildRelatedPerson<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itH</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">fat</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eFat</span><span style=\"color: navy\">)</span> <i>"fatherBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>fat.relationship<b> as </b><span style=\"color: maroon\">relF</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>relF.coding<b> as </b><span style=\"color: maroon\">relFc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>relFc.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/v3-RoleCode'</span> <i>"fatRelSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>relFc.code = <span style=\"color: blue\">'FTH'</span> <i>"fatRelCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>relFc.display = <span style=\"color: blue\">'father'</span> <i>"fatRelDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"fatherRelCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"fatherRelationship"</i><span style=\"color: navy\">;</span>\r\n aH.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>fat.name<b> as </b><span style=\"color: maroon\">nF</span><b> then</b><span style=\"color: navy\"> {\r\n</span> v<span style=\"color: navy\"><b> -> </b></span>nF.text = <span style=\"color: maroon\">v</span> <i>"fatherNameText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"fatherName"</i><span style=\"color: navy\">;</span>\r\n gReg.item<b> as </b><span style=\"color: maroon\">itKf</span><b> where </b><span style=\"color: navy\">(</span>linkId = '42077-8'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itKf.answer first<b> as </b><span style=\"color: maroon\">aKf</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aKf.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>fat.telecom<b> as </b><span style=\"color: maroon\">tcF</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>tcF.system = <span style=\"color: blue\">'phone'</span> <i>"fatPhoneSystem"</i><span style=\"color: navy\">;</span>\r\n v<span style=\"color: navy\"><b> -> </b></span>tcF.value = <span style=\"color: maroon\">v</span> <i>"fatPhoneValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"fatherTelecom"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"fatherPhoneAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"fatherPhoneRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"fatherResource"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"fatherAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"fatherRule"</i><span style=\"color: navy\">;</span>\r\n gReg.item<b> as </b><span style=\"color: maroon\">itI</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-RG-I-mother-name'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itI.answer first<b> as </b><span style=\"color: maroon\">aI</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aI<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eMot</span><span style=\"color: navy\">, </span> eMot.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'RelatedPerson'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">mot</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> mot<span style=\"color: navy\">, </span> eMot<b> then </b>BuildRelatedPerson<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itI</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">mot</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eMot</span><span style=\"color: navy\">)</span> <i>"motherBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>mot.relationship<b> as </b><span style=\"color: maroon\">relM</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>relM.coding<b> as </b><span style=\"color: maroon\">relMc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>relMc.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/v3-RoleCode'</span> <i>"motRelSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>relMc.code = <span style=\"color: blue\">'MTH'</span> <i>"motRelCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>relMc.display = <span style=\"color: blue\">'mother'</span> <i>"motRelDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"motherRelCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"motherRelationship"</i><span style=\"color: navy\">;</span>\r\n aI.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>mot.name<b> as </b><span style=\"color: maroon\">nM</span><b> then</b><span style=\"color: navy\"> {\r\n</span> v<span style=\"color: navy\"><b> -> </b></span>nM.text = <span style=\"color: maroon\">v</span> <i>"motherNameText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"motherName"</i><span style=\"color: navy\">;</span>\r\n gReg.item<b> as </b><span style=\"color: maroon\">itKm</span><b> where </b><span style=\"color: navy\">(</span>linkId = '42077-8'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itKm.answer first<b> as </b><span style=\"color: maroon\">aKm</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aKm.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>mot.telecom<b> as </b><span style=\"color: maroon\">tcM</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>tcM.system = <span style=\"color: blue\">'phone'</span> <i>"motPhoneSystem"</i><span style=\"color: navy\">;</span>\r\n v<span style=\"color: navy\"><b> -> </b></span>tcM.value = <span style=\"color: maroon\">v</span> <i>"motPhoneValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"motherTelecom"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"motherPhoneAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"motherPhoneRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"motherResource"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"motherAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"motherRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"registrationGroup"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">------------------------------------------------------ Growth monitoring</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">gGrow</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-group-growth'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> gGrow.item<b> as </b><span style=\"color: maroon\">itW</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-GM-Q1-weight'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itW.answer first<b> as </b><span style=\"color: maroon\">aW</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aW<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eW</span><span style=\"color: navy\">, </span> eW.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obW</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obW<span style=\"color: navy\">, </span> eW<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obW</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eW</span><span style=\"color: navy\">)</span> <i>"weightBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obW<b> then </b>VitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obW</span><span style=\"color: navy\">)</span> <i>"weightCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obW.code<b> as </b><span style=\"color: maroon\">cdW</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdW.coding<b> as </b><span style=\"color: maroon\">ccW</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccW.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"wSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccW.code = <span style=\"color: blue\">'29463-7'</span> <i>"wCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccW.display = <span style=\"color: blue\">'Body weight'</span> <i>"wDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"weightCodeCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"weightCode"</i><span style=\"color: navy\">;</span>\r\n aW.value<b> as </b><span style=\"color: maroon\">dv</span><span style=\"color: navy\"><b> -> </b></span>obW.value = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Quantity'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">qW</span><b> then</b><span style=\"color: navy\"> {\r\n</span> dv<span style=\"color: navy\"><b> -> </b></span>qW.value = <span style=\"color: maroon\">dv</span> <i>"wQtyValue"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>qW.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"wQtySystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>qW.code = <span style=\"color: blue\">'kg'</span> <i>"wQtyCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>qW.unit = <span style=\"color: blue\">'kilogram'</span> <i>"wQtyUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"weightValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"weightObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"weightAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"weightRule"</i><span style=\"color: navy\">;</span>\r\n gGrow.item<b> as </b><span style=\"color: maroon\">itH2</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-GM-Q2-height'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itH2.answer first<b> as </b><span style=\"color: maroon\">aH2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aH2<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eH2</span><span style=\"color: navy\">, </span> eH2.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obH2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obH2<span style=\"color: navy\">, </span> eH2<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obH2</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eH2</span><span style=\"color: navy\">)</span> <i>"heightBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obH2<b> then </b>VitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obH2</span><span style=\"color: navy\">)</span> <i>"heightCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obH2.code<b> as </b><span style=\"color: maroon\">cdH2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdH2.coding<b> as </b><span style=\"color: maroon\">ccH2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccH2.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"hSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccH2.code = <span style=\"color: blue\">'8302-2'</span> <i>"hCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccH2.display = <span style=\"color: blue\">'Body height'</span> <i>"hDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"heightCodeCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"heightCode"</i><span style=\"color: navy\">;</span>\r\n aH2.value<b> as </b><span style=\"color: maroon\">dv</span><span style=\"color: navy\"><b> -> </b></span>obH2.value = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Quantity'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">qH2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> dv<span style=\"color: navy\"><b> -> </b></span>qH2.value = <span style=\"color: maroon\">dv</span> <i>"hQtyValue"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>qH2.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"hQtySystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>qH2.code = <span style=\"color: blue\">'cm'</span> <i>"hQtyCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>qH2.unit = <span style=\"color: blue\">'centimeter'</span> <i>"hQtyUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"heightValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"heightObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"heightAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"heightRule"</i><span style=\"color: navy\">;</span>\r\n gGrow.item<b> as </b><span style=\"color: maroon\">itMu</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-GM-Q3-muac'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itMu.answer first<b> as </b><span style=\"color: maroon\">aMu</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aMu<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eMu</span><span style=\"color: navy\">, </span> eMu.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obMu</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obMu<span style=\"color: navy\">, </span> eMu<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obMu</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eMu</span><span style=\"color: navy\">)</span> <i>"muacBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obMu<b> then </b>VitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obMu</span><span style=\"color: navy\">)</span> <i>"muacCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obMu.code<b> as </b><span style=\"color: maroon\">cdMu</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdMu.coding<b> as </b><span style=\"color: maroon\">ccMu</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccMu.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"muSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccMu.code = <span style=\"color: blue\">'9847-5'</span> <i>"muCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccMu.display = <span style=\"color: blue\">'Circumference site'</span> <i>"muDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"muacCodeCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"muacCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obMu<b> then </b>SetCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">itMu</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obMu</span><span style=\"color: navy\">)</span> <i>"muacValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"muacObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"muacAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"muacRule"</i><span style=\"color: navy\">;</span>\r\n gGrow.item<b> as </b><span style=\"color: maroon\">itWfa</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-GM-Q4-weight-category'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itWfa.answer first<b> as </b><span style=\"color: maroon\">aWfa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aWfa<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eWfa</span><span style=\"color: navy\">, </span> eWfa.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obWfa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obWfa<span style=\"color: navy\">, </span> eWfa<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obWfa</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eWfa</span><span style=\"color: navy\">)</span> <i>"wfaBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obWfa<b> then </b>VitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obWfa</span><span style=\"color: navy\">)</span> <i>"wfaCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obWfa.code<b> as </b><span style=\"color: maroon\">cdWfa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdWfa.coding<b> as </b><span style=\"color: maroon\">ccWfa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccWfa.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"wfaSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccWfa.code = <span style=\"color: blue\">'77606-2'</span> <i>"wfaCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccWfa.display = <span style=\"color: blue\">'Weight-for-age percentile'</span> <i>"wfaDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"wfaCodeCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"wfaCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obWfa<b> then </b>SetCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">itWfa</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obWfa</span><span style=\"color: navy\">)</span> <i>"wfaValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"wfaObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"wfaAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"wfaRule"</i><span style=\"color: navy\">;</span>\r\n gGrow.item<b> as </b><span style=\"color: maroon\">itHfa</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-GM-Q5-height-category'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itHfa.answer first<b> as </b><span style=\"color: maroon\">aHfa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aHfa<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eHfa</span><span style=\"color: navy\">, </span> eHfa.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obHfa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obHfa<span style=\"color: navy\">, </span> eHfa<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obHfa</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eHfa</span><span style=\"color: navy\">)</span> <i>"hfaBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obHfa<b> then </b>VitalSignsCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obHfa</span><span style=\"color: navy\">)</span> <i>"hfaCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obHfa.code<b> as </b><span style=\"color: maroon\">cdHfa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdHfa.coding<b> as </b><span style=\"color: maroon\">ccHfa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccHfa.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"hfaSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccHfa.code = <span style=\"color: blue\">'59576-9'</span> <i>"hfaCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccHfa.display = <span style=\"color: blue\">'Height-for-age percentile'</span> <i>"hfaDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"hfaCodeCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"hfaCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obHfa<b> then </b>SetCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">itHfa</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obHfa</span><span style=\"color: navy\">)</span> <i>"hfaValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"hfaObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"hfaAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"hfaRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"growthGroup"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">------------------------------------------------------------- L-Y vaccines</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">gVax</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-group-vaccines'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> gVax.item<b> as </b><span style=\"color: maroon\">itL</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-L-bcg'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itL.answer first<b> as </b><span style=\"color: maroon\">aL</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aL<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eL</span><span style=\"color: navy\">, </span> eL.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\">imL</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imL<span style=\"color: navy\">, </span> eL<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itL</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aL</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imL</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eL</span><span style=\"color: navy\">)</span> <i>"bcgBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imL.vaccineCode<b> as </b><span style=\"color: maroon\">vcL</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcL.coding<b> as </b><span style=\"color: maroon\">vccL</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccL.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"bcgSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccL.code = <span style=\"color: blue\">'bcg'</span> <i>"bcgCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccL.display = <span style=\"color: blue\">'BCG'</span> <i>"bcgDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bcgCoding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcL.text = <span style=\"color: blue\">'BCG'</span> <i>"bcgText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bcgVaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imL.protocolApplied<b> as </b><span style=\"color: maroon\">paL</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paL.series = <span style=\"color: blue\">'BCG'</span> <i>"bcgSeries"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paL.doseNumber = <span style=\"color: blue\">'1'</span> <i>"bcgDose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bcgProtocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bcgImmunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bcgAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"bcgRule"</i><span style=\"color: navy\">;</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itM</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-M-polio-birth'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itM.answer first<b> as </b><span style=\"color: maroon\">aM</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aM<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eM</span><span style=\"color: navy\">, </span> eM.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\">imM</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imM<span style=\"color: navy\">, </span> eM<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itM</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aM</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imM</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eM</span><span style=\"color: navy\">)</span> <i>"opv0Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imM.vaccineCode<b> as </b><span style=\"color: maroon\">vcM</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcM.coding<b> as </b><span style=\"color: maroon\">vccM</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccM.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"opv0System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccM.code = <span style=\"color: blue\">'bopv'</span> <i>"opv0Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccM.display = <span style=\"color: blue\">'Bivalent oral poliovirus vaccine'</span> <i>"opv0Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv0Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcM.text = <span style=\"color: blue\">'Polio birth dose (bOPV)'</span> <i>"opv0Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv0VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imM.protocolApplied<b> as </b><span style=\"color: maroon\">paM</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paM.series = <span style=\"color: blue\">'Polio (bOPV)'</span> <i>"opv0Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paM.doseNumber = <span style=\"color: blue\">'0'</span> <i>"opv0Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv0Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv0Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv0Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv0Rule"</i><span style=\"color: navy\">;</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itN</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-N-opv1'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itN.answer first<b> as </b><span style=\"color: maroon\">aN</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aN<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eN</span><span style=\"color: navy\">, </span> eN.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\">imN</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imN<span style=\"color: navy\">, </span> eN<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itN</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aN</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imN</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eN</span><span style=\"color: navy\">)</span> <i>"opv1Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imN.vaccineCode<b> as </b><span style=\"color: maroon\">vcN</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcN.coding<b> as </b><span style=\"color: maroon\">vccN</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccN.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"opv1System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccN.code = <span style=\"color: blue\">'bopv'</span> <i>"opv1Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccN.display = <span style=\"color: blue\">'Bivalent oral poliovirus vaccine'</span> <i>"opv1Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv1Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcN.text = <span style=\"color: blue\">'OPV 1'</span> <i>"opv1Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv1VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imN.protocolApplied<b> as </b><span style=\"color: maroon\">paN</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paN.series = <span style=\"color: blue\">'Polio (bOPV)'</span> <i>"opv1Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paN.doseNumber = <span style=\"color: blue\">'1'</span> <i>"opv1Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv1Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv1Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv1Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv1Rule"</i><span style=\"color: navy\">;</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itO</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-O-opv2'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itO.answer first<b> as </b><span style=\"color: maroon\">aO</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aO<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eO</span><span style=\"color: navy\">, </span> eO.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\">imO</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imO<span style=\"color: navy\">, </span> eO<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itO</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aO</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imO</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eO</span><span style=\"color: navy\">)</span> <i>"opv2Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imO.vaccineCode<b> as </b><span style=\"color: maroon\">vcO</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcO.coding<b> as </b><span style=\"color: maroon\">vccO</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccO.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"opv2System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccO.code = <span style=\"color: blue\">'bopv'</span> <i>"opv2Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccO.display = <span style=\"color: blue\">'Bivalent oral poliovirus vaccine'</span> <i>"opv2Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv2Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcO.text = <span style=\"color: blue\">'OPV 2'</span> <i>"opv2Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv2VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imO.protocolApplied<b> as </b><span style=\"color: maroon\">paO</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paO.series = <span style=\"color: blue\">'Polio (bOPV)'</span> <i>"opv2Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paO.doseNumber = <span style=\"color: blue\">'2'</span> <i>"opv2Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv2Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv2Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv2Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv2Rule"</i><span style=\"color: navy\">;</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itP</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-P-opv3'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itP.answer first<b> as </b><span style=\"color: maroon\">aP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aP<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eP</span><span style=\"color: navy\">, </span> eP.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\">imP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imP<span style=\"color: navy\">, </span> eP<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itP</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aP</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imP</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eP</span><span style=\"color: navy\">)</span> <i>"opv3Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imP.vaccineCode<b> as </b><span style=\"color: maroon\">vcP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcP.coding<b> as </b><span style=\"color: maroon\">vccP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccP.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"opv3System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccP.code = <span style=\"color: blue\">'bopv'</span> <i>"opv3Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccP.display = <span style=\"color: blue\">'Bivalent oral poliovirus vaccine'</span> <i>"opv3Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv3Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcP.text = <span style=\"color: blue\">'OPV 3'</span> <i>"opv3Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv3VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imP.protocolApplied<b> as </b><span style=\"color: maroon\">paP</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paP.series = <span style=\"color: blue\">'Polio (bOPV)'</span> <i>"opv3Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paP.doseNumber = <span style=\"color: blue\">'3'</span> <i>"opv3Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv3Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv3Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv3Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"opv3Rule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">IPV carries its own antigen code: the questionnaire reuses the OPV LOINC</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">code for both, which would collapse two distinct vaccines into one.</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itQ</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-Q-ipv'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itQ.answer first<b> as </b><span style=\"color: maroon\">aQ</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aQ<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eQ</span><span style=\"color: navy\">, </span> eQ.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\">imQ</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imQ<span style=\"color: navy\">, </span> eQ<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itQ</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aQ</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imQ</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eQ</span><span style=\"color: navy\">)</span> <i>"ipvBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imQ.vaccineCode<b> as </b><span style=\"color: maroon\">vcQ</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcQ.coding<b> as </b><span style=\"color: maroon\">vccQ</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccQ.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"ipvSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccQ.code = <span style=\"color: blue\">'ipv'</span> <i>"ipvCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccQ.display = <span style=\"color: blue\">'Inactivated poliovirus vaccine'</span> <i>"ipvDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ipvCoding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcQ.text = <span style=\"color: blue\">'IPV'</span> <i>"ipvText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ipvVaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imQ.protocolApplied<b> as </b><span style=\"color: maroon\">paQ</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paQ.series = <span style=\"color: blue\">'Polio (IPV)'</span> <i>"ipvSeries"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paQ.doseNumber = <span style=\"color: blue\">'1'</span> <i>"ipvDose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ipvProtocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ipvImmunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ipvAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ipvRule"</i><span style=\"color: navy\">;</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itR</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-R-penta1'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itR.answer first<b> as </b><span style=\"color: maroon\">aR</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aR<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eR</span><span style=\"color: navy\">, </span> eR.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\">imR</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imR<span style=\"color: navy\">, </span> eR<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itR</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aR</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imR</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eR</span><span style=\"color: navy\">)</span> <i>"penta1Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imR.vaccineCode<b> as </b><span style=\"color: maroon\">vcR</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcR.coding<b> as </b><span style=\"color: maroon\">vccR</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccR.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"penta1System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccR.code = <span style=\"color: blue\">'penta'</span> <i>"penta1Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccR.display = <span style=\"color: blue\">'DTP-HepB-Hib (pentavalent) vaccine'</span> <i>"penta1Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta1Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcR.text = <span style=\"color: blue\">'Pentavalent 1'</span> <i>"penta1Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta1VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imR.protocolApplied<b> as </b><span style=\"color: maroon\">paR</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paR.series = <span style=\"color: blue\">'Pentavalent'</span> <i>"penta1Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paR.doseNumber = <span style=\"color: blue\">'1'</span> <i>"penta1Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta1Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta1Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta1Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta1Rule"</i><span style=\"color: navy\">;</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itS</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-S-penta2'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itS.answer first<b> as </b><span style=\"color: maroon\">aS</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aS<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eS</span><span style=\"color: navy\">, </span> eS.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\">imS</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imS<span style=\"color: navy\">, </span> eS<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itS</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aS</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imS</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eS</span><span style=\"color: navy\">)</span> <i>"penta2Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imS.vaccineCode<b> as </b><span style=\"color: maroon\">vcS</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcS.coding<b> as </b><span style=\"color: maroon\">vccS</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccS.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"penta2System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccS.code = <span style=\"color: blue\">'penta'</span> <i>"penta2Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccS.display = <span style=\"color: blue\">'DTP-HepB-Hib (pentavalent) vaccine'</span> <i>"penta2Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta2Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcS.text = <span style=\"color: blue\">'Pentavalent 2'</span> <i>"penta2Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta2VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imS.protocolApplied<b> as </b><span style=\"color: maroon\">paS</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paS.series = <span style=\"color: blue\">'Pentavalent'</span> <i>"penta2Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paS.doseNumber = <span style=\"color: blue\">'2'</span> <i>"penta2Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta2Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta2Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta2Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta2Rule"</i><span style=\"color: navy\">;</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itT</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-T-penta3'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itT.answer first<b> as </b><span style=\"color: maroon\">aT</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aT<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eT</span><span style=\"color: navy\">, </span> eT.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\">imT</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imT<span style=\"color: navy\">, </span> eT<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itT</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aT</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imT</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eT</span><span style=\"color: navy\">)</span> <i>"penta3Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imT.vaccineCode<b> as </b><span style=\"color: maroon\">vcT</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcT.coding<b> as </b><span style=\"color: maroon\">vccT</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccT.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"penta3System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccT.code = <span style=\"color: blue\">'penta'</span> <i>"penta3Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccT.display = <span style=\"color: blue\">'DTP-HepB-Hib (pentavalent) vaccine'</span> <i>"penta3Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta3Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcT.text = <span style=\"color: blue\">'Pentavalent 3'</span> <i>"penta3Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta3VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imT.protocolApplied<b> as </b><span style=\"color: maroon\">paT</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paT.series = <span style=\"color: blue\">'Pentavalent'</span> <i>"penta3Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paT.doseNumber = <span style=\"color: blue\">'3'</span> <i>"penta3Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta3Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta3Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta3Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"penta3Rule"</i><span style=\"color: navy\">;</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itU</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-U-pcv1'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itU.answer first<b> as </b><span style=\"color: maroon\">aU</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aU<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eU</span><span style=\"color: navy\">, </span> eU.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\">imU</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imU<span style=\"color: navy\">, </span> eU<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itU</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aU</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imU</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eU</span><span style=\"color: navy\">)</span> <i>"pcv1Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imU.vaccineCode<b> as </b><span style=\"color: maroon\">vcU</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcU.coding<b> as </b><span style=\"color: maroon\">vccU</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccU.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"pcv1System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccU.code = <span style=\"color: blue\">'pcv10'</span> <i>"pcv1Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccU.display = <span style=\"color: blue\">'Pneumococcal conjugate vaccine (PCV10)'</span> <i>"pcv1Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv1Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcU.text = <span style=\"color: blue\">'PCV10 1'</span> <i>"pcv1Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv1VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imU.protocolApplied<b> as </b><span style=\"color: maroon\">paU</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paU.series = <span style=\"color: blue\">'PCV10'</span> <i>"pcv1Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paU.doseNumber = <span style=\"color: blue\">'1'</span> <i>"pcv1Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv1Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv1Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv1Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv1Rule"</i><span style=\"color: navy\">;</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itV</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-V-pcv2'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itV.answer first<b> as </b><span style=\"color: maroon\">aV</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aV<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eV</span><span style=\"color: navy\">, </span> eV.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\">imV</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imV<span style=\"color: navy\">, </span> eV<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itV</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aV</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imV</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eV</span><span style=\"color: navy\">)</span> <i>"pcv2Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imV.vaccineCode<b> as </b><span style=\"color: maroon\">vcV</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcV.coding<b> as </b><span style=\"color: maroon\">vccV</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccV.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"pcv2System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccV.code = <span style=\"color: blue\">'pcv10'</span> <i>"pcv2Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccV.display = <span style=\"color: blue\">'Pneumococcal conjugate vaccine (PCV10)'</span> <i>"pcv2Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv2Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcV.text = <span style=\"color: blue\">'PCV10 2'</span> <i>"pcv2Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv2VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imV.protocolApplied<b> as </b><span style=\"color: maroon\">paV</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paV.series = <span style=\"color: blue\">'PCV10'</span> <i>"pcv2Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paV.doseNumber = <span style=\"color: blue\">'2'</span> <i>"pcv2Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv2Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv2Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv2Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv2Rule"</i><span style=\"color: navy\">;</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itW2</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-W-pcv3'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itW2.answer first<b> as </b><span style=\"color: maroon\">aW2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aW2<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eW2</span><span style=\"color: navy\">, </span> eW2.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\">imW2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imW2<span style=\"color: navy\">, </span> eW2<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itW2</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aW2</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imW2</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eW2</span><span style=\"color: navy\">)</span> <i>"pcv3Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imW2.vaccineCode<b> as </b><span style=\"color: maroon\">vcW2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcW2.coding<b> as </b><span style=\"color: maroon\">vccW2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccW2.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"pcv3System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccW2.code = <span style=\"color: blue\">'pcv10'</span> <i>"pcv3Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccW2.display = <span style=\"color: blue\">'Pneumococcal conjugate vaccine (PCV10)'</span> <i>"pcv3Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv3Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcW2.text = <span style=\"color: blue\">'PCV10 3'</span> <i>"pcv3Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv3VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imW2.protocolApplied<b> as </b><span style=\"color: maroon\">paW2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paW2.series = <span style=\"color: blue\">'PCV10'</span> <i>"pcv3Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paW2.doseNumber = <span style=\"color: blue\">'3'</span> <i>"pcv3Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv3Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv3Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv3Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"pcv3Rule"</i><span style=\"color: navy\">;</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itX</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-X-rota1'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itX.answer first<b> as </b><span style=\"color: maroon\">aX</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aX<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eX</span><span style=\"color: navy\">, </span> eX.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\">imX</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imX<span style=\"color: navy\">, </span> eX<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itX</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aX</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imX</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eX</span><span style=\"color: navy\">)</span> <i>"rota1Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imX.vaccineCode<b> as </b><span style=\"color: maroon\">vcX</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcX.coding<b> as </b><span style=\"color: maroon\">vccX</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccX.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"rota1System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccX.code = <span style=\"color: blue\">'rota'</span> <i>"rota1Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccX.display = <span style=\"color: blue\">'Rotavirus vaccine'</span> <i>"rota1Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rota1Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcX.text = <span style=\"color: blue\">'Rota 1'</span> <i>"rota1Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rota1VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imX.protocolApplied<b> as </b><span style=\"color: maroon\">paX</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paX.series = <span style=\"color: blue\">'Rotavirus'</span> <i>"rota1Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paX.doseNumber = <span style=\"color: blue\">'1'</span> <i>"rota1Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rota1Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rota1Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rota1Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rota1Rule"</i><span style=\"color: navy\">;</span>\r\n gVax.item<b> as </b><span style=\"color: maroon\">itY</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-Y-rota2'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itY.answer first<b> as </b><span style=\"color: maroon\">aY</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aY<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eY</span><span style=\"color: navy\">, </span> eY.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\">imY</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imY<span style=\"color: navy\">, </span> eY<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itY</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aY</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imY</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eY</span><span style=\"color: navy\">)</span> <i>"rota2Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imY.vaccineCode<b> as </b><span style=\"color: maroon\">vcY</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcY.coding<b> as </b><span style=\"color: maroon\">vccY</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccY.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"rota2System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccY.code = <span style=\"color: blue\">'rota'</span> <i>"rota2Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccY.display = <span style=\"color: blue\">'Rotavirus vaccine'</span> <i>"rota2Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rota2Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcY.text = <span style=\"color: blue\">'Rota 2'</span> <i>"rota2Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rota2VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imY.protocolApplied<b> as </b><span style=\"color: maroon\">paY</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paY.series = <span style=\"color: blue\">'Rotavirus'</span> <i>"rota2Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paY.doseNumber = <span style=\"color: blue\">'2'</span> <i>"rota2Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rota2Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rota2Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rota2Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rota2Rule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vaccineGroup"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">------------------------------------------------- Z Vitamin A supplements</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">gSup</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-group-supplementation'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> gSup.item<b> as </b><span style=\"color: maroon\">itZ</span><b> where </b><span style=\"color: navy\">(</span>linkId = '55876-9'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itZ.answer first<b> as </b><span style=\"color: maroon\">aZ</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aZ<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eZ</span><span style=\"color: navy\">, </span> eZ.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'MedicationAdministration'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">maZ</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> maZ<span style=\"color: navy\">, </span> eZ<b> then </b>BuildMedAdmin<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itZ</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aZ</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">maZ</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eZ</span><span style=\"color: navy\">)</span> <i>"vitA100Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>maZ.medication<b> as </b><span style=\"color: maroon\">mcrZ</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>mcrZ.concept<b> as </b><span style=\"color: maroon\">mccZ</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>mccZ.coding<b> as </b><span style=\"color: maroon\">mcoZ</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>mcoZ.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-supplement'</span> <i>"vitA100System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>mcoZ.code = <span style=\"color: blue\">'vitamin-a-100000'</span> <i>"vitA100Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>mcoZ.display = <span style=\"color: blue\">'Vitamin A 100,000 IU'</span> <i>"vitA100Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA100Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>mccZ.text = <span style=\"color: blue\">'Vitamin A 100,000 IU (6-11 months)'</span> <i>"vitA100Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA100Concept"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA100Medication"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>maZ.dosage<b> as </b><span style=\"color: maroon\">dosZ</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>dosZ.dose<b> as </b><span style=\"color: maroon\">dqZ</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>dqZ.value = <span style=\"color: blue\">100000</span> <i>"vitA100DoseValue"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>dqZ.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"vitA100DoseSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>dqZ.code = <span style=\"color: blue\">'[IU]'</span> <i>"vitA100DoseCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>dqZ.unit = <span style=\"color: blue\">'international unit'</span> <i>"vitA100DoseUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA100Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA100Dosage"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA100Resource"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA100Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA100Rule"</i><span style=\"color: navy\">;</span>\r\n gSup.item<b> as </b><span style=\"color: maroon\">itZ2</span><b> where </b><span style=\"color: navy\">(</span>linkId = '0v8mpdt'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itZ2.answer first<b> as </b><span style=\"color: maroon\">aZ2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aZ2<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eZ2</span><span style=\"color: navy\">, </span> eZ2.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'MedicationAdministration'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">maZ2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> maZ2<span style=\"color: navy\">, </span> eZ2<b> then </b>BuildMedAdmin<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itZ2</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aZ2</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">maZ2</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eZ2</span><span style=\"color: navy\">)</span> <i>"vitA200Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>maZ2.medication<b> as </b><span style=\"color: maroon\">mcrZ2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>mcrZ2.concept<b> as </b><span style=\"color: maroon\">mccZ2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>mccZ2.coding<b> as </b><span style=\"color: maroon\">mcoZ2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>mcoZ2.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-supplement'</span> <i>"vitA200System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>mcoZ2.code = <span style=\"color: blue\">'vitamin-a-200000'</span> <i>"vitA200Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>mcoZ2.display = <span style=\"color: blue\">'Vitamin A 200,000 IU'</span> <i>"vitA200Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA200Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>mccZ2.text = <span style=\"color: blue\">'Vitamin A 200,000 IU (12 months onwards)'</span> <i>"vitA200Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA200Concept"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA200Medication"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>maZ2.dosage<b> as </b><span style=\"color: maroon\">dosZ2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>dosZ2.dose<b> as </b><span style=\"color: maroon\">dqZ2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>dqZ2.value = <span style=\"color: blue\">200000</span> <i>"vitA200DoseValue"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>dqZ2.system = <span style=\"color: blue\">'http://unitsofmeasure.org'</span> <i>"vitA200DoseSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>dqZ2.code = <span style=\"color: blue\">'[IU]'</span> <i>"vitA200DoseCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>dqZ2.unit = <span style=\"color: blue\">'international unit'</span> <i>"vitA200DoseUnit"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA200Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA200Dosage"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA200Resource"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA200Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vitA200Rule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"supplementationGroup"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">------------------------------------------------------ AA-AB MR1 + Yellow Fever</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">gMrYf</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-group-mr-yf'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> gMrYf.item<b> as </b><span style=\"color: maroon\">itAa</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-AA-mr1'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itAa.answer first<b> as </b><span style=\"color: maroon\">aAa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aAa<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eAa</span><span style=\"color: navy\">, </span> eAa.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\">imAa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imAa<span style=\"color: navy\">, </span> eAa<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itAa</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aAa</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imAa</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eAa</span><span style=\"color: navy\">)</span> <i>"mr1Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imAa.vaccineCode<b> as </b><span style=\"color: maroon\">vcAa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcAa.coding<b> as </b><span style=\"color: maroon\">vccAa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccAa.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"mr1System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccAa.code = <span style=\"color: blue\">'mr'</span> <i>"mr1Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccAa.display = <span style=\"color: blue\">'Measles-rubella vaccine'</span> <i>"mr1Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr1Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcAa.text = <span style=\"color: blue\">'MR 1'</span> <i>"mr1Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr1VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imAa.protocolApplied<b> as </b><span style=\"color: maroon\">paAa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paAa.series = <span style=\"color: blue\">'Measles-Rubella'</span> <i>"mr1Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paAa.doseNumber = <span style=\"color: blue\">'1'</span> <i>"mr1Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr1Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr1Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr1Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr1Rule"</i><span style=\"color: navy\">;</span>\r\n gMrYf.item<b> as </b><span style=\"color: maroon\">itAb</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-AB-yf'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itAb.answer first<b> as </b><span style=\"color: maroon\">aAb</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aAb<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eAb</span><span style=\"color: navy\">, </span> eAb.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\">imAb</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imAb<span style=\"color: navy\">, </span> eAb<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itAb</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aAb</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imAb</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eAb</span><span style=\"color: navy\">)</span> <i>"yfBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imAb.vaccineCode<b> as </b><span style=\"color: maroon\">vcAb</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcAb.coding<b> as </b><span style=\"color: maroon\">vccAb</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccAb.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"yfSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccAb.code = <span style=\"color: blue\">'yf'</span> <i>"yfCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccAb.display = <span style=\"color: blue\">'Yellow fever vaccine'</span> <i>"yfDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"yfCoding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcAb.text = <span style=\"color: blue\">'Yellow Fever'</span> <i>"yfText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"yfVaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imAb.protocolApplied<b> as </b><span style=\"color: maroon\">paAb</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paAb.series = <span style=\"color: blue\">'Yellow Fever'</span> <i>"yfSeries"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paAb.doseNumber = <span style=\"color: blue\">'1'</span> <i>"yfDose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"yfProtocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"yfImmunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"yfAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"yfRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mrYfGroup"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">------------------------------------------------------------- AC FIC date</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">gFic</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-group-fic'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> gFic.item<b> as </b><span style=\"color: maroon\">itAc</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-FIC-AC-date'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itAc.answer first<b> as </b><span style=\"color: maroon\">aAc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aAc<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eAc</span><span style=\"color: navy\">, </span> eAc.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obAc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obAc<span style=\"color: navy\">, </span> eAc<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obAc</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eAc</span><span style=\"color: navy\">)</span> <i>"ficBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obAc<b> then </b>SurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obAc</span><span style=\"color: navy\">)</span> <i>"ficCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obAc.code<b> as </b><span style=\"color: maroon\">cdAc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdAc.coding<b> as </b><span style=\"color: maroon\">ccAc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccAc.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"ficSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccAc.code = <span style=\"color: blue\">'11369-6'</span> <i>"ficCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccAc.display = <span style=\"color: blue\">'Immunisation completion status'</span> <i>"ficDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ficCodeCoding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>cdAc.text = <span style=\"color: blue\">'Fully Immunised Child (FIC) completion date'</span> <i>"ficCodeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ficCode"</i><span style=\"color: navy\">;</span>\r\n aAc.value<b> as </b><span style=\"color: maroon\">dv</span><span style=\"color: navy\"><b> -> </b></span>obAc.value = <b>cast</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">dv</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'dateTime'</span><span style=\"color: navy\">)</span> <i>"ficValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ficObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ficAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ficRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"ficGroup"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">------------------------------------------------------------------ AD MR2</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">gMr2</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-group-mr2'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> gMr2.item<b> as </b><span style=\"color: maroon\">itAd</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-VAX-AD-mr2'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itAd.answer first<b> as </b><span style=\"color: maroon\">aAd</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aAd<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eAd</span><span style=\"color: navy\">, </span> eAd.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\">imAd</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> imAd<span style=\"color: navy\">, </span> eAd<b> then </b>BuildImm<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">itAd</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">aAd</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">imAd</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eAd</span><span style=\"color: navy\">)</span> <i>"mr2Base"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imAd.vaccineCode<b> as </b><span style=\"color: maroon\">vcAd</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vcAd.coding<b> as </b><span style=\"color: maroon\">vccAd</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>vccAd.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen'</span> <i>"mr2System"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccAd.code = <span style=\"color: blue\">'mr'</span> <i>"mr2Code"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vccAd.display = <span style=\"color: blue\">'Measles-rubella vaccine'</span> <i>"mr2Display"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr2Coding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>vcAd.text = <span style=\"color: blue\">'MR 2'</span> <i>"mr2Text"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr2VaccineCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imAd.protocolApplied<b> as </b><span style=\"color: maroon\">paAd</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>paAd.series = <span style=\"color: blue\">'Measles-Rubella'</span> <i>"mr2Series"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>paAd.doseNumber = <span style=\"color: blue\">'2'</span> <i>"mr2Dose"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr2Protocol"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr2Immunization"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr2Answer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr2Rule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"mr2Group"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">------------------------------------------------------------- Danger signs</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">gDs</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-group-danger-signs'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> gDs.item<b> as </b><span style=\"color: maroon\">itD1</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-DS-Q1-fever'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itD1.answer first<b> as </b><span style=\"color: maroon\">aD1</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aD1<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eD1</span><span style=\"color: navy\">, </span> eD1.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obD1</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obD1<span style=\"color: navy\">, </span> eD1<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD1</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eD1</span><span style=\"color: navy\">)</span> <i>"feverBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD1<b> then </b>SurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD1</span><span style=\"color: navy\">)</span> <i>"feverCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD1.code<b> as </b><span style=\"color: maroon\">cdD1</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdD1.coding<b> as </b><span style=\"color: maroon\">ccD1</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccD1.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"feverSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD1.code = <span style=\"color: blue\">'8310-5'</span> <i>"feverCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD1.display = <span style=\"color: blue\">'Body temperature'</span> <i>"feverDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"feverCodeCoding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>cdD1.text = <span style=\"color: blue\">'Fever reported'</span> <i>"feverCodeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"feverCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD1<b> then </b>SetCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">itD1</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD1</span><span style=\"color: navy\">)</span> <i>"feverValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"feverObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"feverAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"feverRule"</i><span style=\"color: navy\">;</span>\r\n gDs.item<b> as </b><span style=\"color: maroon\">itD2</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-DS-Q2-feeding'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itD2.answer first<b> as </b><span style=\"color: maroon\">aD2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aD2<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eD2</span><span style=\"color: navy\">, </span> eD2.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obD2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obD2<span style=\"color: navy\">, </span> eD2<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD2</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eD2</span><span style=\"color: navy\">)</span> <i>"feedingBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD2<b> then </b>SurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD2</span><span style=\"color: navy\">)</span> <i>"feedingCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD2.code<b> as </b><span style=\"color: maroon\">cdD2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdD2.coding<b> as </b><span style=\"color: maroon\">ccD2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccD2.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"feedingSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD2.code = <span style=\"color: blue\">'75890-1'</span> <i>"feedingCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD2.display = <span style=\"color: blue\">'Feeding status'</span> <i>"feedingDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"feedingCodeCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Polarity is inverted relative to the other danger signs: "Yes"</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">here is reassuring, not alarming.</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>cdD2.text = <span style=\"color: blue\">'Child is feeding'</span> <i>"feedingCodeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"feedingCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD2<b> then </b>SetCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">itD2</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD2</span><span style=\"color: navy\">)</span> <i>"feedingValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"feedingObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"feedingAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"feedingRule"</i><span style=\"color: navy\">;</span>\r\n gDs.item<b> as </b><span style=\"color: maroon\">itD3</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-DS-Q3-convulsions'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itD3.answer first<b> as </b><span style=\"color: maroon\">aD3</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aD3<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eD3</span><span style=\"color: navy\">, </span> eD3.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obD3</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obD3<span style=\"color: navy\">, </span> eD3<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD3</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eD3</span><span style=\"color: navy\">)</span> <i>"convulsionsBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD3<b> then </b>SurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD3</span><span style=\"color: navy\">)</span> <i>"convulsionsCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD3.code<b> as </b><span style=\"color: maroon\">cdD3</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdD3.coding<b> as </b><span style=\"color: maroon\">ccD3</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccD3.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"convulsionsSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD3.code = <span style=\"color: blue\">'31398-4'</span> <i>"convulsionsCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD3.display = <span style=\"color: blue\">'Convulsions'</span> <i>"convulsionsDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"convulsionsCodeCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"convulsionsCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD3<b> then </b>SetCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">itD3</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD3</span><span style=\"color: navy\">)</span> <i>"convulsionsValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"convulsionsObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"convulsionsAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"convulsionsRule"</i><span style=\"color: navy\">;</span>\r\n gDs.item<b> as </b><span style=\"color: maroon\">itD4</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-DS-Q4-cough'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itD4.answer first<b> as </b><span style=\"color: maroon\">aD4</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aD4<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eD4</span><span style=\"color: navy\">, </span> eD4.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obD4</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obD4<span style=\"color: navy\">, </span> eD4<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD4</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eD4</span><span style=\"color: navy\">)</span> <i>"coughBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD4<b> then </b>SurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD4</span><span style=\"color: navy\">)</span> <i>"coughCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD4.code<b> as </b><span style=\"color: maroon\">cdD4</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdD4.coding<b> as </b><span style=\"color: maroon\">ccD4</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccD4.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"coughSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD4.code = <span style=\"color: blue\">'28238-4'</span> <i>"coughCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD4.display = <span style=\"color: blue\">'Cough'</span> <i>"coughDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coughCodeCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coughCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD4<b> then </b>SetCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">itD4</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD4</span><span style=\"color: navy\">)</span> <i>"coughValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coughObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coughAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"coughRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">The questionnaire declares this SNOMED CT concept id under the LOINC</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">system; emitted here against the SNOMED CT system it actually belongs to.</span>\r\n gDs.item<b> as </b><span style=\"color: maroon\">itD5</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-DS-Q5-diarrhoea'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itD5.answer first<b> as </b><span style=\"color: maroon\">aD5</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aD5<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eD5</span><span style=\"color: navy\">, </span> eD5.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obD5</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obD5<span style=\"color: navy\">, </span> eD5<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD5</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eD5</span><span style=\"color: navy\">)</span> <i>"diarrhoeaBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD5<b> then </b>SurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD5</span><span style=\"color: navy\">)</span> <i>"diarrhoeaCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD5.code<b> as </b><span style=\"color: maroon\">cdD5</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdD5.coding<b> as </b><span style=\"color: maroon\">ccD5</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccD5.system = <span style=\"color: blue\">'http://snomed.info/sct'</span> <i>"diarrhoeaSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD5.code = <span style=\"color: blue\">'28229008'</span> <i>"diarrhoeaCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD5.display = <span style=\"color: blue\">'Diarrhoea'</span> <i>"diarrhoeaDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"diarrhoeaCodeCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"diarrhoeaCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD5<b> then </b>SetCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">itD5</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD5</span><span style=\"color: navy\">)</span> <i>"diarrhoeaValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"diarrhoeaObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"diarrhoeaAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"diarrhoeaRule"</i><span style=\"color: navy\">;</span>\r\n gDs.item<b> as </b><span style=\"color: maroon\">itD6</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-DS-Q6-vomiting'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itD6.answer first<b> as </b><span style=\"color: maroon\">aD6</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aD6<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eD6</span><span style=\"color: navy\">, </span> eD6.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obD6</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obD6<span style=\"color: navy\">, </span> eD6<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD6</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eD6</span><span style=\"color: navy\">)</span> <i>"vomitingBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD6<b> then </b>SurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD6</span><span style=\"color: navy\">)</span> <i>"vomitingCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD6.code<b> as </b><span style=\"color: maroon\">cdD6</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdD6.coding<b> as </b><span style=\"color: maroon\">ccD6</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccD6.system = <span style=\"color: blue\">'http://snomed.info/sct'</span> <i>"vomitingSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD6.code = <span style=\"color: blue\">'21522001'</span> <i>"vomitingCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD6.display = <span style=\"color: blue\">'Vomiting'</span> <i>"vomitingDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vomitingCodeCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vomitingCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD6<b> then </b>SetCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">itD6</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD6</span><span style=\"color: navy\">)</span> <i>"vomitingValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vomitingObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vomitingAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vomitingRule"</i><span style=\"color: navy\">;</span>\r\n gDs.item<b> as </b><span style=\"color: maroon\">itD7</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-DS-Q7-notes'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itD7.answer first<b> as </b><span style=\"color: maroon\">aD7</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aD7<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eD7</span><span style=\"color: navy\">, </span> eD7.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obD7</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obD7<span style=\"color: navy\">, </span> eD7<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD7</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eD7</span><span style=\"color: navy\">)</span> <i>"dsNotesBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD7<b> then </b>SurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obD7</span><span style=\"color: navy\">)</span> <i>"dsNotesCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obD7.code<b> as </b><span style=\"color: maroon\">cdD7</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdD7.coding<b> as </b><span style=\"color: maroon\">ccD7</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccD7.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"dsNotesSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD7.code = <span style=\"color: blue\">'48767-8'</span> <i>"dsNotesCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccD7.display = <span style=\"color: blue\">'Annotation comment'</span> <i>"dsNotesDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"dsNotesCodeCoding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>cdD7.text = <span style=\"color: blue\">'Danger signs clinical notes'</span> <i>"dsNotesCodeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"dsNotesCode"</i><span style=\"color: navy\">;</span>\r\n aD7.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>obD7.value = <span style=\"color: maroon\">v</span> <i>"dsNotesValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"dsNotesObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"dsNotesAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"dsNotesRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"dangerSignsGroup"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------- Patient education</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">gEd</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-group-education'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> gEd.item<b> as </b><span style=\"color: maroon\">itE1</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-ED-Q1-education-given'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itE1.answer first<b> as </b><span style=\"color: maroon\">aE1</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aE1<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eE1</span><span style=\"color: navy\">, </span> eE1.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obE1</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obE1<span style=\"color: navy\">, </span> eE1<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obE1</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eE1</span><span style=\"color: navy\">)</span> <i>"eduGivenBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obE1<b> then </b>SurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obE1</span><span style=\"color: navy\">)</span> <i>"eduGivenCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obE1.code<b> as </b><span style=\"color: maroon\">cdE1</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdE1.coding<b> as </b><span style=\"color: maroon\">ccE1</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccE1.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"eduGivenSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccE1.code = <span style=\"color: blue\">'61144-2'</span> <i>"eduGivenCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccE1.display = <span style=\"color: blue\">'Patient education provided'</span> <i>"eduGivenDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"eduGivenCodeCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"eduGivenCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obE1<b> then </b>SetCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">itE1</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obE1</span><span style=\"color: navy\">)</span> <i>"eduGivenValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"eduGivenObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"eduGivenAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"eduGivenRule"</i><span style=\"color: navy\">;</span>\r\n gEd.item<b> as </b><span style=\"color: maroon\">itE2</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-ED-Q2-topics'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itE2.answer first<b> as </b><span style=\"color: maroon\">aE2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aE2<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eE2</span><span style=\"color: navy\">, </span> eE2.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obE2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obE2<span style=\"color: navy\">, </span> eE2<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obE2</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eE2</span><span style=\"color: navy\">)</span> <i>"eduTopicsBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obE2<b> then </b>SurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obE2</span><span style=\"color: navy\">)</span> <i>"eduTopicsCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obE2.code<b> as </b><span style=\"color: maroon\">cdE2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdE2.coding<b> as </b><span style=\"color: maroon\">ccE2</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccE2.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"eduTopicsSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccE2.code = <span style=\"color: blue\">'61144-2'</span> <i>"eduTopicsCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccE2.display = <span style=\"color: blue\">'Education topics covered'</span> <i>"eduTopicsDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"eduTopicsCodeCoding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>cdE2.text = <span style=\"color: blue\">'Education topics covered'</span> <i>"eduTopicsCodeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"eduTopicsCode"</i><span style=\"color: navy\">;</span>\r\n aE2.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>obE2.value = <span style=\"color: maroon\">v</span> <i>"eduTopicsValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"eduTopicsObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"eduTopicsAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"eduTopicsRule"</i><span style=\"color: navy\">;</span>\r\n gEd.item<b> as </b><span style=\"color: maroon\">itE3</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-ED-Q3-next-visit'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itE3.answer first<b> as </b><span style=\"color: maroon\">aE3</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aE3<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eE3</span><span style=\"color: navy\">, </span> eE3.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obE3</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obE3<span style=\"color: navy\">, </span> eE3<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obE3</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eE3</span><span style=\"color: navy\">)</span> <i>"nextVisitToldBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obE3<b> then </b>SurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obE3</span><span style=\"color: navy\">)</span> <i>"nextVisitToldCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obE3.code<b> as </b><span style=\"color: maroon\">cdE3</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdE3.coding<b> as </b><span style=\"color: maroon\">ccE3</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccE3.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"nextVisitToldSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccE3.code = <span style=\"color: blue\">'57177-3'</span> <i>"nextVisitToldCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccE3.display = <span style=\"color: blue\">'Follow-up plan'</span> <i>"nextVisitToldDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"nextVisitToldCodeCoding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>cdE3.text = <span style=\"color: blue\">'Next visit date communicated to caregiver'</span> <i>"nextVisitToldCodeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"nextVisitToldCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obE3<b> then </b>SetCodedValue<span style=\"color: navy\">(</span><span style=\"color: maroon\">itE3</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obE3</span><span style=\"color: navy\">)</span> <i>"nextVisitToldValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"nextVisitToldObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"nextVisitToldAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"nextVisitToldRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Appointment.start is an instant, so a date-only answer is carried on</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">requestedPeriod instead.</span>\r\n gEd.item<b> as </b><span style=\"color: maroon\">itE4</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-ED-Q4-next-visit-date'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itE4.answer first<b> as </b><span style=\"color: maroon\">aE4</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aE4<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eE4</span><span style=\"color: navy\">, </span> eE4.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Appointment'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">appt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> <span style=\"color: navy\">// </span><span style=\"color: green\">One proposed appointment per (child, requested date).</span>\r\n aE4.value<b> as </b><span style=\"color: maroon\">dvAp</span><span style=\"color: navy\"><b> -> </b></span>appt.identifier<b> as </b><span style=\"color: maroon\">idAp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>idAp.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell'</span> <i>"apptCellSystem"</i><span style=\"color: navy\">;</span>\r\n dvAp<span style=\"color: navy\"><b> -> </b></span>idAp.value = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'IMM-ED-Q4-next-visit-date@'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">dvAp</span><span style=\"color: navy\">)</span> <i>"apptCellValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"apptCellIdentifier"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">subjAp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> subjAp.reference<b> as </b><span style=\"color: maroon\">prefAp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aE4.value<b> as </b><span style=\"color: maroon\">dvAp2</span><span style=\"color: navy\"><b> -> </b></span>eE4.request<b> as </b><span style=\"color: maroon\">rqAp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>rqAp.method = <span style=\"color: blue\">'POST'</span> <i>"apptReqMethod"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>rqAp.url = <span style=\"color: blue\">'Appointment'</span> <i>"apptReqUrl"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>rqAp.ifNoneExist = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'actor='</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">prefAp</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'&identifier=https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell|IMM-ED-Q4-next-visit-date@'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">dvAp2</span><span style=\"color: navy\">)</span> <i>"apptIfNoneExist"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"apptReq"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"apptPatientRef"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"apptSubject"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>appt.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"apptId"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>appt.status = <span style=\"color: blue\">'proposed'</span> <i>"apptStatus"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>appt.description = <span style=\"color: blue\">'Next scheduled immunisation visit (MOH 510)'</span> <i>"apptDescription"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -> </b></span>appt.subject = <span style=\"color: maroon\">s</span> <i>"apptSubject"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>appt.participant<b> as </b><span style=\"color: maroon\">prt</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>prt.status = <span style=\"color: blue\">'needs-action'</span> <i>"apptParticipantStatus"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -> </b></span>prt.actor = <span style=\"color: maroon\">s</span> <i>"apptParticipantActor"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"apptParticipant"</i><span style=\"color: navy\">;</span>\r\n aE4.value<b> as </b><span style=\"color: maroon\">dv</span><span style=\"color: navy\"><b> -> </b></span>appt.requestedPeriod<b> as </b><span style=\"color: maroon\">rp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> dv<span style=\"color: navy\"><b> -> </b></span>rp.start = <b>cast</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">dv</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'dateTime'</span><span style=\"color: navy\">)</span> <i>"apptRequestedStart"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"apptRequestedPeriod"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"appointmentResource"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"nextVisitDateAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"nextVisitDateRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"educationGroup"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------- AE Remarks</span>\r\n qr.item<b> as </b><span style=\"color: maroon\">gRem</span><b> where </b><span style=\"color: navy\">(</span>linkId = 'IMM-group-remarks'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> gRem.item<b> as </b><span style=\"color: maroon\">itAe</span><b> where </b><span style=\"color: navy\">(</span>linkId = '48767-8'<span style=\"color: navy\">)</span><b> then</b><span style=\"color: navy\"> {\r\n</span> itAe.answer first<b> as </b><span style=\"color: maroon\">aAe</span><b> then</b><span style=\"color: navy\"> {\r\n</span> aAe<span style=\"color: navy\"><b> -> </b></span> bundle.entry<b> as </b><span style=\"color: maroon\">eAe</span><span style=\"color: navy\">, </span> eAe.resource = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Observation'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">obAe</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span> obAe<span style=\"color: navy\">, </span> eAe<b> then </b>BuildObsBase<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obAe</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">eAe</span><span style=\"color: navy\">)</span> <i>"remarksBase"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obAe<b> then </b>SurveyCategory<span style=\"color: navy\">(</span><span style=\"color: maroon\">qr</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">obAe</span><span style=\"color: navy\">)</span> <i>"remarksCategory"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obAe.code<b> as </b><span style=\"color: maroon\">cdAe</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cdAe.coding<b> as </b><span style=\"color: maroon\">ccAe</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>ccAe.system = <span style=\"color: blue\">'http://loinc.org'</span> <i>"remarksSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccAe.code = <span style=\"color: blue\">'48767-8'</span> <i>"remarksCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ccAe.display = <span style=\"color: blue\">'Annotation comment'</span> <i>"remarksDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"remarksCodeCoding"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>cdAe.text = <span style=\"color: blue\">'MOH 510 register remarks'</span> <i>"remarksCodeText"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"remarksCode"</i><span style=\"color: navy\">;</span>\r\n aAe.value<b> as </b><span style=\"color: maroon\">v</span><span style=\"color: navy\"><b> -> </b></span>obAe.value = <span style=\"color: maroon\">v</span> <i>"remarksValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"remarksObservation"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"remarksAnswer"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"remarksRule"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"remarksGroup"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">---------------------------------------------------------------- helper groups</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Plain POST, deliberately not a conditional create. These are per-visit facts,</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">so the key would have to be (cell, visit) -- and qr.authored carries a</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">"+03:00" offset that cannot go into an ifNoneExist query string unencoded.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Consequence: extracting the SAME response twice duplicates its Observations.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">Populate never fills these sections, so the populate/extract loop is</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">unaffected; only a repeated submission of one response is.</span>\r\n<b>group </b>BuildObsBase<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>entry.request<b> as </b><span style=\"color: maroon\">rq</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>rq.method = <span style=\"color: blue\">'POST'</span> <i>"obsReqMethod"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>rq.url = <span style=\"color: blue\">'Observation'</span> <i>"obsReqUrl"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"obsReq"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"obsId"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>obs.status = <span style=\"color: blue\">'final'</span> <i>"obsStatus"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -> </b></span>obs.subject = <span style=\"color: maroon\">s</span> <i>"obsSubject"</i><span style=\"color: navy\">;</span>\r\n qr.encounter<b> as </b><span style=\"color: maroon\">e</span><span style=\"color: navy\"><b> -> </b></span>obs.encounter = <span style=\"color: maroon\">e</span> <i>"obsEncounter"</i><span style=\"color: navy\">;</span>\r\n qr.authored<b> as </b><span style=\"color: maroon\">t</span><span style=\"color: navy\"><b> -> </b></span>obs.effective = <span style=\"color: maroon\">t</span> <i>"obsEffective"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: #b36b00\" title=\"This element was not defined prior to R5\">// qr.id is already type-qualified ("QuestionnaireResponse/1008") when the</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">response is read from the server, so prepending the type -- or using</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">reference() -- yields a doubled reference.</span>\r\n qr.id<b> as </b><span style=\"color: maroon\">qid</span><span style=\"color: navy\"><b> -> </b></span>obs.derivedFrom = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'Reference'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">dr</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qid<span style=\"color: navy\"><b> -> </b></span>dr.reference = <span style=\"color: maroon\">qid</span> <i>"obsDerivedRef"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"obsDerivedFrom"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><span style=\"color: navy\">// </span><span style=\"color: green\">A register cell -- (child, column) -- is the natural key for everything below.</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">The paper form has exactly one BCG box per child, so re-submitting a</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">pre-populated form must not add a second one. Each resource therefore carries</span>\r\n<span style=\"color: navy\">// </span><span style=\"color: green\">its linkId as a business identifier and is emitted as a conditional create.</span>\r\n<b>group </b>BuildImm<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>source</b> <span style=\"color: maroon\">it</span>, <b>source</b> <span style=\"color: maroon\">a</span>, <b>target</b> <span style=\"color: maroon\">imm</span><span style=\"color: navy\"> : </span>Immunization, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> it.linkId<b> as </b><span style=\"color: maroon\">lk</span><span style=\"color: navy\"><b> -> </b></span>imm.identifier<b> as </b><span style=\"color: maroon\">idc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>idc.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell'</span> <i>"immCellSystem"</i><span style=\"color: navy\">;</span>\r\n lk<span style=\"color: navy\"><b> -> </b></span>idc.value = <span style=\"color: maroon\">lk</span> <i>"immCellValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"immCellIdentifier"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">subjImm</span><b> then</b><span style=\"color: navy\"> {\r\n</span> subjImm.reference<b> as </b><span style=\"color: maroon\">pref</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it.linkId<b> as </b><span style=\"color: maroon\">lk2</span><span style=\"color: navy\"><b> -> </b></span>entry.request<b> as </b><span style=\"color: maroon\">rq</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>rq.method = <span style=\"color: blue\">'POST'</span> <i>"immReqMethod"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>rq.url = <span style=\"color: blue\">'Immunization'</span> <i>"immReqUrl"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>rq.ifNoneExist = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'patient='</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">pref</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'&identifier=https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell|'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">lk2</span><span style=\"color: navy\">)</span> <i>"immIfNoneExist"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"immReq"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"immPatientRef"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"immSubject"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imm.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"immId"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imm.status = <span style=\"color: blue\">'completed'</span> <i>"immStatus"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">Register entries are transcribed from the child's card, so the recording</span>\r\n <span style=\"color: navy\">// </span><span style=\"color: green\">facility is not necessarily the administering one.</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>imm.primarySource = <span style=\"color: blue\">false</span> <i>"immPrimarySource"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -> </b></span>imm.patient = <span style=\"color: maroon\">s</span> <i>"immPatient"</i><span style=\"color: navy\">;</span>\r\n qr.encounter<b> as </b><span style=\"color: maroon\">e</span><span style=\"color: navy\"><b> -> </b></span>imm.encounter = <span style=\"color: maroon\">e</span> <i>"immEncounter"</i><span style=\"color: navy\">;</span>\r\n a.value<b> as </b><span style=\"color: maroon\">dv</span><span style=\"color: navy\"><b> -> </b></span>imm.occurrence = <b>cast</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">dv</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'dateTime'</span><span style=\"color: navy\">)</span> <i>"immOccurrence"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>BuildMedAdmin<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>source</b> <span style=\"color: maroon\">it</span>, <b>source</b> <span style=\"color: maroon\">a</span>, <b>target</b> <span style=\"color: maroon\">ma</span><span style=\"color: navy\"> : </span>MedicationAdministration, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> it.linkId<b> as </b><span style=\"color: maroon\">lk</span><span style=\"color: navy\"><b> -> </b></span>ma.identifier<b> as </b><span style=\"color: maroon\">idc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>idc.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell'</span> <i>"maCellSystem"</i><span style=\"color: navy\">;</span>\r\n lk<span style=\"color: navy\"><b> -> </b></span>idc.value = <span style=\"color: maroon\">lk</span> <i>"maCellValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"maCellIdentifier"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">subjMa</span><b> then</b><span style=\"color: navy\"> {\r\n</span> subjMa.reference<b> as </b><span style=\"color: maroon\">pref</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it.linkId<b> as </b><span style=\"color: maroon\">lk2</span><span style=\"color: navy\"><b> -> </b></span>entry.request<b> as </b><span style=\"color: maroon\">rq</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>rq.method = <span style=\"color: blue\">'POST'</span> <i>"maReqMethod"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>rq.url = <span style=\"color: blue\">'MedicationAdministration'</span> <i>"maReqUrl"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>rq.ifNoneExist = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'subject='</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">pref</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'&identifier=https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell|'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">lk2</span><span style=\"color: navy\">)</span> <i>"maIfNoneExist"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"maReq"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"maPatientRef"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"maSubject"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ma.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"maId"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>ma.status = <span style=\"color: blue\">'completed'</span> <i>"maStatus"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -> </b></span>ma.subject = <span style=\"color: maroon\">s</span> <i>"maSubject"</i><span style=\"color: navy\">;</span>\r\n qr.encounter<b> as </b><span style=\"color: maroon\">e</span><span style=\"color: navy\"><b> -> </b></span>ma.encounter = <span style=\"color: maroon\">e</span> <i>"maEncounter"</i><span style=\"color: navy\">;</span>\r\n a.value<b> as </b><span style=\"color: maroon\">dv</span><span style=\"color: navy\"><b> -> </b></span>ma.occurence = <b>cast</b><span style=\"color: navy\">(</span><span style=\"color: maroon\">dv</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'dateTime'</span><span style=\"color: navy\">)</span> <i>"maOccurence"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>BuildRelatedPerson<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>source</b> <span style=\"color: maroon\">it</span>, <b>target</b> <span style=\"color: maroon\">rp</span><span style=\"color: navy\"> : </span>RelatedPerson, <b>target</b> <span style=\"color: maroon\">entry</span><span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> it.linkId<b> as </b><span style=\"color: maroon\">lk</span><span style=\"color: navy\"><b> -> </b></span>rp.identifier<b> as </b><span style=\"color: maroon\">idc</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>idc.system = <span style=\"color: blue\">'https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell'</span> <i>"rpCellSystem"</i><span style=\"color: navy\">;</span>\r\n lk<span style=\"color: navy\"><b> -> </b></span>idc.value = <span style=\"color: maroon\">lk</span> <i>"rpCellValue"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rpCellIdentifier"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">subjRp</span><b> then</b><span style=\"color: navy\"> {\r\n</span> subjRp.reference<b> as </b><span style=\"color: maroon\">pref</span><b> then</b><span style=\"color: navy\"> {\r\n</span> it.linkId<b> as </b><span style=\"color: maroon\">lk2</span><span style=\"color: navy\"><b> -> </b></span>entry.request<b> as </b><span style=\"color: maroon\">rq</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>rq.method = <span style=\"color: blue\">'POST'</span> <i>"rpReqMethod"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>rq.url = <span style=\"color: blue\">'RelatedPerson'</span> <i>"rpReqUrl"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>rq.ifNoneExist = <b>append</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'patient='</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">pref</span><span style=\"color: navy\">, </span><span style=\"color: blue\">'&identifier=https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell|'</span><span style=\"color: navy\">, </span><span style=\"color: maroon\">lk2</span><span style=\"color: navy\">)</span> <i>"rpIfNoneExist"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rpReq"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rpPatientRef"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"rpSubject"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>rp.id = <b>uuid</b><span style=\"color: navy\">(</span><span style=\"color: navy\">)</span> <i>"rpId"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>rp.active = <span style=\"color: blue\">true</span> <i>"rpActive"</i><span style=\"color: navy\">;</span>\r\n qr.subject<b> as </b><span style=\"color: maroon\">s</span><span style=\"color: navy\"><b> -> </b></span>rp.patient = <span style=\"color: maroon\">s</span> <i>"rpPatient"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>VitalSignsCategory<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>obs.category<b> as </b><span style=\"color: maroon\">cat</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cat.coding<b> as </b><span style=\"color: maroon\">c</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>c.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"vsCatSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>c.code = <span style=\"color: blue\">'vital-signs'</span> <i>"vsCatCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>c.display = <span style=\"color: blue\">'Vital Signs'</span> <i>"vsCatDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vsCatCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"vsCat"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SurveyCategory<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">qr</span><span style=\"color: navy\"> : </span>QR, <b>target</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>obs.category<b> as </b><span style=\"color: maroon\">cat</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>cat.coding<b> as </b><span style=\"color: maroon\">c</span><b> then</b><span style=\"color: navy\"> {\r\n</span> qr<span style=\"color: navy\"><b> -> </b></span>c.system = <span style=\"color: blue\">'http://terminology.hl7.org/CodeSystem/observation-category'</span> <i>"svCatSystem"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>c.code = <span style=\"color: blue\">'survey'</span> <i>"svCatCode"</i><span style=\"color: navy\">;</span>\r\n qr<span style=\"color: navy\"><b> -> </b></span>c.display = <span style=\"color: blue\">'Survey'</span> <i>"svCatDisplay"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"svCatCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"svCat"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span><b>group </b>SetCodedValue<span style=\"color: navy\">(</span><b>source</b> <span style=\"color: maroon\">it</span><span style=\"color: navy\"> : </span>Element, <b>target</b> <span style=\"color: maroon\">obs</span><span style=\"color: navy\"> : </span>Observation<span style=\"color: navy\">)</span><span style=\"color: navy\"> {\r\n</span> it.answer<b> as </b><span style=\"color: maroon\">a</span><span style=\"color: navy\"><b> -> </b></span>obs.value = <b>create</b><span style=\"color: navy\">(</span><span style=\"color: blue\">'CodeableConcept'</span><span style=\"color: navy\">)</span><b> as </b><span style=\"color: maroon\">c</span><b> then</b><span style=\"color: navy\"> {\r\n</span> a.value<b> as </b><span style=\"color: maroon\">coding</span><span style=\"color: navy\"><b> -> </b></span>c.coding = <span style=\"color: maroon\">coding</span><b> as </b><span style=\"color: maroon\">nc</span> <i>"copyCoding"</i><span style=\"color: navy\">;</span>\r\n <span style=\"color: navy\">}</span> <i>"setCodedValue"</i><span style=\"color: navy\">;</span>\r\n<span style=\"color: navy\">}\r\n\r\n</span></pre></div>"
},
"url" : "https://fhir.slade360.co.ke/fhir/StructureMap/ExtractMOH510ImmunisationRegister",
"version" : "0.1.0",
"name" : "ExtractMOH510ImmunisationRegister",
"title" : "MOH 510 Immunisation Permanent Register Extraction",
"status" : "active",
"experimental" : true,
"date" : "2026-09-14T06:31:13+00:00",
"publisher" : "Kathurima Kimathi",
"contact" : [
{
"name" : "Kathurima Kimathi",
"telecom" : [
{
"system" : "url",
"value" : "https://www.linkedin.com/in/kathurima-kimathi/"
},
{
"system" : "email",
"value" : "kathurimakimathi415@gmail.com"
}
]
},
{
"name" : "Oscar John",
"telecom" : [
{
"system" : "email",
"value" : "oscarjohnotieno@gmail.com",
"use" : "work"
}
]
},
{
"name" : "Kennedy Omondi",
"telecom" : [
{
"system" : "email",
"value" : "kennankole@gmail.com",
"use" : "work"
}
]
}
],
"description" : "Extracts a transaction Bundle from a QuestionnaireResponse to the Kenya MOH 510 Immunisation Permanent Register: guardian RelatedPersons, growth-monitoring Observations, one Immunization per antigen dose for sections L-Y/AA-AB/AD, Vitamin A MedicationAdministrations for section Z, danger-signs and education Observations, and an Appointment for the next scheduled visit. It creates no Patient, Encounter or EpisodeOfCare -- the register is launched from inside a visit the EMR has already opened, so all three arrive as context on the QuestionnaireResponse and are referenced rather than minted. QuestionnaireResponse.subject and .encounter are therefore both required.",
"structure" : [
{
"url" : "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse",
"mode" : "source",
"alias" : "QR"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Bundle",
"mode" : "target",
"alias" : "Bundle"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/RelatedPerson",
"mode" : "target",
"alias" : "RelatedPerson"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Observation",
"mode" : "target",
"alias" : "Observation"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Immunization",
"mode" : "target",
"alias" : "Immunization"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/MedicationAdministration",
"mode" : "target",
"alias" : "MedicationAdministration"
},
{
"url" : "http://hl7.org/fhir/StructureDefinition/Appointment",
"mode" : "target",
"alias" : "Appointment"
}
],
"group" : [
{
"name" : "ExtractMOH510ImmunisationRegister",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "bundle",
"type" : "Bundle",
"mode" : "target"
}
],
"rule" : [
{
"name" : "setBundleType",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "bundle",
"element" : "type",
"transform" : "copy",
"parameter" : [
{
"valueString" : "transaction"
}
]
}
]
},
{
"name" : "registrationGroup",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "gReg",
"condition" : "linkId = 'IMM-group-registration'"
}
],
"rule" : [
{
"name" : "fatherRule",
"source" : [
{
"context" : "gReg",
"element" : "item",
"variable" : "itH",
"condition" : "linkId = 'IMM-RG-H-father-name'"
}
],
"rule" : [
{
"name" : "fatherAnswer",
"source" : [
{
"context" : "itH",
"element" : "answer",
"listMode" : "first",
"variable" : "aH"
}
],
"rule" : [
{
"name" : "fatherResource",
"source" : [
{
"context" : "aH"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eFat"
},
{
"context" : "eFat",
"element" : "resource",
"variable" : "fat",
"transform" : "create",
"parameter" : [
{
"valueString" : "RelatedPerson"
}
]
}
],
"rule" : [
{
"name" : "fatherBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "fat"
},
{
"context" : "eFat"
}
],
"dependent" : [
{
"name" : "BuildRelatedPerson",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itH"
},
{
"valueId" : "fat"
},
{
"valueId" : "eFat"
}
]
}
]
},
{
"name" : "fatherRelationship",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "fat",
"element" : "relationship",
"variable" : "relF"
}
],
"rule" : [
{
"name" : "fatherRelCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "relF",
"element" : "coding",
"variable" : "relFc"
}
],
"rule" : [
{
"name" : "fatRelSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "relFc",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/v3-RoleCode"
}
]
}
]
},
{
"name" : "fatRelCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "relFc",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "FTH"
}
]
}
]
},
{
"name" : "fatRelDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "relFc",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "father"
}
]
}
]
}
]
}
]
},
{
"name" : "fatherName",
"source" : [
{
"context" : "aH",
"element" : "value",
"variable" : "v"
}
],
"target" : [
{
"context" : "fat",
"element" : "name",
"variable" : "nF"
}
],
"rule" : [
{
"name" : "fatherNameText",
"source" : [
{
"context" : "v"
}
],
"target" : [
{
"context" : "nF",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
},
{
"name" : "fatherPhoneRule",
"source" : [
{
"context" : "gReg",
"element" : "item",
"variable" : "itKf",
"condition" : "linkId = '42077-8'"
}
],
"rule" : [
{
"name" : "fatherPhoneAnswer",
"source" : [
{
"context" : "itKf",
"element" : "answer",
"listMode" : "first",
"variable" : "aKf"
}
],
"rule" : [
{
"name" : "fatherTelecom",
"source" : [
{
"context" : "aKf",
"element" : "value",
"variable" : "v"
}
],
"target" : [
{
"context" : "fat",
"element" : "telecom",
"variable" : "tcF"
}
],
"rule" : [
{
"name" : "fatPhoneSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "tcF",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "phone"
}
]
}
]
},
{
"name" : "fatPhoneValue",
"source" : [
{
"context" : "v"
}
],
"target" : [
{
"context" : "tcF",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "No Patient is emitted. The child is registered before the register entry\r\nis filled, so the patient already exists and arrives as\r\nQuestionnaireResponse.subject -- every resource below references it.\r\nSections C (child number), D (name), E (sex), F (date of birth) and\r\nJ (address) are the paper form transcribing demographics the EMR already\r\nholds, so they are deliberately not extracted: creating a Patient here\r\nwould mint a duplicate record, and a blind PUT would clobber fields the\r\nform does not carry. Reconciling them belongs in registration, not here.\r\nThis makes QuestionnaireResponse.subject mandatory for extraction --\r\nwithout it Immunization.patient (1..1) cannot be populated."
},
{
"name" : "motherRule",
"source" : [
{
"context" : "gReg",
"element" : "item",
"variable" : "itI",
"condition" : "linkId = 'IMM-RG-I-mother-name'"
}
],
"rule" : [
{
"name" : "motherAnswer",
"source" : [
{
"context" : "itI",
"element" : "answer",
"listMode" : "first",
"variable" : "aI"
}
],
"rule" : [
{
"name" : "motherResource",
"source" : [
{
"context" : "aI"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eMot"
},
{
"context" : "eMot",
"element" : "resource",
"variable" : "mot",
"transform" : "create",
"parameter" : [
{
"valueString" : "RelatedPerson"
}
]
}
],
"rule" : [
{
"name" : "motherBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mot"
},
{
"context" : "eMot"
}
],
"dependent" : [
{
"name" : "BuildRelatedPerson",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itI"
},
{
"valueId" : "mot"
},
{
"valueId" : "eMot"
}
]
}
]
},
{
"name" : "motherRelationship",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mot",
"element" : "relationship",
"variable" : "relM"
}
],
"rule" : [
{
"name" : "motherRelCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "relM",
"element" : "coding",
"variable" : "relMc"
}
],
"rule" : [
{
"name" : "motRelSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "relMc",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/v3-RoleCode"
}
]
}
]
},
{
"name" : "motRelCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "relMc",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "MTH"
}
]
}
]
},
{
"name" : "motRelDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "relMc",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "mother"
}
]
}
]
}
]
}
]
},
{
"name" : "motherName",
"source" : [
{
"context" : "aI",
"element" : "value",
"variable" : "v"
}
],
"target" : [
{
"context" : "mot",
"element" : "name",
"variable" : "nM"
}
],
"rule" : [
{
"name" : "motherNameText",
"source" : [
{
"context" : "v"
}
],
"target" : [
{
"context" : "nM",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
},
{
"name" : "motherPhoneRule",
"source" : [
{
"context" : "gReg",
"element" : "item",
"variable" : "itKm",
"condition" : "linkId = '42077-8'"
}
],
"rule" : [
{
"name" : "motherPhoneAnswer",
"source" : [
{
"context" : "itKm",
"element" : "answer",
"listMode" : "first",
"variable" : "aKm"
}
],
"rule" : [
{
"name" : "motherTelecom",
"source" : [
{
"context" : "aKm",
"element" : "value",
"variable" : "v"
}
],
"target" : [
{
"context" : "mot",
"element" : "telecom",
"variable" : "tcM"
}
],
"rule" : [
{
"name" : "motPhoneSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "tcM",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "phone"
}
]
}
]
},
{
"name" : "motPhoneValue",
"source" : [
{
"context" : "v"
}
],
"target" : [
{
"context" : "tcM",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "---------------------------------------------------------------- A-K"
},
{
"name" : "growthGroup",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "gGrow",
"condition" : "linkId = 'IMM-group-growth'"
}
],
"rule" : [
{
"name" : "weightRule",
"source" : [
{
"context" : "gGrow",
"element" : "item",
"variable" : "itW",
"condition" : "linkId = 'IMM-GM-Q1-weight'"
}
],
"rule" : [
{
"name" : "weightAnswer",
"source" : [
{
"context" : "itW",
"element" : "answer",
"listMode" : "first",
"variable" : "aW"
}
],
"rule" : [
{
"name" : "weightObservation",
"source" : [
{
"context" : "aW"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eW"
},
{
"context" : "eW",
"element" : "resource",
"variable" : "obW",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "weightBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obW"
},
{
"context" : "eW"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obW"
},
{
"valueId" : "eW"
}
]
}
]
},
{
"name" : "weightCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obW"
}
],
"dependent" : [
{
"name" : "VitalSignsCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obW"
}
]
}
]
},
{
"name" : "weightCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obW",
"element" : "code",
"variable" : "cdW"
}
],
"rule" : [
{
"name" : "weightCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdW",
"element" : "coding",
"variable" : "ccW"
}
],
"rule" : [
{
"name" : "wSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccW",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "wCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccW",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "29463-7"
}
]
}
]
},
{
"name" : "wDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccW",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Body weight"
}
]
}
]
}
]
}
]
},
{
"name" : "weightValue",
"source" : [
{
"context" : "aW",
"element" : "value",
"variable" : "dv"
}
],
"target" : [
{
"context" : "obW",
"element" : "value",
"variable" : "qW",
"transform" : "create",
"parameter" : [
{
"valueString" : "Quantity"
}
]
}
],
"rule" : [
{
"name" : "wQtyValue",
"source" : [
{
"context" : "dv"
}
],
"target" : [
{
"context" : "qW",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "dv"
}
]
}
]
},
{
"name" : "wQtySystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "qW",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "wQtyCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "qW",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "kg"
}
]
}
]
},
{
"name" : "wQtyUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "qW",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "kilogram"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "heightRule",
"source" : [
{
"context" : "gGrow",
"element" : "item",
"variable" : "itH2",
"condition" : "linkId = 'IMM-GM-Q2-height'"
}
],
"rule" : [
{
"name" : "heightAnswer",
"source" : [
{
"context" : "itH2",
"element" : "answer",
"listMode" : "first",
"variable" : "aH2"
}
],
"rule" : [
{
"name" : "heightObservation",
"source" : [
{
"context" : "aH2"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eH2"
},
{
"context" : "eH2",
"element" : "resource",
"variable" : "obH2",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "heightBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obH2"
},
{
"context" : "eH2"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obH2"
},
{
"valueId" : "eH2"
}
]
}
]
},
{
"name" : "heightCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obH2"
}
],
"dependent" : [
{
"name" : "VitalSignsCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obH2"
}
]
}
]
},
{
"name" : "heightCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obH2",
"element" : "code",
"variable" : "cdH2"
}
],
"rule" : [
{
"name" : "heightCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdH2",
"element" : "coding",
"variable" : "ccH2"
}
],
"rule" : [
{
"name" : "hSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccH2",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "hCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccH2",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "8302-2"
}
]
}
]
},
{
"name" : "hDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccH2",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Body height"
}
]
}
]
}
]
}
]
},
{
"name" : "heightValue",
"source" : [
{
"context" : "aH2",
"element" : "value",
"variable" : "dv"
}
],
"target" : [
{
"context" : "obH2",
"element" : "value",
"variable" : "qH2",
"transform" : "create",
"parameter" : [
{
"valueString" : "Quantity"
}
]
}
],
"rule" : [
{
"name" : "hQtyValue",
"source" : [
{
"context" : "dv"
}
],
"target" : [
{
"context" : "qH2",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "dv"
}
]
}
]
},
{
"name" : "hQtySystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "qH2",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "hQtyCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "qH2",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "cm"
}
]
}
]
},
{
"name" : "hQtyUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "qH2",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "centimeter"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "muacRule",
"source" : [
{
"context" : "gGrow",
"element" : "item",
"variable" : "itMu",
"condition" : "linkId = 'IMM-GM-Q3-muac'"
}
],
"rule" : [
{
"name" : "muacAnswer",
"source" : [
{
"context" : "itMu",
"element" : "answer",
"listMode" : "first",
"variable" : "aMu"
}
],
"rule" : [
{
"name" : "muacObservation",
"source" : [
{
"context" : "aMu"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eMu"
},
{
"context" : "eMu",
"element" : "resource",
"variable" : "obMu",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "muacBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obMu"
},
{
"context" : "eMu"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obMu"
},
{
"valueId" : "eMu"
}
]
}
]
},
{
"name" : "muacCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obMu"
}
],
"dependent" : [
{
"name" : "VitalSignsCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obMu"
}
]
}
]
},
{
"name" : "muacCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obMu",
"element" : "code",
"variable" : "cdMu"
}
],
"rule" : [
{
"name" : "muacCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdMu",
"element" : "coding",
"variable" : "ccMu"
}
],
"rule" : [
{
"name" : "muSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccMu",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "muCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccMu",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "9847-5"
}
]
}
]
},
{
"name" : "muDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccMu",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Circumference site"
}
]
}
]
}
]
}
]
},
{
"name" : "muacValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obMu"
}
],
"dependent" : [
{
"name" : "SetCodedValue",
"parameter" : [
{
"valueId" : "itMu"
},
{
"valueId" : "obMu"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "wfaRule",
"source" : [
{
"context" : "gGrow",
"element" : "item",
"variable" : "itWfa",
"condition" : "linkId = 'IMM-GM-Q4-weight-category'"
}
],
"rule" : [
{
"name" : "wfaAnswer",
"source" : [
{
"context" : "itWfa",
"element" : "answer",
"listMode" : "first",
"variable" : "aWfa"
}
],
"rule" : [
{
"name" : "wfaObservation",
"source" : [
{
"context" : "aWfa"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eWfa"
},
{
"context" : "eWfa",
"element" : "resource",
"variable" : "obWfa",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "wfaBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obWfa"
},
{
"context" : "eWfa"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obWfa"
},
{
"valueId" : "eWfa"
}
]
}
]
},
{
"name" : "wfaCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obWfa"
}
],
"dependent" : [
{
"name" : "VitalSignsCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obWfa"
}
]
}
]
},
{
"name" : "wfaCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obWfa",
"element" : "code",
"variable" : "cdWfa"
}
],
"rule" : [
{
"name" : "wfaCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdWfa",
"element" : "coding",
"variable" : "ccWfa"
}
],
"rule" : [
{
"name" : "wfaSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccWfa",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "wfaCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccWfa",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "77606-2"
}
]
}
]
},
{
"name" : "wfaDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccWfa",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Weight-for-age percentile"
}
]
}
]
}
]
}
]
},
{
"name" : "wfaValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obWfa"
}
],
"dependent" : [
{
"name" : "SetCodedValue",
"parameter" : [
{
"valueId" : "itWfa"
},
{
"valueId" : "obWfa"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "hfaRule",
"source" : [
{
"context" : "gGrow",
"element" : "item",
"variable" : "itHfa",
"condition" : "linkId = 'IMM-GM-Q5-height-category'"
}
],
"rule" : [
{
"name" : "hfaAnswer",
"source" : [
{
"context" : "itHfa",
"element" : "answer",
"listMode" : "first",
"variable" : "aHfa"
}
],
"rule" : [
{
"name" : "hfaObservation",
"source" : [
{
"context" : "aHfa"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eHfa"
},
{
"context" : "eHfa",
"element" : "resource",
"variable" : "obHfa",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "hfaBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obHfa"
},
{
"context" : "eHfa"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obHfa"
},
{
"valueId" : "eHfa"
}
]
}
]
},
{
"name" : "hfaCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obHfa"
}
],
"dependent" : [
{
"name" : "VitalSignsCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obHfa"
}
]
}
]
},
{
"name" : "hfaCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obHfa",
"element" : "code",
"variable" : "cdHfa"
}
],
"rule" : [
{
"name" : "hfaCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdHfa",
"element" : "coding",
"variable" : "ccHfa"
}
],
"rule" : [
{
"name" : "hfaSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccHfa",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "hfaCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccHfa",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "59576-9"
}
]
}
]
},
{
"name" : "hfaDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccHfa",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Height-for-age percentile"
}
]
}
]
}
]
}
]
},
{
"name" : "hfaValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obHfa"
}
],
"dependent" : [
{
"name" : "SetCodedValue",
"parameter" : [
{
"valueId" : "itHfa"
},
{
"valueId" : "obHfa"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "------------------------------------------------------ Growth monitoring"
},
{
"name" : "vaccineGroup",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "gVax",
"condition" : "linkId = 'IMM-group-vaccines'"
}
],
"rule" : [
{
"name" : "bcgRule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itL",
"condition" : "linkId = 'IMM-VAX-L-bcg'"
}
],
"rule" : [
{
"name" : "bcgAnswer",
"source" : [
{
"context" : "itL",
"element" : "answer",
"listMode" : "first",
"variable" : "aL"
}
],
"rule" : [
{
"name" : "bcgImmunization",
"source" : [
{
"context" : "aL"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eL"
},
{
"context" : "eL",
"element" : "resource",
"variable" : "imL",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "bcgBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imL"
},
{
"context" : "eL"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itL"
},
{
"valueId" : "aL"
},
{
"valueId" : "imL"
},
{
"valueId" : "eL"
}
]
}
]
},
{
"name" : "bcgVaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imL",
"element" : "vaccineCode",
"variable" : "vcL"
}
],
"rule" : [
{
"name" : "bcgCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcL",
"element" : "coding",
"variable" : "vccL"
}
],
"rule" : [
{
"name" : "bcgSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccL",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "bcgCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccL",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "bcg"
}
]
}
]
},
{
"name" : "bcgDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccL",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "BCG"
}
]
}
]
}
]
},
{
"name" : "bcgText",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcL",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "BCG"
}
]
}
]
}
]
},
{
"name" : "bcgProtocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imL",
"element" : "protocolApplied",
"variable" : "paL"
}
],
"rule" : [
{
"name" : "bcgSeries",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paL",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "BCG"
}
]
}
]
},
{
"name" : "bcgDose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paL",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "opv0Rule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itM",
"condition" : "linkId = 'IMM-VAX-M-polio-birth'"
}
],
"rule" : [
{
"name" : "opv0Answer",
"source" : [
{
"context" : "itM",
"element" : "answer",
"listMode" : "first",
"variable" : "aM"
}
],
"rule" : [
{
"name" : "opv0Immunization",
"source" : [
{
"context" : "aM"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eM"
},
{
"context" : "eM",
"element" : "resource",
"variable" : "imM",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "opv0Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imM"
},
{
"context" : "eM"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itM"
},
{
"valueId" : "aM"
},
{
"valueId" : "imM"
},
{
"valueId" : "eM"
}
]
}
]
},
{
"name" : "opv0VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imM",
"element" : "vaccineCode",
"variable" : "vcM"
}
],
"rule" : [
{
"name" : "opv0Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcM",
"element" : "coding",
"variable" : "vccM"
}
],
"rule" : [
{
"name" : "opv0System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccM",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "opv0Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccM",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "bopv"
}
]
}
]
},
{
"name" : "opv0Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccM",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Bivalent oral poliovirus vaccine"
}
]
}
]
}
]
},
{
"name" : "opv0Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcM",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Polio birth dose (bOPV)"
}
]
}
]
}
]
},
{
"name" : "opv0Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imM",
"element" : "protocolApplied",
"variable" : "paM"
}
],
"rule" : [
{
"name" : "opv0Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paM",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Polio (bOPV)"
}
]
}
]
},
{
"name" : "opv0Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paM",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "0"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "opv1Rule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itN",
"condition" : "linkId = 'IMM-VAX-N-opv1'"
}
],
"rule" : [
{
"name" : "opv1Answer",
"source" : [
{
"context" : "itN",
"element" : "answer",
"listMode" : "first",
"variable" : "aN"
}
],
"rule" : [
{
"name" : "opv1Immunization",
"source" : [
{
"context" : "aN"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eN"
},
{
"context" : "eN",
"element" : "resource",
"variable" : "imN",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "opv1Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imN"
},
{
"context" : "eN"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itN"
},
{
"valueId" : "aN"
},
{
"valueId" : "imN"
},
{
"valueId" : "eN"
}
]
}
]
},
{
"name" : "opv1VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imN",
"element" : "vaccineCode",
"variable" : "vcN"
}
],
"rule" : [
{
"name" : "opv1Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcN",
"element" : "coding",
"variable" : "vccN"
}
],
"rule" : [
{
"name" : "opv1System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccN",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "opv1Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccN",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "bopv"
}
]
}
]
},
{
"name" : "opv1Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccN",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Bivalent oral poliovirus vaccine"
}
]
}
]
}
]
},
{
"name" : "opv1Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcN",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "OPV 1"
}
]
}
]
}
]
},
{
"name" : "opv1Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imN",
"element" : "protocolApplied",
"variable" : "paN"
}
],
"rule" : [
{
"name" : "opv1Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paN",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Polio (bOPV)"
}
]
}
]
},
{
"name" : "opv1Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paN",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "opv2Rule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itO",
"condition" : "linkId = 'IMM-VAX-O-opv2'"
}
],
"rule" : [
{
"name" : "opv2Answer",
"source" : [
{
"context" : "itO",
"element" : "answer",
"listMode" : "first",
"variable" : "aO"
}
],
"rule" : [
{
"name" : "opv2Immunization",
"source" : [
{
"context" : "aO"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eO"
},
{
"context" : "eO",
"element" : "resource",
"variable" : "imO",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "opv2Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imO"
},
{
"context" : "eO"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itO"
},
{
"valueId" : "aO"
},
{
"valueId" : "imO"
},
{
"valueId" : "eO"
}
]
}
]
},
{
"name" : "opv2VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imO",
"element" : "vaccineCode",
"variable" : "vcO"
}
],
"rule" : [
{
"name" : "opv2Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcO",
"element" : "coding",
"variable" : "vccO"
}
],
"rule" : [
{
"name" : "opv2System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccO",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "opv2Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccO",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "bopv"
}
]
}
]
},
{
"name" : "opv2Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccO",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Bivalent oral poliovirus vaccine"
}
]
}
]
}
]
},
{
"name" : "opv2Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcO",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "OPV 2"
}
]
}
]
}
]
},
{
"name" : "opv2Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imO",
"element" : "protocolApplied",
"variable" : "paO"
}
],
"rule" : [
{
"name" : "opv2Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paO",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Polio (bOPV)"
}
]
}
]
},
{
"name" : "opv2Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paO",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "2"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "opv3Rule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itP",
"condition" : "linkId = 'IMM-VAX-P-opv3'"
}
],
"rule" : [
{
"name" : "opv3Answer",
"source" : [
{
"context" : "itP",
"element" : "answer",
"listMode" : "first",
"variable" : "aP"
}
],
"rule" : [
{
"name" : "opv3Immunization",
"source" : [
{
"context" : "aP"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eP"
},
{
"context" : "eP",
"element" : "resource",
"variable" : "imP",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "opv3Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imP"
},
{
"context" : "eP"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itP"
},
{
"valueId" : "aP"
},
{
"valueId" : "imP"
},
{
"valueId" : "eP"
}
]
}
]
},
{
"name" : "opv3VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imP",
"element" : "vaccineCode",
"variable" : "vcP"
}
],
"rule" : [
{
"name" : "opv3Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcP",
"element" : "coding",
"variable" : "vccP"
}
],
"rule" : [
{
"name" : "opv3System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccP",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "opv3Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccP",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "bopv"
}
]
}
]
},
{
"name" : "opv3Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccP",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Bivalent oral poliovirus vaccine"
}
]
}
]
}
]
},
{
"name" : "opv3Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcP",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "OPV 3"
}
]
}
]
}
]
},
{
"name" : "opv3Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imP",
"element" : "protocolApplied",
"variable" : "paP"
}
],
"rule" : [
{
"name" : "opv3Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paP",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Polio (bOPV)"
}
]
}
]
},
{
"name" : "opv3Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paP",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "3"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "ipvRule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itQ",
"condition" : "linkId = 'IMM-VAX-Q-ipv'"
}
],
"rule" : [
{
"name" : "ipvAnswer",
"source" : [
{
"context" : "itQ",
"element" : "answer",
"listMode" : "first",
"variable" : "aQ"
}
],
"rule" : [
{
"name" : "ipvImmunization",
"source" : [
{
"context" : "aQ"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eQ"
},
{
"context" : "eQ",
"element" : "resource",
"variable" : "imQ",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "ipvBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imQ"
},
{
"context" : "eQ"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itQ"
},
{
"valueId" : "aQ"
},
{
"valueId" : "imQ"
},
{
"valueId" : "eQ"
}
]
}
]
},
{
"name" : "ipvVaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imQ",
"element" : "vaccineCode",
"variable" : "vcQ"
}
],
"rule" : [
{
"name" : "ipvCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcQ",
"element" : "coding",
"variable" : "vccQ"
}
],
"rule" : [
{
"name" : "ipvSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccQ",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "ipvCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccQ",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "ipv"
}
]
}
]
},
{
"name" : "ipvDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccQ",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Inactivated poliovirus vaccine"
}
]
}
]
}
]
},
{
"name" : "ipvText",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcQ",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "IPV"
}
]
}
]
}
]
},
{
"name" : "ipvProtocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imQ",
"element" : "protocolApplied",
"variable" : "paQ"
}
],
"rule" : [
{
"name" : "ipvSeries",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paQ",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Polio (IPV)"
}
]
}
]
},
{
"name" : "ipvDose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paQ",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "IPV carries its own antigen code: the questionnaire reuses the OPV LOINC\r\ncode for both, which would collapse two distinct vaccines into one."
},
{
"name" : "penta1Rule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itR",
"condition" : "linkId = 'IMM-VAX-R-penta1'"
}
],
"rule" : [
{
"name" : "penta1Answer",
"source" : [
{
"context" : "itR",
"element" : "answer",
"listMode" : "first",
"variable" : "aR"
}
],
"rule" : [
{
"name" : "penta1Immunization",
"source" : [
{
"context" : "aR"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eR"
},
{
"context" : "eR",
"element" : "resource",
"variable" : "imR",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "penta1Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imR"
},
{
"context" : "eR"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itR"
},
{
"valueId" : "aR"
},
{
"valueId" : "imR"
},
{
"valueId" : "eR"
}
]
}
]
},
{
"name" : "penta1VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imR",
"element" : "vaccineCode",
"variable" : "vcR"
}
],
"rule" : [
{
"name" : "penta1Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcR",
"element" : "coding",
"variable" : "vccR"
}
],
"rule" : [
{
"name" : "penta1System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccR",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "penta1Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccR",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "penta"
}
]
}
]
},
{
"name" : "penta1Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccR",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "DTP-HepB-Hib (pentavalent) vaccine"
}
]
}
]
}
]
},
{
"name" : "penta1Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcR",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Pentavalent 1"
}
]
}
]
}
]
},
{
"name" : "penta1Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imR",
"element" : "protocolApplied",
"variable" : "paR"
}
],
"rule" : [
{
"name" : "penta1Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paR",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Pentavalent"
}
]
}
]
},
{
"name" : "penta1Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paR",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "penta2Rule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itS",
"condition" : "linkId = 'IMM-VAX-S-penta2'"
}
],
"rule" : [
{
"name" : "penta2Answer",
"source" : [
{
"context" : "itS",
"element" : "answer",
"listMode" : "first",
"variable" : "aS"
}
],
"rule" : [
{
"name" : "penta2Immunization",
"source" : [
{
"context" : "aS"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eS"
},
{
"context" : "eS",
"element" : "resource",
"variable" : "imS",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "penta2Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imS"
},
{
"context" : "eS"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itS"
},
{
"valueId" : "aS"
},
{
"valueId" : "imS"
},
{
"valueId" : "eS"
}
]
}
]
},
{
"name" : "penta2VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imS",
"element" : "vaccineCode",
"variable" : "vcS"
}
],
"rule" : [
{
"name" : "penta2Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcS",
"element" : "coding",
"variable" : "vccS"
}
],
"rule" : [
{
"name" : "penta2System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccS",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "penta2Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccS",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "penta"
}
]
}
]
},
{
"name" : "penta2Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccS",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "DTP-HepB-Hib (pentavalent) vaccine"
}
]
}
]
}
]
},
{
"name" : "penta2Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcS",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Pentavalent 2"
}
]
}
]
}
]
},
{
"name" : "penta2Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imS",
"element" : "protocolApplied",
"variable" : "paS"
}
],
"rule" : [
{
"name" : "penta2Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paS",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Pentavalent"
}
]
}
]
},
{
"name" : "penta2Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paS",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "2"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "penta3Rule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itT",
"condition" : "linkId = 'IMM-VAX-T-penta3'"
}
],
"rule" : [
{
"name" : "penta3Answer",
"source" : [
{
"context" : "itT",
"element" : "answer",
"listMode" : "first",
"variable" : "aT"
}
],
"rule" : [
{
"name" : "penta3Immunization",
"source" : [
{
"context" : "aT"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eT"
},
{
"context" : "eT",
"element" : "resource",
"variable" : "imT",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "penta3Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imT"
},
{
"context" : "eT"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itT"
},
{
"valueId" : "aT"
},
{
"valueId" : "imT"
},
{
"valueId" : "eT"
}
]
}
]
},
{
"name" : "penta3VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imT",
"element" : "vaccineCode",
"variable" : "vcT"
}
],
"rule" : [
{
"name" : "penta3Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcT",
"element" : "coding",
"variable" : "vccT"
}
],
"rule" : [
{
"name" : "penta3System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccT",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "penta3Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccT",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "penta"
}
]
}
]
},
{
"name" : "penta3Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccT",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "DTP-HepB-Hib (pentavalent) vaccine"
}
]
}
]
}
]
},
{
"name" : "penta3Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcT",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Pentavalent 3"
}
]
}
]
}
]
},
{
"name" : "penta3Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imT",
"element" : "protocolApplied",
"variable" : "paT"
}
],
"rule" : [
{
"name" : "penta3Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paT",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Pentavalent"
}
]
}
]
},
{
"name" : "penta3Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paT",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "3"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "pcv1Rule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itU",
"condition" : "linkId = 'IMM-VAX-U-pcv1'"
}
],
"rule" : [
{
"name" : "pcv1Answer",
"source" : [
{
"context" : "itU",
"element" : "answer",
"listMode" : "first",
"variable" : "aU"
}
],
"rule" : [
{
"name" : "pcv1Immunization",
"source" : [
{
"context" : "aU"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eU"
},
{
"context" : "eU",
"element" : "resource",
"variable" : "imU",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "pcv1Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imU"
},
{
"context" : "eU"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itU"
},
{
"valueId" : "aU"
},
{
"valueId" : "imU"
},
{
"valueId" : "eU"
}
]
}
]
},
{
"name" : "pcv1VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imU",
"element" : "vaccineCode",
"variable" : "vcU"
}
],
"rule" : [
{
"name" : "pcv1Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcU",
"element" : "coding",
"variable" : "vccU"
}
],
"rule" : [
{
"name" : "pcv1System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccU",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "pcv1Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccU",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "pcv10"
}
]
}
]
},
{
"name" : "pcv1Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccU",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Pneumococcal conjugate vaccine (PCV10)"
}
]
}
]
}
]
},
{
"name" : "pcv1Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcU",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "PCV10 1"
}
]
}
]
}
]
},
{
"name" : "pcv1Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imU",
"element" : "protocolApplied",
"variable" : "paU"
}
],
"rule" : [
{
"name" : "pcv1Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paU",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "PCV10"
}
]
}
]
},
{
"name" : "pcv1Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paU",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "pcv2Rule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itV",
"condition" : "linkId = 'IMM-VAX-V-pcv2'"
}
],
"rule" : [
{
"name" : "pcv2Answer",
"source" : [
{
"context" : "itV",
"element" : "answer",
"listMode" : "first",
"variable" : "aV"
}
],
"rule" : [
{
"name" : "pcv2Immunization",
"source" : [
{
"context" : "aV"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eV"
},
{
"context" : "eV",
"element" : "resource",
"variable" : "imV",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "pcv2Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imV"
},
{
"context" : "eV"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itV"
},
{
"valueId" : "aV"
},
{
"valueId" : "imV"
},
{
"valueId" : "eV"
}
]
}
]
},
{
"name" : "pcv2VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imV",
"element" : "vaccineCode",
"variable" : "vcV"
}
],
"rule" : [
{
"name" : "pcv2Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcV",
"element" : "coding",
"variable" : "vccV"
}
],
"rule" : [
{
"name" : "pcv2System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccV",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "pcv2Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccV",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "pcv10"
}
]
}
]
},
{
"name" : "pcv2Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccV",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Pneumococcal conjugate vaccine (PCV10)"
}
]
}
]
}
]
},
{
"name" : "pcv2Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcV",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "PCV10 2"
}
]
}
]
}
]
},
{
"name" : "pcv2Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imV",
"element" : "protocolApplied",
"variable" : "paV"
}
],
"rule" : [
{
"name" : "pcv2Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paV",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "PCV10"
}
]
}
]
},
{
"name" : "pcv2Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paV",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "2"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "pcv3Rule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itW2",
"condition" : "linkId = 'IMM-VAX-W-pcv3'"
}
],
"rule" : [
{
"name" : "pcv3Answer",
"source" : [
{
"context" : "itW2",
"element" : "answer",
"listMode" : "first",
"variable" : "aW2"
}
],
"rule" : [
{
"name" : "pcv3Immunization",
"source" : [
{
"context" : "aW2"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eW2"
},
{
"context" : "eW2",
"element" : "resource",
"variable" : "imW2",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "pcv3Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imW2"
},
{
"context" : "eW2"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itW2"
},
{
"valueId" : "aW2"
},
{
"valueId" : "imW2"
},
{
"valueId" : "eW2"
}
]
}
]
},
{
"name" : "pcv3VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imW2",
"element" : "vaccineCode",
"variable" : "vcW2"
}
],
"rule" : [
{
"name" : "pcv3Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcW2",
"element" : "coding",
"variable" : "vccW2"
}
],
"rule" : [
{
"name" : "pcv3System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccW2",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "pcv3Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccW2",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "pcv10"
}
]
}
]
},
{
"name" : "pcv3Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccW2",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Pneumococcal conjugate vaccine (PCV10)"
}
]
}
]
}
]
},
{
"name" : "pcv3Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcW2",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "PCV10 3"
}
]
}
]
}
]
},
{
"name" : "pcv3Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imW2",
"element" : "protocolApplied",
"variable" : "paW2"
}
],
"rule" : [
{
"name" : "pcv3Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paW2",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "PCV10"
}
]
}
]
},
{
"name" : "pcv3Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paW2",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "3"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "rota1Rule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itX",
"condition" : "linkId = 'IMM-VAX-X-rota1'"
}
],
"rule" : [
{
"name" : "rota1Answer",
"source" : [
{
"context" : "itX",
"element" : "answer",
"listMode" : "first",
"variable" : "aX"
}
],
"rule" : [
{
"name" : "rota1Immunization",
"source" : [
{
"context" : "aX"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eX"
},
{
"context" : "eX",
"element" : "resource",
"variable" : "imX",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "rota1Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imX"
},
{
"context" : "eX"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itX"
},
{
"valueId" : "aX"
},
{
"valueId" : "imX"
},
{
"valueId" : "eX"
}
]
}
]
},
{
"name" : "rota1VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imX",
"element" : "vaccineCode",
"variable" : "vcX"
}
],
"rule" : [
{
"name" : "rota1Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcX",
"element" : "coding",
"variable" : "vccX"
}
],
"rule" : [
{
"name" : "rota1System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccX",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "rota1Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccX",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "rota"
}
]
}
]
},
{
"name" : "rota1Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccX",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Rotavirus vaccine"
}
]
}
]
}
]
},
{
"name" : "rota1Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcX",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Rota 1"
}
]
}
]
}
]
},
{
"name" : "rota1Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imX",
"element" : "protocolApplied",
"variable" : "paX"
}
],
"rule" : [
{
"name" : "rota1Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paX",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Rotavirus"
}
]
}
]
},
{
"name" : "rota1Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paX",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "rota2Rule",
"source" : [
{
"context" : "gVax",
"element" : "item",
"variable" : "itY",
"condition" : "linkId = 'IMM-VAX-Y-rota2'"
}
],
"rule" : [
{
"name" : "rota2Answer",
"source" : [
{
"context" : "itY",
"element" : "answer",
"listMode" : "first",
"variable" : "aY"
}
],
"rule" : [
{
"name" : "rota2Immunization",
"source" : [
{
"context" : "aY"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eY"
},
{
"context" : "eY",
"element" : "resource",
"variable" : "imY",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "rota2Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imY"
},
{
"context" : "eY"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itY"
},
{
"valueId" : "aY"
},
{
"valueId" : "imY"
},
{
"valueId" : "eY"
}
]
}
]
},
{
"name" : "rota2VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imY",
"element" : "vaccineCode",
"variable" : "vcY"
}
],
"rule" : [
{
"name" : "rota2Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcY",
"element" : "coding",
"variable" : "vccY"
}
],
"rule" : [
{
"name" : "rota2System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccY",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "rota2Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccY",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "rota"
}
]
}
]
},
{
"name" : "rota2Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccY",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Rotavirus vaccine"
}
]
}
]
}
]
},
{
"name" : "rota2Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcY",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Rota 2"
}
]
}
]
}
]
},
{
"name" : "rota2Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imY",
"element" : "protocolApplied",
"variable" : "paY"
}
],
"rule" : [
{
"name" : "rota2Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paY",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Rotavirus"
}
]
}
]
},
{
"name" : "rota2Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paY",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "2"
}
]
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "------------------------------------------------------------- L-Y vaccines"
},
{
"name" : "supplementationGroup",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "gSup",
"condition" : "linkId = 'IMM-group-supplementation'"
}
],
"rule" : [
{
"name" : "vitA100Rule",
"source" : [
{
"context" : "gSup",
"element" : "item",
"variable" : "itZ",
"condition" : "linkId = '55876-9'"
}
],
"rule" : [
{
"name" : "vitA100Answer",
"source" : [
{
"context" : "itZ",
"element" : "answer",
"listMode" : "first",
"variable" : "aZ"
}
],
"rule" : [
{
"name" : "vitA100Resource",
"source" : [
{
"context" : "aZ"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eZ"
},
{
"context" : "eZ",
"element" : "resource",
"variable" : "maZ",
"transform" : "create",
"parameter" : [
{
"valueString" : "MedicationAdministration"
}
]
}
],
"rule" : [
{
"name" : "vitA100Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "maZ"
},
{
"context" : "eZ"
}
],
"dependent" : [
{
"name" : "BuildMedAdmin",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itZ"
},
{
"valueId" : "aZ"
},
{
"valueId" : "maZ"
},
{
"valueId" : "eZ"
}
]
}
]
},
{
"name" : "vitA100Medication",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "maZ",
"element" : "medication",
"variable" : "mcrZ"
}
],
"rule" : [
{
"name" : "vitA100Concept",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mcrZ",
"element" : "concept",
"variable" : "mccZ"
}
],
"rule" : [
{
"name" : "vitA100Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mccZ",
"element" : "coding",
"variable" : "mcoZ"
}
],
"rule" : [
{
"name" : "vitA100System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mcoZ",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-supplement"
}
]
}
]
},
{
"name" : "vitA100Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mcoZ",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vitamin-a-100000"
}
]
}
]
},
{
"name" : "vitA100Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mcoZ",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vitamin A 100,000 IU"
}
]
}
]
}
]
},
{
"name" : "vitA100Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mccZ",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vitamin A 100,000 IU (6-11 months)"
}
]
}
]
}
]
}
]
},
{
"name" : "vitA100Dosage",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "maZ",
"element" : "dosage",
"variable" : "dosZ"
}
],
"rule" : [
{
"name" : "vitA100Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "dosZ",
"element" : "dose",
"variable" : "dqZ"
}
],
"rule" : [
{
"name" : "vitA100DoseValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "dqZ",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueInteger" : 100000
}
]
}
]
},
{
"name" : "vitA100DoseSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "dqZ",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "vitA100DoseCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "dqZ",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "[IU]"
}
]
}
]
},
{
"name" : "vitA100DoseUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "dqZ",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "international unit"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "vitA200Rule",
"source" : [
{
"context" : "gSup",
"element" : "item",
"variable" : "itZ2",
"condition" : "linkId = '0v8mpdt'"
}
],
"rule" : [
{
"name" : "vitA200Answer",
"source" : [
{
"context" : "itZ2",
"element" : "answer",
"listMode" : "first",
"variable" : "aZ2"
}
],
"rule" : [
{
"name" : "vitA200Resource",
"source" : [
{
"context" : "aZ2"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eZ2"
},
{
"context" : "eZ2",
"element" : "resource",
"variable" : "maZ2",
"transform" : "create",
"parameter" : [
{
"valueString" : "MedicationAdministration"
}
]
}
],
"rule" : [
{
"name" : "vitA200Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "maZ2"
},
{
"context" : "eZ2"
}
],
"dependent" : [
{
"name" : "BuildMedAdmin",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itZ2"
},
{
"valueId" : "aZ2"
},
{
"valueId" : "maZ2"
},
{
"valueId" : "eZ2"
}
]
}
]
},
{
"name" : "vitA200Medication",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "maZ2",
"element" : "medication",
"variable" : "mcrZ2"
}
],
"rule" : [
{
"name" : "vitA200Concept",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mcrZ2",
"element" : "concept",
"variable" : "mccZ2"
}
],
"rule" : [
{
"name" : "vitA200Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mccZ2",
"element" : "coding",
"variable" : "mcoZ2"
}
],
"rule" : [
{
"name" : "vitA200System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mcoZ2",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-supplement"
}
]
}
]
},
{
"name" : "vitA200Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mcoZ2",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vitamin-a-200000"
}
]
}
]
},
{
"name" : "vitA200Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mcoZ2",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vitamin A 200,000 IU"
}
]
}
]
}
]
},
{
"name" : "vitA200Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "mccZ2",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vitamin A 200,000 IU (12 months onwards)"
}
]
}
]
}
]
}
]
},
{
"name" : "vitA200Dosage",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "maZ2",
"element" : "dosage",
"variable" : "dosZ2"
}
],
"rule" : [
{
"name" : "vitA200Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "dosZ2",
"element" : "dose",
"variable" : "dqZ2"
}
],
"rule" : [
{
"name" : "vitA200DoseValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "dqZ2",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueInteger" : 200000
}
]
}
]
},
{
"name" : "vitA200DoseSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "dqZ2",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://unitsofmeasure.org"
}
]
}
]
},
{
"name" : "vitA200DoseCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "dqZ2",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "[IU]"
}
]
}
]
},
{
"name" : "vitA200DoseUnit",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "dqZ2",
"element" : "unit",
"transform" : "copy",
"parameter" : [
{
"valueString" : "international unit"
}
]
}
]
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "------------------------------------------------- Z Vitamin A supplements"
},
{
"name" : "mrYfGroup",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "gMrYf",
"condition" : "linkId = 'IMM-group-mr-yf'"
}
],
"rule" : [
{
"name" : "mr1Rule",
"source" : [
{
"context" : "gMrYf",
"element" : "item",
"variable" : "itAa",
"condition" : "linkId = 'IMM-VAX-AA-mr1'"
}
],
"rule" : [
{
"name" : "mr1Answer",
"source" : [
{
"context" : "itAa",
"element" : "answer",
"listMode" : "first",
"variable" : "aAa"
}
],
"rule" : [
{
"name" : "mr1Immunization",
"source" : [
{
"context" : "aAa"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eAa"
},
{
"context" : "eAa",
"element" : "resource",
"variable" : "imAa",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "mr1Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imAa"
},
{
"context" : "eAa"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itAa"
},
{
"valueId" : "aAa"
},
{
"valueId" : "imAa"
},
{
"valueId" : "eAa"
}
]
}
]
},
{
"name" : "mr1VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imAa",
"element" : "vaccineCode",
"variable" : "vcAa"
}
],
"rule" : [
{
"name" : "mr1Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcAa",
"element" : "coding",
"variable" : "vccAa"
}
],
"rule" : [
{
"name" : "mr1System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccAa",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "mr1Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccAa",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "mr"
}
]
}
]
},
{
"name" : "mr1Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccAa",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Measles-rubella vaccine"
}
]
}
]
}
]
},
{
"name" : "mr1Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcAa",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "MR 1"
}
]
}
]
}
]
},
{
"name" : "mr1Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imAa",
"element" : "protocolApplied",
"variable" : "paAa"
}
],
"rule" : [
{
"name" : "mr1Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paAa",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Measles-Rubella"
}
]
}
]
},
{
"name" : "mr1Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paAa",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "yfRule",
"source" : [
{
"context" : "gMrYf",
"element" : "item",
"variable" : "itAb",
"condition" : "linkId = 'IMM-VAX-AB-yf'"
}
],
"rule" : [
{
"name" : "yfAnswer",
"source" : [
{
"context" : "itAb",
"element" : "answer",
"listMode" : "first",
"variable" : "aAb"
}
],
"rule" : [
{
"name" : "yfImmunization",
"source" : [
{
"context" : "aAb"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eAb"
},
{
"context" : "eAb",
"element" : "resource",
"variable" : "imAb",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "yfBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imAb"
},
{
"context" : "eAb"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itAb"
},
{
"valueId" : "aAb"
},
{
"valueId" : "imAb"
},
{
"valueId" : "eAb"
}
]
}
]
},
{
"name" : "yfVaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imAb",
"element" : "vaccineCode",
"variable" : "vcAb"
}
],
"rule" : [
{
"name" : "yfCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcAb",
"element" : "coding",
"variable" : "vccAb"
}
],
"rule" : [
{
"name" : "yfSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccAb",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "yfCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccAb",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "yf"
}
]
}
]
},
{
"name" : "yfDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccAb",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Yellow fever vaccine"
}
]
}
]
}
]
},
{
"name" : "yfText",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcAb",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Yellow Fever"
}
]
}
]
}
]
},
{
"name" : "yfProtocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imAb",
"element" : "protocolApplied",
"variable" : "paAb"
}
],
"rule" : [
{
"name" : "yfSeries",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paAb",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Yellow Fever"
}
]
}
]
},
{
"name" : "yfDose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paAb",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "1"
}
]
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "------------------------------------------------------ AA-AB MR1 + Yellow Fever"
},
{
"name" : "ficGroup",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "gFic",
"condition" : "linkId = 'IMM-group-fic'"
}
],
"rule" : [
{
"name" : "ficRule",
"source" : [
{
"context" : "gFic",
"element" : "item",
"variable" : "itAc",
"condition" : "linkId = 'IMM-FIC-AC-date'"
}
],
"rule" : [
{
"name" : "ficAnswer",
"source" : [
{
"context" : "itAc",
"element" : "answer",
"listMode" : "first",
"variable" : "aAc"
}
],
"rule" : [
{
"name" : "ficObservation",
"source" : [
{
"context" : "aAc"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eAc"
},
{
"context" : "eAc",
"element" : "resource",
"variable" : "obAc",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "ficBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obAc"
},
{
"context" : "eAc"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obAc"
},
{
"valueId" : "eAc"
}
]
}
]
},
{
"name" : "ficCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obAc"
}
],
"dependent" : [
{
"name" : "SurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obAc"
}
]
}
]
},
{
"name" : "ficCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obAc",
"element" : "code",
"variable" : "cdAc"
}
],
"rule" : [
{
"name" : "ficCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdAc",
"element" : "coding",
"variable" : "ccAc"
}
],
"rule" : [
{
"name" : "ficSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccAc",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "ficCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccAc",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "11369-6"
}
]
}
]
},
{
"name" : "ficDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccAc",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Immunisation completion status"
}
]
}
]
}
]
},
{
"name" : "ficCodeText",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdAc",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Fully Immunised Child (FIC) completion date"
}
]
}
]
}
]
},
{
"name" : "ficValue",
"source" : [
{
"context" : "aAc",
"element" : "value",
"variable" : "dv"
}
],
"target" : [
{
"context" : "obAc",
"element" : "value",
"transform" : "cast",
"parameter" : [
{
"valueId" : "dv"
},
{
"valueString" : "dateTime"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "------------------------------------------------------------- AC FIC date"
},
{
"name" : "mr2Group",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "gMr2",
"condition" : "linkId = 'IMM-group-mr2'"
}
],
"rule" : [
{
"name" : "mr2Rule",
"source" : [
{
"context" : "gMr2",
"element" : "item",
"variable" : "itAd",
"condition" : "linkId = 'IMM-VAX-AD-mr2'"
}
],
"rule" : [
{
"name" : "mr2Answer",
"source" : [
{
"context" : "itAd",
"element" : "answer",
"listMode" : "first",
"variable" : "aAd"
}
],
"rule" : [
{
"name" : "mr2Immunization",
"source" : [
{
"context" : "aAd"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eAd"
},
{
"context" : "eAd",
"element" : "resource",
"variable" : "imAd",
"transform" : "create",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
],
"rule" : [
{
"name" : "mr2Base",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imAd"
},
{
"context" : "eAd"
}
],
"dependent" : [
{
"name" : "BuildImm",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "itAd"
},
{
"valueId" : "aAd"
},
{
"valueId" : "imAd"
},
{
"valueId" : "eAd"
}
]
}
]
},
{
"name" : "mr2VaccineCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imAd",
"element" : "vaccineCode",
"variable" : "vcAd"
}
],
"rule" : [
{
"name" : "mr2Coding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcAd",
"element" : "coding",
"variable" : "vccAd"
}
],
"rule" : [
{
"name" : "mr2System",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccAd",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen"
}
]
}
]
},
{
"name" : "mr2Code",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccAd",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "mr"
}
]
}
]
},
{
"name" : "mr2Display",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vccAd",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Measles-rubella vaccine"
}
]
}
]
}
]
},
{
"name" : "mr2Text",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "vcAd",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "MR 2"
}
]
}
]
}
]
},
{
"name" : "mr2Protocol",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imAd",
"element" : "protocolApplied",
"variable" : "paAd"
}
],
"rule" : [
{
"name" : "mr2Series",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paAd",
"element" : "series",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Measles-Rubella"
}
]
}
]
},
{
"name" : "mr2Dose",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "paAd",
"element" : "doseNumber",
"transform" : "copy",
"parameter" : [
{
"valueString" : "2"
}
]
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "------------------------------------------------------------------ AD MR2"
},
{
"name" : "dangerSignsGroup",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "gDs",
"condition" : "linkId = 'IMM-group-danger-signs'"
}
],
"rule" : [
{
"name" : "feverRule",
"source" : [
{
"context" : "gDs",
"element" : "item",
"variable" : "itD1",
"condition" : "linkId = 'IMM-DS-Q1-fever'"
}
],
"rule" : [
{
"name" : "feverAnswer",
"source" : [
{
"context" : "itD1",
"element" : "answer",
"listMode" : "first",
"variable" : "aD1"
}
],
"rule" : [
{
"name" : "feverObservation",
"source" : [
{
"context" : "aD1"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eD1"
},
{
"context" : "eD1",
"element" : "resource",
"variable" : "obD1",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "feverBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD1"
},
{
"context" : "eD1"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD1"
},
{
"valueId" : "eD1"
}
]
}
]
},
{
"name" : "feverCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD1"
}
],
"dependent" : [
{
"name" : "SurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD1"
}
]
}
]
},
{
"name" : "feverCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD1",
"element" : "code",
"variable" : "cdD1"
}
],
"rule" : [
{
"name" : "feverCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdD1",
"element" : "coding",
"variable" : "ccD1"
}
],
"rule" : [
{
"name" : "feverSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD1",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "feverCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD1",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "8310-5"
}
]
}
]
},
{
"name" : "feverDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD1",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Body temperature"
}
]
}
]
}
]
},
{
"name" : "feverCodeText",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdD1",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Fever reported"
}
]
}
]
}
]
},
{
"name" : "feverValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD1"
}
],
"dependent" : [
{
"name" : "SetCodedValue",
"parameter" : [
{
"valueId" : "itD1"
},
{
"valueId" : "obD1"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "feedingRule",
"source" : [
{
"context" : "gDs",
"element" : "item",
"variable" : "itD2",
"condition" : "linkId = 'IMM-DS-Q2-feeding'"
}
],
"rule" : [
{
"name" : "feedingAnswer",
"source" : [
{
"context" : "itD2",
"element" : "answer",
"listMode" : "first",
"variable" : "aD2"
}
],
"rule" : [
{
"name" : "feedingObservation",
"source" : [
{
"context" : "aD2"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eD2"
},
{
"context" : "eD2",
"element" : "resource",
"variable" : "obD2",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "feedingBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD2"
},
{
"context" : "eD2"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD2"
},
{
"valueId" : "eD2"
}
]
}
]
},
{
"name" : "feedingCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD2"
}
],
"dependent" : [
{
"name" : "SurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD2"
}
]
}
]
},
{
"name" : "feedingCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD2",
"element" : "code",
"variable" : "cdD2"
}
],
"rule" : [
{
"name" : "feedingCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdD2",
"element" : "coding",
"variable" : "ccD2"
}
],
"rule" : [
{
"name" : "feedingSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD2",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "feedingCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD2",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "75890-1"
}
]
}
]
},
{
"name" : "feedingDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD2",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Feeding status"
}
]
}
]
}
]
},
{
"name" : "feedingCodeText",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdD2",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Child is feeding"
}
]
}
],
"documentation" : "Polarity is inverted relative to the other danger signs: \"Yes\"\r\nhere is reassuring, not alarming."
}
]
},
{
"name" : "feedingValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD2"
}
],
"dependent" : [
{
"name" : "SetCodedValue",
"parameter" : [
{
"valueId" : "itD2"
},
{
"valueId" : "obD2"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "convulsionsRule",
"source" : [
{
"context" : "gDs",
"element" : "item",
"variable" : "itD3",
"condition" : "linkId = 'IMM-DS-Q3-convulsions'"
}
],
"rule" : [
{
"name" : "convulsionsAnswer",
"source" : [
{
"context" : "itD3",
"element" : "answer",
"listMode" : "first",
"variable" : "aD3"
}
],
"rule" : [
{
"name" : "convulsionsObservation",
"source" : [
{
"context" : "aD3"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eD3"
},
{
"context" : "eD3",
"element" : "resource",
"variable" : "obD3",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "convulsionsBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD3"
},
{
"context" : "eD3"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD3"
},
{
"valueId" : "eD3"
}
]
}
]
},
{
"name" : "convulsionsCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD3"
}
],
"dependent" : [
{
"name" : "SurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD3"
}
]
}
]
},
{
"name" : "convulsionsCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD3",
"element" : "code",
"variable" : "cdD3"
}
],
"rule" : [
{
"name" : "convulsionsCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdD3",
"element" : "coding",
"variable" : "ccD3"
}
],
"rule" : [
{
"name" : "convulsionsSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD3",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "convulsionsCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD3",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "31398-4"
}
]
}
]
},
{
"name" : "convulsionsDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD3",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Convulsions"
}
]
}
]
}
]
}
]
},
{
"name" : "convulsionsValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD3"
}
],
"dependent" : [
{
"name" : "SetCodedValue",
"parameter" : [
{
"valueId" : "itD3"
},
{
"valueId" : "obD3"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "coughRule",
"source" : [
{
"context" : "gDs",
"element" : "item",
"variable" : "itD4",
"condition" : "linkId = 'IMM-DS-Q4-cough'"
}
],
"rule" : [
{
"name" : "coughAnswer",
"source" : [
{
"context" : "itD4",
"element" : "answer",
"listMode" : "first",
"variable" : "aD4"
}
],
"rule" : [
{
"name" : "coughObservation",
"source" : [
{
"context" : "aD4"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eD4"
},
{
"context" : "eD4",
"element" : "resource",
"variable" : "obD4",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "coughBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD4"
},
{
"context" : "eD4"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD4"
},
{
"valueId" : "eD4"
}
]
}
]
},
{
"name" : "coughCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD4"
}
],
"dependent" : [
{
"name" : "SurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD4"
}
]
}
]
},
{
"name" : "coughCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD4",
"element" : "code",
"variable" : "cdD4"
}
],
"rule" : [
{
"name" : "coughCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdD4",
"element" : "coding",
"variable" : "ccD4"
}
],
"rule" : [
{
"name" : "coughSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD4",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "coughCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD4",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "28238-4"
}
]
}
]
},
{
"name" : "coughDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD4",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Cough"
}
]
}
]
}
]
}
]
},
{
"name" : "coughValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD4"
}
],
"dependent" : [
{
"name" : "SetCodedValue",
"parameter" : [
{
"valueId" : "itD4"
},
{
"valueId" : "obD4"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "diarrhoeaRule",
"source" : [
{
"context" : "gDs",
"element" : "item",
"variable" : "itD5",
"condition" : "linkId = 'IMM-DS-Q5-diarrhoea'"
}
],
"rule" : [
{
"name" : "diarrhoeaAnswer",
"source" : [
{
"context" : "itD5",
"element" : "answer",
"listMode" : "first",
"variable" : "aD5"
}
],
"rule" : [
{
"name" : "diarrhoeaObservation",
"source" : [
{
"context" : "aD5"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eD5"
},
{
"context" : "eD5",
"element" : "resource",
"variable" : "obD5",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "diarrhoeaBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD5"
},
{
"context" : "eD5"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD5"
},
{
"valueId" : "eD5"
}
]
}
]
},
{
"name" : "diarrhoeaCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD5"
}
],
"dependent" : [
{
"name" : "SurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD5"
}
]
}
]
},
{
"name" : "diarrhoeaCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD5",
"element" : "code",
"variable" : "cdD5"
}
],
"rule" : [
{
"name" : "diarrhoeaCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdD5",
"element" : "coding",
"variable" : "ccD5"
}
],
"rule" : [
{
"name" : "diarrhoeaSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD5",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://snomed.info/sct"
}
]
}
]
},
{
"name" : "diarrhoeaCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD5",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "28229008"
}
]
}
]
},
{
"name" : "diarrhoeaDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD5",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Diarrhoea"
}
]
}
]
}
]
}
]
},
{
"name" : "diarrhoeaValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD5"
}
],
"dependent" : [
{
"name" : "SetCodedValue",
"parameter" : [
{
"valueId" : "itD5"
},
{
"valueId" : "obD5"
}
]
}
]
}
]
}
]
}
],
"documentation" : "The questionnaire declares this SNOMED CT concept id under the LOINC\r\nsystem; emitted here against the SNOMED CT system it actually belongs to."
},
{
"name" : "vomitingRule",
"source" : [
{
"context" : "gDs",
"element" : "item",
"variable" : "itD6",
"condition" : "linkId = 'IMM-DS-Q6-vomiting'"
}
],
"rule" : [
{
"name" : "vomitingAnswer",
"source" : [
{
"context" : "itD6",
"element" : "answer",
"listMode" : "first",
"variable" : "aD6"
}
],
"rule" : [
{
"name" : "vomitingObservation",
"source" : [
{
"context" : "aD6"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eD6"
},
{
"context" : "eD6",
"element" : "resource",
"variable" : "obD6",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "vomitingBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD6"
},
{
"context" : "eD6"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD6"
},
{
"valueId" : "eD6"
}
]
}
]
},
{
"name" : "vomitingCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD6"
}
],
"dependent" : [
{
"name" : "SurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD6"
}
]
}
]
},
{
"name" : "vomitingCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD6",
"element" : "code",
"variable" : "cdD6"
}
],
"rule" : [
{
"name" : "vomitingCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdD6",
"element" : "coding",
"variable" : "ccD6"
}
],
"rule" : [
{
"name" : "vomitingSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD6",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://snomed.info/sct"
}
]
}
]
},
{
"name" : "vomitingCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD6",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "21522001"
}
]
}
]
},
{
"name" : "vomitingDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD6",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vomiting"
}
]
}
]
}
]
}
]
},
{
"name" : "vomitingValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD6"
}
],
"dependent" : [
{
"name" : "SetCodedValue",
"parameter" : [
{
"valueId" : "itD6"
},
{
"valueId" : "obD6"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "dsNotesRule",
"source" : [
{
"context" : "gDs",
"element" : "item",
"variable" : "itD7",
"condition" : "linkId = 'IMM-DS-Q7-notes'"
}
],
"rule" : [
{
"name" : "dsNotesAnswer",
"source" : [
{
"context" : "itD7",
"element" : "answer",
"listMode" : "first",
"variable" : "aD7"
}
],
"rule" : [
{
"name" : "dsNotesObservation",
"source" : [
{
"context" : "aD7"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eD7"
},
{
"context" : "eD7",
"element" : "resource",
"variable" : "obD7",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "dsNotesBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD7"
},
{
"context" : "eD7"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD7"
},
{
"valueId" : "eD7"
}
]
}
]
},
{
"name" : "dsNotesCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD7"
}
],
"dependent" : [
{
"name" : "SurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obD7"
}
]
}
]
},
{
"name" : "dsNotesCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obD7",
"element" : "code",
"variable" : "cdD7"
}
],
"rule" : [
{
"name" : "dsNotesCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdD7",
"element" : "coding",
"variable" : "ccD7"
}
],
"rule" : [
{
"name" : "dsNotesSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD7",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "dsNotesCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD7",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "48767-8"
}
]
}
]
},
{
"name" : "dsNotesDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccD7",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Annotation comment"
}
]
}
]
}
]
},
{
"name" : "dsNotesCodeText",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdD7",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Danger signs clinical notes"
}
]
}
]
}
]
},
{
"name" : "dsNotesValue",
"source" : [
{
"context" : "aD7",
"element" : "value",
"variable" : "v"
}
],
"target" : [
{
"context" : "obD7",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "------------------------------------------------------------- Danger signs"
},
{
"name" : "educationGroup",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "gEd",
"condition" : "linkId = 'IMM-group-education'"
}
],
"rule" : [
{
"name" : "eduGivenRule",
"source" : [
{
"context" : "gEd",
"element" : "item",
"variable" : "itE1",
"condition" : "linkId = 'IMM-ED-Q1-education-given'"
}
],
"rule" : [
{
"name" : "eduGivenAnswer",
"source" : [
{
"context" : "itE1",
"element" : "answer",
"listMode" : "first",
"variable" : "aE1"
}
],
"rule" : [
{
"name" : "eduGivenObservation",
"source" : [
{
"context" : "aE1"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eE1"
},
{
"context" : "eE1",
"element" : "resource",
"variable" : "obE1",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "eduGivenBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obE1"
},
{
"context" : "eE1"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obE1"
},
{
"valueId" : "eE1"
}
]
}
]
},
{
"name" : "eduGivenCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obE1"
}
],
"dependent" : [
{
"name" : "SurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obE1"
}
]
}
]
},
{
"name" : "eduGivenCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obE1",
"element" : "code",
"variable" : "cdE1"
}
],
"rule" : [
{
"name" : "eduGivenCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdE1",
"element" : "coding",
"variable" : "ccE1"
}
],
"rule" : [
{
"name" : "eduGivenSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccE1",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "eduGivenCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccE1",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "61144-2"
}
]
}
]
},
{
"name" : "eduGivenDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccE1",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Patient education provided"
}
]
}
]
}
]
}
]
},
{
"name" : "eduGivenValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obE1"
}
],
"dependent" : [
{
"name" : "SetCodedValue",
"parameter" : [
{
"valueId" : "itE1"
},
{
"valueId" : "obE1"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "eduTopicsRule",
"source" : [
{
"context" : "gEd",
"element" : "item",
"variable" : "itE2",
"condition" : "linkId = 'IMM-ED-Q2-topics'"
}
],
"rule" : [
{
"name" : "eduTopicsAnswer",
"source" : [
{
"context" : "itE2",
"element" : "answer",
"listMode" : "first",
"variable" : "aE2"
}
],
"rule" : [
{
"name" : "eduTopicsObservation",
"source" : [
{
"context" : "aE2"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eE2"
},
{
"context" : "eE2",
"element" : "resource",
"variable" : "obE2",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "eduTopicsBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obE2"
},
{
"context" : "eE2"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obE2"
},
{
"valueId" : "eE2"
}
]
}
]
},
{
"name" : "eduTopicsCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obE2"
}
],
"dependent" : [
{
"name" : "SurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obE2"
}
]
}
]
},
{
"name" : "eduTopicsCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obE2",
"element" : "code",
"variable" : "cdE2"
}
],
"rule" : [
{
"name" : "eduTopicsCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdE2",
"element" : "coding",
"variable" : "ccE2"
}
],
"rule" : [
{
"name" : "eduTopicsSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccE2",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "eduTopicsCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccE2",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "61144-2"
}
]
}
]
},
{
"name" : "eduTopicsDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccE2",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Education topics covered"
}
]
}
]
}
]
},
{
"name" : "eduTopicsCodeText",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdE2",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Education topics covered"
}
]
}
]
}
]
},
{
"name" : "eduTopicsValue",
"source" : [
{
"context" : "aE2",
"element" : "value",
"variable" : "v"
}
],
"target" : [
{
"context" : "obE2",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "nextVisitToldRule",
"source" : [
{
"context" : "gEd",
"element" : "item",
"variable" : "itE3",
"condition" : "linkId = 'IMM-ED-Q3-next-visit'"
}
],
"rule" : [
{
"name" : "nextVisitToldAnswer",
"source" : [
{
"context" : "itE3",
"element" : "answer",
"listMode" : "first",
"variable" : "aE3"
}
],
"rule" : [
{
"name" : "nextVisitToldObservation",
"source" : [
{
"context" : "aE3"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eE3"
},
{
"context" : "eE3",
"element" : "resource",
"variable" : "obE3",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "nextVisitToldBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obE3"
},
{
"context" : "eE3"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obE3"
},
{
"valueId" : "eE3"
}
]
}
]
},
{
"name" : "nextVisitToldCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obE3"
}
],
"dependent" : [
{
"name" : "SurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obE3"
}
]
}
]
},
{
"name" : "nextVisitToldCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obE3",
"element" : "code",
"variable" : "cdE3"
}
],
"rule" : [
{
"name" : "nextVisitToldCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdE3",
"element" : "coding",
"variable" : "ccE3"
}
],
"rule" : [
{
"name" : "nextVisitToldSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccE3",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "nextVisitToldCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccE3",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "57177-3"
}
]
}
]
},
{
"name" : "nextVisitToldDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccE3",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Follow-up plan"
}
]
}
]
}
]
},
{
"name" : "nextVisitToldCodeText",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdE3",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Next visit date communicated to caregiver"
}
]
}
]
}
]
},
{
"name" : "nextVisitToldValue",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obE3"
}
],
"dependent" : [
{
"name" : "SetCodedValue",
"parameter" : [
{
"valueId" : "itE3"
},
{
"valueId" : "obE3"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "nextVisitDateRule",
"source" : [
{
"context" : "gEd",
"element" : "item",
"variable" : "itE4",
"condition" : "linkId = 'IMM-ED-Q4-next-visit-date'"
}
],
"rule" : [
{
"name" : "nextVisitDateAnswer",
"source" : [
{
"context" : "itE4",
"element" : "answer",
"listMode" : "first",
"variable" : "aE4"
}
],
"rule" : [
{
"name" : "appointmentResource",
"source" : [
{
"context" : "aE4"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eE4"
},
{
"context" : "eE4",
"element" : "resource",
"variable" : "appt",
"transform" : "create",
"parameter" : [
{
"valueString" : "Appointment"
}
]
}
],
"rule" : [
{
"name" : "apptCellIdentifier",
"source" : [
{
"context" : "aE4",
"element" : "value",
"variable" : "dvAp"
}
],
"target" : [
{
"context" : "appt",
"element" : "identifier",
"variable" : "idAp"
}
],
"rule" : [
{
"name" : "apptCellSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "idAp",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell"
}
]
}
]
},
{
"name" : "apptCellValue",
"source" : [
{
"context" : "dvAp"
}
],
"target" : [
{
"context" : "idAp",
"element" : "value",
"transform" : "append",
"parameter" : [
{
"valueString" : "IMM-ED-Q4-next-visit-date@"
},
{
"valueId" : "dvAp"
}
]
}
]
}
],
"documentation" : "One proposed appointment per (child, requested date)."
},
{
"name" : "apptSubject",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "subjAp"
}
],
"rule" : [
{
"name" : "apptPatientRef",
"source" : [
{
"context" : "subjAp",
"element" : "reference",
"variable" : "prefAp"
}
],
"rule" : [
{
"name" : "apptReq",
"source" : [
{
"context" : "aE4",
"element" : "value",
"variable" : "dvAp2"
}
],
"target" : [
{
"context" : "eE4",
"element" : "request",
"variable" : "rqAp"
}
],
"rule" : [
{
"name" : "apptReqMethod",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rqAp",
"element" : "method",
"transform" : "copy",
"parameter" : [
{
"valueString" : "POST"
}
]
}
]
},
{
"name" : "apptReqUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rqAp",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Appointment"
}
]
}
]
},
{
"name" : "apptIfNoneExist",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rqAp",
"element" : "ifNoneExist",
"transform" : "append",
"parameter" : [
{
"valueString" : "actor="
},
{
"valueId" : "prefAp"
},
{
"valueString" : "&identifier=https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell|IMM-ED-Q4-next-visit-date@"
},
{
"valueId" : "dvAp2"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "apptId",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "appt",
"element" : "id",
"transform" : "uuid"
}
]
},
{
"name" : "apptStatus",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "appt",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueString" : "proposed"
}
]
}
]
},
{
"name" : "apptDescription",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "appt",
"element" : "description",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Next scheduled immunisation visit (MOH 510)"
}
]
}
]
},
{
"name" : "apptSubject",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "s"
}
],
"target" : [
{
"context" : "appt",
"element" : "subject",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
},
{
"name" : "apptParticipant",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "appt",
"element" : "participant",
"variable" : "prt"
}
],
"rule" : [
{
"name" : "apptParticipantStatus",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "prt",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueString" : "needs-action"
}
]
}
]
},
{
"name" : "apptParticipantActor",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "s"
}
],
"target" : [
{
"context" : "prt",
"element" : "actor",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
}
]
},
{
"name" : "apptRequestedPeriod",
"source" : [
{
"context" : "aE4",
"element" : "value",
"variable" : "dv"
}
],
"target" : [
{
"context" : "appt",
"element" : "requestedPeriod",
"variable" : "rp"
}
],
"rule" : [
{
"name" : "apptRequestedStart",
"source" : [
{
"context" : "dv"
}
],
"target" : [
{
"context" : "rp",
"element" : "start",
"transform" : "cast",
"parameter" : [
{
"valueId" : "dv"
},
{
"valueString" : "dateTime"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "Appointment.start is an instant, so a date-only answer is carried on\r\nrequestedPeriod instead."
}
],
"documentation" : "---------------------------------------------------------- Patient education"
},
{
"name" : "remarksGroup",
"source" : [
{
"context" : "qr",
"element" : "item",
"variable" : "gRem",
"condition" : "linkId = 'IMM-group-remarks'"
}
],
"rule" : [
{
"name" : "remarksRule",
"source" : [
{
"context" : "gRem",
"element" : "item",
"variable" : "itAe",
"condition" : "linkId = '48767-8'"
}
],
"rule" : [
{
"name" : "remarksAnswer",
"source" : [
{
"context" : "itAe",
"element" : "answer",
"listMode" : "first",
"variable" : "aAe"
}
],
"rule" : [
{
"name" : "remarksObservation",
"source" : [
{
"context" : "aAe"
}
],
"target" : [
{
"context" : "bundle",
"element" : "entry",
"variable" : "eAe"
},
{
"context" : "eAe",
"element" : "resource",
"variable" : "obAe",
"transform" : "create",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
],
"rule" : [
{
"name" : "remarksBase",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obAe"
},
{
"context" : "eAe"
}
],
"dependent" : [
{
"name" : "BuildObsBase",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obAe"
},
{
"valueId" : "eAe"
}
]
}
]
},
{
"name" : "remarksCategory",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obAe"
}
],
"dependent" : [
{
"name" : "SurveyCategory",
"parameter" : [
{
"valueId" : "qr"
},
{
"valueId" : "obAe"
}
]
}
]
},
{
"name" : "remarksCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obAe",
"element" : "code",
"variable" : "cdAe"
}
],
"rule" : [
{
"name" : "remarksCodeCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdAe",
"element" : "coding",
"variable" : "ccAe"
}
],
"rule" : [
{
"name" : "remarksSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccAe",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://loinc.org"
}
]
}
]
},
{
"name" : "remarksCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccAe",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "48767-8"
}
]
}
]
},
{
"name" : "remarksDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ccAe",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Annotation comment"
}
]
}
]
}
]
},
{
"name" : "remarksCodeText",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cdAe",
"element" : "text",
"transform" : "copy",
"parameter" : [
{
"valueString" : "MOH 510 register remarks"
}
]
}
]
}
]
},
{
"name" : "remarksValue",
"source" : [
{
"context" : "aAe",
"element" : "value",
"variable" : "v"
}
],
"target" : [
{
"context" : "obAe",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "v"
}
]
}
]
}
]
}
]
}
]
}
],
"documentation" : "---------------------------------------------------------------- AE Remarks"
}
]
},
{
"name" : "BuildObsBase",
"documentation" : "---------------------------------------------------------------- helper groups\r\nPlain POST, deliberately not a conditional create. These are per-visit facts,\r\nso the key would have to be (cell, visit) -- and qr.authored carries a\r\n\"+03:00\" offset that cannot go into an ifNoneExist query string unencoded.\r\nConsequence: extracting the SAME response twice duplicates its Observations.\r\nPopulate never fills these sections, so the populate/extract loop is\r\nunaffected; only a repeated submission of one response is.",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "obs",
"type" : "Observation",
"mode" : "target"
},
{
"name" : "entry",
"mode" : "target"
}
],
"rule" : [
{
"name" : "obsReq",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "entry",
"element" : "request",
"variable" : "rq"
}
],
"rule" : [
{
"name" : "obsReqMethod",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rq",
"element" : "method",
"transform" : "copy",
"parameter" : [
{
"valueString" : "POST"
}
]
}
]
},
{
"name" : "obsReqUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rq",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Observation"
}
]
}
]
}
]
},
{
"name" : "obsId",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "id",
"transform" : "uuid"
}
]
},
{
"name" : "obsStatus",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueString" : "final"
}
]
}
]
},
{
"name" : "obsSubject",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "s"
}
],
"target" : [
{
"context" : "obs",
"element" : "subject",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
},
{
"name" : "obsEncounter",
"source" : [
{
"context" : "qr",
"element" : "encounter",
"variable" : "e"
}
],
"target" : [
{
"context" : "obs",
"element" : "encounter",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e"
}
]
}
]
},
{
"name" : "obsEffective",
"source" : [
{
"context" : "qr",
"element" : "authored",
"variable" : "t"
}
],
"target" : [
{
"context" : "obs",
"element" : "effective",
"transform" : "copy",
"parameter" : [
{
"valueId" : "t"
}
]
}
]
},
{
"name" : "obsDerivedFrom",
"source" : [
{
"context" : "qr",
"element" : "id",
"variable" : "qid"
}
],
"target" : [
{
"context" : "obs",
"element" : "derivedFrom",
"variable" : "dr",
"transform" : "create",
"parameter" : [
{
"valueString" : "Reference"
}
]
}
],
"rule" : [
{
"name" : "obsDerivedRef",
"source" : [
{
"context" : "qid"
}
],
"target" : [
{
"context" : "dr",
"element" : "reference",
"transform" : "copy",
"parameter" : [
{
"valueId" : "qid"
}
]
}
]
}
],
"documentation" : "qr.id is already type-qualified (\"QuestionnaireResponse/1008\") when the\r\nresponse is read from the server, so prepending the type -- or using\r\nreference() -- yields a doubled reference."
}
]
},
{
"name" : "BuildImm",
"documentation" : "A register cell -- (child, column) -- is the natural key for everything below.\r\nThe paper form has exactly one BCG box per child, so re-submitting a\r\npre-populated form must not add a second one. Each resource therefore carries\r\nits linkId as a business identifier and is emitted as a conditional create.",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "it",
"mode" : "source"
},
{
"name" : "a",
"mode" : "source"
},
{
"name" : "imm",
"type" : "Immunization",
"mode" : "target"
},
{
"name" : "entry",
"mode" : "target"
}
],
"rule" : [
{
"name" : "immCellIdentifier",
"source" : [
{
"context" : "it",
"element" : "linkId",
"variable" : "lk"
}
],
"target" : [
{
"context" : "imm",
"element" : "identifier",
"variable" : "idc"
}
],
"rule" : [
{
"name" : "immCellSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "idc",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell"
}
]
}
]
},
{
"name" : "immCellValue",
"source" : [
{
"context" : "lk"
}
],
"target" : [
{
"context" : "idc",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "lk"
}
]
}
]
}
]
},
{
"name" : "immSubject",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "subjImm"
}
],
"rule" : [
{
"name" : "immPatientRef",
"source" : [
{
"context" : "subjImm",
"element" : "reference",
"variable" : "pref"
}
],
"rule" : [
{
"name" : "immReq",
"source" : [
{
"context" : "it",
"element" : "linkId",
"variable" : "lk2"
}
],
"target" : [
{
"context" : "entry",
"element" : "request",
"variable" : "rq"
}
],
"rule" : [
{
"name" : "immReqMethod",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rq",
"element" : "method",
"transform" : "copy",
"parameter" : [
{
"valueString" : "POST"
}
]
}
]
},
{
"name" : "immReqUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rq",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Immunization"
}
]
}
]
},
{
"name" : "immIfNoneExist",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rq",
"element" : "ifNoneExist",
"transform" : "append",
"parameter" : [
{
"valueString" : "patient="
},
{
"valueId" : "pref"
},
{
"valueString" : "&identifier=https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell|"
},
{
"valueId" : "lk2"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "immId",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imm",
"element" : "id",
"transform" : "uuid"
}
]
},
{
"name" : "immStatus",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imm",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueString" : "completed"
}
]
}
]
},
{
"name" : "immPrimarySource",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "imm",
"element" : "primarySource",
"transform" : "copy",
"parameter" : [
{
"valueBoolean" : false
}
]
}
],
"documentation" : "Register entries are transcribed from the child's card, so the recording\r\nfacility is not necessarily the administering one."
},
{
"name" : "immPatient",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "s"
}
],
"target" : [
{
"context" : "imm",
"element" : "patient",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
},
{
"name" : "immEncounter",
"source" : [
{
"context" : "qr",
"element" : "encounter",
"variable" : "e"
}
],
"target" : [
{
"context" : "imm",
"element" : "encounter",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e"
}
]
}
]
},
{
"name" : "immOccurrence",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "dv"
}
],
"target" : [
{
"context" : "imm",
"element" : "occurrence",
"transform" : "cast",
"parameter" : [
{
"valueId" : "dv"
},
{
"valueString" : "dateTime"
}
]
}
]
}
]
},
{
"name" : "BuildMedAdmin",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "it",
"mode" : "source"
},
{
"name" : "a",
"mode" : "source"
},
{
"name" : "ma",
"type" : "MedicationAdministration",
"mode" : "target"
},
{
"name" : "entry",
"mode" : "target"
}
],
"rule" : [
{
"name" : "maCellIdentifier",
"source" : [
{
"context" : "it",
"element" : "linkId",
"variable" : "lk"
}
],
"target" : [
{
"context" : "ma",
"element" : "identifier",
"variable" : "idc"
}
],
"rule" : [
{
"name" : "maCellSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "idc",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell"
}
]
}
]
},
{
"name" : "maCellValue",
"source" : [
{
"context" : "lk"
}
],
"target" : [
{
"context" : "idc",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "lk"
}
]
}
]
}
]
},
{
"name" : "maSubject",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "subjMa"
}
],
"rule" : [
{
"name" : "maPatientRef",
"source" : [
{
"context" : "subjMa",
"element" : "reference",
"variable" : "pref"
}
],
"rule" : [
{
"name" : "maReq",
"source" : [
{
"context" : "it",
"element" : "linkId",
"variable" : "lk2"
}
],
"target" : [
{
"context" : "entry",
"element" : "request",
"variable" : "rq"
}
],
"rule" : [
{
"name" : "maReqMethod",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rq",
"element" : "method",
"transform" : "copy",
"parameter" : [
{
"valueString" : "POST"
}
]
}
]
},
{
"name" : "maReqUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rq",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "MedicationAdministration"
}
]
}
]
},
{
"name" : "maIfNoneExist",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rq",
"element" : "ifNoneExist",
"transform" : "append",
"parameter" : [
{
"valueString" : "subject="
},
{
"valueId" : "pref"
},
{
"valueString" : "&identifier=https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell|"
},
{
"valueId" : "lk2"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "maId",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ma",
"element" : "id",
"transform" : "uuid"
}
]
},
{
"name" : "maStatus",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "ma",
"element" : "status",
"transform" : "copy",
"parameter" : [
{
"valueString" : "completed"
}
]
}
]
},
{
"name" : "maSubject",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "s"
}
],
"target" : [
{
"context" : "ma",
"element" : "subject",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
},
{
"name" : "maEncounter",
"source" : [
{
"context" : "qr",
"element" : "encounter",
"variable" : "e"
}
],
"target" : [
{
"context" : "ma",
"element" : "encounter",
"transform" : "copy",
"parameter" : [
{
"valueId" : "e"
}
]
}
]
},
{
"name" : "maOccurence",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "dv"
}
],
"target" : [
{
"context" : "ma",
"element" : "occurence",
"transform" : "cast",
"parameter" : [
{
"valueId" : "dv"
},
{
"valueString" : "dateTime"
}
]
}
]
}
]
},
{
"name" : "BuildRelatedPerson",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "it",
"mode" : "source"
},
{
"name" : "rp",
"type" : "RelatedPerson",
"mode" : "target"
},
{
"name" : "entry",
"mode" : "target"
}
],
"rule" : [
{
"name" : "rpCellIdentifier",
"source" : [
{
"context" : "it",
"element" : "linkId",
"variable" : "lk"
}
],
"target" : [
{
"context" : "rp",
"element" : "identifier",
"variable" : "idc"
}
],
"rule" : [
{
"name" : "rpCellSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "idc",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell"
}
]
}
]
},
{
"name" : "rpCellValue",
"source" : [
{
"context" : "lk"
}
],
"target" : [
{
"context" : "idc",
"element" : "value",
"transform" : "copy",
"parameter" : [
{
"valueId" : "lk"
}
]
}
]
}
]
},
{
"name" : "rpSubject",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "subjRp"
}
],
"rule" : [
{
"name" : "rpPatientRef",
"source" : [
{
"context" : "subjRp",
"element" : "reference",
"variable" : "pref"
}
],
"rule" : [
{
"name" : "rpReq",
"source" : [
{
"context" : "it",
"element" : "linkId",
"variable" : "lk2"
}
],
"target" : [
{
"context" : "entry",
"element" : "request",
"variable" : "rq"
}
],
"rule" : [
{
"name" : "rpReqMethod",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rq",
"element" : "method",
"transform" : "copy",
"parameter" : [
{
"valueString" : "POST"
}
]
}
]
},
{
"name" : "rpReqUrl",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rq",
"element" : "url",
"transform" : "copy",
"parameter" : [
{
"valueString" : "RelatedPerson"
}
]
}
]
},
{
"name" : "rpIfNoneExist",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rq",
"element" : "ifNoneExist",
"transform" : "append",
"parameter" : [
{
"valueString" : "patient="
},
{
"valueId" : "pref"
},
{
"valueString" : "&identifier=https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell|"
},
{
"valueId" : "lk2"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "rpId",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rp",
"element" : "id",
"transform" : "uuid"
}
]
},
{
"name" : "rpActive",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "rp",
"element" : "active",
"transform" : "copy",
"parameter" : [
{
"valueBoolean" : true
}
]
}
]
},
{
"name" : "rpPatient",
"source" : [
{
"context" : "qr",
"element" : "subject",
"variable" : "s"
}
],
"target" : [
{
"context" : "rp",
"element" : "patient",
"transform" : "copy",
"parameter" : [
{
"valueId" : "s"
}
]
}
]
}
]
},
{
"name" : "VitalSignsCategory",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "obs",
"type" : "Observation",
"mode" : "target"
}
],
"rule" : [
{
"name" : "vsCat",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "category",
"variable" : "cat"
}
],
"rule" : [
{
"name" : "vsCatCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cat",
"element" : "coding",
"variable" : "c"
}
],
"rule" : [
{
"name" : "vsCatSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "c",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "vsCatCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "c",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "vital-signs"
}
]
}
]
},
{
"name" : "vsCatDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "c",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Vital Signs"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "SurveyCategory",
"input" : [
{
"name" : "qr",
"type" : "QR",
"mode" : "source"
},
{
"name" : "obs",
"type" : "Observation",
"mode" : "target"
}
],
"rule" : [
{
"name" : "svCat",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "obs",
"element" : "category",
"variable" : "cat"
}
],
"rule" : [
{
"name" : "svCatCoding",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "cat",
"element" : "coding",
"variable" : "c"
}
],
"rule" : [
{
"name" : "svCatSystem",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "c",
"element" : "system",
"transform" : "copy",
"parameter" : [
{
"valueString" : "http://terminology.hl7.org/CodeSystem/observation-category"
}
]
}
]
},
{
"name" : "svCatCode",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "c",
"element" : "code",
"transform" : "copy",
"parameter" : [
{
"valueString" : "survey"
}
]
}
]
},
{
"name" : "svCatDisplay",
"source" : [
{
"context" : "qr"
}
],
"target" : [
{
"context" : "c",
"element" : "display",
"transform" : "copy",
"parameter" : [
{
"valueString" : "Survey"
}
]
}
]
}
]
}
]
}
]
},
{
"name" : "SetCodedValue",
"input" : [
{
"name" : "it",
"type" : "Element",
"mode" : "source"
},
{
"name" : "obs",
"type" : "Observation",
"mode" : "target"
}
],
"rule" : [
{
"name" : "setCodedValue",
"source" : [
{
"context" : "it",
"element" : "answer",
"variable" : "a"
}
],
"target" : [
{
"context" : "obs",
"element" : "value",
"variable" : "c",
"transform" : "create",
"parameter" : [
{
"valueString" : "CodeableConcept"
}
]
}
],
"rule" : [
{
"name" : "copyCoding",
"source" : [
{
"context" : "a",
"element" : "value",
"variable" : "coding"
}
],
"target" : [
{
"context" : "c",
"element" : "coding",
"variable" : "nc",
"transform" : "copy",
"parameter" : [
{
"valueId" : "coding"
}
]
}
]
}
]
}
]
}
]
}