IHE ACDC Implementation Guide
0.1.0 - CI Build

IHE ACDC Implementation Guide, published by Integrating the Healthcare Enterprise (IHE). This is not an authorized publication; it is the continuous build for version 0.1.0). This version is based on the current content of https://github.com/IHE/ACDC/ and changes regularly. See the Directory of published versions

StructureDefinition: ACDCQuestionnaire

Defines constraints and extensions on the Questionnaire Resource for questionnaires used with the IHE ACDC Profile

The official URL for this profile is:

http://ihe.net/fhir/ACDC/StructureDefinition/ihe-acdc-questionnaire

The IHE ACDC Questionnaire Profile defines the constraints on Questionnaire resources returned by the PCC-71 transaction, and referenced by the QuestionnaireResponse resource used in the PCC-73 transaction. This resource describes the Questionnaire that represents an Assessment that can be performed on a patient.

Constraints

At a minimum, Questionnaire resources that comply with this provide must provide:

extension[@url=”http://ihe.net/fhir/ACDC/StructureDefinition/questionnaire-launchurl”]
The EHR launch URL for the questionnaire. This is the URL to use for the SMART on FHIR EHR Launch flow. At least one of these elements must be present when no items are provided in the questionnaire. It enables limited content to be returned from a questionnaire to enable others to explore assessment instrument content without fully exposing the content of the questionnaire.
url
a canonical URI that is used represent the questionnaire. This is essentially a unique identifier for the questionnaire instrument.
name
The name of the questionnaire (for computer use).
title
The title of the questionnaire (for human use).
date
The date of last update to the questionnaire.
publisher
The name of the inidividual or organization that published the questionnaire.
description
A natural language description of the questionnaire.
item
If the EHR launch is not provided, at least one item must be present in the response. This enables the Assessor actor implement the assessment described by questionnaire.

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from Questionnaire

Summary

Mandatory: 6 elements
Must-Support: 1 element

Extensions

This structure refers to these extensions:

This structure is derived from Questionnaire

NameFlagsCard.TypeDescription & Constraintsdoco
.. Questionnaire 0..*QuestionnaireA structured set of questions
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... questionnaire-launchurl S0..*uriExtension
URL: http://ihe.net/fhir/ACDC/StructureDefinition/questionnaire-launchurl
... url 1..1uriCanonical identifier for this questionnaire, represented as a URI (globally unique)
... title 1..1stringName for this questionnaire (human friendly)
... date 1..1dateTimeDate last changed
... publisher 1..1stringName of the publisher (organization or individual)
... description 1..1markdownNatural language description of the questionnaire

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Questionnaire I0..*QuestionnaireA structured set of questions
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
... questionnaire-launchurl SI0..*uriOptional Extensions Element
URL: http://ihe.net/fhir/ACDC/StructureDefinition/questionnaire-launchurl
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... url ΣI1..1uriCanonical identifier for this questionnaire, represented as a URI (globally unique)
... identifier ΣI0..*IdentifierAdditional identifier for the questionnaire
... version ΣI0..1stringBusiness version of the questionnaire
... name ΣI1..1stringName for this questionnaire (computer friendly)
... title ΣI1..1stringName for this questionnaire (human friendly)
... derivedFrom I0..*canonical(Questionnaire)Instantiates protocol or definition
... status ?!ΣI1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required)
... experimental ΣI0..1booleanFor testing purposes, not real usage
... subjectType ΣI0..*codeResource that can be subject of QuestionnaireResponse
Binding: ResourceType (required)
... date ΣI1..1dateTimeDate last changed
... publisher ΣI1..1stringName of the publisher (organization or individual)
... contact ΣI0..*ContactDetailContact details for the publisher
... description I1..1markdownNatural language description of the questionnaire
... useContext ΣI0..*UsageContextThe context that the content is intended to support
... jurisdiction ΣI0..*CodeableConceptIntended jurisdiction for questionnaire (if applicable)
Binding: Jurisdiction ValueSet (extensible)
... purpose I0..1markdownWhy this questionnaire is defined
... copyright I0..1markdownUse and/or publishing restrictions
... approvalDate I0..1dateWhen the questionnaire was approved by publisher
... lastReviewDate I0..1dateWhen the questionnaire was last reviewed
... effectivePeriod ΣI0..1PeriodWhen the questionnaire is expected to be used
... code ΣI0..*CodingConcept that represents the overall questionnaire
Binding: QuestionnaireQuestionCodes (example)
... item I0..*BackboneElementQuestions and sections within the Questionnaire
que-1: Group items must have nested items, display items cannot have nested items
que-3: Display items cannot have a "code" asserted
que-4: A question cannot have both answerOption and answerValueSet
que-5: Only 'choice' and 'open-choice' items can have answerValueSet
que-6: Required and repeat aren't permitted for display items
que-8: Initial values can't be specified for groups or display items
que-9: Read-only can't be specified for "display" items
que-10: Maximum length can only be declared for simple question types
que-11: If one or more answerOption is present, initial[x] must be missing
que-12: If there are more than one enableWhen, enableBehavior must be specified
que-13: Can only have multiple initial values for repeating items
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... linkId I1..1stringUnique id for item in questionnaire
.... definition I0..1uriElementDefinition - details for the item
.... code I0..*CodingCorresponding concept for this item in a terminology
Binding: QuestionnaireQuestionCodes (example)
.... prefix I0..1stringE.g. "1(a)", "2.5.3"
.... text I0..1stringPrimary text for the item
.... type I1..1codegroup | display | boolean | decimal | integer | date | dateTime +
Binding: QuestionnaireItemType (required)
.... enableWhen ?!I0..*BackboneElementOnly allow data when
que-7: If the operator is 'exists', the value must be a boolean
..... id 0..1stringUnique id for inter-element referencing
..... extension I0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... question I1..1stringQuestion that determines whether item is enabled
..... operator I1..1codeexists | = | != | > | < | >= | <=
Binding: QuestionnaireItemOperator (required)
..... answer[x] I1..1Value for question comparison based on operator
Binding: QuestionnaireAnswerCodes (example)
...... answerBooleanboolean
...... answerDecimaldecimal
...... answerIntegerinteger
...... answerDatedate
...... answerDateTimedateTime
...... answerTimetime
...... answerStringstring
...... answerCodingCoding
...... answerQuantityQuantity
...... answerReferenceReference(Resource)
.... enableBehavior I0..1codeall | any
Binding: EnableWhenBehavior (required)
.... required I0..1booleanWhether the item must be included in data results
.... repeats I0..1booleanWhether the item may repeat
.... readOnly I0..1booleanDon't allow human editing
.... maxLength I0..1integerNo more than this many characters
.... answerValueSet I0..1canonical(ValueSet)Valueset containing permitted answers
.... answerOption I0..*BackboneElementPermitted answer
..... id 0..1stringUnique id for inter-element referencing
..... extension I0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... value[x] I1..1Answer value
Binding: QuestionnaireAnswerCodes (example)
...... valueIntegerinteger
...... valueDatedate
...... valueTimetime
...... valueStringstring
...... valueCodingCoding
...... valueReferenceReference(Resource)
..... initialSelected I0..1booleanWhether option is selected by default
.... initial I0..*BackboneElementInitial value(s) when item is first rendered
..... id 0..1stringUnique id for inter-element referencing
..... extension I0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... value[x] I1..1Actual value for initializing the question
Binding: QuestionnaireAnswerCodes (example)
...... valueBooleanboolean
...... valueDecimaldecimal
...... valueIntegerinteger
...... valueDatedate
...... valueDateTimedateTime
...... valueTimetime
...... valueStringstring
...... valueUriuri
...... valueAttachmentAttachment
...... valueCodingCoding
...... valueQuantityQuantity
...... valueReferenceReference(Resource)
.... item I0..*Unknown reference to #Questionnaire.item
Nested questionnaire items

