31
HL7®, FHIR® and the flame Design mark are the registered trademarks of Health Level Seven International and are used with per mission. Redmond, June 10 12 | @HL7 @FirelyTeam | #fhirdevdays | www.devdays.com/us Questionnaires (and Structured Data Capture) Eric Haas and Brian Postlethwaite

Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

HL7reg FHIRreg and the flame Design mark are the registered trademarks of Health Level Seven International and are used with per mission

Redmond June 10 ndash 12 | HL7 FirelyTeam | fhirdevdays | wwwdevdayscomus

Questionnaires (and Structured Data Capture)

Eric Haas and Brian Postlethwaite

What is going to be covered

bull Uses

bull FHIR Resource Definitions changes

bull Workflows

bull Creating Questionnaires

bull Rendering

bull Adaptive Questionnaires

bull ConversionMapping data to other resources

bull Pre-population

bull Validation

Uses of FHIR Questionnaires

bull Assessments (Primary Care)

bull Assessments (consumer)

bull Surveys

bull GovtStatutory forms

bull Referrals template

bull Admission form

bull Care Plans

bull Research

bull Oncology

bull Pathology

bull Public Health Reporting

bull InsurancePayments

bull General data entry

FHIR Questionnaire Artifacts

bull Questionnaire Resource

bull Definitional Resource

bull Similar to StructureDefinition

bull May include ValueSet Terminologies

bull QuestionnaireResponse Resource

bull Record of responses

bull Structure mirrors Questionnaire items

bull Other

bull Extensions Operations Profiles Implementation Guides (incl SDC)

Form Definitions

Questionnaire

bull Metadata

bull Items (nested)

bull LinkId

bull Text

bull Item Type

bull repeats

bull Data rules (validation)

bull Formatting hints

QuestionnaireResponse

bull Context

bull Items (nested)

bull LinkId (must match)

bull Answer value

LinkId joins answer to definition

MUST MATCH

(including the nesting depth)

Item-Type Response Type Definition

group item(Group) An item with children may be repeating Could be a section table or other layout (eg tabs)

display (none) Just a label to be displayed (no answer to be collected)

boolean valueBoolean Yesno answer (checkbox radio group or similar)

decimal valueDecimal Real number answer (restricted textbox slider hellip) integer valueInteger Integer answer (restricted textbox slider hellip) date valueDate Date answer (restricted textbox date picker hellip) dateTime valueDateTime Date and time answer (restricted textbox date picker hellip) time valueTime Time only answer (hourminutesecond) answer independent of date (restricted textbox hellip) string valueString Short free-text answer (single line textbox)

text valueString Longer free-text answer potentially multi-paragraph (multi-line textbox)

url valueUri URL (website FTP site etc) answer (restricted textbox)

choice valueCoding Coding drawn from a list of options (specified in either the option property or via the ValueSet

referenced in the options property) as an answer (radio buttons checkboxes combobox

autocomplete hellip) open-choice valueCoding or

valueString

Coding drawn from a list of options (as with the choice type) or a free-text entry in a string

(similar controls to choice except with ability to include textbox)

attachment valueAttachment Binary content such as a image PDF etc as an answer (file selector hellip) reference valueReference A reference to another resource eg practitioner organization etc (resource finder)

quantity valueQuantity Question with a combination of a numeric value and unit ()

httphl7orgfhirvalueset-item-typehtml

Interaction with terminologies

Questionnaire structure

bull Item types

bull Choice open-choice

bull Valueset reference (canonical)

bull ItemanswerValueSet

bull Answer options

bull valueCoding

bull Control selection

bull Consider the number of potential entries in the list

bull Checkboxes radio buttons comboboxes autocomplete

Extensions

bull questionnaire-optionExclusive

bull preferredTerminologyServer

bull questionnaire-unitValueSet

bull 11179-permitted-value-valueset

bull 11179-permitted-value-conceptmap

Operations

Use the ValueSet $expand operation to either pre-load the values or use the filter parameter for the auto-complete style usage

Difference between DSTU2 and STU3

DSTU2

bull GroupQuestion

bull Group 01 at root

bull enableWhen readonly maxLength intialValue (extension)

bull Concept

bull Label (extension)

bull Groupquestion child collection ordering ambiguous

STU3

bull Item (with type=group)

bull Item 0 at root

bull Moved to core

bull Code (and definition)

bull Use Item (type=display)

bull More metadata at root

httphl7orgfhirstu3questionnairehtml (check the R2 Diff tab ndash not a complete mapping)

Difference between STU3 and R4

bull New mandatory properties

bull enableWhenoperator

bull Initialvalue

bull options named answerValueSet

bull changed from reference to canonical

bull option renamed answerOption

bull Also includes valueReference support

bull And initial selection flag

bull enableWhen allany flag

bull enableWhenhasAnswer removed

bull Use operator value ldquoexistsrdquo

bull enableWhen no longer supports

bull Uri

bull Attachment

bull $populate operation moved into SDC

Note Additional functionality now defined int the SDC functionality rather than the core

httphl7orgfhirr4questionnairehtml (check the R3 Diff tab ndash not a complete mapping)

Structured Data Capture (SDC) Implementation Guide

bullExtensions to the core HL7 definitions bull Advanced Rendering

bull Advanced Form Behaviour

bull Importing Data into Forms

bull Extraction of Data from Forms

httpbuildfhirorgigHL7sdc

Workflow

bull Locate questionnaire to use (for given context)

bull Loadrender questionnaire (and referenced content)

bull Pre-populate questionnaire with other data (eg patient demographics observations etc)

bull User enters data

bull Local validations may occur during data entry

bull QuestionnaireResponse is validated by server bull ErrorsWarningsissues reported to the user

bull QuestionnaireResponse is saved to the target server

bull Data extracted into other resources

Argonaut Questionnaire Implementation Guide (Based on FHIR STU3) STATIC FORM WorkFlow

bull 1 An EHR system retrieves a standardized assessment represented by the Questionnaire resource from an assessment bank

bull 2 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 3 The end user enters responses to the assessment questions and these responses are stored in the Answer Bank by POSTing a QuestionnaireResponse

