SMART ICVP
0.1.0 - ci-build
SMART ICVP, published by WHO. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-icvp/tree/main and changes regularly. See the Directory of published versions
Official URL: http://smart.who.int/icvp/StructureMap/DVCQRtoDVCLM | Version: 0.1.0 | |||
Draft as of 2024-12-11 | Computable Name: DVCQRtoDVCLM |
Generated Narrative: StructureMap DVCQRtoDVCLM
map "http://smart.who.int/icvp/StructureMap/DVCQRtoDVCLM" = "DVCQRtoDVCLM" uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" alias QuestionnaireResponse as source uses "http://smart.who.int/icvp/StructureDefinition/ModelDVC" alias DVCLogicalModel as target uses "http://smart.who.int/icvp/StructureDefinition/ModelVaccineDetails" alias ModelVaccineDetails as target uses "http://smart.who.int/icvp/StructureDefinition/DVCPayload" alias DVCClaim as target group DVCQRtoDVCLM(source qr : QuestionnaireResponse, target lm : DVCLogicalModel) { qr.item as item where linkId.value in ('name') then { item.answer as answer then { answer.value as name -> lm.name = name "rule1"; } "rule1a"; } "rule1b"; qr.item as item where linkId.value in ('dob') then { item.answer as answer then { answer.value as dob -> lm.dob = dob "rule2"; } "rule2a"; } "rule2b"; qr.item as item where linkId.value in ('sex') then { item.answer as answer then { answer.value as sex -> lm.sex = sex "rule3"; } "rule3a"; } "rule3b"; qr.item as item where linkId.value in ('nationality') then { item.answer as answer then { answer.value as nationality -> lm.nationality = nationality "rule4"; } "rule4a"; } "rule4b"; qr.item as item where linkId.value in ('nid') then { item.answer as answer then { answer.value as nid -> lm.nid = nid "rule5"; } "rule5a"; } "rule5b"; qr.item as item where linkId.value in ('guardian') then { item.answer as answer then { answer.value as guardian -> lm.guardian = guardian "rule6"; } "rule6a"; } "rule6b"; qr.item as item where linkId.value in ('vaccineDetails') -> lm.vaccineDetails as v then mapVaccineDetails(item, v) "rule7"; } group mapVaccineDetails(source s : BackboneElement, target v : ModelVaccineDetails) { s.item as item where linkId.value in ('doseNumber') then { item.answer as answer then { answer.value as doseNumber -> v.doseNumber = doseNumber "rule7"; } "rule7a"; } "rule7b"; s.item as item where linkId.value in ('disease') then { item.answer as answer then { answer.value as disease -> v.disease = disease "rule8"; } "rule8a"; } "rule8b"; s.item as item where linkId.value in ('vaccineClassification') then { item.answer as answer then { answer.value as vaccine -> v.vaccineClassification = vaccine "rule9"; } "rule9a"; } "rule9b"; s.item as item where linkId.value in ('vaccineTradeItem') then { item.answer as answer then { answer.value as vaccine -> v.vaccineTradeItem = vaccine "rule10"; } "rule10a"; } "rule10b"; s.item as item where linkId.value in ('date') then { item.answer as answer then { answer.value as date -> v.date = date "rule11"; } "rule11a"; } "rule11b"; s.item as item where linkId.value in ('clinicianName') then { item.answer as answer then { answer.value as clinicianName -> v.clinicianName = clinicianName "rule12"; } "rule12a"; } "rule12b"; s.item as item where linkId.value in ('manufacturerId') then { item.answer as answer then { answer.value as mid -> v.manufacturerId = mid "rule13"; } "rule13a"; } "rule13b"; s.item as item where linkId.value in ('manufacturer') then { item.answer as answer then { answer.value as manufacturer -> v.manufacturer = manufacturer "rule14"; } "rule14a"; } "rule14b"; s.item as item where linkId.value in ('batchNo') then { item.answer as answer then { answer.value as batchNo -> v.batchNo = batchNo "rule15"; } "rule15a"; } "rule15b"; s.item as item where linkId.value in ('validityPeriod') then { item -> v.validityPeriod as period then { item.item as item where linkId.value in ('startDate') then { item.answer as answer then { answer.validityPeriod as start -> period.start = start "rule16"; } "rule16a"; } "rule16b"; item.item as item where linkId.value in ('endDate') then { item.answer as answer then { answer.validityPeriod as end -> period.end = end "rule17"; } "rule17a"; } "rule17b"; } "rule18"; } "rule19"; }