# what is the use of the reference model? **Category:** [Technical (archive)](https://discourse.openehr.org/c/technical-archive/156) **Created:** 2006-07-03 18:54 UTC **Views:** 4 **Replies:** 16 **URL:** https://discourse.openehr.org/t/what-is-the-use-of-the-reference-model/15212 --- ## Post #1 by @Rodrigo_Filgueira1 I've been going round in circles about this question all weekend, and have two ideas. 1. It's basic and most important use is to provide reference to check the correctness of the arquetypes. 2. It is needed for some types of persistence design Why am I asking myself this? because once assertions are implemented, all that may be needed for validating real data may be included in archetypes, can't it? am I missing something? thank you --- ## Post #2 by @system Dear Rodrigo, The Reference Model defines a generic model of any document. And is mapped onto (into) the persistence layer. Archetypes are constraints on the Reference Model but are formed using its own meta-model. Your possibility number 1 is not correct. Possibility 2 is correct. Real data is 'validated' (better: defined) using the Archetype (the constraints) And the archetypes are validated (defined) using the archetype meta-model. Gerard -- -- Gerard Freriks, arts Huigsloterdijk 378 2158 LR Buitenkaag The Netherlands T: +31 252 544896 M: +31 653 108732 --- ## Post #3 by @Rodrigo_Filgueira1 Gerard, But correctness of a particular Archetype (for openEHR) must checked against the Reference Model, or is it not? ... I did not mean to say what is the use, but meant "what is it used for?" regards Gerard Freriks wrote: --- ## Post #4 by @thomas.beale Rodrigo Filgueira wrote: > I've been going round in circles about this question all weekend, and have two ideas\. > > 1\. It's basic and most important use is to provide reference to check the correctness of the arquetypes\. > 2\. It is needed for some types of persistence design > > Why am I asking myself this? because once assertions are implemented, all that may be needed for validating real data may be included in archetypes, can't it > > am I missing something? yes\.\.\.\.the data\. The data are all instances of the reference model, nothing else\. No matter how many openEHR deployments, no matter how many archetypes or templates \- all the data are instances of the one schema \- the reference model\. \- thomas --- ## Post #5 by @Rodrigo_Filgueira1 Thomas, I see that some attributes for some clases are not present in archetypes\. For examples language in the Entry class\. It is clear to me that the restriction is allready defined by the infariants of that class, but I wonder where do you check or validate that field\. Do you wait until you build the RM object? Another question about this, how do you refer to this attributes in templates? this question arised because there are no archetype paths that lead you to this attributes\. Another thing, I believe it is a spec error, the EVENT\_CONTEXT class from the COMPOSITION package does not inherit from LOCATABLE\. Is that correct? thank you Quoting Thomas Beale <Thomas\.Beale@oceaninformatics\.biz>: --- ## Post #6 by @Rodrigo_Filgueira1 Thomas in option 2 I meant the reference model serves as a stable schema and container of the real data, but correct me if I'm wrong, this schema is instantiated with data with the only purpose of fetching it from databases and persisting it to databases. All other processing is to be done by the AOM. Thomas Beale wrote: --- ## Post #7 by @ankush_shinde We need to think as per end users point view\. What is a use of reference model to end user? will it simplify the transaction\. This a thought I want to share with you\. Regards, Dr\. Ankush --- ## Post #8 by @ankush_shinde Thanks Gerard , This gives some understanding of RM\. Will it be more useful if we can understand it in more end user perspective? Regards, Dr\. Ankush --- ## Post #9 by @Sam Rodrigo Templates can constrain or populate any attribute - you can determine the path of the object ending with the attribute name. This applies throughout. More in line.. Rodrigo Filgueira - IIE wrote: > Thomas, > > I see that some attributes for some clases are not present in archetypes. > For examples language in the Entry class. > It is clear to me that the restriction is allready defined by the infariants of that class, but I wonder where do you check or validate that field. > > Do you wait until you build the RM object? At Ocean we state it in a template - the openEHR version of this coming. Then we populate the value in the RM object. > Another question about this, how do you refer to this attributes in templates? Paths - path_to_object/attribute_name > this question arised because there are no archetype paths that lead you to this attributes. Only because we have not included it as we do not want to constrain it in archetypes. > Another thing, I believe it is a spec error, the EVENT_CONTEXT class from the COMPOSITION package does not inherit from LOCATABLE. Is that correct? Yes - we use a path to get there too - there is only 0..1 so it does not repeat. Cheers, Sam --- ## Post #10 by @thomas.beale Rodrigo Filgueira wrote: > Thomas in option 2 I meant the reference model serves as a stable schema and container of the real data, but correct me if I'm wrong, this schema is instantiated with data with the only purpose of fetching it from databases and persisting it to databases\. All other processing is to be done by the AOM\. Hi Rodrigo, validity processing and some query processing is, correct\. But don't forget that the RM has its own semantics as well \- it depends on what you are doing\. If you are graphing a blood pressure History then you will of course use some of the logic of History, Event etc\. Similarly for Instruction/Activity and so on\. But it is the archetypes that provide 80% of the domain\-level semantic checking\. \- thomas --- ## Post #11 by @thomas.beale ankush shinde wrote: > We need to think as per end users point view\. What is > a use of reference model to end user? will it simplify > the transaction\. > not too sure what you mean by that\. Most end users won't be aware of the reference model or even archetypes \- they will just see forms and other things on the screen\. These forms are directly linked to templates that in turn specify a collection of archetypes for that particular form\. \- thomas --- ## Post #12 by @husain_poredom Hi, But for end user is always worry with the performance issue. How this RIM helps in the performance point of view Husain --- ## Post #13 by @thomas.beale husain poredom wrote: > Hi, > But for end user is always worry with the performance issue\. > How this RIM helps in the performance point of view > Husain > > \*//\* yes, sorry, I wasn't aware that you were thinking from that perspective\. Well, performance is a big issue, but a few things to note:     \* latency is usually the main issue \(how fast a it takes to get a       response on the GUI\), particularly in the presence of other users       and server\-side queries     \* persistence architecture is almost always the single greatest       determinant of latency as experienced by the user     \* the Ocean Informatics \.Net openEHR implementation performs pretty       well already; we are currently building large record sets and test       applications to simulate medium to large size EHR systems\.     \* with the Java implementation, tests on openEHR structures built       using vanilla hibernate schemas performed very badly; as soon as       the structures were adjusted to be less fine\-grained, a 4 second       wait turned into a 2 millisecond wait\.     \* I theorise that the method of persistence documented here       \(http://www.openehr.org/FAQs/t_persistence_notes.htm) may well be       an order of magnitude faster \(including for complex queries\) than       any method\. hope this helps, \- thomas beale --- ## Post #14 by @Sam Ankush It is a recording model that contains features required for all legal recording and audit trail, for tracing inputs and outputs and is the basis for all software. The software has to know about the reference model. The reference model means that the EHR can accept any information at all - the way specific information is recorded depends on the archetype (but it always uses the features of the reference model!). The clinical concepts are expressed in archetypes. Most software using an EHR service will not need to know what is in archetypes - just how to work with archetypes. So data entry, display and other components need to be archetype-aware but not understand the clinical concepts. The components for data entry can have archetype-specific specifications (we call them templates for data entry and display scripts for viewing) of how to present this to the user. Decision support and clinicians need to know what an archetype expresses - because the health care of a patient will depend on this. Some other smart software will as well - perhaps determining the billing automatically - etc. Does this help? Sam ankush shinde wrote: --- ## Post #15 by @ankush_shinde Thanks Sam, Your explanation has been very useful to understand RM\. I work more in implementing EHR and HIS and deal with users\. Gerard gave the technical explanation but I thought it will be useful if I can understand it in user’s point of view\. Your explanation has solved my query\. I think while system design and development, user perspective is very important\. It should based on real life use cases and scenarios I thank you and Gerard for clarifications\. Regards, Ankush --- ## Post #16 by @ankush_shinde Thomas this was very helpful\. Regards, Ankush \-\-\- Thomas Beale <Thomas\.Beale@OceanInformatics\.biz> wrote: > husain poredom wrote: > > Hi, > > But for end user is always worry with the > performance issue\. > > How this RIM helps in the performance point of > view > > Husain > > > > \*//\* > yes, sorry, I wasn't aware that you were thinking > from that perspective\. > Well, performance is a big issue, but a few things > to note: > >     \* latency is usually the main issue \(how fast a > it takes to get a >       response on the GUI\), particularly in the > presence of other users >       and server\-side queries >     \* persistence architecture is almost always the > single greatest >       determinant of latency as experienced by the > user >     \* the Ocean Informatics \.Net openEHR > implementation performs pretty >       well already; we are currently building large > record sets and test >       applications to simulate medium to large size > EHR systems\. >     \* with the Java implementation, tests on openEHR > structures built >       using vanilla hibernate schemas performed very > badly; as soon as >       the structures were adjusted to be less > fine\-grained, a 4 second >       wait turned into a 2 millisecond wait\. >     \* I theorise that the method of persistence > documented here >      \(http://www.openehr.org/FAQs/t_persistence_notes.htm) --- ## Post #17 by @ankush_shinde Good, I got your point\. --- **Canonical:** https://discourse.openehr.org/t/what-is-the-use-of-the-reference-model/15212 **Original content:** https://discourse.openehr.org/t/what-is-the-use-of-the-reference-model/15212