bull 4 An EHR system requests answers to an assessment for a particular subject

bull 5 The QuestionnaireResponse is processed by the end user

httpwwwfhirorgguidesargonautquestionnaireindexhtml

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 2: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

What is going to be covered

bull Uses

bull FHIR Resource Definitions changes

bull Workflows

bull Creating Questionnaires

bull Rendering

bull Adaptive Questionnaires

bull ConversionMapping data to other resources

bull Pre-population

bull Validation

Uses of FHIR Questionnaires

bull Assessments (Primary Care)

bull Assessments (consumer)

bull Surveys

bull GovtStatutory forms

bull Referrals template

bull Admission form

bull Care Plans

bull Research

bull Oncology

bull Pathology

bull Public Health Reporting

bull InsurancePayments

bull General data entry

FHIR Questionnaire Artifacts

bull Questionnaire Resource

bull Definitional Resource

bull Similar to StructureDefinition

bull May include ValueSet Terminologies

bull QuestionnaireResponse Resource

bull Record of responses

bull Structure mirrors Questionnaire items

bull Other

bull Extensions Operations Profiles Implementation Guides (incl SDC)

Form Definitions

Questionnaire

bull Metadata

bull Items (nested)

bull LinkId

bull Text

bull Item Type

bull repeats

bull Data rules (validation)

bull Formatting hints

QuestionnaireResponse

bull Context

bull Items (nested)

bull LinkId (must match)

bull Answer value

LinkId joins answer to definition

MUST MATCH

(including the nesting depth)

Item-Type Response Type Definition

group item(Group) An item with children may be repeating Could be a section table or other layout (eg tabs)

display (none) Just a label to be displayed (no answer to be collected)

boolean valueBoolean Yesno answer (checkbox radio group or similar)

decimal valueDecimal Real number answer (restricted textbox slider hellip) integer valueInteger Integer answer (restricted textbox slider hellip) date valueDate Date answer (restricted textbox date picker hellip) dateTime valueDateTime Date and time answer (restricted textbox date picker hellip) time valueTime Time only answer (hourminutesecond) answer independent of date (restricted textbox hellip) string valueString Short free-text answer (single line textbox)

text valueString Longer free-text answer potentially multi-paragraph (multi-line textbox)

url valueUri URL (website FTP site etc) answer (restricted textbox)

choice valueCoding Coding drawn from a list of options (specified in either the option property or via the ValueSet

referenced in the options property) as an answer (radio buttons checkboxes combobox

autocomplete hellip) open-choice valueCoding or

valueString

Coding drawn from a list of options (as with the choice type) or a free-text entry in a string

(similar controls to choice except with ability to include textbox)

attachment valueAttachment Binary content such as a image PDF etc as an answer (file selector hellip) reference valueReference A reference to another resource eg practitioner organization etc (resource finder)

quantity valueQuantity Question with a combination of a numeric value and unit ()

httphl7orgfhirvalueset-item-typehtml

Interaction with terminologies

Questionnaire structure

bull Item types

bull Choice open-choice

bull Valueset reference (canonical)

bull ItemanswerValueSet

bull Answer options

bull valueCoding

bull Control selection

bull Consider the number of potential entries in the list

bull Checkboxes radio buttons comboboxes autocomplete

Extensions

bull questionnaire-optionExclusive

bull preferredTerminologyServer

bull questionnaire-unitValueSet

bull 11179-permitted-value-valueset

bull 11179-permitted-value-conceptmap

Operations

Use the ValueSet $expand operation to either pre-load the values or use the filter parameter for the auto-complete style usage

Difference between DSTU2 and STU3

DSTU2

bull GroupQuestion

bull Group 01 at root

bull enableWhen readonly maxLength intialValue (extension)

bull Concept

bull Label (extension)

bull Groupquestion child collection ordering ambiguous

STU3

bull Item (with type=group)

bull Item 0 at root

bull Moved to core

bull Code (and definition)

bull Use Item (type=display)

bull More metadata at root

httphl7orgfhirstu3questionnairehtml (check the R2 Diff tab ndash not a complete mapping)

Difference between STU3 and R4

bull New mandatory properties

bull enableWhenoperator

bull Initialvalue

bull options named answerValueSet

bull changed from reference to canonical

bull option renamed answerOption

bull Also includes valueReference support

bull And initial selection flag

bull enableWhen allany flag

bull enableWhenhasAnswer removed

bull Use operator value ldquoexistsrdquo

bull enableWhen no longer supports

bull Uri

bull Attachment

bull $populate operation moved into SDC

Note Additional functionality now defined int the SDC functionality rather than the core

httphl7orgfhirr4questionnairehtml (check the R3 Diff tab ndash not a complete mapping)

Structured Data Capture (SDC) Implementation Guide

bullExtensions to the core HL7 definitions bull Advanced Rendering

bull Advanced Form Behaviour

bull Importing Data into Forms

bull Extraction of Data from Forms

httpbuildfhirorgigHL7sdc

Workflow

bull Locate questionnaire to use (for given context)

bull Loadrender questionnaire (and referenced content)

bull Pre-populate questionnaire with other data (eg patient demographics observations etc)

bull User enters data

bull Local validations may occur during data entry

bull QuestionnaireResponse is validated by server bull ErrorsWarningsissues reported to the user

bull QuestionnaireResponse is saved to the target server

bull Data extracted into other resources

Argonaut Questionnaire Implementation Guide (Based on FHIR STU3) STATIC FORM WorkFlow

bull 1 An EHR system retrieves a standardized assessment represented by the Questionnaire resource from an assessment bank

bull 2 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 3 The end user enters responses to the assessment questions and these responses are stored in the Answer Bank by POSTing a QuestionnaireResponse

bull 4 An EHR system requests answers to an assessment for a particular subject

bull 5 The QuestionnaireResponse is processed by the end user

httpwwwfhirorgguidesargonautquestionnaireindexhtml

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 3: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Uses of FHIR Questionnaires

bull Assessments (Primary Care)

bull Assessments (consumer)

