WHO Digital Documentation of COVID-19 Certificates (DDCC)
1.0.1 - release
This page is part of the WHO Digital Documentation of COVID-19 Certificates (DDCC) (v1.0.1: releases Draft) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version. For a full list of available versions, see the Directory of published versions
Official URL: http://smart.who.int/ddcc/StructureMap/DDCCtoCoredataset | Version: 1.0.1 | |||
Draft as of 2024-12-18 | Computable Name: DDCCtoCoredataset |
Generated Narrative: StructureMap DDCCtoCoredataset
map "http://smart.who.int/ddcc/StructureMap/DDCCtoCoredataset" = "DDCCtoCoredataset" uses "http://smart.who.int/ddcc/StructureDefinition/DDCCVSComposition" alias DDCC as source 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/DDCCVSComposition" alias DDCCVSComposition 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/DDCCOrganization" alias DDCCOrganization as source uses "http://smart.who.int/ddcc/StructureDefinition/DDCCImmunization" alias DDCCImmunization as source uses "http://smart.who.int/ddcc/DDCCCoreDataSetVSPoV" alias DDCCCoreDataSetPoV as target group DecodeDDCCtoQR(source ddcc : DDCCDocument, target qr : DDCCCoreDataSetPoV) { ddcc.entry as entry then { // entry.resource : DDCCPatient as patient entry.resource : Patient as patient then DecodePatientToQR(patient, qr) "Patient"; }; ddcc.entry as entry then { entry.resource : Immunization as immunization then DecodeImmunizationToQR(ddcc, immunization, qr) "Immunization"; }; } group DecodePatientToQR(source patient : DDCCPatient, target qr : DDCCCoreDataSetPoV) { patient.birthDate as birthDate -> qr.birthDate = birthDate; patient.name as name then { name.text as text -> qr.name = text; }; } group DecodeImmunizationToQR(source ddcc : DDCCDocument, source immunization : DDCCImmunization, target qr : DDCCCoreDataSetPoV) { immunization -> qr.vaccination = create('BackboneElement') as vacEvent then { immunization.protocolApplied as protocol then { protocol.doseNumberPositiveInt as dose -> vacEvent.dose = dose; protocol.seriesDosesPositiveInt as doseNum -> vacEvent.totalDoses = doseNum; protocol.targetDisease as targetDisease then { targetDisease.valueCodableConcept as valueCodableConcept -> vacEvent.disease = valueCodableConcept; } "TargetDisease"; }; immunization.occurrenceDateTime as date -> vacEvent.date = date; // TODO: need to populate vacEvent.maholder // immunization.extension : DDCCCountryOfVaccination as country immunization.extension as country where (url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCCountryOfEvent') then { country.valueCode as code -> vacEvent.country = create('Coding') as coding, coding.code = code, coding.system = 'http://hl7.org/fhir/ValueSet/iso3166-1-3'; } "Country"; // immunization.extension : DDCCBrand as brand immunization.extension as brand where (url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCEventBrand') then { brand.valueCoding as valueCoding -> vacEvent.brand = valueCoding; } "VaccineBrand"; immunization.vaccineCode as vaccineCode then { vaccineCode.coding as coding -> vacEvent.vaccine = coding; } "VaccineCode"; ddcc.entry as entry then { // entry.resource : DDCCOrganization as organization entry.resource : Organization as organization then { organization.name as name -> vacEvent.centre = name; } "CentreName"; } "VaccinationCentre"; ddcc.entry as entry then { // entry.resource : DDCCVSComposition as composition entry.resource : Composition as composition then { composition.identifier as identifier -> qr.identifier = identifier; } "VaccinationEventID"; } "VaccinationEvent"; } "Vaccination"; }