Smart Forms is based on FHIR R4. The checklist below is a summary of the Questionnaire item types and SDC extensions supported by Smart Forms.
For specific details of each item types/extensions, refer to the docs.
The list can be found here: http://hl7.org/fhir/R4/valueset-item-type.html
- group
- display
- boolean
- decimal
- integer
- date
- dateTime
- time
- string
- text
- url (partial implementation - using string UI component currently)
- choice
- open-choice
- attachment
- reference (partial implementation - using string UI component currently)
- quantity (partial implementation - using decimal UI component currently)
View the source here: http://hl7.org/fhir/uv/sdc/expressions.html
- variable
- answerExpression
- initialExpression
- candidateExpression
- contextExpression
- calculatedExpression
- enableWhenExpression
- answerOptionToggleExpression
- itemPopulationContext
- itemExtractionContext
- constraint
- library
- launchContext
- x-fhir-query
View the source here: http://hl7.org/fhir/uv/sdc/rendering.html
- rendering-style
- rendering-xhtml
- displayCategory
- openLabel
- hidden
- itemMedia
- itemAnswerMedia
- 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
- supportLink
- choiceColumn
- optionPrefix
- valueset-label
- entryFormat
- shortText
- required
- repeats
- readOnly
- rendering-styleSensitive
- optionalDisplay
View the source here: http://hl7.org/fhir/uv/sdc/behavior.html
- maxLength
- minLength
- regex
- minValue
- maxValue
- minQuantity
- maxQuantity
- maxDecimalPlaces
- mimeType
- maxSize
- answerOption
- answerValueSet
- answerValueSet with Expression
- answerExpression
- answerOptionToggleExpression
- required
- repeats
- readOnly
- minOccurs
- maxOccurs
- optionExclusive
- unitOption
- unitValueSet
- unitOpen
- unitSupplementalSystem
- referenceResource
- referenceProfile
- candidateExpression
- lookupQuestionnaire
- cqf-library
- launchContext
- variable
- initialExpression
- calculatedExpression
- cqf-calculatedValue
- cqf-expression
- entryMode
- initial
- enableWhen
- enableBehavior
- enableWhenExpression
- usageMode
- constraint
- endpoint
- signatureRequired
- ordinalValue
- text
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.
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.
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.
View the page here: http://hl7.org/fhir/uv/sdc/adaptive.html
This is not something on our radar at the moment :(
Smart Forms includes several custom extensions that provide additional functionality beyond the standard SDC extensions.
Questionnaire Item Text Hidden
Allows hiding the text label of questionnaire items from the UI. Useful for internal fields that don't need user-facing labels.
Allows hiding the "Add Item" button for repeating groups and group tables. Useful for static tables where users shouldn't be allowed to add new rows.
Allows individual fields to be manually repopulated with fresh data from the FHIR server. Provides granular control over data synchronization without affecting the entire form.