bull Surveys

bull GovtStatutory forms

bull Referrals template

bull Admission form

bull Care Plans

bull Research

bull Oncology

bull Pathology

bull Public Health Reporting

bull InsurancePayments

bull General data entry

FHIR Questionnaire Artifacts

bull Questionnaire Resource

bull Definitional Resource

bull Similar to StructureDefinition

bull May include ValueSet Terminologies

bull QuestionnaireResponse Resource

bull Record of responses

bull Structure mirrors Questionnaire items

bull Other

bull Extensions Operations Profiles Implementation Guides (incl SDC)

Form Definitions

Questionnaire

bull Metadata

bull Items (nested)

bull LinkId

bull Text

bull Item Type

bull repeats

bull Data rules (validation)

bull Formatting hints

QuestionnaireResponse

bull Context

bull Items (nested)

bull LinkId (must match)

bull Answer value

LinkId joins answer to definition

MUST MATCH

(including the nesting depth)

Item-Type Response Type Definition

group item(Group) An item with children may be repeating Could be a section table or other layout (eg tabs)

display (none) Just a label to be displayed (no answer to be collected)

boolean valueBoolean Yesno answer (checkbox radio group or similar)

decimal valueDecimal Real number answer (restricted textbox slider hellip) integer valueInteger Integer answer (restricted textbox slider hellip) date valueDate Date answer (restricted textbox date picker hellip) dateTime valueDateTime Date and time answer (restricted textbox date picker hellip) time valueTime Time only answer (hourminutesecond) answer independent of date (restricted textbox hellip) string valueString Short free-text answer (single line textbox)

text valueString Longer free-text answer potentially multi-paragraph (multi-line textbox)

url valueUri URL (website FTP site etc) answer (restricted textbox)

choice valueCoding Coding drawn from a list of options (specified in either the option property or via the ValueSet

referenced in the options property) as an answer (radio buttons checkboxes combobox

autocomplete hellip) open-choice valueCoding or

valueString

Coding drawn from a list of options (as with the choice type) or a free-text entry in a string

(similar controls to choice except with ability to include textbox)

attachment valueAttachment Binary content such as a image PDF etc as an answer (file selector hellip) reference valueReference A reference to another resource eg practitioner organization etc (resource finder)

quantity valueQuantity Question with a combination of a numeric value and unit ()

httphl7orgfhirvalueset-item-typehtml

Interaction with terminologies

Questionnaire structure

bull Item types

bull Choice open-choice

bull Valueset reference (canonical)

bull ItemanswerValueSet

bull Answer options

bull valueCoding

bull Control selection

bull Consider the number of potential entries in the list

bull Checkboxes radio buttons comboboxes autocomplete

Extensions

bull questionnaire-optionExclusive

bull preferredTerminologyServer

bull questionnaire-unitValueSet

bull 11179-permitted-value-valueset

bull 11179-permitted-value-conceptmap

Operations

Use the ValueSet $expand operation to either pre-load the values or use the filter parameter for the auto-complete style usage

Difference between DSTU2 and STU3

DSTU2

bull GroupQuestion

bull Group 01 at root

bull enableWhen readonly maxLength intialValue (extension)

bull Concept

bull Label (extension)

bull Groupquestion child collection ordering ambiguous

STU3

bull Item (with type=group)

bull Item 0 at root

bull Moved to core

bull Code (and definition)

bull Use Item (type=display)

bull More metadata at root

httphl7orgfhirstu3questionnairehtml (check the R2 Diff tab ndash not a complete mapping)

Difference between STU3 and R4

bull New mandatory properties

bull enableWhenoperator

bull Initialvalue

bull options named answerValueSet

bull changed from reference to canonical

bull option renamed answerOption

bull Also includes valueReference support

bull And initial selection flag

bull enableWhen allany flag

bull enableWhenhasAnswer removed

bull Use operator value ldquoexistsrdquo

bull enableWhen no longer supports

bull Uri

bull Attachment

bull $populate operation moved into SDC

Note Additional functionality now defined int the SDC functionality rather than the core

httphl7orgfhirr4questionnairehtml (check the R3 Diff tab ndash not a complete mapping)

Structured Data Capture (SDC) Implementation Guide

bullExtensions to the core HL7 definitions bull Advanced Rendering

bull Advanced Form Behaviour

bull Importing Data into Forms

bull Extraction of Data from Forms

httpbuildfhirorgigHL7sdc

Workflow

bull Locate questionnaire to use (for given context)

bull Loadrender questionnaire (and referenced content)

bull Pre-populate questionnaire with other data (eg patient demographics observations etc)

bull User enters data

bull Local validations may occur during data entry

bull QuestionnaireResponse is validated by server bull ErrorsWarningsissues reported to the user

bull QuestionnaireResponse is saved to the target server

bull Data extracted into other resources

Argonaut Questionnaire Implementation Guide (Based on FHIR STU3) STATIC FORM WorkFlow

bull 1 An EHR system retrieves a standardized assessment represented by the Questionnaire resource from an assessment bank

bull 2 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 3 The end user enters responses to the assessment questions and these responses are stored in the Answer Bank by POSTing a QuestionnaireResponse

bull 4 An EHR system requests answers to an assessment for a particular subject

bull 5 The QuestionnaireResponse is processed by the end user

httpwwwfhirorgguidesargonautquestionnaireindexhtml

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 4: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

FHIR Questionnaire Artifacts

bull Questionnaire Resource

bull Definitional Resource

bull Similar to StructureDefinition

bull May include ValueSet Terminologies

bull QuestionnaireResponse Resource

bull Record of responses

bull Structure mirrors Questionnaire items

bull Other

bull Extensions Operations Profiles Implementation Guides (incl SDC)

Form Definitions

Questionnaire

bull Metadata

bull Items (nested)

bull LinkId

bull Text

bull Item Type

bull repeats

bull Data rules (validation)

bull Formatting hints

QuestionnaireResponse

bull Context

bull Items (nested)

bull LinkId (must match)

bull Answer value

LinkId joins answer to definition

MUST MATCH

(including the nesting depth)