doco Documentation for this format

This structure is derived from Questionnaire

Summary

Mandatory: 6 elements
Must-Support: 1 element

Extensions

This structure refers to these extensions:

Differential View

This structure is derived from Questionnaire

NameFlagsCard.TypeDescription & Constraintsdoco
.. Questionnaire 0..*QuestionnaireA structured set of questions
... extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... questionnaire-launchurl S0..*uriExtension
URL: http://ihe.net/fhir/ACDC/StructureDefinition/questionnaire-launchurl
... url 1..1uriCanonical identifier for this questionnaire, represented as a URI (globally unique)
... title 1..1stringName for this questionnaire (human friendly)
... date 1..1dateTimeDate last changed
... publisher 1..1stringName of the publisher (organization or individual)
... description 1..1markdownNatural language description of the questionnaire

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Questionnaire I0..*QuestionnaireA structured set of questions
... id Σ0..1stringLogical id of this artifact
... meta ΣI0..1MetaMetadata about the resource
... implicitRules ?!ΣI0..1uriA set of rules under which this content was created
... language I0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension I0..*ExtensionExtension
Slice: Unordered, Open by value:url
... questionnaire-launchurl SI0..*uriOptional Extensions Element
URL: http://ihe.net/fhir/ACDC/StructureDefinition/questionnaire-launchurl
... modifierExtension ?!I0..*ExtensionExtensions that cannot be ignored
... url ΣI1..1uriCanonical identifier for this questionnaire, represented as a URI (globally unique)
... identifier ΣI0..*IdentifierAdditional identifier for the questionnaire
... version ΣI0..1stringBusiness version of the questionnaire
... name ΣI1..1stringName for this questionnaire (computer friendly)
... title ΣI1..1stringName for this questionnaire (human friendly)
... derivedFrom I0..*canonical(Questionnaire)Instantiates protocol or definition
... status ?!ΣI1..1codedraft | active | retired | unknown
Binding: PublicationStatus (required)
... experimental ΣI0..1booleanFor testing purposes, not real usage
... subjectType ΣI0..*codeResource that can be subject of QuestionnaireResponse
Binding: ResourceType (required)
... date ΣI1..1dateTimeDate last changed
... publisher ΣI1..1stringName of the publisher (organization or individual)
... contact ΣI0..*ContactDetailContact details for the publisher
... description I1..1markdownNatural language description of the questionnaire
... useContext ΣI0..*UsageContextThe context that the content is intended to support
... jurisdiction ΣI0..*CodeableConceptIntended jurisdiction for questionnaire (if applicable)
Binding: Jurisdiction ValueSet (extensible)
... purpose I0..1markdownWhy this questionnaire is defined
... copyright I0..1markdownUse and/or publishing restrictions
... approvalDate I0..1dateWhen the questionnaire was approved by publisher
... lastReviewDate I0..1dateWhen the questionnaire was last reviewed
... effectivePeriod ΣI0..1PeriodWhen the questionnaire is expected to be used
... code ΣI0..*CodingConcept that represents the overall questionnaire
Binding: QuestionnaireQuestionCodes (example)
... item I0..*BackboneElementQuestions and sections within the Questionnaire
que-1: Group items must have nested items, display items cannot have nested items
que-3: Display items cannot have a "code" asserted
que-4: A question cannot have both answerOption and answerValueSet
que-5: Only 'choice' and 'open-choice' items can have answerValueSet
que-6: Required and repeat aren't permitted for display items
que-8: Initial values can't be specified for groups or display items
que-9: Read-only can't be specified for "display" items
que-10: Maximum length can only be declared for simple question types
que-11: If one or more answerOption is present, initial[x] must be missing
que-12: If there are more than one enableWhen, enableBehavior must be specified
que-13: Can only have multiple initial values for repeating items
.... id 0..1stringUnique id for inter-element referencing
.... extension I0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... linkId I1..1stringUnique id for item in questionnaire
.... definition I0..1uriElementDefinition - details for the item
.... code I0..*CodingCorresponding concept for this item in a terminology
Binding: QuestionnaireQuestionCodes (example)
.... prefix I0..1stringE.g. "1(a)", "2.5.3"
.... text I0..1stringPrimary text for the item
.... type I1..1codegroup | display | boolean | decimal | integer | date | dateTime +
Binding: QuestionnaireItemType (required)
.... enableWhen ?!I0..*BackboneElementOnly allow data when
que-7: If the operator is 'exists', the value must be a boolean
..... id 0..1stringUnique id for inter-element referencing
..... extension I0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... question I1..1stringQuestion that determines whether item is enabled
..... operator I1..1codeexists | = | != | > | < | >= | <=
Binding: QuestionnaireItemOperator (required)
..... answer[x] I1..1Value for question comparison based on operator
Binding: QuestionnaireAnswerCodes (example)
...... answerBooleanboolean
...... answerDecimaldecimal
...... answerIntegerinteger
...... answerDatedate
...... answerDateTimedateTime
...... answerTimetime
...... answerStringstring
...... answerCodingCoding
...... answerQuantityQuantity
...... answerReferenceReference(Resource)
.... enableBehavior I0..1codeall | any
Binding: EnableWhenBehavior (required)
.... required I0..1booleanWhether the item must be included in data results
.... repeats I0..1booleanWhether the item may repeat
.... readOnly I0..1booleanDon't allow human editing
.... maxLength I0..1integerNo more than this many characters
.... answerValueSet I0..1canonical(ValueSet)Valueset containing permitted answers
.... answerOption I0..*BackboneElementPermitted answer
..... id 0..1stringUnique id for inter-element referencing
..... extension I0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... value[x] I1..1Answer value
Binding: QuestionnaireAnswerCodes (example)
...... valueIntegerinteger
...... valueDatedate
...... valueTimetime
...... valueStringstring
...... valueCodingCoding
...... valueReferenceReference(Resource)
..... initialSelected I0..1booleanWhether option is selected by default
.... initial I0..*BackboneElementInitial value(s) when item is first rendered
..... id 0..1stringUnique id for inter-element referencing
..... extension I0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!ΣI0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... value[x] I1..1Actual value for initializing the question
Binding: QuestionnaireAnswerCodes (example)
...... valueBooleanboolean
...... valueDecimaldecimal
...... valueIntegerinteger
...... valueDatedate
...... valueDateTimedateTime
...... valueTimetime
...... valueStringstring
...... valueUriuri
...... valueAttachmentAttachment
...... valueCodingCoding
...... valueQuantityQuantity
...... valueReferenceReference(Resource)
.... item I0..*Unknown reference to #Questionnaire.item
Nested questionnaire items

