Structured Data Capture
4.0.0-ballot - STU 4 ballot International flag

Structured Data Capture, published by HL7 International / FHIR Infrastructure. This guide is not an authorized publication; it is the continuous build for version 4.0.0-ballot built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/sdc/ and changes regularly. See the Directory of published versions

Introduction

Page standards status: Informative

Understanding FHIR

This implementation guide is based on the HL7 FHIR standard. It uses terminology, notations and design principles that are specific to FHIR. Before reading this implementation guide, it's important to be familiar with some of the basic principles of FHIR as well as general guidance on how to read FHIR specifications. Readers who are unfamiliar with FHIR are encouraged to read (or at least skim) the following prior to reading the rest of this implementation guide.

Feel free to explore other aspects of the FHIR specification that you feel may be relevant or of interest.

Resources

This implementation guide defines profiles on several resources. Implementations are expected to be conformant with these profiles to be conformant with this implementation guide.

Based on FHIR Resource SDC Profile(s) Purpose
Questionnaire SDC Base Questionnaire Profile Used to define form definitions that may be downloaded for manual and/or automatic population
Search Questionnaire Profile Defines properties that must be supported for systems that support searching for and returning Questionnaires
Advanced Rendering Questionnaire Profile Defines additional capabilities for controlling the rendering of the questionnaire
Advanced Behavior Questionnaire Profile Defines additional capabilities for controlling data entry and calculating values within the questionnaire
Populatable Questionnaire - Observation Profile Defines elements that support auto-population and pre-population of questionnaires using the Observation-based population mechanism
Populatable Questionnaire - Expression Profile Defines elements that support auto-population and pre-population of questionnaires using the Expression-based population mechanism
Populatable Questionnaire - StructureMap Profile Defines elements that support auto-population and pre-population of questionnaires using the Structure-based population mechanism
Extractable Questionnaire - Observation Profile Defines elements that allow conversion of a QuestionnaireResponse to an Observation resource or Bundle of Observation resources using the Observation-based extraction mechanism
Extractable Questionnaire - Definition Profile Defines elements that allow conversion of a QuestionnaireResponse to a FHIR resource or Bundle of FHIR resources using the Definition-based extraction mechanism
Extractable Questionnaire - StructureMap Profile Defines elements that allow conversion of a QuestionnaireResponse to a FHIR resource or Bundle of FHIR resources using the StructureMap-based extraction mechanism
Adaptive Questionnaire Profile Defines the metadata that should be present to embed an adaptive Questionnaire as part of a QuestionnaireResponse
Adaptive Questionnaire - search Profile Defines the metadata that should be present to support searching for adaptive questionnaires
QuestionnaireResponse SDC Questionnaire Response Profile Used to share instance data captured using questionnaire forms
Adaptive Questionnaire Response Profile Represents a response to a questionnaire that is dynamically built as each question is answered
ValueSet SDC Value Set Profile Used to define collections of allowed values for data elements and for questions in questionnaires
CodeSystem SDC Code System Profile Used to define allowed values for data elements and for questions in questionnaires
UsageContext SDC Usage Context Profile Constraints on the codes and values of UsageContext to help ensure consistent usage in SDC Questionnaires

Additional resources such as Patient, Practitioner, Binary, ConceptMap, StructureMap, Provenance, AuditEvent and others are also likely to be used in SDC solutions, though no SDC-specific profiles have been created for them.

Terminology Operations

In addition to the QuestionnaireResponse population operations, extract operation, next-question operation and process response operation, it will be useful for Form Filler and Form Manager systems to support some of FHIR's terminology service capabilities - specifically the Valueset Expand and Validate code operations.

Conformance and Must Support

FHIR defines the notion of Must Support to help establish conformance expectations for systems. The specific meaning of "must support" is left to be defined in individual implementation guides. For the purposes of this implementation guide, "must support" shall be interpreted as follows:

  • Conformant systems SHALL be capable of sending and receiving the data element
  • When a system persists a resource instance, all "must support" elements SHALL be persisted and retrieved with other elements
  • Where an element affects the display or validation of a Questionnaire and a system performs either or both of those operations, the behavior established by the value of the element SHALL be performed

Understanding Expressions

In addition to the base FHIR specification, some of the more advanced capabilities defined in this implementation guide - specifically around behavior, population and extraction rely on the use of expressions. SDC only uses three languages to support expressions: FHIR queries, FHIRPath, and Clinical Quality Language (CQL). Additional implementation guidance on the use of expressions can be found on the Using Expressions page.

Given the widespread implementation of FHIRPath, implementers using any of these advanced questionnaire capabilities will need to be familiar with the FHIRPath Specification. To support using FHIRPath with questionnaires, this implementation guide defines a set of additional FHIRPath variables and functions.

Implementers who require the additional capabilities of CQL (i.e. defining internal variables, iterating loops, etc.) should also familiarize themselves with the CQL Specification.

Implementors should note the guidance on FHIR query enhancements that can be found in the x-fhir-query-enhancements section.