On 04/04/2016 07:23, pablo pazos wrote:
I thought you had more specific cases :)

Having specific lists per clinician was commented by Karsten on a previous message and I commented on that. I'm not sure at which extent that is a backend issue, an API issue or an UI issue. I would say if this is just a display requirement, is more UI related and we need to find ways in the backend to provide the data to address this requirement, independently of if we have or not singleton versioned_compositions per persistent compo archetype.

I think it is not just a display requirement, at least in some countries. There are separate care plans for example in the UK for some patients for relatively unrelated conditions. Whether separate medication lists really exist at the clinical level is a question (a bad idea for obvious reasons, same for allergies), but I suspect it could exist at a practical level in some places, if a GP or other Meds list is imported into a hospital environment that has its own medications list; in this case, the two taken together would be seen as the total logical list, but each part being owned by a different provider. We need more concrete evidence on this, but I don't see anything to prevent this sort of thing happening.



OT but related:

Now this got me thinking about commits. Until now, I was thinking of full composition commits, so if you want to add a medication to a medication list, you need to commit the data in the current version, plus the new entry for the new medication. But what about delta commits? If I didn't changed anything on the current medications, can't I just commit the new medication? Is this possible or somebody implemented something like this?

openEHR doesn't say how to store the Versions, only that the logical view needs to be that each Version appears to have the full content. If you want to engineer a delta-based storage mechanism, you can, the specs don't prevent that. Note that implementing differential representations for object structures is non-trivial, but doable (AOM2 does it for example); if you are storing some serial format, then you can potentially use text-based diffing, although you have to be careful of ordering within Hashes and Lists, which tends to break purely logical versioning e.g. on XML.


I would think of that as a commit "mode" that applies for amendment and modification change_type, and would allow to log individually added entries, and keep track of whole "singleton" persistent lists.


Well, all it really means is that a function might be added to the EHR API that enables you to 'add' just a medication to a medication list, and the API will actually figure out how to create the whole composition, do any diffing, and store the proper Composition within a Contribution. Personally I think a better way that I have advocated for some years is a business level service + API called 'medication list' that provides functions like:

 * getAll: List<Entry>
 * getAllIds: List<String>
 * addMedicationOrder (newMed: Instruction)
 * removeMedicationOrder (id: String)
 * getMedicationOrdersInState (aState: StateEnum) // e.g. 'active', etc
 * putAction (anAction: Action; orderId: String)
 * etc

that's just one idea of the service. Obviously it can be done differently. The point is that it would provide all the needed conversions between a functional/transactional interface, and the appropriate openEHR structures. It would do all the building of Compositions and so on, and make the correct calls to the EHR service.

I would foresee the same kind of service for:

 * allergies & interactions
 * vaccinations
 * procedures list
 * care plan
 * patient diary
 * doctor's diary
 * etc

- thomas


_______________________________________________
openEHR-technical mailing list
openEHR-technical@lists.openehr.org
http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org

Reply via email to