Page tree

StatusIn PROD
Version

1.0

Descriptions:

Termdescription typeLanguage/acceptabilityLanguage/acceptabilityCase significance

[Interpretation] [range] of [body structure] (finding)

FSNus:Pgb:Pci

[Interpretation] [range] of [body structure]

SYNus:Pgb:Pci


Concept model:

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:


Link to the misaligned concept report:

https://docs.google.com/spreadsheets/d/1rnUThBzTYkI9qKI2KkoVlhOvDGe_dMP720_R2r4LeeU/edit#gid=0

Rules for description generation:

  1. Apply General rules for generating descriptions for templates;
  2. Apply Enhancements for the Template Language;

JIRA ticket for implementation:

QI-282 - Getting issue details... STATUS

INFRA-3766 - Getting issue details... STATUS

26 Comments

  1. Yongsheng Gao , could you please create the template language for this?

  2. 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

    1. Thanks Yongsheng Gao, I'll look into that tomorrow.   Cheers, Peter

  3. 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 

    1. 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!

      1. 445505000 |Contracture of joint of spine (disorder)|

        203578000 |Plantar flexion contracture of tarsometatarsal joint (disorder)|

        1. 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.


          1. Peter G. Williams 612 mismatches is larger than the whole subhierarchy.  The number doesn't jibe with the image either. Can you elucidate?  

            1. 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?

  4. 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. 

  5. 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. 

  6. 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?

  7. 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.

  8. 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

  9. 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?

    1. 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 ?

      1. Oh it's already optional in the template language, just not in the table.

        1. Peter G. Williams ,

          That's where I was heading so I agree with you.

          1. 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.

  10. 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. 

    1. Yongsheng Gao ,

      Of course you are correct.  While the HAS INTERPRETATION may be optional, the RG needs to be 1..*.


  11. 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]] }

    1. 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.

      1. 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? 

        1. 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. 

          1. That's great - thanks for the clarification Yongsheng Gao