Proposal for linguistic convention for referencing coded terms

Problem statement

In the specifications of IHTSDO, and indeed in any other documents talking about terminologies, including academic papers, as far as I know, there is no standard way of referring to coded terms in a way that is unambiguous. In some IHTSDO documents there is a convention of using bar characters ('|'). So far I have not seen any explicit convention for this, so I would like to propose a) that a convention be written and documented and b) an actual convention.

Why is this important? Because it is often difficult in written texts, including specifications and papers, to know whether the author is using words, e.g. 'Discharge Summary' to mean the general notion in the real world, or a coded 'concept' in some terminology.

Proposal

Based on what I have seen previously in SNOMED related documents, I would like to suggest a convention such as the following:

reference to

syntax

example

code and term
(terminology already known in context)

code|term|

J01|Acute sinusitis| (in ICD10)
36971009|sinusitis| (in Snomed CT)

term only
(terminology already known in context)

|term|

|Acute sinusitis|, |sinusitis|

code, term and terminology

terminology_id::code|term|

ICD10::J01|Acute sinusitis|
SNOMEDCT::36971009|sinusitis|

code, term and terminology, including release

terminology_id(release_id)::code|term|


SNOMEDCT(20090731)::36971009|sinusitis|

term and terminology
(with or without release)

terminology_id(release_id)::|term|

ICD10::|Acute sinusitis|
SNOMEDCT(20090731)::|sinusitis|

term within hierarchy

|parent/parent/ ..... /term|
-- or maybe '^' or '>' might be safer than '/'


|sinusitus / sinusitus frontal|
|Reference set / Language|
SNOMEDCT::|Reference set / Language|
etc

terminology and code

terminology_id(release_id)::code

SNOMEDCT::36971009
SNOMEDCT(20090731)::36971009

This syntax allows us to write sentences like:

"The following patient transfer concepts can be used in the national discharge summary content framework: |discharge summary|, |referral|, etc."

It also allows us to do useful things like compare two such strings and determine if they are from the same terminology, but different releases. This brings us to the thorny issue of human-readable terminology identifiers.

Syntax Definition

A set of production rules for the above syntax is:

ref              ::= terminology_part code_part
                     | code_part

terminology_part ::= terminology_id release_part '::'

release_part     ::= -- nothing is ok
                     | '(' release_id ')'

code_part        ::= concept_id term_part
                     | concept_id
                     | term_part

term_part        ::= '|' text '|'