Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: minor wordings
Table of Contents

Caching on Searching

Client-side caching In the following, the focus is on server-side caching applied to search operations and how a client can influence it.

Caching of Search results

Caching in Telemedicine Solutions

Telemedicine Solutions caching of information is, as caching in general, a mechanism for achieving better performance although it must be applied with caution, especially when used with clinical content.

Note

Use of events for cache invalidation, as described in Client-side caching , might not be immediately available to a client. As described in Client-side caching Telemedicine Solutions caching of information from the infrastructure, caching of information from services in the Clinical Domain is not recommendedshould be used with care, with the Patient service being an exception.

...

Use of events for cache invalidation, as described in Telemedicine Solutions caching of information from the infrastructure , might not be immediately available to a client.

Telemedicine Solutions caching of information from the more stable Administrative Domain must be considered.

In the following, the focus is on server-side caching applied to search operations and how a client can influence it.

...

Caching in eHealth Services

It can generally be assumed that the caching is based on the principles described in HAPI FHIR Search Result Caching https://hapifhir.io/hapi-fhir/docs/server_jpa/configuration.html#search-result-caching . When interacting with custom operations, caching is specific to the operation itself.

Patient Service

  • Search results will be reused Services cache search results for 1 minute

    • This Services use the cache is used when identical searches are performed (same search parameters) are performed

    • This means search results can be up to 1 minute stale!

  • Search results for a particular bundle ID is are cached in the database for 1 hour

    • This cache is used when paging through the result bundle of a particular search

  • The max value for the max-results header is 1000

    • Cache-Control: nostore, max-results=1000

  • The default page size is 20

  • Maximum page size is 200

    • Clients Telemedicine solutions can request a particular page size by setting the _count parameter

  • Person$match does not employ any caching

    • internally, it first searches for a Patient with the provided CRN in the local database (does not use the search result cache, for technical reasons)

      • If a patient exists, the information from that patient is returned

      • If a patient does not exist, a request is sent to the CPR registry to look for the information

        • The result of this request is not cached or persisted

Info

Infrastructure note: Sticky sessions are not required as the cache is stored in the database.

Disabling Server-side Caching on Searching

If your use case requires that search results are not cached you have the opportunity to opt out of this using HTTP-headers on your client request:

...

Telemedicine Solutions can selectively disable caching for an individual request using the Cache-Control header:

...

In a HAPI FHIR-based client, opt-out can be achieved like this:

...

Filtering on Searching with Included Resources

Info

This functionality is available from eHealth Infrastructure Release 6.1 when including referenced ClinicalImpression in a Task search. It may later be extended to other resource types.

...