FHIR © HL7.org  |  Server Home  |  XIG Home  |  XIG Stats  |  Server Source  |  FHIR  

FHIR IG Statistics: StructureMap/DDCCtoEUdcc

Packagewho.ddcc
Resource TypeStructureMap
IdDDCCtoEUdcc
FHIR VersionR4
Sourcehttp://smart.who.int/ddcc/https://build.fhir.org/ig/WorldHealthOrganization/ddcc/StructureMap-DDCCtoEUdcc.html
URLhttp://smart.who.int/ddcc/StructureMap/DDCCtoEUdcc
Version1.0.0
Statusdraft
Date2025-06-24T09:07:32+00:00
NameDDCCtoEUdcc
Realmuv
Authoritywho

Resources that use this resource

No resources found


Resources that this resource uses

No resources found


Narrative

Note: links and images are rebased to the (stated) source

Generated Narrative: StructureMap DDCCtoEUdcc

map "http://smart.who.int/ddcc/StructureMap/DDCCtoEUdcc" = "DDCCtoEUdcc"

uses "http://smart.who.int/ddcc/StructureDefinition/DDCCVSomposition" 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/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.eu/fhir/ig/dcc/StructureDefinition/HC1" alias EUDCC as target
uses "http://hl7.eu/fhir/ig/dcc/StructureDefinition/v" alias vacEvent as target

group DecodeDDCCtoQR(source ddcc : DDCCDocument, target qr : EUDCC) {
  ddcc -> qr.ver = 'XXX' "Version";
  ddcc.entry as entry then {
    entry.resource : DDCCPatient as patient then DecodePatientToQR(patient, qr) "Patient";
  } "Patient";
  ddcc.entry as entry then {
    entry.resource : Immunization as immunization then DecodeImmunizationToQR(ddcc, immunization, qr) "Immunization";
  } "Immunization";
}

group DecodePatientToQR(source patient : DDCCPatient, target qr : EUDCC) {
  patient.birthDate as birthDate -> qr.dob = birthDate;
  patient.name as name then {
    name.text as text -> qr.nam = text;
  };
}

group DecodeImmunizationToQR(source ddcc : DDCCDocument, source immunization : DDCCImmunization, target qr : EUDCC) {
  immunization -> qr.v = create('http://hl7.eu/fhir/ig/dcc/StructureDefinition/v') as vacEvent then {
    immunization.protocolApplied as protocol then {
      protocol.doseNumberPositiveInt as dose -> vacEvent.dn = dose;
      protocol.seriesDosesPositiveInt as doseNum -> vacEvent.sd = doseNum;
      protocol.targetDisease as targetDisease then {
        targetDisease.coding as coding then {
          coding.code as code -> vacEvent.tg = code;
        } "ProtocolDiseaseCode";
      } "ProtocolDisease";
    } "Protocol";
    immunization.occurrenceDateTime as date -> vacEvent.dt = date;
    // TODO: need to populate vacEvent.ma market authorization holder
    // immunization.extension : DDCCCountryOfVaccination as country
    immunization.extension as country where (url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCCountryOfEvent') then {
      country.valueCode as code -> vacEvent.co = code;
    } "Country";
    // immunization.extension : DDCCBrand as brand
    immunization.extension as brand where (url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCEventBrand') then {
      brand.valueCoding as valueCoding then {
        valueCoding.code as code -> vacEvent.mp = code;
      } "VaccineBrandCode";
    } "VaccineBrand";
    // immunization.vaccineCode : Coding as vaccineCode then {
    immunization.vaccineCode as vaccineCode then {
      vaccineCode.coding as coding then {
        coding.code as code -> vacEvent.vp = code;
      } "VaccineCode";
    } "VaccineCoding";
    ddcc.entry as entry then {
      // entry.resource : DDCCOrganization as organization
      entry.resource : Organization as organization then {
        organization.name as name -> vacEvent.is = name;
      } "CentreName";
    } "VaccinationCentre";
    ddcc.entry as entry then {
      // entry.resource : DDCCVSComposition as composition
      entry.resource : Composition as composition then {
        composition.identifier as identifier then {
          identifier.value as value -> vacEvent.ci = value;
        } "VaccinationEventIDValue";
      } "VaccinationEventID";
    } "VaccinationEvent";
  } "Vaccination";
}


Source

