-
Type:
Change Request
-
Resolution: Not Persuasive with Modification
-
Priority:
High
-
Structured Data Capture (SDC) (FHIR)
-
current
-
FHIR Infrastructure
-
SDC Base Questionnaire
-
-
Paul Lynch/Yunwei Wang: 9-0-0
-
Clarification
-
Non-substantive
From my perspective, it seems that there are two major use case for modularizing questionnaires: sub questionnaire case and reusable questionnaire case (feel free to propose a better naming)
- Sub questionnaire case: use an existing standalone questionnaire as a part of a bigger questionnaire.
For example, I have a questionnaire that captures patient’s information and I would like to use it as a part of an appointment check-in questionnaire because it is required to update patient’s information before any appointment. - Reusable questionnaire case: use small reusable questionnaires to follow the DRY principle.
For example, there is an Address type that used twice in a patient resource (patient’s own address and contact address). Also address is used in Organization and many other resources.
The current spec https://jira.hl7.org/browse/FHIR-27049 mostly describes sub questionnaire case.
Some reusable questionnaire case-_relevant features were discarded https://jira.hl7.org/browse/FHIR-27049 https://jira.hl7.org/browse/FHIR-22356?focusedCommentId=173742&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-173742 because they do not fit well into _sub questionnaire case.
My proposal is to treat these two use cases separately and don’t mix it up.
Sub questionnaire case:
- parent questionnaire uses subQuestionnaire extension to define including questionnaire
- linkIds have to be unique across the whole assembled questionnaire
- propagate elements on both root and item level https://jira.hl7.org/browse/FHIR-22356?focusedCommentId=174768&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-174768
Sub questionnaire case example https://github.com/beda-software/aidbox-sdc/blob/master/tests/sdc/test_assemble.py#L8
Reuse questionnaire case:
- parent questionnaire use reuseQuestionnaire extension to define including child questionnaire
- if reuseQuestionnaire set, itemContext extension is required on item level
- if reuseQuestionnaire set, linkIdPrefix extension is required on item level
- linkIds have to be unique across the whole assembled questionnaire however inside child questionnaire linkId will use templating (For example `{{%prefix}}-address`). Since it is a valid string, child questionnaire may work on it’s own.
- Nothing is propagating from child questionnaire to a parent questionnaire. The parent questionnaire should handle all dependencies on it’s own and provide a valid context and variables to child questionnaire.
Reusable questionnaire case example https://github.com/beda-software/aidbox-sdc/blob/master/tests/sdc/test_assemble.py#L122
- mentioned in
-
Page Loading...