Descriptions:
Term | description type | Language/acceptability | Language/acceptability | Case significance |
---|---|---|---|---|
[Interpretation] [range] of [body structure] (finding) | FSN | us:P | gb:P | ci |
[Interpretation] [range] of [body structure] | SYN | us:P | gb:P | ci |
Concept model:
Attribute Cardinality | Attribute | Value | Role group cardinality |
---|---|---|---|
1..1 | N/A | ||
1..1 | [body structure] << 785818007 |Structure of joint region (body structure)| MINUS << 39352004 |Joint structure (body structure)| | 1..* | |
1..1 | 1..* | ||
0..1 | [Interpretation] < 260245000 |Findings values (qualifier value)| |
Definition status:
900000000000073002 |Defined (core metadata concept)|
Applies to:
<< 298180004 |Finding of range of joint movement (finding)| MINUS ( << 7890003 |Contracture of joint (disorder)| OR << 788453008 |Hypermobility of joint (finding)| )
Template language:
[[~1..*]] { 363698007 |Finding site (attribute)| = [[+id(<< 785818007 |Structure of joint region (body structure)| MINUS << 39352004 |Joint structure (body structure)| ) ]] },
[[~1..* @rolegroup]] {
[[~1..1]] 363714003 |Interprets (attribute)| = [[ +id(<< 364564000 |Range of joint movement (observable entity)| ) @range]],
[[~0..1]] 363713009 |Has interpretation (attribute)| = [[ +id ( << 260245000 |Findings values (qualifier value)| ) @interpretation]] }
Link to the misaligned concept report:
https://docs.google.com/spreadsheets/d/1rnUThBzTYkI9qKI2KkoVlhOvDGe_dMP720_R2r4LeeU/edit#gid=0
Rules for description generation:
- Apply General rules for generating descriptions for templates;
- Apply Enhancements for the Template Language;
26 Comments
Jim Case
Yongsheng Gao , could you please create the template language for this?
Yongsheng Gao
Hi Jim Case , I added the template language and tested in the reporting platform. Surprisedly, it did not return any misalignments. I checked some concepts and they should have been reported as misalignments. For example, 7890003 |Contracture of joint (disorder)|. It has additional attribute Associated morphology. So, all subconcepts of |Contracture of joint| should be reported as misaligned to this template.
Peter G. Williams Could you please check the reporting platform? It looks like the alignment has included partial matches. We need to report partial matches as misalignment.
Cheers,
Yong
Peter G. Williams
Thanks Yongsheng Gao, I'll look into that tomorrow. Cheers, Peter
Jim Case
Yongsheng Gao , thanks for adding this. I had the same issue with the Contracture of joint template, where no concepts were identified as misaligned although I knew there were unresolved issues. Look forward to Peter G. Williams analysis
Peter G. Williams
Yes, can you give me an example of a concept that should fail to align, Jim Case so that I can run it through debug? Thanks!
Jim Case
445505000 |Contracture of joint of spine (disorder)|
203578000 |Plantar flexion contracture of tarsometatarsal joint (disorder)|
Peter G. Williams
Ok thanks. First thing I came across when debugging is that "Has interpretation" && "Interprets" are currently part of our criteria for "Complex" and so those have all been excluded. If you run the compliance report and tick the box for "include complex" then you get 612 mismatches. So that makes a lot more sense!
In the development version, I'm adding the counts for the various reasons that concepts get included / excluded into the 2nd tab, so that will make it more obvious in the future that when "Concepts excluded due to complexity = <the entire subhierarchy>" then that's what's going on.
Jim Case
Peter G. Williams 612 mismatches is larger than the whole subhierarchy. The number doesn't jibe with the image either. Can you elucidate?
Peter G. Williams
You're keeping me on my toes Jim!
The screenshot was taken from Development where the new summary code is available. I assume there are fewer concepts there because recent authoring work has been done in Production, hence 530.
Template compliance is performed against the inferred view - since concepts can align even with no stated concepts if their parents are correctly modelled and we copy the inferred modelling into the stated form as part of Normalisation. The inferred view shows this subhierarchy actually contains 642 concepts in production.
Are we good?
Yongsheng Gao
Jim Case and Peter G. Williams , I have updated the domain as << 298180004 |Finding of range of joint movement (finding)| MINUS << 7890003 |Contracture of joint (disorder)|. The new domain excludes contracture of joint disorders. This would reduce over 100 misalignments. However, it reports no misalignment. Have you resolve the issue related to "MINUS" for range exclusion? The issue might also be related to how the role group 0 for single attribute of finding site is handled in the reporting platform.
Yongsheng Gao
Jim Case , I have made some changes to description pattern and changed parent concept to |Clinical finding| since you have addressed intermediate primitive concept. The domain still needs the MINUS function to avoid returning the contracture of joints as misalignments. The template language is updated accordingly. I will test the misalignment report when the UAT for reporting platform is up and running.
Jim Case
Thanks Yongsheng Gao. One area that will show up in the misaligned concepts report are the O/E concepts that are out of scope as they will eventually be inactivated. Peter G. Williams,is it possible to exclude those from the misaligned concept report? I know that the MINUS won't be available until after June 17, but can we exclude specific types of concepts in the template language?
Peter G. Williams
Sure Jim Case apologies this took me a while to get to. I've posted an updated report in QI-283. Actually it worked out well to just exclude << 271880003 |On examination - specified examination finding (finding)| from the domain, so I was able to run that in production now that the full ECL support is available.
Peter G. Williams
The code we run to determine if a concept aligns to a template does care about the difference between ungrouped and self grouped and this template is not picking up any concepts - I think - because finding site is self grouped. I'll make changes to the template language and table above here.
Example:
FYI Jim Case Yongsheng Gao
Jim Case
Peter G. Williams , Yongsheng Gao
Given the restrictions on the "Applies to:" domain for this template. What is the need for the additional INTERPRETS relationship?
Peter G. Williams
This clause seems to pick up and allow for 2 concepts:
830146005 |Passive movement of joint greater than active movement of joint (finding)|
430135002 |Decreased range of cervical spine flexion and extension (finding)| and not even that one due to the presence of a 'Has Interpretation'.
What would you say about removing the single attribute, making the Has Interpretation optional and then making the whole group Zero to Many ?
Peter G. Williams
Oh it's already optional in the template language, just not in the table.
Jim Case
Peter G. Williams ,
That's where I was heading so I agree with you.
Peter G. Williams
Done!
Separate concern - in the "Applies To" of << 298180004 |Finding of range of joint movement (finding)| MINUS ( << 7890003 |Contracture of joint (disorder)| OR << 271880003 |On examination - specified examination finding (finding)| OR << 788453008 |Hypermobility of joint (finding)| )
271880003 |On examination - specified examination finding (finding)| is now inactive in the daily build so I've removed it there.
Yongsheng Gao
Hi Jim Case Peter G. Williams We should not change the role group cardinality to 0..* because all concepts are defined by the interpretation of a joint region. It is also a conflict between attribute cardinality and role group cardinality. How can we require an 'interpretation' attribute to be always present but its role group is optional? As a result of this change, the template will cover all concepts modelled by 'structure of joint region'. It means any interpretation of joint region would be conformed to this template. It does not restrict to the 'range of joint movement' anymore. Then, the domain is much broader for this template.
The template model is a specification that aligned with the requirement of the domain. For example, 'fracture of bone' template specifies bone structure and fracture morphology as 'required' rather than 'optional' in a template. This is a similar requirement for clinical finding templates.
Jim Case
Yongsheng Gao ,
Of course you are correct. While the HAS INTERPRETATION may be optional, the RG needs to be 1..*.
Darryn McGaw
Hi Yongsheng Gao,
Thanks to Peter G. Williams, we have noticed the role group cardinality for 363698007 |Finding site (attribute)| is 1..* in the Concept Model but 1..1 in the Template Language. I have changed the Template Language to be like the Concept Model, i.e. a cardinality of 1..*. I believe this is correct because, using the below ECL, we can retrieve Concepts that have multiple Finding sites.
ECL:
(<< 298180004 |Finding of range of joint movement (finding)| : 363714003 |Interprets (attribute)| =<< 364564000 |Range of joint movement (observable entity)| , [2..*] 363698007 |Finding site (attribute)| = (<< 785818007 |Structure of joint region (body structure)| MINUS << 39352004 |Joint structure (body structure)| ) ) MINUS ( << 7890003 |Contracture of joint (disorder)| OR << 788453008 |Hypermobility of joint (finding)| )
Also, for auditing reasons, the Template Language was:
404684003 |Clinical finding (finding)| :
[[~1..1]] { 363698007 |Finding site (attribute)| = [[+id(<< 785818007 |Structure of joint region (body structure)| MINUS << 39352004 |Joint structure (body structure)| ) ]] },
[[~1..* @rolegroup]] {
[[~1..1]] 363714003 |Interprets (attribute)| = [[ +id(<< 364564000 |Range of joint movement (observable entity)| ) @range]],
[[~0..1]] 363713009 |Has interpretation (attribute)| = [[ +id ( << 260245000 |Findings values (qualifier value)| ) @interpretation]] }
However, I have changed it to be:
404684003 |Clinical finding (finding)| :
[[~1..*]] { 363698007 |Finding site (attribute)| = [[+id(<< 785818007 |Structure of joint region (body structure)| MINUS << 39352004 |Joint structure (body structure)| ) ]] },
[[~1..* @rolegroup]] {
[[~1..1]] 363714003 |Interprets (attribute)| = [[ +id(<< 364564000 |Range of joint movement (observable entity)| ) @range]],
[[~0..1]] 363713009 |Has interpretation (attribute)| = [[ +id ( << 260245000 |Findings values (qualifier value)| ) @interpretation]] }
Yongsheng Gao
Hi Darryn McGaw, thanks for the update of cardinality from 1..1 to 1..*. Because the query only returned three bilateral concepts, we can extend the cardinality. Otherwise, it should remain as 1..1 to capture incorrect model for concepts that are not bilateral findings.
Darryn McGaw
Hi Yongsheng Gao , I'm sorry but I do not quite understand what you mean. Do you mean you are happy for the cardinality to be 1..* in this instance because three bilateral concepts are returned, however, if these concepts were not returned then you would opt for the 1..1 cardinality?
Yongsheng Gao
Hi Darryn McGaw, yes. we should allow the 1..* for the coverage of bilateral concepts in this case. We will implement the enhanced template language later this year. It will allow us to specify what value should be changed or preserved for multiple role groups. For now, we have to live with the cardinality that is either restrict 1..1 or loose 1..*. None of these cardinalities is ideal without specifying additional restrictions on attributes/values.
Darryn McGaw
That's great - thanks for the clarification Yongsheng Gao.