hl7ch / ch-emed

FHIR Implementation Guide which defines the documents for the exchange of medication information in the context of the Swiss EPR
https://fhir.ch/ig/ch-emed/index.html
MIT License
1 stars 1 forks source link

PMLC: Last document to touch treatment instance (med statement) #262

Closed dvribeira closed 8 months ago

dvribeira commented 8 months ago

Within the frame of CARA's eMedication project, we have encountered that one of the systems is basing their synchronization with the eMedication on reading PMLC documents. On this regard, some mechanism to know whether a treatment [instance] has been touched (either changed, commented or any other action) would be needed or at least very nice to have: https://github.com/CARA-ch/ch-emed-epr/issues/62

We thought of adding a reference containing the last document to have touched the treatment instance to be enough for this purpose and we saw in principle two ways of doing this:

The very idea of just using the id of the last document to have touched a treatment for this purpose is also not without cons:

In principle, at HUG we are inclined towards the meta.source solution but we would also like to consider any other feedback other people might want to provide on this issue.

ziegm commented 8 months ago

@dvribeira I am not sure, if I understand the use case correct. Could you maybe make an example (e.g. use case description) how it would work for the existing use case https://fhir.ch/ig/ch-emed/usecase-german.html?

dvribeira commented 8 months ago

@ziegm Absolutely:

  1. First consultation with GP:
Doc type Operation Document identifier Entries
MTP Export c9f758a1-296c-4710-84d4-e181db8c7478 MedicationStatement Triatec
DIS Export 488bd23a-20c6-11e6-b67b-9e71128cae77 MedicationDispense Triatec
  1. Control by GP: The GP system would fetch a PMLC and not a PML:
Doc type Operation Document identifier Entries Entry meta.source?
PMLC Import 17931678-20b4-11e6-b67b-9e71128cae77 MedicationStatement Triatec 488bd23a-20c6-11e6-b67b-9e71128cae77
PADV Export 8ed02d0a-2971-11e6-b67b-9e71128cae77 Observation CANCEL N/A
MTP Export 17931678-20b4-11e6-b67b-9e71128cca77 MedicationStatement Beloc Zok N/A
DIS Export d8143fea-4778-11e6-beb8-9e71128cae77 MedicationDispense Beloc Zok N/A
MTP Export 5712fffe-20c6-11e6-b67b-9e71128cae77 MedicationStatement Norvasc N/A
PRE Export d41d72ba-2100-11e6-b67b-9e71128cae77 MedicationRequest Norvasc N/A
  1. Medication card created by GP:
Doc type Operation Document identifier Entries Entry meta.source?
PMLC Import 6b6ed376-a7da-44cb-92d1-e75ce1ae73b0 --- ---
---------- ----------- ------------------- MedicationStatement Beloc Zok d8143fea-4778-11e6-beb8-9e71128cae77
---------- ----------- ------------------- MedicationStatement Norvasc d41d72ba-2100-11e6-b67b-9e71128cae77

Since the IPAG use case does not really showcase the issue under discussion in which different systems work on the same treatment plan, I am providing the following sequence:

  1. The patient has a consultation at the hospital and the hospital system exports (omitting initial sync):
Doc type Operation Document identifier Entries
MTP Export c9f758a1-296c-4710-84d4-e181db8c7478 MedicationStatement Triatec
DIS Export 488bd23a-20c6-11e6-b67b-9e71128cae77 MedicationDispense Triatec
MTP Export 17931678-20b4-11e6-b67b-9e71128cca77 MedicationStatement Dafalgan

The hospital system stores, among other information, the id of the last document/intervention they have done per treatment, that is the Triatec's DIS id and the Dafalgan's MTP id.

  1. The patient returns to the hospital, the hospital's system performs a sync and to that effect it fetches a PMLC:
Doc type Operation Document identifier Entries Entry meta.source?
PMLC Import 6b6ed376-a7da-44cb-92d1-e75ce1ae73b0 --- ---
---------- ----------- ------------------- MedicationStatement Triatec 488bd23a-20c6-11e6-b67b-9e71128cae77
---------- ----------- ------------------- MedicationStatement Dafalgan 17931678-20b4-11e6-b67b-9e71128cca77

The hospital system knows there have been no changes performed on these treatments since the last to touch ids match the ones stored by itself. No changes on the patient's treatments are performed at this time.

  1. The patient goes to the GP for a control. The GP's system retrieves a PMLC to recover the current treatments for the patient but it does not have any persistence for the eMedication so no synchronization operations are performed. The GP wants to change the dosage of the Dafalgan treatment, so the system exports a PADV (CHANGE).
Doc type Operation Document identifier Entries Entry meta.source?
PMLC Import 6b6ed376-a7da-44cb-92d1-e75ce1ae73b0 --- ---
---------- ----------- ------------------- MedicationStatement Triatec 488bd23a-20c6-11e6-b67b-9e71128cae77
---------- ----------- ------------------- MedicationStatement Dafalgan 17931678-20b4-11e6-b67b-9e71128cca77
PADV Export d41d72ba-2100-11e6-b67b-9e71128cae77 Observation (CHANGE) Dafalgan N/A
  1. The patient returns to the hospital. The hospital system has to perform a sync operation for which it fetches a PMLC to get the consolidated treatment data:
Doc type Operation Document identifier Entries Entry meta.source?
PMLC Import 6b6ed376-a7da-44cb-92d1-e75ce1ae73b0 --- ---
---------- ----------- ------------------- MedicationStatement Triatec 488bd23a-20c6-11e6-b67b-9e71128cae77
---------- ----------- ------------------- MedicationStatement Dafalgan d41d72ba-2100-11e6-b67b-9e71128cae77

The hospital system detects that the last to touch id for the dafalgan treatment does not match the stored one so it will offer the healthcare professional to import the new data (or perform it automatically and display some graphical indicator of this).


I hope this helps a bit to understand one of the use cases in which this information might come handy or might be needed. In our case this seems to be needed by the HUG to reliably integrate their software within our eMedication service. I have used meta.source to illustrate the use cases but as said could be an extension or any other solution.

ziegm commented 8 months ago

21.03.2024 Telco PJ, DV, QL, MZ, AB

Var 1:

Var 2:

ziegm commented 8 months ago

@pjolo @dvribeira please review the changes:

dvribeira commented 8 months ago

@ziegm The changes are good for me, thanks! :)

pjolo commented 8 months ago

The changes are also good for me