自 BT2006 年起不再使用 Biztalk 后,我们正在考虑将其重新带回组织中。我早期遇到的挫折之一是在处理 HL7 和编排时,我们需要为每种 ADT 消息类型进行单独的编排,即使每种类型的架构本质上是相同的,并且每个编排所做的事情完全相同。进入 BizTalk 2010 的世界,这里有什么改进吗?是否有一种模式可以让我对所有 ADT 类型使用单一编排?
自 2006 年发布以来,BizTalk 中的 HL7 消息传递大致保持不变。因为 BizTalk 定义了一个架构每个消息和事件类型(例如 ADT^A01、ADT^A03、ADT^A08)并且不仅仅用于每个消息类型(例如 ADT、BAR、MDM),您的映射和编排很快就会变得一团糟。
以下是我过去为解决此限制所做的事情:
- 允许消息以非类型方式传入编排。即设置MessageType = System.Xml.XmlDocument。我发现,一般来说,我只对解析或更新一些元素感兴趣,因此我只需编写一个带有一些通用 linq 语句的辅助库来获取我需要的数据。这样,我可以编写一个获取 PID-3(患者 ID 号)的 linq 语句,并且我可以在任何消息或事件类型上一致地使用它,因为 PID 保持不变。同样,我也会使用相同的技术来更新消息。如果您要更新的字段存在较大的结构差异,或者您要读取/更新大量数据,则此技术效果不佳。
- 创建主/规范 HL7 消息类型模式。这需要更多的工作,但根据您希望处理的消息类型的数量,这确实可以得到回报,并且更符合医疗保健组织对其 HL7 界面的看法。为此,您需要为消息类型定义一个新架构,并包含该消息的所有可能的段。因此,您可以在一个主模式下滚动 A01、A03、A04 等的所有可能变体,而不是定义多个 ADT 类型。这将使您大大减少所需的映射和解析逻辑的数量。不幸的是,这不是 HL7 加速器的默认行为,并且需要一些自定义管道和编排逻辑来实现。基本上,您需要修改一些属性以使加速器认为您的新主消息有效。
对于大多数直通接口,我会推荐技术 #1。否则,如果您将生成或需要以规范方式使用基本上任何消息事件,从长远来看,技术 #2 可以得到回报。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)