You've all been very helpful and clear in responding to my questions.

What I've learned is that the basic unit of storage--and retrieval--is a
single composition, nothing bigger, nothing smaller, and certainly not the
complete roster of compositions as I had thought (based on my mistaken
notion that one could not serialize, easily, only a section of a complex
instantiated object tree). That resolves a lot of my concerns.

However, this has taken the conversation into an interesting area, namely,
those types of compositions of that contain what you call "persistent"
information, such as drug lists, problem lists, family history and so on,
where subsequent compositions must modify the states of earlier
compositions and where, as a result, subsequent compositions must embody
and repeat much of what is contained in prior compositions. The same issue,
I would think, would also arise in your workflow situations (observation /
instruction / action), where, again, subsequent compositions--often in
hierarchical relation to yet prior compositions--must modify the states of
items in prior compositions. Once again, since everything--and its
hierarchical context--is immutable and cannot be modified in place, you
have to reproduce that entire context in each composition that modifies the
state--or has a dependency on--of something, however small, in a prior
composition. And to compound the issue even more, these subsequent
compositions, whose contents address prior compositions, might also contain
"event" as opposed to "persistent" information. So, as states of items in
prior compositions undergo state changes, it is not a simple matter of
apples-to-apples substitutions as you replace them with new versions,
because both prior and subsequent compositions could also contain "event"
information. So maybe the versioning process actually splits compositions,
declaring only pieces of them obsolete.

Obviously, you've all found ways to make this work, perhaps elegantly, but,
as some are suggesting, at very least this would enlarge the amount and
scope of information involved in a single commit, thus inviting contention.
I see some real complexity here. I'll have to read more about how
versioning works, using the references you have provided me. I did look at
the common_im.pdf Eric referenced, and versioning, from my brief exposure
to it in this PDF, is obviously one of the *most* complex aspects of the
openEHR specification, as well it would be.

An openEHR record, as I'm coming to understand it, is basically an indexed
collection of very sophisticated "documents" analogous to PDFs,
"documents," which, like ordinary documents, are persisted as single
digital streams that can be hashed and signed, and that must also be
deserialized and parsed. That seems good for adding stand-alone new
information to the collection, but somewhat more complex for new
information with a distinct dependence on stuff  in prior "documents."
This, of course, forbids in-place editing of state; a new document must be
issued to change the old and--necessarily--embody the old, even what has
not changed, in the process.

A completely different approach would entail saving everything in
conventional RDBMS tables and columns or object databases, and allow
in-place modifications--if one could solve the problem of preserving prior
states of entire aggregations of data, signing and attestation, to say
nothing of the problem of sparse data schemas. I can see why you've gone
the way you have, but in so doing, you have your own set of challenges. But
who doesn't?

Randy




On Mon, Apr 15, 2013 at 10:15 AM, Bert Verhees <bert.verhees at rosa.nl> wrote:

>  On 04/15/2013 03:37 PM, Grahame Grieve wrote:
>
> "big risk" - it's a combination of how likely it is, and how bad it is if
> they are.
>
>  Generally, current location, current medication lists, summary lists are
> things where contention can happen. Quite often, I've seen, a cascade of
> things will happen on a patient simultaineously as multiple people focus on
> the patient
>
>  The other place where contention is a problem I've experience has been
> pathology reports that are not complete - in a busy lab doing 2000
> reports/day, I observed editing contention 10-20x a day on average. That's
> pretty low, but the consequences of a clash.... bad.....
>
>
> In the lab, are that updates, or new records?
> How do you deal with long time transactions? Suppose a lab edits a
> dataset, saves it in an archetype-model which will be used to store more
> items.
> Then lab employee does the following test and saves it. Should it be saved
> in the same data-set, or in a new version?
> I don't think you should have long lasting transactions, lasting longer
> then one millisecond.
> Maybe in a lab, there should be a client/GUI which stores/caches local
> until the results are complete.
> So it depends on the EHR-system and archetypes.
>
> And in the current medicationlist, how big is the chance that two edits
> are done simultaneously?
> And is it also a GUI question, to refresh the screen, once in a while, so
> that the chance of a care-professionalist to be looking at the really
> current medications increases from 99,99% to 99,999%?
> There can always be a late update from a pharmacy, mostly they update the
> system at moment of providing medication, but it can always go wrong,
> electricity fall out, etc.
> Those screen refreshes are also a GUI-thing.
>
> But, of course, it must be prevented. But I think you will agree that
> there is no need of fancy isolation-schemas.
> The most basic one will do. And transactions should never take longer then
> a minimum of time. Say one millisecond.
>
> Not everything needs to be resolved by a OpenEHR-kernel.
> Some things are really a GUI matter.
>
> But I am interested in arguments.
>
> Bert
>
>
>
>  Grahame
>
>
>
> On Mon, Apr 15, 2013 at 11:25 PM, Bert Verhees <bert.verhees at rosa.nl>wrote:
>
>> On 04/15/2013 02:56 PM, Grahame Grieve wrote:
>>
>>> well, that's true for some parts of the record - the historical parts.
>>> Other parts, summary parts, that's quite untrue. In most enterprise
>>> systems, records tend to be rarely updated, or intensively updated, and not
>>> much between
>>>
>>
>>
>>  Can you give an example of parts of records which are at big risk for
>> competitive updates?
>>
>> Thanks
>> Bert.
>>
>>
>> _______________________________________________
>> openEHR-technical mailing list
>> openEHR-technical at lists.openehr.org
>>
>> http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org
>>
>
>
>
>  --
> -----
> http://www.healthintersections.com.au / grahame at 
> healthintersections.com.au/ +61 411 867 065
>
>
> _______________________________________________
> openEHR-technical mailing listopenEHR-technical at 
> lists.openehr.orghttp://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org
>
>
>
> _______________________________________________
> openEHR-technical mailing list
> openEHR-technical at lists.openehr.org
>
> http://lists.openehr.org/mailman/listinfo/openehr-technical_lists.openehr.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.openehr.org/pipermail/openehr-technical_lists.openehr.org/attachments/20130415/f78bf88d/attachment.html>

Reply via email to