Item-Type Response Type Definition

group item(Group) An item with children may be repeating Could be a section table or other layout (eg tabs)

display (none) Just a label to be displayed (no answer to be collected)

boolean valueBoolean Yesno answer (checkbox radio group or similar)

decimal valueDecimal Real number answer (restricted textbox slider hellip) integer valueInteger Integer answer (restricted textbox slider hellip) date valueDate Date answer (restricted textbox date picker hellip) dateTime valueDateTime Date and time answer (restricted textbox date picker hellip) time valueTime Time only answer (hourminutesecond) answer independent of date (restricted textbox hellip) string valueString Short free-text answer (single line textbox)

text valueString Longer free-text answer potentially multi-paragraph (multi-line textbox)

url valueUri URL (website FTP site etc) answer (restricted textbox)

choice valueCoding Coding drawn from a list of options (specified in either the option property or via the ValueSet

referenced in the options property) as an answer (radio buttons checkboxes combobox

autocomplete hellip) open-choice valueCoding or

valueString

Coding drawn from a list of options (as with the choice type) or a free-text entry in a string

(similar controls to choice except with ability to include textbox)

attachment valueAttachment Binary content such as a image PDF etc as an answer (file selector hellip) reference valueReference A reference to another resource eg practitioner organization etc (resource finder)

quantity valueQuantity Question with a combination of a numeric value and unit ()

httphl7orgfhirvalueset-item-typehtml

Interaction with terminologies

Questionnaire structure

bull Item types

bull Choice open-choice

bull Valueset reference (canonical)

bull ItemanswerValueSet

bull Answer options

bull valueCoding

bull Control selection

bull Consider the number of potential entries in the list

bull Checkboxes radio buttons comboboxes autocomplete

Extensions

bull questionnaire-optionExclusive

bull preferredTerminologyServer

bull questionnaire-unitValueSet

bull 11179-permitted-value-valueset

bull 11179-permitted-value-conceptmap

Operations

Use the ValueSet $expand operation to either pre-load the values or use the filter parameter for the auto-complete style usage

Difference between DSTU2 and STU3

DSTU2

bull GroupQuestion

bull Group 01 at root

bull enableWhen readonly maxLength intialValue (extension)

bull Concept

bull Label (extension)

bull Groupquestion child collection ordering ambiguous

STU3

bull Item (with type=group)

bull Item 0 at root

bull Moved to core

bull Code (and definition)

bull Use Item (type=display)

bull More metadata at root

httphl7orgfhirstu3questionnairehtml (check the R2 Diff tab ndash not a complete mapping)

Difference between STU3 and R4

bull New mandatory properties

bull enableWhenoperator

bull Initialvalue

bull options named answerValueSet

bull changed from reference to canonical

bull option renamed answerOption

bull Also includes valueReference support

bull And initial selection flag

bull enableWhen allany flag

bull enableWhenhasAnswer removed

bull Use operator value ldquoexistsrdquo

bull enableWhen no longer supports

bull Uri

bull Attachment

bull $populate operation moved into SDC

Note Additional functionality now defined int the SDC functionality rather than the core

httphl7orgfhirr4questionnairehtml (check the R3 Diff tab ndash not a complete mapping)

Structured Data Capture (SDC) Implementation Guide

bullExtensions to the core HL7 definitions bull Advanced Rendering

bull Advanced Form Behaviour

bull Importing Data into Forms

bull Extraction of Data from Forms

httpbuildfhirorgigHL7sdc

Workflow

bull Locate questionnaire to use (for given context)

bull Loadrender questionnaire (and referenced content)

bull Pre-populate questionnaire with other data (eg patient demographics observations etc)

bull User enters data

bull Local validations may occur during data entry

bull QuestionnaireResponse is validated by server bull ErrorsWarningsissues reported to the user

bull QuestionnaireResponse is saved to the target server

bull Data extracted into other resources

Argonaut Questionnaire Implementation Guide (Based on FHIR STU3) STATIC FORM WorkFlow

bull 1 An EHR system retrieves a standardized assessment represented by the Questionnaire resource from an assessment bank

bull 2 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 3 The end user enters responses to the assessment questions and these responses are stored in the Answer Bank by POSTing a QuestionnaireResponse

bull 4 An EHR system requests answers to an assessment for a particular subject

bull 5 The QuestionnaireResponse is processed by the end user

httpwwwfhirorgguidesargonautquestionnaireindexhtml

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 5: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Form Definitions

Questionnaire

bull Metadata

bull Items (nested)

bull LinkId

bull Text

bull Item Type

bull repeats

bull Data rules (validation)

bull Formatting hints

QuestionnaireResponse

bull Context

bull Items (nested)

bull LinkId (must match)

bull Answer value

LinkId joins answer to definition

MUST MATCH

(including the nesting depth)

Item-Type Response Type Definition

group item(Group) An item with children may be repeating Could be a section table or other layout (eg tabs)

display (none) Just a label to be displayed (no answer to be collected)

boolean valueBoolean Yesno answer (checkbox radio group or similar)

decimal valueDecimal Real number answer (restricted textbox slider hellip) integer valueInteger Integer answer (restricted textbox slider hellip) date valueDate Date answer (restricted textbox date picker hellip) dateTime valueDateTime Date and time answer (restricted textbox date picker hellip) time valueTime Time only answer (hourminutesecond) answer independent of date (restricted textbox hellip) string valueString Short free-text answer (single line textbox)

text valueString Longer free-text answer potentially multi-paragraph (multi-line textbox)

url valueUri URL (website FTP site etc) answer (restricted textbox)

choice valueCoding Coding drawn from a list of options (specified in either the option property or via the ValueSet

referenced in the options property) as an answer (radio buttons checkboxes combobox

autocomplete hellip) open-choice valueCoding or

valueString

Coding drawn from a list of options (as with the choice type) or a free-text entry in a string

(similar controls to choice except with ability to include textbox)

attachment valueAttachment Binary content such as a image PDF etc as an answer (file selector hellip) reference valueReference A reference to another resource eg practitioner organization etc (resource finder)