doco Documentation for this format

 

Other representations of profile: Schematron

Terminology Bindings

Terminology Bindings

PathConformanceValueSet
Questionnaire.languagepreferredCommonLanguages
Max Binding: AllLanguages
Questionnaire.statusrequiredPublicationStatus
Questionnaire.subjectTyperequiredResourceType
Questionnaire.jurisdictionextensibleJurisdiction ValueSet
Questionnaire.codeexampleQuestionnaireQuestionCodes
Questionnaire.item.codeexampleQuestionnaireQuestionCodes
Questionnaire.item.typerequiredQuestionnaireItemType
Questionnaire.item.enableWhen.operatorrequiredQuestionnaireItemOperator
Questionnaire.item.enableWhen.answer[x]exampleQuestionnaireAnswerCodes
Questionnaire.item.enableBehaviorrequiredEnableWhenBehavior
Questionnaire.item.answerOption.value[x]exampleQuestionnaireAnswerCodes
Questionnaire.item.initial.value[x]exampleQuestionnaireAnswerCodes

Constraints

Constraints

IdPathDetailsRequirements
que-1Questionnaire.itemGroup items must have nested items, display items cannot have nested items
: (type='group' implies item.empty().not()) and (type.trace('type')='display' implies item.trace('item').empty())
que-3Questionnaire.itemDisplay items cannot have a "code" asserted
: type!='display' or code.empty()
que-4Questionnaire.itemA question cannot have both answerOption and answerValueSet
: answerOption.empty() or answerValueSet.empty()
que-5Questionnaire.itemOnly 'choice' and 'open-choice' items can have answerValueSet
: (type ='choice' or type = 'open-choice' or type = 'decimal' or type = 'integer' or type = 'date' or type = 'dateTime' or type = 'time' or type = 'string' or type = 'quantity') or (answerValueSet.empty() and answerOption.empty())
que-6Questionnaire.itemRequired and repeat aren't permitted for display items
: type!='display' or (required.empty() and repeats.empty())
que-8Questionnaire.itemInitial values can't be specified for groups or display items
: (type!='group' and type!='display') or initial.empty()
que-9Questionnaire.itemRead-only can't be specified for "display" items
: type!='display' or readOnly.empty()
que-10Questionnaire.itemMaximum length can only be declared for simple question types
: (type in ('boolean' | 'decimal' | 'integer' | 'string' | 'text' | 'url' | 'open-choice')) or maxLength.empty()
que-11Questionnaire.itemIf one or more answerOption is present, initial[x] must be missing
: answerOption.empty() or initial.empty()
que-12Questionnaire.itemIf there are more than one enableWhen, enableBehavior must be specified
: enableWhen.count() > 2 implies enableBehavior.exists()
que-13Questionnaire.itemCan only have multiple initial values for repeating items
: repeats=true or initial.count() <= 1
que-7Questionnaire.item.enableWhenIf the operator is 'exists', the value must be a boolean
: operator = 'exists' implies (answer is Boolean)

User Interface

The content and presentation of items returned by the questionnaire are not defined by this profile. The content of these questionnaires can be further constrained by the HL7 Structured Data Capture or Patient Reported Outcomes FHIR Implementation Guides in order to support different presentation and assessment capabilities. An Assessor that also implements Form Filler capabilities of these profiles can be used to implement the user interface and collect data from the patient or provider to perform the assessment.

EHR Launch URL

When an Clinical Knowledge Resource Repository that supports the EHR Launch option returns the questionnaire, it must return at least one extension[@url=”http://ihe.net/fhir/ACDC/StructureDefinition/questionnaire-launchurl”] field populated with a URL that will execute the questionnaire via the SMART on FHIR EHR Launch workflow.

More than one EHR Launch URL may be returned in the Questionnaire resource. The Assessment Requester actor can choose any of these URLs to enable access.

Security Concerns

The EHR Launch URL represents an endpoint that will be used to pass launch credentials and possibly other sensitive information, including individually identifiable information. The URL must be an absolute URL. The content of this URL must be secured via Transport Layer Security, and so the URL must begin with https://.