{
  "resourceType": "StructureMap",
  "id": "DDCCtoEUdcc",
  "text": {
    "status": "generated",
    "div": "<!-- snip (see above) -->"
  },
  "url": "http://smart.who.int/ddcc/StructureMap/DDCCtoEUdcc",
  "version": "1.0.0",
  "name": "DDCCtoEUdcc",
  "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/DDCCVSomposition",
      "mode": "source",
      "alias": "DDCC"
    },
    {
      "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/DDCCVSComposition",
      "mode": "source",
      "alias": "DDCCVSComposition"
    },
    {
      "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.eu/fhir/ig/dcc/StructureDefinition/HC1",
      "mode": "target",
      "alias": "EUDCC"
    },
    {
      "url": "http://hl7.eu/fhir/ig/dcc/StructureDefinition/v",
      "mode": "target",
      "alias": "vacEvent"
    }
  ],
  "group": [
    {
      "name": "DecodeDDCCtoQR",
      "typeMode": "none",
      "input": [
        {
          "name": "ddcc",
          "type": "DDCCDocument",
          "mode": "source"
        },
        {
          "name": "qr",
          "type": "EUDCC",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "Version",
          "source": [
            {
              "context": "ddcc"
            }
          ],
          "target": [
            {
              "context": "qr",
              "contextType": "variable",
              "element": "ver",
              "transform": "copy",
              "parameter": [
                {
                  "valueString": "XXX"
                }
              ]
            }
          ]
        },
        {
          "name": "Patient",
          "source": [
            {
              "context": "ddcc",
              "element": "entry",
              "variable": "entry"
            }
          ],
          "rule": [
            {
              "name": "Patient",
              "source": [
                {
                  "context": "entry",
                  "type": "DDCCPatient",
                  "element": "resource",
                  "variable": "patient"
                }
              ],
              "dependent": [
                {
                  "name": "DecodePatientToQR",
                  "variable": [
                    "patient",
                    "qr"
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "Immunization",
          "source": [
            {
              "context": "ddcc",
              "element": "entry",
              "variable": "entry"
            }
          ],
          "rule": [
            {
              "name": "Immunization",
              "source": [
                {
                  "context": "entry",
                  "type": "Immunization",
                  "element": "resource",
                  "variable": "immunization"
                }
              ],
              "dependent": [
                {
                  "name": "DecodeImmunizationToQR",
                  "variable": [
                    "ddcc",
                    "immunization",
                    "qr"
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "DecodePatientToQR",
      "typeMode": "none",
      "input": [
        {
          "name": "patient",
          "type": "DDCCPatient",
          "mode": "source"
        },
        {
          "name": "qr",
          "type": "EUDCC",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "birthDate",
          "source": [
            {
              "context": "patient",
              "element": "birthDate",
              "variable": "birthDate"
            }
          ],
          "target": [
            {
              "context": "qr",
              "contextType": "variable",
              "element": "dob",
              "transform": "copy",
              "parameter": [
                {
                  "valueId": "birthDate"
                }
              ]
            }
          ]
        },
        {
          "name": "name",
          "source": [
            {
              "context": "patient",
              "element": "name",
              "variable": "name"
            }
          ],
          "rule": [
            {
              "name": "text",
              "source": [
                {
                  "context": "name",
                  "element": "text",
                  "variable": "text"
                }
              ],
              "target": [
                {
                  "context": "qr",
                  "contextType": "variable",
                  "element": "nam",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueId": "text"
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "DecodeImmunizationToQR",
      "typeMode": "none",
      "input": [
        {
          "name": "ddcc",
          "type": "DDCCDocument",
          "mode": "source"
        },
        {
          "name": "immunization",
          "type": "DDCCImmunization",
          "mode": "source"
        },
        {
          "name": "qr",
          "type": "EUDCC",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "Vaccination",
          "source": [
            {
              "context": "immunization"
            }
          ],
          "target": [
            {
              "context": "qr",
              "contextType": "variable",
              "element": "v",
              "variable": "vacEvent",
              "transform": "create",
              "parameter": [
                {
                  "valueString": "http://hl7.eu/fhir/ig/dcc/StructureDefinition/v"
                }
              ]
            }
          ],
          "rule": [
            {
              "name": "Protocol",
              "source": [
                {
                  "context": "immunization",
                  "element": "protocolApplied",
                  "variable": "protocol"
                }
              ],
              "rule": [
                {
                  "name": "doseNumberPositiveInt",
                  "source": [
                    {
                      "context": "protocol",
                      "element": "doseNumberPositiveInt",
                      "variable": "dose"
                    }
                  ],
                  "target": [
                    {
                      "context": "vacEvent",
                      "contextType": "variable",
                      "element": "dn",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "dose"
                        }
                      ]
                    }
                  ]
                },
                {
                  "name": "seriesDosesPositiveInt",
                  "source": [
                    {
                      "context": "protocol",
                      "element": "seriesDosesPositiveInt",
                      "variable": "doseNum"
                    }
                  ],
                  "target": [
                    {
                      "context": "vacEvent",
                      "contextType": "variable",
                      "element": "sd",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "doseNum"
                        }
                      ]
                    }
                  ]
                },
                {
                  "name": "ProtocolDisease",
                  "source": [
                    {
                      "context": "protocol",
                      "element": "targetDisease",
                      "variable": "targetDisease"
                    }
                  ],
                  "rule": [
                    {
                      "name": "ProtocolDiseaseCode",
                      "source": [
                        {
                          "context": "targetDisease",
                          "element": "coding",
                          "variable": "coding"
                        }
                      ],
                      "rule": [
                        {
                          "name": "code",
                          "source": [
                            {
                              "context": "coding",
                              "element": "code",
                              "variable": "code"
                            }
                          ],
                          "target": [
                            {
                              "context": "vacEvent",
                              "contextType": "variable",
                              "element": "tg",
                              "transform": "copy",
                              "parameter": [
                                {
                                  "valueId": "code"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "occurrenceDateTime",
              "source": [
                {
                  "context": "immunization",
                  "element": "occurrenceDateTime",
                  "variable": "date"
                }
              ],
              "target": [
                {
                  "context": "vacEvent",
                  "contextType": "variable",
                  "element": "dt",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueId": "date"
                    }
                  ]
                }
              ]
            },
            {
              "name": "Country",
              "source": [
                {
                  "context": "immunization",
                  "element": "extension",
                  "variable": "country",
                  "condition": "(url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCCountryOfEvent')"
                }
              ],
              "rule": [
                {
                  "name": "valueCode",
                  "source": [
                    {
                      "context": "country",
                      "element": "valueCode",
                      "variable": "code"
                    }
                  ],
                  "target": [
                    {
                      "context": "vacEvent",
                      "contextType": "variable",
                      "element": "co",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "code"
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "VaccineBrand",
              "source": [
                {
                  "context": "immunization",
                  "element": "extension",
                  "variable": "brand",
                  "condition": "(url = 'http://smart.who.int/ddcc/StructureDefinition/DDCCEventBrand')"
                }
              ],
              "rule": [
                {
                  "name": "VaccineBrandCode",
                  "source": [
                    {
                      "context": "brand",
                      "element": "valueCoding",
                      "variable": "valueCoding"
                    }
                  ],
                  "rule": [
                    {
                      "name": "code",
                      "source": [
                        {
                          "context": "valueCoding",
                          "element": "code",
                          "variable": "code"
                        }
                      ],
                      "target": [
                        {
                          "context": "vacEvent",
                          "contextType": "variable",
                          "element": "mp",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueId": "code"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "VaccineCoding",
              "source": [
                {
                  "context": "immunization",
                  "element": "vaccineCode",
                  "variable": "vaccineCode"
                }
              ],
              "rule": [
                {
                  "name": "VaccineCode",
                  "source": [
                    {
                      "context": "vaccineCode",
                      "element": "coding",
                      "variable": "coding"
                    }
                  ],
                  "rule": [
                    {
                      "name": "code",
                      "source": [
                        {
                          "context": "coding",
                          "element": "code",
                          "variable": "code"
                        }
                      ],
                      "target": [
                        {
                          "context": "vacEvent",
                          "contextType": "variable",
                          "element": "vp",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueId": "code"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "VaccinationCentre",
              "source": [
                {
                  "context": "ddcc",
                  "element": "entry",
                  "variable": "entry"
                }
              ],
              "rule": [
                {
                  "name": "CentreName",
                  "source": [
                    {
                      "context": "entry",
                      "type": "Organization",
                      "element": "resource",
                      "variable": "organization"
                    }
                  ],
                  "rule": [
                    {
                      "name": "name",
                      "source": [
                        {
                          "context": "organization",
                          "element": "name",
                          "variable": "name"
                        }
                      ],
                      "target": [
                        {
                          "context": "vacEvent",
                          "contextType": "variable",
                          "element": "is",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueId": "name"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "VaccinationEvent",
              "source": [
                {
                  "context": "ddcc",
                  "element": "entry",
                  "variable": "entry"
                }
              ],
              "rule": [
                {
                  "name": "VaccinationEventID",
                  "source": [
                    {
                      "context": "entry",
                      "type": "Composition",
                      "element": "resource",
                      "variable": "composition"
                    }
                  ],
                  "rule": [
                    {
                      "name": "VaccinationEventIDValue",
                      "source": [
                        {
                          "context": "composition",
                          "element": "identifier",
                          "variable": "identifier"
                        }
                      ],
                      "rule": [
                        {
                          "name": "value",
                          "source": [
                            {
                              "context": "identifier",
                              "element": "value",
                              "variable": "value"
                            }
                          ],
                          "target": [
                            {
                              "context": "vacEvent",
                              "contextType": "variable",
                              "element": "ci",
                              "transform": "copy",
                              "parameter": [
                                {
                                  "valueId": "value"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}