uz:V1.0.0-alpha.1 FHIR OBC: verschil tussen versies

Uit informatiestandaarden
Ga naar: navigatie, zoeken
k (Main building blocks)
(Use cases)
 
(64 tussenliggende versies door 3 gebruikers niet weergegeven)
Regel 1: Regel 1:
{{Vdraft/InformationBox|This FHIR IG is currently under development and can not be considered stable and ready for use. For questions and change requests regarding this IG, please create a ticket in [{{VersieInfo|BITS|release=V1.0.0|namespace=uz}} BITS].}}
+
{{Vdraft/InformationBox|This FHIR IG is currently under development and can not be considered stable and ready for use. For questions and change requests regarding this IG, please create a ticket in [{{VersieInfo|BITS|release=V1.0.0-alpha.1|namespace=uz}} BITS].}}
  
 
__NUMBEREDHEADINGS__
 
__NUMBEREDHEADINGS__
{{DISPLAYTITLE:FHIR Implementation Guide OBC version {{VersieInfo|OBC|release=V1.0.0|namespace=uz}}}}
+
{{DISPLAYTITLE:FHIR Implementation Guide OBC version {{VersieInfo|OBC|release=V1.0.0-alpha.1|namespace=uz}}}}
  
 
= Introduction =
 
= Introduction =
  
