Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

Collecting Measurement Data from Devices

Presenting Instructions for Measuring Method

The citizen’s CarePlan refers a number of ServiceRequest for activities to perform. Each ServiceRequest refers an ActivityDefinition containing definitional details. Such details can be text and/or pictures to display to the individual performing the measurement just prior or during measuring. These possible texts/pictures reside in ActivityDefinition.relatedArtifact with:

  • RelatedArtifact.type = documentation

  • RelatedArtifact.label = automatic or manual for use with automatic and manual entry collection of data, respectively.

  • RelatedArtifact.document can contain a contained Attachment with text to display. Currently, the Clinical Administrative Application produces a contained Attachment where Attachment.data contains markdown format (with markdown specified in Attachment.contentType).

  • RelatedArtifact.resource can refer to a DocumentReference resource containing a picture to display. Picture data is captured in DocumentReference.content.attachment.data with the format specified in DocumentReference.content.attachment.contentType.

It is expected that a Solution or Solution component detects whether measuring is performed automatically or by manual entry and examines whether corresponding ActivityDefinition.relatedArtifact (as defined above) is present. If so, the Solution or Solution component is expected to display the text and/or picture to the user.

Ensuring Use of Proper Units

A measurement submitted as an Observation shall conform to the measurement unit expected by the eHealth infrastructure. See https://ehealth-dk.atlassian.net/wiki/spaces/EDTW/pages/1034354702/Technical+Interactions+with+Services#Determining-the-proper-code%2C-system-and-unit-for-Quantity.

It is expected that a Solution or Solution component ensures that measurement data conforms to the expected measurement unit. Correctness (and verification hereof) of any required conversion in that regard is the responsibility of the Solution or Solution component.

Preparing Measurements for Submission

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 in basedOn element of Observation, QuestionnaireResponse and Media.

  • start - start datetime of resolved timing period. This is mandatory when type is Resolved.

  • end - end datetime of resolved timing period. This is mandatory when type is Resolved.

  • type

    • Resolved if the ServiceRequest has a measurement regime supported by the infrastructure

    • Unresolved if the ServiceRequest has a measurement regime not supported by the infrastructure

    • Adhoc 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 is in-progress

  • basedOn references the ServiceRequest stating that answering of questionnaire should be performed as activity

  • resolvedTiming 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 to in-progress

  • basedOn is same as that of submitted QuestionnaireResponse

  • resolvedTiming 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 is in-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 to device, and/or

  • ActivityDefinition.participant.type is set to device

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”.

 Example: A PlanDefinition with activity for answering a COPD Assessment Test (CAT) Questionnaire followed by an activity for a CAT score “measurement”, which is calculated by a simple rule in the CAT Questionnaire.

In this scenario, the CAT score measurement is an ActivityDefinition with:

  • code set to Coding code="MCS88137", system="urn:oid:1.2.208.184.100.8", display="CAT score;pt"

  • participant.type set to device

In the Questionnaire, the above Coding for CAT score is present in Questionnaire.item.code for a calculated element prepared such that a QuestionnaireResponse can contain the calculated CAT score.

On detecting the participant.type set to device, an Observation shall be prepared with a value derived from the CAT score contained in the QuestionnaireResponse.

It is expected that a Solution detects the use of participant.type set to device and prepares submission of a measurement based on a value extracted from sibling activities rather than involving the Patient. Typically, this scenario involves the Solution preparing an Observation with value based on or extracted from a QuestionnaireResponse.

Submitting Measurements

Measurements are submitted using $submit-measurement. Technically, it is possible to submit multiple measurements in different ways, ranging from:

  • Each measurement submitted with individual invocation of $submit-measurement

  • All measurements from a wider measurement period submitted in a single invocation

As noted, all measurements must pertain to the same Patient and EpisodeOfCare.

It is expected that a Solution (typically a Citizen Solution) places multiple measurements into partitions each with measurements sharing same or similar resolve timing, and, furthermore, submits each partition as an individual invocation of $submit-measurement.

  • No labels