quantity valueQuantity Question with a combination of a numeric value and unit ()

httphl7orgfhirvalueset-item-typehtml

Interaction with terminologies

Questionnaire structure

bull Item types

bull Choice open-choice

bull Valueset reference (canonical)

bull ItemanswerValueSet

bull Answer options

bull valueCoding

bull Control selection

bull Consider the number of potential entries in the list

bull Checkboxes radio buttons comboboxes autocomplete

Extensions

bull questionnaire-optionExclusive

bull preferredTerminologyServer

bull questionnaire-unitValueSet

bull 11179-permitted-value-valueset

bull 11179-permitted-value-conceptmap

Operations

Use the ValueSet $expand operation to either pre-load the values or use the filter parameter for the auto-complete style usage

Difference between DSTU2 and STU3

DSTU2

bull GroupQuestion

bull Group 01 at root

bull enableWhen readonly maxLength intialValue (extension)

bull Concept

bull Label (extension)

bull Groupquestion child collection ordering ambiguous

STU3

bull Item (with type=group)

bull Item 0 at root

bull Moved to core

bull Code (and definition)

bull Use Item (type=display)

bull More metadata at root

httphl7orgfhirstu3questionnairehtml (check the R2 Diff tab ndash not a complete mapping)

Difference between STU3 and R4

bull New mandatory properties

bull enableWhenoperator

bull Initialvalue

bull options named answerValueSet

bull changed from reference to canonical

bull option renamed answerOption

bull Also includes valueReference support

bull And initial selection flag

bull enableWhen allany flag

bull enableWhenhasAnswer removed

bull Use operator value ldquoexistsrdquo

bull enableWhen no longer supports

bull Uri

bull Attachment

bull $populate operation moved into SDC

Note Additional functionality now defined int the SDC functionality rather than the core

httphl7orgfhirr4questionnairehtml (check the R3 Diff tab ndash not a complete mapping)

Structured Data Capture (SDC) Implementation Guide

bullExtensions to the core HL7 definitions bull Advanced Rendering

bull Advanced Form Behaviour

bull Importing Data into Forms

bull Extraction of Data from Forms

httpbuildfhirorgigHL7sdc

Workflow

bull Locate questionnaire to use (for given context)

bull Loadrender questionnaire (and referenced content)

bull Pre-populate questionnaire with other data (eg patient demographics observations etc)

bull User enters data

bull Local validations may occur during data entry

bull QuestionnaireResponse is validated by server bull ErrorsWarningsissues reported to the user

bull QuestionnaireResponse is saved to the target server

bull Data extracted into other resources

Argonaut Questionnaire Implementation Guide (Based on FHIR STU3) STATIC FORM WorkFlow

bull 1 An EHR system retrieves a standardized assessment represented by the Questionnaire resource from an assessment bank

bull 2 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 3 The end user enters responses to the assessment questions and these responses are stored in the Answer Bank by POSTing a QuestionnaireResponse

bull 4 An EHR system requests answers to an assessment for a particular subject

bull 5 The QuestionnaireResponse is processed by the end user

httpwwwfhirorgguidesargonautquestionnaireindexhtml

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 6: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Item-Type Response Type Definition

group item(Group) An item with children may be repeating Could be a section table or other layout (eg tabs)

display (none) Just a label to be displayed (no answer to be collected)

boolean valueBoolean Yesno answer (checkbox radio group or similar)

decimal valueDecimal Real number answer (restricted textbox slider hellip) integer valueInteger Integer answer (restricted textbox slider hellip) date valueDate Date answer (restricted textbox date picker hellip) dateTime valueDateTime Date and time answer (restricted textbox date picker hellip) time valueTime Time only answer (hourminutesecond) answer independent of date (restricted textbox hellip) string valueString Short free-text answer (single line textbox)

text valueString Longer free-text answer potentially multi-paragraph (multi-line textbox)

url valueUri URL (website FTP site etc) answer (restricted textbox)

choice valueCoding Coding drawn from a list of options (specified in either the option property or via the ValueSet

referenced in the options property) as an answer (radio buttons checkboxes combobox

autocomplete hellip) open-choice valueCoding or

valueString

Coding drawn from a list of options (as with the choice type) or a free-text entry in a string

(similar controls to choice except with ability to include textbox)

attachment valueAttachment Binary content such as a image PDF etc as an answer (file selector hellip) reference valueReference A reference to another resource eg practitioner organization etc (resource finder)

quantity valueQuantity Question with a combination of a numeric value and unit ()

httphl7orgfhirvalueset-item-typehtml

Interaction with terminologies

Questionnaire structure

bull Item types

bull Choice open-choice

bull Valueset reference (canonical)

bull ItemanswerValueSet

bull Answer options

bull valueCoding

bull Control selection

bull Consider the number of potential entries in the list

bull Checkboxes radio buttons comboboxes autocomplete

Extensions

bull questionnaire-optionExclusive

bull preferredTerminologyServer

bull questionnaire-unitValueSet

bull 11179-permitted-value-valueset

bull 11179-permitted-value-conceptmap

Operations

Use the ValueSet $expand operation to either pre-load the values or use the filter parameter for the auto-complete style usage

Difference between DSTU2 and STU3

DSTU2

bull GroupQuestion

bull Group 01 at root

bull enableWhen readonly maxLength intialValue (extension)

bull Concept

bull Label (extension)

bull Groupquestion child collection ordering ambiguous

STU3

bull Item (with type=group)

bull Item 0 at root

bull Moved to core

bull Code (and definition)

bull Use Item (type=display)

bull More metadata at root

httphl7orgfhirstu3questionnairehtml (check the R2 Diff tab ndash not a complete mapping)

Difference between STU3 and R4

bull New mandatory properties

bull enableWhenoperator

bull Initialvalue

bull options named answerValueSet

bull changed from reference to canonical

bull option renamed answerOption

bull Also includes valueReference support

bull And initial selection flag

bull enableWhen allany flag

bull enableWhenhasAnswer removed

bull Use operator value ldquoexistsrdquo

bull enableWhen no longer supports

