FHIR Questionnaire support

Revision as of 13:08, 15 June 2020 by Mdegraauw (talk | contribs) (Intro)

Intro

FHIR Questionnaires are the format to define the various questionnaires used in healthcare to capture data from patients or professionals. Questionnaires are more free-format than FHIR resources, but still constrained. A Questionnaire is basically a nested tree of typed questions, i.e. a question can be a boolean, or a choice of answer options, or free text etc.

ART-DECOR datasets are, basically, a nested tree of typed items. Datasets cover a healthcare domain, ART-DECOR transactions a particular use case. The data types supported by ART-DECOR are similar to those in Questionnaires.

ART-DECOR now supports serializing any transaction as a Questionnaire, in JSON and XML format, and HTML rendering using the open source LHCForms library (other options are planned). Of course this does not make sense for all transactions, but it can serve as an instant prototyping tool, and allows using ART-DECOR as a fine FHIR Questionnaire Management Tool.

The FHIR Questionnaires can be accessed from the ProjectIndex.

DECOR to Questionnaire translation

Serialization

Both XML:

<item>
    <extension url="http://hl7.org/fhir/StructureDefinition/questionnaire-unit">
        <valueCoding>
            <display value="kg"/>
        </valueCoding>
    </extension>
    <linkId value="2.16.840.1.113883.3.1937.99.62.3.2.3--2011-01-28T00:00:00"/>
    <code>
        <system value="http://loinc.org"/>
        <code value="29463-7"/>
        <display value="Body weight"/>
    </code>
    <text value="Gewicht"/>
    <type value="quantity"/>
    <required value="true"/>
    <repeats value="false"/>
</item>

and JSON are supported:

"item": [
    {
        "extension": [
            {
                "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-unit",
                "valueCoding": {"display": "kg"}
            }
        ],
        "linkId": "2.16.840.1.113883.3.1937.99.62.3.2.3--2011-01-28T00:00:00",
        "code": [
            {
                "system": "http://loinc.org",
                "code": "29463-7",
                "display": "Body weight"
            }
        ],
        "text": "Weight",
        "type": "quantity",
        "required": true,
        "repeats": false
    },

Notes:

  • units are added when present in the dataset
  • required is derived from transaction minimumMultiplicity
  • repeats is derived from transaction maximumMultiplicity
  • unique linkId's are made from concept id and effectiveDate

Type conversion

DECOR type FHIR Questionnaire type
group group
boolean boolean
date date
decimal decimal
quantity quantity
string string
text string
code (referring to valueSet) choice
code (referring to complete codeSystem) string
count integer
datetime dateTime
quantity quantity
duration decimal
identifier string
ordinal choice

Notes:

  • DECOR datatype facets translate to Questionnaire properties:
    • default to initial.value[x]
    • fixed to readonly
    • maxLength to maxLength
  • but: facet default on code does not work (Questionnaires expects a Coding, and DECOR default is just a string)
  • Questionnaire.item.enableWhen support is planned as a future enhancement