Structured Data Capture
3.0.0 - STU 3

Structured Data Capture, published by HL7 International - FHIR Infrastructure Work Group. This is not an authorized publication; it is the continuous build for version 3.0.0). This version is based on the current content of https://github.com/HL7/sdc/ and changes regularly. See the Directory of published versions

Artifact List

This page provides a list of the FHIR artifacts defined as part of this implementation guide.

Behavior: Capability Statements

The following artifacts define the specific capabilities that different types of systems are expected to have in order to comply with this implementation guide. Systems conforming to this implementation guide are expected to declare conformance to one or more of the following capability statements.

SDC Form Designer

SDC Form authoring system

SDC Form Response Manager

SDC Form response management system

SDC Form Filler

SDC System for completing forms

SDC Form Manager

SDC Repository for forms

SDC Form Receiver

SDC Repository for completed forms

SDC Form Archiver

SDC System for archiving and retrieving the completed forms

Behavior: Operation Definitions

These are custom operations that can be supported by and/or invoked by systems conforming to this implementation guide

Adaptive questionnaire next question

Returns the next question or set of questions for an adaptive questionnaire

Populate Questionnaire

Generates a QuestionnaireResponse from a Questionnaire, possibly with data partially populated

Populate HTML Questionnaire

Generates an HTML representation of the Questionnaire as a form, possibly partially populated with data

Populate Questionnaire Link

Generates a link to an HTML page that can be used to complete the Questionnaire, possibly partially populated with data

Questionnaire process response

Allows submission of a QuestionnaireRespone for ‘processing’ by the target server

Questionnaire response extract to resource(s)

Converts a QuestionnaireResponse to a clinical or administrative resource or a Transaction Bundle of them

Assemble Modular Questionnaire Operation

The $assemble operation takes a modular questionnaire (one that references sub-questionnaires and/or relies on definition elements to contain the content for item definitions) and produces the equivalent fully-inline Questionnaire. Full details on the process can be found here.

Behavior: Search Parameters

These define the properties by which a RESTful server can be searched. They can also be used for sorting and including related resources.

Questionnaire Item definition

Allows searching by ‘definition’ element within a Questionnaire’s items

Questionnaire Assembled From Search Parameter

Allows searching by ‘assembledFrom’ extension on a Questionnaire

Questionnaire Is Modular Search Parameter

Allows searching by ‘assemble-expectation’ extension on a Questionnaire

Structures: Logical Models

These define data models that represent the domain covered by this implementation guide in more business-friendly terms than the underlying FHIR resources.

SDC Question Library

An example library of questions showing how questions can be compiled into a library for use by modular questionnaires

Patient Gender

Data element SDC Profile Example

Structures: Resource Profiles

These define constraints on FHIR resources for systems conforming to this implementation guide

SDC Base Questionnaire

Sets expectations for SDC-conformant systems around how to create questionnaires

Search Questionnaire

Defines properties that must be supported for systems that support searching for and returning Questionnaires

Advanced Rendering Questionnaire

Defines additional capabilities for controlling the rendering of the questionnaire.

Advanced Behavior Questionnaire

Defines additional capabilities for controlling data entry and calculating values within the questionnaire.

Populatable Questionnaire - Observation

Defines elements that support auto-population and pre-population of questionnaires using the Observation-based population mechanism.

Populatable Questionnaire - Expression

Defines elements that support auto-population and pre-population of questionnaires using the Expression-based population mechanism.

Populatable Questionnaire - StructureMap

Defines elements that support auto-population and pre-population of questionnaires using the StructureMap-based population mechanism.

Extractable Questionnaire - Observation

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

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

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

Defines the metadata that should be present to embedding an adaptive Questionnaire as part of a QuestionnaireResponse

Adaptive Questionnaire - search

Defines the metadata that should be present to support searching for adaptive questionnaires.

SDC Questionnaire Response

Sets expectations for SDC-conformant systems around how to create responses to questionnaires.

Adaptive Questionnaire Response

Represents a response to a questionnaire that is dynamically built as each question is answered.

SDC Value Set

Sets expectations for SDC-conformant systems around the definition of value sets for use with questionnaires.

SDC Code System

Sets expectations for SDC-conformant systems around the definition of code systems to provide values for choices within questionnaires.

SDC Library

Sets expectations for SDC-conformant systems around the definition of libraries to provide logical expressions within questionnaires.

Next question operation input parameters

Profile used to validate the parameters that are the input of the ‘next question’ adaptive questionnaire operation

Questionnaire extract operation input parameters

Profile used to validate the parameters that are the input of the ‘extract’ questionnaire operation

Next question operation output parameters

Profile used to validate the parameters that are the output of the ‘next question’ adaptive questionnaire operation

Process response operation input parameters

Profile used to validate the parameters that are the input of the ‘process response’ questionnaire operation