This implementation guide (IG) functions as the initial draft for the pilot phase of a new information standard, Outcome-Based Care (OBC, Dutch: Uitkomstgerichte zorg), version {{VersieInfo|OBC|release=V1.0.0}}. This IG is developed using [https://www.hl7.org/fhir/R4/ HL7 FHIR R4]. It assumes that the reader is familiar with both this version of FHIR and the functional specification [TO-ADD link]. This information standard is inspired by the international [http://hl7.org/fhir/us/sdc/index.html Structured Data Capture (SDC)] implementation guide and tries to follow it where possible.
+
This implementation guide (IG) functions as the initial draft for the pilot phase of a new information standard, Outcome-Based Care (OBC, Dutch: Uitkomstgerichte zorg), version {{VersieInfo|OBC|release=V1.0.0-alpha.1}}. This IG is developed using [https://www.hl7.org/fhir/R4/ HL7 FHIR R4]. It assumes that the reader is familiar with this version of FHIR. This information standard is inspired by the international [http://hl7.org/fhir/us/sdc/index.html Structured Data Capture (SDC)] implementation guide and tries to follow it where possible.
  
Apart from this document, the guidelines as specified in the [[FHIR:V1.0_FHIR_IG_R4|general FHIR Implementation Guide]] apply. In particular, the reader should take note of the Overarching principles and the use of FHIR packages.  
+
Apart from this document, the guidelines as specified in the [[FHIR:V1.0.0-alpha.1_FHIR_IG_R4|general FHIR Implementation Guide]] apply. In particular, the reader should take note of the Overarching principles and the use of FHIR packages.  
  
 
This IG first describes the boundaries and relationships in place, after which the implementation of PROMs in FHIR is described.
 
This IG first describes the boundaries and relationships in place, after which the implementation of PROMs in FHIR is described.
Regel 18: Regel 18:
  
 
== FHIR resources and building blocks ==
 
== FHIR resources and building blocks ==
The PROM questionnaires and response data building blocks within OBC version {{VersieInfo|OBC|release=V1.0.0}} are not based on any publication of the Dutch Health and Care Information Models (Dutch: ‘zorginformatiebouwstenen’ or ‘zibs’), as there are no zibs that represent these building blocks. Therefore, there is no dependency on corresponding nl-core profiles, and mappings to zib concepts are not defined. Currently, there are no plans to create more general nl-core profiles, as no corresponding zibs exist.  
+
The PROM questionnaires and response data building blocks within OBC version {{VersieInfo|OBC|release=V1.0.0-alpha.1}} are not based on any publication of the Dutch Health and Care Information Models (Dutch: "zorginformatiebouwstenen" or "zibs"), as there are no zibs that represent these building blocks. Therefore, there is no dependency on corresponding nl-core profiles, and mappings to zib concepts are not defined. Currently, there are no plans to create more general nl-core profiles, as no corresponding zibs exist.  
  
 
=== Questionnaire ===
 
=== Questionnaire ===
  
 
Each PROM questionnaire is represented through a dedicated FHIR Questionnaire instance. A FHIR Questionnaire is a definitional artifact, which means it defines the questions to be asked, how these should be structured and rendered, and what answers are allowed. More information on structure and rendering of the FHIR Questionnaire instances can be found in [[#Rendering|section 2.4]]. The answer options to each question are represented through terminology resources using ValueSets and CodeSystems.
 
Each PROM questionnaire is represented through a dedicated FHIR Questionnaire instance. A FHIR Questionnaire is a definitional artifact, which means it defines the questions to be asked, how these should be structured and rendered, and what answers are allowed. More information on structure and rendering of the FHIR Questionnaire instances can be found in [[#Rendering|section 2.4]]. The answer options to each question are represented through terminology resources using ValueSets and CodeSystems.
 
The primary purpose of representing PROMs as Questionnaire instances is to establish a canonical identifier for each PROM in the form of a URI. This URI serves as a linkage point connecting every QuestionnaireResponse to their corresponding Questionnaire.
 
  
 
The Questionnaire resource isn't strictly necessary to create a QuestionnaireResponse. However, using FHIR Questionnaire instances for PROMs provides significant benefits through standardized and structured formatting. Each question is included in the Questionnaire as a separate {{fhir|.item}} and has a unique identifier in the corresponding {{fhir|.item.linkId}} element. Additionally, the terminology used in PROMs is represented in FHIR ValueSet and CodeSystem resources and is correctly linked to the questions in the Questionnaire, ensuring all definitions are easily accessible for implementers.
 
The Questionnaire resource isn't strictly necessary to create a QuestionnaireResponse. However, using FHIR Questionnaire instances for PROMs provides significant benefits through standardized and structured formatting. Each question is included in the Questionnaire as a separate {{fhir|.item}} and has a unique identifier in the corresponding {{fhir|.item.linkId}} element. Additionally, the terminology used in PROMs is represented in FHIR ValueSet and CodeSystem resources and is correctly linked to the questions in the Questionnaire, ensuring all definitions are easily accessible for implementers.
Regel 30: Regel 28:
 
=== QuestionnaireResponse ===
 
=== QuestionnaireResponse ===
  
The collection of outcomes and scores of a PROM is represented in a FHIR QuestionnaireResponse profile. For every completed PROM, an instance conforming to the [https://simplifier.net/nictiz-r4-outcomebasedcare/obcquestionnaireresponse obc-QuestionnaireResponse] profile is created. This profile features a structured set of answers with linked ids to the answered questions. The QuestionnaireResponse also includes the completion date and the language of the completed form.
+
The collection of outcomes and scores of a PROM is represented in a FHIR QuestionnaireResponse profile. For every completed PROM, an instance conforming to the [https://simplifier.net/nictiz-r4-outcomebasedcare/obcresponsedata obc-ResponseData] profile is created. This profile features a structured set of answers with linked ids to the answered questions. The QuestionnaireResponse also includes the completion date and the language of the completed form.
  
 
The QuestionnaireResponse contains enough information about the questions asked that it can be interpreted somewhat independently from the Questionnaire it is based on. In other words, no access to the Questionnaire is necessary in order to extract basic information from a QuestionnaireResponse.
 
The QuestionnaireResponse contains enough information about the questions asked that it can be interpreted somewhat independently from the Questionnaire it is based on. In other words, no access to the Questionnaire is necessary in order to extract basic information from a QuestionnaireResponse.
Regel 45: Regel 43:
 
| Antwoordgegevens
 
| Antwoordgegevens
 
| QuestionnaireResponse
 
| QuestionnaireResponse
| {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/obc-QuestionnaireResponse|nictiz.fhir.nl.r4.obc|pkgVersion={{VersieInfo|nictiz.fhir.nl.r4.obc|release=V1.0.0-beta.1|namespace=obc}}}}
+
| {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/obc-ResponseData|nictiz.fhir.nl.r4.outcomebasedcare|pkgVersion={{VersieInfo|nictiz.fhir.nl.r4.outcomebasedcare|release=V1.0.0-alpha.1|namespace=obc}}}}
 
|}
 
|}
  
Regel 53: Regel 51:
 
=== Questionnaire instances ===
 
=== Questionnaire instances ===
  
Each instance of a FHIR Questionnaire contains the following elements:
+
Each FHIR Questionnaire instance includes specific elements that correspond to functional definitions in the ART-DECOR dataset. This dataset offers a concise overview of the content and structure of each questionnaire. The actual mapping of FHIR elements to these functional definitions occurs at the [https://docs.art-decor.org/documentation/ "Scenario" and "Rules"] levels within ART-DECOR. However, the following table presents the dataset's structure, independent of the mappings to the "Scenario" and "Rules" levels:
 +
 
 
{| class="wikitable"
 
{| class="wikitable"
 +
! style="font-weight: bold;text-align:left;" | Concept in Dataset
 +
! style="font-weight: bold;text-align:left;" | Mapping
 
! style="font-weight: bold;text-align:left;" | Type
 
! style="font-weight: bold;text-align:left;" | Type
! style="font-weight: bold;text-align:left;" | Concept
+
! style="font-weight: bold;text-align:left;" | Remark
! style="font-weight: bold;text-align:left;" | Mapping
 
 
|-
 
|-
| uri
+
| '''Metadata'''
| Questionnaire Coding system
+
|
| Questionnaire.Coding.system
+
|
 +
|
 
|-
 
|-
| code
+
|     Vragenlijstcode
| Questionnaire code
+
| Questionnaire.code
| Questionnaire.Coding.code
+
| string
 +
|
 
|-
 
|-
 +
|     Naam vragenlijst
 +
| Questionnaire.title
 
| string
 
| string
| Questionnaire code display
+
|
| Questionnaire.Coding.display
 
|-
 
| string
 
| Title of Questionnaire
 
| Questionnaire.title
 
 
|-
 
|-
 +
|     Eigenaar/Uitgever
 +
| Questionnaire.copyright
 
| string
 
| string
| Publisher information
+
|
| Questionnaire.publisher
 
 
|-
 
|-
 +
|     Versie
 +
| Questionnaire.version
 
| string
 
| string
| Version of Questionnaire
+
|
| Questionnaire.version
 
 
|-
 
|-
 +
|     Taal
 +
| Questionnaire.meta.language
 
| code
 
| code
| Language of Questionnaire
+
|
| Questionnaire.meta.language
 
 
|-
 
|-
 +
|     Domein
 +
| Questionnaire.useContext.valueCodeableConcept
 
| coding
 
| coding
| Domain code of Questionnaire
+
| Questionnaire.useContext.code must be populated with the code [https://hl7.org/fhir/r4/codesystem-usage-context-type.html#usage-context-type-focus ''focus'']
| Questionnaire.usageContext.code
 
 
|-
 
|-
| any
+
|     Licentie-informatie
| Domain of Questionnaire
+
| Questionnaire.copyright
| Questionnaire.usageContext.value
+
| markdown (string)
 +
|
 
|-
 
|-
| markdown (string)
+
| '''Content Questionnaire'''
| License/Author information
+
|
| Questionnaire.copyright
+
|
 +
|
 
|-
 
|-
 +
|     Instructie
 +
| Questionnaire.item.text
 
| string
 
| string
| Instructions for a question or group of questions
+
| Questionnaire.item.readOnly must be set to ''true''
 +
|-
 +
|       Question
 
| Questionnaire.item.text
 
| Questionnaire.item.text
 +
| string
 +
|
 
|-
 
|-
| boolean
+
|     Totaalscore
| Read-only instructions for a question or group of questions
+
| Questionnaire.item.text
| Questionnaire.item.readOnly
+
| string
 +
| [https://hl7.org/fhir/R4/extension-questionnaire-hidden.html Questionnaire.item.extension:hidden] must be set to ''true''
 
|-
 
|-
| ??coding
+
| '''Rekenregels'''
| Instruction format
+
|
| Questionnaire.item.extension:renderingStyle??
+
|
 +
|
 
|-
 
|-
 +
|     Scorerichting item
 +
| Questionnaire.item
 
| string
 
| string
| Question
+
| [https://hl7.org/fhir/R4/extension-questionnaire-hidden.html Questionnaire.item.extension:hidden] must be set to ''true''
| Questionnaire.item.text
 
 
|-
 
|-
| code
+
|     Scoreberekening
| Value type of question
 
| Questionnaire.item.type
 
|-
 
| coding
 
| Flag for sensitive questions
 
| Questionnaire.item.linkId.extension:sensitivityFlag
 
|-
 
| ??coding
 
| Question format
 
| Questionnaire.item.extension:renderingStyle??
 
|-
 
| string
 
| ??Score rating for questionnaire??
 
 
| Questionnaire.item
 
| Questionnaire.item
|-
 
| boolean
 
| Read-only score rating
 
| Questionnaire.item.readOnly
 
|-
 
| boolean
 
| Hidden score rating
 
| Questionnaire.item.extension:hidden
 
|-
 
 
| string
 
| string
| Total score for questionnaire
+
| [https://hl7.org/fhir/R4/extension-questionnaire-hidden.html Questionnaire.item.extension:hidden] must be set to ''true''
| Questionnaire.item
 
 
|-
 
|-
| boolean
+
|     Interpretatie score
| Hidden total score
 
| Questionnaire.item.extension:hidden
 
|-
 
| string
 
| Score calculation rules for questionnaire
 
 
| Questionnaire.item
 
| Questionnaire.item
|-
 
| boolean
 
| Read-only score calculation rules
 
| Questionnaire.item.readOnly
 
|-
 
| boolean
 
| Hidden score calculation rules
 
| Questionnaire.item.extension:hidden
 
|-
 
 
| string
 
| string
| Interpretation score calculation rules for questionnaire
+
| [https://hl7.org/fhir/R4/extension-questionnaire-hidden.html Questionnaire.item.extension:hidden] must be set to ''true''
| Questionnaire.item
 
 
|-
 
|-
| boolean
 
| Read-only interpretation score calculation rules
 
| Questionnaire.item.readOnly
 
|-
 
| boolean
 
| Hidden interpretation score calculation rules
 
| Questionnaire.item.extension:hidden
 
 
|}
 
|}
 
+
Additionally, instances include concepts that are not directly represented in the dataset, such as formatting. Instead, these concepts are found within the "Rules" level in ART-DECOR:
=== QuestionnaireResponse profile ===
 
The QuestionnaireResponse profile is connected to the functional definitions in ART-DECOR. It includes mappings to all data elements within the functional data set (prefixed with ‘obc-dataelement-10-').
 
 
 
 
{| class="wikitable"
 
{| class="wikitable"
 +
! style="font-weight: bold;text-align:left;" | Concept in Rules
 +
! style="font-weight: bold;text-align:left;" | Mapping
 
! style="font-weight: bold;text-align:left;" | Type
 
! style="font-weight: bold;text-align:left;" | Type
! style="font-weight: bold;text-align:left;" | Id
 
! style="font-weight: bold;text-align:left;" | Concept
 
! style="font-weight: bold;text-align:left;" | Cardinality
 
! style="font-weight: bold;text-align:left;" | Profile
 
! style="font-weight: bold;text-align:left;" | Mapping
 
 
|-
 
|-
 +
| Canonical URI
 +
| Questionnaire.url
 +
| uri
 +
|-
 +
| '''Content Questionnaire'''
 
|  
 
|  
| 1405
+
|
| Antwoordgegevens
 
| 0 .. *
 
| [http://nictiz.nl/fhir/StructureDefinition/obc-QuestionnaireResponse obc-QuestionnaireResponse]
 
| QuestionnaireResponse
 
 
|-
 
|-
| Any??
+
|     Instructie
| 14??
+
| [http://hl7.org/fhir/R4/extension-rendering-markdown.html Questionnaire.item.extension:renderingMarkdown]
| Vraag
+
| string
| 0 .. 1
 
| [http://nictiz.nl/fhir/StructureDefinition/obc-QuestionnaireResponse obc-QuestionnaireResponse]
 
| QuestionnaireResponse.item??
 
 
|-
 
|-
| Any
+
|       Question
| 1404
+
| [https://build.fhir.org/ig/HL7/fhir-security-label-ds4p/StructureDefinition-extension-inline-sec-label.html Questionnaire.item.extension:sensitivityFlag]
| Antwoord
+
| coding
| 0 .. 1
 
| [http://nictiz.nl/fhir/StructureDefinition/obc-QuestionnaireResponse obc-QuestionnaireResponse]
 
| QuestionnaireResponse.answer.value[x]
 
|-
 
| dateTime
 
| 1406
 
| InvulDatumTijd
 
| 0 .. 1
 
| [http://nictiz.nl/fhir/StructureDefinition/obc-QuestionnaireResponse obc-QuestionnaireResponse]
 
| QuestionnaireResponse.authored
 
|-
 
| reference
 
| 1407
 
| Onderwerp
 
| 0 .. 1
 
| [http://nictiz.nl/fhir/StructureDefinition/obc-QuestionnaireResponse obc-QuestionnaireResponse]
 
| QuestionnaireResponse.subject
 
|-
 
| reference
 
| 1440
 
| IngevuldeVragenlijst
 
| 0 .. 1
 
| [http://nictiz.nl/fhir/StructureDefinition/obc-QuestionnaireResponse obc-QuestionnaireResponse]
 
| QuestionnaireResponse.questionnaire
 
 
|-
 
|-
 +
|       Question
 +
| [http://hl7.org/fhir/R4/extension-rendering-markdown.html Questionnaire.item.extension:renderingMarkdown]
 +
| string
 
|}
 
|}
 +
* For this project, it has been agreed to map all functional data elements to the operationalization fields in ART-DECOR.
 +
* The publisher concept is mapped to {{fhir|.publisher}}. This concept is consistent across the project and remains unchanged for all Questionnaire instances.
 +
* The concept of "Eigenaar/Uitgever" (English: Author/Publisher) is mapped to {{fhir|.copyright}}. This is because the concept encompasses author information, which lacks a dedicated field in the Questionnaire resource. The {{fhir|.copyright}} field addresses both author and license information for this project.
 +
* For this pilot, "Content Questionnaire" includes the following content folders: Content NRS-pijn intensiteit, Content FACIT-F, IBD-control, Content Depressie SF 4a, and Content Global Health-10.
 +
* The "Question" refers to each individual element within the Instructie folder.
 +
* The "Instructie" data (English: Instruction) has been set to read-only, because it is intended for users to read, not to respond to. The "Rekenregels" data (English: Calculation rules) is hidden from users, as it is used for calculations, comparing results, and providing context on the scores.
  
== Rendering ==
+
=== QuestionnaireResponse profile ===
A PROM questionnaire may take the form of a straightforward flat list of questions, but may also be hierarchically organized in groups and sub-groups including patient instructions. Likewise, it can contain a wide range of question types, varying from simple fill-out fields to multiple-choice questions, scales and questions with dependency's to previous answers. As a result, different styles can be rendered for particular items.
+
The QuestionnaireResponse profile is connected to the functional definitions in ART-DECOR. It includes mappings to all data elements within the functional data set (prefixed with "obc-dataelement-10-").
  
The FHIR base Questionnaire resource offers limited rendering capabilities, with item labels and text elements displayed sequentially, and choice options provided through renderer-determined controls. For more control, the core specification defines additional elements and extensions, including the [https://build.fhir.org/ig/HL7/sdc/rendering.html rendering-style] extension. This extension allows the full capabilities of the HTML style attribute to be applied to items in a questionnaire, such as changing font or color, and adjusting font styles like bold, italics, or small caps. Conformant systems may ignore this extension unless the rendering-styleSensitive flag is set to true.
+
Each profile (implicitly; this will be explicitly added in a subsequent version) contains a Patient building block with cardinality 1..1 M. This patient is the subject of the PROM questionnaire, and is referenced from the ResponseData building block. Therefore, a reference to a Patient resource conforming to the nl-core-Patient profile is expected in {{fhir|QuestionnaireResponse.subject}}.
  
The JSON snippet below is an example of a Questionnaire instance that contains the rendering-style extension to make the item partially bold.
+
== Questionnaire URL ==
  
[INSERT SNIPPET]
+
The primary purpose of representing PROMs as Questionnaire instances is to establish a canonical identifier for each PROM in the form of a URI. This URI serves as a linkage point connecting every QuestionnaireResponse to their corresponding Questionnaire. A Questionnaire is referenced by other resources using its canonical URL, which is composed of a base URL followed by a UID generated by ART-DECOR: <pre>http://decor.nictiz.nl/fhir/Questionnaire/2.16.840.8.113882.1.2.3.44.60.140.27.9--12345673145430</pre>
  
 
== Questionnaire versioning ==
 
== Questionnaire versioning ==
PROMs are subject to change over time, with alterations or additions made to their questions and answer options, as well as to the underlying algorithm used to calculate the scores. Any changes made to these PROMs are recorded and disseminated through ?Amigo?. To accurately analyse PSOM (PROMs Standard Operating Model) data, it is crucial to determine which version of the PROM was filled out by the subject. This can be done by matching the PROM version with the Amigo reference number.
+
PROMs are subject to change over time, with alterations or additions made to their questions and answer options, as well as to the underlying algorithm used to calculate the scores. Any changes made to these PROMs are recorded and disseminated through ?Amigo?. Since PROMs might develop through time, it is crucial to determine which version of the PROM was filled out by the subject.
  
In FHIR, the version of a PROMs can be registered in the {{fhir|Questionnaire.version element}}. A Questionnaire is referenced from other resources by its [https://www.hl7.org/fhir/r4/references.html#canonical canonical URL]. To reference a particular version of a Questionnaire, users must combine the canonical URL and version using a pipe character in the format: [canonicalURL]|[version]. When users refer to a Questionnaire with just the {{fhir|.url}}, they automatically refer to the latest version.
+
In FHIR, the version of a PROM can be registered in the {{fhir|Questionnaire.version}} element. A Questionnaire is referenced in a QuestionnaireResponse (and possibly other resources) by its [https://www.hl7.org/fhir/r4/references.html#canonical canonical URL]. To reference a particular version of a Questionnaire, users must combine the canonical URL and version using a pipe character in the format: [canonicalURL]|[version]. When users refer to a Questionnaire with just the {{fhir|.url}}, they automatically refer to the latest version.
  
However, the definition of 'latest version' may vary for Amigo compared to what the PROMs provider may consider latest. Therefore, to ensure clarity about which version of the PROMs is requested and collected, any references in the {{fhir|QuestionnaireResponse.questionnaire}} SHALL always include a specific version.
+
However, the definition of "latest version" may vary for Amigo compared to what the PROMs provider may consider latest. Therefore, to ensure clarity about which version of the PROM is requested and collected, any references in the {{fhir|QuestionnaireResponse.questionnaire}} SHALL always include a specific version.
  
 
To note:
 
To note:
 
*The assumption is that all PROMs will be registered with a version number.
 
*The assumption is that all PROMs will be registered with a version number.
*Amigo will be responsible for assigning version numbers to ensure these reflect a consistent standard approach for the organisation.
+
*Questionnaire Authors/Publishers will be responsible for assigning version numbers to maintain a consistent standard across the organization. Amigo will ensure that these versions are kept up to date.
 +
 
 +
== Rendering ==
 +
A PROM questionnaire may take the form of a straightforward flat list of questions, but may also be hierarchically organized in groups and subgroups including patient instructions. Likewise, it can contain a wide range of question types, varying from simple fill-out fields to multiple-choice questions, scales and questions with dependencies to previous answers. As a result, it might be necessary to render items in a questionnaire.
 +
 
 +
The FHIR base Questionnaire resource offers limited rendering capabilities, with item labels and text elements displayed sequentially, and choice options provided through renderer-determined controls. For more control, the core specification defines additional elements and extensions, including the [http://hl7.org/fhir/R4/extension-rendering-markdown.html rendering-markdown] extension, which leverages [https://github.github.com/gfm/ GitHub Flavored Markdown (GFM)] for text formatting, like adding emphasis. While systems aren't required to support markdown, strings should remain readable without markdown processing.
 +
 
 +
The JSON snippet below provides an example of a Questionnaire instance that uses the rendering-markdown extension to emphasize part of an item.
 +
 
 +
<pre>
 +
{
 +
  "item": [
 +
    {
 +
      "linkId": "1.2",
 +
      "code": [
 +
        {
 +
          "system": "http://loinc.org",
 +
          "code": "12345-6"
 +
        }
 +
      ],
 +
      "text": "Little interest or pleasure in doing things",
 +
      "extension": [
 +
        {
 +
          "url": "http://hl7.org/fhir/uv/rendering-markdown/StructureDefinition/rendering-markdown",
 +
          "valueMarkdown": "**Little** interest or pleasure in doing things"
 +
        }
 +
      ],
 +
      "type": "string",
 +
      "required": true
 +
    }
 +
  ]
 +
}
 +
</pre>
  
 
== Sensitive questions ==
 
== Sensitive questions ==
Regel 251: Regel 229:
 
Every PROM may include sensitive questions, indicating that the answers might contain sensitive information. As a result, a specific level of authorization is required to read these answers.
 
Every PROM may include sensitive questions, indicating that the answers might contain sensitive information. As a result, a specific level of authorization is required to read these answers.
  
The Data Segmentation for Privacy project defined the Inline Security Label extension. This extension enables flagging elements with a security label, for example indicating their sensitivity, and SHALL be added to all relevant {{fhir|.item}} elements as {{fhir|.item.linkId.extension:sensitivityFlag}} in both the Questionnaire and QuestionnaireResponse instances. The {{fhir|.valueCoding}} SHALL be populated with the code PDS from the InformationSensitivityPolicy ValueSet to indicate this data item contains sensitive information reported by the patient.
+
The [http://hl7.org/fhir/uv/security-label-ds4p/ Data Segmentation for Privacy project] defined the [https://build.fhir.org/ig/HL7/fhir-security-label-ds4p/StructureDefinition-extension-inline-sec-label.html Inline Security Label extension]. This extension enables flagging elements with a security label, for example indicating their sensitivity, and SHALL be added to all relevant {{fhir|.item}} elements as {{fhir|.item.extension:sensitivityFlag}} in both the Questionnaire and QuestionnaireResponse instances. The {{fhir|.valueCoding}} SHALL be populated with the code ''PDS'' from the [http://hl7.org/fhir/R4/v3/InformationSensitivityPolicy/vs.html InformationSensitivityPolicy ValueSet] to indicate this data item contains sensitive information reported by the patient.
  
 
== Scores and calculation rules ==
 
== Scores and calculation rules ==
 
The Questionnaire definition includes information on how to calculate the total score, the weight for each question, and how to interpret the total score. Currently, this information is provided in {{fhir|.item}} elements, where the calculation rules are read-only instructions and hidden from users completing the forms through an extension.
 
The Questionnaire definition includes information on how to calculate the total score, the weight for each question, and how to interpret the total score. Currently, this information is provided in {{fhir|.item}} elements, where the calculation rules are read-only instructions and hidden from users completing the forms through an extension.
  
In the next version of the Questionnaire definition, the plan is to incorporate dynamic calculation rules using structured data capture, making the Questionnaire more structured and flexible.
+
In the next version of the Questionnaire definition, it is the intention to incorporate dynamic calculation rules using structured data capture, making the Questionnaire more structured and flexible.
 +
 
 +
=Use cases=
 +
==Use case: retrieve questionnaire reference==
 +
==Use case: retrieve questionnaire reference==
 +
==Use case: send questionnaire response==
 +
===Client renders questionnaire form===
 +
The X should present the questions defined in the retrieved Questionnaire resource to the user, in accordance with their type, overall structure of the questionnaire, and restrictions on the answers. OBC defines the following minimal subset of [https://www.hl7.org/fhir/stu3/valueset-item-type.html Questionnaire item types] that a X MUST support:
 +
* Group
 +
* Display
 +
* Boolean
 +
* Decimal
 +
* Integer
 +
* Date / dateTime / time
 +
* String / text
 +
* Choice / open-choice, where the possible answers are defined using <code>option</code> elements
 +
* Quantity
 +
 
 +
The following elements of the <code>Questionnaire.item</code> element MUST be supported:
 +
* <code>Questionnaire.item.enableWhen</code>
 +
* <code>Questionnaire.item.required</code>
 +
* <code>Questionnaire.item.readOnly</code>
 +
* <code>Questionnaire.item.option</code>
 +
 
 +
In addition, the following extensions MUST be supported:
 +
* [http://hl7.org/fhir/R4/extension-translation.html translation]
 +
* [http://hl7.org/fhir/R4/extension-questionnaire-hidden.html hidden]
 +
* [http://hl7.org/fhir/R4/extension-rendering-markdown.html markdown]
 +
* [http://hl7.org/fhir/R4/extension-questionnaire-itemcontrol.html itemControl]
 +
* [http://hl7.org/fhir/R4/extension-minvalue.html minValue]
 +
* [http://hl7.org/fhir/R4/extension-maxvalue.html maxValue]
 +
* [http://hl7.org/fhir/R4/extension-minlength.html minLength]
 +
* [https://www.hl7.org/fhir/R4/extension-maxdecimalplaces.html maxDecimalPlaces]
 +
* [https://www.hl7.org/fhir/R4/extension-questionnaire-unit.html unit]
 +
 
 +
A X MAY support other Questionnaire item types as well. However, if a PHR is unable to process any one part in the Questionnaire, it MUST reject the Questionnaire altogether, see below.
 +
HIER GEBLEVEN
 +
'''Note''': for known questionnaires, a PHR may choose to use hardcoded over generated forms. However:
 +
* A PHR implementing this information standard should always be able to generate a form for the minimal Questionnaire requirements.
 +
* Currently, no coding system exists to identify known questionnaires. Known questionnaires might be recognized by the reference in the QuestionnaireProvisioningTask or by the Questionnaire.url field, which presents the canonical URL for the Questionnaire resource (even if it served elsewhere). Although the URL in the XIS reference or Questionnaire.url MUST be version specific, the PHR MUST check whether the referenced Questionnaire resource matches the one it has hardcoded
 +
===Multiple-choice questions in FHIR===
 +
 
 +
Unfortunately, the FHIR core documention for the Questionnaire and QuestionnaireResponse resources is somewhat confusing and actually contains an error in the topic of multiple-choice questions. This section is meant to clarify the use of multiple-choice type questions in FHIR STU3.
 +
 
 +
In FHIR STU3 there are two scenarios for multiple-choice questions: in the first scenario, the answer MUST come from a list of predefined options, while in the second scenario, the user MAY alternatively provide a custom answer. In a Questionnaire resource, to define a multiple-choice question, <code>item.type</code> MUST be set to "choice" for the first scenario, or "open-choice" for the second scenario. The answer options MUST be defined using either:
 +
* The <code>Questionnaire.item.options</code> element, which contains a reference to a ValueSet with the possible answers. '''Note''': support for this mechanism is not required for this information standard.
 +
* Using one or more <code>Questionnaire.item.option</code> elements, with possible answers defined as <code>valueCode</code>. '''Note''': although the Questionnaire resource defines <code>item.option.value[x]</code> as a polymorphic element with multiple types, ''only coding is actually allowed''. In the relevant profile, this element is therefore restricted to the coding type.
 +
 
 +
Likewise, the QuestionnaireResponse resource should capture the answer using <code>QuestionnaireResponse.item.answer.valueCode</code>:
 +
* If the user selects one of the predefined answers, it should be captured in the answer using the <code>code</code> (and if present, <code>system</code>) elements of the <code>valueCode</code>.
 +
* If the question is of type "open-choice" and the user provides an alternative answer, it should be captured using the <code>display</code> element of the <code>valueCode</code>.
 +
 
 +
Questionnaire example:
 +
<syntaxhighlight lang="xml">
 +
<item>
 +
    <linkId value="example"/>
 +
    <text value="Example question"/>
 +
    <type value="choice"/>
 +
    <option>
 +
        <valueCoding>
 +
            <code value="EO1"/>
 +
            <display value="Example option 1"/>
 +
        </valueCoding>
 +
    </option>
 +
    <option>
 +
        <valueCoding>
 +
            <code value="EO2"/>
 +
            <display value="Example option 2"/>
 +
        </valueCoding>
 +
    </option>
 +
</item>
 +
</syntaxhighlight>
 +
 
 +
QuestionnaireResponse example:
 +
<syntaxhighlight lang="xml">
 +
<item>
 +
    <linkId value="example"/>
 +
    <answer>
 +
        <valueCoding>
 +
            <code value="EO1"/>
 +
            <display value="Example option 1"/>
 +
        </valueCoding>
 +
    </answer>
 +
</item>
 +
</syntaxhighlight>

Huidige versie van 24 dec 2024 om 16:52

Icoon Nictiz Cirkel Informatie Oranje.svg

This FHIR IG is currently under development and can not be considered stable and ready for use. For questions and change requests regarding this IG, please create a ticket in BITS.



1 Introduction

This implementation guide (IG) functions as the initial draft for the pilot phase of a new information standard, Outcome-Based Care (OBC, Dutch: Uitkomstgerichte zorg), version 1.0.0-alpha.1. This IG is developed using HL7 FHIR R4. It assumes that the reader is familiar with this version of FHIR. This information standard is inspired by the international Structured Data Capture (SDC) implementation guide and tries to follow it where possible.

Apart from this document, the guidelines as specified in the general FHIR Implementation Guide apply. In particular, the reader should take note of the Overarching principles and the use of FHIR packages.

This IG first describes the boundaries and relationships in place, after which the implementation of PROMs in FHIR is described.

2 Boundaries and relationships

2.1 Boundaries

As mentioned in the introduction, this IG serves as a precursor for the pilot phase of the new information standard OBC. This version of the IG focuses solely on the manifestation of PROM questionnaires and their corresponding answers in FHIR. It does not include clinical data or use cases for data exchange, as the primary goal of the pilot is to evaluate the feasibility of implementing FHIR in this context. It is the intention to expand the scope in future versions of the IG to include clinical data and data exchange use cases, ultimately aiming to develop OBC into a comprehensive information standard.

2.2 FHIR resources and building blocks

The PROM questionnaires and response data building blocks within OBC version 1.0.0-alpha.1 are not based on any publication of the Dutch Health and Care Information Models (Dutch: "zorginformatiebouwstenen" or "zibs"), as there are no zibs that represent these building blocks. Therefore, there is no dependency on corresponding nl-core profiles, and mappings to zib concepts are not defined. Currently, there are no plans to create more general nl-core profiles, as no corresponding zibs exist.

2.2.1 Questionnaire

Each PROM questionnaire is represented through a dedicated FHIR Questionnaire instance. A FHIR Questionnaire is a definitional artifact, which means it defines the questions to be asked, how these should be structured and rendered, and what answers are allowed. More information on structure and rendering of the FHIR Questionnaire instances can be found in section 2.4. The answer options to each question are represented through terminology resources using ValueSets and CodeSystems.

The Questionnaire resource isn't strictly necessary to create a QuestionnaireResponse. However, using FHIR Questionnaire instances for PROMs provides significant benefits through standardized and structured formatting. Each question is included in the Questionnaire as a separate .item and has a unique identifier in the corresponding .item.linkId element. Additionally, the terminology used in PROMs is represented in FHIR ValueSet and CodeSystem resources and is correctly linked to the questions in the Questionnaire, ensuring all definitions are easily accessible for implementers.

2.2.2 QuestionnaireResponse

The collection of outcomes and scores of a PROM is represented in a FHIR QuestionnaireResponse profile. For every completed PROM, an instance conforming to the obc-ResponseData profile is created. This profile features a structured set of answers with linked ids to the answered questions. The QuestionnaireResponse also includes the completion date and the language of the completed form.

The QuestionnaireResponse contains enough information about the questions asked that it can be interpreted somewhat independently from the Questionnaire it is based on. In other words, no access to the Questionnaire is necessary in order to extract basic information from a QuestionnaireResponse.

2.2.3 Main building blocks

Building block (EN) Building block (NL) FHIR resource FHIR profile
ResponseData Antwoordgegevens QuestionnaireResponse http://nictiz.nl/fhir/StructureDefinition/obc-ResponseData

Note that each PROM questionnaire building block in the functional data set is represented by a separate Questionnaire instance. However, these are not listed here, but are instead added as MISSING instances to the FHIR package.

2.3 Mappings between profiles and data set

2.3.1 Questionnaire instances

Each FHIR Questionnaire instance includes specific elements that correspond to functional definitions in the ART-DECOR dataset. This dataset offers a concise overview of the content and structure of each questionnaire. The actual mapping of FHIR elements to these functional definitions occurs at the "Scenario" and "Rules" levels within ART-DECOR. However, the following table presents the dataset's structure, independent of the mappings to the "Scenario" and "Rules" levels:

Concept in Dataset Mapping Type Remark
Metadata
    Vragenlijstcode Questionnaire.code string
    Naam vragenlijst Questionnaire.title string
    Eigenaar/Uitgever Questionnaire.copyright string
    Versie Questionnaire.version string
    Taal Questionnaire.meta.language code
    Domein Questionnaire.useContext.valueCodeableConcept coding Questionnaire.useContext.code must be populated with the code focus
    Licentie-informatie Questionnaire.copyright markdown (string)
Content Questionnaire
    Instructie Questionnaire.item.text string Questionnaire.item.readOnly must be set to true
      Question Questionnaire.item.text string
    Totaalscore Questionnaire.item.text string Questionnaire.item.extension:hidden must be set to true
Rekenregels
    Scorerichting item Questionnaire.item string Questionnaire.item.extension:hidden must be set to true
    Scoreberekening Questionnaire.item string Questionnaire.item.extension:hidden must be set to true
    Interpretatie score Questionnaire.item string Questionnaire.item.extension:hidden must be set to true

Additionally, instances include concepts that are not directly represented in the dataset, such as formatting. Instead, these concepts are found within the "Rules" level in ART-DECOR:

Concept in Rules Mapping Type
Canonical URI Questionnaire.url uri
Content Questionnaire
    Instructie Questionnaire.item.extension:renderingMarkdown string
      Question Questionnaire.item.extension:sensitivityFlag coding
      Question Questionnaire.item.extension:renderingMarkdown string
  • For this project, it has been agreed to map all functional data elements to the operationalization fields in ART-DECOR.
  • The publisher concept is mapped to .publisher. This concept is consistent across the project and remains unchanged for all Questionnaire instances.
  • The concept of "Eigenaar/Uitgever" (English: Author/Publisher) is mapped to .copyright. This is because the concept encompasses author information, which lacks a dedicated field in the Questionnaire resource. The .copyright field addresses both author and license information for this project.
  • For this pilot, "Content Questionnaire" includes the following content folders: Content NRS-pijn intensiteit, Content FACIT-F, IBD-control, Content Depressie SF 4a, and Content Global Health-10.
  • The "Question" refers to each individual element within the Instructie folder.
  • The "Instructie" data (English: Instruction) has been set to read-only, because it is intended for users to read, not to respond to. The "Rekenregels" data (English: Calculation rules) is hidden from users, as it is used for calculations, comparing results, and providing context on the scores.

2.3.2 QuestionnaireResponse profile

The QuestionnaireResponse profile is connected to the functional definitions in ART-DECOR. It includes mappings to all data elements within the functional data set (prefixed with "obc-dataelement-10-").

Each profile (implicitly; this will be explicitly added in a subsequent version) contains a Patient building block with cardinality 1..1 M. This patient is the subject of the PROM questionnaire, and is referenced from the ResponseData building block. Therefore, a reference to a Patient resource conforming to the nl-core-Patient profile is expected in QuestionnaireResponse.subject.

2.4 Questionnaire URL

The primary purpose of representing PROMs as Questionnaire instances is to establish a canonical identifier for each PROM in the form of a URI. This URI serves as a linkage point connecting every QuestionnaireResponse to their corresponding Questionnaire. A Questionnaire is referenced by other resources using its canonical URL, which is composed of a base URL followed by a UID generated by ART-DECOR:

http://decor.nictiz.nl/fhir/Questionnaire/2.16.840.8.113882.1.2.3.44.60.140.27.9--12345673145430

2.5 Questionnaire versioning

PROMs are subject to change over time, with alterations or additions made to their questions and answer options, as well as to the underlying algorithm used to calculate the scores. Any changes made to these PROMs are recorded and disseminated through ?Amigo?. Since PROMs might develop through time, it is crucial to determine which version of the PROM was filled out by the subject.

In FHIR, the version of a PROM can be registered in the Questionnaire.version element. A Questionnaire is referenced in a QuestionnaireResponse (and possibly other resources) by its canonical URL. To reference a particular version of a Questionnaire, users must combine the canonical URL and version using a pipe character in the format: [canonicalURL]|[version]. When users refer to a Questionnaire with just the .url, they automatically refer to the latest version.

However, the definition of "latest version" may vary for Amigo compared to what the PROMs provider may consider latest. Therefore, to ensure clarity about which version of the PROM is requested and collected, any references in the QuestionnaireResponse.questionnaire SHALL always include a specific version.

To note:

  • The assumption is that all PROMs will be registered with a version number.
  • Questionnaire Authors/Publishers will be responsible for assigning version numbers to maintain a consistent standard across the organization. Amigo will ensure that these versions are kept up to date.

2.6 Rendering

A PROM questionnaire may take the form of a straightforward flat list of questions, but may also be hierarchically organized in groups and subgroups including patient instructions. Likewise, it can contain a wide range of question types, varying from simple fill-out fields to multiple-choice questions, scales and questions with dependencies to previous answers. As a result, it might be necessary to render items in a questionnaire.

The FHIR base Questionnaire resource offers limited rendering capabilities, with item labels and text elements displayed sequentially, and choice options provided through renderer-determined controls. For more control, the core specification defines additional elements and extensions, including the rendering-markdown extension, which leverages GitHub Flavored Markdown (GFM) for text formatting, like adding emphasis. While systems aren't required to support markdown, strings should remain readable without markdown processing.

The JSON snippet below provides an example of a Questionnaire instance that uses the rendering-markdown extension to emphasize part of an item.

{
  "item": [
    {
      "linkId": "1.2",
      "code": [
        {
          "system": "http://loinc.org",
          "code": "12345-6"
        }
      ],
      "text": "Little interest or pleasure in doing things",
      "extension": [
        {
          "url": "http://hl7.org/fhir/uv/rendering-markdown/StructureDefinition/rendering-markdown",
          "valueMarkdown": "**Little** interest or pleasure in doing things"
        }
      ],
      "type": "string",
      "required": true
    }
  ]
}

2.7 Sensitive questions

Every PROM may include sensitive questions, indicating that the answers might contain sensitive information. As a result, a specific level of authorization is required to read these answers.

The Data Segmentation for Privacy project defined the Inline Security Label extension. This extension enables flagging elements with a security label, for example indicating their sensitivity, and SHALL be added to all relevant .item elements as .item.extension:sensitivityFlag in both the Questionnaire and QuestionnaireResponse instances. The .valueCoding SHALL be populated with the code PDS from the InformationSensitivityPolicy ValueSet to indicate this data item contains sensitive information reported by the patient.

2.8 Scores and calculation rules

The Questionnaire definition includes information on how to calculate the total score, the weight for each question, and how to interpret the total score. Currently, this information is provided in .item elements, where the calculation rules are read-only instructions and hidden from users completing the forms through an extension.

In the next version of the Questionnaire definition, it is the intention to incorporate dynamic calculation rules using structured data capture, making the Questionnaire more structured and flexible.

3 Use cases

3.1 Use case: retrieve questionnaire reference

3.2 Use case: retrieve questionnaire reference

3.3 Use case: send questionnaire response

3.3.1 Client renders questionnaire form

The X should present the questions defined in the retrieved Questionnaire resource to the user, in accordance with their type, overall structure of the questionnaire, and restrictions on the answers. OBC defines the following minimal subset of Questionnaire item types that a X MUST support:

  • Group
  • Display
  • Boolean
  • Decimal
  • Integer
  • Date / dateTime / time
  • String / text
  • Choice / open-choice, where the possible answers are defined using option elements
  • Quantity

The following elements of the Questionnaire.item element MUST be supported:

  • Questionnaire.item.enableWhen
  • Questionnaire.item.required
  • Questionnaire.item.readOnly
  • Questionnaire.item.option

In addition, the following extensions MUST be supported:

A X MAY support other Questionnaire item types as well. However, if a PHR is unable to process any one part in the Questionnaire, it MUST reject the Questionnaire altogether, see below. HIER GEBLEVEN Note: for known questionnaires, a PHR may choose to use hardcoded over generated forms. However:

  • A PHR implementing this information standard should always be able to generate a form for the minimal Questionnaire requirements.
  • Currently, no coding system exists to identify known questionnaires. Known questionnaires might be recognized by the reference in the QuestionnaireProvisioningTask or by the Questionnaire.url field, which presents the canonical URL for the Questionnaire resource (even if it served elsewhere). Although the URL in the XIS reference or Questionnaire.url MUST be version specific, the PHR MUST check whether the referenced Questionnaire resource matches the one it has hardcoded

3.3.2 Multiple-choice questions in FHIR

Unfortunately, the FHIR core documention for the Questionnaire and QuestionnaireResponse resources is somewhat confusing and actually contains an error in the topic of multiple-choice questions. This section is meant to clarify the use of multiple-choice type questions in FHIR STU3.

In FHIR STU3 there are two scenarios for multiple-choice questions: in the first scenario, the answer MUST come from a list of predefined options, while in the second scenario, the user MAY alternatively provide a custom answer. In a Questionnaire resource, to define a multiple-choice question, item.type MUST be set to "choice" for the first scenario, or "open-choice" for the second scenario. The answer options MUST be defined using either:

  • The Questionnaire.item.options element, which contains a reference to a ValueSet with the possible answers. Note: support for this mechanism is not required for this information standard.
  • Using one or more Questionnaire.item.option elements, with possible answers defined as valueCode. Note: although the Questionnaire resource defines item.option.value[x] as a polymorphic element with multiple types, only coding is actually allowed. In the relevant profile, this element is therefore restricted to the coding type.

Likewise, the QuestionnaireResponse resource should capture the answer using QuestionnaireResponse.item.answer.valueCode:

  • If the user selects one of the predefined answers, it should be captured in the answer using the code (and if present, system) elements of the valueCode.
  • If the question is of type "open-choice" and the user provides an alternative answer, it should be captured using the display element of the valueCode.

Questionnaire example:

<item>
    <linkId value="example"/>
    <text value="Example question"/>
    <type value="choice"/>
    <option>
        <valueCoding>
            <code value="EO1"/>
            <display value="Example option 1"/>
        </valueCoding>
    </option>
    <option>
        <valueCoding>
            <code value="EO2"/>
            <display value="Example option 2"/>
        </valueCoding>
    </option>
</item>

QuestionnaireResponse example:

<item>
    <linkId value="example"/>
    <answer>
        <valueCoding>
            <code value="EO1"/>
            <display value="Example option 1"/>
        </valueCoding>
    </answer>
</item>