Package | smart.who.int.icvp |
Resource Type | StructureMap |
Id | DVCClaimtoDVCLM |
FHIR Version | R4 |
Source | http://smart.who.int/icvp/https://build.fhir.org/ig/WorldHealthOrganization/smart-icvp/StructureMap-DVCClaimtoDVCLM.html |
URL | http://smart.who.int/icvp/StructureMap/DVCClaimtoDVCLM |
Version | 0.1.0 |
Status | draft |
Date | 2025-07-15T19:22:42+00:00 |
Name | DVCClaimtoDVCLM |
Authority | who |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureMap DVCClaimtoDVCLM
map "http://smart.who.int/icvp/StructureMap/DVCClaimtoDVCLM" = "DVCClaimtoDVCLM" uses "http://smart.who.int/icvp/StructureDefinition/DVCPayload" alias DVCPayload as source uses "http://smart.who.int/icvp/StructureDefinition/ModelDVC" alias DVCModel as target uses "http://smart.who.int/icvp/StructureDefinition/ModelVaccineDetails" alias ModelVaccineDetails as target group DVCClaimtoDVCLM(source src : DVCPayload, target tgt : DVCModel) { src.n as name -> tgt.name = name "rule1"; src.dob as dob -> tgt.dob = dob "rule2"; src.s as sex -> tgt.sex = sex "rule3"; src.ntl as nationality -> tgt.nationality = nationality "rule4"; src.nid as id -> tgt.nid = id "rule5"; src.gn as gName -> tgt.guardian = gName "rule6"; src.v as v -> tgt.vaccineDetails as tv then mapVaccineDetails(v, tv) "rule7"; } group mapVaccineDetails(source src : BackboneElement, target tgt : ModelVaccineDetails) { src.tg as tg -> create('Coding') as coding, coding.code = tg, coding.system = 'http://id.who.int/icd/release/11/mms', tgt.disease = coding "rule8"; src.vp as vp -> create('Coding') as coding, coding.code = vp, coding.system = 'http://id.who.int/icd/release/11/mms', create('CodeableConcept') as code, code.coding = coding, tgt.vaccineClassification = code "rule9"; src.mp as mp -> create('Identifier') as id, id.value = mp, tgt.vaccineTradeItem = id "rule10"; src.ma as ma -> tgt.manufacturer = ma "rule11"; src.mid as mid -> create('Identifier') as id, id.value = mid, tgt.manufacturerId = id "rule12"; src.dt as dt -> tgt.date = dt "rule13"; src.bo as bo -> tgt.batchNo = bo "rule14"; src -> create('Period') as period then { src.vls as start -> period.start = start "rule15"; src.vle as end -> period.end = end "rule16"; src -> tgt.validityPeriod = period "rule17"; } "rule18"; src.cn as cn -> tgt.clinicianName = cn "rule19"; src.is as is -> tgt.issuer as issuer, issuer.reference = append('Organization/', is) "rule21"; src.dn as dn -> create('Coding') as coding, coding.code = dn, coding.system = 'http://smart.who.int/icvp/CodeSystem/doseNumber', create('CodeableConcept') as code, code.coding = coding, tgt.doseNumber = code "rule20"; } // helper function group generateNarrativeText(source src : Section, target text : string) { src -> text.status = 'empty' "setstatus"; src -> text.div = '<div>narrative not available</div>' "setdiv"; } group humanNameToHumanName(source sourceName, target targetName : HumanName) { sourceName.use as use -> targetName.use = use "CopyUse"; sourceName.text as text -> targetName.text = text "CopyText"; sourceName.family as family -> targetName.family = family "CopyFamily"; sourceName.given as given -> targetName.given = given "CopyGiven"; sourceName.prefix as prefix -> targetName.prefix = prefix "CopyPrefix"; sourceName.suffix as suffix -> targetName.suffix = suffix "CopySuffix"; // Copy the period using the previously defined group function sourceName.period as sourcePeriod -> targetName.period as targetPeriod then { sourcePeriod -> sourcePeriod then periodToPeriod(sourcePeriod, targetPeriod) "CopyPeriod"; } "copyPeriod"; } group periodToPeriod(source sourcePeriod, target targetPeriod : Period) { sourcePeriod.start as start -> targetPeriod.start = start "set period start"; sourcePeriod.end as end -> targetPeriod.end = end "set period end"; }
{ "resourceType": "StructureMap", "id": "DVCClaimtoDVCLM", "text": { "status": "generated", "div": "<!-- snip (see above) -->" }, "url": "http://smart.who.int/icvp/StructureMap/DVCClaimtoDVCLM", "version": "0.1.0", "name": "DVCClaimtoDVCLM", "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://smart.who.int/icvp/StructureDefinition/DVCPayload", "mode": "source", "alias": "DVCPayload" }, { "url": "http://smart.who.int/icvp/StructureDefinition/ModelDVC", "mode": "target", "alias": "DVCModel" }, { "url": "http://smart.who.int/icvp/StructureDefinition/ModelVaccineDetails", "mode": "target", "alias": "ModelVaccineDetails" } ], "group": [ { "name": "DVCClaimtoDVCLM", "typeMode": "none", "input": [ { "name": "src", "type": "DVCPayload", "mode": "source" }, { "name": "tgt", "type": "DVCModel", "mode": "target" } ], "rule": [ { "name": "rule1", "source": [ { "context": "src", "element": "n", "variable": "name" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "name", "transform": "copy", "parameter": [ { "valueId": "name" } ] } ] }, { "name": "rule2", "source": [ { "context": "src", "element": "dob", "variable": "dob" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "dob", "transform": "copy", "parameter": [ { "valueId": "dob" } ] } ] }, { "name": "rule3", "source": [ { "context": "src", "element": "s", "variable": "sex" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "sex", "transform": "copy", "parameter": [ { "valueId": "sex" } ] } ] }, { "name": "rule4", "source": [ { "context": "src", "element": "ntl", "variable": "nationality" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "nationality", "transform": "copy", "parameter": [ { "valueId": "nationality" } ] } ] }, { "name": "rule5", "source": [ { "context": "src", "element": "nid", "variable": "id" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "nid", "transform": "copy", "parameter": [ { "valueId": "id" } ] } ] }, { "name": "rule6", "source": [ { "context": "src", "element": "gn", "variable": "gName" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "guardian", "transform": "copy", "parameter": [ { "valueId": "gName" } ] } ] }, { "name": "rule7", "source": [ { "context": "src", "element": "v", "variable": "v" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "vaccineDetails", "variable": "tv" } ], "dependent": [ { "name": "mapVaccineDetails", "variable": [ "v", "tv" ] } ] } ] }, { "name": "mapVaccineDetails", "typeMode": "none", "input": [ { "name": "src", "type": "BackboneElement", "mode": "source" }, { "name": "tgt", "type": "ModelVaccineDetails", "mode": "target" } ], "rule": [ { "name": "rule8", "source": [ { "context": "src", "element": "tg", "variable": "tg" } ], "target": [ { "contextType": "variable", "variable": "coding", "transform": "create", "parameter": [ { "valueString": "Coding" } ] }, { "context": "coding", "contextType": "variable", "element": "code", "transform": "copy", "parameter": [ { "valueId": "tg" } ] }, { "context": "coding", "contextType": "variable", "element": "system", "transform": "copy", "parameter": [ { "valueString": "http://id.who.int/icd/release/11/mms" } ] }, { "context": "tgt", "contextType": "variable", "element": "disease", "transform": "copy", "parameter": [ { "valueId": "coding" } ] } ] }, { "name": "rule9", "source": [ { "context": "src", "element": "vp", "variable": "vp" } ], "target": [ { "contextType": "variable", "variable": "coding", "transform": "create", "parameter": [ { "valueString": "Coding" } ] }, { "context": "coding", "contextType": "variable", "element": "code", "transform": "copy", "parameter": [ { "valueId": "vp" } ] }, { "context": "coding", "contextType": "variable", "element": "system", "transform": "copy", "parameter": [ { "valueString": "http://id.who.int/icd/release/11/mms" } ] }, { "contextType": "variable", "variable": "code", "transform": "create", "parameter": [ { "valueString": "CodeableConcept" } ] }, { "context": "code", "contextType": "variable", "element": "coding", "transform": "copy", "parameter": [ { "valueId": "coding" } ] }, { "context": "tgt", "contextType": "variable", "element": "vaccineClassification", "transform": "copy", "parameter": [ { "valueId": "code" } ] } ] }, { "name": "rule10", "source": [ { "context": "src", "element": "mp", "variable": "mp" } ], "target": [ { "contextType": "variable", "variable": "id", "transform": "create", "parameter": [ { "valueString": "Identifier" } ] }, { "context": "id", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueId": "mp" } ] }, { "context": "tgt", "contextType": "variable", "element": "vaccineTradeItem", "transform": "copy", "parameter": [ { "valueId": "id" } ] } ] }, { "name": "rule11", "source": [ { "context": "src", "element": "ma", "variable": "ma" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "manufacturer", "transform": "copy", "parameter": [ { "valueId": "ma" } ] } ] }, { "name": "rule12", "source": [ { "context": "src", "element": "mid", "variable": "mid" } ], "target": [ { "contextType": "variable", "variable": "id", "transform": "create", "parameter": [ { "valueString": "Identifier" } ] }, { "context": "id", "contextType": "variable", "element": "value", "transform": "copy", "parameter": [ { "valueId": "mid" } ] }, { "context": "tgt", "contextType": "variable", "element": "manufacturerId", "transform": "copy", "parameter": [ { "valueId": "id" } ] } ] }, { "name": "rule13", "source": [ { "context": "src", "element": "dt", "variable": "dt" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "date", "transform": "copy", "parameter": [ { "valueId": "dt" } ] } ] }, { "name": "rule14", "source": [ { "context": "src", "element": "bo", "variable": "bo" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "batchNo", "transform": "copy", "parameter": [ { "valueId": "bo" } ] } ] }, { "name": "rule18", "source": [ { "context": "src" } ], "target": [ { "contextType": "variable", "variable": "period", "transform": "create", "parameter": [ { "valueString": "Period" } ] } ], "rule": [ { "name": "rule15", "source": [ { "context": "src", "element": "vls", "variable": "start" } ], "target": [ { "context": "period", "contextType": "variable", "element": "start", "transform": "copy", "parameter": [ { "valueId": "start" } ] } ] }, { "name": "rule16", "source": [ { "context": "src", "element": "vle", "variable": "end" } ], "target": [ { "context": "period", "contextType": "variable", "element": "end", "transform": "copy", "parameter": [ { "valueId": "end" } ] } ] }, { "name": "rule17", "source": [ { "context": "src" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "validityPeriod", "transform": "copy", "parameter": [ { "valueId": "period" } ] } ] } ] }, { "name": "rule19", "source": [ { "context": "src", "element": "cn", "variable": "cn" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "clinicianName", "transform": "copy", "parameter": [ { "valueId": "cn" } ] } ] }, { "name": "rule21", "source": [ { "context": "src", "element": "is", "variable": "is" } ], "target": [ { "context": "tgt", "contextType": "variable", "element": "issuer", "variable": "issuer" }, { "context": "issuer", "contextType": "variable", "element": "reference", "transform": "append", "parameter": [ { "valueString": "Organization/" }, { "valueId": "is" } ] } ] }, { "name": "rule20", "source": [ { "context": "src", "element": "dn", "variable": "dn" } ], "target": [ { "contextType": "variable", "variable": "coding", "transform": "create", "parameter": [ { "valueString": "Coding" } ] }, { "context": "coding", "contextType": "variable", "element": "code", "transform": "copy", "parameter": [ { "valueId": "dn" } ] }, { "context": "coding", "contextType": "variable", "element": "system", "transform": "copy", "parameter": [ { "valueString": "http://smart.who.int/icvp/CodeSystem/doseNumber" } ] }, { "contextType": "variable", "variable": "code", "transform": "create", "parameter": [ { "valueString": "CodeableConcept" } ] }, { "context": "code", "contextType": "variable", "element": "coding", "transform": "copy", "parameter": [ { "valueId": "coding" } ] }, { "context": "tgt", "contextType": "variable", "element": "doseNumber", "transform": "copy", "parameter": [ { "valueId": "code" } ] } ] } ] }, { "name": "generateNarrativeText", "typeMode": "none", "documentation": "helper function", "input": [ { "name": "src", "type": "Section", "mode": "source" }, { "name": "text", "type": "string", "mode": "target" } ], "rule": [ { "name": "setstatus", "source": [ { "context": "src" } ], "target": [ { "context": "text", "contextType": "variable", "element": "status", "transform": "copy", "parameter": [ { "valueString": "empty" } ] } ] }, { "name": "setdiv", "source": [ { "context": "src" } ], "target": [ { "context": "text", "contextType": "variable", "element": "div", "transform": "copy", "parameter": [ { "valueString": "<div>narrative not available</div>" } ] } ] } ] }, { "name": "humanNameToHumanName", "typeMode": "none", "input": [ { "name": "sourceName", "mode": "source" }, { "name": "targetName", "type": "HumanName", "mode": "target" } ], "rule": [ { "name": "CopyUse", "source": [ { "context": "sourceName", "element": "use", "variable": "use" } ], "target": [ { "context": "targetName", "contextType": "variable", "element": "use", "transform": "copy", "parameter": [ { "valueId": "use" } ] } ] }, { "name": "CopyText", "source": [ { "context": "sourceName", "element": "text", "variable": "text" } ], "target": [ { "context": "targetName", "contextType": "variable", "element": "text", "transform": "copy", "parameter": [ { "valueId": "text" } ] } ] }, { "name": "CopyFamily", "source": [ { "context": "sourceName", "element": "family", "variable": "family" } ], "target": [ { "context": "targetName", "contextType": "variable", "element": "family", "transform": "copy", "parameter": [ { "valueId": "family" } ] } ] }, { "name": "CopyGiven", "source": [ { "context": "sourceName", "element": "given", "variable": "given" } ], "target": [ { "context": "targetName", "contextType": "variable", "element": "given", "transform": "copy", "parameter": [ { "valueId": "given" } ] } ] }, { "name": "CopyPrefix", "source": [ { "context": "sourceName", "element": "prefix", "variable": "prefix" } ], "target": [ { "context": "targetName", "contextType": "variable", "element": "prefix", "transform": "copy", "parameter": [ { "valueId": "prefix" } ] } ] }, { "name": "CopySuffix", "source": [ { "context": "sourceName", "element": "suffix", "variable": "suffix" } ], "target": [ { "context": "targetName", "contextType": "variable", "element": "suffix", "transform": "copy", "parameter": [ { "valueId": "suffix" } ] } ] }, { "name": "copyPeriod", "source": [ { "context": "sourceName", "element": "period", "variable": "sourcePeriod" } ], "target": [ { "context": "targetName", "contextType": "variable", "element": "period", "variable": "targetPeriod" } ], "rule": [ { "name": "CopyPeriod", "source": [ { "context": "sourcePeriod" } ], "target": [ { "context": "sourcePeriod", "contextType": "variable" } ], "dependent": [ { "name": "periodToPeriod", "variable": [ "sourcePeriod", "targetPeriod" ] } ] } ] } ] }, { "name": "periodToPeriod", "typeMode": "none", "input": [ { "name": "sourcePeriod", "mode": "source" }, { "name": "targetPeriod", "type": "Period", "mode": "target" } ], "rule": [ { "name": "set period start", "source": [ { "context": "sourcePeriod", "element": "start", "variable": "start" } ], "target": [ { "context": "targetPeriod", "contextType": "variable", "element": "start", "transform": "copy", "parameter": [ { "valueId": "start" } ] } ] }, { "name": "set period end", "source": [ { "context": "sourcePeriod", "element": "end", "variable": "end" } ], "target": [ { "context": "targetPeriod", "contextType": "variable", "element": "end", "transform": "copy", "parameter": [ { "valueId": "end" } ] } ] } ] } ] }