bull Uri

bull Attachment

bull $populate operation moved into SDC

Note Additional functionality now defined int the SDC functionality rather than the core

httphl7orgfhirr4questionnairehtml (check the R3 Diff tab ndash not a complete mapping)

Structured Data Capture (SDC) Implementation Guide

bullExtensions to the core HL7 definitions bull Advanced Rendering

bull Advanced Form Behaviour

bull Importing Data into Forms

bull Extraction of Data from Forms

httpbuildfhirorgigHL7sdc

Workflow

bull Locate questionnaire to use (for given context)

bull Loadrender questionnaire (and referenced content)

bull Pre-populate questionnaire with other data (eg patient demographics observations etc)

bull User enters data

bull Local validations may occur during data entry

bull QuestionnaireResponse is validated by server bull ErrorsWarningsissues reported to the user

bull QuestionnaireResponse is saved to the target server

bull Data extracted into other resources

Argonaut Questionnaire Implementation Guide (Based on FHIR STU3) STATIC FORM WorkFlow

bull 1 An EHR system retrieves a standardized assessment represented by the Questionnaire resource from an assessment bank

bull 2 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 3 The end user enters responses to the assessment questions and these responses are stored in the Answer Bank by POSTing a QuestionnaireResponse

bull 4 An EHR system requests answers to an assessment for a particular subject

bull 5 The QuestionnaireResponse is processed by the end user

httpwwwfhirorgguidesargonautquestionnaireindexhtml

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 7: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Interaction with terminologies

Questionnaire structure

bull Item types

bull Choice open-choice

bull Valueset reference (canonical)

bull ItemanswerValueSet

bull Answer options

bull valueCoding

bull Control selection

bull Consider the number of potential entries in the list

bull Checkboxes radio buttons comboboxes autocomplete

Extensions

bull questionnaire-optionExclusive

bull preferredTerminologyServer

bull questionnaire-unitValueSet

bull 11179-permitted-value-valueset

bull 11179-permitted-value-conceptmap

Operations

Use the ValueSet $expand operation to either pre-load the values or use the filter parameter for the auto-complete style usage

Difference between DSTU2 and STU3

DSTU2

bull GroupQuestion

bull Group 01 at root

bull enableWhen readonly maxLength intialValue (extension)

bull Concept

bull Label (extension)

bull Groupquestion child collection ordering ambiguous

STU3

bull Item (with type=group)

bull Item 0 at root

bull Moved to core

bull Code (and definition)

bull Use Item (type=display)

bull More metadata at root

httphl7orgfhirstu3questionnairehtml (check the R2 Diff tab ndash not a complete mapping)

Difference between STU3 and R4

bull New mandatory properties

bull enableWhenoperator

bull Initialvalue

bull options named answerValueSet

bull changed from reference to canonical

bull option renamed answerOption

bull Also includes valueReference support

bull And initial selection flag

bull enableWhen allany flag

bull enableWhenhasAnswer removed

bull Use operator value ldquoexistsrdquo

bull enableWhen no longer supports

bull Uri

bull Attachment

bull $populate operation moved into SDC

Note Additional functionality now defined int the SDC functionality rather than the core

httphl7orgfhirr4questionnairehtml (check the R3 Diff tab ndash not a complete mapping)

Structured Data Capture (SDC) Implementation Guide

bullExtensions to the core HL7 definitions bull Advanced Rendering

bull Advanced Form Behaviour

bull Importing Data into Forms

bull Extraction of Data from Forms

httpbuildfhirorgigHL7sdc

Workflow

bull Locate questionnaire to use (for given context)

bull Loadrender questionnaire (and referenced content)

bull Pre-populate questionnaire with other data (eg patient demographics observations etc)

bull User enters data

bull Local validations may occur during data entry

bull QuestionnaireResponse is validated by server bull ErrorsWarningsissues reported to the user

bull QuestionnaireResponse is saved to the target server

bull Data extracted into other resources

Argonaut Questionnaire Implementation Guide (Based on FHIR STU3) STATIC FORM WorkFlow

bull 1 An EHR system retrieves a standardized assessment represented by the Questionnaire resource from an assessment bank

bull 2 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 3 The end user enters responses to the assessment questions and these responses are stored in the Answer Bank by POSTing a QuestionnaireResponse

bull 4 An EHR system requests answers to an assessment for a particular subject

bull 5 The QuestionnaireResponse is processed by the end user

httpwwwfhirorgguidesargonautquestionnaireindexhtml

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 8: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Difference between DSTU2 and STU3

DSTU2

bull GroupQuestion

bull Group 01 at root

bull enableWhen readonly maxLength intialValue (extension)

bull Concept

bull Label (extension)

bull Groupquestion child collection ordering ambiguous

STU3

bull Item (with type=group)

bull Item 0 at root

bull Moved to core

bull Code (and definition)

bull Use Item (type=display)

bull More metadata at root

httphl7orgfhirstu3questionnairehtml (check the R2 Diff tab ndash not a complete mapping)

Difference between STU3 and R4

bull New mandatory properties

bull enableWhenoperator

bull Initialvalue

bull options named answerValueSet

bull changed from reference to canonical

bull option renamed answerOption

bull Also includes valueReference support

bull And initial selection flag

bull enableWhen allany flag

bull enableWhenhasAnswer removed

bull Use operator value ldquoexistsrdquo

bull enableWhen no longer supports

bull Uri

bull Attachment

bull $populate operation moved into SDC

Note Additional functionality now defined int the SDC functionality rather than the core

httphl7orgfhirr4questionnairehtml (check the R3 Diff tab ndash not a complete mapping)

Structured Data Capture (SDC) Implementation Guide

bullExtensions to the core HL7 definitions bull Advanced Rendering

bull Advanced Form Behaviour

bull Importing Data into Forms

bull Extraction of Data from Forms

httpbuildfhirorgigHL7sdc

Workflow

bull Locate questionnaire to use (for given context)

bull Loadrender questionnaire (and referenced content)

bull Pre-populate questionnaire with other data (eg patient demographics observations etc)

bull User enters data

