2012-05-26 32 views
6

Tôi đang phát triển một ứng dụng y tế sử dụng C# và ASP.NET và trong ứng dụng này tôi cần phải tạo một mô-đun cho kết quả máu của bệnh nhân. Trong mô-đun đó tôi cần phải nhập HL7 và sau đó phân tích nó để có được kết quả máu của bệnh nhân và tôi cũng cần phải làm nổi bật các giá trị bình thường cho xét nghiệm máu đó. Tôi không có ý tưởng làm thế nào để làm điều này tôi tìm kiếm trên Google nhưng tiếc là tôi đã không nhận được bất cứ điều gì có liên quan đến lợi ích của tôi. Tôi có một số dlls như một là NHAPI tôi đã nhận các tập tin DLL của nó nhưng tôi không biết làm thế nào để sử dụng đó. bất cứ ai có thể cho tôi một liên kết đến mã ví dụ mà làm thế nào tôi nên bắt đầu mô-đun này.Làm cách nào tôi có thể nhập HL7 để lấy kết quả máu và phân tích nó cho báo cáo bệnh nhân?

yêu cầu thực tế của tôi là:

  • BloodResults
  • Cuối cùng này sẽ được nhập khẩu từ HL7
  • Ban đầu cắt và dán
  • Kết quả được phân tích và xử lý để hiển thị kết quả hiện tại và làm nổi bật các xu hướng và bất thường giá trị
  • Được lưu trữ trong bảng kết quả

Trả lời

3

Để gửi yêu cầu HL7 đến phòng thí nghiệm, bạn phải gửi tệp tới Lab, vì vậy trước tiên bạn cần phải tạo tệp.

String fileName = "testOrder.txt" 
StreamWriter sr = new StreamWriter(fileName) 

Bây giờ thêm dòng từng người một trong đó, dòng đầu tiên phải MSH (Message header Tag) mà là giống như: MSH |^~ \ & | LCS | LCA | LIS | TEST9999 | 199.807.311.532 || ORU^R01 | 3629 | P | 2.2

nên dòng code của bạn sẽ như thế nào:

sr.WriteLine("MSH|^~\&|" + _YOURAPPLICATIONNAME + "|" + _YOURHOSPITAL + "|" + _RECEIVINGAPPLICATIONNAME + "|" + _RECEIVINGLAB + "|" + _DATETIME + "||ORU^R01|" + _IDOFORDERINYOURDATABASE + "|P|2.2"); 

Tiếp theo, bạn cần phải thêm dòng PID trong tập tin của bạn, mà là giống như: PID | 2 | 2161348462 | 20809880170 | 1614614 | 20809880170^TESTPAT || 19760924 | M ||| ^^^^ 00000-0000 ||||||| 86427531 ^^^ 03 | SSN # HERE

vì vậy bạn cần thông báo cho luồng của mình viết để viết dòng trên trong tệp nhưng rõ ràng là thay đổi giá trị trong dòng này, như bạn đã làm cho phân khúc MSH, thông số kỹ thuật PID có thể được tìm thấy tại http://www.corepointhealth.com/resource-center/hl7-resources/hl7-pid-segment

Sau đó u cần thêm ORC và dòng OBR trong file as: ORC | NW | 8642753100012^LIS | 20809880170^LCS ||||| | 19980727000000 ||| HAVILAND OBR | 1 | 8642753100012^LIS | 20809880170^LCS | 008342^UPPER RESPIRATORY VĂN HÓA^L ||| 19980727175800 |||||| SS # 634748641 CH14885 SRC: THROA SRC: PENI | 19980727000000 |||||| 20809880170 || 19980730041800 || BN | F

Thay thế các giá trị mong muốn trong các dòng này. Điều này sẽ làm cho tệp yêu cầu kiểm tra của bạn hoàn tất. Nếu bác sĩ đã đưa ra một số nhận xét bổ sung, bạn có thể thêm một dòng khác của thẻ NTE như: NTE | 1 | L | MORAXELLA (BRANHAMELLA) CATARRHALIS

Khi tệp của bạn hoàn tất, bây giờ bạn có thể gửi nó đến phòng thí nghiệm, điều quan trọng trong tệp của bạn là ORU^R01 trong thẻ MSH, cho lab biết đó là yêu cầu kiểm tra. Lab sau đó sẽ gửi cho bạn tệp HL7, cùng với các thẻ MSH, PID, ORC và OBR, cùng với thẻ OBX sẽ có kết quả kiểm tra. Trong thẻ MSH bạn đã gửi ID đơn đặt hàng của cơ sở dữ liệu, vì vậy khi phòng thí nghiệm gửi lại, bạn có thể kiểm tra xem thứ tự mà tệp này đã đến.

