2012-05-26 44 views
6

我正在開發一個使用C#和ASP.NET的醫療應用程序,在這個應用程序中,我需要爲患者血液結果製作一個模塊。在該模塊中,我需要導入HL7,然後解析它以獲取患者血液結果,並且還需要突出顯示血液測試的正常值。我不知道如何做到這一點,我在谷歌搜索,但不幸的是,我沒有得到任何有關我的興趣。我有一個像一個DLL是NHAPI我有它的DLL文件,但我不知道如何使用它。任何人都可以給我一個鏈接到我應該如何啓動這個模塊的示例代碼。如何導入HL7血液結果並解析患者報告?

我的實際要求是:

  • BloodResults
  • 最終,這將HL7
  • 進口
  • 最初剪切和粘貼
  • 結果進行分析和處理,以顯示當前結果和突出趨勢和異常值
  • 存儲在結果表中

回答

3

要發送一個HL7請求到實驗室,你必須發送一個文件到實驗室,所以首先你需要創建一個文件。

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

現在追加線逐一在它,第一行必須是MSH(郵件標頭標記),其是這樣的: MSH | ^〜\ & | LCS | LCA | LIS | TEST9999 | 199807311532 || ORU^R01 | 3629 | P | 2.2

所以你的代碼行會像:

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

接下來,您需要添加PID線在你的文件,它是這樣的: PID | 2 | 2161348462 | 20809880170 | 1614614 | 20809880170^TESTPAT || 19760924 | M ||| ^^^^ 00000-0000 ||||||| 86427531 ^^^ 03 | SSN#這裏

所以你需要告訴你的流寫入寫入文件的上面一行,但顯然也改變這一行的值,像你一樣的MSH段,PID規範可以在http://www.corepointhealth.com/resource-center/hl7-resources/hl7-pid-segment

發現這款U需要添加ORC和OBR線的文件,如後: ORC | NW | 8642753100012^LIS | 20809880170^LCS ||||| | 199807.27億||| HAVILAND OBR | 1 | 8642753100012^LIS | 20809880170^LCS | 008342 ^上呼吸道 文化^ |||大號|||||| 19980727175800 SS#634748641 CH14885 SRC:THROA SRC:PENI | 199807.27億|||||| 20809880170 || 19980730041800 || BN | F

也可以在這些行中替換所需的值。 這將使您的測試請求文件完整。如果醫生給出了一些額外的評論,您可以添加一個NTE標記的其他行: NTE | 1 | L | MORAXELLA(BRANHAMELLA)CATARRHALIS

由於您的文件已完成,現在可以將其發送到實驗室,你的文件中最重要的是MSH標記中的ORU^R01,它告訴實驗室它是一個測試請求。 實驗室稍後會向您發送一個HL7文件,它們具有相同的MSH,PID,ORC和OBR標記,以及將會得到測試結果的OBX標記。 在MSH標籤中,您發送了數據庫的訂單ID,因此當實驗室發回時,您可以檢查該文件的來源順序。

您可以逐行讀取文件,將每行的字符串拆分爲「|」並取出所需的數據並將其轉儲到數據庫中。

我希望它能讓您更清楚地瞭解您需要做什麼以及如何做。

3

我希望你已經在你的HL7解析器上取得了一些進展。

您可能想要訪問的第一站是HL7 website。它包含工具和資源以及可能對您有用的其他鏈接。

我發現下面的鏈接是在試圖找出什麼樣的信息應該從V2.X消息中提取非常有幫助:

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

如果你看看這個網頁的頂部對於上一個鏈接,您還會注意到您可以選擇「消息」,「分段」或「複合材料」。每一頁都會給你非常有幫助的,但一般的信息。

而且,我做了一些谷歌搜索,發現下面的網站會告訴你既v2和v3消息的示例:

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

如果你想與V3,你將最有可能要工作試圖找到一個xml架構,您可以在Visual Studio中使用它來生成一些直接綁定到需要發送/接收的xml的類,這將使開發更容易。我已經搜索谷歌和發現這個網站,包括架構,你可以用它來生成類的大集團的消息,你可能會或可能不會需要:

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

