2009-04-22 56 views
25

搜索庫或框架,提供一個對象模型,分析,驗證等HL7對象模型的.NET

的想法是能夠旋轉起來類型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 
    } 
} 

回答

28

你想nHAPI我用它在一個項目之前,和它的工作很大。由於其中一個輸入源沒有精確地遵循HL7規範,所以我不得不在源代碼上稍微修改一下,以使nHAPI的解析器允許這些消息(因爲我不能改變它們)。

+2

雖然nHAPI的問題在於它假定某個特定「HL7版本」的任何給定消息具有一種風味。 HL7的現實是,不同的國家對HL7有不同的定義(例如澳大利亞的參考消息與美國不同),並且在一個國家內,不同的病理學實驗室會有自己的2.3.1 ORU消息。一些國家甚至不更改版本號。 nHAPI使併發定義變得困難。一種更好的方法可能是從諸如HL7等EDI格式中抽象出來並使用XML; XSD和XSLT代替 – MickyD 2015-04-29 09:15:17

+1

這是一個有效的論點,但或許更好的答案是改進nHAPI,因爲nHAPI的重點在於將相同的抽象從EDI格式轉換爲對象模型。人們也可以爭辯說,各種HL7應用程序的實施者應該更好地遵守標準,因爲這是真正的潛在問題。鑑於這不會發生,改善。NET抽象似乎比創建一個更好的解決方案。 – 2015-04-29 16:45:33

0

Orion Helth有一個名爲Symphonia的工具包,它做了類似的工作。也有接口軟件的變色龍工具集,它也是這樣做的。

6

我也使用nHAPI,它工作的很好。但是,您可能需要注意一些古怪的行爲,比如避開特殊字符。我還必須手動破解HL7字符串來更新一些使用對象模型無法訪問的字段。

0

我只是碰到這種產品跌跌撞撞,以及:

Managed Code Objects for Visual Studio .Net

從他們的網頁:

在Visual Studio .Net的HL7類庫DLL旨在讓HL7軟件開發商提供廉價,快速,可靠地將HL7集成到現有解決方案中。