CIMI MTF Minutes 20140306
- 1 CIMI Modeling Taskforce - Meeting Minutes
CIMI Modeling Taskforce - Meeting Minutes
- Stan Huff
- Deepak Sharma
- Harold Solbrig
- Steve Hufnagel
- Jay Lyle
- Patrick Langford
- Joey Coyle
- Thomas Beale
- Sarah Ryan
- Rahil Siddiqui
- Daniel Karlsson
- Robert Lario
- Eithne Keelaghan
- Daylight Savings Time - Need to decide on MTF Meeting Time
- Joint meeting with SemanticHealthNet March 13-15 in Brussels
- Presentation of AML proposal - Harold Solbrig, Robert Lario
Detailed Meeting Minutes
Decision on MTF Meeting Time following Daylight Savings Time
Stan: No one from Singapore, Korea, Australia. Stephen Chu sometimes attends, but has not attended these last few meetings.
Daniel: Do they shift times in Australia?
Stan: Before Daylight Savings Time, this meeting was at 2pm my time, but now it is at 1pm. Daniel - what would be impact on you?
Daniel: Would start at 10pm and last until midnight my time. I survived last year, so is possible. But Australians have to get up at 4am or 5am, so I can't complain.
Stan: Thomas - are you in same situation?
Thomas: I am better off by 1 hour than Daniel.
Daniel: So - the 6th of April - 20 UTC is 10pm here in Sweden, 2pm in Salt Lake City, and 6am in Brisbane.
Stan: OK. It's probably... the best we can do.
Thomas: Should we poll people and ask if they will attend meeting in the next 3 months? And if no one from Southeast Asia, then can change the time?
Stan: I will take Thomas' suggestion and visit with Steve Chu. Linda's participation is in question until more decisions are made at IHTSDO. Because if no participation from Stephen Chu or... then we could pick a better time.
Daniel: Stephen Chu is...?
Thomas: He is in Melbourne - has the same time as Sydney.
SemanticHealthNet/CIMI Meeting in Brussels
Stan: So - welcome everyone. We have a slight modification to the agenda. We will talk about the SemanticHealthNet meeting, then a presentation of the AML proposal. And Thomas sent out... So I am hoping we have time to meet on it at the face-to-face in Brussels. And then the next week we can decide... Questions?
Stan: Any questions about meeting with SemanticHealthNet? You should have received an agenda. Also, some have seen a more detailed agenda. I think it will be a good meeting. Any questions?
Steve Hufnagel: Will there be a call-in?
Stan: I don't know... I will ask. Other questions about Brussels?
Stan: I will give the Presenter over to Harold.
Presentation of AML proposal - Harold Solbrig, Robert Lario
This is a report on where we are on Archetype Modeling Language (AML)... So, want all to know the process, where we are... How we have done stuff... Light on profile, but cover meta-model. Also want comments on what should be presented at the Brussels meeting.
Harold: So, this is taken from the RFP.
[slide] - OMG
Harold: Stuff out of OMG is not standard. Is a consortium of industry and developers and folks. Originally was around architecture... Now - around UML... and suite of tools under "Model-driven architecture"_ - pretty dang cool. Starting to move a long way towards a reasonable... building framework.
Harold (cont'd): In principle, can't get a standard through without having an implementation. Split between platform technical committees and Domain Technical Committee. There has been an imbalance between these 2 groups.
Harold (cont'd): One of the issues... Just because you develop something in Healthcare Domain, does not mean is applicable. So AML - submit to Healthcare or (RFL?). We chose to submit to Healthcare... lots of OMG who care about this. If we were to... could take years. So is our hope to present to Healthcare domain and then work on...
[slide] - OMG Process
Harold: OMG process is opposite of organization of groups like HL7. Only OMG members can participate. But that is theoretical. In our case, open to all who want to submit.
Harold (cont'd): So, initial submission. All got a chance to show... OMG encourages all to get together to work out. Not always work - e.g. UML. Fortunately, now only 1 submission. When final submission gets through, the responses(?) are balloted. Importance - the OMG... once "accepted"... OMG Beta-specification. We will fix... Task force's job is to... get together a final specification. Took a long time. We issued RFP in 2012. This has been going on for a long time. VA, Mayo... are there...
Harold: We got the joint submission. Great help from Deepak Sharma and Jay Lyle and (?). So want to take what we have today and... spec in June 2014.
[slide] AML Profile
Harold: AML Profile... Called for a Constraint Model Profile... and mentioned optional support CTS2. We are proposing we split up additional profiles. When we got into... we saw this was a task into itself. We saw... it was non-trivial.
Harold (cont'd): AOM has a rich, metadata profile. A combination of a work profile and a (?) profile. Want to set this aside at first. I don't expect this to be easy.
[slide] - Initial Submission
Harold: I mention Dave Carlson's work - interesting.
[slide] - AML Submission
Harold: Need to make this available to all. A meta-model... Robert Lario suggested this and it is worth its weight in gold...
[slide] AML Submission
Harold: The one that contributes the most is AOM 1.5. We have discussed with Thomas... is a moving target but he has been able to tweak and is going in the right direction.
Harold (cont'd): We are using UML 2.5 - called "UML Simplified" - the first marginally simplified model out of OMG. Is delightfully straight-forward... if one wants to learn... We used it to drive the Ref Model. CTS2 we've used for... We've been drawing on ADL1.5 spec and using it... models... Some of this is changing, but if we can check that... Also ISO 11179-3...
[slide] - AML Submission Profile
Harold: We take this and map to this... We will pick up set of examples to validate the model. Should have trac-ability from how looks in meta-model to profile.
[slide] - Ref Model Meta-Model; Identify the Sub...
Harold: UML can do lots of delightful things. One of the things we needed was to identify the parts of UML that AML will pay attention to... Class, property... Interesting exercise... Important from AML itself, but not really giving us a... Then AML can't say more about Ref Model then...
[slide] Ref MetaModel
Harold: The UML Model - will be an instance of classifier... Will have a bunch of other stuff... classifiers... This model shows the subset of classifier that is used. One is... name... In UML, you can name the local thing or give it a pathname, but can't give minimal path to make it unique. We needed this... Supposed to go over to these string representations... Most models... But not agreed upon e.g. whether use '-' or '*' for upper level...
Harold (cont'd): Another - is the difference between property that is absent vs. a list... The distinction between not these and an empty list... Is very important...
Terminology code reference...
[slide] Instance Spec
Harold: AOL has to talk about both... In UML, thin definition is close to... Thomas' default value. If new instance created, go and create slot... But all vendors assume default... If nothing there. This is what should be there. So we had to come up with...
[slide] Primitive Type
Harold: The primitive types come from Thomas... The idea here is this is the core set of things... The end nodes... The various data types... Have to be shared between Ref Model and data-type... So this is the stuff that has to be shared.
Harold: In MetaModel, we are dealing with Boolean and... We would get confused, so had to... so will map directly to the types. Based on ISO 8601. Basically the Ref Model Profile is skinny.
[slide] Attribute to Constraints
Harold: How Ref Model Properties relate to actual constraints themselves. We have taken liberty on Thomas' work... We have the luxury of building a... specification whereas Thomas has to remain close to... We have a Ref Model attribute name...
[slide] Class to Constraints
Harold: We have the... Data types are constrained by primitives... enumerations... terminology constraints... This is how these relate...
Harold: So the idea... A couple of issues we are wrestling with... One is templates. Some say is "broken" in UML. Problem is - they are trying to use for generating models, but also want to pass on as hints to implementers, such as when use C++. But don't get binding in exported CML(?). But... we are working through that.
Harold (cont'd): The other is OCL. OMG is doing work on this. If we create a header in UML, then we can't export completely to AOM. But if create... the other problem...
Thomas: It might be cleaner to be... about templates...
Harold: This is a sample template. Type T data type. OK - abstract class, but T is type integer. You can use in this form... or I can feed in abstract T. The idea is to have a template-able element. Makes sense?
Stan: Is template in this case being used as in ADL and Archetype?
Harold: No - is different.
Thomas: An example - if in your Ref Model you can do... like in HL7. In openEHR, you'll see interval. It is common in HL7-land and openEHR-land.
Harold: Right. Has to be handled.
[Harold shows this on screen]
Harold: Have a c-ordered type... Will change to integer... Have a prototype... of mixing... A short-hand way of creating these classes. We have done in AML-constraint model... Because... we just flatten these out... interval with prototype.
[slide] Reference Meta-Model - repeat slide
Harold: So, onto Constraint Meta-Model.
[slide] - Constraint MetaModel
Harold: So, AOM is... model. Leads to spots where lots of verbiage has to... Because optimization taken during implementation...
[slide] AOM 1.5 Archetype
Harold: This has to do with metadata or workflow. Have to discuss where boundary is, but discuss this moved to... MetaModel Profile. Most in here would be applied to any software model. But here is AOM.
Harold (cont'd): Paths... specialization paths... Also, a good model... gives us a concise... But also, if not deal with space, can use...
[slide] AML 1.5 Archetype
Harold: This is where we sit now. Have fold archetype... into archetype... This is where we can put ADL identifier. If others had identifier, could put...
[slide] AOM 1.5 Archetype and AML 1.5 Archetype
Harold: Goal is to hold same information... One thing worth talking about is operational template... We had trouble... We decided operational extent is in eye of beholder... The other - in the case of implementation...
[slide] - AOM 1.5 Constraints
Harold: Constraints - an area where we have done some factoring. Is multiple existence. Some documentation.
[slide] Object Constraints
[slide] Name Object Constraints
Harold: All attribute constraints have the attribute name they are constraining, and... Implement the way Thomas has... split it. Singular attribute constraint references... Zero or more... If has one... then goes in slot. If 2 or more, one goes in slot.
Harold (cont'd): Attribute collection constraint... What type it is. The cardinality - is separate. So, say I am constraining entries, and have 2 (?) entries... We moved the sibling order. Does not make sense when have order.
Jay: Can have collection of members with one constrained by one constraint and other by another constraint.
Harold: Want to view - like lab results from one... but want to say the first has to be sodium and next chlorine... The other we use ADL for... If... showing up... we question whether has to be in Metamodel.
Harold (cont'd): So - this is overriding constraints.
[slide] Primitive Constraints
Harold: At the last minute, I moved this to its own package. We took different approach to possible values... If we go to Thomas' model, you will notice that these are all constraints... Unique... There are cases where... have a list of terminology codes here... But I want good example. If code is Hematocrit, then... Temperature. If code says Kelvin, then 0 to 100. But if Fahrenheit, then 0 to 212 or what have you.
Harold: Here - shown as sets...
Harold: We take fragments... I'm working through ADL 1.5?... The RSA does a good job of validating... There are some holes here... I am taking examples and putting them together...
Harold: So have been going through every sample in ADL 1.5 and... move to profile... Give a whole collection of things.
Harold: Not radically different from what is in ADL 1.5.
[slide] Rules in OCL (pg 1 of 4)
Harold: We have to line the two of these up if want something useful.
[slide] Rules Questions
Harold: Use existing OCL subset... Relationship to ADL... Input and export issues... And mapping and identification issues.
Harold: I put both object and ... because I want to point out we don't have both node identifiers and attributes... It took a number of times to hear what Thomas was saying about...
[slide] AOM 1.5
Harold: AOM talks about where it is used in model... called binding...
[slide] AOM Terminiology Model
Harold: There are several models embedded in here. The relationship between these are not obvious. But it turns out that this is a model of terminology - and description... and a model of how one might...
Harold: Where you constrain terminology in Ref Model. Term Constraint constrains the code reference... These are what must/can be present. And we split off enumeration...
Harold: We tried to represent what was in first class... We have terminology... Owns a set of codes... contains...
Harold: We extracted the core types.
[slide] Services (Namespace)
Harold: Getting from local namespaces to URI's. Don't have time to discuss now. The idea - this is namespace map.
Harold: Have tried to create a minimal interface. Designed so could... onto CTS2 service if person wanted more...
[slide] Services - Associate
Harold: Here is an example. We took this liberty... As we got the de-codes in specialization... We can... a hierarchy of specialization that allows one to say who identifies this node with identifier and... We've tried to factor...
[slide]: Services - value set
[slide] Service (Mapping)
Harold: To set from one code to another so can get from SNOMED to...
[slide] Summary Terminology
Harold: I think Dave Carlson did an excellent job... When it comes to identifier, we tried to make this generic with... so particularly archetype... The idea is to get node-ids generic... And also Dave's notion of enumeration... He factored out what Thomas... Internationalized class... So tools could see if speaking Danish... Two good implementation of this... Dave's and also Michael's did this...
Harold: Also - not sure how we would profile this. Services - meet service requirements... Compatible with CTS2...
[slide] terminology Binding Question
Harold: The Attribute Bindings.
[Harold pulls AOM model onto screen]
Harold: An object has references - a classname, and then has a node id - allows you to get a definition of object and... find where it is used and...
Harold (cont'd): Over here we have the properties, but no terminology identifier here. So if I had a Ref model and relationship between them is "children", there is no way I can... Children means the following relationship... That is a question I want on the table. It is... already Dave has this... (Can attribute to Linda...)
Harold (cont'd): In UML, the challenge you face is the namespace of... So if I have attributed name-type string and others... there is no relationship between these... The way (?) solved it is they concatenated... The reason I mention this - if we are doing constraints on attribute...
[Harold shows figure 12 again]
Harold: There is no guarantee is unique in model. There is no guarantee that... Does this make sense?
Daniel Karlsson: I think at least my understanding of Linda's models is supported by AOM 1.5... Context... the right-most column in her table... I don't remember the name.
Harold: If already supported, then that is great. I wasn't clear on how we got... One thing about UML... UML makes no distinction... Class called C-attribute... Property whose name is... And association-children... In UML, both are properties. Is nice. But it means that I can't present the word children in another language. I can't define it.
Daniel K: I think... there are always intermediary objects corresponding to what would be the attributes that you would see in UML diagram.
Harold: So - the Ref Model has objects that represent the association?
Daniel K: I sent email on...
Thomas: Typically people use a cluster to represent what is under it and domain... There are some cases where people have wanted to rename an attribute... In openEHR, there is a start-time of encounter... Could be used for start-time of other... In Singapore, they wanted to rename or overload start-time with d/c time... so... Can turn one into sodium and one into potassium... But as... the need disappears because have multiplicity of children underneath... But there is that 10%...
Harold: OK. So is relegated to the Metamodel. I need to look at Daniel's email.
[slide] Identifier Question
Harold: We are proposing that scope of identifier is at archetype level. So, gives combination... So can say Archetype 17 is specialized by Archetype 2 : id 42. So gives us... where we can... Gives us almost an identity-space. But with proxies... point to pattern... You give the root a new name, but nodes stay the same. So question is, have the identity of nodes changed? So... id 18 renamed to id-42... We need to discuss.
Harold: Robert did all the work on this... Important to know what is going on when we create model... We are saying I have an instance of class model and I will call patient... I am creating instances of this Metamodel...
Harold (con't): When you have an instance of UML-class, it really does... stereotype. You will see a stereotype called enumerator. So with AML, we are starting and extending class. Has what class has, but also node-id. So create instance of class... will have one more property.
[slide] UML Profiles
Harold: When profile is done, I will have something on my palette. We are creating a new modeling language that extends the UML modeling language.
Harold: We have extended it... all optimal...
[slide] State of the Submission
Harold: That is all I've done on profiles. An injustice to Robert who has done an immense amount of work on this. Robert - say anything on this?
Robert: You've done a good job there. We can add some later, but good for now.
Harold: He has been...
Stan: Sorry - I have to drop off now.
Harold: I am done. Should we continue or stop now.
Stan: No - if Thomas has time now I think it would be useful.
Harold: OK - I have 5 more minutes.
[slide] Initial Submission
Harold: Deepak Sharma... still in a rough state, has more work to do... stereotypes in place.
Harold; What should be presented next week? And who will be willing..? We will be asking for help... The next haul will be an involved one and we will be calling on you. The References...
[slide] Term Binding Question
Robert: The document to OMG was entirely out of model. We have been working on the model... I was happy with model. We have not been managing a document, but have been managing a model. Was an advantage.
Harold; Yes - in short term, takes more time and is painful to manage documentation internally...
Harold (cont'd): So this is where we are now.
[Harold shows documentation]
Harold: So - Thomas - change over to you?
Thomas: Why don't you project the wiki-page.
[slide] CIMI Clinical Data Group Model
Thomas: My thinking was... If you scroll down to the first picture... I hacked the Ref Model of... and added clinical data group. The basic idea is... entry is a context-group. So there is context and data-element. So you could say - the structure of the data is normally the same. The things you could record would always be the same... and you might think you could build archetypes for content... for the context-independent part of content. So the data... the Blood Pressure... Let's have ... that acts as the clinical data group... So the root point of the data structure. So Hematocrit has at least one and maybe other of data group. So... entry adds context... data inside entry... entry-content...
Thomas (cont'd): So scroll down... If look at second row... An archetype of clinical data group... Things that are standard on InterMountainHealth... So if go back to first UML model... Let's make it so can identify these groups... So - Blood Pressure or Hematocrit or patient height... To make it so clinical data groups can't contain each other, then you will need to... I suspect people will say that this is too complicated... Maybe it is...
Thomas (cont'd): 3-type hierarchy... The one in pink is Clinical-Data-Group where have clusters that can't contain each other but can... So the end result is close to the same thing. The screen shots show the blood panel. There is a Hemoglobin, a Red Cell Count, a Hematocrit, a White cell count... So, is just archetypes from left-hand-side. Scroll down - you will see...
Thomas (cont'd): End result is a panel containing a whole bunch of stuff... If go further you can see... I created a bedside panel... If you can read through it all... a Blood Pressure and a Hematocrit... I used Blood Pressure full archetype from openEHR and then... used Bedside template... Hematocrit shown inside mixed panel, and shown in blood panel. Separates into parts and data - two separate lists. Some of you might think "isn't this the same as if we used cluster". Some might think better if clinical-data-group was not a class, but... The question is: How do you make sure that you query correctly for Blood Pressure? So if query for Systolic BP, you are probably trying to query for patient BP. So systolic 140 and range might be to 160... and if you don't have a way to...
Thomas (cont'd): In openEHR, this works because querying an observation vs.... We know that and the data structure we are after. But in the CIMI approach... you also have to make sure you are getting actual and not other, like target. So have to make sure have Entry... Easy to write that query... If you do a query like that, then structural... will... and you will have nailed down... So - does this make sense?
Rahil: With 13606, the entry class has... data or... can specify if is a goal or plan. Can that not help?
Thomas: That could be a good way to make it more precise. Usually is the case that the archetype id tells you everything... But it could be that there is a single archetype used for more than one purpose... and you could rely on... and if all agree on set of terms, etc. I forgot about that in 13606, so I am glad you mentioned it.
Rahil: Another - I discussed this with clinicians. Your example of bedside template... We've got bedside BP... and other like Hematocrit. If you think of way this information will be gathered... The BP will be observed at bedside. The Hematocrit will be the result of sample sent... Will be linked. So whether it is the correct way to represent? Why not use a Link? Will not get Hematocrit at bedside?
Thomas: You will sometimes get bedside, according to Stan. All it is is... can figure out by fingerstick at bedside. I don't know if this is done. My experience is... Maybe we have to check in Brussels. He is not talking about waiting for... The model is predicated on whether person gets data at same time. We... at openEHR. IMH - a whole bunch of hospitals and clinical locations... We should check whether is a real thing that can occur.
Rahil: Yes - I was wondering... the model you showed. Because it is so close to original representation. If we take the model out... whether it has added anything extra, and whether Stan's Use case at bedside... whether we can achieve that. He is talking about User-interface... Could look different from... The ability to record Hematocrit... does not need to be... Could still be a Link to another Hematocrit-entry... Is just different. I was wondering... I don't see the point of why we are doing this. There is a difference between...
Thomas: These Use cases have been discussed for a long time. You see in IMH more that in openEHR. Analyte on its own finger-stick... They have stated... cannot have Hemoglobin inside Hematocrit...
Thomas (cont'd): I would not build a model like this, but this has been to... the requirements we've discussed over the last few months. The one on the screen - have to do to satisfy the bullet points. I am trying to solve what I understand to be the requirements. Now I could have done something wrong here. People have to read through. But this is my best understanding. The main utility of Ref Model is... model whose archetypes will be converted into... openEHR and converted out... FHIR and... So might make more sense for explicit classes. So - this is meant to be an attempt to express... requirements. Joey or Patrick on the line?
Harold: Is this model reasonably close to what Stan is trying to do? Actually - we are running overtime.
Rahil: Can discuss at Brussels meeting. Will most of you be there?
Thomas: I will.
Harold: I will.
Rahil: I will be as well.