我们正在创建HL7 XML结构,并使用HAPI库将其输出为HL7 V2文件。但不幸的是,HAPI正在重新排序(分类)细分市场。
因为我有MFE和ZBP总是重复:
MSH|...
MFI|...
MFE|...
ZBP|...
MFE|...
ZBP|...
MFE|...
ZBP|...
但是HAPI重新命令他们
MSH|...
MFI|...
MFE|...
MFE|...
MFE|...
ZBP|...
ZBP|...
ZBP|...
它也与HAPI TestPanel有关。例如:
MSH|^~\&|||||20121011140541.133+0200||MFN^M01|1|T|2.6
MFI|Partners|^Sap|UIZ|||NE
MFE|MUP|||0000040001
ZBP|0000040001|100|Something||||3000|Bern||||
MFE|MUP|||0000040002
ZBP|0000040002|100|Otherthing||||8000|Zurich||||
如何禁用HAPI的重新排序?
答案 0 :(得分:0)
嗯,这里有一些事情......
首先,您构建细分的方式不符合HL7标准。将Z-Segments引入消息后,以下所有段都需要为Z-Segments。因此,您具有交替的MFE和ZBP段的事实不是有效的结构。至少,我建议将MFE段更改为自定义段,例如ZMF或类似段。
其次,您拥有的消息结构不是ADT ^ A01消息的消息结构。您缺少一些必需的段,例如PID,它们需要在消息中。不遵循消息结构会给您的贸易伙伴带来麻烦,并最终为您造成麻烦。如果您不确定消息结构是什么,您需要转到HL7 site并购买实施指南。
因此,如果您确定不关心标准或您的贸易伙伴不关心,您可以在hapi工具中禁用验证。虽然修改HL7消息标准几乎是常见的地方,但请不要忽略它。制作自定义消息并大胆忽略标准会给整个领域的集成商带来如此大的痛苦,并且通常会导致虚弱的集成。请记住,这些是医疗服务提供者使用的医疗保健消息,而不是Twitter API呼叫。我们在这里做的事情会对患者的结果产生影响。
HAPI网站上有message validation page。
这基本上是您正在寻找的代码:
NoValidation noValidation = new NoValidation();
parser.setValidationContext(noValidation);
在HAPI TestPanel中,您可以通过从下拉列表中禁用验证来查看相同的功能。
答案 1 :(得分:0)
将ADT ^ 01更改为正确的 MFN ^ M01 ,并使用版本 2.3 它可以正常工作(在测试仪中):
MSH|^~\&|||||20121011140541.133+0200||MFN^M01|1|T|2.3
MFI|Partners|^Sap|UIZ|||NE
MFE|MUP|||0000040001
ZBP|0000040001|100|Something||||3000|Bern||||
MFE|MUP|||0000040002
ZBP|0000040002|100|Otherthing||||8000|Zurich||||
奇怪,但任何其他版本都不起作用。