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

FHIR IG Statistics: StructureMap/questionnaire-population-transform

Packagehl7.fhir.uv.sdc.r4b
TypeStructureMap
Idquestionnaire-population-transform
FHIR VersionR4B
Sourcehttp://hl7.org/fhir/uv/sdc/http://hl7.org/fhir/uv/sdc/STU3/StructureMap-questionnaire-population-transform.html
URLhttp://hl7.org/fhir/uv/sdc/StructureMap/questionnaire-population-transform
Version3.0.0
Statusdraft
Date2022-03-08T18:37:19+00:00
NameQuestionnairePopulationTransform
TitleQuestionnaire Population Transform
Realmuv
Authorityhl7
DescriptionSample stricture map showing process for auto-populating a QuestionnaireResponse from a query bundle

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

Resource "questionnaire-population-transform"

url: http://hl7.org/fhir/uv/sdc/StructureMap/questionnaire-population-transform

version: 3.0.0

name: QuestionnairePopulationTransform

title: Questionnaire Population Transform

status: draft

experimental: true

date: 2022-03-08 06:37:19+0000

publisher: HL7 International - FHIR Infrastructure Work Group

contact: http://hl7.org/Special/committees/fiwg

description: Sample stricture map showing process for auto-populating a QuestionnaireResponse from a query bundle

jurisdiction: World (m49.htm#001)

structure

url: Bundle

mode: source

structure

url: QuestionnaireResponse

mode: target

group

name: main

typeMode: none

input

name: src

type: Bundle

mode: source

input

name: qr

type: QuestionnaireResponse

mode: target

rule

name: questionnaire

Sources

-Context
*src

target

context: qr

contextType: variable

element: questionnaire

transform: copy

Parameters

-Value[x]
*http://hl7.org/fhir/uv/sdc/Questionnaire/questionnaire-sdc-test-fhirpath-prepop-source-query

rule

name: status

Sources

-Context
*src

target

context: qr

contextType: variable

element: status

transform: copy

Parameters

-Value[x]
*in-progress

rule

name: authored

Sources

-Context
*src

target

context: qr

contextType: variable

element: authored

transform: evaluate

Parameters

-Value[x]
*now()

rule

name: subject

Sources

-ContextElementListModeVariable
*srcentryfirstpatient

target

context: qr

contextType: variable

element: subject

variable: subject

target

context: subject

contextType: variable

element: reference

transform: evaluate

Parameters

-Value[x]
*patient.resource.entry.fullUrl

rule

name: grp

Sources

-Context
*src

target

context: qr

contextType: variable

element: item

variable: grp

target

context: grp

contextType: variable

element: linkId

transform: copy

Parameters

-Value[x]
*grp

rule

name: part-details

rule

name: meds


Source

{
  "resourceType": "StructureMap",
  "id": "questionnaire-population-transform",
  "text": {
    "status": "generated",
    "div": "<!-- snip (see above) -->"
  },
  "url": "http://hl7.org/fhir/uv/sdc/StructureMap/questionnaire-population-transform",
  "version": "3.0.0",
  "name": "QuestionnairePopulationTransform",
  "title": "Questionnaire Population Transform",
  "status": "draft",
  "experimental": true,
  "date": "2022-03-08T18:37:19+00:00",
  "publisher": "HL7 International - FHIR Infrastructure Work Group",
  "contact": [
    {
      "telecom": [
        {
          "system": "url",
          "value": "http://hl7.org/Special/committees/fiwg"
        }
      ]
    }
  ],
  "description": "Sample stricture map showing process for auto-populating a QuestionnaireResponse from a query bundle",
  "jurisdiction": [
    {
      "coding": [
        {
          "system": "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code": "001"
        }
      ]
    }
  ],
  "structure": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/Bundle",
      "mode": "source"
    },
    {
      "url": "http://hl7.org/fhir/StructureDefinition/QuestionnaireResponse",
      "mode": "target"
    }
  ],
  "group": [
    {
      "name": "main",
      "typeMode": "none",
      "input": [
        {
          "name": "src",
          "type": "Bundle",
          "mode": "source"
        },
        {
          "name": "qr",
          "type": "QuestionnaireResponse",
          "mode": "target"
        }
      ],
      "rule": [
        {
          "name": "questionnaire",
          "source": [
            {
              "context": "src"
            }
          ],
          "target": [
            {
              "context": "qr",
              "contextType": "variable",
              "element": "questionnaire",
              "transform": "copy",
              "parameter": [
                {
                  "valueString": "http://hl7.org/fhir/uv/sdc/Questionnaire/questionnaire-sdc-test-fhirpath-prepop-source-query"
                }
              ]
            }
          ]
        },
        {
          "name": "status",
          "source": [
            {
              "context": "src"
            }
          ],
          "target": [
            {
              "context": "qr",
              "contextType": "variable",
              "element": "status",
              "transform": "copy",
              "parameter": [
                {
                  "valueString": "in-progress"
                }
              ]
            }
          ]
        },
        {
          "name": "authored",
          "source": [
            {
              "context": "src"
            }
          ],
          "target": [
            {
              "context": "qr",
              "contextType": "variable",
              "element": "authored",
              "transform": "evaluate",
              "parameter": [
                {
                  "valueString": "now()"
                }
              ]
            }
          ]
        },
        {
          "name": "subject",
          "source": [
            {
              "context": "src",
              "element": "entry",
              "listMode": "first",
              "variable": "patient"
            }
          ],
          "target": [
            {
              "context": "qr",
              "contextType": "variable",
              "element": "subject",
              "variable": "subject"
            },
            {
              "context": "subject",
              "contextType": "variable",
              "element": "reference",
              "transform": "evaluate",
              "parameter": [
                {
                  "valueString": "patient.resource.entry.fullUrl"
                }
              ]
            }
          ]
        },
        {
          "name": "grp",
          "source": [
            {
              "context": "src"
            }
          ],
          "target": [
            {
              "context": "qr",
              "contextType": "variable",
              "element": "item",
              "variable": "grp"
            },
            {
              "context": "grp",
              "contextType": "variable",
              "element": "linkId",
              "transform": "copy",
              "parameter": [
                {
                  "valueString": "grp"
                }
              ]
            }
          ],
          "rule": [
            {
              "name": "part-details",
              "source": [
                {
                  "context": "src"
                }
              ],
              "target": [
                {
                  "context": "grp",
                  "contextType": "variable",
                  "element": "item",
                  "variable": "partDetails"
                },
                {
                  "context": "partDetails",
                  "contextType": "variable",
                  "element": "linkId",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueString": "part-details"
                    }
                  ]
                }
              ],
              "rule": [
                {
                  "name": "patientDetails",
                  "source": [
                    {
                      "context": "src",
                      "element": "entry",
                      "listMode": "first",
                      "variable": "patient"
                    }
                  ],
                  "target": [
                    {
                      "contextType": "variable",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "partDetails"
                        }
                      ]
                    }
                  ],
                  "rule": [
                    {
                      "name": "participantId",
                      "source": [
                        {
                          "context": "patient",
                          "element": "resource",
                          "variable": "patientRes"
                        }
                      ],
                      "target": [
                        {
                          "context": "partDetails",
                          "contextType": "variable",
                          "element": "item",
                          "variable": "participantId"
                        },
                        {
                          "context": "participantId",
                          "contextType": "variable",
                          "element": "linkId",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "participant-id"
                            }
                          ]
                        }
                      ],
                      "rule": [
                        {
                          "name": "participantIdValue",
                          "source": [
                            {
                              "context": "patientRes",
                              "element": "entry",
                              "variable": "patientResEntry"
                            }
                          ],
                          "target": [
                            {
                              "context": "participantId",
                              "contextType": "variable",
                              "element": "answer",
                              "variable": "participantIdAnswer"
                            },
                            {
                              "context": "participantIdAnswer",
                              "contextType": "variable",
                              "element": "value",
                              "transform": "evaluate",
                              "parameter": [
                                {
                                  "valueString": "patientResEntry.resource.id"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "familyName",
                      "source": [
                        {
                          "context": "patient",
                          "element": "resource",
                          "variable": "patientRes"
                        }
                      ],
                      "target": [
                        {
                          "context": "partDetails",
                          "contextType": "variable",
                          "element": "item",
                          "variable": "familyName"
                        },
                        {
                          "context": "familyName",
                          "contextType": "variable",
                          "element": "linkId",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "family-name"
                            }
                          ]
                        }
                      ],
                      "rule": [
                        {
                          "name": "familyNameValue",
                          "source": [
                            {
                              "context": "patientRes",
                              "element": "entry",
                              "variable": "patientResEntry"
                            }
                          ],
                          "target": [
                            {
                              "context": "familyName",
                              "contextType": "variable",
                              "element": "answer",
                              "variable": "familyNameAnswer"
                            },
                            {
                              "context": "familyNameAnswer",
                              "contextType": "variable",
                              "element": "value",
                              "transform": "evaluate",
                              "parameter": [
                                {
                                  "valueString": "patientResEntry.resource.name.first().family"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "familyName",
                      "source": [
                        {
                          "context": "patient",
                          "element": "resource",
                          "variable": "patientRes"
                        }
                      ],
                      "target": [
                        {
                          "context": "partDetails",
                          "contextType": "variable",
                          "element": "item",
                          "variable": "givenName"
                        },
                        {
                          "context": "givenName",
                          "contextType": "variable",
                          "element": "linkId",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "given-name"
                            }
                          ]
                        }
                      ],
                      "rule": [
                        {
                          "name": "givenNameValue",
                          "source": [
                            {
                              "context": "patientRes",
                              "element": "entry",
                              "variable": "patientResEntry"
                            }
                          ],
                          "target": [
                            {
                              "context": "givenName",
                              "contextType": "variable",
                              "element": "answer",
                              "variable": "givenNameAnswer"
                            },
                            {
                              "context": "givenNameAnswer",
                              "contextType": "variable",
                              "element": "value",
                              "transform": "evaluate",
                              "parameter": [
                                {
                                  "valueString": "patientResEntry.resource.name.first().given.aggregate(iif($total.empty(), $this, $total & ' ' & $this))"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    {
                      "name": "familyName",
                      "source": [
                        {
                          "context": "patient",
                          "element": "resource",
                          "variable": "patientRes"
                        }
                      ],
                      "target": [
                        {
                          "context": "partDetails",
                          "contextType": "variable",
                          "element": "item",
                          "variable": "dob"
                        },
                        {
                          "context": "dob",
                          "contextType": "variable",
                          "element": "linkId",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "dob"
                            }
                          ]
                        }
                      ],
                      "rule": [
                        {
                          "name": "dobValue",
                          "source": [
                            {
                              "context": "patientRes",
                              "element": "entry",
                              "variable": "patientResEntry"
                            }
                          ],
                          "target": [
                            {
                              "context": "dob",
                              "contextType": "variable",
                              "element": "answer",
                              "variable": "dobAnswer"
                            },
                            {
                              "context": "dobAnswer",
                              "contextType": "variable",
                              "element": "value",
                              "transform": "evaluate",
                              "parameter": [
                                {
                                  "valueString": "patientResEntry.resource.birthDate"
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                },
                {
                  "name": "condition-count",
                  "source": [
                    {
                      "context": "src",
                      "element": "entry",
                      "variable": "conditions",
                      "condition": "(resource.link.url.contains('/Condition?'))"
                    }
                  ],
                  "target": [
                    {
                      "context": "partDetails",
                      "contextType": "variable",
                      "element": "item",
                      "variable": "conditionItem"
                    },
                    {
                      "context": "conditionItem",
                      "contextType": "variable",
                      "element": "linkId",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueString": "condition-count"
                        }
                      ]
                    }
                  ],
                  "rule": [
                    {
                      "name": "conditionCountAnswer",
                      "source": [
                        {
                          "context": "conditions"
                        }
                      ],
                      "target": [
                        {
                          "context": "conditionItem",
                          "contextType": "variable",
                          "element": "answer",
                          "variable": "conditionCountAnswer"
                        },
                        {
                          "context": "conditionCountAnswer",
                          "contextType": "variable",
                          "element": "value",
                          "transform": "evaluate",
                          "parameter": [
                            {
                              "valueString": "conditions.resource.entry.count()"
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            },
            {
              "name": "meds",
              "source": [
                {
                  "context": "src",
                  "element": "entry",
                  "variable": "medications",
                  "condition": "(resource.link.url.contains('/MedicationStatement?'))"
                }
              ],
              "target": [
                {
                  "contextType": "variable",
                  "transform": "copy",
                  "parameter": [
                    {
                      "valueId": "grp"
                    }
                  ]
                }
              ],
              "rule": [
                {
                  "name": "medEntry",
                  "source": [
                    {
                      "context": "medications",
                      "element": "resource",
                      "variable": "medRes"
                    }
                  ],
                  "target": [
                    {
                      "contextType": "variable",
                      "transform": "copy",
                      "parameter": [
                        {
                          "valueId": "grp"
                        }
                      ]
                    }
                  ],
                  "rule": [
                    {
                      "name": "medItem",
                      "source": [
                        {
                          "context": "medRes",
                          "element": "entry",
                          "variable": "med",
                          "condition": "(resource is MedicationStatement)"
                        }
                      ],
                      "target": [
                        {
                          "context": "grp",
                          "contextType": "variable",
                          "element": "item",
                          "variable": "medsItem"
                        },
                        {
                          "context": "medsItem",
                          "contextType": "variable",
                          "element": "linkId",
                          "transform": "copy",
                          "parameter": [
                            {
                              "valueString": "meds"
                            }
                          ]
                        }
                      ],
                      "rule": [
                        {
                          "name": "medsName",
                          "source": [
                            {
                              "context": "med",
                              "element": "resource",
                              "variable": "medResource"
                            }
                          ],
                          "target": [
                            {
                              "context": "medsItem",
                              "contextType": "variable",
                              "element": "item",
                              "variable": "medsName"
                            },
                            {
                              "context": "medsName",
                              "contextType": "variable",
                              "element": "linkId",
                              "transform": "copy",
                              "parameter": [
                                {
                                  "valueString": "meds-name"
                                }
                              ]
                            }
                          ],
                          "rule": [
                            {
                              "name": "medsNameAnswer",
                              "source": [
                                {
                                  "context": "medResource",
                                  "element": "medication",
                                  "variable": "medMedication"
                                }
                              ],
                              "target": [
                                {
                                  "context": "medsName",
                                  "contextType": "variable",
                                  "element": "answer",
                                  "variable": "medsNameAnswer"
                                },
                                {
                                  "context": "medsNameAnswer",
                                  "contextType": "variable",
                                  "element": "value",
                                  "transform": "evaluate",
                                  "parameter": [
                                    {
                                      "valueString": "medMedication.select(iif(text, text, coding.display.first()))"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "name": "medsStatus",
                          "source": [
                            {
                              "context": "med",
                              "element": "resource",
                              "variable": "medResource"
                            }
                          ],
                          "target": [
                            {
                              "context": "medsItem",
                              "contextType": "variable",
                              "element": "item",
                              "variable": "medsStatus"
                            },
                            {
                              "context": "medsStatus",
                              "contextType": "variable",
                              "element": "linkId",
                              "transform": "copy",
                              "parameter": [
                                {
                                  "valueString": "med-status"
                                }
                              ]
                            }
                          ],
                          "rule": [
                            {
                              "name": "medsStatusAnswer",
                              "source": [
                                {
                                  "context": "medResource",
                                  "variable": "medsMedication"
                                }
                              ],
                              "target": [
                                {
                                  "context": "medsStatus",
                                  "contextType": "variable",
                                  "element": "answer",
                                  "variable": "medsStatusAnswer"
                                },
                                {
                                  "context": "medsStatusAnswer",
                                  "contextType": "variable",
                                  "element": "value",
                                  "transform": "evaluate",
                                  "parameter": [
                                    {
                                      "valueString": "medResource.status"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "name": "medsCategory",
                          "source": [
                            {
                              "context": "med",
                              "element": "resource",
                              "variable": "medResource",
                              "condition": "(category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/medicationrequest-category').exists())"
                            }
                          ],
                          "target": [
                            {
                              "context": "medsItem",
                              "contextType": "variable",
                              "element": "item",
                              "variable": "medsCategory"
                            },
                            {
                              "context": "medsCategory",
                              "contextType": "variable",
                              "element": "linkId",
                              "transform": "copy",
                              "parameter": [
                                {
                                  "valueString": "meds-category"
                                }
                              ]
                            }
                          ],
                          "rule": [
                            {
                              "name": "medsCategoryAnswer",
                              "source": [
                                {
                                  "context": "medResource"
                                }
                              ],
                              "target": [
                                {
                                  "context": "medsCategory",
                                  "contextType": "variable",
                                  "element": "answer",
                                  "variable": "medsCategoryAnswer"
                                },
                                {
                                  "context": "medsCategoryAnswer",
                                  "contextType": "variable",
                                  "element": "value",
                                  "transform": "evaluate",
                                  "parameter": [
                                    {
                                      "valueString": "medResource.category.coding.where(system = 'http://terminology.hl7.org/CodeSystem/medicationrequest-category').code.aggregate(iif($total.empty(), $this, $total & ' ' & $this))"
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}