| Package | who.ddcc |
| Resource Type | StructureMap |
| Id | DDCCtoSHC |
| FHIR Version | R4 |
| Source | http://smart.who.int/ddcc/https://build.fhir.org/ig/WorldHealthOrganization/ddcc/StructureMap-DDCCtoSHC.html |
| URL | http://smart.who.int/ddcc/StructureMap/DDCCtoSHC |
| Version | 1.0.0 |
| Status | draft |
| Date | 2025-06-24T09:07:32+00:00 |
| Name | DDCCtoSHC |
| Realm | uv |
| Authority | who |
No resources found
No resources found
Note: links and images are rebased to the (stated) source
Generated Narrative: StructureMap DDCCtoSHC
map "http://smart.who.int/ddcc/StructureMap/DDCCtoSHC" = "DDCCtoSHC" uses "http://smart.who.int/ddcc/StructureDefinition/DDCCDocument" alias DDCCDocument as source uses "http://smart.who.int/ddcc/StructureDefinition/DDCCPatient" alias DDCCPatient as source uses "http://smart.who.int/ddcc/StructureDefinition/DDCCComposition" alias DDCCComposition as source uses "http://smart.who.int/ddcc/StructureDefinition/DDCCOrganization" alias DDCCOrganization as source uses "http://smart.who.int/ddcc/StructureDefinition/DDCCCountryOfVaccination" alias DDCCCountryOfVaccination as source uses "http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineBrand" alias DDCCVaccineBrand as source uses "http://smart.who.int/ddcc/StructureDefinition/DDCCImmunization" alias DDCCImmunization as source uses "http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-vaccination-bundle-dm" alias SHCVaccinationBundleDM as target uses "http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-patient-general-dm" alias SHCPatientDM as target uses "http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-vaccination-dm" alias SHCImmunizationDM as target group DDCCtoSHC(source ddcc : DDCCDocument, target shc : SHCVaccinationBundleDM) { ddcc -> shc.type = 'collection' "set bundle type"; ddcc.entry as entry then { entry.resource : Patient first as patient then { entry -> shc.entry as entrySHC then { entry.fullUrl -> entrySHC.fullUrl = 'resource:0' "Full URL"; patient -> entrySHC.resource = create('Patient') as patientSHC then DDCCPatienttoSHC(patient, patientSHC) "Patient resource"; } "Patient entry"; } "Is Patient entry"; } "map patients"; ddcc.entry as entry then { entry.resource : Immunization first as immunization where status = 'completed' then { entry -> shc.entry as entrySHC then { entry.fullUrl -> entrySHC.fullUrl = 'resource:1' "Full URL"; immunization -> entrySHC.resource = create('Immunization') as immunizationSHC then { immunization -> immunizationSHC then DDCCImmunizationtoSHC(immunization, immunizationSHC) "Immunization"; ddcc.entry as orgEntry then { orgEntry.resource : Organization first as organization then DDCCOrganizationtoSHCImmunization(organization, immunizationSHC) "Organization entry"; } "map organizations"; } "Immunization resource"; } "Immunization entry"; } "Is Immunization entry"; } "map immunizations"; } group DDCCPatienttoSHC(source patient : DDCCPatient, target patientSHC : SHCPatientDM) { patient.name only_one as name -> patientSHC.name as nameSHC then { name.given as givenname -> nameSHC.given = givenname "Given Name"; name.family as familyname -> nameSHC.family = familyname "Family Name"; name where name.given.exists().not() and name.family.exists().not() then { name.text as text -> nameSHC.text = text "Text Name"; } "vcnameinvariant"; } "Name"; patient.birthDate as birthDate -> patientSHC.birthDate = birthDate "Birth Date"; } group DDCCImmunizationtoSHC(source immunization : DDCCImmunization, target immunizationSHC : SHCImmunizationDM) { immunization.status as status -> immunizationSHC.status = status "Status"; immunization.vaccineCode as vaccineCode -> immunizationSHC.vaccineCode as vaccineCodeSHC then { vaccineCode.coding first as coding -> vaccineCodeSHC.coding as codingSHC then MinimizeCoding(coding, codingSHC); } "VaccineCode"; immunization.patient as patient -> immunizationSHC.patient as patientSHC, patientSHC.reference = 'resource:0' "Patient"; immunization.occurrence as occurrenceDateTime -> immunizationSHC.occurrence = occurrenceDateTime "Occurrence DateTime"; immunization.extension as ext then { ext first as maholder where ext.url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineMarketAuthorization' then { maholder.valueCoding as coding -> immunizationSHC.manufacturer as tman, tman.identifier as tident then { coding.system as system -> tident.system = system; coding.code as code -> tident.value = code "value"; } "Manufacturer"; } "DDCCVaccineMarketAuthorization"; } "Extension"; immunization as src where extension.where(url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineMarketAuthorization').first().valueCoding.exists().not() then { src.manufacturer as manufacturer then { manufacturer.identifier as identifier -> immunizationSHC.manufacturer as tman, tman.identifier as tident then { identifier.system as system -> tident.system = system; identifier.value as value -> tident.value = value; }; } "Manufacturer"; } "if maholder code empty"; immunization.lotNumber as lotNumber -> immunizationSHC.lotNumber = lotNumber "Lot Number"; immunization.isSubpotent as isSubpotent where true -> immunizationSHC.isSubpotent = isSubpotent "Is Subpotent"; } group DDCCOrganizationtoSHCImmunization(source organization : DDCCOrganization, target immunizationSHC : SHCImmunizationDM) { organization.name as name -> immunizationSHC.performer as performer, performer.actor as actor, actor.display = name "Performer Actor Display"; } group MinimizeCoding(source src : Coding, target tgt : Coding) { src.system as system -> tgt.system = system; src.code as code -> tgt.code = code; }
{
"resourceType": "StructureMap",
"id": "DDCCtoSHC",
"text": {
"status": "generated",
"div": "<!-- snip (see above) -->"
},
"url": "http://smart.who.int/ddcc/StructureMap/DDCCtoSHC",
"version": "1.0.0",
"name": "DDCCtoSHC",
"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://smart.who.int/ddcc/StructureDefinition/DDCCDocument",
"mode": "source",
"alias": "DDCCDocument"
},
{
"url": "http://smart.who.int/ddcc/StructureDefinition/DDCCPatient",
"mode": "source",
"alias": "DDCCPatient"
},
{
"url": "http://smart.who.int/ddcc/StructureDefinition/DDCCComposition",
"mode": "source",
"alias": "DDCCComposition"
},
{
"url": "http://smart.who.int/ddcc/StructureDefinition/DDCCOrganization",
"mode": "source",
"alias": "DDCCOrganization"
},
{
"url": "http://smart.who.int/ddcc/StructureDefinition/DDCCCountryOfVaccination",
"mode": "source",
"alias": "DDCCCountryOfVaccination"
},
{
"url": "http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineBrand",
"mode": "source",
"alias": "DDCCVaccineBrand"
},
{
"url": "http://smart.who.int/ddcc/StructureDefinition/DDCCImmunization",
"mode": "source",
"alias": "DDCCImmunization"
},
{
"url": "http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-vaccination-bundle-dm",
"mode": "target",
"alias": "SHCVaccinationBundleDM"
},
{
"url": "http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-patient-general-dm",
"mode": "target",
"alias": "SHCPatientDM"
},
{
"url": "http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-vaccination-dm",
"mode": "target",
"alias": "SHCImmunizationDM"
}
],
"group": [
{
"name": "DDCCtoSHC",
"typeMode": "none",
"input": [
{
"name": "ddcc",
"type": "DDCCDocument",
"mode": "source"
},
{
"name": "shc",
"type": "SHCVaccinationBundleDM",
"mode": "target"
}
],
"rule": [
{
"name": "set bundle type",
"source": [
{
"context": "ddcc"
}
],
"target": [
{
"context": "shc",
"contextType": "variable",
"element": "type",
"transform": "copy",
"parameter": [
{
"valueString": "collection"
}
]
}
]
},
{
"name": "map patients",
"source": [
{
"context": "ddcc",
"element": "entry",
"variable": "entry"
}
],
"rule": [
{
"name": "Is Patient entry",
"source": [
{
"context": "entry",
"type": "Patient",
"element": "resource",
"listMode": "first",
"variable": "patient"
}
],
"rule": [
{
"name": "Patient entry",
"source": [
{
"context": "entry"
}
],
"target": [
{
"context": "shc",
"contextType": "variable",
"element": "entry",
"variable": "entrySHC"
}
],
"rule": [
{
"name": "Full URL",
"source": [
{
"context": "entry",
"element": "fullUrl"
}
],
"target": [
{
"context": "entrySHC",
"contextType": "variable",
"element": "fullUrl",
"transform": "copy",
"parameter": [
{
"valueString": "resource:0"
}
]
}
]
},
{
"name": "Patient resource",
"source": [
{
"context": "patient"
}
],
"target": [
{
"context": "entrySHC",
"contextType": "variable",
"element": "resource",
"variable": "patientSHC",
"transform": "create",
"parameter": [
{
"valueString": "Patient"
}
]
}
],
"dependent": [
{
"name": "DDCCPatienttoSHC",
"variable": [
"patient",
"patientSHC"
]
}
]
}
]
}
]
}
]
},
{
"name": "map immunizations",
"source": [
{
"context": "ddcc",
"element": "entry",
"variable": "entry"
}
],
"rule": [
{
"name": "Is Immunization entry",
"source": [
{
"context": "entry",
"type": "Immunization",
"element": "resource",
"listMode": "first",
"variable": "immunization",
"condition": "status = 'completed'"
}
],
"rule": [
{
"name": "Immunization entry",
"source": [
{
"context": "entry"
}
],
"target": [
{
"context": "shc",
"contextType": "variable",
"element": "entry",
"variable": "entrySHC"
}
],
"rule": [
{
"name": "Full URL",
"source": [
{
"context": "entry",
"element": "fullUrl"
}
],
"target": [
{
"context": "entrySHC",
"contextType": "variable",
"element": "fullUrl",
"transform": "copy",
"parameter": [
{
"valueString": "resource:1"
}
]
}
]
},
{
"name": "Immunization resource",
"source": [
{
"context": "immunization"
}
],
"target": [
{
"context": "entrySHC",
"contextType": "variable",
"element": "resource",
"variable": "immunizationSHC",
"transform": "create",
"parameter": [
{
"valueString": "Immunization"
}
]
}
],
"rule": [
{
"name": "Immunization",
"source": [
{
"context": "immunization"
}
],
"target": [
{
"context": "immunizationSHC",
"contextType": "variable"
}
],
"dependent": [
{
"name": "DDCCImmunizationtoSHC",
"variable": [
"immunization",
"immunizationSHC"
]
}
]
},
{
"name": "map organizations",
"source": [
{
"context": "ddcc",
"element": "entry",
"variable": "orgEntry"
}
],
"rule": [
{
"name": "Organization entry",
"source": [
{
"context": "orgEntry",
"type": "Organization",
"element": "resource",
"listMode": "first",
"variable": "organization"
}
],
"dependent": [
{
"name": "DDCCOrganizationtoSHCImmunization",
"variable": [
"organization",
"immunizationSHC"
]
}
]
}
]
}
]
}
]
}
]
}
]
}
]
},
{
"name": "DDCCPatienttoSHC",
"typeMode": "none",
"input": [
{
"name": "patient",
"type": "DDCCPatient",
"mode": "source"
},
{
"name": "patientSHC",
"type": "SHCPatientDM",
"mode": "target"
}
],
"rule": [
{
"name": "Name",
"source": [
{
"context": "patient",
"element": "name",
"listMode": "only_one",
"variable": "name"
}
],
"target": [
{
"context": "patientSHC",
"contextType": "variable",
"element": "name",
"variable": "nameSHC"
}
],
"rule": [
{
"name": "Given Name",
"source": [
{
"context": "name",
"element": "given",
"variable": "givenname"
}
],
"target": [
{
"context": "nameSHC",
"contextType": "variable",
"element": "given",
"transform": "copy",
"parameter": [
{
"valueId": "givenname"
}
]
}
]
},
{
"name": "Family Name",
"source": [
{
"context": "name",
"element": "family",
"variable": "familyname"
}
],
"target": [
{
"context": "nameSHC",
"contextType": "variable",
"element": "family",
"transform": "copy",
"parameter": [
{
"valueId": "familyname"
}
]
}
]
},
{
"name": "vcnameinvariant",
"source": [
{
"context": "name",
"condition": "name.given.exists().not() and name.family.exists().not()"
}
],
"rule": [
{
"name": "Text Name",
"source": [
{
"context": "name",
"element": "text",
"variable": "text"
}
],
"target": [
{
"context": "nameSHC",
"contextType": "variable",
"element": "text",
"transform": "copy",
"parameter": [
{
"valueId": "text"
}
]
}
]
}
]
}
]
},
{
"name": "Birth Date",
"source": [
{
"context": "patient",
"element": "birthDate",
"variable": "birthDate"
}
],
"target": [
{
"context": "patientSHC",
"contextType": "variable",
"element": "birthDate",
"transform": "copy",
"parameter": [
{
"valueId": "birthDate"
}
]
}
]
}
]
},
{
"name": "DDCCImmunizationtoSHC",
"typeMode": "none",
"input": [
{
"name": "immunization",
"type": "DDCCImmunization",
"mode": "source"
},
{
"name": "immunizationSHC",
"type": "SHCImmunizationDM",
"mode": "target"
}
],
"rule": [
{
"name": "Status",
"source": [
{
"context": "immunization",
"element": "status",
"variable": "status"
}
],
"target": [
{
"context": "immunizationSHC",
"contextType": "variable",
"element": "status",
"transform": "copy",
"parameter": [
{
"valueId": "status"
}
]
}
]
},
{
"name": "VaccineCode",
"source": [
{
"context": "immunization",
"element": "vaccineCode",
"variable": "vaccineCode"
}
],
"target": [
{
"context": "immunizationSHC",
"contextType": "variable",
"element": "vaccineCode",
"variable": "vaccineCodeSHC"
}
],
"rule": [
{
"name": "coding",
"source": [
{
"context": "vaccineCode",
"element": "coding",
"listMode": "first",
"variable": "coding"
}
],
"target": [
{
"context": "vaccineCodeSHC",
"contextType": "variable",
"element": "coding",
"variable": "codingSHC"
}
],
"dependent": [
{
"name": "MinimizeCoding",
"variable": [
"coding",
"codingSHC"
]
}
]
}
]
},
{
"name": "Patient",
"source": [
{
"context": "immunization",
"element": "patient",
"variable": "patient"
}
],
"target": [
{
"context": "immunizationSHC",
"contextType": "variable",
"element": "patient",
"variable": "patientSHC"
},
{
"context": "patientSHC",
"contextType": "variable",
"element": "reference",
"transform": "copy",
"parameter": [
{
"valueString": "resource:0"
}
]
}
]
},
{
"name": "Occurrence DateTime",
"source": [
{
"context": "immunization",
"element": "occurrence",
"variable": "occurrenceDateTime"
}
],
"target": [
{
"context": "immunizationSHC",
"contextType": "variable",
"element": "occurrence",
"transform": "copy",
"parameter": [
{
"valueId": "occurrenceDateTime"
}
]
}
]
},
{
"name": "Extension",
"source": [
{
"context": "immunization",
"element": "extension",
"variable": "ext"
}
],
"rule": [
{
"name": "DDCCVaccineMarketAuthorization",
"source": [
{
"context": "ext",
"listMode": "first",
"variable": "maholder",
"condition": "ext.url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineMarketAuthorization'"
}
],
"rule": [
{
"name": "Manufacturer",
"source": [
{
"context": "maholder",
"element": "valueCoding",
"variable": "coding"
}
],
"target": [
{
"context": "immunizationSHC",
"contextType": "variable",
"element": "manufacturer",
"variable": "tman"
},
{
"context": "tman",
"contextType": "variable",
"element": "identifier",
"variable": "tident"
}
],
"rule": [
{
"name": "system",
"source": [
{
"context": "coding",
"element": "system",
"variable": "system"
}
],
"target": [
{
"context": "tident",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueId": "system"
}
]
}
]
},
{
"name": "value",
"source": [
{
"context": "coding",
"element": "code",
"variable": "code"
}
],
"target": [
{
"context": "tident",
"contextType": "variable",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueId": "code"
}
]
}
]
}
]
}
]
}
]
},
{
"name": "if maholder code empty",
"source": [
{
"context": "immunization",
"variable": "src",
"condition": "extension.where(url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCVaccineMarketAuthorization').first().valueCoding.exists().not()"
}
],
"rule": [
{
"name": "Manufacturer",
"source": [
{
"context": "src",
"element": "manufacturer",
"variable": "manufacturer"
}
],
"rule": [
{
"name": "identifier",
"source": [
{
"context": "manufacturer",
"element": "identifier",
"variable": "identifier"
}
],
"target": [
{
"context": "immunizationSHC",
"contextType": "variable",
"element": "manufacturer",
"variable": "tman"
},
{
"context": "tman",
"contextType": "variable",
"element": "identifier",
"variable": "tident"
}
],
"rule": [
{
"name": "system",
"source": [
{
"context": "identifier",
"element": "system",
"variable": "system"
}
],
"target": [
{
"context": "tident",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueId": "system"
}
]
}
]
},
{
"name": "value",
"source": [
{
"context": "identifier",
"element": "value",
"variable": "value"
}
],
"target": [
{
"context": "tident",
"contextType": "variable",
"element": "value",
"transform": "copy",
"parameter": [
{
"valueId": "value"
}
]
}
]
}
]
}
]
}
]
},
{
"name": "Lot Number",
"source": [
{
"context": "immunization",
"element": "lotNumber",
"variable": "lotNumber"
}
],
"target": [
{
"context": "immunizationSHC",
"contextType": "variable",
"element": "lotNumber",
"transform": "copy",
"parameter": [
{
"valueId": "lotNumber"
}
]
}
]
},
{
"name": "Is Subpotent",
"source": [
{
"context": "immunization",
"element": "isSubpotent",
"variable": "isSubpotent",
"condition": "true"
}
],
"target": [
{
"context": "immunizationSHC",
"contextType": "variable",
"element": "isSubpotent",
"transform": "copy",
"parameter": [
{
"valueId": "isSubpotent"
}
]
}
]
}
]
},
{
"name": "DDCCOrganizationtoSHCImmunization",
"typeMode": "none",
"input": [
{
"name": "organization",
"type": "DDCCOrganization",
"mode": "source"
},
{
"name": "immunizationSHC",
"type": "SHCImmunizationDM",
"mode": "target"
}
],
"rule": [
{
"name": "Performer Actor Display",
"source": [
{
"context": "organization",
"element": "name",
"variable": "name"
}
],
"target": [
{
"context": "immunizationSHC",
"contextType": "variable",
"element": "performer",
"variable": "performer"
},
{
"context": "performer",
"contextType": "variable",
"element": "actor",
"variable": "actor"
},
{
"context": "actor",
"contextType": "variable",
"element": "display",
"transform": "copy",
"parameter": [
{
"valueId": "name"
}
]
}
]
}
]
},
{
"name": "MinimizeCoding",
"typeMode": "none",
"input": [
{
"name": "src",
"type": "Coding",
"mode": "source"
},
{
"name": "tgt",
"type": "Coding",
"mode": "target"
}
],
"rule": [
{
"name": "system",
"source": [
{
"context": "src",
"element": "system",
"variable": "system"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "system",
"transform": "copy",
"parameter": [
{
"valueId": "system"
}
]
}
]
},
{
"name": "code",
"source": [
{
"context": "src",
"element": "code",
"variable": "code"
}
],
"target": [
{
"context": "tgt",
"contextType": "variable",
"element": "code",
"transform": "copy",
"parameter": [
{
"valueId": "code"
}
]
}
]
}
]
}
]
}