CDA必须符合HL7 RIM模型规范编写
1.概述
RIM是静态的卫生信息模型,它合成了HL7各工作组和国际会员的关于信息的一致同意的观点。它是所有HL7V3协议规范标准最根本的来源。
RIM是V3开发过程的关键构件。它是所有V3开发过程中的信息模型和结构的根源。V3标准开发过程是一个模型驱动的方法,在这一方法里,一系列内部相关的模型被开发,它们用来描述标准需求设计的静态和行为方面以及支配它们的语义和业务规则。RIM提供了一个关于V3标准静态的信息需求的视图。它包括类图和状态图,并配有用例模型、交互模型、数据类型模型、术语模型以及其它模型,来提供一个需求和标准设计的视图。
RIM中的类、属性、状态以及关联被用来获得特定领域的信息模型,这些模型通过一系列的约束过程转化成HL7标准信息内容的静态模型。V3标准开发过程定义了用来规范从RIM得到DIM以及对这些模型的改进的规则。这些规则要求所有开发的模型的信息结构都要起源于RIM,它们的语义和相关业务规则不能同RIM相冲突。这样RIM就是V3标准所有的信息内容最根本的来源。RIM可以被国际会员用于扩展V3标准以满足本地需求。
RIM由分配给一个或多个主题域包(subjectareapackages)的类组成。属性、关联、状态与这些类相联系。只有包括在标准化内容主题域(NormativeContentsubjectarea)的类以及与它们相联合的属性、关联和状态才是标准化的。
RIM由UML和HL7特有的标签(作为UML模型元素的扩展)来表达的。
RIM的类及其属性
RIM使用了一个非常抽象的模型风格。RIM的核心类及它们的结构化属性是它的核心。理解这些类和属性是最基本的。
RIM由六个核心类组成:动作、参与、实体、角色、动作关联、角色连接。
其中动作、实体、角色可以被一系列特定的类或子类型进一步表达。在HL7的表达中,只有当需要一个或多个属性或关联,但又不能从其父类继承时,才可以把一个新的子类型加入RIM中。表达明确概念,但不需要进一步的属性和关联的类,在受控词汇表中单独的被表达为唯一的代码。因此,动作、实体、角色三个类中包括下列代码化的属性,以进一步的定义概念。
RIM的6个原始基本类:
(1)act(行为):指在医疗服务与管理中必须表达的事件与活动;
(2)participation(参与者):医疗活动的参与者,可能是实施者,也可能是接受者和相关者;
(3)entity(实体):医疗活动中涉及的药品、材料、设备等客体。
(4)role(角色):描述实体参与医疗活动的不同角色;
(5)act relationship(行为联系):表达不同行为之间的关系;
(6)role link(角色关系):表达个体角色之间的关系。
实体:实体是物理物体或者物理物体的组织和分组。一个物理实体是那些有空间,有质量的东西。这个层次包含了人,组织,活的有机体,装置,药物等等。因此,档案,帐目陈述等等也可以有一个物理的表现,譬如一定数量的纸,但是记录的信息不是那张纸。
角色:每个角色可以由一个实体来表现,可以被另一个角色来审定。角色中的实体可以参与各种动作,可以作为参与者,作为动作的对象,或者作为执行动作所必需的资源。这个参与提供了一个详细说明动作是由哪些东西参与,怎么做,在哪里发生等等完全的上下文关系。
动作:一个动作是HL7商业领域中的一个有意图的动作。医疗行为(任何职业或商业)是由有意图的动作组成的。一个动作实例是一个有意图的动作的一个记录。
RIM通讯基础下部结构:定义HL7技术上的基础结构的主题领域的集合,包括通讯,结构化的文件和成分。
RIM未定义的部分: RIM未定义的部分不包含类。
·类代码(classCode)(在动作、实体、角色中):表达确定的类或概念,而不管这个类是否是在RIM的层级中的。
·动作状态代码(moodCode)(在动作中)及限定词代码(determinerCode)(在实体中):这个属性用于区分这个类是否表达一个实例或一种动作或实体。假如这个类是一个特定的动作,那么它进一步描述这个实例是“发生”还是“打算”。
·代码(code)(在动作、实体、角色中):在一个特定的classCode值里,提供进一步的分类,比如在观察(observation)类中某一个特定类型的观察。
其它的三个骨干类:参与、动作关联和角色连接,是不用泛化-特殊化层级来表达的。不过,这些类表达多种概念,比如不同形式的参与或者动作间的不同关联等。这些差别由这些类的typeCode属性来表达。
2.RIM的词汇表(vocabulary)
RIM是一系列类组成的,每个类中包括一个或多个属性,每个属性被分配一个数据类型。每一个元素都包括一个文本性的定义。HL7RIM中所有代码化的属性(数据类型为SC,CD,CE,CS,SET_CD,SET_CE,SET_CS)共108个,对应100个词汇表,其中绝大多数已经发布(约21个为空)。正式进入投票状态的共17个,数据类型都是CS。
词汇表的第一列的数字来表明呈锯齿分布的元素的层次。锯齿分布包含着层次的概念,子概念低于父概念。S(specialized)有代码并包含子概念;A(abstract)没有代码,但包含子概念;L(leaf term)包含代码,但没有子概念,是最后一层。
* 词汇表对于一个代码领域来说是一系列被允许的值
* 所有具有代码数据类型的属性都可以有一个词汇表
* 必须为一条消息中的任一代码值确定“代码系统”
2.1词表域(VocabularyDomain)
词表域是在一个代码化领域(field)或属性的实例中,可以作为有效值的全部概念的集合。比如:在RIM中,Living_subject这个类有一个代码化的属性:administrative_gender_cd,如果这个属性成为一个层级消息定义的一部分(HMD),而且一个消息实例被创建,那么administrative_gender_cd域中包含着男、女的概念。
值域由一系列概念组成,而不是一系列词或代码
与执行不同的是,相同的概念可以用不同的代码系统来表达。因此,词表域中的每一个概念都可能有一对多的关系来编码,用于表达一个消息实例中的概念。
代码系统是一种表达概念或定义的一系列唯一的代码方案。
2.2词汇表的分配
RIM中的每一个代码化的属性(数据类型为SC,CD,CE,CS,SET_CD,SET_CE,SET_CS)都与一个且仅与一个词表域关联。例如,属性administrative_gender_cd的词表域为AdmistrativeGender.
* 一些词表域被关联到多个RIM属性
比如词表域PhysicalQuantity被关联到Diet_carbohydrate_qty和Diet_energy_qty.
* 词表域可以是HL7定义的一个表,也可以是HL7组织的外部代码系统,或者它们的联合,也可以是本地自定义的代码。
2.3词表域限定词(Qualifier)
* 代码域(包含两部分与词汇表有关的信息:词表域和是否可以扩展的限定词)
* 可扩展的限定词有两个可能的值:
CNE(编码且没有例外)—代码固定且不可以扩展。
CWE(编码且有例外)—代码是可以扩展的,以满足本地的执行需要。
HL7 V3 RIM 图示1
HL7 V3 RIM 图示2
HL7 V3 RIM Data Types 图示
|