Bạn có thể đọc từng dòng tệp, chia chuỗi của mỗi dòng thành "|" và đưa ra các dữ liệu cần thiết và đổ nó vào cơ sở dữ liệu.

Tôi hy vọng nó sẽ cho bạn bức tranh tốt hơn về những gì và cách bạn phải làm.

3

Tôi hy vọng rằng bạn đã thực hiện một số tiến bộ trên trình phân tích cú pháp HL7 của bạn.

Điểm dừng đầu tiên mà bạn có thể muốn truy cập là HL7 website. Nó chứa các công cụ và tài nguyên và các liên kết khác có thể hữu ích cho bạn.

tôi đã tìm thấy các liên kết sau là rất hữu ích trong việc cố gắng tìm ra những thông tin nào cần được trích xuất từ ​​một tin nhắn v2.x:

http://amisha.pragmaticdata.com/~gunther/oldhtml/tables.html

Nếu bạn nhìn vào phía trên cùng của trang web này đối với liên kết trước đó, bạn cũng sẽ nhận thấy rằng bạn có các tùy chọn để chọn 'Tin nhắn', 'Phân đoạn' hoặc 'Tổng hợp'. Mỗi trang sẽ cung cấp cho bạn rất hữu ích, nhưng thông tin chung.

Ngoài ra, tôi đã làm một số Google tìm kiếm và tìm thấy những trang web sau đây sẽ cho bạn thấy ví dụ về thông điệp cả v2 và v3:

http://www.ringholm.de/docs/04300_en.htm

Nếu bạn đang đi để làm việc với v3 nhiều khả năng bạn sẽ muốn để cố gắng tìm một lược đồ xml mà bạn có thể sử dụng trong Visual Studio để tạo ra một số lớp liên kết trực tiếp với xml mà bạn cần gửi/nhận, điều này sẽ làm cho việc phát triển dễ dàng hơn nhiều. Tôi đã tìm kiếm trên Google và tìm thấy trang web này bao gồm lược đồ mà bạn có thể sử dụng để tạo ra các lớp học cho một nhóm lớn các tin nhắn mà bạn có thể hoặc không có thể cần:

http://schemas.liquid-technologies.com/HL7/hl7_24_xsd/

tôi không thể cung cấp cho bạn chi tiết cụ thể về những thông điệp bạn cần vì tôi chưa bao giờ viết một ứng dụng HL7 xử lý loại thông tin bệnh nhân mà bạn đang tìm kiếm, nhưng bạn nên làm theo các tiêu chuẩn sau:

Phân đoạn MSH cho bạn biết các dấu tách riêng biệt thông tin (các dấu phân cách là phổ biến giữa các ứng dụng, nhưng không phải luôn luôn như vậy, do đó, biết thứ tự mà các dấu phân cách đến trong phân đoạn tin nhắn này sẽ giúp bạn tiết kiệm một nhức đầu sau này). Nó cũng bao gồm số tin nhắn, tên hệ thống nhắn tin và có thể bao gồm thông tin kết nối mà bạn cần để giao tiếp với một hệ thống HL7 khác.Nó cũng cung cấp cho bạn loại thông báo, điều rất quan trọng nếu bạn đang có kế hoạch lưu giữ dữ liệu trong cơ sở dữ liệu. Loại thông báo sẽ cho bạn biết nếu bạn cần thêm, cập nhật hoặc xóa dữ liệu.

Phân đoạn PID cung cấp cho bạn thông tin bệnh nhân, điều này giúp bạn xác định duy nhất thông tin bạn cần để lưu trữ.

tất cả phân đoạn được liệt kê một cách chi tiết hơn trong liên kết amisha.pragmaticdata.com cung cấp trước đó

Tôi hy vọng rằng thông tin này sẽ giúp. Tôi đã đưa ra rất nhiều, và nếu bạn có câu hỏi cụ thể, tôi rất muốn trả lời những câu hỏi đó.

Trân trọng.

+0

nhờ @AndHeCodedIt . Tôi đã phát triển ứng dụng mà không có HL7 để nhập viện và các vấn đề khác của hệ thống quản lý bệnh viện. Trong mô-đun gần đây tôi cần phải nhập khẩu thử nghiệm máu từ HL7 và sau đó người dùng chọn thử nghiệm mà ông muốn gửi đến phòng thí nghiệm cho bệnh nhân cụ thể. Đối với yêu cầu này đầu tiên tôi cần phải nhập HL7 để xét nghiệm máu. Và sau đó người dùng chọn thử nghiệm để gửi đến phòng thí nghiệm. Các liên kết đầu tiên của bạn cung cấp chi tiết về các thuật ngữ và ngữ nghĩa của chúng nhưng tôi muốn lập trình nó càng sớm càng tốt. Cho đến bây giờ tôi không tìm thấy bất cứ điều gì dẫn tôi đến việc thực hiện nó. Bạn có thể chia sẻ cho tôi một số ví dụ mã hóa không? –

