第二节 SNOMED CT逻辑设计
一、概述
SNOMED CT目前(2019年1月国际发布版)包括大约349 548条概念(concepts)、超过90万条临床概念相关的描述(descriptions),和超过280万条进一步描述概念的关系(relationships)。
SNOMED CT的核心构成为:概念表、描述表和关系表。图5-3反映了各个表的组成和逻辑关系。
图5-3 SNOMED CT的逻辑模型
SNOMED CT逻辑模型[20]提供了SNOMED CT的基本结构,并指定了如何可以在实施机构中管理各组件的方法,以满足各种诊疗和二次利用的需求。
SNOMED CT逻辑模型定义了每种SNOMED CT核心组件(component)和衍生物(derivative)进行关联和表达的方式。SNOMED CT中的核心构成要素类型是概念、描述和关系。因此,逻辑模型指定了表示临床意义的结构化概念、指向这些概念的描述,以及概念之间的关系。
二、概念
概念作为SNOMED CT的核心部分。每个SNOMED CT概念都代表一种独特的临床含义,并且具有唯一的数字标识符来标识。该标识符明确地、唯一地指向一个概念,用于计算机读取和存储,其本身不具备人类可理解的意义。
SNOMED CT的概念是一组标识符,可通过与完全指定名称(fully specified name,FSN)相关联,标识符和临床概念的含义之间的联系是永久的、不可改变的。概念由概念ID唯一标识,例如SCTID:22298006指心肌梗死。
(一)根概念和顶层概念
SNOMED CT中采用复合层级结构(polyhierarchy)来组织概念,即一个概念可以有两个或多个父概念。主要通过子类型关系构建概念间层级关系。|SNOMED CT concep t|是SNOMED CT的根概念,是所有其他概念超类型(super t ype),所有其他概念都是根概念的子类型。
根概念的直接子类型被称为顶层概念。 这些概念用于命名层级结构的主要分类。SNOMED CT包含19个顶层概念,见表5-3。
表5-3 SNOMED CT顶层概念
(二)复合层级结构
复合层级结构,即层级结构中每个节点拥有一个或多个父节点。例如,|Pulmonary tuberculosis(disorder)|拥有三个父节点,分别是|Tuberculosis of respiratory system|(disorder)、|Pulmonary disease caused by Mycobacteria(disorder)|和|Pneumonitis(disorder)。
通过这种层级结构定义不同粒度的概念,既可以满足临床实际应用,同时也可灵活支撑医疗大数据各种应用场景,例如在队列研究中,构建心脏病队列,需要收集所有心脏病相关的病例数据,利用SNOMED CT中心脏病层级关系不仅可以收集包含“心脏疾病”的病例数据,同时包含其子概念“心律失常”“纤维性颤动”“房颤”及“持续性房颤”的病例数据均可以收集到,因为上述4个子概念的其中一个父概念是“心脏疾病”。
与分类体系(如ICD-10)的简单层级结构(mono-hierarchy)不同的是,SNOMED CT采用复合层级结构(Poly-hierarchy),每个概念可以同时有多个父概念,图5-4中“心肌梗死”有4个父概念,分别为“缺血性心脏病”“心肌病”“心肌坏死”“解剖部位坏死”。这种复合层级结构更加符合医学逻辑,能够更好地实现对医学含义的存储及二次利用。也就是说,可以实现采用不同方式检索同一概念,例如本例中,当数据库中的数据已经被SNOMED CT这样的复合层级结构术语体系标记后,检索“缺血性心脏病”“心肌病”“心肌坏死”“解剖部位坏死”其中任何一个疾病时,都能包含“心肌梗死”所对应的病例数据。
图5-4 SNOMED CT复合层级结构
(三)SNOMED CT概念的覆盖程度及颗粒度
正如美国哥伦比亚大学James Cimino教授发表的文章[1]中所述,构建医学术语体系应该注意12条准则最重要的一条就是术语体系内容的覆盖程度。已有多篇文章对SNOMED CT的内容覆盖做了各方面的研究[21-23]。现在,SNOMED CT已经拥有覆盖19个不同领域超过34万的概念,如表5-4所示。总体来说,349 548个概念,907 283个描述,2 876 521个关系。平均每个概念拥有2.6个描述(同义词)和8.23个关系。可见SNOMED CT在医学术语方面的覆盖程度,以及对每个概念定义的阐述详细程度是非常大的。概念个数最多的是在Clinical finding层级结构下,共有超过112 000个概念。
表5-4 SNOMED CT概念、描述、关系在各层级结构分布表(数据来自SNOMED CT International Release 2019年1月版本)
以“高脂血症”为例,如图5-5可见,SNOMED CT中高脂血症的各级子概念有多达50多个。再如表5-5所示,ICD-10国际版本中与“Atrial Fibrillation”相关有三个编码,“Coronary arteriosclerosis”仅有1个编码;SNOMED CT国际版中,分别有12个和21个。SNOMED CT中这样详细地对医学概念进行描述的好处在于:①使得对各种临床细节的描述成为可能;②当与ICD这样的分类体系进行映射后,可以大大地丰富其他分类体系的功能使用。
图5-5 SNOMED CT中高脂血症各级子概念一览
表5-5 SNOMED CT和ICD-10在概念颗粒度的比较
三、描述
每个SNOMED CT概念均由一组同义词(医学术语)对其进行描述。描述表用来指定人类可读的概念形式和概念之间的关系。对于同一个医学概念,可能存在几个甚至十几个与之对应的术语,而所有的概念至少有一个完全指定名称和至少一个同义词(synonym,Syn),FSN与Syn是描述中术语的两种主要类型。其中,完全指定名称是一个明确描述概念的短语,是概念的权威含义。虽然FSN不一定在临床记录中显示,但是在相同的、通用字词或短语指向不同概念时,FSN对于消除歧义非常有用。在某一种语言或方言中,每个概念只能拥有一个FSN。同义词表示可用于显示或选择的术语,是被临床医生广泛用于指代某概念的单词或短语,在用户界面中被用于搜索、筛选和展示。一个概念可能有几个同义词。这一点为SNOMED CT的用户使用具有特定临床意义的、个人倾向性的术语提供了便利。一个概念可以有多个同义词,两个概念可以有相同的同义词,对同义词的解释取决于概念的标识符。
在指定的语言、方言或使用环境中,每个概念都有且仅有一个同义词,被标记为首选的(preferred),并且也是临床医生常用来命名该概念的短语,其他的同义词被标记为可接受的(acceptable),如图5-6。
图5-6 SNOMED CT单一概念的描述示例
四、关系
关系用来连接SNOMED CT中的概念。两个概念由第三个概念,即“关系类型”进行连接,表示由“源概念”到“目标概念”的联系。在SNOMED CT中,有许多关系类型,每个关系都表达了一个概念的定义特征,即描述这个概念所应具备的必要条件。因此,一个概念可能是另一个概念的子类型,也可能有一个特定的属性,其值由另一个概念提供。
所有的关系类型可以分为两大类,即定义关系和非定义关系。
(一)定义关系
定义关系(definitional relationship)用来描述源概念所“必定”拥有的“特征”或“属性”[3],它所包含关系的类型分为子类型关系(subtype relationships)和属性关系(attribute relationships),如图5-7。
图5-7 定义关系示例
1.子类型关系
子类型关系是应用最广泛的关系类型。子类型关系使用|is a|来表达,因此也被认为是|is a|关系。几乎所有有效的SNOMEDCT概念都至少是一种|is a|关系的源概念。唯一例外的是,根概念|SNOMED CT Concept|是最抽象的概念,|is a|关系表明源概念是目标概念的亚型。
如果两个概念通过单一|is a|关系直接链接,源概念就可以被认为是目标概念的子类型。如果两个概念通过多个|is a|关系链接,则源概念被认为是目标概念的派生子类型,即|is a|关系的源概念被目标概念所包含,|is a|关系的目标概念则包含源概念。
每一个概念都拥有 |is a| 关系,并可以关联到其他几个概念(例如一个概念可能有多个父类型概念)。因此,认为SNOMED CT的层级并不仅是一个简单的层级结构,而是一个复合层级结构。通过|is a| 关系构成了SNOMED CT的层级结构,因此该关系也被称为层级关系。|is a|关系中的源概念拥有比目标概念更详细的临床意义。这就意味着,概念的颗粒度(临床细节水平)随着层级的深度增加而变得更加详细。
子类型关系提供了将概念相互关联的主要语义层次结构,子类型关系使用|is a|来表达。除根概念外,所有有效概念(active concept)都与一个或多个概念具有子类型关系。每一个子类型关系都表明一个概念是另一个概念的子概念。SNOMED CT中每个顶层概念都是复杂的复合层级结构,概念通过|is a|关系与至少一个顶层概念建立关联,即所有其他概念至少是一个顶层概念的子类。随着层级结构的细分,概念越来越具体(图5-8)。
图5-8 SNOMED CT层级结构
2.属性关系
通过把源概念及其特征相关联,属性关系可以对源概念进行明确定义。概念的特征(即概念的属性)可以通过属性类型和属性值来界定。
例如概念|下肢骨折|的关系定义如图5-9所示。属性关系中的|相关形态学(associated morpholo-gy)|和|临床发现位置(finding site)|用于把源概念|下肢骨折|和目标概念|骨折|(形态学异常)、|下肢骨结构|分别关联起来。
|is a|关系可以用于定义所有的概念,而属性关系的适用性仅限于已定义的域(domain)和值集(range)。域是指那些可以作为属性关系类型的源概念;值集是指那些可以作为属性的目标的概念。规范的域和值集能够确保定义的一致性,也可用于指向附加语义关系,以提供可靠的、基于语义的复合意义检索。
如图5-10所示错误关系示例,第一个样例中,|身体结构|不符合|致病因子|域的约束,不可以作为|致病因子|的域。第二个样例,|形态学异常|不符合|致病因子|的值集约束,不能作为|致病因子|的值集。
属性关系是对概念定义的细化,通过添加属性关系使概念定义更加完整,通常是对顶层概念设定属 性类型,对特定顶层概念设定的属性类型适用于其所有子概念,SNOMED CT中包含属性类型100余种,主要用于对以下几个顶层概念及其子概念定义:①临床表现(clinical finding);②操作(procedure);③标本(specimen);④身体结构(body structure);⑤药物或生物制品(pharmaceutical/biologic product);⑥具有明确上下文关系的情况(situation with explicit context);⑦事件(event);⑧物理性实体(physical object)。
图5-9 关系定义示例
图5-10 错误关系示例
(二)非定义关系
非定义关系用来描述源概念所“可能”拥有的“特征”或“属性”,包括:修饰关系、时间关系和附属关系[3]。在SNOMED CT最新的版本中,非定义关系已经失效。
五、SNOMED CT表达式
(一)概述
SNOMED CT表达式[24]使SNOMED CT可以在记录中捕获更广泛的临床含义,并支持使用SNOMED CT表达式的软件系统对不同的临床信息进行记录、检索、计算和比较。表达式是一个或多个概念标识符的结构化组合,用于通过特定规则表示临床概念或临床含义。表达临床含义可以使用两种不同的方式,即前组表达式和后组表达式。
前组表达式是使用单个SNOMED CT 概念对临床含义进行描述;后组表达式根据表达式规则,使用多个SNOMED CT概念组合来表示临床含义。无论前组还是后组表达式均使用SNOMED CT复合语法表示,是一种轻量级语法。
后组表达式可以表述更详细的临床细节,示例:概念|肺炎球菌肺炎|的|临床表现部位|为|肺结构|,此时如需要记录更详细的临床细节,|临床发现部位|为|肺叶|,这时可以将|肺结构|细化为|肺叶|,并通过后组的形式完成信息记录(|肺炎球菌肺炎|∶临床发现部位|=|肺叶|)。后组表达式大大增加了SNOMEDCT可表达的临床细节的深度及灵活性,可以在不单独增加概念的情况下表达每一种可能疾病包括的每一个可能特点。基于SNOMED CT概念模型,计算机将对来自不同人员、组织的相似的或相同的表达式进行识别和比较。
(二)前组表达式
前组表达式表示在SNOMED CT中预先定义的单个概念的表达式。除了唯一的概念标识符和描述之外,每个概念还具有一个正式的逻辑定义,由一组与其他概念的定义关系表示。图5-11显示了用于记录|胫骨骨折|的前组表达式,它说明表达式可以用一个标识符来表示,伴有或不伴有人类可读术语。
图5-11 胫骨骨折前组表达式
(三)后组表达式
包含两个或更多概念标识符的表达式称为后组表达式。后组表达式结合了多个概念,并允许将更多细节添加到单个概念所表达的含义中。后组表达式不仅是概念标识符的列表,它遵循一组规则,通过规则内域(domain)和值集(range)定义SNOMED CT概念的方式(详见本章第三节)。
示例:“腹腔镜紧急阑尾切除术”的后组表达式
尽管SNOMEDCT包含了概念|腹腔镜阑尾切除|,但是也可以使用下面的后组表达式来表达这个临床短语。·|阑尾切除术|:|优先级|=|紧急,使用接入设备|=|腹腔镜|
这个后组表达式与前组表达式|腹腔镜紧急阑尾切除术|的含义完全相同。
前、后组表达式具有相同的含义,可以通过逻辑推理计算出来,因为:
|腹腔镜紧急阑尾切除术|是|阑尾切除术|的充分定义子类。
这两个概念的定义属性之间的唯一区别是增加了以下两个属性:
|优先级|=|紧急|
|使用接入设备|=|腹腔镜|
后组表达式的真正优势在于,即使SNOMED CT中没有精确的前组概念,SNOMED CT也能表达临床含义。