我知道字段和组件的顺序很重要,但HL7消息中段的顺序又如何呢? 他们显然必须在开始时拥有MSH,但是HL7指南中有任何明确说明hl7段必须按特定顺序排列的内容。 当然,文档在描述消息类型时按特定顺序列出了段,但这不仅仅是它写下来的顺序吗?您是否需要以相同的顺序(除分组项目)之外的消息? 如果订单是由消息中的订单设置的话,我会认为PID-1无关紧要。
我很想听到任何意见,但我特别希望听到一些人可以参考一些指明这一点的文件。
答案 0 :(得分:3)
是的,这很重要 -
特定要求所需的段位于两个相同的段之间。
从版本2.5.1第2章开始:
命名段X可能在抽象消息中出现多次 句法。这与前面描述的重复不同 部分。
发生这种情况时,必须遵守以下规则: 如果在抽象消息语法中,命名段X出现在两个中 个人或团体的位置,以及a)外观是可选的或 在个别地点重复; b)或者,外观是 然后,在组位置中可选或重复出现 段X必须至少由a的一个必需段分隔 不同的名称,以便个人或个人不存在歧义 在消息实例中任何出现的段X的组位置。
一个真实世界的例子是ADT ^ A02中的ROL段,一个跟随PD1,一个跟随PV2,但两者之间需要PV1。
如果您正在编写某种解析器,我会对任何真正尊重此规则的人保持警惕。
答案 1 :(得分:2)
绝对。段的顺序在HL7标准中定义。
例如(我使用2.4国际版)关于订单输入的4.4.1 ORM ‑ general order message (event O01)
部分显示以下作为ORM订单消息的结构(格式不理想)
ORM^O01^ORM_O01
MSH
[{NTE}]
[
PID
[PD1]
[{NTE}]
[
PV1
[PV2]]
[{IN1
[IN2]
[IN3]
}]
[GT1]
[{AL1}]
]
{
ORC
[
<OBR|RQD|RQ1| RXO|ODS|ODT>
[{NTE}]
[CTD]
[{DG1}]
[{
OBX
[{NTE}]
}]
]
[{FT1}]
[{CTI}]
[BLG]
}
方括号表示可能的重复,以及段是可选的大括号(例如,直接在MSH之后,您可以有0,1或n个NTE段。)
要成为有效的ORM消息,OBR段应该位于一个ORC段之后,该段本身应该在PID等之后。例如,不允许在PID段之前发送OBR段(将其视为一个层)结构,观察请求属于订单共同部分,该部分本身与患者特定的患者就诊相关。)
您提到的PID-1字段不是一个好例子,因为大多数消息只有一个PID段,因此PID-1为1
。 (我不知道包含多个PID段的消息,如果有人知道HL7规范中的具体示例,请添加评论)。但是如果你看一下例如OBR-1,在同一个Order消息中可能有多个Observervation Requests,例如Kalium和Natrium的订单,因此在OBR-1中会发送一个序列号以确保来自不同的订单不会混淆,例如:
ORC|...
OBR|1|12345||KA^Kalium|...
OBR|2|12346||NA^Natrium|...