Questionnaire assemble output Parameters profile

Profile used to validate the parameters that are the output of the ‘assemble’ questionnaire operation

Task Questionnaire

Defines how Task is used to ask for a Questionnaire to be completed

SDC Modular Questionnaire

Indicates expectations for questionnaires that draw their item content (not just codes) from other resources

Questionnaire Service Request

Defines how ServiceRequest is used to ask for a Questionnaire to be completed

Structures: Data Type Profiles

These define constraints on FHIR data types for systems conforming to this implementation guide

SDC Usage Context

Constraints on the codes and values of UsageContext to help ensure consistent usage in SDC Questionnaires

Structures: Extension Definitions

These define constraints on FHIR data types for systems conforming to this implementation guide

Entry mode

An indication of how the user should be prompted for answers when completing a QuestionnaireResponse

Endpoint

The base URL for the server to which questionnaire response associated with this questionnaire should be submitted

Enable when expression

An expression that returns a boolean value for whether to enable the item

Min Quantity

The inclusive lower bound on the range of allowed values for a ‘quantity’ type question

Max Quantity

The inclusive upper bound on the range of allowed values for a ‘quantity’ type question

Answer Expression

An expression (FHIRPath, CQL or FHIR Query) that resolves to a list of permitted answers for a question item.

Answer Context Expression

A FHIR Query that resolves to one or more resources that can be displayed to the user to help provide context for answering a question

Answer Options Toggle Expression

A complex expression that provides a list of the allowed options that should be enabled or disabled based on the evaluation of a provided expression.

Candidate Answers Expression

A FHIRPath or CQL Expression, or FHIR Query that resolves to a list of candidate answers (usually based on other answers in the questionnaire or based on information within the health record) for the question item or that establishes context for a group item

Lookup questionnaire

For items of type reference, the reference can be populated either by picking an existing entity or by creating a new one. In the latter case, this Questionnaire allows specifying the Questionnaire to use in creating the target instance. This can be direct (if the Reference is to a Questionnaire) or indirect via mapping if the Reference is to some other sort of resource.

Launch Contexts

Resources that provide context for form processing logic (pre-population, flow-control, drop-down selection, etc.) when creating/displaying/editing a QuestionnaireResponse

Initial Expression

Initial value for a question answer as determined by an evaluated expression

Calculated Expression

Calculated value for a question answer as determined by an evaluated expression

Label for 'open' items

The label text to display beside free-text and/or unrestricted type values for an ‘open’ choice element. E.g. ‘Other, please specify’, or ‘Additional condition’, or ‘More reason(s)’, etc.

Item Media

Media to render/make available accompanying the question being asked or group or display item being rendered.

Item Answer Media

Media to render/make available as an accompaniment to a specific answer option.

Width of column

When used with an item control that causes the question to appear as a column in a table, indicates the width to give to the column for this question.

Collapsible

Indicates that the child items of an item are displayed in collapsible form (either collapsed or expanded)

Choice column

Provides guidelines for rendering multi-column choices

Short Text

Provides a short text for an item. This element is useful for items that require a shorter text when rendered (e.g. when item is displayed on a mobile phone).

Optional Display?

If set to true, it means that the system displaying the form (or the individual encoding the form for data capture) can choose to omit the item from display to the user.

Source queries for population mapping

A Batch Bundle containing a set of queries that should be executed to provide source data for a StructureMap to create a populated QuestionnaireResponse

Is subject?

If present and true, indicates that the item establishes a different subject for the group in a response

Is subject (response)?

If present and true, indicates that the item indicates a different subject for this group

Item population context

Specifies a query that identifies the resource (or set of resources for a repeating item) that should be used to populate this Questionnaire or Questionnaire.item on initial population.

Item extraction context

Specifies a query that identifies the resource (or set of resources for a repeating item) to be extracted from this item once the QuestionnaireResponse is complete.

Observation link period

Indicates the time-period (from ‘now’) to search for observations that match the Questionnaire.item.code and Questionnaire.subject when pre-populating the QuestionnaireResponse.

Observation extract?

If true, indicates that the observation-based approach should be used to extract either the particular item (if extension is defined on an individual question or group based on the code present) or all items in the questionnaire (if defined at the questionnaire root and if they have a code present)

Observation Extract Category

Indicates the Observation.category value(s) that should appear on extracted Observations for the entire Questionnaire or for the current item and descendant items.

Source structure map

StructureMaps that produce QuestionnaireResponses for this Questionnaire as ‘target’ - i.e. that can be used to create QuestionnaireResponses that are valid against this Questionnaire.

Target structure map

StructureMaps that have QuestionnaireResponses of this Questionnaire as ‘source’- i.e. that can be used to create other artifacts from QuestionnaireResponses that are valid against this Questionnaire.

