Just one small problem - the built RM instance structure usually 
deviates in some way from the archetype structure, e.g. the archetype 
might have a single EVENT node that stands for any number of EVENTs; the 
data may have EVENTs at 0, 5min, 10min, ..... The same goes for most of 
the repeated structures in the reference model - the archetype may only 
have one or a few 'models' of what the data should look like, while the 
actual data may have many.

- thomas beale


Seref Arikan wrote:
> Hi Hugh,
> I am not in my brightest state of my mind at the moment, so I may deny 
> that the following belongs to me when I wake up in the morning...
> I think I can build a GUI automatically without instantiating a single 
> RM class at all. The reason is; the archetype gives you all the 
> information about the types you'd expect from input. The mappings from 
> constraints to GUI elements is mostly a one time job: coded text to 
> combo boxes, free text to text boxes, duration to some more 
> specialized widget, amount to a textbox with a combobox for unit 
> etc... (this is pretty much what Ocean's archetype editor seems to do, 
> but of course the classes in that source code are not as well 
> seperated as the java ref impl)
> Whatever the value is given, the input from GUI can be validated via 
> AOM instances, right? I know the constrained RM type in AOM, I know 
> the constraints is must satisfy. So the moment I'd create the 
> instances would be after gui generation, data input, and validation 
> via AOM instances. At that time I have constraint fullfilling data 
> which can nicely be placed in a RIM instance.
> For persistence, the archetype is still the deriving force, since to 
> create a structured set of RM instances, you need the AOM tree anyway, 
> because that's where the structure is, and since every node in AOM has 
> its path, a tree with (node, value.toString()) tuples is all I need 
> for simple persistence :)
> So, with some extra coding, It seems possible to parse an archetype, 
> generate a gui, validate input and save data without using RIM 
> classes. I'm not saying that this is the right way to do it, it is 
> just that the role of the RM classes seem to begin "mostly" when you 
> start coding business logic. Again this is about the java ref. impl. 
> Other implementations may assign more behaviour to RM classes. The 
> feeling I get is, the whole thing is really archetype driven (and is 
> it not the point anyway?)
>
> Many thanks for the feedback, and I hope I did not confuse anyone...
>
> Kind regards
> Seref
>
>
> On Tue, Nov 25, 2008 at 10:20 PM, Hugh Leslie 
> <hugh.leslie at oceaninformatics.com 
> <mailto:hugh.leslie at oceaninformatics.com>> wrote:
>
>     Hi Serif
>
>     I would have thought that if you wanted to persist data and
>     retrieve it so that it conformed consistently with the archetype,
>     then you would have to invent some model of persistence which
>     would have at least some if not all of the characteristics of the
>     RM - so why not use the RM!  You even said that you are parsing
>     the archetype and building instances of the RM datatypes in memory...
>
>     Not sure how you would do it otherwise as the archetype is just a
>     model of constraint on the RM ie when we are building forms for
>     instance, the widgets conform to not just the archetype, but also
>     the underlying RM and are really archetype constrained versions of
>     RM instances but in a GUI model. ie.  A quantity for systolic
>     blood pressure on the form is a quantity widget that conforms at
>     some level to the RM but is constrained by the archetype to mean
>     systolic with units mmHg and range 0 to 1000 etc.
>
>     regards Hugh
>
>     Seref Arikan wrote:
>>     Hi Tom,
>>     Thanks for the correction of the term. Yes I'm referring to
>>     runtime usage of archetypes.
>>     After taking a look at the RM class code in ref. impl. I guess it
>>     is safe to say that some RM classes seems to check for proper
>>     values, and that's a reason to create instances of them. I guess
>>     this is where syntactic checks about captured data are done.
>>     Also almost any business logic written against the reference
>>     object model would require interfaces of these classes, so their
>>     instances would be needed in any case you have data to process,
>>     so even if I could avoid them for a very simple case, I'd need
>>     them again for making any use of data in software. It takes some
>>     coding to see their use :)
>>
>>     Thanks for the response.
>>
>>     Kind regards
>>     Seref
>>
>>     On Tue, Nov 25, 2008 at 5:43 PM, Thomas Beale
>>     <thomas.beale at oceaninformatics.com
>>     <mailto:thomas.beale at oceaninformatics.com>> wrote:
>>
>>
>>         Hi Seref,
>>
>>         I think 'lifecycle' is not the term you want, since most
>>         people use that
>>         to mean 'authoring lifecycle' i.e. the authoring, review,
>>         approval
>>         history of an archetype. Here we are talking about the
>>         runtime usage of
>>         an archetype. If I understand correctly the question it is:
>>         can the
>>         runtime instantiation of the Java RM objects be avoided in
>>         some simple
>>         circumstances? It seems unlikely to me, because most of the
>>         RM classes
>>         have some routines that would be commonly used during data
>>         capture, e.g.
>>         have a look at the History package in the data structures
>>         part of the
>>         model -
>>         
>> http://www.openehr.org/uml/release-1.0.1/Browsable/_9_0_76d0249_1109157527311_729550_7234Report.html
>>
>>         - thomas beale
>>
>>         Seref Arikan wrote:
>>         > Hi,
>>         > The term lifecycle may not be appropriate for archetypes, and
>>         > suggestions for a better term are more than welcommed.
>>         > Assuming that we constrain our interest only to a set of
>>         information
>>         > encapsulated in a single archetype, would you provide the
>>         technical
>>         > lifecycle you can imagine, for an archetype? The scenario
>>         is very
>>         > simple: an archetype is loaded from disk, displayed on
>>         screen, and
>>         > after data is provided by user, data is saved on disk,
>>         later loaded
>>         > and edited, and saved again. That's it!
>>         >
>>         > To better explain the context of the question, please think
>>         about the
>>         > java reference implementation. I'll skip some minor steps
>>         and give my
>>         > own points, and I'd like to hear yours.
>>         >
>>         > 1) Archetype is created via a tool like Ocean's designer.
>>         > 2) It is loaded by the parser in the java ref. impl.
>>         > 3) It's in memory representation is parsed, and know we the
>>         > constraints on rim data types expressed in java language
>>         terms and
>>         > instances of these terms in memory.
>>         > 4) Assuming we are creating a gui only for an archetype, we
>>         can create
>>         > a form using the constraints on data types, and Ocean's
>>         tool has an
>>         > interface tab that does it.
>>         > 5) A user provides information using the generated form.
>>         >
>>         > 6)  We can check the validity of the data entered using the
>>         in memory
>>         > representation of archetype, like dates, amounts being in
>>         allowed
>>         > interval, and simply warning user if any data is not valid.
>>         >
>>         > Things become interesting after this point. In the context
>>         of the java
>>         > reference impl. and immutable rm classes, we can now create rm
>>         > instances since we now have data, and we can persist them.
>>         If we were
>>         > think of the simplest use case of just storing information
>>         and loading
>>         > it back, would we need RM instances here? How about saving
>>         a custom
>>         > represention of user input like an xml file to disk, and
>>         reading back
>>         > for updates? As long as the link to original archetype is
>>         preserved,
>>         > updates can be checked for validity.
>>         >
>>         > In short, I'd be very happy to hear your description of the
>>         flow for a
>>         > very basic scenario "in the context of java ref. impl".
>>         Especially how
>>         > you'd use the RM classes (in immutable/mutable form) and when.
>>         >
>>         > Those of you who are active in development of archetype
>>         based systems
>>         > can provide very useful feedback for others to follow
>>         >
>>         > Kind regards
>>         > Seref
>>         >
>>         > Ps( the use of templates is deliberately excluded here, to
>>         keep things
>>         > within a smaller scope)
>>         >
>>         
>> ------------------------------------------------------------------------
>>         >
>>         > _______________________________________________
>>         > openEHR-technical mailing list
>>         > openEHR-technical at openehr.org
>>         <mailto:openEHR-technical at openehr.org>
>>         > http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical
>>         >
>>
>>
>>         --
>>                *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/>
>>
>>
>>         *
>>         *
>>
>>         _______________________________________________
>>         openEHR-technical mailing list
>>         openEHR-technical at openehr.org
>>         <mailto:openEHR-technical at openehr.org>
>>         http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical
>>
>>
>>     ------------------------------------------------------------------------
>>     _______________________________________________ openEHR-technical
>>     mailing list openEHR-technical at openehr.org
>>     <mailto:openEHR-technical at openehr.org>
>>     http://lists.chime.ucl.ac.uk/mailman/listinfo/openehr-technical
>>
>>
>>
>>
>>     __________ Information from ESET NOD32 Antivirus, version of virus 
>> signature database 3639 (20081125) __________
>>
>>     The message was checked by ESET NOD32 Antivirus.
>>
>>     http://www.eset.com
>>       
>
>     -- 
>
>     ________________________________________________
>     Dr Hugh Leslie MBBS, Dip. Obs. RACOG, FRACGP, FACHI
>     Clinical Director
>     Ocean Informatics Pty Ltd
>     M: +61 404 033 767   E: hugh.leslie at oceaninformatics.com
>     <mailto:hugh.leslie at oceaninformatics.com>  W:
>     www.oceaninformatics.com <http://www.oceaninformatics.com> 
>
>
>     _______________________________________________
>     openEHR-technical mailing list
>     openEHR-technical at openehr.org <mailto: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
>   


-- 
        *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/>


*
*


Reply via email to