bull Local validations may occur during data entry

bull QuestionnaireResponse is validated by server bull ErrorsWarningsissues reported to the user

bull QuestionnaireResponse is saved to the target server

bull Data extracted into other resources

Argonaut Questionnaire Implementation Guide (Based on FHIR STU3) STATIC FORM WorkFlow

bull 1 An EHR system retrieves a standardized assessment represented by the Questionnaire resource from an assessment bank

bull 2 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 3 The end user enters responses to the assessment questions and these responses are stored in the Answer Bank by POSTing a QuestionnaireResponse

bull 4 An EHR system requests answers to an assessment for a particular subject

bull 5 The QuestionnaireResponse is processed by the end user

httpwwwfhirorgguidesargonautquestionnaireindexhtml

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 9: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Difference between STU3 and R4

bull New mandatory properties

bull enableWhenoperator

bull Initialvalue

bull options named answerValueSet

bull changed from reference to canonical

bull option renamed answerOption

bull Also includes valueReference support

bull And initial selection flag

bull enableWhen allany flag

bull enableWhenhasAnswer removed

bull Use operator value ldquoexistsrdquo

bull enableWhen no longer supports

bull Uri

bull Attachment

bull $populate operation moved into SDC

Note Additional functionality now defined int the SDC functionality rather than the core

httphl7orgfhirr4questionnairehtml (check the R3 Diff tab ndash not a complete mapping)

Structured Data Capture (SDC) Implementation Guide

bullExtensions to the core HL7 definitions bull Advanced Rendering

bull Advanced Form Behaviour

bull Importing Data into Forms

bull Extraction of Data from Forms

httpbuildfhirorgigHL7sdc

Workflow

bull Locate questionnaire to use (for given context)

bull Loadrender questionnaire (and referenced content)

bull Pre-populate questionnaire with other data (eg patient demographics observations etc)

bull User enters data

bull Local validations may occur during data entry

bull QuestionnaireResponse is validated by server bull ErrorsWarningsissues reported to the user

bull QuestionnaireResponse is saved to the target server

bull Data extracted into other resources

Argonaut Questionnaire Implementation Guide (Based on FHIR STU3) STATIC FORM WorkFlow

bull 1 An EHR system retrieves a standardized assessment represented by the Questionnaire resource from an assessment bank

bull 2 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 3 The end user enters responses to the assessment questions and these responses are stored in the Answer Bank by POSTing a QuestionnaireResponse

bull 4 An EHR system requests answers to an assessment for a particular subject

bull 5 The QuestionnaireResponse is processed by the end user

httpwwwfhirorgguidesargonautquestionnaireindexhtml

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 10: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Structured Data Capture (SDC) Implementation Guide

bullExtensions to the core HL7 definitions bull Advanced Rendering

bull Advanced Form Behaviour

bull Importing Data into Forms

bull Extraction of Data from Forms

httpbuildfhirorgigHL7sdc

Workflow

bull Locate questionnaire to use (for given context)

bull Loadrender questionnaire (and referenced content)

bull Pre-populate questionnaire with other data (eg patient demographics observations etc)

bull User enters data

bull Local validations may occur during data entry

bull QuestionnaireResponse is validated by server bull ErrorsWarningsissues reported to the user

bull QuestionnaireResponse is saved to the target server

bull Data extracted into other resources

Argonaut Questionnaire Implementation Guide (Based on FHIR STU3) STATIC FORM WorkFlow

bull 1 An EHR system retrieves a standardized assessment represented by the Questionnaire resource from an assessment bank

bull 2 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 3 The end user enters responses to the assessment questions and these responses are stored in the Answer Bank by POSTing a QuestionnaireResponse

bull 4 An EHR system requests answers to an assessment for a particular subject

bull 5 The QuestionnaireResponse is processed by the end user

httpwwwfhirorgguidesargonautquestionnaireindexhtml

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 11: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Workflow

bull Locate questionnaire to use (for given context)

bull Loadrender questionnaire (and referenced content)

bull Pre-populate questionnaire with other data (eg patient demographics observations etc)

bull User enters data

bull Local validations may occur during data entry

bull QuestionnaireResponse is validated by server bull ErrorsWarningsissues reported to the user

bull QuestionnaireResponse is saved to the target server

bull Data extracted into other resources

Argonaut Questionnaire Implementation Guide (Based on FHIR STU3) STATIC FORM WorkFlow

bull 1 An EHR system retrieves a standardized assessment represented by the Questionnaire resource from an assessment bank

bull 2 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 3 The end user enters responses to the assessment questions and these responses are stored in the Answer Bank by POSTing a QuestionnaireResponse

bull 4 An EHR system requests answers to an assessment for a particular subject

bull 5 The QuestionnaireResponse is processed by the end user

httpwwwfhirorgguidesargonautquestionnaireindexhtml

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 12: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Argonaut Questionnaire Implementation Guide (Based on FHIR STU3) STATIC FORM WorkFlow

bull 1 An EHR system retrieves a standardized assessment represented by the Questionnaire resource from an assessment bank

bull 2 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 3 The end user enters responses to the assessment questions and these responses are stored in the Answer Bank by POSTing a QuestionnaireResponse

bull 4 An EHR system requests answers to an assessment for a particular subject

bull 5 The QuestionnaireResponse is processed by the end user

httpwwwfhirorgguidesargonautquestionnaireindexhtml

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 13: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Argonaut Questionnaire Implementation Guide (FHIR STU3) Adaptive Questionaire WorkFlow

bull 1 A Provider EHR may need to discover and review available Adaptive Questionnaires (not shown)

bull 2 The Form Filler initiates the Adaptive Questionnaire by posting to the Adaptive Questionnaire Services endpoint

bull 3 Treated as a Black Box the Adaptive Questionnaire Services returns the first question to the Form Filler

bull 4 The Questionnaire is rendereddisplayed to the end user - either the subject or provider administrator

bull 5 The Form Filler returns the question and answer pair to the Adaptive Questionnaire Services endpoint

bull 6 Based on the prior question and answer pair(s) the Adaptive Questionnaire Service returns the next question to the Form Filler

