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 ✅