使用HL7消息时会出现什么问题?


12

我正在为医疗保健企业测试产品,我们正在处理HL7消息。我看到人们抱怨关于HL7的另一个问题,但没有提及具体细节。有人可以给我一些关于我们应该专门寻找哪些问题或问题类别的想法吗?

我们正在使用一些常用的库进行解析。如果有关这些细节或我们正在做的事情会有所帮助,请在评论中让我知道,如果可以的话,我将补充问题。

Answers:


13

我假设您正在处理HL7 v2.x

HL7自愿地非常灵活。这具有巨大的优势,但同时也带来了挑战。要牢记的基本规则是,每个单独的实现都会有所不同。如果将相同的产品部署在2个不同的环境(例如2个医院)中,则数据交换规则可能会有所不同。如果您希望能够扩展与其交互的HL7接口的数量,则您的产品必须准备好满足那些隐藏的要求。

在大多数处理HL7的医疗系统中,我们面临以下部分常见挑战:

  • 每个系统都可以解释每个数据段的含义。上下文和工作流也会影响语义。我看到一些系统使用帐号(PID.18)或访问号码(PV1.19)来识别要符合某些临床工作流程的患者。这种类型的语义鸿沟可能会对系统如何接收此数据进行处理产生一些影响。
  • 必选与可选:由于可以交换数据以在几种不同的上下文中实现多个目标,因此大多数段和字段在官方文档(和某些解析器)中被记录为可选。但是,为了满足特定的工作流程,医疗保健产品可能会添加数据约束规则并放宽一些约束条件。在大多数情况下,需要进行逐案分析以识别它们。
  • 表格:HL7提供了一些字段的建议值列表。例如,建议的性别值列表长为6 ...显然,大多数系统不会全部实现6个,但是如果您收到一个不预先支持的映射策略,您的映射策略是什么?
  • 可以自定义段和字段:可以自定义字段长度,数据类型和其他定义属性。您需要将其映射到某些已知的数据结构,而又不会丢失重要信息。

耶尔莫林

www.caristix.com


6

我遇到的一些问题:

  • 某些组织可能使用不同版本的HL7,因此会遇到兼容性问题(“交叉遍历”)。当然,如果您参与任何组织间的数据传输,就会遇到这个问题。
  • 没有语义标准(对于v2.x,我认为v3可能已经开始解决此问题),因此即使您知道特定字段中应该包含哪些数据,也可能不知道这些字节的确切含义或表示形式。
  • HL7是非标准标准。它支持Z-segments广泛使用且完全专有的特定于供应商的产品。
  • HL7 v2.x(许多仍在野外使用的x值)是非XML专有格式,因此您需要使用HL7解析器。(这知道您已经有了一个HL7解析库,只是将其包括给其他人使用)

2
最糟糕的是缺乏语义。当甚至编写标准的人说“好,您可以发送X或Y,但是Z也是有效的”时,您知道您遇到了问题。节省下来的是,除了解析器人员外,没有人必须处理整个HL7选项-每个人都处理他们的客户实际收到的一小部分。这意味着编写一个新的接受者是发现的过程(我现在正在经历),而不是“实施标准”练习。哦,猜猜您需要发送哪个选项才能达到预期的效果。

@ +1作为答案,我可以给+1以包括除OP(我)以外的其他人的信息。@moz-关于只需要一小部分的好点。那正是我们的处境。您还证实了我的怀疑,即与客户数据进行比较将是关键。
Ethel Evans

1
@ethel和@moz正是这种想法,使得处理HL7如此困难,请花些时间使您的程序像可能的那样灵活,HL7是YAGNI根本不适用的地方。
彼得·特纳

好的,这很有道理。我认为我们的应用程序不会引起任何YAGNI问题,因为我们正在计划扩展可用于提供价值的HL7消息的类型。我们知道我们不知道将来需要什么。
Ethel Evans

1
这就是为什么我喜欢至少在接收方使用开放源代码库(HAPI / NHAPI)的原因。拥有一个较高级别的“我们收到了有效的HL7消息,但没有编写代码来处理它”要好于“我们的解析器因为我们没想到该消息而失败”,这要好得多。不幸的是,每个人都从小小的“我们只是发送X并接收Y”开始,因此,将某物砍在一起比在每次新需求到来时将其扩展直到最终在累积的重担下崩溃之前要简单得多。

2

第一个问题是确保每个人都知道HL7是什么。

这是一种替换[医保]编码器并节省[药房]钱的方法。

这是软件开发中所有常见问题之上的皱纹。

  1. 范围蠕变
  2. 规格不完整
  3. 无效的专有规范,“无法更改”

因此,您与您的[药房|银行|保险公司]联系,该公司希望从HL7界面中抽出所有可支配的资金,转给使用您的软件的机构。您的合同与设施有关,他们的合同与药房有关,[药房|银行|保险公司]不知道您的软件如何工作,设施不知道HL7是什么,并且您被药房打勾了,因为他们不断告诉您您的软件存在错误。

我相信HL7的问题在于它大部分都是廉价的。HL7 3.0可能永远不会实现,因为它永远不会货币化。

如果要“为HL7付费”,请记住,您也要为HL [1-6]付费。SOAP接口不是HL7。HL7消息解析器不是HL7,消息生成器也不是。


1
HL7不仅限于药房。HL7通常用于将不同的系统(例如EMR)连接到计费系统。
比尔

我们的产品不针对药房,甚至不针对药房,而且响应非常有偏差,几乎没有答案。
Ethel Evans,

1
@Ethel我将添加一些正则表达式,但您应该在问题中更具体。我们使用100%本地生产的HL7实现比药房做得更多,但是开发背后的主要推动力始终是“大型药房”,如果其他人可以利用广泛使用的规格,那就可以了。
彼得·特纳

@Peter:我将尝试更具体地说明为什么我认为这没有帮助。首先,您突出显示的报价似乎有很大的偏见并且不受支持。其次,编号清单上的项目含糊不清,或者没有超出其他答案更清楚地说明的内容。第三,您的示例场景非常具体,看起来与我(显然是其他人)正在处理的场景不一样,这使得它的信息不足。第四,您关于HL7廉价生产的说法似乎是有偏见和不受支持的。第五,我没有做“ HL7”,我正在处理HL7消息,所以最后一段的要点丢失了。
Ethel Evans

2
@Ethel,我到底该如何支持我的主张,我对HL7的掌握一点都不让我受益,我从过去几年与多家供应商合作的经验中知道,当有人说他们想与我合作时软件并向他们发送“测试消息”,以便他们可以理解应该是什么样的样子,他们将围绕消息编写某种ORM,并且将为此工作。情况不妙。如果我的回答似乎与其他人不同,那肯定不是因为我没有告诉你真相。HL7主要是关于钱。
彼得·特纳
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.