Performer type

Indicates the types of resources that can record answers to a Questionnaire

Questionnaire Adaptive

Indicates if a questionnaire is adaptive: either set to true or set the base URL of the server that can perform the nextQuestion operation of the questionnaire

Preferred Terminology Server

Indicates the terminology server(s) that are known to be capable of returning and potentially expanding the value set(s) associated with the whole questionnaire or a particular group or question within the questionnaire (depending on where the extension appears).

Units open?

Indicates whether the list of supported units (conveyed in other extensions) are the exhaustive list from which the user must choose or whether they’re able to select alternate codes or specify a string.

Sub-questionnaire

Indicates that the display item on which this extension appears should be replaced with the referenced Questionnaire

ServiceRequest Questionnaire

Identifies a Questionnaire that is being asked to be completed

Assemble Context extension

Indicates a variable that must be available on any node that is referencing the Questionnaire as a sub-questionnaire

Assembled From Questionnaire

Indicates the Questionnaire a variable that must be available on any node that is referencing the Questionnaire as a sub-questionnaire

References contained

This indicates that the element containing this extension has some sort of expression that makes reference to the specified contained resource.

Assembly Expectations for Questionnaire

If present, indicates that this questionnaire has expectations with respect to assembly. Specifically, indicates whether this form requires assembly (i.e. it can’t be used directly without invoking the $assemble operation operation on it) and/or whether it is intended for use only as a ‘child’ in an assembly process. The assembly processs might mean filling in item metadata based on information looked up from item.definitions and/or retrieving sub-questionnaires pointed to by sub-questionnaire extensions.

Code system for other units

If the questionnaire-unit-open extension indicates that additional units other than the set of options provided for the question are allowed, this indicates the code system those units are expected to be drawn from. This extension SHOULD be present on any question where questionnaire-unit-open allows additional coded values.

Terminology: Value Sets

These define sets of codes used by systems conforming to this implementation guide

Questionnaire Context Species ValueSet

Species for defining the context of Questionnaires

Questionnaire Launch Context ValueSet

Defines standard context of Questionnaires at launch time

Questionnaire Entry Mode ValueSet

Defines mechanisms of capturing data in a QuestionnaireResponse

Questionnaire Collapsible ValueSet

Defines mechanisms of displaying child items in collapsible form

DEX mapping language mime types

The list of mime types that identify mapping languages supported by DEX.

SDC Task Code

The codes allowed for an SDC Task seeking completion of a Questionnaire

Questionnaire Performer Type

List of resource types that can record answers to a Questionnaire.

Questionnaire answer constraints value set

Codes that describe the types of constraints possible on a question item that has a list of permitted answers [Note: This is a clone of QuestionnaireAnswerConstraint valueset from R5 (adopting R5 capability)]

Questionnaire Assemble Expectation

Defines codes describing how a Questionnaire relates to the ‘assemble’ process

Terminology: Code Systems

These define new code systems used by systems conforming to this implementation guide

Questionnaire Launch Context CodeSystem

Defines standard context of Questionnaires at launch time

Questionnaire Entry Mode CodeSystem

Defines mechanisms of capturing data in a QuestionnaireResponse

Questionnaire Collapsible CodeSystem

Defines mechanisms of displaying child items in collapsible form

CHF Codes

Codes used in the congestive heart failure pathway. Ideally these shouldn’t exist, but where I couldn’t find an appropriate code in a standard terminology, I defined codes here.

Questionnaire answer constraint codes

Codes that describe the types of constraints possible on a question item that has a list of permitted answers [Note: This is a clone of QuestionnaireAnswerConstraint codesystem from R5 (adopting R5 capability)]

Assemble Expectation Codes

A set of codes that reflect the relevance of the Questionnaire to the $assemble operation - specifically, whether the form needs to be assembled, whether the form can be referenced as a subQuestionnaire and whether the form can be used as the ‘root’ of a QuestionnaireResponse.

Temporary SDC Codes

Defines codes defined within the SDC implementation guide that are expected to migrate elsewhere in future releases

Terminology: Structure Maps

These define transformations to convert between data structures used by systems conforming to this implementation guide

SDOHCC StructureMap Hunger Vital Sign

A map that converts an SDOCC hunger vital sign questionnaire to a Bundle of Conditions and Observations

Example: Example Instances

These are example instances that show what data produced and consumed by systems conforming with this implementation guide might look like

SDC-Combination

Set of several examples - medication, AHRQ and NCI forms

SDC-PHQ9

Patient Health Questionnaire (9 Item) including contained value sets and calculatedExpression

SDC-Pathology

Cancer pathology questionnaire with flow-control extensions

SDC-Hard Coronary Heart Disease

A made-up form for calculating the 10-year-risk of Hard Coronary Heart Disease. It shows how variables and calculatedExpression can be used to compute for the risk probability.