+0

Có vẻ như @Imran Balouch đã cho bạn một câu trả lời mã giả trong câu trả lời thứ hai của mình. Điều đó có đủ chi tiết không hoặc bạn có cần thêm thông tin không? – AndHeCodedIt

1

Tôi làm việc trong phòng CNTT cho Phòng thí nghiệm lâm sàng - có lẽ tôi có thể trợ giúp. Hầu hết các phòng thí nghiệm báo cáo kết quả sử dụng bản ghi HL7 ORU^R01 trong HL7 phiên bản 2.x và hầu hết các đơn đặt hàng điện tử của EMR gửi (HL7 ORM^O01) ở định dạng phiên bản 2.x. Trình phân tích cú pháp bạn tạo nên được thiết lập để xử lý các thông báo kết quả phân tách đường ống v2.x (nếu ý định của bạn là đọc, ghi lại và báo cáo kết quả của bệnh nhân). Dưới đây là một mồi về những gì bạn sẽ cần phải rút ra khỏi tập tin:

Tệp HL7 thường chỉ chứa một lần (lab nói cho gặp bệnh nhân) trên mỗi tệp - chỉ là một tập hợp các kết quả bệnh nhân. Mỗi tập tin chứa các phân đoạn HL7 "" (mỗi phân đoạn thường được phân tách bằng một CR/LF trong tệp) và được biểu thị bằng một ký tự ba chữ cái. Mỗi trường của phân khúc được phân tách bằng dấu phân tách "|" nhân vật và nếu một lĩnh vực có subsegments họ được ngăn cách bởi một dấu phân cách caret "^"

  • Để biết thông tin bệnh nhân, bạn sẽ nhìn vào phân khúc PID (Bệnh nhân Identifier): PID phân khúc 5 (PID.5) sẽ có bệnh nhân Họ và tên^Tên đệm^Phân đoạn PID ban đầu trung bình 7 (PID.7) sẽ có ngày sinh của bệnh nhân (thường ở định dạng YYYYMMDD) Đoạn PID 8 (PID.8) sẽ có quan hệ tình dục bệnh nhân (M hoặc F) Phân đoạn PID 11 (PID.11) sẽ có địa chỉ của bệnh nhân: Add1^Add2^Thành phố^Tiểu bang^Zip

    Để có kết quả, bạn sẽ phải phân tích cú pháp thông qua các phân đoạn OBR và OBX OBR là những gì bác sĩ đặt hàng từ phòng thí nghiệm OBX là kết quả tương ứng cho đơn hàng đó (đôi khi một đến một, đôi khi một đến nhiều) Tập trung của bạn phải nằm trên phân khúc OBX: phân đoạn OBX 2 (OBX.2) sẽ chỉ định loại kết quả cho thử nghiệm này, thường là được chỉ định bằng "NM" (Số) "TX" (Văn bản) hoặc "ST" (Chuỗi) - giữ trong . kết quả đúng số - cách xa kết quả. Phân đoạn OBX 3 (OBX.3) sẽ có mã định danh phòng thí nghiệm cho thử nghiệm - có thể là mã số nội bộ và mô tả hoặc có thể là LOINC (xem www.loinc.org) là hệ thống số tiêu chuẩn phổ quát cho xét nghiệm trong phòng thí nghiệm - phụ thuộc vào phòng thí nghiệm. Phân khúc OBX 5 (OBX.5) sẽ có phân đoạn OBX giá trị quan sát (kết quả) 6 (OBX.6) sẽ đơn vị đo cho đoạn OBX thử nghiệm 7 (OBX.7) sẽ có phạm vi tham chiếu cho Phân đoạn OBX tst 8 (OBX.8) sẽ có chỉ báo cờ bất thường . Đây là trách nhiệm của phòng thí nghiệm (không phải trình phân tích cú pháp của bạn) để gửi "cờ" nếu kết quả được ghi chú cho kiểm tra này là bất thường. Tiêu chuẩn này là: NULL hoặc "N" cho Bình thường, "H" cho bất thường cao, "HH" cho Critical cao, "L" cho bất thường thấp và "LL" cho Critical thấp

Các vấn đề liên quan