Package | who.ddcc |
Resource Type | StructureMap |
Id | QRespToVSCoreDataSet |
FHIR Version | R4 |
Source | http://smart.who.int/ddcc/https://build.fhir.org/ig/WorldHealthOrganization/ddcc/StructureMap-QRespToVSCoreDataSet.html |
URL | http://smart.who.int/ddcc/StructureMap/QRespToVSCoreDataSet |
Version | 1.0.0 |
Status | draft |
Date | 2025-06-24T09:07:32+00:00 |
Name | QRespToVSCoreDataSet |
Realm | uv |
Authority | who |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureMap QRespToVSCoreDataSet
map "http://smart.who.int/ddcc/StructureMap/QRespToVSCoreDataSet" = "QRespToVSCoreDataSet" uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" alias QResp as source uses "http://smart.who.int/ddcc/StructureDefinition/DDCCCoreDataSetVSCoC" alias DDCC as target group QRespToCoreDataSet(source qr : QResp, target ddcc : DDCC) { qr as src then QRespToHeader(src, ddcc) "set header content"; qr as src -> ddcc.vaccination as vaccination then QRespToVaccination(src, vaccination) "set vaccination content"; qr as src -> ddcc.certificate as certificate then QRespToCertificate(src, certificate) "set certificate content"; } group QRespToHeader(source qr, target ddcc) { qr.item as item then { item.answer first as answer where item.linkId = 'name' then { answer.valueString as content -> ddcc.name = content "set name"; } "first answser for name"; item.answer first as answer where item.linkId = 'birthDate' then { answer.valueDate as content -> ddcc.birthDate = content "set birthDate"; } "first answer for birthDate"; item.answer first as answer where item.linkId = 'identifier' -> ddcc.identifier as identifier then { answer.valueString as content -> identifier.value = content "set identifier"; } "first answer for identifier"; item.answer first as answer where item.linkId = 'sex' then { answer.valueCoding as coding then { coding.code as content -> ddcc.sex = content "set sex"; } "process coding"; } "first answer for sex"; } "header items"; } group QRespToVaccination(source qr, target vaccination) { qr.item as item then { item.answer first as answer where item.linkId = 'vaccine' then { answer.valueCoding as content -> vaccination.vaccine = content "set vaccine"; } "first answer for vaccine"; item.answer first as answer where item.linkId = 'brand' then { answer.valueCoding as content -> vaccination.brand = content "set brand"; } "first answer for brand"; item.answer first as answer where item.linkId = 'manufacturer' then { answer.valueCoding as content -> vaccination.manufacturer = content "set manufacturer"; } "first answer for manufacturer"; item.answer first as answer where item.linkId = 'ma_holder' then { answer.valueCoding as content -> vaccination.maholder = content "set maholder"; } "first answer for maholder"; item.answer first as answer where item.linkId = 'lot' then { answer.valueString as content -> vaccination.lot = content "set lot"; } "first answser for lot"; item.answer first as answer where item.linkId = 'date' then { answer.valueDate as content -> vaccination.date = content "set date"; } "first answer for date"; item.answer first as answer where item.linkId = 'vaccine_valid' then { answer.valueDate as content -> vaccination.validFrom = content "set validFrom"; } "first answer for validFrom"; item.answer first as answer where item.linkId = 'dose' then { answer.valueInteger as content -> vaccination.dose = content "set dose"; } "first answer for dose"; item.answer first as answer where item.linkId = 'total_doses' then { answer.valueInteger as content -> vaccination.totalDoses = content "set totalDoses"; } "first answer for totalDoses"; item.answer first as answer where item.linkId = 'country' then { answer.valueCoding as content -> vaccination.country = content "set country"; } "first answer for country"; item.answer first as answer where item.linkId = 'centre' then { answer.valueString as content -> vaccination.centre = content "set centre"; } "first answser for centre"; item.answer first as answer where item.linkId = 'hw' -> vaccination.practitioner as identifier then { answer.valueString as content -> identifier.value = content "set practitioner"; } "first answser for practitioner"; item.answer first as answer where item.linkId = 'disease' then { answer.valueCoding as content -> vaccination.disease = content "set disease"; } "first answer for disease"; item.answer first as answer where item.linkId = 'due_date' then { answer.valueDate as content -> vaccination.nextDose = content "set nextDose"; } "first answer for nextDose"; } "vaccination items"; } group QRespToPeriod(source qr, target period) { qr.item as item then { item.answer first as answer where item.linkId = 'valid_from' then { answer.valueDate as content -> period.start = content "set valid_from"; } "first answer for valid_from"; item.answer first as answer where item.linkId = 'valid_until' then { answer.valueDate as content -> period.end = content "set valid_until"; } "first answer for valid_until"; } "vaccination validity items"; } group QRespToCertificate(source qr, target certificate) { qr.item as item then { item.answer first as answer where item.linkId = 'pha' -> certificate.issuer as issuer then { answer.valueString as content -> issuer.identifier as identifier then { content as value -> identifier.value = value "set issuer identifier"; } "set issuer"; } "first answser for hcid"; item.answer first as answer where item.linkId = 'hcid' -> certificate.hcid as hcid then { answer.valueString as content -> hcid.value = content, certificate.version = 'RC2' "set hcid and version"; } "first answser for hcid"; } "certificate items"; qr as src -> certificate.period as period then QRespToPeriod(src, period) "set vaccination period"; }
{ "resourceType": "StructureMap", "id": "QRespToVSCoreDataSet", "text": { "status": "generated", "div": "<!-- snip (see above) -->" }, "url": "http://smart.who.int/ddcc/StructureMap/QRespToVSCoreDataSet", "version": "1.0.0", "name": "QRespToVSCoreDataSet", "status": "draft", "date": "2025-06-24T09:07:32+00:00", "publisher": "WHO", "contact": [ { "name": "WHO", "telecom": [ { "system": "url", "value": "http://who.int" } ] } ], "jurisdiction": [ { "coding": [ { "system": "http://unstats.un.org/unsd/methods/m49/m49.htm", "code": "001" } ] } ], "structure": [ { "url": "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse", "mode": "source", "alias": "QResp" }, { "url": "http://smart.who.int/ddcc/StructureDefinition/DDCCCoreDataSetVSCoC", "mode": "target", "alias": "DDCC" } ], "group": [ { "name": "QRespToCoreDataSet", "typeMode": "none", "input": [ { "name": "qr", "type": "QResp", "mode": "source" }, { "name": "ddcc", "type": "DDCC", "mode": "target" } ], "rule": [ { "name": "set header content", "source": [ { "context": "qr", "variable": "src" } ], "dependent": [ { "name": "QRespToHeader", "variable": [ "src", "ddcc" ] } ] }, { "name": "set vaccination content", "source": [ { "context": "qr", "variable": "src" } ], "target": [ { "context": "ddcc", "contextType": "variable", "element": "vaccination", "variable": "vaccination" } ], "dependent": [ { "name": "QRespToVaccination", "variable": [ "src", "vaccination" ] } ] }, { "name": "set certificate content", "source": [ { "context": "qr", "variable": "src" } ], "target": [ { "context": "ddcc", "contextType": "variable", "element": "certificate", "variable": "certificate" } ], "dependent": [ { "name": "QRespToCertificate", "variable": [ "src", "certificate" ] } ] } ] }, { "name": "QRespToHeader", "typeMode": "none", "input": [ { "name": "qr", "mode": "source" }, { "name": "ddcc", "mode": "target" } ], "rule": [ { "name": "header items", "source": [ { "context": "qr", "element": "item", "variable": "item" } ], "rule": [ { "name": "first answser for name", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'name'" } ], "rule": [ { "name": "set name", "source": [ { "context": "answer", "element": "valueString", "variable": "content" } ], "target": [ { "context": "ddcc", "contextType": "variable", "element": "name", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for birthDate", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'birthDate'" } ], "rule": [ { "name": "set birthDate", "source": [ { "context": "answer", "element": "valueDate", "variable": "content" } ], "target": [ { "context": "ddcc", "contextType": "variable", "element": "birthDate", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for identifier", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'identifier'" } ], "target": [ { "context": "ddcc", "contextType": "variable", "element": "identifier", "variable": "identifier" } ], "rule": [ { "name": "set identifier", "source": [ { "context": "answer", "element": "valueString", "variable": "content" } ], "target": [ { "context": "identifier", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for sex", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'sex'" } ], "rule": [ { "name": "process coding", "source": [ { "context": "answer", "element": "valueCoding", "variable": "coding" } ], "rule": [ { "name": "set sex", "source": [ { "context": "coding", "element": "code", "variable": "content" } ], "target": [ { "context": "ddcc", "contextType": "variable", "element": "sex", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] } ] } ] } ] }, { "name": "QRespToVaccination", "typeMode": "none", "input": [ { "name": "qr", "mode": "source" }, { "name": "vaccination", "mode": "target" } ], "rule": [ { "name": "vaccination items", "source": [ { "context": "qr", "element": "item", "variable": "item" } ], "rule": [ { "name": "first answer for vaccine", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'vaccine'" } ], "rule": [ { "name": "set vaccine", "source": [ { "context": "answer", "element": "valueCoding", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "vaccine", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for brand", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'brand'" } ], "rule": [ { "name": "set brand", "source": [ { "context": "answer", "element": "valueCoding", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "brand", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for manufacturer", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'manufacturer'" } ], "rule": [ { "name": "set manufacturer", "source": [ { "context": "answer", "element": "valueCoding", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "manufacturer", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for maholder", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'ma_holder'" } ], "rule": [ { "name": "set maholder", "source": [ { "context": "answer", "element": "valueCoding", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "maholder", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answser for lot", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'lot'" } ], "rule": [ { "name": "set lot", "source": [ { "context": "answer", "element": "valueString", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "lot", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for date", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'date'" } ], "rule": [ { "name": "set date", "source": [ { "context": "answer", "element": "valueDate", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "date", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for validFrom", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'vaccine_valid'" } ], "rule": [ { "name": "set validFrom", "source": [ { "context": "answer", "element": "valueDate", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "validFrom", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for dose", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'dose'" } ], "rule": [ { "name": "set dose", "source": [ { "context": "answer", "element": "valueInteger", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "dose", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for totalDoses", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'total_doses'" } ], "rule": [ { "name": "set totalDoses", "source": [ { "context": "answer", "element": "valueInteger", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "totalDoses", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for country", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'country'" } ], "rule": [ { "name": "set country", "source": [ { "context": "answer", "element": "valueCoding", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "country", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answser for centre", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'centre'" } ], "rule": [ { "name": "set centre", "source": [ { "context": "answer", "element": "valueString", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "centre", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answser for practitioner", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'hw'" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "practitioner", "variable": "identifier" } ], "rule": [ { "name": "set practitioner", "source": [ { "context": "answer", "element": "valueString", "variable": "content" } ], "target": [ { "context": "identifier", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for disease", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'disease'" } ], "rule": [ { "name": "set disease", "source": [ { "context": "answer", "element": "valueCoding", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "disease", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for nextDose", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'due_date'" } ], "rule": [ { "name": "set nextDose", "source": [ { "context": "answer", "element": "valueDate", "variable": "content" } ], "target": [ { "context": "vaccination", "contextType": "variable", "element": "nextDose", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] } ] } ] }, { "name": "QRespToPeriod", "typeMode": "none", "input": [ { "name": "qr", "mode": "source" }, { "name": "period", "mode": "target" } ], "rule": [ { "name": "vaccination validity items", "source": [ { "context": "qr", "element": "item", "variable": "item" } ], "rule": [ { "name": "first answer for valid_from", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'valid_from'" } ], "rule": [ { "name": "set valid_from", "source": [ { "context": "answer", "element": "valueDate", "variable": "content" } ], "target": [ { "context": "period", "contextType": "variable", "element": "start", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] }, { "name": "first answer for valid_until", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'valid_until'" } ], "rule": [ { "name": "set valid_until", "source": [ { "context": "answer", "element": "valueDate", "variable": "content" } ], "target": [ { "context": "period", "contextType": "variable", "element": "end", "transform": "copy", "parameter": [ { "valueId": "content" } ] } ] } ] } ] } ] }, { "name": "QRespToCertificate", "typeMode": "none", "input": [ { "name": "qr", "mode": "source" }, { "name": "certificate", "mode": "target" } ], "rule": [ { "name": "certificate items", "source": [ { "context": "qr", "element": "item", "variable": "item" } ], "rule": [ { "name": "first answser for hcid", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'pha'" } ], "target": [ { "context": "certificate", "contextType": "variable", "element": "issuer", "variable": "issuer" } ], "rule": [ { "name": "set issuer", "source": [ { "context": "answer", "element": "valueString", "variable": "content" } ], "target": [ { "context": "issuer", "contextType": "variable", "element": "identifier", "variable": "identifier" } ], "rule": [ { "name": "set issuer identifier", "source": [ { "context": "content", "variable": "value" } ], "target": [ { "context": "identifier", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueId": "value" } ] } ] } ] } ] }, { "name": "first answser for hcid", "source": [ { "context": "item", "element": "answer", "listMode": "first", "variable": "answer", "condition": "item.linkId = 'hcid'" } ], "target": [ { "context": "certificate", "contextType": "variable", "element": "hcid", "variable": "hcid" } ], "rule": [ { "name": "set hcid and version", "source": [ { "context": "answer", "element": "valueString", "variable": "content" } ], "target": [ { "context": "hcid", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueId": "content" } ] }, { "context": "certificate", "contextType": "variable", "element": "version", "transform": "copy", "parameter": [ { "valueString": "RC2" } ] } ] } ] } ] }, { "name": "set vaccination period", "source": [ { "context": "qr", "variable": "src" } ], "target": [ { "context": "certificate", "contextType": "variable", "element": "period", "variable": "period" } ], "dependent": [ { "name": "QRespToPeriod", "variable": [ "src", "period" ] } ] } ] } ] }