2009-04-22 26 views
25

Đang tìm kiếm các thư viện hoặc khuôn khổ mà sẽ cung cấp một mô hình đối tượng, phân tích, phê chuẩn, vvHL7 cho .NET

Ý tưởng sẽ được để có thể quay lên một đối tượng mới của v2 loại HL7 hoặc v3 . Sau đó, có lẽ gọi nó là loại tin nhắn ORU_R01 hoặc ADT, hoặc ORM.

Sẽ không cuộc sống là tuyệt vời nếu chúng tôi có thể làm điều gì đó như thế này:

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 
    } 
} 

Trả lời

28

Bạn muốn nHAPI tôi đã sử dụng nó trên một dự án trước đây, và nó làm việc rất lớn. Thực tế là nguồn mở của nó đã cứu được thịt xông khói của tôi, vì một trong những nguồn đầu vào không chính xác theo thông số HL7, vì vậy tôi phải hack nguồn một chút để làm cho trình phân tích cú pháp của nHAPI cho phép những thông điệp đó (vì tôi không thể thay đổi chúng).

+2

Vấn đề với nHAPI là mặc dù nó được giả định là một hương vị của bất kỳ thông báo nào cho một "phiên bản HL7" cụ thể. Thực tế của HL7 là các quốc gia khác nhau có các định nghĩa khác nhau về HL7 (ví dụ: thông điệp REF của Úc khác với Hoa Kỳ) và trong một quốc gia, các phòng thí nghiệm bệnh lý khác nhau sẽ có hương vị riêng của thông điệp ORU 2.3.1. Một số quốc gia thậm chí không thay đổi số phiên bản. nHAPI làm cho nó khó có định nghĩa đồng thời. Một cách tiếp cận tốt hơn có lẽ là trừu tượng hóa từ các định dạng EDI như HL7 và sử dụng XML; XSD và XSLT thay vì – MickyD

+1

Đó là một đối số hợp lệ, mặc dù có lẽ câu trả lời tốt hơn là cải thiện nHAPI, vì điểm của nHAPI là làm cùng một sự trừu tượng đó khỏi định dạng EDI và thành một mô hình đối tượng. Người ta cũng có thể lập luận rằng những người triển khai các ứng dụng HL7 khác nhau nên làm theo tiêu chuẩn tốt hơn, vì đó là vấn đề cơ bản thực sự. Cho rằng điều đó sẽ không xảy ra, cải thiện.NET trừu tượng dường như với tôi một giải pháp tốt hơn so với việc tạo ra một cái mới. –

+1

Có lẽ. Rất khó để có được vận tốc phù hợp với các thư viện mã EDI vì một lỗi hoặc tuân thủ một số thông điệp tối nghĩa từ một phòng thí nghiệm thường có nghĩa là thay đổi mã ở đâu đó (sao chép và dán một phần nHAPI cho ví dụ) và sửa chữa. Các hệ thống EAI dễ dàng hơn một chút bởi vì tất cả những gì bạn cần là một vật phẩm mới như XSLT - một thứ gì đó mà IT có thể đưa ra (ví dụ: BizTalk sẽ làm cho gritty nitty cho bạn tốt). Ah ... nhưng tôi đồng ý với bạn và ước gì chúng ta có thể thức dậy trong vũ trụ nơi mà các cơ sở thực sự tuân thủ tiêu chuẩn :) – MickyD

0

Orion Helth có bộ công cụ gọi là Symphonia, có chức năng tương tự. Ngoài ra còn có bộ công cụ Chameleon từ Interfaceware mà làm như vậy.

6

Tôi cũng đã sử dụng nHAPI và nó hoạt động rất tốt. Tuy nhiên, bạn có thể cần phải xem ra một số hành vi kỳ quặc mà tránh các ký tự đặc biệt. Tôi cũng đã phải tự hack chuỗi HL7 để cập nhật một số trường không thể truy cập được bằng cách sử dụng mô hình đối tượng.

0

Tôi chỉ cần stumbled trên sản phẩm này cũng như:

Managed Code Objects for Visual Studio .Net

Từ trang web của họ:

Một Visual Studio .Net HL7 Class Library DLL được thiết kế để cho phép các nhà phát triển phần mềm HL7 cung cấp HL7 tích hợp cho các giải pháp hiện tại của họ với giá rẻ, nhanh chóng và đáng tin cậy.

+1

_ [Câu trả lời của bạn nằm trong một lâu đài khác: khi nào câu trả lời không phải là câu trả lời?] (Http://meta.stackexchange.com/questions/225370/your-answer-is-in-another-castle-khi-là-một-câu trả lời-không-một-câu trả lời) _. Xem xét chỉnh sửa câu trả lời của bạn để chứa một bản tóm tắt của bài viết được chỉ dẫn bởi liên kết. – MickyD

0

Chris Patterson có thư viện cho HL 7 2.x thao tác được gọi là Machete đó là khá tốt. https://github.com/phatboyg/Machete

NHapi là ok nhưng bị hiệu suất kém trong trải nghiệm của tôi.