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
Page standards status: Informative |
Contents:
This page provides a list of the FHIR artifacts defined as part of this implementation guide.
There are no Global profiles defined
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 Archiver |
SDC System for archiving and retrieving the completed forms |
SDC Form Designer |
SDC Form authoring 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 Response Manager |
SDC Form response management system |
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 |
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. |
Populate HTML Questionnaire |
Generates an HTML representation of the Questionnaire as a form, possibly partially populated with data |
Populate Questionnaire |
Generates a QuestionnaireResponse from a Questionnaire, possibly with data partially populated |
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 |
These define the properties by which a RESTful server can be searched. They can also be used for sorting and including related resources.
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 |
Questionnaire Item definition |
Allows searching by 'definition' element within a Questionnaire's items |
These define data models that represent the domain covered by this implementation guide in more business-friendly terms than the underlying FHIR resources.
Patient Gender |
Data element SDC Profile Example |
SDC Question Library |
An example library of questions showing how questions can be compiled into a library for use by modular questionnaires |
These define forms used by systems conforming to this implementation guide to capture or expose data to end users.
Complex Extract Demonstration - Definition |
Complex definition-based extraction example |
Complex Extract Demonstration - StructureMap |
Complex StructureMap extraction questionnaire example |
Complex Extract Demonstration - Template |
Complex template-based extraction example |
Complex Extract Demonstration - Template Bundle |
Example Questionnaire demonstrating extraction using the template approach |
These are profiles on resources or data types that describe patterns used by other profiles, but cannot be instantiated directly. I.e. instances can conform to profiles based on these abstract profiles, but do not declare conformance to the abstract profiles themselves.
SDC Questionnaire Common Elements |
Defines common elements for all SDC Questionnaires (regular or adaptive). |
SDC Questionnaire Response Common Elements |
Defines common elements for all SDC Questionnaire Responses (regular or adaptive). |
These define constraints on FHIR resources for systems conforming to this implementation guide.
Adaptive Questionnaire |
Defines the metadata that should be present when embedding a adaptive Questionnaire as part of a QuestionnaireResponse |
Adaptive Questionnaire - search |
Describes the elements that should be exposed in a response to a search for adaptive questionnaires. |
Adaptive Questionnaire Response |
Defines how the questionnaire response resource is used to reflect form data within the ONC's Structured Data Capture standard. |
Advanced Behavior Questionnaire |
Defines additional capabilities for controlling data entry and calculating values within the questionnaire. |
Advanced Rendering Questionnaire |
Defines additional capabilities for controlling the rendering of the questionnaire. |
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 - 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 - StructureMap |
Defines elements that allow conversion of a QuestionnaireResponse to a FHIR resource or Bundle of FHIR resources using the StructureMap-based extraction mechanism |
Extractable Questionnaire - Template |
Defines elements that allow conversion of a QuestionnaireResponse to a FHIR resource or Bundle of FHIR resources using the Template-based extraction mechanism |
Next question operation input parameters |
Profile used to validate the parameters that are the input of the 'next question' adaptive questionnaire operation |
Next question operation output parameters |
Profile used to validate the parameters that are the output of the 'next question' adaptive questionnaire operation |
Populatable Questionnaire - Expression |
Defines elements that support auto-population and pre-population of questionnaires using the Expression-based population mechanism |
Populatable Questionnaire - Observation |
Defines elements that support auto-population and pre-population of questionnaires using the Observation-based population mechanism |
Populatable Questionnaire - StructureMap |
Defines elements that support auto-population and pre-population of questionnaires using the StructureMap-based population mechanism |
Populate operation input parameters |
Profile used to validate the parameters that are the input of the $populate, $populate-html, and $populate-link questionnaire operations |
Populate operation output parameters |
Profile used to validate the parameters that are the output of the $populate questionnaire operation |
Populate-html operation output parameters |
Profile used to validate the parameters that are the output of the $populate-link questionnaire operation |
Populate-link operation output parameters |
Profile used to validate the parameters that are the output of the $populate-link questionnaire operation |
Questionnaire Service Request |
Defines how ServiceRequest is used to ask for a Questionnaire to be completed |
Questionnaire assemble output Parameters profile |
Profile used to validate the parameters that are the output of the 'assemble' questionnaire operation |
Questionnaire extract operation input parameters |
Profile used to validate the parameters that are the input of the 'extract' questionnaire response operation |
Questionnaire process response operation input parameters |
Profile used to validate the parameters that are the input of the 'process response' questionnaire operation |
SDC Base Questionnaire |
Sets minimum expectations for questionnaire support for SDC-conformant systems for 'standard' (non-adaptive) Questionnaires, regardless of which SDC capabilities they're making use of. |
SDC Code System |
Defines how CodeSystem is used to reflect code lists found in data element defintions and form definitions to be used within the ONC's Structured Data Capture standard. |
SDC Library |
Defines how a Library is used as a logic computable library within the ONC's Structured Data Capture standard. |
SDC Modular Questionnaire |
Indicates expectations for questionnaires that draw their item content (not just codes) from other resources |
SDC Standard Questionnaire Response |
Defines how the questionnaire response resource is used to reflect form data within SDC for 'standard' (i.e. non-adaptive) forms. |
SDC Value Set |
Defines how ValueSet is used to reflect code lists found in data element defintions and form definitions to be used within the ONC's Structured Data Capture standard. |
Search Questionnaire |
Describes the elements that should be exposed in a response to a search for questionnaires. |
Task Questionnaire |
Defines how Task is used to ask for a Questionnaire to be completed |
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 |
These define constraints on FHIR data types for systems conforming to this implementation guide.
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 Expression |
An expression (FHIRPath, CQL or FHIR Query) that resolves to a list of permitted answers for a question item. |
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. |
Assemble Context extension |
This extension, used on a subQuestionnaire, indicates a FHIRPath variable that must be present in context when the subQuestionnaire is referenced. |
Assembled From Questionnaire |
This extension will appear on the root of an assembled Questionnaire and identifies the subQuestionnaires (including version) that were used as part of the assembly process. |
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. |
Calculated Expression |
Calculated value for a question answer as determined by an evaluated 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 |
Choice column |
Provides guidelines for rendering multi-column choices |
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. |
Collapsible |
Indicates that the child items of an item are displayed in collapsible form (either collapsed or expanded) |
Enable when expression |
An expression that returns a boolean value for whether to enable the item |
Endpoint |
The base URL for the server(s) to which questionnaire response associated with this questionnaire should be submitted. If multiple repetitions are present, the completed form should be sent to all listed endpoints. |
Entry mode |
An indication of how the user should be prompted for answers when completing a QuestionnaireResponse |
Extract - Allocate new uuid |
Allocate a new uuid in a named variable for use in extraction. This is usually used to set the |
Extract Definition |
Specifies the resource type/profile for the definition based extraction of a resource and optionally the |
Extract Definition - Extract value |
Provide either a fixed value, or an expression to evaluate, to be used as the value for the extracted resource's property based on the |
Extract Definition - Resource (legacy) |
Specifies a query or other expression that identifies the resource (or set of resources for a repeating item) to be extracted from this item once the QuestionnaireResponse is complete. This extension is deprecated in favor of the |
Extract Observation |
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) |
Extract Observation - 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. |
Extract StructureMap - 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. |
Extract Template - Bundle |
Specifies a reference to a contained transaction bundle resource template to be extracted from this item once the QuestionnaireResponse is complete. The template will be cloned into the output extraction bundle, and any template values will be replaced with the values from the QuestionnaireResponse. |
Extract Template - Context |
Establishes mapping context for replacing template content based on a fhirpath expression. This will be used by any child properties as the context for any other templateExtractContext or templateExtractValue extensions. If the name property on an expression is included, it will be also available to child extension evaluation. If the expression evaluates to no results, then this element in the templated resource will be removed, and futher processing of it's children is not required. |
Extract Template - Extract value |
Provides an expression to evaluate any value(s) to replace in the given template extraction context. If no result is evaluated, the element in the templated resource will be removed, and futher processing of it's children is not required. |
Extract Template - Resource |
Specifies a reference to a contained resource template (or set of resources for a repeating item) to be extracted from this item once the QuestionnaireResponse is complete. The template will be cloned into the output extraction bundle, and any template values will be replaced with the values from the QuestionnaireResponse. Optionally the |
Initial Expression |
Initial value for a question answer as determined by an evaluated expression |
Is subject (response)? |
If present and true, indicates that the item indicates a different subject for this group |
Is subject? |
If present and true, indicates that the item establishes a different subject for the group in a response |
Item Answer Media |
Media to render/make available as an accompaniment to a specific answer option. |
Item Media |
Media to render/make available accompanying the question being asked or group or display item being rendered. |
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. |
Keyboard Type Extension |
For string or text items, indicates the 'keyboard type' that should be used by the user interface to guide entry. It does not dictate any specific functionality, it is only used as a hint to input devices that may have special keyboard modes available. |
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. |
Launch Contexts |
Resources that provide context for form processing logic (pre-population, flow-control, drop-down selection, etc.) when creating/displaying/editing a QuestionnaireResponse |
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. |
Max quantity |
The inclusive upper bound on the range of allowed values for a 'quantity' type question |
Min quantity |
The inclusive lower bound on the range of allowed values for a 'quantity' type question |
Number of columns for child item layout |
For questions with a set of options, indicates the number of columns across which those choices should be organized. E.g., 2 columns, 5 columns, etc. |
Obervation 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. |
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. |
Performer type |
Indicates the types of resources that can record answers to a 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). |
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 |
Rendering Critical Extension |
Indicates an extension that must be supported by the system presenting the instance for data capture or end-user consumption. If a system does not recognize the extension or cannot implement the functionality defined by the extension, it should display an error message or warning and refrain from presenting the instance to the user or using it when capturing data. |
ServiceRequest Questionnaire |
Identifies a Questionnaire that is being asked to be completed |
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). |
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 |
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. |
Sub-questionnaire |
Indicates that the display item on which this extension appears should be replaced with the referenced Questionnaire |
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. |
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. |
These define sets of codes used by systems conforming to this implementation guide.
Australian States - example value set |
An example value set (using fake codes) used by a modular Questionnaire |
DEX mapping language mime types |
The list of mime types that identify mapping languages supported by DEX. |
Observation Extract Relationship Value Set |
Defines the set of codes used to specify the relationship type for extracted Observations. |
Questionnaire Assemble Expectation |
Defines codes describing how a Questionnaire relates to the 'assemble' process |
Questionnaire Context Species |
Species for defining the context of Questionnaires |
Questionnaire Entry Mode |
Defines mechanisms of capturing data in a QuestionnaireResponse |
Questionnaire Item Collapsible |
Defines mechanisms of displaying child items in collapsible form |
Questionnaire Item Keyboard Type |
For string or text items, indicates the 'keyboard type' that should be used by the user interface to guide entry. |
Questionnaire Launch Context |
The standard context for Questionnaire at launch time |
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)] |
SDC Task Code |
The codes allowed for an SDC Task seeking completion of a Questionnaire |
SDC-ValueSet AHRQ_Medication_Q1 |
The answer list for question 1 on the AHRQ 'Medication or Other Substance' form |
These define new code systems used by systems conforming to this implementation guide.
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. |
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. |
Collapsible Codes |
Defines mechanisms of displaying child items in collapsible form |
Entry Mode |
Defines mechanisms of capturing data in a QuestionnaireResponse |
Keyboard Type Codes |
For string or text items, indicates the 'keyboard type' that should be used by the user interface to guide entry. |
Launch Context |
The standard context for Questionnaire at launch time |
Observation Extract Relationship Codes |
Defines the codes used to specify the relationship type in the ObservationExtractExtension. |
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)] |
SDC-CodeSystem PHQ9 |
The answer list for questions 1 through 9 on the Patient Health Questionnaire (9 item) form |
Temporary SDC Codes |
Defines codes defined within the SDC implementation guide that are expected to migrate elsewhere in future releases |
These define transformations to convert between data structures used by systems conforming to this implementation guide.
ExtractComplexSmap |
An example of a StructureMap used to support extraction from a QuestionnaireResponse |
QuestionnairePopulationTransform |
An example of a StructureMap used to support population of a QuestionnaireResponse from a search bundle |
SDOHCCHungerVitalSignMap |
A StructureMap instance that represents the resource that transforms a specific question and answer from the LOINC Hunger Vital Sign [HVS] questionnaire (LOINC code 88121-9) into a corresponding Observation (SDOHCC Observation response Hunger Vital Sign Q3 Example) and derived Condition (SDOHCC Condition Food Insecurity Example). |
These are example instances that show what data produced and consumed by systems conforming with this implementation guide might look like.
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 $populate operation request |
Shows the request payload when invoking a populate operation |
Example $populate operation response |
Shows the response payload when invoking a populate operation |
Example $populate-html operation response |
Shows the response payload when invoking a populate-html operation |
Example $populate-link operation response |
Shows the response payload when invoking a populate-link operation |
Example modular Questionnaire |
Example modular questionnaire - root of a questionnaire that references other questionnaires and element definitions |
Example multi-subject Questionnaire |
A sample Questionnaire that shows the use of the isSubject extension to flag a subject change within a Questionnaire. |
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 |
Multi-subject QuestionnaireResponse example |
Example of a QuestionnaireResponse for a multi-subject Questionnaire |
Patient Health Questionnaire - adaptive search |
This is a Questionnaire example of how to expose an adaptive form in a registry. |
Questionnaire - ANC Quick Check |
A sample questionnaire using itemMedia and itemAnswerMedia extensions. |
Questionnaire - Demographics Example |
A sample questionnaire using context-based population and extraction |
Request-based solicitation example - ServiceRequest |
Shows a ServiceRequest soliciting completion of a questionnaire |
Request-based solicitation example - Task |
Shows how completion of a questionnaire can be solicited with Task pointing to a ServiceRequest |
SDC Derivation Child |
Example of a child questionnaire based on a parent |
SDC Derivation Parent |
Example of a parent questionnaire that sets derivation expectations |
SDC Map population StructureMap example output |
An example showing the result of a StructureMap-based population operation |
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 |
SDC Test Form - All Data Types |
A test form that has one of each data type included, useful in checking compatibility against. |
SDC Test Form - Candidate Expression |
A test form with a FHIRPath based prepopulation example that includes a candidate expression. |
SDC Test Form - Enable When |
A test form that has a variety of enable when scenarios for testing. |
SDC Test Form - Initial Expression |
A test form with a FHIRPath based prepopulation simple example. |
SDC Test Form - Initial Value |
A test form with that uses initial values. |
SDC Test Form - Multiple Initial Value |
A test form with a question that has multiple initial values. |
SDC Test Form - Repeats |
A test form with repeatable nested groups. |
SDC Test Form - Required |
A test form with required fields. |
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-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-Advanced Rendering |
Demo questionnaire showing most of the advanced rendering capabilities of SDC. Each example here is itemized in the Examples page. |
SDC-Combination |
Set of several examples - medication, AHRQ and NCI forms |
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 itemWeight and constraint |
Example on how to use item weight and contraints in a Questionnaire. |
SDC-Example with Image Options |
Example questionnaire that shows how to display answer options as images using the rendering-xhtml extension. |
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-LOINC USSG Family History |
LOINC US Surgeon General family history including data elements and value sets. |
SDC-PHQ9 |
Patient Health Questionnaire (9 Item) including contained value sets and calculatedExpression |
SDC-PHQ9 using an SDC Library |
Patient Health Questionnaire using a cqf-expression defined in an SDC Library |
SDC-Pathology |
Cancer pathology questionnaire with flow-control extensions |
SDC-Response to Adaptive PHQ9 |
Example response to the Adaptive SDC-PHQ9 questionnaire |
SDC-Response to Diagnosis NCI Standard Template |
Example responses to the questionnaire found in the SDC - Combination list of questionnaires |
SDC-Response to LOINC AHRQ |
Example response to te LOINC AHRQ questionnaire. |
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-Weight and Height Tracking Panel |
A weight and height panel (from LOINC) with a FHIRPath rule for calculating the BMI. |
SDOHCC Questionnaire Hunger Vital Sign |
Example Questionnaire that shows both definition-based population and StructureMap-based extraction |
Task-based solicitation example |
Shows how completion of a questionnaire can be solicited with Task alone |