轉帖|使用教程|編輯:龔雪|2015-12-08 11:07:09.000|閱讀 527 次
概述:LEADTOOLS Medical Imaging SDK包含在應用程序中添加 HL7功能所需的一切。本文將對HL7進行簡單介紹。并展示如何通過LEADTOOL產品將HL7集成到醫學應用程序。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Health Level Seven (HL7)信息是一個靈活的結構化電子健康信息交換標準,受到了廣泛的歡迎和接受。HL7可以啟用標準化信息和圖像系統的通信和互操作性,如電子健康記錄系統(EHR)、醫院信息系統(HIS)、放射信息系統(RIS)、實驗室信息系統(LIS)和圖像存檔及通信系統(PACS),以及任何用于計費和病人跟蹤功能的個人實踐管理或前臺應用程序。
LEADTOOLS Medical Imaging SDK包含在應用程序中添加 Health Level Seven 功能所需的一切。
一般情況下,有如此多優點的標準肯定有一個陡峭的學習曲線。盡管完全不同的應用程序現在可以通信,但是開發者必須實現控制傳入和傳出消息的接口。LEADTOOLS HL7 SDK簡化了復雜HL7標準到任何醫學應用程序的集成。此外,如果你需要建立一個支持HL7消息的DICOM/PACS解決方案,LEADTOOLS提供了多個預設接口幫助你更新病人和模態調度(MWL/MPPS)。LEADTOOLS擁有如此全面的醫學成像技術,開發者使用它可以快速創建功能完整且兼容HL7的PACS。
LEADTOOLS HL7的核心功能是創建和解析原始HL7消息的能力。這些基于文本的消息是代碼、值和分隔符的集合,如(|)和(^)。共有100多種消息類型,每個都是行和預期豎線值的組合。例如,以下是確認病人的一個基本HL7消息,同時病人的ID、名字和性別都存儲在PID行中。
MSH|^~\&|||||201505210936||ADT^A01|6386af5b-a9bc-478c-9f9d-847a97c3c0c3||2.6||||||||||||| SFT|||||| UAC|| EVN||||||| PID||123456|||Doe^John|||M||||||||||||||||||||||||||||||| PD1|||||||||||||||||||||| ARV|||||| ROL||||||||||||| NK1||||||||||||||||||||||||||||||||||||||| PV1|||||||||||||||||||||||||||||||||||||||||||||||||||| PV2|||||||||||||||||||||||||||||||||||||||||||||||||| ARV|||||| ROL||||||||||||| DB1|||||||| OBX||||||||||||||||||||||||| AL1|||||| DG1|||||||||||||||||||||||||| DRG||||||||||||||||||||||||||||||||| PR1|||||||||||||||||||||| ROL||||||||||||| GT1||||||||||||||||||||||||||||||||||||||||||||||||||||||||| IN1||||||||||||||||||||||||||||||||||||||||||||||||||||| IN2|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| IN3||||||||||||||||||||||||| ROL||||||||||||| ACC||||||||||| UB1||||||||||||||||||||||| UB2||||||||||||||||| PDA|||||||||
當然還有很多信息需要填寫,例如病人的聯系信息、就診的醫生、癥狀報告等。你可能會猜到,這或許會帶來一些混淆,特別是多個HL7版本和子版本之間的不同。
LEADTOOLS使用Leadtools.Medical.HL7命名空間極大簡化了此類消息的創建。它的類和枚舉為開發者提供了一個創建和解析HL7消息的簡單框架。你不需要關心豎線的的個數或來回查看不同的規范,以確保沒有因為少一個字符而弄錯病人的姓名和出生年月。LEADTOOLS包括了現在最流行的HL7版本 (2.6, 2.5.1, 2.3.1)中每個消息類型的數據模型,枚舉它們能以更可讀的方式生成消息。以下的代碼創建了一個ADT_A01消息,用于確認病人、填寫一些基本的病人身份信息。
// 創建并將信息投入一個模型,同時創建默認字段填充 ADT_A01 msg = (ADT_A01)Leadtools.Medical.HL7.V2x.Models.MessageFactory.New("ADT_A01", "V26"); Leadtools.Medical.HL7.V2x.Models.MessageConstructor.CreateSegments(msg); // 設置header信息 msg.MSH.Sending_Application.Value = "LTHL7Demo"; msg.MSH.Sending_Facility.Value = "LEADTOOLS"; msg.MSH.Date_Time_of_Message.Value = MessageConstructor.CurTime(); msg.MSH.Message_Type.MessageCode.Value = "ADT"; msg.MSH.Message_Type.TriggerEvent.Value = "A01"; msg.MSH.Message_Control_ID.Value = UniqueId.New; msg.MSH.Processing_ID.Value = "1"; msg.MSH.Version_ID.VersionID.Value = "2.6"; // 設置病人信息 msg.PID.Patient_ID.IDNumber.Value = PatientId; msg.PID.Patient_Name[0].FamilyName.Value = PatientLastName; msg.PID.Patient_Name[0].GivenName.Value = PatientFirstName;
當接收信息時,LEADTOOLS將原始的文本解析為正確的數據模型。可以顯示或映射到應用程序的合適的UI元素上。如下所示,只需幾行代碼就可以將一個豎線信息解析為一個 IHL7MessageItem,在一個樹狀圖中可以枚舉和表示它,就像LEADTOOLS HL7消息示例一樣。
PipeMessageConverter pmc = new PipeMessageConverter(); MessageStructureConverter msc = new MessageStructureConverter(); MessageStructure ms = pmc.PipeMessageToMessageStructure(strMessage); IHL7MessageItem msg = msc.MessageStructureToMessage(ms, new MessageStructureConverter.Options() { Parse_RepeatableParentGroupFirst = true, Forgive_IncompleteMessage = true }).Message;
除了簡化EHR、HIS、RIS等開發的HL7接口,LEADTOOLS還支持PACS解決方案中HL7消息的接收。這個綜合的PACS框架和DIOCM存儲服務提供了高級類和OEM-ready組件,開發者能以很少的工作量完成PACS開發。
正如許多不同的醫學應用程序越來越需要HL7一樣,PACS在醫院或醫療實踐中作為一個獨立的個體被需要,用來存儲DICOM圖像。然而,互操作性已經改變了整體的結構,PACS加入,這樣它就能和管理病人信息和賬單的前臺應用程序交互。例如,一個病人多年不會去見整形專家,但是現在需要一個X-射線或MRI。上次訪問至今,他們可能結婚或搬走了。前臺的病人確認應用程序可以將HL7消息發送給網絡中的每一個系統,包括PACS,這樣現在的醫生就可以查找和查看病人若干年前的就診記錄。
LEADTOOLS DICOM存儲服務器包含了一個病人更新器插件,可以通過監聽其他應用程序發送的HL7消息處理常見場景。一旦接收到消息,就會解析值,并將它提交到PACS圖像存儲中。
public override void OnHl7Message(Leadtools.Medical.HL7.V2x.Models.IHL7MessageItem hl7msg) { string OriginalPatientId = string.Empty; string PatientId = string.Empty; string GivenName = string.Empty; string FamilyName = string.Empty; string Sex = string.Empty; // 解析和解碼HL7消息 string MessageName = MessageItemCracker.GetMessageName(hl7msg); if (MessageName == "ADT_A01") { ADT_A01 msg = (ADT_A01)hl7msg; // 獲取PatientID,這樣我們就知道更新哪一條信息 OriginalPatientId = PatientId = msg.PID.Patient_ID.IDNumber.Value; // 獲取需要更改的值 FamilyName = msg.PID.Patient_Name[0].FamilyName.Surname.Value; GivenName = msg.PID.Patient_Name[0].GivenName.Value; Sex = msg.PID.Administrative_Sex.Value; // ...其他值如Birthdate、原因等 // 使用消息中的信息更新PACS } }
由于HL7沒有定義發送和接收消息的規則,因此LEADTOOLS為您提供了插件的源碼,這樣你就能根據環境的要求完全自定義它。這個插件包括偵聽TCP連接的能力,它還可以輕松被修改來偵聽其他連接類型,或監視一個含有HL7消息數據的文本文件的文件夾。
互操作性是當今醫療部門降低費用最小化風險必不可少的一部分。HL7是全球范圍內交換病人護理和臨床信息的消息標準,但對軟件開發者來說這是一個復雜的領域。LEADTOOLS這一類的SDK可以幫助開發者兼容HL7,不耽誤項目的進度。當還需要PACS和DICOM時,LEADTOOLS的PACS框架和DICOM存儲服務器帶來了巨大的改變。這些框架節省了數月的開發時間,為開發與HL7相互連接的動態現代化醫學應用程序的開發者提供了內心的寧靜。
本文轉自
購買最新正版授權!""
慧都年終盛典火爆開啟,一年僅一次的最強促銷,破冰鉅惠不容錯過!!優惠詳情點擊查看>>
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn