ART-DECOR® Questionnaires
0.5.0 - ci-build

ART-DECOR® Questionnaires - Local Development build (v0.5.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Questionnaire Data Extraction

Observation-based SDC extraction

Observation-based extraction is enabled by using the sdc-questionnaire-observationExtract extension. This mechanism extracts questionnaire answers as Observation resources and is the simplest SDC extraction approach. It is especially suitable when questionnaire items represent clinical measurements, scores, findings, or patient-reported outcomes.

Question items intended for observation-based extraction SHOULD provide a suitable Questionnaire.item.code, because the extracted Observation.code is derived from the coded questionnaire item. Standard terminologies such as LOINC SHOULD be used whenever possible.

The answer value of the questionnaire item is mapped to the corresponding Observation.value[x].

The extracted Observation.subject is derived from QuestionnaireResponse.subject.

Group items MAY be used to organize extracted observations and can influence the resulting extraction structure depending on the extraction implementation.

Relevant SDC extension:

  • sdc-questionnaire-observationExtract
    • when set on the Questionnaire root: enables observation-based extraction for descendant items
    • when set on a group or item: enables observation-based extraction for that scope
    • value true: indicates that answers should be extracted as Observation resources
  • sdc-questionnaire-observation-extract-category
    • optional classification of extracted observations (e.g. vital-signs)
    • typically set on extracted items (or groups) to populate Observation.category

Example:

Example questionnaire (JSON excerpt)

{
  "resourceType": "Questionnaire",
  "id": "ObservationBasedExtractionExample",
  "url": "http://art-decor.org/fhir/questionnaire/ObservationBasedExtractionExample",
  "name": "ObservationBasedExtractionExample",
  "status": "active",
  "subjectType": ["Patient"],
  "item": [
    {
      "linkId": "1",
      "text": "Body measurements",
      "type": "group",
      "item": [
        {
          "linkId": "1.1",
          "code": [{ "system": "http://loinc.org", "code": "29463-7" }],
          "text": "Body weight in kg",
          "type": "decimal",
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-unit",
              "valueCoding": { "system": "http://unitsofmeasure.org", "code": "kg", "display": "kg" }
            },
            {
              "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationExtract",
              "valueBoolean": true
            },
            {
              "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observation-extract-category",
              "valueCodeableConcept": {
                "coding": [
                  {
                    "system": "http://terminology.hl7.org/CodeSystem/observation-category",
                    "code": "vital-signs"
                  }
                ]
              }
            }
          ]
        },
        {
          "linkId": "1.2",
          "code": [{ "system": "http://loinc.org", "code": "8302-2" }],
          "text": "Body height in cm",
          "type": "decimal",
          "extension": [
            {
              "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-unit",
              "valueCoding": { "system": "http://unitsofmeasure.org", "code": "cm", "display": "cm" }
            },
            {
              "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observationExtract",
              "valueBoolean": true
            },
            {
              "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-observation-extract-category",
              "valueCodeableConcept": {
                "coding": [
                  {
                    "system": "http://terminology.hl7.org/CodeSystem/observation-category",
                    "code": "vital-signs"
                  }
                ]
              }
            }
          ]
        }
      ]
    }
  ]
}

Expected derived Observations (example)

Assuming a QuestionnaireResponse with:

  • linkId = "1.1" -> 72.4
  • linkId = "1.2" -> 181

Derived Observation for weight:

{
  "resourceType": "Observation",
  "status": "final",
  "category": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/observation-category",
          "code": "vital-signs"
        }
      ]
    }
  ],
  "code": {
    "coding": [
      {
        "system": "http://loinc.org",
        "code": "29463-7",
        "display": "Body weight"
      }
    ]
  },
  "subject": {
    "reference": "Patient/example"
  },
  "valueQuantity": {
    "value": 72.4,
    "unit": "kg",
    "system": "http://unitsofmeasure.org",
    "code": "kg"
  }
}

Derived Observation for height:

{
  "resourceType": "Observation",
  "status": "final",
  "category": [
    {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/observation-category",
          "code": "vital-signs"
        }
      ]
    }
  ],
  "code": {
    "coding": [
      {
        "system": "http://loinc.org",
        "code": "8302-2",
        "display": "Body height"
      }
    ]
  },
  "subject": {
    "reference": "Patient/example"
  },
  "valueQuantity": {
    "value": 181,
    "unit": "cm",
    "system": "http://unitsofmeasure.org",
    "code": "cm"
  }
}