Difference between revisions of "TerminologyReport"

(Terminology Association)
Line 25: Line 25:
 
===Terminology Association===
 
===Terminology Association===
 
#terminologyAssociation[@code][@codeSystem] where
 
#terminologyAssociation[@code][@codeSystem] where
**the association is based on dataset//concept and the @displayName differs from the codeSystem or if it is a local codeSystem available only in a local valueSet, then if it differs from the name in that local valueSet
+
#*the association is based on dataset//concept and the @displayName differs from the codeSystem or if it is a local codeSystem available only in a local valueSet, then if it differs from the name in that local valueSet
**the association is based on dataset//concept/conceptList/concept and the @displayName differs from the corresponding code in the valueSet that the conceptList is associated with, or if the conceptList doesn't have an association, then all local valueSets
+
#*the association is based on dataset//concept/conceptList/concept and the @displayName differs from the corresponding code in the valueSet that the conceptList is associated with, or if the conceptList doesn't have an association, then all local valueSets
 
#If a terminologyAssociation connects to a dataset//concept then behavior matches a valueSet:  
 
#If a terminologyAssociation connects to a dataset//concept then behavior matches a valueSet:  
**Get codeSystem names (e.g. SNOMED uses "http://[server]/terminology/snomed/getConcept/6797001")
+
#*Get codeSystem names (e.g. SNOMED uses "http://[server]/terminology/snomed/getConcept/6797001")
**If I can get at least one lower-case match, all is well
+
#*If I can get at least one lower-case match, all is well
**If there is none then for SNOMED the active fsn is returned or the only name in other cases (eg. LOINC) including status (if available)
+
#*If there is none then for SNOMED the active fsn is returned or the only name in other cases (eg. LOINC) including status (if available)
  
 
If the terminologyAssociation is to a dataset//conceptList/concept:
 
If the terminologyAssociation is to a dataset//conceptList/concept:

Revision as of 13:43, 21 April 2017

Terminology Report

It is possible to initiate a Terminology Report to check the terminologies used in a project. The report detects whether a coded concept in a value set has an illegal display name or is deprecated and should no longer be used.

For projects with large value sets this can be a lengthy process.

The check can be performed calling the Terminology Report service, e.g. on the ART-DECOR main server at https://art-decor.org/decor/services/TerminologyReport.

How to perform a Terminology Check

A project must be chosen.

The report type determines the type of report:

  • overview will you both valuesets and terminology associations as described below
  • valuesets will give you, as much as possible, differences between display names in the value set and the original display name from the codesystem. Look for @originalDisplayName in the result.
  • terminologyassociations will give you, as much as possible, differences between display names in the terminology associations and the display name in the value set (if it links to a dataset conceptList/concept and the conceptList binds to a value set) or codesystem (if it links to a dataset concept). This option gives you best results when the valueSets are correct.

You can filter the report by specifying one or more code systems, multiple separate with a space in between, e.g. for SNOMED-CT and LOINC "2.16.840.1.113883.6.96 2.16.840.1.113883.6.1".

You can specify whether to show the report or to download it.

What is performed?

The following checks are performed.

Value Sets

  1. Value Sets with concepts/exceptions using a different displayName than the original codeSystem (All active names SNOMED, others usually have only one
  2. valueSet with concepts/exceptions using deprecated codes (if code system has status information at all)

Terminology Association

  1. terminologyAssociation[@code][@codeSystem] where
    • the association is based on dataset//concept and the @displayName differs from the codeSystem or if it is a local codeSystem available only in a local valueSet, then if it differs from the name in that local valueSet
    • the association is based on dataset//concept/conceptList/concept and the @displayName differs from the corresponding code in the valueSet that the conceptList is associated with, or if the conceptList doesn't have an association, then all local valueSets
  2. If a terminologyAssociation connects to a dataset//concept then behavior matches a valueSet:
    • Get codeSystem names (e.g. SNOMED uses "http://[server]/terminology/snomed/getConcept/6797001")
    • If I can get at least one lower-case match, all is well
    • If there is none then for SNOMED the active fsn is returned or the only name in other cases (eg. LOINC) including status (if available)

If the terminologyAssociation is to a dataset//conceptList/concept:

  • Search all local valueSets for the code+codeSystem
  • If I can get at least one lower-case match, all is well
  • If there is none, return all distinct matches from the valueSets