HL7 V2中的段的顺序是否重要?

时间:2017-08-09 02:34:04

标签: hl7 hl7-v2

我知道字段和组件的顺序很重要,但HL7消息中段的顺序又如何呢? 他们显然必须在开始时拥有MSH,但是HL7指南中有任何明确说明hl7段必须按特定顺序排列的内容。 当然,文档在描述消息类型时按特定顺序列出了段,但这不仅仅是它写下来的顺序吗?您是否需要以相同的顺序(除分组项目)之外的消息? 如果订单是由消息中的订单设置的话,我会认为PID-1无关紧要。

我很想听到任何意见,但我特别希望听到一些人可以参考一些指明这一点的文件。

2 个答案:

答案 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|...