Skip to content

FHIR specification support

There are two specifications that serve as requirements for the library:

In this section, we will provide details on how each requirement in these two specifications is supported by the library.

FHIR Questionnaire

Questionnaire item

The following table summarizes the library's support for the key fields in the questionnaire item element.

Support Notes
linkId
definition See Definition-based extraction
code ⛔️
prefix
text
type See Questionnaire item type
enableWhen
enableBehavior
required
repeats
readOnly
maxLength For text only
answerConstraint ⛔️
answerValueSet
answerOption
initial
item ⚠️ Items nested under group are supported (see #726); items nested under non-group questions are not yet supported (see #910).

Questionnaire item type

The following table summarizes the library's support for questionnaire item types.

Item type Support Example Notes
Group
Display
Question See sub-types below
Boolean JSON
Decimal
Integer
Date JSON
Date time JSON
Time ⛔️
String Rendered as single-line text box
Text Rendered as multi-line text box
Url ⛔️
Choice
~~Open Choice~~ Deprecated in R5. Use answerConstraint instead.
Attachment JSON
Reference ⛔️
Quantity

Structured Data Capture Specification

Advanced form rendering

This section summarizes the library's support for advanced form rendering.

Text appearance

Code Support Example Notes
rendering-style ⛔️
rendering-xhtml ⛔️
displayCatagory ⚠️ instructions code only
openLabel ⛔️
hidden
itemMedia JSON
itemAnswerMedia

Control appearance

Control appearance Support Notes
itemControl See below
choiceOrientation
sliderStepValue
width ⛔️
collapsible ⛔️
Item control

The itemControl extension allows for the selection of a specific control widget for questionnaire items. See example usage. Item controls are only compatible with certain questionnaire item types (e.g. drop down item control cannot be applied to boolean type questions). This is listed in the Compatible item type column in the following table. Unsupported item controls are omitted in the table below.

Item control Compatible item type Example Notes Image
Page Group JSON
Fly-over Display
Help-Button Display JSON
Auto-complete Choice JSON Filter-forward based on inlined answerOptions
Drop down Choice JSON Default for 4 or more answer options Drop Down
Check-box Choice JSON Default for repeat answers
Radio Button Choice JSON Default for less than 4 answer options
Slider Integer JSON

Additional display content

Code Support Notes
supportLink ⛔️
choiceColumn ⛔️
optionPrefix ⛔️
valueset-label ⛔️
entryFormat ⚠️ Used in SDC for user guidance, not for validation. However, we use it to validate date where appropriate. See #1850.
shortText ⛔️

Other

Code Support Notes
required
repeats
readOnly
rendering-styleSensitive ⛔️
optionalDisplay ⛔️

Enhanced behavior

This section summarizes the library's support for form behavior and calculation.

Value constraints

The library supports the following value constraints which limit the allowed values for answers.

Value constraint Support Notes
maxLength For text only
minLength For text only
regex
minValue
maxValue
minQuantity ⛔️
maxQuantity ⛔️
maxDecimalPlaces
mimeType ⛔️
maxSize ⛔️

Choice restriction

The library supports the following choice restrictions. Note some of these are already covered in Questionnaire item support.

Choice restriction Support Notes
answerOption
answerValueSet
answerExpression
required
repeats
readOnly
minOccurs ⛔️
maxOccurs ⛔️
optionExclusive
unitOption ⛔️
unitValueSet ⛔️
referenceResource ⛔️
referenceProfile ⛔️
candidateExpression
lookupQuestionnaire ⛔️

Calculations

Code Support Example Notes
cqf-library ⛔️
launchContext
variable
initialExpression
calculatedExpression JSON
cqf-calculatedValue ⛔️
cqf-expression ⚠️ JSON text only

Other control

Code Support Notes
entryMode
intial
enableWhen
enableWhenBehavior
enableWhenExpression
usageMode ⛔️
constraint ⛔️
endpoint ⛔️
signatureRequired ⛔️
ordinalValue ⛔️
text ⛔️

Expression extensions

This section summarizes the library's support for expressions.

Name Support Example Notes
variable
answerExpression
initialExpression
candidateExpression ⚠️ #1038
contextExpression ⛔️
calculatedExpression JSON
enableWhenExpression JSON
answerOptionToggleExpression ⛔️
itemPopulationContext ⛔️
itemExtractionContext ⛔️
constraint ⛔️
library ⛔️ #1060
launchContext