Telemedicine Solutions caching of information from the infrastructure
- 1 Caching recommendations
- 2 Caching in the Administrative Domain
- 3 Cache in the Clinical Domain
- 4 Invalidate Cache using events
- 4.1 Organization Messages
- 4.2 PlanDefinition Messages
- 4.3 ActivityDefinition Messages
- 4.4 DocumentReference Messages
- 4.5 Questionnaire Messages
- 4.6 ValueSet Messages
- 4.7 CodeSystem Messages
- 4.8 ValueSet Messages
- 4.9 NamingSystem Messages
- 4.10 ConceptMap Messages
- 4.11 Patient Messages
- 4.12 RelatedPerson Messages
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:
It is recommended for Telemedicine Solutions to cache Administrative data, such as PlanDefinition, ActivityDefinitions, Organizations etc.
Caching of Clinical information, such as measurements, careplan, and service requests should be done with care.
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
EHealthSimpleEvent | created | ehealth-documentreference | A DocumentReference has been created. |
EHealthSimpleEvent | updated | ehealth-documentreference | A DocumentReference has been updated. |
Questionnaire Messages
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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 |
---|---|---|---|
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. |