Telemedicine Solutions caching of information from the infrastructure

When working with the eHealth Infrastructure, performance considerations are important, and caching is an important mechanism for achieving better performance.

Performance considerations are important, both in terms of User Experience and in terms of resource usage (compute and database operations).

Caching recommendations

General caching recommendations:

  1. It is recommended for Telemedicine Solutions to cache Administrative data, such as PlanDefinition, ActivityDefinitions, Organizations etc.

  2. Caching of Clinical information, such as measurements, careplan, and service requests should be done with care.

  3. Telemedicine Solutions may use events for cache invalidation.

The following sketch how cache and cache invalidation or updates can be implemented.

Caching in the Administrative Domain

Telemedicine Solutions can cache clinical administrative information which is semi-static. That is, information such as PlanDefinition, ActivityDefinitions, Organisations etc.

The semi-static information is information from services in the administrative domain and covers the following services:

  • Library Service

  • Organization Service

  • Plan Service

  • Questionnaire Service

  • Terminology Service

That is, caching administration information from these services is recommended.

Link to the Domain Overview: eHealth Infrastructure Architecture Repository (sundhed.dk)

Cache in the Clinical Domain

Information from clinical services (such as measurement, careplan, task services etc.) is cacheable.

Telemedicine Solutions can invalidate data by looking at the date/time for the last retrieval.

Invalidate Cache using events

The eHealth Infrastructure provides event messages that the telemedicine solutions can use for invalidating or updating the cached information. See https://ehealth.sundhed.dk/fhir/serviceeventmessages.html for service event messages.

 

Organization Messages

MessageType

EventType

Topic

Description

MessageType

EventType

Topic

Description

EHealthReferenceEvent

reference_added

ehealth-organization.partOf

An Organization of which this Organization is part of has been added

EHealthReferenceEvent

reference_removed

ehealth-organization.partOf

An Organization for which this Organization is part of has been removed

PlanDefinition Messages

MessageType

EventType

Topic

Description

MessageType

EventType

Topic

Description

EHealthSimpleEvent

created

ehealth-plandefinition

A PlanDefinition has been created.

EHealthSimpleEvent

updated

ehealth-plandefinition

A PlanDefinition has been updated.

EHealthReferenceEvent

reference_added

ehealth-plandefinition.relatedArtifact.resource

Info-material has been added to the PlanDefinition

EHealthReferenceEvent

reference_removed

ehealth-plandefinition.relatedArtifact.resource

Info-material has been removed from the PlanDefinition

EHealthReferenceEvent

reference_added

ehealth-plandefinition.action.definition

An ActivityDefinition or Sub-plan has been added to the PlanDefinition

EHealthReferenceEvent

reference_removed

ehealth-plandefinition.action.definition

An ActivityDefinition or Sub-plan has been removed from the PlanDefinition

ActivityDefinition Messages

MessageType

EventType

Topic

Description

MessageType

EventType

Topic

Description

EHealthSimpleEvent

created

ehealth-activitydefinition

An ActivityDefinition has been created.

EHealthSimpleEvent

updated

ehealth-activitydefinition

An ActivityDefinition has been updated.

EHealthReferenceEvent

reference_added

ehealth-activitydefinition.relatedArtifact.resource

Info-material has been added to the ActivityDefinition

EHealthReferenceEvent

reference_removed

ehealth-activitydefinition.relatedArtifact.resource

Info-material has been removed from the ActivityDefinition

DocumentReference Messages

MessageType

EventType

Topic

Description

MessageType

EventType

Topic

Description

EHealthSimpleEvent

created

ehealth-documentreference

A DocumentReference has been created.

EHealthSimpleEvent

updated

ehealth-documentreference

A DocumentReference has been updated.

Questionnaire Messages

MessageType

EventType

Topic

Description

MessageType

EventType

Topic

Description

EHealthSimpleEvent

created

ehealth-questionnaire

A Questionnaire has been created.

EHealthSimpleEvent

updated

ehealth-questionnaire

A Questionnaire has been updated.

EHealthContextEvent

updated

ehealth-questionnaire.retired

A Questionnaire has been retired.

ValueSet Messages

MessageType

EventType

Topic

Description

MessageType

EventType

Topic

Description

EHealthSimpleEvent

created

ehealth-task

A Task has been created.

EHealthSimpleEvent

updated

ehealth-task

A Task has been updated.

EHealthReferenceEvent

reference_added

ehealth-task.owner

The owner reference has been added to a Task

EHealthReferenceEvent

reference_removed

ehealth-task.owner

The owner reference has been removed from a Task

EHealthReferenceEvent

reference_added

ehealth-task.responsible

The responsible reference has been added to a Task

EHealthReferenceEvent

reference_removed

ehealth-task.responsible

The responsible reference has been removed from a Task

CodeSystem Messages

MessageType

EventType

Topic

Description

MessageType

EventType

Topic

Description

EHealthSimpleEvent

created

CodeSystem

A CodeSystem has been created

EHealthSimpleEvent

updated

CodeSystem

A CodeSystem has been updated

EHealthSimpleEvent

deleted

CodeSystem

A CodeSystem has been deleted

ValueSet Messages

MessageType

EventType

Topic

Description

MessageType

EventType

Topic

Description

EHealthSimpleEvent

created

ValueSet

A ValueSet has been created

EHealthSimpleEvent

updated

ValueSet

A ValueSet has been updated

EHealthSimpleEvent

deleted

ValueSet

A ValueSet has been deleted

NamingSystem Messages

MessageType

EventType

Topic

Description

MessageType

EventType

Topic

Description

EHealthSimpleEvent

created

NamingSystem

A NamingSystem has been created

EHealthSimpleEvent

updated

NamingSystem

A NamingSystem has been updated

EHealthSimpleEvent

deleted

NamingSystem

A NamingSystem has been deleted

ConceptMap Messages

MessageType

EventType

Topic

Description

MessageType

EventType

Topic

Description

EHealthSimpleEvent

created

ConceptMap

A ConceptMap has been created

EHealthSimpleEvent

updated

ConceptMap

A ConceptMap has been updated

EHealthSimpleEvent

deleted

ConceptMap

A ConceptMap has been deleted

Patient Messages

MessageType

EventType

Topic

Description

MessageType

EventType

Topic

Description

EHealthSimpleEvent

created

ehealth-patient

Generated when a Patient is created.

EHealthSimpleEvent

updated

ehealth-patient

Generated when a Patient is updated.

RelatedPerson Messages

MessageType

EventType

Topic

Description

MessageType

EventType

Topic

Description

EHealthSimpleEvent

created

ehealth-relatedperson

Generated when a RelatedPerson is created.

EHealthSimpleEvent

updated

ehealth-relatedperson

Generated when a RelatedPerson is updated.

EHealthSimpleEvent

deleted

ehealth-relatedperson

Generated when a RelatedPerson is deleted.