This
page
is
part
of
the
FHIR
Specification
(v3.0.2:
STU
3).
(v3.3.0:
R4
Ballot
2).
The
current
version
which
supercedes
this
version
is
5.0.0
.
For
a
full
list
of
available
versions,
see
the
Directory
of
published
versions
.
Page
versions:
R5
R4B
R4
R3
R2
FHIR
Infrastructure
Work
Group
|
Maturity Level : 3 | Trial Use | Compartments : Not linked to any defined compartments |
Detailed Descriptions for the elements in the Questionnaire resource.
| Questionnaire | |
| Element Id | Questionnaire |
| Definition |
A structured set of questions intended to guide the collection of answers from end-users. Questionnaires provide detailed control over order, presentation, phraseology and grouping to allow coherent, consistent data collection. |
| Control | 1..1 |
| Requirements |
To support structured, hierarchical registration of data gathered using digital forms and other questionnaires. Questionnaires provide greater control over presentation and allow capture of data in a domain-independent way (i.e. capturing information that would otherwise require multiple distinct types of resources). |
| Alternate Names | Form; CRF; Survey |
| Invariants |
Defined
on
this
element
que-2 : The link ids for groups and questions must be unique within the questionnaire ( expression
:
descendants().linkId.isDistinct(),
xpath:
count(descendant::f:linkId/@value)=count(distinct-values(descendant::f:linkId/@value)))
|
| Questionnaire.url | |
| Element Id | Questionnaire.url |
| Definition |
An
absolute
URI
that
is
used
to
identify
this
questionnaire
when
it
is
referenced
in
a
specification,
model,
design
or
an
|
| Control | 0..1 |
| Type | uri |
| Requirements |
… This is the id that will be used to link a QuestionnaireResponse to the Questionnaire the response is for. |
| Summary | true |
| Comments |
Can
be
a
urn:uuid:
or
a
The URL SHOULD include the major version of the questionnaire. For more information see Technical and Business Versions . |
| Questionnaire.identifier | |
| Element Id | Questionnaire.identifier |
| Definition |
A formal identifier that is used to identify this questionnaire when it is represented in other formats, or referenced in a specification, model, design or an instance. |
| Note | This is a business identifer, not a resource identifier (see discussion ) |
| Control | 0..* |
| Type | Identifier |
| Requirements |
Allows externally provided and/or usable business identifiers to be easily associated with the module. |
| Summary | true |
| Comments |
Typically,
this
is
used
for
identifiers
that
can
go
in
an
HL7
V3
II
(instance
identifier)
data
type,
|
| Questionnaire.version | |
| Element Id | Questionnaire.version |
| Definition |
The identifier that is used to identify this version of the questionnaire when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the questionnaire author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence. |
| Note | This is a business versionId, not a resource version id (see discussion ) |
| Control | 0..1 |
| Type | string |
| Summary | true |
| Comments |
There
may
be
different
questionnaire
instances
that
have
the
same
identifier
but
different
versions.
The
version
can
be
appended
to
the
url
in
a
reference
to
allow
a
|
| Questionnaire.name | |
| Element Id | Questionnaire.name |
| Definition |
A natural language name identifying the questionnaire. This name should be usable as an identifier for the module by machine processing applications such as code generation. |
| Control | 0..1 |
| Type | string |
| Requirements |
Support human navigation and code generation. |
| Summary | true |
| Comments |
The
name
is
not
expected
to
be
globally
unique.
The
name
should
be
a
simple
|
| Questionnaire.title | |
| Element Id | Questionnaire.title |
| Definition |
A short, descriptive, user-friendly title for the questionnaire. |
| Control | 0..1 |
| Type | string |
| Summary | true |
| Comments |
This name does not need to be machine-processing friendly and may contain punctuation, white-space, etc. |
| Questionnaire.derivedFrom | |
| Element Id | Questionnaire.derivedFrom |
| Definition | The URL of a Questionnaire that this Questionnaire is based on. |
| Control | 0..* |
| Type | canonical ( Questionnaire ) |
| Requirements | Allows a Questionnaire to be created based on another Questionnaire. |
| Questionnaire.status | |
| Element Id | Questionnaire.status |
| Definition |
The status of this questionnaire. Enables tracking the life-cycle of the content. |
| Control | 1..1 |
| Terminology Binding | PublicationStatus ( Required ) |
| Type | code |
| Is Modifier | true (Reason: null) |
| Summary | true |
| Comments |
Allows
filtering
of
questionnaires
that
are
appropriate
for
use
|
| Questionnaire.experimental | |
| Element Id | Questionnaire.experimental |
| Definition |
A
|
| Control | 0..1 |
| Type | boolean |
| Is Modifier | true (Reason: null) |
| Requirements |
Enables experimental content to be developed following the same lifecycle that would be used for a production-level questionnaire. |
| Summary | true |
| Comments |
Allows
filtering
of
|
| Questionnaire.subjectType | |
| Element Id | Questionnaire.subjectType |
| Definition | The types of subjects that can be the subject of responses created for the questionnaire. |
| Control | 0..* |
| Terminology Binding | Any defined Resource Type name |
| Type | code |
| Summary | true |
| Comments |
If
none
are
specified,
then
the
subject
is
|
| Questionnaire.date | |
| Element Id | Questionnaire.date |
| Definition |
The
date
(and
optionally
time)
when
the
questionnaire
was
published.
The
date
must
change
|
| Control | 0..1 |
| Type | dateTime |
| Alternate Names | Revision Date |
| Summary | true |
| Comments |
Note that this is not the same as the resource last-modified-date, since the resource may be a secondary representation of the questionnaire. Additional specific dates may be added as extensions or be found by consulting Provenances associated with past versions of the resource. |
| Questionnaire.publisher | |
| Element Id | Questionnaire.publisher |
| Definition |
The
name
of
the
|
| Control | 0..1 |
| Type | string |
| Requirements |
Helps
establish
the
|
| Summary | true |
| Comments |
Usually
an
|
| Questionnaire.contact | |
| Element Id | Questionnaire.contact |
| Definition | Contact details to assist a user in finding and communicating with the publisher. |
| Control | 0..* |
| Type | ContactDetail |
| Summary | true |
| Comments | May be a web site, an email address, a telephone number, etc. |
| Questionnaire.description | |
| Element Id | Questionnaire.description |
| Definition |
A free text natural language description of the questionnaire from a consumer's perspective. |
| Control | 0..1 |
| Type | markdown |
| Comments |
This description can be used to capture details such as why the questionnaire was built, comments about misuse, instructions for clinical use and interpretation, literature references, examples from the paper world, etc. It is not a rendering of the questionnaire as conveyed in the 'text' field of the resource itself. This item SHOULD be populated unless the information is available from context (e.g. the language of the profile is presumed to be the predominant language in the place the profile was created). |
|
|
|
| Element Id | Questionnaire.useContext |
| Definition |
|
| Control |
|
| Type |
|
|
|
|
|
Summary
|
true |
|
|
|
|
|
|
|
|
|
|
|
|
|
Control
|
|
|
|
|
| Type |
|
|
|
|
| Comments |
|
|
|
|
| Element Id | Questionnaire.purpose |
| Definition |
|
| Control | 0..1 |
| Type |
|
|
|
|
|
|
|
|
|
|
| Definition |
|
| Control |
|
| Type |
|
| Requirements |
|
| Alternate Names |
|
|
Questionnaire.approvalDate
|
|
| Element Id | Questionnaire.approvalDate |
| Definition |
|
| Control |
|
| Type |
|
| Comments |
|
|
|
|
| Element Id | Questionnaire.lastReviewDate |
| Definition |
|
| Control |
|
| Type |
|
|
|
Gives a sense of how "current" the content is. Resources that have not been reviewed in a long time may have a risk of being less appropriate/relevant. |
| Comments |
|
|
|
|
| Element Id | Questionnaire.effectivePeriod |
| Definition |
|
| Control | 0..1 |
| Type |
|
| Requirements |
|
| Summary |
|
| Comments | The effective period for a questionnaire determines when the content is applicable for usage and is independent of publication and review dates. For example, a measure intended to be used for the year 2016 might be published in 2015. |
| Questionnaire.code | |
| Element Id | Questionnaire.code |
| Definition |
An identifier for this question or group of questions in a particular terminology such as LOINC. |
| Control | 0..* |
| Terminology Binding | Questionnaire Question Codes ( Example ) |
| Type | Coding |
| Requirements |
Allows
linking
of
the
complete
Questionnaire
resources
to
formal
terminologies.
It's
common
for
|
| Summary | true |
|
|
|
|
|
|
| Definition |
A particular question, question grouping or display text that is part of the questionnaire. |
| Control | 0..* |
| Comments |
The content of the questionnaire is constructed from an ordered, hierarchical collection of items. |
| Invariants |
Defined
on
this
element
que-1 : Group items must have nested items, display items cannot have nested items ( expression
:
(type='group'
implies
item.empty().not())
and
(type.trace('type')='display'
implies
item.trace('item').empty()),
xpath:
not((f:type/@value='group'
and
not(f:item))
or
(f:type/@value='display'
and
f:item)))
que-10 : Maximum length can only be declared for simple question types ( expression
:
(type
in
('boolean'
|
'decimal'
|
'integer'
|
'string'
|
'text'
|
que-11 : If one or more option is present, initial[x] must be missing ( expression :
option.empty()
or
initial.empty(),
xpath:
not(f:option)
or
not(count(f:*[starts-with(local-name(.),
'initial')])))
que-12 : If there are more than one enableWhen, enableBehavior must be specified ( expression :
enableWhen.count()
>
2
implies
enableBehavior.exists(),
xpath:
not(f:option)
or
not(count(f:*[starts-with(local-name(.),
'initial')])))
que-3 : Display items cannot have a
:
type!='display'
or
code.empty(),
xpath:
not(f:type/@value='display'
and
f:code))
que-4 : A question cannot have both option and options ( expression
:
option.empty()
or
options.empty(),
xpath:
not(f:options
and
f:option))
que-5 : Only 'choice' items can have options ( expression
:
(type
='choice'
or
type
=
que-6 : Required and repeat aren't permitted for display items ( expression
:
type!='display'
or
(required.empty()
and
repeats.empty()),
xpath:
not(f:type/@value='display'
and
(f:required
or
f:repeats)))
que-8 :
:
(type!='group'
and
type!='display')
or
initial.empty(),
xpath:
not(f:type/@value=('group',
'display')
and
f:*[starts-with(local-name(.),
'initial')]))
que-9 : Read-only can't be specified for
:
type!='display'
or
readOnly.empty(),
xpath:
Affect this element |
| Questionnaire.item.linkId | |
| Element Id | Questionnaire.item.linkId |
| Definition |
An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource. |
| Control | 1..1 |
| Type | string |
| Requirements |
QuestionnaireResponse does not require omitted items to be included and may have some items that repeat, so linkage based on position alone is not sufficient. |
| Comments |
This ''can'' be a meaningful identifier (e.g. a LOINC code) but is not intended to have any meaning. GUIDs or sequential numbers are appropriate here. |
| Questionnaire.item.definition | |
| Element Id | Questionnaire.item.definition |
| Definition |
A
reference
to
an
ElementDefinition
that
provides
the
details
for
the
item.
If
a
definition
is
provided,
then
the
following
element
values
can
be
|
| Control | 0..1 |
| Type | uri |
| Requirements |
A common pattern is to define a set of data elements and then build multiple questionnaires for different circumstances to gather the data. This element provides traceability to the common definition and allows the content for the question to come from the underlying definition. |
| Comments |
the
URI
refers
to
an
ElementDefinition
in
|
| Questionnaire.item.code | |
| Element Id | Questionnaire.item.code |
| Definition |
A terminology code that corresponds to this group or question (e.g. a code from LOINC, which defines many questions and answers). |
| Control | 0..* |
| Terminology Binding | Questionnaire Question Codes ( Example ) |
| Type | Coding |
| Requirements |
Allows linking of groups of questions to formal terminologies. |
|
|
The value may come from the ElementDefinition referred to by .definition. |
| Invariants |
Affect
this
element
que-3 : Display items cannot have a
:
type!='display'
or
code.empty(),
xpath:
not(f:type/@value='display'
and
f:code))
|
| Questionnaire.item.prefix | |
| Element Id | Questionnaire.item.prefix |
| Definition |
A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire. |
| Control | 0..1 |
| Type | string |
| Requirements |
Separating the label from the question text allows improved rendering. Also, instructions will often refer to specific prefixes, so there's a need for the questionnaire design to have control over what labels are used. |
| Alternate Names | label |
| Comments |
These
are
generally
unique
within
a
questionnaire,
though
this
is
not
guaranteed.
Some
questionnaires
may
have
multiple
questions
with
the
same
label
with
logic
to
control
which
gets
exposed.
|
| Questionnaire.item.text | |
| Element Id | Questionnaire.item.text |
| Definition |
The name of a section, the text of a question or text content for a display item. |
| Control | 0..1 |
| Type | string |
|
|
|
| Element Id | Questionnaire.item.type |
| Definition |
The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, coded choice, etc.). |
| Control | 1..1 |
| Terminology Binding | QuestionnaireItemType ( Required ) |
| Type | code |
| Requirements |
Defines the format in which the user is to be prompted for the answer. |
| Comments |
Additional constraints on the type of answer can be conveyed by extensions. The value may come from the ElementDefinition referred to by .definition. |
| Questionnaire.item.enableWhen | |
| Element Id | Questionnaire.item.enableWhen |
| Definition |
A constraint indicating that this item should only be enabled (displayed/allow answers to be captured) when the specified condition is true. |
| Control | 0..* |
| Is Modifier | true (Reason: If enableWhen is present and the condition evaluates to false, then the Questionnaire behaves as though the elements weren't actually present) |
| Requirements |
Allows questionnaires to adapt based on answers to other questions. E.g. If physical gender is specified as a male, no need to capture pregnancy history. Also allows conditional display of instructions or groups of questions. |
|
|
If
multiple
repetitions
of
this
extension
are
present,
the
item
should
be
enabled
when
the
condition
for
any
of
the
repetitions
is
true.
I.e.
treat
|
| Invariants |
Defined
on
this
element
que-7 :
:
|
| Questionnaire.item.enableWhen.question | |
| Element Id | Questionnaire.item.enableWhen.question |
| Definition |
The linkId for the question whose answer (or lack of answer) governs whether this item is enabled. |
| Control | 1..1 |
| Type | string |
| Comments |
If
multiple
question
occurrences
are
present
for
the
same
question
(same
linkId),
then
this
refers
to
the
nearest
question
occurrence
reachable
by
tracing
first
the
|
|
|
|
| Element Id | Questionnaire.item.enableWhen.operator |
| Definition |
|
| Control |
|
|
|
|
|
|
|
| Questionnaire.item.enableWhen.answer[x] | |
| Element Id | Questionnaire.item.enableWhen.answer[x] |
| Definition |
|
| Control |
|
| Terminology Binding | Questionnaire Answer Codes ( Example ) |
| Type |
boolean
|
decimal
|
integer
|
date
|
dateTime
|
time
|
string
|
|
| [x] Note | See Choice of Data Types for further information about how to use [x] |
|
|
que-7 : If the :
operator
=
'exists'
implies
answer
|
| Questionnaire.item.enableBehavior | |
| Element Id | Questionnaire.item.enableBehavior |
| Definition | Controls how multiple enableWhen values are interpreted - whether all or any must be true. |
| Control | 0..1 |
| Terminology Binding | EnableWhenBehavior ( Required ) |
| Type | code |
| Comments |
|
| Invariants |
Affect
this
element
:
|
| Questionnaire.item.required | |
| Element Id | Questionnaire.item.required |
| Definition |
An
indication,
if
true,
that
the
item
must
be
present
in
a
|
| Control | 0..1 |
| Type | boolean |
|
|
|
| Comments |
Questionnaire.item.required only has meaning for elements that are conditionally enabled with enableWhen if the condition evaluates to true. If an item that contains other items is marked as required, that does not automatically make the contained elements required (though required groups must contain at least one child element). The value may come from the ElementDefinition referred to by .definition. |
| Invariants |
Affect
this
element
que-6 : Required and repeat aren't permitted for display items ( expression
:
type!='display'
or
(required.empty()
and
repeats.empty()),
xpath:
not(f:type/@value='display'
and
(f:required
or
f:repeats)))
|
| Questionnaire.item.repeats | |
| Element Id | Questionnaire.item.repeats |
| Definition |
An indication, if true, that the item may occur multiple times in the response, collecting multiple answers answers for questions or multiple sets of answers for groups. |
| Control | 0..1 |
| Type | boolean |
|
|
|
| Requirements |
Items may be used to create set of (related) questions that can be repeated to give multiple answers to such a set. |
| Comments |
If a question is marked as repeats=true, then multiple answers can be provided for the question in the corresponding QuestionnaireResponse. When rendering the questionnaire, it is up to the rendering software whether to render the question text for each answer repetition or to simply list each of the answers beneath the question. (Which is most appropriate visually may depend on the type of answer as well as whether there are nested items.). The value may come from the ElementDefinition referred to by .definition. |
| Invariants |
Affect
this
element
que-6 : Required and repeat aren't permitted for display items ( expression
:
type!='display'
or
(required.empty()
and
repeats.empty()),
xpath:
not(f:type/@value='display'
and
(f:required
or
f:repeats)))
|
| Questionnaire.item.readOnly | |
| Element Id | Questionnaire.item.readOnly |
| Definition |
An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire. |
| Control | 0..1 |
| Type | boolean |
| Requirements |
Allows certain information to be phrased (and rendered) as a question and an answer, while keeping users from changing it. May also be useful for preventing changes to pre-populated portions of a questionnaire, for calculated values, etc. |
| Comments |
The value of readOnly elements can be established by asserting extensions for defaultValues, linkages that support pre-population and/or extensions that support calculation based on other answers. |
| Invariants |
Affect
this
element
que-9 : Read-only can't be specified for
:
type!='display'
or
readOnly.empty(),
xpath:
|
| Questionnaire.item.maxLength | |
| Element Id | Questionnaire.item.maxLength |
| Definition |
The
maximum
number
of
characters
that
are
permitted
in
the
answer
to
be
considered
a
|
| Control | 0..1 |
| Type | integer |
| Comments |
For base64binary, reflects the number of characters representing the encoded data, not the number of bytes of the binary data. The value may come from the ElementDefinition referred to by .definition. |
| Invariants |
Affect
this
element
que-10 : Maximum length can only be declared for simple question types ( expression
:
(type
in
('boolean'
|
'decimal'
|
'integer'
|
'string'
|
'text'
|
|
| Questionnaire.item.options | |
| Element Id | Questionnaire.item.options |
| Definition |
A
reference
to
a
value
set
containing
a
list
of
codes
representing
permitted
answers
for
a
|
| Control | 0..1 |
| Type |
|
| Comments |
LOINC defines many useful value sets for questionnaire responses. See LOINC Answer Lists . The value may come from the ElementDefinition referred to by .definition. |
| Invariants |
Affect
this
element
que-4 : A question cannot have both option and options ( expression
:
option.empty()
or
options.empty(),
xpath:
not(f:options
and
f:option))
que-5 : Only 'choice' items can have options ( expression
:
(type
='choice'
or
type
=
|
| Questionnaire.item.option | |
| Element Id | Questionnaire.item.option |
| Definition |
One
of
the
permitted
answers
for
a
|
| Control | 0..* |
| Comments |
This element can be used when the value set machinery of options is deemed too cumbersome or when there's a need to capture options that are not codes. |
| Invariants |
Affect
this
element
que-4 : A question cannot have both option and options ( expression
:
option.empty()
or
options.empty(),
xpath:
not(f:options
and
f:option))
que-5 : Only 'choice' items can have options ( expression
:
(type
='choice'
or
type
=
|
| Questionnaire.item.option.value[x] | |
| Element Id | Questionnaire.item.option.value[x] |
| Definition |
A potential answer that's allowed as the answer to this question. |
| Control | 1..1 |
| Terminology Binding | Questionnaire Answer Codes ( Example ) |
| Type | integer | date | time | string | Coding |
| [x] Note | See Choice of Data Types for further information about how to use [x] |
| Comments |
The data type of the value must agree with the item.type. |
|
|
|
| Element Id | Questionnaire.item.option.initialSelected |
| Definition |
|
| Control | 0..1 |
|
|
|
| Meaning if Missing | Only selected items explicitly marked to be selected |
| Comments |
Use this instead of initial[v] if options is present. |
|
|
|
|
|
|
| Definition |
One
or
more
values
that
should
be
pre-populated
in
the
answer
when
initially
rendering
the
questionnaire
for
|
| Control | 0..* |
| Requirements |
In some workflows, having defaults saves time. |
| Comments |
The
user
is
allowed
to
change
the
value
and
override
the
default
(unless
marked
as
read-only).
If
the
user
doesn't
change
the
value,
then
this
initial
value
will
be
persisted
when
the
QuestionnaireResponse
is
initially
created.
Note
that
|
| Invariants |
Affect
this
element
que-8 :
:
(type!='group'
and
type!='display')
or
initial.empty(),
xpath:
not(f:type/@value=('group',
'display')
and
f:*[starts-with(local-name(.),
'initial')]))
|
| Questionnaire.item.initial.value[x] | |
| Element Id | Questionnaire.item.initial.value[x] |
| Definition | The actual value to for an initial answer. |
| Control | 1..1 |
| Terminology Binding | Questionnaire Answer Codes ( Example ) |
| Type | boolean | decimal | integer | date | dateTime | time | string | uri | Attachment | Coding | Quantity | Reference ( Any ) |
| [x] Note | See Choice of Data Types for further information about how to use [x] |
| Comments | The type of the initial value must be consistent with the type of the item. |
| Questionnaire.item.item | |
| Element Id | Questionnaire.item.item |
| Definition |
Text, questions and other groups to be nested beneath a question or group. |
| Control | 0..* |
| Type | See Questionnaire.item |
| Requirements |
Reports can consist of complex nested groups. |
| Comments |
There is no specified limit to the depth of nesting. However, Questionnaire authors are encouraged to consider the impact on the user and user interface of overly deep nesting. |
| Invariants |
Affect
this
element
que-1 : Group items must have nested items, display items cannot have nested items ( expression
:
(type='group'
implies
item.empty().not())
and
(type.trace('type')='display'
implies
item.trace('item').empty()),
xpath:
not((f:type/@value='group'
and
not(f:item))
or
(f:type/@value='display'
and
f:item)))
|