FHIR IG analytics| Package | silfhirprofileig |
| Resource Type | StructureMap |
| Id | StructureMap-ExtractMOH510ImmunisationRegister.json |
| FHIR Version | R5 |
| Source | https://build.fhir.org/ig/savannahghi/sil_fhir_profile_ig/StructureMap-ExtractMOH510ImmunisationRegister.html |
| URL | https://fhir.slade360.co.ke/fhir/StructureMap/ExtractMOH510ImmunisationRegister |
| Version | 0.1.0 |
| Status | active |
| Date | 2026-09-11T12:18:36+00:00 |
| Name | ExtractMOH510ImmunisationRegister |
| Title | MOH 510 Immunisation Permanent Register Extraction |
| 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. |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureMap ExtractMOH510ImmunisationRegister
/// url = 'https://fhir.slade360.co.ke/fhir/StructureMap/ExtractMOH510ImmunisationRegister' /// name = 'ExtractMOH510ImmunisationRegister' /// title = 'MOH 510 Immunisation Permanent Register Extraction' /// status = 'active' /// 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.' /// experimental = true uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" alias QR as source uses "http://hl7.org/fhir/StructureDefinition/Bundle" alias Bundle as target uses "http://hl7.org/fhir/StructureDefinition/RelatedPerson" alias RelatedPerson as target uses "http://hl7.org/fhir/StructureDefinition/Observation" alias Observation as target uses "http://hl7.org/fhir/StructureDefinition/Immunization" alias Immunization as target uses "http://hl7.org/fhir/StructureDefinition/MedicationAdministration" alias MedicationAdministration as target uses "http://hl7.org/fhir/StructureDefinition/Appointment" alias Appointment as target group ExtractMOH510ImmunisationRegister(source qr : QR, target bundle : Bundle) { qr -> bundle.type = 'transaction' "setBundleType"; // ---------------------------------------------------------------- A-K qr.item as gReg where (linkId = 'IMM-group-registration') then { // No Patient is emitted. The child is registered before the register entry // is filled, so the patient already exists and arrives as // QuestionnaireResponse.subject -- every resource below references it. // Sections C (child number), D (name), E (sex), F (date of birth) and // J (address) are the paper form transcribing demographics the EMR already // holds, so they are deliberately not extracted: creating a Patient here // would mint a duplicate record, and a blind PUT would clobber fields the // form does not carry. Reconciling them belongs in registration, not here. // This makes QuestionnaireResponse.subject mandatory for extraction -- // without it Immunization.patient (1..1) cannot be populated. gReg.item as itH where (linkId = 'IMM-RG-H-father-name') then { itH.answer first as aH then { aH -> bundle.entry as eFat, eFat.resource = create('RelatedPerson') as fat then { qr -> fat, eFat then BuildRelatedPerson(qr, itH, fat, eFat) "fatherBase"; qr -> fat.relationship as relF then { qr -> relF.coding as relFc then { qr -> relFc.system = 'http://terminology.hl7.org/CodeSystem/v3-RoleCode' "fatRelSystem"; qr -> relFc.code = 'FTH' "fatRelCode"; qr -> relFc.display = 'father' "fatRelDisplay"; } "fatherRelCoding"; } "fatherRelationship"; aH.value as v -> fat.name as nF then { v -> nF.text = v "fatherNameText"; } "fatherName"; gReg.item as itKf where (linkId = '42077-8') then { itKf.answer first as aKf then { aKf.value as v -> fat.telecom as tcF then { qr -> tcF.system = 'phone' "fatPhoneSystem"; v -> tcF.value = v "fatPhoneValue"; } "fatherTelecom"; } "fatherPhoneAnswer"; } "fatherPhoneRule"; } "fatherResource"; } "fatherAnswer"; } "fatherRule"; gReg.item as itI where (linkId = 'IMM-RG-I-mother-name') then { itI.answer first as aI then { aI -> bundle.entry as eMot, eMot.resource = create('RelatedPerson') as mot then { qr -> mot, eMot then BuildRelatedPerson(qr, itI, mot, eMot) "motherBase"; qr -> mot.relationship as relM then { qr -> relM.coding as relMc then { qr -> relMc.system = 'http://terminology.hl7.org/CodeSystem/v3-RoleCode' "motRelSystem"; qr -> relMc.code = 'MTH' "motRelCode"; qr -> relMc.display = 'mother' "motRelDisplay"; } "motherRelCoding"; } "motherRelationship"; aI.value as v -> mot.name as nM then { v -> nM.text = v "motherNameText"; } "motherName"; gReg.item as itKm where (linkId = '42077-8') then { itKm.answer first as aKm then { aKm.value as v -> mot.telecom as tcM then { qr -> tcM.system = 'phone' "motPhoneSystem"; v -> tcM.value = v "motPhoneValue"; } "motherTelecom"; } "motherPhoneAnswer"; } "motherPhoneRule"; } "motherResource"; } "motherAnswer"; } "motherRule"; } "registrationGroup"; // ------------------------------------------------------ Growth monitoring qr.item as gGrow where (linkId = 'IMM-group-growth') then { gGrow.item as itW where (linkId = 'IMM-GM-Q1-weight') then { itW.answer first as aW then { aW -> bundle.entry as eW, eW.resource = create('Observation') as obW then { qr -> obW, eW then BuildObsBase(qr, obW, eW) "weightBase"; qr -> obW then VitalSignsCategory(qr, obW) "weightCategory"; qr -> obW.code as cdW then { qr -> cdW.coding as ccW then { qr -> ccW.system = 'http://loinc.org' "wSystem"; qr -> ccW.code = '29463-7' "wCode"; qr -> ccW.display = 'Body weight' "wDisplay"; } "weightCodeCoding"; } "weightCode"; aW.value as dv -> obW.value = create('Quantity') as qW then { dv -> qW.value = dv "wQtyValue"; qr -> qW.system = 'http://unitsofmeasure.org' "wQtySystem"; qr -> qW.code = 'kg' "wQtyCode"; qr -> qW.unit = 'kilogram' "wQtyUnit"; } "weightValue"; } "weightObservation"; } "weightAnswer"; } "weightRule"; gGrow.item as itH2 where (linkId = 'IMM-GM-Q2-height') then { itH2.answer first as aH2 then { aH2 -> bundle.entry as eH2, eH2.resource = create('Observation') as obH2 then { qr -> obH2, eH2 then BuildObsBase(qr, obH2, eH2) "heightBase"; qr -> obH2 then VitalSignsCategory(qr, obH2) "heightCategory"; qr -> obH2.code as cdH2 then { qr -> cdH2.coding as ccH2 then { qr -> ccH2.system = 'http://loinc.org' "hSystem"; qr -> ccH2.code = '8302-2' "hCode"; qr -> ccH2.display = 'Body height' "hDisplay"; } "heightCodeCoding"; } "heightCode"; aH2.value as dv -> obH2.value = create('Quantity') as qH2 then { dv -> qH2.value = dv "hQtyValue"; qr -> qH2.system = 'http://unitsofmeasure.org' "hQtySystem"; qr -> qH2.code = 'cm' "hQtyCode"; qr -> qH2.unit = 'centimeter' "hQtyUnit"; } "heightValue"; } "heightObservation"; } "heightAnswer"; } "heightRule"; gGrow.item as itMu where (linkId = 'IMM-GM-Q3-muac') then { itMu.answer first as aMu then { aMu -> bundle.entry as eMu, eMu.resource = create('Observation') as obMu then { qr -> obMu, eMu then BuildObsBase(qr, obMu, eMu) "muacBase"; qr -> obMu then VitalSignsCategory(qr, obMu) "muacCategory"; qr -> obMu.code as cdMu then { qr -> cdMu.coding as ccMu then { qr -> ccMu.system = 'http://loinc.org' "muSystem"; qr -> ccMu.code = '9847-5' "muCode"; qr -> ccMu.display = 'Circumference site' "muDisplay"; } "muacCodeCoding"; } "muacCode"; qr -> obMu then SetCodedValue(itMu, obMu) "muacValue"; } "muacObservation"; } "muacAnswer"; } "muacRule"; gGrow.item as itWfa where (linkId = 'IMM-GM-Q4-weight-category') then { itWfa.answer first as aWfa then { aWfa -> bundle.entry as eWfa, eWfa.resource = create('Observation') as obWfa then { qr -> obWfa, eWfa then BuildObsBase(qr, obWfa, eWfa) "wfaBase"; qr -> obWfa then VitalSignsCategory(qr, obWfa) "wfaCategory"; qr -> obWfa.code as cdWfa then { qr -> cdWfa.coding as ccWfa then { qr -> ccWfa.system = 'http://loinc.org' "wfaSystem"; qr -> ccWfa.code = '77606-2' "wfaCode"; qr -> ccWfa.display = 'Weight-for-age percentile' "wfaDisplay"; } "wfaCodeCoding"; } "wfaCode"; qr -> obWfa then SetCodedValue(itWfa, obWfa) "wfaValue"; } "wfaObservation"; } "wfaAnswer"; } "wfaRule"; gGrow.item as itHfa where (linkId = 'IMM-GM-Q5-height-category') then { itHfa.answer first as aHfa then { aHfa -> bundle.entry as eHfa, eHfa.resource = create('Observation') as obHfa then { qr -> obHfa, eHfa then BuildObsBase(qr, obHfa, eHfa) "hfaBase"; qr -> obHfa then VitalSignsCategory(qr, obHfa) "hfaCategory"; qr -> obHfa.code as cdHfa then { qr -> cdHfa.coding as ccHfa then { qr -> ccHfa.system = 'http://loinc.org' "hfaSystem"; qr -> ccHfa.code = '59576-9' "hfaCode"; qr -> ccHfa.display = 'Height-for-age percentile' "hfaDisplay"; } "hfaCodeCoding"; } "hfaCode"; qr -> obHfa then SetCodedValue(itHfa, obHfa) "hfaValue"; } "hfaObservation"; } "hfaAnswer"; } "hfaRule"; } "growthGroup"; // ------------------------------------------------------------- L-Y vaccines qr.item as gVax where (linkId = 'IMM-group-vaccines') then { gVax.item as itL where (linkId = 'IMM-VAX-L-bcg') then { itL.answer first as aL then { aL -> bundle.entry as eL, eL.resource = create('Immunization') as imL then { qr -> imL, eL then BuildImm(qr, itL, aL, imL, eL) "bcgBase"; qr -> imL.vaccineCode as vcL then { qr -> vcL.coding as vccL then { qr -> vccL.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "bcgSystem"; qr -> vccL.code = 'bcg' "bcgCode"; qr -> vccL.display = 'BCG' "bcgDisplay"; } "bcgCoding"; qr -> vcL.text = 'BCG' "bcgText"; } "bcgVaccineCode"; qr -> imL.protocolApplied as paL then { qr -> paL.series = 'BCG' "bcgSeries"; qr -> paL.doseNumber = '1' "bcgDose"; } "bcgProtocol"; } "bcgImmunization"; } "bcgAnswer"; } "bcgRule"; gVax.item as itM where (linkId = 'IMM-VAX-M-polio-birth') then { itM.answer first as aM then { aM -> bundle.entry as eM, eM.resource = create('Immunization') as imM then { qr -> imM, eM then BuildImm(qr, itM, aM, imM, eM) "opv0Base"; qr -> imM.vaccineCode as vcM then { qr -> vcM.coding as vccM then { qr -> vccM.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "opv0System"; qr -> vccM.code = 'bopv' "opv0Code"; qr -> vccM.display = 'Bivalent oral poliovirus vaccine' "opv0Display"; } "opv0Coding"; qr -> vcM.text = 'Polio birth dose (bOPV)' "opv0Text"; } "opv0VaccineCode"; qr -> imM.protocolApplied as paM then { qr -> paM.series = 'Polio (bOPV)' "opv0Series"; qr -> paM.doseNumber = '0' "opv0Dose"; } "opv0Protocol"; } "opv0Immunization"; } "opv0Answer"; } "opv0Rule"; gVax.item as itN where (linkId = 'IMM-VAX-N-opv1') then { itN.answer first as aN then { aN -> bundle.entry as eN, eN.resource = create('Immunization') as imN then { qr -> imN, eN then BuildImm(qr, itN, aN, imN, eN) "opv1Base"; qr -> imN.vaccineCode as vcN then { qr -> vcN.coding as vccN then { qr -> vccN.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "opv1System"; qr -> vccN.code = 'bopv' "opv1Code"; qr -> vccN.display = 'Bivalent oral poliovirus vaccine' "opv1Display"; } "opv1Coding"; qr -> vcN.text = 'OPV 1' "opv1Text"; } "opv1VaccineCode"; qr -> imN.protocolApplied as paN then { qr -> paN.series = 'Polio (bOPV)' "opv1Series"; qr -> paN.doseNumber = '1' "opv1Dose"; } "opv1Protocol"; } "opv1Immunization"; } "opv1Answer"; } "opv1Rule"; gVax.item as itO where (linkId = 'IMM-VAX-O-opv2') then { itO.answer first as aO then { aO -> bundle.entry as eO, eO.resource = create('Immunization') as imO then { qr -> imO, eO then BuildImm(qr, itO, aO, imO, eO) "opv2Base"; qr -> imO.vaccineCode as vcO then { qr -> vcO.coding as vccO then { qr -> vccO.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "opv2System"; qr -> vccO.code = 'bopv' "opv2Code"; qr -> vccO.display = 'Bivalent oral poliovirus vaccine' "opv2Display"; } "opv2Coding"; qr -> vcO.text = 'OPV 2' "opv2Text"; } "opv2VaccineCode"; qr -> imO.protocolApplied as paO then { qr -> paO.series = 'Polio (bOPV)' "opv2Series"; qr -> paO.doseNumber = '2' "opv2Dose"; } "opv2Protocol"; } "opv2Immunization"; } "opv2Answer"; } "opv2Rule"; gVax.item as itP where (linkId = 'IMM-VAX-P-opv3') then { itP.answer first as aP then { aP -> bundle.entry as eP, eP.resource = create('Immunization') as imP then { qr -> imP, eP then BuildImm(qr, itP, aP, imP, eP) "opv3Base"; qr -> imP.vaccineCode as vcP then { qr -> vcP.coding as vccP then { qr -> vccP.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "opv3System"; qr -> vccP.code = 'bopv' "opv3Code"; qr -> vccP.display = 'Bivalent oral poliovirus vaccine' "opv3Display"; } "opv3Coding"; qr -> vcP.text = 'OPV 3' "opv3Text"; } "opv3VaccineCode"; qr -> imP.protocolApplied as paP then { qr -> paP.series = 'Polio (bOPV)' "opv3Series"; qr -> paP.doseNumber = '3' "opv3Dose"; } "opv3Protocol"; } "opv3Immunization"; } "opv3Answer"; } "opv3Rule"; // IPV carries its own antigen code: the questionnaire reuses the OPV LOINC // code for both, which would collapse two distinct vaccines into one. gVax.item as itQ where (linkId = 'IMM-VAX-Q-ipv') then { itQ.answer first as aQ then { aQ -> bundle.entry as eQ, eQ.resource = create('Immunization') as imQ then { qr -> imQ, eQ then BuildImm(qr, itQ, aQ, imQ, eQ) "ipvBase"; qr -> imQ.vaccineCode as vcQ then { qr -> vcQ.coding as vccQ then { qr -> vccQ.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "ipvSystem"; qr -> vccQ.code = 'ipv' "ipvCode"; qr -> vccQ.display = 'Inactivated poliovirus vaccine' "ipvDisplay"; } "ipvCoding"; qr -> vcQ.text = 'IPV' "ipvText"; } "ipvVaccineCode"; qr -> imQ.protocolApplied as paQ then { qr -> paQ.series = 'Polio (IPV)' "ipvSeries"; qr -> paQ.doseNumber = '1' "ipvDose"; } "ipvProtocol"; } "ipvImmunization"; } "ipvAnswer"; } "ipvRule"; gVax.item as itR where (linkId = 'IMM-VAX-R-penta1') then { itR.answer first as aR then { aR -> bundle.entry as eR, eR.resource = create('Immunization') as imR then { qr -> imR, eR then BuildImm(qr, itR, aR, imR, eR) "penta1Base"; qr -> imR.vaccineCode as vcR then { qr -> vcR.coding as vccR then { qr -> vccR.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "penta1System"; qr -> vccR.code = 'penta' "penta1Code"; qr -> vccR.display = 'DTP-HepB-Hib (pentavalent) vaccine' "penta1Display"; } "penta1Coding"; qr -> vcR.text = 'Pentavalent 1' "penta1Text"; } "penta1VaccineCode"; qr -> imR.protocolApplied as paR then { qr -> paR.series = 'Pentavalent' "penta1Series"; qr -> paR.doseNumber = '1' "penta1Dose"; } "penta1Protocol"; } "penta1Immunization"; } "penta1Answer"; } "penta1Rule"; gVax.item as itS where (linkId = 'IMM-VAX-S-penta2') then { itS.answer first as aS then { aS -> bundle.entry as eS, eS.resource = create('Immunization') as imS then { qr -> imS, eS then BuildImm(qr, itS, aS, imS, eS) "penta2Base"; qr -> imS.vaccineCode as vcS then { qr -> vcS.coding as vccS then { qr -> vccS.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "penta2System"; qr -> vccS.code = 'penta' "penta2Code"; qr -> vccS.display = 'DTP-HepB-Hib (pentavalent) vaccine' "penta2Display"; } "penta2Coding"; qr -> vcS.text = 'Pentavalent 2' "penta2Text"; } "penta2VaccineCode"; qr -> imS.protocolApplied as paS then { qr -> paS.series = 'Pentavalent' "penta2Series"; qr -> paS.doseNumber = '2' "penta2Dose"; } "penta2Protocol"; } "penta2Immunization"; } "penta2Answer"; } "penta2Rule"; gVax.item as itT where (linkId = 'IMM-VAX-T-penta3') then { itT.answer first as aT then { aT -> bundle.entry as eT, eT.resource = create('Immunization') as imT then { qr -> imT, eT then BuildImm(qr, itT, aT, imT, eT) "penta3Base"; qr -> imT.vaccineCode as vcT then { qr -> vcT.coding as vccT then { qr -> vccT.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "penta3System"; qr -> vccT.code = 'penta' "penta3Code"; qr -> vccT.display = 'DTP-HepB-Hib (pentavalent) vaccine' "penta3Display"; } "penta3Coding"; qr -> vcT.text = 'Pentavalent 3' "penta3Text"; } "penta3VaccineCode"; qr -> imT.protocolApplied as paT then { qr -> paT.series = 'Pentavalent' "penta3Series"; qr -> paT.doseNumber = '3' "penta3Dose"; } "penta3Protocol"; } "penta3Immunization"; } "penta3Answer"; } "penta3Rule"; gVax.item as itU where (linkId = 'IMM-VAX-U-pcv1') then { itU.answer first as aU then { aU -> bundle.entry as eU, eU.resource = create('Immunization') as imU then { qr -> imU, eU then BuildImm(qr, itU, aU, imU, eU) "pcv1Base"; qr -> imU.vaccineCode as vcU then { qr -> vcU.coding as vccU then { qr -> vccU.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "pcv1System"; qr -> vccU.code = 'pcv10' "pcv1Code"; qr -> vccU.display = 'Pneumococcal conjugate vaccine (PCV10)' "pcv1Display"; } "pcv1Coding"; qr -> vcU.text = 'PCV10 1' "pcv1Text"; } "pcv1VaccineCode"; qr -> imU.protocolApplied as paU then { qr -> paU.series = 'PCV10' "pcv1Series"; qr -> paU.doseNumber = '1' "pcv1Dose"; } "pcv1Protocol"; } "pcv1Immunization"; } "pcv1Answer"; } "pcv1Rule"; gVax.item as itV where (linkId = 'IMM-VAX-V-pcv2') then { itV.answer first as aV then { aV -> bundle.entry as eV, eV.resource = create('Immunization') as imV then { qr -> imV, eV then BuildImm(qr, itV, aV, imV, eV) "pcv2Base"; qr -> imV.vaccineCode as vcV then { qr -> vcV.coding as vccV then { qr -> vccV.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "pcv2System"; qr -> vccV.code = 'pcv10' "pcv2Code"; qr -> vccV.display = 'Pneumococcal conjugate vaccine (PCV10)' "pcv2Display"; } "pcv2Coding"; qr -> vcV.text = 'PCV10 2' "pcv2Text"; } "pcv2VaccineCode"; qr -> imV.protocolApplied as paV then { qr -> paV.series = 'PCV10' "pcv2Series"; qr -> paV.doseNumber = '2' "pcv2Dose"; } "pcv2Protocol"; } "pcv2Immunization"; } "pcv2Answer"; } "pcv2Rule"; gVax.item as itW2 where (linkId = 'IMM-VAX-W-pcv3') then { itW2.answer first as aW2 then { aW2 -> bundle.entry as eW2, eW2.resource = create('Immunization') as imW2 then { qr -> imW2, eW2 then BuildImm(qr, itW2, aW2, imW2, eW2) "pcv3Base"; qr -> imW2.vaccineCode as vcW2 then { qr -> vcW2.coding as vccW2 then { qr -> vccW2.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "pcv3System"; qr -> vccW2.code = 'pcv10' "pcv3Code"; qr -> vccW2.display = 'Pneumococcal conjugate vaccine (PCV10)' "pcv3Display"; } "pcv3Coding"; qr -> vcW2.text = 'PCV10 3' "pcv3Text"; } "pcv3VaccineCode"; qr -> imW2.protocolApplied as paW2 then { qr -> paW2.series = 'PCV10' "pcv3Series"; qr -> paW2.doseNumber = '3' "pcv3Dose"; } "pcv3Protocol"; } "pcv3Immunization"; } "pcv3Answer"; } "pcv3Rule"; gVax.item as itX where (linkId = 'IMM-VAX-X-rota1') then { itX.answer first as aX then { aX -> bundle.entry as eX, eX.resource = create('Immunization') as imX then { qr -> imX, eX then BuildImm(qr, itX, aX, imX, eX) "rota1Base"; qr -> imX.vaccineCode as vcX then { qr -> vcX.coding as vccX then { qr -> vccX.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "rota1System"; qr -> vccX.code = 'rota' "rota1Code"; qr -> vccX.display = 'Rotavirus vaccine' "rota1Display"; } "rota1Coding"; qr -> vcX.text = 'Rota 1' "rota1Text"; } "rota1VaccineCode"; qr -> imX.protocolApplied as paX then { qr -> paX.series = 'Rotavirus' "rota1Series"; qr -> paX.doseNumber = '1' "rota1Dose"; } "rota1Protocol"; } "rota1Immunization"; } "rota1Answer"; } "rota1Rule"; gVax.item as itY where (linkId = 'IMM-VAX-Y-rota2') then { itY.answer first as aY then { aY -> bundle.entry as eY, eY.resource = create('Immunization') as imY then { qr -> imY, eY then BuildImm(qr, itY, aY, imY, eY) "rota2Base"; qr -> imY.vaccineCode as vcY then { qr -> vcY.coding as vccY then { qr -> vccY.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "rota2System"; qr -> vccY.code = 'rota' "rota2Code"; qr -> vccY.display = 'Rotavirus vaccine' "rota2Display"; } "rota2Coding"; qr -> vcY.text = 'Rota 2' "rota2Text"; } "rota2VaccineCode"; qr -> imY.protocolApplied as paY then { qr -> paY.series = 'Rotavirus' "rota2Series"; qr -> paY.doseNumber = '2' "rota2Dose"; } "rota2Protocol"; } "rota2Immunization"; } "rota2Answer"; } "rota2Rule"; } "vaccineGroup"; // ------------------------------------------------- Z Vitamin A supplements qr.item as gSup where (linkId = 'IMM-group-supplementation') then { gSup.item as itZ where (linkId = '55876-9') then { itZ.answer first as aZ then { aZ -> bundle.entry as eZ, eZ.resource = create('MedicationAdministration') as maZ then { qr -> maZ, eZ then BuildMedAdmin(qr, itZ, aZ, maZ, eZ) "vitA100Base"; qr -> maZ.medication as mcrZ then { qr -> mcrZ.concept as mccZ then { qr -> mccZ.coding as mcoZ then { qr -> mcoZ.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-supplement' "vitA100System"; qr -> mcoZ.code = 'vitamin-a-100000' "vitA100Code"; qr -> mcoZ.display = 'Vitamin A 100,000 IU' "vitA100Display"; } "vitA100Coding"; qr -> mccZ.text = 'Vitamin A 100,000 IU (6-11 months)' "vitA100Text"; } "vitA100Concept"; } "vitA100Medication"; qr -> maZ.dosage as dosZ then { qr -> dosZ.dose as dqZ then { qr -> dqZ.value = 100000 "vitA100DoseValue"; qr -> dqZ.system = 'http://unitsofmeasure.org' "vitA100DoseSystem"; qr -> dqZ.code = '[IU]' "vitA100DoseCode"; qr -> dqZ.unit = 'international unit' "vitA100DoseUnit"; } "vitA100Dose"; } "vitA100Dosage"; } "vitA100Resource"; } "vitA100Answer"; } "vitA100Rule"; gSup.item as itZ2 where (linkId = '0v8mpdt') then { itZ2.answer first as aZ2 then { aZ2 -> bundle.entry as eZ2, eZ2.resource = create('MedicationAdministration') as maZ2 then { qr -> maZ2, eZ2 then BuildMedAdmin(qr, itZ2, aZ2, maZ2, eZ2) "vitA200Base"; qr -> maZ2.medication as mcrZ2 then { qr -> mcrZ2.concept as mccZ2 then { qr -> mccZ2.coding as mcoZ2 then { qr -> mcoZ2.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-supplement' "vitA200System"; qr -> mcoZ2.code = 'vitamin-a-200000' "vitA200Code"; qr -> mcoZ2.display = 'Vitamin A 200,000 IU' "vitA200Display"; } "vitA200Coding"; qr -> mccZ2.text = 'Vitamin A 200,000 IU (12 months onwards)' "vitA200Text"; } "vitA200Concept"; } "vitA200Medication"; qr -> maZ2.dosage as dosZ2 then { qr -> dosZ2.dose as dqZ2 then { qr -> dqZ2.value = 200000 "vitA200DoseValue"; qr -> dqZ2.system = 'http://unitsofmeasure.org' "vitA200DoseSystem"; qr -> dqZ2.code = '[IU]' "vitA200DoseCode"; qr -> dqZ2.unit = 'international unit' "vitA200DoseUnit"; } "vitA200Dose"; } "vitA200Dosage"; } "vitA200Resource"; } "vitA200Answer"; } "vitA200Rule"; } "supplementationGroup"; // ------------------------------------------------------ AA-AB MR1 + Yellow Fever qr.item as gMrYf where (linkId = 'IMM-group-mr-yf') then { gMrYf.item as itAa where (linkId = 'IMM-VAX-AA-mr1') then { itAa.answer first as aAa then { aAa -> bundle.entry as eAa, eAa.resource = create('Immunization') as imAa then { qr -> imAa, eAa then BuildImm(qr, itAa, aAa, imAa, eAa) "mr1Base"; qr -> imAa.vaccineCode as vcAa then { qr -> vcAa.coding as vccAa then { qr -> vccAa.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "mr1System"; qr -> vccAa.code = 'mr' "mr1Code"; qr -> vccAa.display = 'Measles-rubella vaccine' "mr1Display"; } "mr1Coding"; qr -> vcAa.text = 'MR 1' "mr1Text"; } "mr1VaccineCode"; qr -> imAa.protocolApplied as paAa then { qr -> paAa.series = 'Measles-Rubella' "mr1Series"; qr -> paAa.doseNumber = '1' "mr1Dose"; } "mr1Protocol"; } "mr1Immunization"; } "mr1Answer"; } "mr1Rule"; gMrYf.item as itAb where (linkId = 'IMM-VAX-AB-yf') then { itAb.answer first as aAb then { aAb -> bundle.entry as eAb, eAb.resource = create('Immunization') as imAb then { qr -> imAb, eAb then BuildImm(qr, itAb, aAb, imAb, eAb) "yfBase"; qr -> imAb.vaccineCode as vcAb then { qr -> vcAb.coding as vccAb then { qr -> vccAb.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "yfSystem"; qr -> vccAb.code = 'yf' "yfCode"; qr -> vccAb.display = 'Yellow fever vaccine' "yfDisplay"; } "yfCoding"; qr -> vcAb.text = 'Yellow Fever' "yfText"; } "yfVaccineCode"; qr -> imAb.protocolApplied as paAb then { qr -> paAb.series = 'Yellow Fever' "yfSeries"; qr -> paAb.doseNumber = '1' "yfDose"; } "yfProtocol"; } "yfImmunization"; } "yfAnswer"; } "yfRule"; } "mrYfGroup"; // ------------------------------------------------------------- AC FIC date qr.item as gFic where (linkId = 'IMM-group-fic') then { gFic.item as itAc where (linkId = 'IMM-FIC-AC-date') then { itAc.answer first as aAc then { aAc -> bundle.entry as eAc, eAc.resource = create('Observation') as obAc then { qr -> obAc, eAc then BuildObsBase(qr, obAc, eAc) "ficBase"; qr -> obAc then SurveyCategory(qr, obAc) "ficCategory"; qr -> obAc.code as cdAc then { qr -> cdAc.coding as ccAc then { qr -> ccAc.system = 'http://loinc.org' "ficSystem"; qr -> ccAc.code = '11369-6' "ficCode"; qr -> ccAc.display = 'Immunisation completion status' "ficDisplay"; } "ficCodeCoding"; qr -> cdAc.text = 'Fully Immunised Child (FIC) completion date' "ficCodeText"; } "ficCode"; aAc.value as dv -> obAc.value = cast(dv, 'dateTime') "ficValue"; } "ficObservation"; } "ficAnswer"; } "ficRule"; } "ficGroup"; // ------------------------------------------------------------------ AD MR2 qr.item as gMr2 where (linkId = 'IMM-group-mr2') then { gMr2.item as itAd where (linkId = 'IMM-VAX-AD-mr2') then { itAd.answer first as aAd then { aAd -> bundle.entry as eAd, eAd.resource = create('Immunization') as imAd then { qr -> imAd, eAd then BuildImm(qr, itAd, aAd, imAd, eAd) "mr2Base"; qr -> imAd.vaccineCode as vcAd then { qr -> vcAd.coding as vccAd then { qr -> vccAd.system = 'https://fhir.slade360.co.ke/fhir/CodeSystem/kepi-antigen' "mr2System"; qr -> vccAd.code = 'mr' "mr2Code"; qr -> vccAd.display = 'Measles-rubella vaccine' "mr2Display"; } "mr2Coding"; qr -> vcAd.text = 'MR 2' "mr2Text"; } "mr2VaccineCode"; qr -> imAd.protocolApplied as paAd then { qr -> paAd.series = 'Measles-Rubella' "mr2Series"; qr -> paAd.doseNumber = '2' "mr2Dose"; } "mr2Protocol"; } "mr2Immunization"; } "mr2Answer"; } "mr2Rule"; } "mr2Group"; // ------------------------------------------------------------- Danger signs qr.item as gDs where (linkId = 'IMM-group-danger-signs') then { gDs.item as itD1 where (linkId = 'IMM-DS-Q1-fever') then { itD1.answer first as aD1 then { aD1 -> bundle.entry as eD1, eD1.resource = create('Observation') as obD1 then { qr -> obD1, eD1 then BuildObsBase(qr, obD1, eD1) "feverBase"; qr -> obD1 then SurveyCategory(qr, obD1) "feverCategory"; qr -> obD1.code as cdD1 then { qr -> cdD1.coding as ccD1 then { qr -> ccD1.system = 'http://loinc.org' "feverSystem"; qr -> ccD1.code = '8310-5' "feverCode"; qr -> ccD1.display = 'Body temperature' "feverDisplay"; } "feverCodeCoding"; qr -> cdD1.text = 'Fever reported' "feverCodeText"; } "feverCode"; qr -> obD1 then SetCodedValue(itD1, obD1) "feverValue"; } "feverObservation"; } "feverAnswer"; } "feverRule"; gDs.item as itD2 where (linkId = 'IMM-DS-Q2-feeding') then { itD2.answer first as aD2 then { aD2 -> bundle.entry as eD2, eD2.resource = create('Observation') as obD2 then { qr -> obD2, eD2 then BuildObsBase(qr, obD2, eD2) "feedingBase"; qr -> obD2 then SurveyCategory(qr, obD2) "feedingCategory"; qr -> obD2.code as cdD2 then { qr -> cdD2.coding as ccD2 then { qr -> ccD2.system = 'http://loinc.org' "feedingSystem"; qr -> ccD2.code = '75890-1' "feedingCode"; qr -> ccD2.display = 'Feeding status' "feedingDisplay"; } "feedingCodeCoding"; // Polarity is inverted relative to the other danger signs: "Yes" // here is reassuring, not alarming. qr -> cdD2.text = 'Child is feeding' "feedingCodeText"; } "feedingCode"; qr -> obD2 then SetCodedValue(itD2, obD2) "feedingValue"; } "feedingObservation"; } "feedingAnswer"; } "feedingRule"; gDs.item as itD3 where (linkId = 'IMM-DS-Q3-convulsions') then { itD3.answer first as aD3 then { aD3 -> bundle.entry as eD3, eD3.resource = create('Observation') as obD3 then { qr -> obD3, eD3 then BuildObsBase(qr, obD3, eD3) "convulsionsBase"; qr -> obD3 then SurveyCategory(qr, obD3) "convulsionsCategory"; qr -> obD3.code as cdD3 then { qr -> cdD3.coding as ccD3 then { qr -> ccD3.system = 'http://loinc.org' "convulsionsSystem"; qr -> ccD3.code = '31398-4' "convulsionsCode"; qr -> ccD3.display = 'Convulsions' "convulsionsDisplay"; } "convulsionsCodeCoding"; } "convulsionsCode"; qr -> obD3 then SetCodedValue(itD3, obD3) "convulsionsValue"; } "convulsionsObservation"; } "convulsionsAnswer"; } "convulsionsRule"; gDs.item as itD4 where (linkId = 'IMM-DS-Q4-cough') then { itD4.answer first as aD4 then { aD4 -> bundle.entry as eD4, eD4.resource = create('Observation') as obD4 then { qr -> obD4, eD4 then BuildObsBase(qr, obD4, eD4) "coughBase"; qr -> obD4 then SurveyCategory(qr, obD4) "coughCategory"; qr -> obD4.code as cdD4 then { qr -> cdD4.coding as ccD4 then { qr -> ccD4.system = 'http://loinc.org' "coughSystem"; qr -> ccD4.code = '28238-4' "coughCode"; qr -> ccD4.display = 'Cough' "coughDisplay"; } "coughCodeCoding"; } "coughCode"; qr -> obD4 then SetCodedValue(itD4, obD4) "coughValue"; } "coughObservation"; } "coughAnswer"; } "coughRule"; // The questionnaire declares this SNOMED CT concept id under the LOINC // system; emitted here against the SNOMED CT system it actually belongs to. gDs.item as itD5 where (linkId = 'IMM-DS-Q5-diarrhoea') then { itD5.answer first as aD5 then { aD5 -> bundle.entry as eD5, eD5.resource = create('Observation') as obD5 then { qr -> obD5, eD5 then BuildObsBase(qr, obD5, eD5) "diarrhoeaBase"; qr -> obD5 then SurveyCategory(qr, obD5) "diarrhoeaCategory"; qr -> obD5.code as cdD5 then { qr -> cdD5.coding as ccD5 then { qr -> ccD5.system = 'http://snomed.info/sct' "diarrhoeaSystem"; qr -> ccD5.code = '28229008' "diarrhoeaCode"; qr -> ccD5.display = 'Diarrhoea' "diarrhoeaDisplay"; } "diarrhoeaCodeCoding"; } "diarrhoeaCode"; qr -> obD5 then SetCodedValue(itD5, obD5) "diarrhoeaValue"; } "diarrhoeaObservation"; } "diarrhoeaAnswer"; } "diarrhoeaRule"; gDs.item as itD6 where (linkId = 'IMM-DS-Q6-vomiting') then { itD6.answer first as aD6 then { aD6 -> bundle.entry as eD6, eD6.resource = create('Observation') as obD6 then { qr -> obD6, eD6 then BuildObsBase(qr, obD6, eD6) "vomitingBase"; qr -> obD6 then SurveyCategory(qr, obD6) "vomitingCategory"; qr -> obD6.code as cdD6 then { qr -> cdD6.coding as ccD6 then { qr -> ccD6.system = 'http://snomed.info/sct' "vomitingSystem"; qr -> ccD6.code = '21522001' "vomitingCode"; qr -> ccD6.display = 'Vomiting' "vomitingDisplay"; } "vomitingCodeCoding"; } "vomitingCode"; qr -> obD6 then SetCodedValue(itD6, obD6) "vomitingValue"; } "vomitingObservation"; } "vomitingAnswer"; } "vomitingRule"; gDs.item as itD7 where (linkId = 'IMM-DS-Q7-notes') then { itD7.answer first as aD7 then { aD7 -> bundle.entry as eD7, eD7.resource = create('Observation') as obD7 then { qr -> obD7, eD7 then BuildObsBase(qr, obD7, eD7) "dsNotesBase"; qr -> obD7 then SurveyCategory(qr, obD7) "dsNotesCategory"; qr -> obD7.code as cdD7 then { qr -> cdD7.coding as ccD7 then { qr -> ccD7.system = 'http://loinc.org' "dsNotesSystem"; qr -> ccD7.code = '48767-8' "dsNotesCode"; qr -> ccD7.display = 'Annotation comment' "dsNotesDisplay"; } "dsNotesCodeCoding"; qr -> cdD7.text = 'Danger signs clinical notes' "dsNotesCodeText"; } "dsNotesCode"; aD7.value as v -> obD7.value = v "dsNotesValue"; } "dsNotesObservation"; } "dsNotesAnswer"; } "dsNotesRule"; } "dangerSignsGroup"; // ---------------------------------------------------------- Patient education qr.item as gEd where (linkId = 'IMM-group-education') then { gEd.item as itE1 where (linkId = 'IMM-ED-Q1-education-given') then { itE1.answer first as aE1 then { aE1 -> bundle.entry as eE1, eE1.resource = create('Observation') as obE1 then { qr -> obE1, eE1 then BuildObsBase(qr, obE1, eE1) "eduGivenBase"; qr -> obE1 then SurveyCategory(qr, obE1) "eduGivenCategory"; qr -> obE1.code as cdE1 then { qr -> cdE1.coding as ccE1 then { qr -> ccE1.system = 'http://loinc.org' "eduGivenSystem"; qr -> ccE1.code = '61144-2' "eduGivenCode"; qr -> ccE1.display = 'Patient education provided' "eduGivenDisplay"; } "eduGivenCodeCoding"; } "eduGivenCode"; qr -> obE1 then SetCodedValue(itE1, obE1) "eduGivenValue"; } "eduGivenObservation"; } "eduGivenAnswer"; } "eduGivenRule"; gEd.item as itE2 where (linkId = 'IMM-ED-Q2-topics') then { itE2.answer first as aE2 then { aE2 -> bundle.entry as eE2, eE2.resource = create('Observation') as obE2 then { qr -> obE2, eE2 then BuildObsBase(qr, obE2, eE2) "eduTopicsBase"; qr -> obE2 then SurveyCategory(qr, obE2) "eduTopicsCategory"; qr -> obE2.code as cdE2 then { qr -> cdE2.coding as ccE2 then { qr -> ccE2.system = 'http://loinc.org' "eduTopicsSystem"; qr -> ccE2.code = '61144-2' "eduTopicsCode"; qr -> ccE2.display = 'Education topics covered' "eduTopicsDisplay"; } "eduTopicsCodeCoding"; qr -> cdE2.text = 'Education topics covered' "eduTopicsCodeText"; } "eduTopicsCode"; aE2.value as v -> obE2.value = v "eduTopicsValue"; } "eduTopicsObservation"; } "eduTopicsAnswer"; } "eduTopicsRule"; gEd.item as itE3 where (linkId = 'IMM-ED-Q3-next-visit') then { itE3.answer first as aE3 then { aE3 -> bundle.entry as eE3, eE3.resource = create('Observation') as obE3 then { qr -> obE3, eE3 then BuildObsBase(qr, obE3, eE3) "nextVisitToldBase"; qr -> obE3 then SurveyCategory(qr, obE3) "nextVisitToldCategory"; qr -> obE3.code as cdE3 then { qr -> cdE3.coding as ccE3 then { qr -> ccE3.system = 'http://loinc.org' "nextVisitToldSystem"; qr -> ccE3.code = '57177-3' "nextVisitToldCode"; qr -> ccE3.display = 'Follow-up plan' "nextVisitToldDisplay"; } "nextVisitToldCodeCoding"; qr -> cdE3.text = 'Next visit date communicated to caregiver' "nextVisitToldCodeText"; } "nextVisitToldCode"; qr -> obE3 then SetCodedValue(itE3, obE3) "nextVisitToldValue"; } "nextVisitToldObservation"; } "nextVisitToldAnswer"; } "nextVisitToldRule"; // Appointment.start is an instant, so a date-only answer is carried on // requestedPeriod instead. gEd.item as itE4 where (linkId = 'IMM-ED-Q4-next-visit-date') then { itE4.answer first as aE4 then { aE4 -> bundle.entry as eE4, eE4.resource = create('Appointment') as appt then { // One proposed appointment per (child, requested date). aE4.value as dvAp -> appt.identifier as idAp then { qr -> idAp.system = 'https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell' "apptCellSystem"; dvAp -> idAp.value = append('IMM-ED-Q4-next-visit-date@', dvAp) "apptCellValue"; } "apptCellIdentifier"; qr.subject as subjAp then { subjAp.reference as prefAp then { aE4.value as dvAp2 -> eE4.request as rqAp then { qr -> rqAp.method = 'POST' "apptReqMethod"; qr -> rqAp.url = 'Appointment' "apptReqUrl"; qr -> rqAp.ifNoneExist = append('actor=', prefAp, '&identifier=https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell|IMM-ED-Q4-next-visit-date@', dvAp2) "apptIfNoneExist"; } "apptReq"; } "apptPatientRef"; } "apptSubject"; qr -> appt.id = uuid() "apptId"; qr -> appt.status = 'proposed' "apptStatus"; qr -> appt.description = 'Next scheduled immunisation visit (MOH 510)' "apptDescription"; qr.subject as s -> appt.subject = s "apptSubject"; qr -> appt.participant as prt then { qr -> prt.status = 'needs-action' "apptParticipantStatus"; qr.subject as s -> prt.actor = s "apptParticipantActor"; } "apptParticipant"; aE4.value as dv -> appt.requestedPeriod as rp then { dv -> rp.start = cast(dv, 'dateTime') "apptRequestedStart"; } "apptRequestedPeriod"; } "appointmentResource"; } "nextVisitDateAnswer"; } "nextVisitDateRule"; } "educationGroup"; // ---------------------------------------------------------------- AE Remarks qr.item as gRem where (linkId = 'IMM-group-remarks') then { gRem.item as itAe where (linkId = '48767-8') then { itAe.answer first as aAe then { aAe -> bundle.entry as eAe, eAe.resource = create('Observation') as obAe then { qr -> obAe, eAe then BuildObsBase(qr, obAe, eAe) "remarksBase"; qr -> obAe then SurveyCategory(qr, obAe) "remarksCategory"; qr -> obAe.code as cdAe then { qr -> cdAe.coding as ccAe then { qr -> ccAe.system = 'http://loinc.org' "remarksSystem"; qr -> ccAe.code = '48767-8' "remarksCode"; qr -> ccAe.display = 'Annotation comment' "remarksDisplay"; } "remarksCodeCoding"; qr -> cdAe.text = 'MOH 510 register remarks' "remarksCodeText"; } "remarksCode"; aAe.value as v -> obAe.value = v "remarksValue"; } "remarksObservation"; } "remarksAnswer"; } "remarksRule"; } "remarksGroup"; } // ---------------------------------------------------------------- helper groups // Plain POST, deliberately not a conditional create. These are per-visit facts, // so the key would have to be (cell, visit) -- and qr.authored carries a // "+03:00" offset that cannot go into an ifNoneExist query string unencoded. // Consequence: extracting the SAME response twice duplicates its Observations. // Populate never fills these sections, so the populate/extract loop is // unaffected; only a repeated submission of one response is. group BuildObsBase(source qr : QR, target obs : Observation, target entry) { qr -> entry.request as rq then { qr -> rq.method = 'POST' "obsReqMethod"; qr -> rq.url = 'Observation' "obsReqUrl"; } "obsReq"; qr -> obs.id = uuid() "obsId"; qr -> obs.status = 'final' "obsStatus"; qr.subject as s -> obs.subject = s "obsSubject"; qr.encounter as e -> obs.encounter = e "obsEncounter"; qr.authored as t -> obs.effective = t "obsEffective"; // qr.id is already type-qualified ("QuestionnaireResponse/1008") when the // response is read from the server, so prepending the type -- or using // reference() -- yields a doubled reference. qr.id as qid -> obs.derivedFrom = create('Reference') as dr then { qid -> dr.reference = qid "obsDerivedRef"; } "obsDerivedFrom"; } // A register cell -- (child, column) -- is the natural key for everything below. // The paper form has exactly one BCG box per child, so re-submitting a // pre-populated form must not add a second one. Each resource therefore carries // its linkId as a business identifier and is emitted as a conditional create. group BuildImm(source qr : QR, source it, source a, target imm : Immunization, target entry) { it.linkId as lk -> imm.identifier as idc then { qr -> idc.system = 'https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell' "immCellSystem"; lk -> idc.value = lk "immCellValue"; } "immCellIdentifier"; qr.subject as subjImm then { subjImm.reference as pref then { it.linkId as lk2 -> entry.request as rq then { qr -> rq.method = 'POST' "immReqMethod"; qr -> rq.url = 'Immunization' "immReqUrl"; qr -> rq.ifNoneExist = append('patient=', pref, '&identifier=https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell|', lk2) "immIfNoneExist"; } "immReq"; } "immPatientRef"; } "immSubject"; qr -> imm.id = uuid() "immId"; qr -> imm.status = 'completed' "immStatus"; // Register entries are transcribed from the child's card, so the recording // facility is not necessarily the administering one. qr -> imm.primarySource = false "immPrimarySource"; qr.subject as s -> imm.patient = s "immPatient"; qr.encounter as e -> imm.encounter = e "immEncounter"; a.value as dv -> imm.occurrence = cast(dv, 'dateTime') "immOccurrence"; } group BuildMedAdmin(source qr : QR, source it, source a, target ma : MedicationAdministration, target entry) { it.linkId as lk -> ma.identifier as idc then { qr -> idc.system = 'https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell' "maCellSystem"; lk -> idc.value = lk "maCellValue"; } "maCellIdentifier"; qr.subject as subjMa then { subjMa.reference as pref then { it.linkId as lk2 -> entry.request as rq then { qr -> rq.method = 'POST' "maReqMethod"; qr -> rq.url = 'MedicationAdministration' "maReqUrl"; qr -> rq.ifNoneExist = append('subject=', pref, '&identifier=https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell|', lk2) "maIfNoneExist"; } "maReq"; } "maPatientRef"; } "maSubject"; qr -> ma.id = uuid() "maId"; qr -> ma.status = 'completed' "maStatus"; qr.subject as s -> ma.subject = s "maSubject"; qr.encounter as e -> ma.encounter = e "maEncounter"; a.value as dv -> ma.occurence = cast(dv, 'dateTime') "maOccurence"; } group BuildRelatedPerson(source qr : QR, source it, target rp : RelatedPerson, target entry) { it.linkId as lk -> rp.identifier as idc then { qr -> idc.system = 'https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell' "rpCellSystem"; lk -> idc.value = lk "rpCellValue"; } "rpCellIdentifier"; qr.subject as subjRp then { subjRp.reference as pref then { it.linkId as lk2 -> entry.request as rq then { qr -> rq.method = 'POST' "rpReqMethod"; qr -> rq.url = 'RelatedPerson' "rpReqUrl"; qr -> rq.ifNoneExist = append('patient=', pref, '&identifier=https://fhir.slade360.co.ke/fhir/Identifier/moh510-register-cell|', lk2) "rpIfNoneExist"; } "rpReq"; } "rpPatientRef"; } "rpSubject"; qr -> rp.id = uuid() "rpId"; qr -> rp.active = true "rpActive"; qr.subject as s -> rp.patient = s "rpPatient"; } group VitalSignsCategory(source qr : QR, target obs : Observation) { qr -> obs.category as cat then { qr -> cat.coding as c then { qr -> c.system = 'http://terminology.hl7.org/CodeSystem/observation-category' "vsCatSystem"; qr -> c.code = 'vital-signs' "vsCatCode"; qr -> c.display = 'Vital Signs' "vsCatDisplay"; } "vsCatCoding"; } "vsCat"; } group SurveyCategory(source qr : QR, target obs : Observation) { qr -> obs.category as cat then { qr -> cat.coding as c then { qr -> c.system = 'http://terminology.hl7.org/CodeSystem/observation-category' "svCatSystem"; qr -> c.code = 'survey' "svCatCode"; qr -> c.display = 'Survey' "svCatDisplay"; } "svCatCoding"; } "svCat"; } group SetCodedValue(source it : Element, target obs : Observation) { it.answer as a -> obs.value = create('CodeableConcept') as c then { a.value as coding -> c.coding = coding as nc "copyCoding"; } "setCodedValue"; }
{
"resourceType": "StructureMap",
"id": "ExtractMOH510ImmunisationRegister",
"text": {
"status": "generated",
"div": "<!-- snip (see above) -->"
},
"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-11T12:18:36+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"
}
]
}
]
}
]
}
]
}
]
}