Hi Thomas,

These constraints are essentially queries over the snomed definitional content 
(ie the Relationships), not queries over external data (ie not EHRs).  The 
intent is to identify sets of snomed concepts that satisfy the constraint 
criteria. These sets could be subsequently used to join against/filter records 
in an EHR/EMR.

Work is ongoing for a full featured query language to address this larger 
problem, but the expression constraint language can be used to great effect 
when combined with SQL or other database tech to query health records.


Sent from my iPhone

On 29 Sep 2015, at 11:11 PM, Thomas Beale 

The latest version of the SNOMED CT constraint language 
<http://snomed.org/expressionconstraint> proposes expressions like the 

Section 6.3
To find those capsules  that have a strength between 500 and 800 mg 
(inclusive), the following expression  constraint  may be used:

<  27658006 |amoxicillin| :
    411116001 |has  dose form| = <<  385049006 | capsule|,
    { 111115 |has basis of strength| =  ( 111115 |amoxicillin only| :
        111115 |strength magnitude| >=  #500, 111115 |strength magnitude| <= 
        111115 |strength unit| =  258684004 |mg|)}

The purpose of this is apparently as a query to find instances of Amoxycillin 
recorded somewhere - presumably in EHRs, or some kind of prescriptions 
database? However, the document talks of executing queries over a 'Substrate', 
defined as 'The SNOMED CT content over which an expression constraint is 
evaluated or a query is executed.'.

Elsewhere (p12) it says:

Please  note  that  the  substrate  over which  the  expression  constraint  is 
evaluated is  not  explicitly defined within the expression constraint, and 
must therefore be established by some other means. By  default,  the  assumed  
substrate  is the  set of  active  components  from  the  snapshot release  (in 
distribution normal form) of the SNOMED CT versioned edition currently loaded 
into the given tool.

It is also not clear what the query really means - is it a query for 
Amoxycillin that has been prescribed for a specific patient? For any patient in 
some cohort? Or for a medication order that has been suspended, postponed, or 

More generally, I am not clear how the one language is intended to be used 
across SNOMED CT itself (e.g. to generate intentional ref sets) and also across 
instance data. If it's the former, it can only be concept-based; if the latter, 
the query won't correspond to whatever information model is in use for the data.

How would it be used with data based on (for example) the openEHR medication 
item archetype in the UK clinical models 
CKM<http://www.clinicalmodels.org.uk/ckm/>, shown below?


The recommendations in section 7.5 for executing the queries seem to imply that 
they are for evaluation against SNOMED CT.

There are various other oddities, but I'll leave them for later.

if anyone who is working with this can clarify, it would be most appreciated.

- thomas
openEHR-technical mailing list
openEHR-technical mailing list

Reply via email to