Hello Ian and everyone

Thank you for your response. (a) and (b) are clear but not towards what 
the question is really about.

I wouldn't like this to drag on too much so maybe it's better if i 
implement it the way i understand it and correct any errors afterwards.

All the best
Athanasios Anastasiou





On 20/06/2012 17:14, Ian McNicoll wrote:
> 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
>>>
>>>
>>>
>>>
>>
>
>
>

Reply via email to