Hi Athanasios, a) The very first thing you have to do is to decide on the structure and this is static. The archetyped definition sits within a sub-class of item structure. So if I am creating a new Observation archetype and want to add elements to 'data' I first have to decide which structure to use. In practice we always now use ITEM_TREE.
b) EVENT actually holds 2 ITEM_STRUCTUREs, one for 'data' , and one for 'state', each of which are statically defined by the archetype. Basically any time you see ITEM_STRUCTURE, you can assume that part of the archetype is going to define the content within this structure. It is a lot easier to look at EVALUATION as an example as the containing classes are simpler. This has two ITEM_STRUCTUREs 'item' and 'protocol' . If you look at the Adverse Reaction archetype you will see that these are separately defined in the archetype. Ian On 20 June 2012 16:50, Athanasios Anastasiou <athanasios.anastasiou at plymouth.ac.uk> wrote: > Hello everyone > > Thank you very much for your responses Sam & Ian, they were helpful. In any > case the changes you describe do not seem to be reducing the flexibility of > the model. This definitely also helped me in clarifying the use of > ITEM_TABLE. > > There is another part to that question though that is still not clear and if > you don't mind i'd like to ask a bit more specifically about: > > a) Is an ITEM_STRUCTURE static? > (I think that it's static but i would like to verify that because, as > described in the previous message i can't decide just from the > specification) > In other words, when you specify an ITEM_STRUCTURE in the archetype editor > then you simply denote that you would like your set of defined ITEMs > (elements, quantities, counts, etc) to be _interpreted_ as a LIST, TABLE, > TREE but that data structure itself will not have to expand (at run time) > necessarily to a list, table or tree (Is that correct?). > > > b)HISTORY holds a list of EVENT<ITEM_STRUCTURE> (parametrising the data > attribute here). This particular list COULD BE dynamic (Is that correct?). > In the visual acuity example provided by Ian earlier: That would be a > HISTORY of 1 POINT_EVENT<CLUSTER> to describe the visual acuity of the > subject that was obtained during a regular check-up session in some point in > their lifetime. But, if you wanted to measure some drug uptake (or other > transient parameter) you would have a repeating POINT_EVENT that could > expand indefinitely (because a substance uptake is different for every > person). (Correct?) > > > (Thomas thank you very much for that link, it came later as i was writing > this message, i will have a close look at it) > > > All the best > Athanasios Anastasiou > > > > > > > > On 20/06/2012 15:47, Ian McNicoll wrote: >> >> Hi Athanasios, >> >> Just to back up what Sam has said, experience has shown that it is >> best practice to model every top-level archetype structure as >> ITEM_TREE to allow for maximum flexibility to develop the model in the >> future without breaking backward compatibility, and as Sam has said >> there appears to be good consensus that it would be better to replace >> ITEM_STRUCTURE ?with CLUSTER in the next generation of the RM. There >> will definitely still be aspects of the archetyped structures inside >> that CLUSTER (via a child CLUSTER ) that are best represented as >> simple lists or as Tables, but this is best done by applying some sort >> of design constraint on the cluster, rather than using a separate >> Table class. >> >> e.g. for a possible Visual Acuity archetype >> >> data >> ? Cluster ?Laterality" (As Table pattern with row names carried as >> Run-time name constraints Left eye, Right eye , Both eyes) >> ? ? ? ?Element "Low level acuity" >> ? ? ? ?Element "Snellen" >> ? ? ? ?Element "ETDRS" >> ? ? ? ?Element "Measurement distance" >> ?Element "Mode" >> ?Element "Correction" >> >> This lets express a tabular structure at a much more granular level >> than with ITEM_STRUCTURE sub-classes which in th example above would >> have to apply to the whole data structure >> >> In summary, you can safely assume that we will only be modelling with >> ITEM_TREE for the forseeable future. >> >> Ian >> >> >> >> On 20 June 2012 11:50, Sam Heard<sam.heard at oceaninformatics.com> ?wrote: >>> >>> Hi Anthanasios >>> >>> I think time has shown that this is probably an area of over engineering >>> in >>> openEHR. All archetypes are now ITEM_TREE and could be clusters. >>> >>> If we think of these as providing constraint on an underlying cluster - >>> ITEM_LIST is a cluster of ELEMENTs and ITEM_TABLE sets up a set of >>> clusters >>> to provide the Information structure of an addressable table. >>> >>> There is a place for ITEM_LIST and ITEM_TABLE but the other issue is >>> these >>> constraints might be brought to bear at any point in an information >>> hierarchy. >>> >>> I have proposed in version 2 of the RM that we make these specialisations >>> of >>> CLUSTER as a constraint statement. That would ensure backward >>> compatibility. >>> >>> Cheers, Sam >>> >>> >>> On 16/06/2012 1:25 AM, Athanasios Anastasiou wrote: >>>> >>>> >>>> Hello everyone >>>> >>>> I am sending this email to clarify the role of ITEM_STRUCTURE in >>>> relation to other structures (such as HISTORY and EVENT) both from the >>>> point of view of EHR semantics as well as the computational view. >>>> >>>> My "problem" in one line is that i can't understand if ITEM_STRUCTURE >>>> are there to ensure that their content is interpreted properly >>>> semantically or they really "do what they mean" (i.e. they represent >>>> tables, lists, trees that have to be populated as such). >>>> >>>> A related question is also this one: >>>> >>>> Is it possible that a C_MULTIPLE_ATTRIBUTE constraint pointing to an >>>> ITEM_LIST will have upper_unbounded=True? >>>> >>>> If yes, then ITEM_LIST would have to be dynamically expanding (and this >>>> complicates things a little bit but...that's life)...If no, then the >>>> contents of ITEM_LIST can be considered static (yay!) and you only need >>>> to know that this is an ITEM_LIST for interpretation purposes (which of >>>> course is KEY when you come across an ITEM_TREE) >>>> >>>> This will help me in two points: >>>> a) Clarify the role of ITEM_STRUCTURE and use it properly in archetypes >>>> and templates >>>> b) Be able to assign widgets properly (and later read data off them) >>>> when constructing a GUI. >>>> >>>> A few more notes are available at the end of this message >>>> >>>> All the best >>>> Athanasios Anastasiou >>>> >>>> >>>> >>>> What i understand but would like to verify is that ITEM_STRUCTURE do >>>> what they say they do, i.e an ITEM_LIST represents a dynamic list >>>> (constrained by some C_MULTIPLE_ATTRIBUTE) and an ITEM_SINGLE >>>> represents....just one entry (constrained by some C_SINGLE_ATTRIBUTE). >>>> >>>> But i am a little bit confused for two reasons: >>>> >>>> a) by what is meant by HISTORY<T>. >>>> >>>> HISTORY already implies "A list of events" with the type of the list >>>> being (point or interval)EVENT<T> ?which could imply "A [single item or >>>> table] of ITEM_STRUCTURE" OR "A [list,tree] of ITEM_STRUCTURE"....and >>>> this is where it gets confusing. >>>> >>>> Does that mean that all of the following are valid? (with respect to >>>> HISTORY<T>) >>>> >>>> *) a dynamic list of events containing dynamic lists of item structure >>>> (the history.events can expand and so can the item structures held by >>>> events) >>>> >>>> *N1) a dynamic list of events containing static lists of item structure >>>> (events can expand, but each event is supposed to simply contain a list >>>> of items that is actually fixed in size). >>>> >>>> (dynamic and static expanded for the following lines as well) >>>> *) A list of trees >>>> *) a list of tables >>>> *) a list of single values (this is the most intuitive thing....For >>>> example, a time series represented as a history of point events of >>>> single_value...) >>>> >>>> >>>> b) by the explanation given in the specs >>>> With reference to (*N1) above: >>>> The example that is given in the spec for ITEM_LIST is that of "parts of >>>> an address". This is what leads me to believe that ITEM_LIST is not >>>> supposed to be a dynamic list but just something THAT IS TO BE >>>> INTERPRETED AS A LIST but from a computational point of view is just a >>>> list. I really do hope this makes sense. (I have gone through section 6 >>>> in "data_structures.pdf" and that again points to ITEM_STRUCTURE being >>>> used for interpretation rather than "definition" :-/) >>>> >>>> _______________________________________________ >>>> openEHR-technical mailing list >>>> openEHR-technical at lists.openehr.org >>>> >>>> >>>> http://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 >> >> >> >> > -- Dr Ian McNicoll office +44 (0)1536 414 994 fax +44 (0)1536 516317 mobile +44 (0)775 209 7859 skype ianmcnicoll ian.mcnicoll at oceaninformatics.com Clinical Modelling Consultant,?Ocean Informatics, UK Director openEHR Foundation ?www.openehr.org/knowledge Honorary Senior Research Associate, CHIME, UCL SCIMP Working Group, NHS Scotland BCS Primary Health Care ?www.phcsg.org