I will offer both some agreement and a counter-opinion. Everyone always wants things 'simpler', and without foresight, it is very easy to make them too simple. Let's take the two cases: ITEM_STRUCTURE data structures, and Observation.data (of type HISTORY<EVENT>). It turns out that the discipline in structures we thought existed in clinical data - Lists, Tables, Trees etc, is less clear in reality, and apparently clinical modellers want to just make everything a tree-like structure. I personally am still somewhat sceptical that this is really true, because in the many tabular, particular bilateral information structures (reflexes, audiogram, much ophthalmology, and so on), throwing out the ability to define a Table structure in the data simply means that tabular structures may get built in different ways be different groups. Internationally standard archetypes can remove this problem partly, but software still has the job of working out how to correctly put the data on the screen and also capture it, in ways familiar to clinical people. But - let's assume that, all things considered, this simplification was to prove useful, and the consequential downstream costs were acceptable. We could in that case make some small simplification of the current models.
Now consider the counter-examples: Observation.data, the structure of Action and Instruction. Let's stick with the first one for the moment. As mentioned in previous posts, we chose to define a History<Event> data structure in the RM because it is absolutely ubiquitous in observational data, no matter whether it is one or many samples, and no matter what part of medicine or science it comes from. Here are some paths from the Apgar archetype - you can see where they contain 'events[1 minute]', 'events[5 minute]' etc... -- note that everything below shows English language translations of terms /data: HISTORY<EVENT> /data/origin: DV_DATE_TIME /data/duration: DV_DURATION /data/period: DV_DURATION /data/events[1 minute]: EVENT /data/events[1 minute]/offset: DV_DURATION /data/events[1 minute]/data/items[Heart Rate]/value: DV_ORDINAL /data/events[1 minute]/data/items[Respiratory effort]: ELEMENT /data/events[1 minute]/data/items[Respiratory effort]/value: DV_ORDINAL /data/events[1 minute]/data/items[Muscle tone]/value: ELEMENT ... /data/events[2 minute]/data/items[Heart Rate]/value: DV_ORDINAL ... /data/events[5 minute]/data/items[Heart Rate]/value: DV_ORDINAL For an archetype containing Interval_events, e.g. any rolling BPs, temperature etc, you get paths like: /data/events[any event]/offset: DV_DURATION /data/events[any event]/width: DV_DURATION /data/events[any event]/sample_count: Integer /data/events[any event]/math_function: DV_CODED_TEXT -- e.g. value could be a code for 'average' These paths correspond to formal data structures, as you can see here <http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109157527311_729550_7234Report.html>. Have a close look at these classes. Everything here can be archetyped. The INTERVAL_EVENT class for example provides attributes for sample width, sample_count (allowing data compression from ICU and other devices), and math_function. In all there are around a dozen formally specified attributes here that would not exist in a simple Entry.data: Cluster model. That's not just 12 things that both archetype specifiers have to invent, but also 12 things implementers have to invent - i.e. find names for, decide on types, and structure (hint: there are not just 12 ways of doing this, but hundreds of millions). History tells us that organisations in the latter group will do this differently every time. Note that it took probably 4 years to get this model into its current form, where it works for everything we can throw at it now. I have to ask - why go back through that pain? Why go to a model that is too simple, only to discover too late a whole raft of problems that this model takes away? If anyone doubts this, just have a go at remodelling 20 or so of the most common Observation archetypes you can find on CKM, in the 13606 model. You can try this in the existing openEHR tools by either using an Evaluation structure (which does happen to be a tree) or the openEHR Generic_entry type <http://www.openehr.org/uml/release-1.0.1/Browsable/_9_5_1_76d0249_1140530578205_529440_4046Report.html>. Any such archetype can be validated and viewed in the ADL Workbench <http://www.openehr.org/svn/ref_impl_eiffel/TRUNK/apps/adl_workbench/doc/web/index.html> or Archetype Editor. Let's see what would happen to the paths and types if you do this: *Fred's version of Apgar based on Cluster/Element structures:* /data: CLUSTER /data/items: CLUSTER /data/items[origin]: ELEMENT /data/items[origin]/value: DV_DATE_TIME /data/items[duration] -- not defined by Fred /data/items[period]/value: Real -- oops - Fred prefers 'Real' here /data/items[1 minute]: CLUSTER /data/items[1 minute]/time: DV_DATE_TIME -- oh no... Fred wants absolute time points, not offsets /data/items[1 minute]/items: CLUSTER /data/items[1 minute]/items/items[Heart Rate]/value: Integer -- Hm. Fred just wants to use an Integer here /data/items[2 minute]/items/items[Muscle Tone]/value: Integer -- Hm. Fred just wants to use an Integer here * Janes's version of Apgar**based on Cluster/Element structures**:* /data: CLUSTER /data/items: CLUSTER /data/items[origin]: CLUSTER -- oh no, Jane wants to use a CLUSTER here! /data/items[origin]/value: DV_DATE_TIME /data/items[duration]: Real -- Jane decided on a Real here /data/items[period]/value -- not defined by Jane /data/items[Any time]: CLUSTER-- Jane is not going to control the times at all /data/items[Any time]/timepoint: ELEMENT-- Jane records the time in this new attribute /data/items[Any time]/items: CLUSTER /data/items[Any time]/items/items[Heart Rate]/value *Bob's version of 24h BP**based on Cluster/Element structures**:* /data/items[4 hour]/items[diastolic]/value: Real -- Bob has collapsed the path here; Fred's software that understood Fred's structure of logical 'history of events' data now won't work on Bob's data. ... X 1,000 other clinical modellers around the world X 1,000 other archetypes X 10,000 software developers around the world. = 10 billion more incompatible combinations than we have today Now consider the internal structures of Instruction and Action (here <http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109249648736_872559_12384Report.html>). Consider just the simple fact that Action is a conjunction of 'time' (would anyone argue against this?), 'description' (ditto), and various other details to do with the Instruction state machine. I am not saying that this model is perfectly correct; maybe it needs a 'other_details' attribute as is used elsewhere in openEHR. But again, just do the thought experiment of having nothing but a Cluster/Element structure to work with. You immediately have to a) work out a model of where you will record time and description, b) if you want it to be interoperable, you will have to get into some kind of standards discussion with other people to agree on the same structure and c) you then have to complicate all the tooling software and also downstream software in order for it to 'know' that this particular Cluster/Element structure is really an Action structure, and to diplay it as such. The downstream complications will be quite significant. It is the difference between giving a software developer UML pictures like the above, or .... a completely generic tree structure, which is as good as giving them nothing. In summary: there is a strong argument in my view for avoiding all this modelling and downstream complexity. A challenge to the health informatics community is to actually show how it will be better for modelling and software to just go to a simple Cluster/Element model (or in HL7 terms, Act/Act-relationship). If it can be done and save time and trouble compared to what we have done in openEHR, I will be the first to embrace it. Note: flatter data paths are aesthetically pleasing to humans, but computers don't care about them. They care about /consistent/ path structures. - thomas On 10/11/2010 11:49, Ian McNicoll wrote: > Hi Eric, > > I thought the original post was pretty complete!! > > I would strongly support this proposal. In practice we have almost > wholly abandoned using anything other than ITEM_TREE as the top-level > archetype structures, for all the reasons suggested by Sam. Tables are > useful but generally within the body of the archetype,rather than as > the top-level structure. A good example is neural reflexes, for which > a table structure is appropriate but which would be better expressed > within a CLUSTER archetype, rather than ENTRY, to cope with variations > in Examination recording practice. > > We are also finding that the use of embedded archetypes based on > ITEM-TREE is a little cumbersome. There is considerable value in > having child archetypes which can be re-used in different parent ENTRY > archetypes e.g. Medication details or Specimen details, but using > CLUSTER gives us much more flexibility. > > Some kind of simplification around the use of CLUSTER, with the > ability to define TABLES within a CLUSTER or ITEM_TREE would give us > some simpler modelling constructs and, as you suggest, flatten the > data path. > > Ian > Dr Ian McNicoll > office / fax +44(0)1536 414994 > mobile +44 (0)775 209 7859 > skype ianmcnicoll > ian.mcnicoll at oceaninformatics.com > > > Clinical analyst, Ocean Informatics > openEHR Clinical Knowledge Editor www.openehr.org/knowledge > Honorary Senior Research Associate, CHIME, UCL > BCS Primary Health Care SG Group wHi Eric,ww.phcsg.org > > > > > On 10 November 2010 05:12, Erik Sundvall<erik.sundvall at liu.se> wrote: >> Oops, I intended to push the save-button, not the send-button on that last >> message. Now we'll just have to make a fire, shovel some snow, milk our >> goats, say good morning to cat and chickens, fix a leaking car tire, get >> kids to school and myself and my wife to work before I can continue writing. >> Sorry about spamming the list. >> >> // Erik >> >> On Wed, Nov 10, 2010 at 05:56, Erik Sundvall<erik.sundvall at liu.se> wrote: >>> I hope you don't mind breaking out a side thread with a concrete >>> harmonisation suggestion... >> _______________________________________________ >> openEHR-technical mailing list >> openEHR-technical at openehr.org >> http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical >> >> > _______________________________________________ > openEHR-technical mailing list > openEHR-technical at openehr.org > http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical > -- Ocean Informatics *Thomas Beale Chief Technology Officer, Ocean Informatics <http://www.oceaninformatics.com/>* Chair Architectural Review Board, /open/EHR Foundation <http://www.openehr.org/> Honorary Research Fellow, University College London <http://www.chime.ucl.ac.uk/> Chartered IT Professional Fellow, BCS, British Computer Society <http://www.bcs.org.uk/> Health IT blog <http://www.wolandscat.net/> * * -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20101110/3c29b47f/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: ocean_full_small.jpg Type: image/jpeg Size: 5828 bytes Desc: not available URL: <http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20101110/3c29b47f/attachment.jpg>