我不能給你具體你需要哪些消息,因爲我從來沒有寫過一個HL7應用程序來處理你正在尋找的病人信息的類型,但你應該遵循這些標準指針:

MSH段告訴你分隔符的關鍵部分信息(分隔符在應用程序中很常見,但不是總是同樣的,所以知道分隔符到達這個消息段的順序將在以後節省您的頭痛)。它還包括消息號碼,消息系統名稱,並且可能包含您需要與另一個HL7系統進行通信所需的連接信息。它還爲您提供消息類型,如果您計劃將數據保存在數據庫中,這非常重要。消息類型會讓您知道是否需要添加,更新或刪除數據。

PID段爲您提供患者信息,這有助於您唯一識別需要存儲的信息。

所有的部段,更好的細節列在所提供的鏈接amisha.pragmaticdata.com較早

我希望這個信息幫助。我給了很多,如果你有特定的問題,我想嘗試回答這些問題。

問候。

+0

感謝@AndHeCodedIt 。我開發了沒有HL7的應用程序,用於病人入院和其他醫院管理系統事宜。在最近的模塊中,我需要從HL7導入血液測試,然後用戶選擇他想要發送給特定患者的實驗室。首先,我需要導入HL7進行血液檢測。之後,用戶選擇測試發送到實驗室。您的第一個鏈接提供了有關術語及其語義的詳細信息,但我希望儘快對此進行編程。到目前爲止,我沒有發現任何導致我執行的內容。你能跟我分享一些編碼的例子嗎? –

+0

看起來@Imran Balouch在第二個答案中給了你一個僞代碼答案。這是足夠詳細的,還是你需要更多的信息? – AndHeCodedIt

1

我在IT部門工作臨牀實驗室 - 也許我可以幫忙。大多數實驗室使用HL7版本2中的HL7 ORU^R01記錄報告結果。x和大多數EMR以2.x格式發送電子訂單(HL7 ORM^O01)。 您構建的解析器應該設置爲處理v2.x管道分隔結果消息(如果您的意圖是讀取,記錄和報告患者結果)。以下是您需要從文件中提取的內容:

對於每個文件,HL7文件通常只包含一個加入(實驗室代表患者相遇) - 這只是一組患者結果。每個文件包含HL7「段」(每個段通常由文件中的CR/LF分隔),並用三個字母的助記符表示。每個分段的字段由管道分隔符「|」分隔字符,如果一個字段子段,他們是通過一個插入符分隔符分隔「^」

  • 爲了患者的信息,您將看到的PID段(患者 標識符):PID段5(PID.5)將有患者的 姓氏^姓^中間初始PID段7(PID.7)將具有 患者出生(通常以YYYYMMDD格式)的日期PID段8 (PID.8)將有患者性別(M或F)PID段11(PID.11) 將具有患者的地址:Add1^Add2^City^State^Zip

    對於結果,您必須解析通過OBR和OBX段 OBR是什麼醫生從實驗室訂購 OBX是 對應的結果,該訂單(有時一比一,有時爲 一對多)您的重點應放在OBX段:OBX段2 (OBX.2)將指定哪些類型的結果對於本次測試,通常由 「NM」(數字)「TX」(文本)或「ST」(字符串)表示 - 請 心中並不是所有的實驗室檢測結果是嚴格的數字 - 遠離 它。 OBX段3(OBX.3)將會對 測試實驗室標識符 - 它可以是內部的代碼號和描述,或者它可以是 LOINC(見www.loinc.org),這是一個通用的標準號系統 爲實驗室測試 - 取決於實驗室。 OBX段5(OBX.5) 將具有觀測值(結果)OBX段6(OBX.6)將 測量單位爲測試OBX段7(OBX.7)將具有 爲基準範圍tst OBX段8(OBX.8)將有 異常標誌指示符。如果 的測試結果出現異常,這是 實驗室(而不是您的解析器)發送「標誌」的責任。的標準是:NULL或「N」表示普通,「H」爲 異常高,「HH」臨界高,「L」爲低異常和 「LL」臨界低