Skip to main content

Structured Data Capture

Smart Forms is built as a reference implementation of the Structured Data Capture FHIR specification, and is based on R4 FHIR.

The SDC specification provides a set of guidance around the use of Questionnaire and QuestionnaireResponse that support many additional capabilities that provide benefits to providers, patients and other users.

tip

Before diving into this section, it might be worth reading the usage examples guide in the Components section.

Conformance Checklist

The SDC specification is huge, therefore Smart Forms does not cover all of it. Below is a quick conformance checklist of what is supported currently.

To see the detailed list of what is supported by a Questionnaire item type, please refer to the specific item types in Components.

Using Expressions

View the source here: http://hl7.org/fhir/uv/sdc/expressions.html

Expression Extensions

  • variable
  • answerExpression
  • initialExpression
  • candidateExpression
  • contextExpression
  • calculatedExpression
  • enableWhenExpression
  • answerOptionToggleExpression
  • itemPopulationContext
  • itemExtractionContext
  • constraint

Other extensions

  • library
  • launchContext

x-fhir-query enhancements

  • x-fhir-query

Advanced Form Rendering

View the source here: http://hl7.org/fhir/uv/sdc/rendering.html

Text Appearance

  • rendering-style
  • rendering-xhtml
  • displayCategory
  • openLabel
  • hidden
  • itemMedia
  • itemAnswerMedia

Control Appearance

  • itemControl
  • choiceOrientation
  • sliderStepValue
  • width
  • collapsible

Questionnaire itemControl Checklist

View the source here: https://hl7.org/fhir/extensions/CodeSystem-questionnaire-item-control.html

  • group
    • list
    • table
    • htable
    • gtable
    • grid
    • header
    • footer
    • page
    • tab-container
  • display
    • inline
    • prompt (deprecated - encouraged to use entryFormat)
    • unit (deprecated - encouraged to use questionnaire-unit)
    • lower
    • upper
    • flyover
    • help
    • legal
  • question
    • autocomplete
    • drop-down
    • check-box
    • lookup
    • radio-button
    • slider
    • spinner
    • text-box

Additional Display Content

  • supportLink
  • choiceColumn
  • optionPrefix
  • valueset-label
  • entryFormat
  • shortText

Other

  • required
  • repeats
  • readOnly
  • rendering-styleSensitive
  • optionalDisplay

Form Behavior and Calculation

View the source here: http://hl7.org/fhir/uv/sdc/behavior.html

Value Constraints

  • maxLength
  • minLength
  • regex
  • minValue
  • maxValue
  • minQuantity
  • maxQuantity
  • maxDecimalPlaces
  • mimeType
  • maxSize

Choice Restriction

  • answerOption
  • answerValueSet
  • answerValueSet with Expression
  • answerExpression
  • answerOptionToggleExpression
  • required
  • repeats
  • readOnly
  • minOccurs
  • maxOccurs
  • optionExclusive
  • unitOption
  • unitValueSet
  • unitOpen
  • unitSupplementalSystem
  • referenceResource
  • referenceProfile
  • candidateExpression
  • lookupQuestionnaire

Calculations

  • cqf-library
  • launchContext
  • variable
  • initialExpression
  • calculatedExpression
  • cqf-calculatedValue
  • cqf-expression

Other Control

  • entryMode
  • initial
  • enableWhen
  • enableBehavior
  • enableWhenExpression
  • usageMode
  • constraint
  • endpoint
  • signatureRequired
  • ordinalValue
  • text

Form Population

View the page here: http://hl7.org/fhir/uv/sdc/populate.html

Population operations

  • $populate
  • $populate-html
  • $populate-link

Smart Forms only supports full population at the moment, and SMART App Launch is a requirement. Only patient, practitioner and encounter launch contexts are supported.

Population mechanisms

  • Observation-based
  • Expression-based
  • StructureMap-based

While StructuredMap-based population mechanism is not supported, sdc-questionnaire-sourceQueries is supported, using an expression-based approach.

Form Data Extraction

View the page here: http://hl7.org/fhir/uv/sdc/extraction.html

This is something we are super interested in, but haven't quite got to it yet.

Modular Forms

View the page here: http://hl7.org/fhir/uv/sdc/modular.html#modular-questionnaires

Our Forms Server https://smartforms.csiro.au/api/fhir supports the $assemble operation. The implementation is based on http://hl7.org/fhir/uv/sdc/modular.html#modular-questionnaires.

Adaptive Forms

View the page here: http://hl7.org/fhir/uv/sdc/adaptive.html

This is not something on our radar at the moment :(