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

FHIR IG Statistics: StructureMap/DVCQRtoDVCLM

Packagesmart.who.int.icvp
Resource TypeStructureMap
IdDVCQRtoDVCLM
FHIR VersionR4
Sourcehttp://smart.who.int/icvp/https://build.fhir.org/ig/WorldHealthOrganization/smart-icvp/StructureMap-DVCQRtoDVCLM.html
URLhttp://smart.who.int/icvp/StructureMap/DVCQRtoDVCLM
Version0.1.0
Statusdraft
Date2025-07-15T19:22:42+00:00
NameDVCQRtoDVCLM
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 DVCQRtoDVCLM

map "http://smart.who.int/icvp/StructureMap/DVCQRtoDVCLM" = "DVCQRtoDVCLM"

uses "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse" alias QuestionnaireResponse as source
uses "http://smart.who.int/icvp/StructureDefinition/ModelDVC" alias DVCLogicalModel as target
uses "http://smart.who.int/icvp/StructureDefinition/ModelVaccineDetails" alias ModelVaccineDetails as target
uses "http://smart.who.int/icvp/StructureDefinition/DVCPayload" alias DVCClaim as target

group DVCQRtoDVCLM(source qr : QuestionnaireResponse, target lm : DVCLogicalModel) {
  qr.item as item where linkId.value in ('name') then {
    item.answer as answer then {
      answer.value as name -> lm.name = name "rule1";
    } "rule1a";
  } "rule1b";
  qr.item as item where linkId.value in ('dob') then {
    item.answer as answer then {
      answer.value as dob -> lm.dob = dob "rule2";
    } "rule2a";
  } "rule2b";
  qr.item as item where linkId.value in ('sex') then {
    item.answer as answer then {
      answer.value as sex -> lm.sex = sex "rule3";
    } "rule3a";
  } "rule3b";
  qr.item as item where linkId.value in ('nationality') then {
    item.answer as answer then {
      answer.value as nationality -> lm.nationality = nationality "rule4";
    } "rule4a";
  } "rule4b";
  qr.item as item where linkId.value in ('nid') then {
    item.answer as answer then {
      answer.value as nid -> lm.nid = nid "rule5";
    } "rule5a";
  } "rule5b";
  qr.item as item where linkId.value in ('guardian') then {
    item.answer as answer then {
      answer.value as guardian -> lm.guardian = guardian "rule6";
    } "rule6a";
  } "rule6b";
  qr.item as item where linkId.value in ('vaccineDetails') -> lm.vaccineDetails as v then mapVaccineDetails(item, v) "rule7";
}

group mapVaccineDetails(source s : BackboneElement, target v : ModelVaccineDetails) {
  s.item as item where linkId.value in ('doseNumber') then {
    item.answer as answer then {
      answer.value as doseNumber -> v.doseNumber = doseNumber "rule7";
    } "rule7a";
  } "rule7b";
  s.item as item where linkId.value in ('disease') then {
    item.answer as answer then {
      answer.value as disease -> v.disease = disease "rule8";
    } "rule8a";
  } "rule8b";
  s.item as item where linkId.value in ('vaccineClassification') then {
    item.answer as answer then {
      answer.value as vaccine -> v.vaccineClassification = vaccine "rule9";
    } "rule9a";
  } "rule9b";
  s.item as item where linkId.value in ('vaccineTradeItem') then {
    item.answer as answer then {
      answer.value as vaccine -> v.vaccineTradeItem = vaccine "rule10";
    } "rule10a";
  } "rule10b";
  s.item as item where linkId.value in ('date') then {
    item.answer as answer then {
      answer.value as date -> v.date = date "rule11";
    } "rule11a";
  } "rule11b";
  s.item as item where linkId.value in ('clinicianName') then {
    item.answer as answer then {
      answer.value as clinicianName -> v.clinicianName = clinicianName "rule12";
    } "rule12a";
  } "rule12b";
  s.item as item where linkId.value in ('manufacturerId') then {
    item.answer as answer then {
      answer.value as mid -> v.manufacturerId = mid "rule13";
    } "rule13a";
  } "rule13b";
  s.item as item where linkId.value in ('manufacturer') then {
    item.answer as answer then {
      answer.value as manufacturer -> v.manufacturer = manufacturer "rule14";
    } "rule14a";
  } "rule14b";
  s.item as item where linkId.value in ('batchNo') then {
    item.answer as answer then {
      answer.value as batchNo -> v.batchNo = batchNo "rule15";
    } "rule15a";
  } "rule15b";
  s.item as item where linkId.value in ('validityPeriod') then {
    item -> v.validityPeriod as period then {
      item.item as item where linkId.value in ('startDate') then {
        item.answer as answer then {
          answer.validityPeriod as start -> period.start = start "rule16";
        } "rule16a";
      } "rule16b";
      item.item as item where linkId.value in ('endDate') then {
        item.answer as answer then {
          answer.validityPeriod as end -> period.end = end "rule17";
        } "rule17a";
      } "rule17b";
    } "rule18";
  } "rule19";
}