bull 7 Steps 5 and 6 are repeated until the questionnaire is done

bull 8 The Provider EHR may process the questions and answers

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 14: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Creating Questionnaires

bull Converting existing non FHIR definitions

bull US National Library of Medicines Form Builder for LHC-FormsFHIR Questionnaire (STU3 R4)

bull Grahamersquos editor bull SmartQ editor (DSTU2 only)

httpsmartqeditazurewebsitesnet

bull Using text editor

bull Others

(or combination of the above)

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 15: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Fetching Questionnaires

bull Standard FHIR Search API

bull eg by id title publisher

context etc

bull Through references in a

directory

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 16: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Rendering Questionnaires and Recording Responses in QuestionnaireResponse

bull LinkId joins answer in

QuestionaireReponse to definitions

in Questionnaire bull MUST MATCH(including the nesting

depth)

bull May be validated

bull SDC Provides Advanced

Rendering Guidance and Definitions

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 17: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Scoring Argonaut Questionnaire Implementation Guide

bull The responses to the assessment are captured by the Client Application

bull MAY calculate a scored based on the associated values associated with each item

bull Defined via the Questionnaire Ordinal Value Extension

bull How the score is calculated may be described within the Questionnaire often as a hidden display item

bull The actual logic and calculation is an implementation detail outside of scope of this Implementation Guide

item [

extension [

url httphl7orgfhirStructureDefinitionquestionnaire-

ordinalValue

valueDecimal 17

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 18: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Time Limits Argonaut Questionnaire Implementation Guide

bull Time limits for completion of a questionnaire or individual question can be defined using the Argonaut Questionnaire Time Limit Extension

bull The Client Application may record the start and stop date-times in the Argonaut QuestionnaireResponse Response Period Extension

bull which can be used to determine whether the questionnaire or items were answered within the prescribed time limit

bull How this information modifies the behaviour of the Form-filler or interpretation of results is an implementation detail outside of scope of this Implementation Guide

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 19: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Posting Answers and Subsequently Fetching

bull Note that individual

responses are not directly

searchable using the FHIR

RESTful API

bull Standard FHIR Search API

bull eg by id questionnaire

patient demographics

etc

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 20: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Demo creatingfilling Questionnaires

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 21: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

ConversionMapping to other resources

bull Observation based extraction bull Itemcode for LOINCSNOMEDother codings for the values to be extracted

bull groups can create components in the observation too

bull Definition based extraction (httphl7orgfhirquestionnairehtml23854)

bull itemdefinition directly links to an element in a structure definition eg httphl7orgfhirStructureDefinitionObservationObservationcomment

bull Can link each item supporting repeating items

bull Caveat canrsquot do complex splitjoincalculations and shape of questionnaire must closely match StructureDefinition

bull StructureMap based extraction

bull Explicit mappings for every property

bull Uses the FHIR mapping language can be very complex but flexible it is a transform language

bull Use the questionnaire-targetStructureMap extension on the questionnaire

httpbuildfhirorgigHL7sdcextractionhtml

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 22: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Pre-population

bull Requires

bull contextsource

bull mapping

bull processing engine

bull Knowledge of source structures (particularly profiled scope)

bull Current $populate Options bull Observation based

bull FHIRPath based

bull StructureMap based

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 23: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Pre-population ndash Observation based

bull Low flexibility of Questionnaire structure in mapping

bull Source

bull Context may be provided in parameter or SMART

bull Itemcode for LOINCSNOMEDother to search

bull Extension questionnaire-observationLinkPeriod to define range to check for last observation to read

bull Mapping

bull Itemcode for LOINCSNOMEDother for the values to be extracted from the observation

bull Groups can be used for extracting observation components

bull If the system understands that codings like LOINC 21112-8 is patientbirthDate then it may extract data like this also

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 24: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

During the pre-population stage this is the query that could be produced to extract the data

(assuming that the date of 3 months ago was 2018-06-02)

[base]Observationsubject=[questionnaire response subject id]

ampcode=http3Aloincorg|29463-7http3Aloincorg|3141-9 http3Aloincorg|8341-0

ampstatus=completed

ampdate=ge2018-06-02

amp_sort=-date

amp_count=1

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 25: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Pre-population ndash FHIRPath based

bull Source

bull Context may be provided in parameter or SMART bull extension questionnaire-launchContext

bull Produces a bundle for processing

bull Mapping

bull FHIR Path expressions for each property to map bull extension ldquoquestionnaire-itemContextrdquo

bull Extension ldquosdc-questionnaire-initialExpressionrdquo

bull Leverage variables to assist in calculations bull Extension ldquovariablerdquo uses Expression datatype

More Flexible requires knowledge of FHIRPath and FHIR Queries to create the mappings

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 26: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Validation

bull FHIR jsonxml valid (serialization)

bull Core FHIR profile validation (maybe local profiles too)

bull QuestionnaireResponse validation

bull Item Types (using linkId to match)

bull ExtensionsExtended Validation

bull Base Questionnaires through derivedFrom reference

bull Custom validation

bull OperationOutcome bull Contentmessages appropriate to display to users

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 27: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Advanced Validation bull Core resources can be profiled with invariants

bull Extension adds this capability to Questionnaires

httphl7orgfhirextension-questionnaire-constrainthtml

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 28: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Advanced Validation Examples

bull Checking cross field validation

bull Checking conditional rules

bull Checking complex calculations

bull Error messages

httpssqlonfhir-r4azurewebsitesnetfhirQuestionnairesa-rtw-r4

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 29: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Summary bull Create a form definition

bull with validation rules

bull with resource mappings

bull Create form data

bull Perform Validation

bull Map to a new resource from form data

bull Terminology interactions

bull Where will you use Questionnaires

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 30: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Questions

Thank you

Keep FHIR-ing on all cylinders

Page 31: Questionnaires (and Structured Data Capture) › wp-content › uploads › 2019 › 12 › ... · Adaptive Questionnaires Conversion/Mapping data to other resources Pre-population

Thank you

Keep FHIR-ing on all cylinders