SDC-Hunger Vital Sign

A hunger vital signs form (showing calculatedExpression selecting a value from a list).

SDC-LOINC AHRQ

LOINC perspective on the AHRQ form found in the SDC - Combination set of questionnaires

SDC-Weight and Height Tracking Panel

A weight and height panel (from LOINC) with a FHIRPath rule for calculating the BMI.

SDC Test Form - All Data Types

A test form that has one of each data type included, useful in checking compatibility against.

SDC-Advanced Rendering

Demo questionnaire showing most of the advanced rendering capabilities of SDC. Each example here is itemized in the Examples page.

Questionnaire - ANC Quick Check

A sample questionnaire using itemMedia and itemAnswerMedia extensions.

SDC-Example with Image Options

Example questionnaire that shows how to display answer options as images using the rendering-xhtml extension.

SDC-Advanced Form Behavior

Demo questionnaire showing most of the advanced form behavior capabilities of SDC. Each example here is itemized in the Examples page.

SDC-Example using contextExpression

Example to indicate the resources to make available for display to the user to aid in answering the question.

SDC-Example using ordinalValue and constraint

Example on how to use ordinal value and contraints in a Questionnaire.

SDC Test Form - Enable When

A test form that has a variety of enable when scenarios for testing.

SDC Test Form - Repeats

A test form with repeatable nested groups.

SDC Test Form - Required

A test form with required fields.

SDC-LOINC USSG Family History

LOINC US Surgeon General family history including data elements and value sets.

Questionnaire - Demographics Example

A sample questionnaire using context-based population and extraction

SDC Test Form - Candidate Expression

A test form with a FHIRPath based prepopulation example that includes a candidate expression.

SDC Test Form - Initial Expression

A test form with a FHIRPath based prepopulation simple example.

SDC Test Form - Source Query

A test form with a FhirPath based prepopulation and StructureMap population that leverages a source query to extract data outside the launch context.

SDC Test Form - Multiple Initial Value

A test form with a question that has multiple initial values.

SDC Test Form - Initial Value

A test form with that uses initial values.

SDC-PHQ9 using an SDC Library

Patient Health Questionnaire using a cqf-expression defined in an SDC Library

Example multi-subject Questionnaire

A sample Questionnaire that shows the use of the isSubject extension to flag a subject change within a Questionnaire.

SDOHCC Questionnaire Hunger Vital Sign

Example Questionnaire that shows both definition-based population and StructureMap-based extraction

Patient Health Questionnaire - adaptive search

This is a Questionnaire example of how to expose an adaptive form in a registry.

SDC Map population StructureMap example

An example showing the result of a StructureMap-based population operation

SDC Map population StructureMap example

An example of a StructureMap used to support the population of a QuestionnaireResponse from queried data

SDC-Response to LOINC USSG Family History

Example response to the SDC-LOINC USSG Family History questionnaire

SDC-Response to PHQ9

Example response to the SDC-PHQ9 questionnaire

SDC-Response to LOINC AHRQ

Example response to te LOINC AHRQ questionnaire.

Multi-subject QuestionnaireResponse example

Example of a QuestionnaireResponse for a multi-subject Questionnaire

SDC-Response to Diagnosis NCI Standard Template

Example responses to the questionnaire found in the SDC - Combination list of questionnaires

SDC-Response to Adaptive PHQ9

Example response to the Adaptive SDC-PHQ9 questionnaire

SDC-ValueSet AHRQ_Medication_Q1

The answer list for question 1 on the AHRQ ‘Medication or Other Substance’ form

Australian States - example value set

An example value set (using fake codes) used by a modular Questionnaire

SDC-CodeSystem PHQ9

The answer list for questions 1 through 9 on the Patient Health Questionnaire (9 item) form

Congestive Heart Failure Logic

Logic for an example congestive heart failure pathway

Example $assemble operation response

Shows the result of performing a $assemble operation on the modular-root questionnaire

Example modular Questionnaire

Example modular questionnaire - root of a questionnaire that references other questionnaires and element definitions

Example sub-module Questionnaire for contact

Example questionnaire module - represents a patient’s contacts and is itself a modular questionnaire that references other questionnaires and element definitions

Example sub-module Questionnaire for name

Example questionnaire module - Used to represent a patient or other human name as an example of a Questionnaire that can be referenced by other Questionnaires. It is itself modular in that it relies on external element definitions

Request-based solicitation example - ServiceRequest

Shows a ServiceRequest soliciting completion of a questionnaire

Task-based solicitation example

Shows how completion of a questionnaire can be solicited with Task alone

Request-based solicitation example - Task

Shows how completion of a questionnaire can be solicited with Task pointing to a ServiceRequest

SDC Map population source bundle example

An example of a Batch response containing search results used as an input to a map-based population process