Source

{
  "resourceType": "StructureMap",
  "id": "DVCQRtoDVCLM",
  "text": {
    "status": "generated",
    "div": "<!-- snip (see above) -->"
  },
  "url": "http://smart.who.int/icvp/StructureMap/DVCQRtoDVCLM",
  "version": "0.1.0",
  "name": "DVCQRtoDVCLM",
  "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://hl7.org/fhir/StructureDefinition/QuestionnaireResponse",
      "mode": "source",
      "alias": "QuestionnaireResponse"
    },
    {
      "url": "http://smart.who.int/icvp/StructureDefinition/ModelDVC",
      "mode": "target",
      "alias": "DVCLogicalModel"
    },
    {
      "url": "http://smart.who.int/icvp/StructureDefinition/ModelVaccineDetails",
      "mode": "target",
      "alias": "ModelVaccineDetails"
    },
    {
      "url": "http://smart.who.int/icvp/StructureDefinition/DVCPayload",
      "mode": "target",
      "alias": "DVCClaim"
    }
  ],
  "group": [
    {
      "name": "DVCQRtoDVCLM",
      "typeMode": "none",
      "input": [
        {
          "name": "qr",
          "type": "QuestionnaireResponse",
          "mode": "source"
        },
        {
          "name": "lm",
          "type": "DVCLogicalModel",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "rule1b",
          "source": [
            {
              "context": "qr",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('name')"
            }
          ],
          "rule": [
            {
              "name": "rule1a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule1",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "name"
                    }
                  ],
                  "target": [
                    {
                      "context": "lm",
                      "contextType": "variable",
                      "element": "name",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "name"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule2b",
          "source": [
            {
              "context": "qr",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('dob')"
            }
          ],
          "rule": [
            {
              "name": "rule2a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule2",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "dob"
                    }
                  ],
                  "target": [
                    {
                      "context": "lm",
                      "contextType": "variable",
                      "element": "dob",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "dob"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule3b",
          "source": [
            {
              "context": "qr",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('sex')"
            }
          ],
          "rule": [
            {
              "name": "rule3a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule3",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "sex"
                    }
                  ],
                  "target": [
                    {
                      "context": "lm",
                      "contextType": "variable",
                      "element": "sex",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "sex"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule4b",
          "source": [
            {
              "context": "qr",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('nationality')"
            }
          ],
          "rule": [
            {
              "name": "rule4a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule4",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "nationality"
                    }
                  ],
                  "target": [
                    {
                      "context": "lm",
                      "contextType": "variable",
                      "element": "nationality",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "nationality"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule5b",
          "source": [
            {
              "context": "qr",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('nid')"
            }
          ],
          "rule": [
            {
              "name": "rule5a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule5",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "nid"
                    }
                  ],
                  "target": [
                    {
                      "context": "lm",
                      "contextType": "variable",
                      "element": "nid",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "nid"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule6b",
          "source": [
            {
              "context": "qr",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('guardian')"
            }
          ],
          "rule": [
            {
              "name": "rule6a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule6",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "guardian"
                    }
                  ],
                  "target": [
                    {
                      "context": "lm",
                      "contextType": "variable",
                      "element": "guardian",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "guardian"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule7",
          "source": [
            {
              "context": "qr",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('vaccineDetails')"
            }
          ],
          "target": [
            {
              "context": "lm",
              "contextType": "variable",
              "element": "vaccineDetails",
              "variable": "v"
            }
          ],
          "dependent": [
            {
              "name": "mapVaccineDetails",
              "variable": [
                "item",
                "v"
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "mapVaccineDetails",
      "typeMode": "none",
      "input": [
        {
          "name": "s",
          "type": "BackboneElement",
          "mode": "source"
        },
        {
          "name": "v",
          "type": "ModelVaccineDetails",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "rule7b",
          "source": [
            {
              "context": "s",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('doseNumber')"
            }
          ],
          "rule": [
            {
              "name": "rule7a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule7",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "doseNumber"
                    }
                  ],
                  "target": [
                    {
                      "context": "v",
                      "contextType": "variable",
                      "element": "doseNumber",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "doseNumber"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule8b",
          "source": [
            {
              "context": "s",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('disease')"
            }
          ],
          "rule": [
            {
              "name": "rule8a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule8",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "disease"
                    }
                  ],
                  "target": [
                    {
                      "context": "v",
                      "contextType": "variable",
                      "element": "disease",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "disease"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule9b",
          "source": [
            {
              "context": "s",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('vaccineClassification')"
            }
          ],
          "rule": [
            {
              "name": "rule9a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule9",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "vaccine"
                    }
                  ],
                  "target": [
                    {
                      "context": "v",
                      "contextType": "variable",
                      "element": "vaccineClassification",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "vaccine"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule10b",
          "source": [
            {
              "context": "s",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('vaccineTradeItem')"
            }
          ],
          "rule": [
            {
              "name": "rule10a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule10",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "vaccine"
                    }
                  ],
                  "target": [
                    {
                      "context": "v",
                      "contextType": "variable",
                      "element": "vaccineTradeItem",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "vaccine"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule11b",
          "source": [
            {
              "context": "s",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('date')"
            }
          ],
          "rule": [
            {
              "name": "rule11a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule11",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "date"
                    }
                  ],
                  "target": [
                    {
                      "context": "v",
                      "contextType": "variable",
                      "element": "date",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "date"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule12b",
          "source": [
            {
              "context": "s",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('clinicianName')"
            }
          ],
          "rule": [
            {
              "name": "rule12a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule12",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "clinicianName"
                    }
                  ],
                  "target": [
                    {
                      "context": "v",
                      "contextType": "variable",
                      "element": "clinicianName",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "clinicianName"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule13b",
          "source": [
            {
              "context": "s",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('manufacturerId')"
            }
          ],
          "rule": [
            {
              "name": "rule13a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule13",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "mid"
                    }
                  ],
                  "target": [
                    {
                      "context": "v",
                      "contextType": "variable",
                      "element": "manufacturerId",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "mid"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule14b",
          "source": [
            {
              "context": "s",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('manufacturer')"
            }
          ],
          "rule": [
            {
              "name": "rule14a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule14",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "manufacturer"
                    }
                  ],
                  "target": [
                    {
                      "context": "v",
                      "contextType": "variable",
                      "element": "manufacturer",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "manufacturer"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule15b",
          "source": [
            {
              "context": "s",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('batchNo')"
            }
          ],
          "rule": [
            {
              "name": "rule15a",
              "source": [
                {
                  "context": "item",
                  "element": "answer",
                  "variable": "answer"
                }
              ],
              "rule": [
                {
                  "name": "rule15",
                  "source": [
                    {
                      "context": "answer",
                      "element": "value",
                      "variable": "batchNo"
                    }
                  ],
                  "target": [
                    {
                      "context": "v",
                      "contextType": "variable",
                      "element": "batchNo",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "batchNo"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        },
        {
          "name": "rule19",
          "source": [
            {
              "context": "s",
              "element": "item",
              "variable": "item",
              "condition": "linkId.value in ('validityPeriod')"
            }
          ],
          "rule": [
            {
              "name": "rule18",
              "source": [
                {
                  "context": "item"
                }
              ],
              "target": [
                {
                  "context": "v",
                  "contextType": "variable",
                  "element": "validityPeriod",
                  "variable": "period"
                }
              ],
              "rule": [
                {
                  "name": "rule16b",
                  "source": [
                    {
                      "context": "item",
                      "element": "item",
                      "variable": "item",
                      "condition": "linkId.value in ('startDate')"
                    }
                  ],
                  "rule": [
                    {
                      "name": "rule16a",
                      "source": [
                        {
                          "context": "item",
                          "element": "answer",
                          "variable": "answer"
                        }
                      ],
                      "rule": [
                        {
                          "name": "rule16",
                          "source": [
                            {
                              "context": "answer",
                              "element": "validityPeriod",
                              "variable": "start"
                            }
                          ],
                          "target": [
                            {
                              "context": "period",
                              "contextType": "variable",
                              "element": "start",
                              "transform": "copy",
                              "parameter": [
                                {
                                  "valueId": "start"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "name": "rule17b",
                  "source": [
                    {
                      "context": "item",
                      "element": "item",
                      "variable": "item",
                      "condition": "linkId.value in ('endDate')"
                    }
                  ],
                  "rule": [
                    {
                      "name": "rule17a",
                      "source": [
                        {
                          "context": "item",
                          "element": "answer",
                          "variable": "answer"
                        }
                      ],
                      "rule": [
                        {
                          "name": "rule17",
                          "source": [
                            {
                              "context": "answer",
                              "element": "validityPeriod",
                              "variable": "end"
                            }
                          ],
                          "target": [
                            {
                              "context": "period",
                              "contextType": "variable",
                              "element": "end",
                              "transform": "copy",
                              "parameter": [
                                {
                                  "valueId": "end"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}