Package | smart.who.int.icvp |
Resource Type | StructureMap |
Id | DVCQRtoDVCLM |
FHIR Version | R4 |
Source | http://smart.who.int/icvp/https://build.fhir.org/ig/WorldHealthOrganization/smart-icvp/StructureMap-DVCQRtoDVCLM.html |
URL | http://smart.who.int/icvp/StructureMap/DVCQRtoDVCLM |
Version | 0.1.0 |
Status | draft |
Date | 2025-07-15T19:22:42+00:00 |
Name | DVCQRtoDVCLM |
Authority | who |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
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"; }
{ "resourceType": "StructureMap", "id": "DVCQRtoDVCLM", "text": { "status": "generated", "div": "<!-- snip (see above) -->" }, "url": "http://smart.who.int/icvp/StructureMap/DVCQRtoDVCLM", "version": "0.1.0", "name": "DVCQRtoDVCLM", "status": "draft", "date": "2025-07-15T19:22:42+00:00", "publisher": "WHO", "contact": [ { "name": "WHO", "telecom": [ { "system": "url", "value": "http://who.int" } ] } ], "structure": [ { "url": "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse", "mode": "source", "alias": "QuestionnaireResponse" }, { "url": "http://smart.who.int/icvp/StructureDefinition/ModelDVC", "mode": "target", "alias": "DVCLogicalModel" }, { "url": "http://smart.who.int/icvp/StructureDefinition/ModelVaccineDetails", "mode": "target", "alias": "ModelVaccineDetails" }, { "url": "http://smart.who.int/icvp/StructureDefinition/DVCPayload", "mode": "target", "alias": "DVCClaim" } ], "group": [ { "name": "DVCQRtoDVCLM", "typeMode": "none", "input": [ { "name": "qr", "type": "QuestionnaireResponse", "mode": "source" }, { "name": "lm", "type": "DVCLogicalModel", "mode": "target" } ], "rule": [ { "name": "rule1b", "source": [ { "context": "qr", "element": "item", "variable": "item", "condition": "linkId.value in ('name')" } ], "rule": [ { "name": "rule1a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule1", "source": [ { "context": "answer", "element": "value", "variable": "name" } ], "target": [ { "context": "lm", "contextType": "variable", "element": "name", "transform": "copy", "parameter": [ { "valueId": "name" } ] } ] } ] } ] }, { "name": "rule2b", "source": [ { "context": "qr", "element": "item", "variable": "item", "condition": "linkId.value in ('dob')" } ], "rule": [ { "name": "rule2a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule2", "source": [ { "context": "answer", "element": "value", "variable": "dob" } ], "target": [ { "context": "lm", "contextType": "variable", "element": "dob", "transform": "copy", "parameter": [ { "valueId": "dob" } ] } ] } ] } ] }, { "name": "rule3b", "source": [ { "context": "qr", "element": "item", "variable": "item", "condition": "linkId.value in ('sex')" } ], "rule": [ { "name": "rule3a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule3", "source": [ { "context": "answer", "element": "value", "variable": "sex" } ], "target": [ { "context": "lm", "contextType": "variable", "element": "sex", "transform": "copy", "parameter": [ { "valueId": "sex" } ] } ] } ] } ] }, { "name": "rule4b", "source": [ { "context": "qr", "element": "item", "variable": "item", "condition": "linkId.value in ('nationality')" } ], "rule": [ { "name": "rule4a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule4", "source": [ { "context": "answer", "element": "value", "variable": "nationality" } ], "target": [ { "context": "lm", "contextType": "variable", "element": "nationality", "transform": "copy", "parameter": [ { "valueId": "nationality" } ] } ] } ] } ] }, { "name": "rule5b", "source": [ { "context": "qr", "element": "item", "variable": "item", "condition": "linkId.value in ('nid')" } ], "rule": [ { "name": "rule5a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule5", "source": [ { "context": "answer", "element": "value", "variable": "nid" } ], "target": [ { "context": "lm", "contextType": "variable", "element": "nid", "transform": "copy", "parameter": [ { "valueId": "nid" } ] } ] } ] } ] }, { "name": "rule6b", "source": [ { "context": "qr", "element": "item", "variable": "item", "condition": "linkId.value in ('guardian')" } ], "rule": [ { "name": "rule6a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule6", "source": [ { "context": "answer", "element": "value", "variable": "guardian" } ], "target": [ { "context": "lm", "contextType": "variable", "element": "guardian", "transform": "copy", "parameter": [ { "valueId": "guardian" } ] } ] } ] } ] }, { "name": "rule7", "source": [ { "context": "qr", "element": "item", "variable": "item", "condition": "linkId.value in ('vaccineDetails')" } ], "target": [ { "context": "lm", "contextType": "variable", "element": "vaccineDetails", "variable": "v" } ], "dependent": [ { "name": "mapVaccineDetails", "variable": [ "item", "v" ] } ] } ] }, { "name": "mapVaccineDetails", "typeMode": "none", "input": [ { "name": "s", "type": "BackboneElement", "mode": "source" }, { "name": "v", "type": "ModelVaccineDetails", "mode": "target" } ], "rule": [ { "name": "rule7b", "source": [ { "context": "s", "element": "item", "variable": "item", "condition": "linkId.value in ('doseNumber')" } ], "rule": [ { "name": "rule7a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule7", "source": [ { "context": "answer", "element": "value", "variable": "doseNumber" } ], "target": [ { "context": "v", "contextType": "variable", "element": "doseNumber", "transform": "copy", "parameter": [ { "valueId": "doseNumber" } ] } ] } ] } ] }, { "name": "rule8b", "source": [ { "context": "s", "element": "item", "variable": "item", "condition": "linkId.value in ('disease')" } ], "rule": [ { "name": "rule8a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule8", "source": [ { "context": "answer", "element": "value", "variable": "disease" } ], "target": [ { "context": "v", "contextType": "variable", "element": "disease", "transform": "copy", "parameter": [ { "valueId": "disease" } ] } ] } ] } ] }, { "name": "rule9b", "source": [ { "context": "s", "element": "item", "variable": "item", "condition": "linkId.value in ('vaccineClassification')" } ], "rule": [ { "name": "rule9a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule9", "source": [ { "context": "answer", "element": "value", "variable": "vaccine" } ], "target": [ { "context": "v", "contextType": "variable", "element": "vaccineClassification", "transform": "copy", "parameter": [ { "valueId": "vaccine" } ] } ] } ] } ] }, { "name": "rule10b", "source": [ { "context": "s", "element": "item", "variable": "item", "condition": "linkId.value in ('vaccineTradeItem')" } ], "rule": [ { "name": "rule10a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule10", "source": [ { "context": "answer", "element": "value", "variable": "vaccine" } ], "target": [ { "context": "v", "contextType": "variable", "element": "vaccineTradeItem", "transform": "copy", "parameter": [ { "valueId": "vaccine" } ] } ] } ] } ] }, { "name": "rule11b", "source": [ { "context": "s", "element": "item", "variable": "item", "condition": "linkId.value in ('date')" } ], "rule": [ { "name": "rule11a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule11", "source": [ { "context": "answer", "element": "value", "variable": "date" } ], "target": [ { "context": "v", "contextType": "variable", "element": "date", "transform": "copy", "parameter": [ { "valueId": "date" } ] } ] } ] } ] }, { "name": "rule12b", "source": [ { "context": "s", "element": "item", "variable": "item", "condition": "linkId.value in ('clinicianName')" } ], "rule": [ { "name": "rule12a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule12", "source": [ { "context": "answer", "element": "value", "variable": "clinicianName" } ], "target": [ { "context": "v", "contextType": "variable", "element": "clinicianName", "transform": "copy", "parameter": [ { "valueId": "clinicianName" } ] } ] } ] } ] }, { "name": "rule13b", "source": [ { "context": "s", "element": "item", "variable": "item", "condition": "linkId.value in ('manufacturerId')" } ], "rule": [ { "name": "rule13a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule13", "source": [ { "context": "answer", "element": "value", "variable": "mid" } ], "target": [ { "context": "v", "contextType": "variable", "element": "manufacturerId", "transform": "copy", "parameter": [ { "valueId": "mid" } ] } ] } ] } ] }, { "name": "rule14b", "source": [ { "context": "s", "element": "item", "variable": "item", "condition": "linkId.value in ('manufacturer')" } ], "rule": [ { "name": "rule14a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule14", "source": [ { "context": "answer", "element": "value", "variable": "manufacturer" } ], "target": [ { "context": "v", "contextType": "variable", "element": "manufacturer", "transform": "copy", "parameter": [ { "valueId": "manufacturer" } ] } ] } ] } ] }, { "name": "rule15b", "source": [ { "context": "s", "element": "item", "variable": "item", "condition": "linkId.value in ('batchNo')" } ], "rule": [ { "name": "rule15a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule15", "source": [ { "context": "answer", "element": "value", "variable": "batchNo" } ], "target": [ { "context": "v", "contextType": "variable", "element": "batchNo", "transform": "copy", "parameter": [ { "valueId": "batchNo" } ] } ] } ] } ] }, { "name": "rule19", "source": [ { "context": "s", "element": "item", "variable": "item", "condition": "linkId.value in ('validityPeriod')" } ], "rule": [ { "name": "rule18", "source": [ { "context": "item" } ], "target": [ { "context": "v", "contextType": "variable", "element": "validityPeriod", "variable": "period" } ], "rule": [ { "name": "rule16b", "source": [ { "context": "item", "element": "item", "variable": "item", "condition": "linkId.value in ('startDate')" } ], "rule": [ { "name": "rule16a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule16", "source": [ { "context": "answer", "element": "validityPeriod", "variable": "start" } ], "target": [ { "context": "period", "contextType": "variable", "element": "start", "transform": "copy", "parameter": [ { "valueId": "start" } ] } ] } ] } ] }, { "name": "rule17b", "source": [ { "context": "item", "element": "item", "variable": "item", "condition": "linkId.value in ('endDate')" } ], "rule": [ { "name": "rule17a", "source": [ { "context": "item", "element": "answer", "variable": "answer" } ], "rule": [ { "name": "rule17", "source": [ { "context": "answer", "element": "validityPeriod", "variable": "end" } ], "target": [ { "context": "period", "contextType": "variable", "element": "end", "transform": "copy", "parameter": [ { "valueId": "end" } ] } ] } ] } ] } ] } ] } ] } ] }