.NET的HL7对象模型

p.c*_*ell 26 .net c# hl7 object-model

搜索将提供对象模型,解析,验证等的库或框架

我们的想法是能够启动hl7 v2或v3类型的新对象.然后可能将其称为消息类型ORU_R01或ADT,或ORM.

如果我们能够做到这样的事情,生活会不会很好:

HL7V2 myMessage = new HL7V2();
myMessage.Type = V2MsgTypes.ORU_R01;
myMessage.TryParse(someHL7_string);

if (myMessage.IsValid)
{
  //do some work
  //maybe access the PID segment
  if (myMessage.Patient.Names.FamilyName =="Johnson")
  {
    //do more work
  }
}
Run Code Online (Sandbox Code Playgroud)

Har*_*lby 28

你想要nHAPI我以前在一个项目中使用过它,并且效果很好.事实上,它的开源也保存了我的培根,因为其中一个输入源并没有完全遵循HL7规范,所以我不得不破解源代码以使nHAPI的解析器允许这些消息(因为我不能改变他们).

  • 然而,nHAPI的问题在于它假定特定"HL7版本"的任何给定消息的一种风格.HL7的实际情况是,不同国家对HL7的定义不同(例如澳大利亚REF信息与美国不同),而在一个国家内,不同的病理实验室将拥有自己的2.3.1 ORU信息.有些国家甚至没有更改版本号.nHAPI使得并发定义变得困难.更好的方法可能是从ED7格式(如HL7)中抽象出来并使用XML; 而是XSD和XSLT (4认同)

kar*_*ikq 6

我也使用过nHAPI,效果很好.但是,您可能需要注意逃避特殊字符的一些古怪行为.我还必须手动破解HL7字符串以更新使用对象模型无法访问的某些字段.