Preparing for Submitting
Determining Resolved Timing to Use
The functionality described below is provided with eHealth Infrastructure Release 7 and after.
When submitting measurements, it is mandatory to specify resolved timing (see https://ehealth-dk.atlassian.net/wiki/spaces/EDTW/pages/1661665301/Adhering+to+Care+Plans+and+Measurement+Regimes#When-an-Activity-is-Supposed-to-Happen---The-Notion-of-Resolved-Timing ) information in the ehealth-resolved-timing
element of Observation, QuestionnaireResponse and Media. The structure of ehealth-resolved-timing
contains:
serviceRequestVersionId
which must specify the current FHIR technical version of the ServiceRequestreferenced inbasedOn
element of Observation, QuestionnaireResponse and Media.start
- start datetime of resolved timing period. This is mandatory whentype
isResolved
.end
- end datetime of resolved timing period. This is mandatory whentype
isResolved
.type
Resolved
if the ServiceRequest has a measurement regime supported by the infrastructureUnresolved
if the ServiceRequest has a measurement regime not supported by the infrastructureAdhoc
if the ServiceRequest has a measurement regime is specified as ad-hoc or the measurement was collected as per request from a practitioner.
One way to determine what resolved time to used is to invoke the get-patient-procedures operation.
Determining Qualities
The approach for determining measurement qualities is still under refinement. Neither the required Questionnaire nor Library is available in the eHealth Infrastructure at the time of writing.
Preparing a QuestionnaireResponse for a Questionnaire with Embedded, Simple Calculation(s)
As described in https://ehealth-dk.atlassian.net/wiki/spaces/EDTW/pages/1716060177/Managing+Questionnaires#Preparing-a-Questionnaire-with-Embedded%2C-Simple-Calculations, a Questionnaire defined with the eHealth profile ehealth-questionnaire-advanced
(see https://docs.ehealth.sundhed.dk/latest-released/ig/StructureDefinition-ehealth-questionnaire-advanced.html) can contain variables and expressions.
The application used for filling in answers to a Questionnaire in a QuestionnaireResponse of this profile has the responsibility to evaluate embedded expressions and capture the results in the corresponding placeholders in the QuestionnaireResponse.
Saving a Draft QuestionnaireResponse
A draft QuestionnaireResponse can be saved by creating a new QuestionnaireResponse with status
in-progress
and subsequently updating it. This is performed through QuestionnaireResponse Create and Update, respectively, which is enabled for status
in-progress
only. Whether it is used for autosave or manually initiated, the client should refrain from calling QuestionnaireResponse Update unless actual changes have been made to the QuestionnaireResponse. Calling QuestionnaireResponse Update without actual change leads to unneccesary load and will not result in change of the QuestionnaireResponse in the database anyway.
When creating/updating a draft QuestionnaireResponse, make sure the following elements are set:
status
isin-progress
basedOn
references the ServiceRequest stating that answering of questionnaire should be performed as activityresolvedTiming
reflects the resolved timing with which the QuestionnaireResponse intended to be submitted (as final).
Cleanup of draft QuestionnaireResponse
When the final version of the QuestionnaireResponse is submitted with $submit-measurement
, any corresponding draft QuestionnaireResponse is automatically deleted. The criteria involved in finding corresponding draft(s) are QuestionnaireResponse with:
status
set toin-progress
basedOn
is same as that of submitted QuestionnaireResponseresolvedTiming
is same as that of submitted QuestionnaireResponse
There is no guarantee that a draft QuestionnaireResponse is ever submitted. Therefore, a periodic and automatic Infrastructure job performs deletion of QuestionnaireResponse with:
status
isin-progress
lastUpdated
is older than a configurable retention period, currently set to 30 days.
Preparing an Observation for a Value Entered or Calculated in a QuestionnaireResponse
A Patient’s CarePlan can be based on a PlanDefinition (and one or more ActivityDefinition referenced from it) where:
PlanDefinition.action.participant.type
is set todevice
, and/orActivityDefinition.participant.type
is set todevice
This participant type signifies that the activity must be carried out by a solution, typically the Citizen Solution.
One such use is a PlanDefinition with activity for answering a COPD Assessment Test (CAT) Questionnaire followed by an activity for a CAT score “measurement”.
Preparing an Observation for Body Mass Index
Submitting
TBD