轉帖|使用教程|編輯:龔雪|2015-12-08 11:07:09.000|閱讀 533 次
概述:LEADTOOLS Medical Imaging SDK包含在應用程序中添加 HL7功能所需的一切。本文將對HL7進行簡單介紹。并展示如何通過LEADTOOL產品將HL7集成到醫(yī)學應用程序。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Health Level Seven (HL7)信息是一個靈活的結構化電子健康信息交換標準,受到了廣泛的歡迎和接受。HL7可以啟用標準化信息和圖像系統(tǒng)的通信和互操作性,如電子健康記錄系統(tǒng)(EHR)、醫(yī)院信息系統(tǒng)(HIS)、放射信息系統(tǒng)(RIS)、實驗室信息系統(tǒng)(LIS)和圖像存檔及通信系統(tǒng)(PACS),以及任何用于計費和病人跟蹤功能的個人實踐管理或前臺應用程序。
LEADTOOLS Medical Imaging SDK包含在應用程序中添加 Health Level Seven 功能所需的一切。
一般情況下,有如此多優(yōu)點的標準肯定有一個陡峭的學習曲線。盡管完全不同的應用程序現在可以通信,但是開發(fā)者必須實現控制傳入和傳出消息的接口。LEADTOOLS HL7 SDK簡化了復雜HL7標準到任何醫(yī)學應用程序的集成。此外,如果你需要建立一個支持HL7消息的DICOM/PACS解決方案,LEADTOOLS提供了多個預設接口幫助你更新病人和模態(tài)調度(MWL/MPPS)。LEADTOOLS擁有如此全面的醫(yī)學成像技術,開發(fā)者使用它可以快速創(chuàng)建功能完整且兼容HL7的PACS。
LEADTOOLS HL7的核心功能是創(chuàng)建和解析原始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|||||||||
當然還有很多信息需要填寫,例如病人的聯(lián)系信息、就診的醫(yī)生、癥狀報告等。你可能會猜到,這或許會帶來一些混淆,特別是多個HL7版本和子版本之間的不同。
LEADTOOLS使用Leadtools.Medical.HL7命名空間極大簡化了此類消息的創(chuàng)建。它的類和枚舉為開發(fā)者提供了一個創(chuàng)建和解析HL7消息的簡單框架。你不需要關心豎線的的個數或來回查看不同的規(guī)范,以確保沒有因為少一個字符而弄錯病人的姓名和出生年月。LEADTOOLS包括了現在最流行的HL7版本 (2.6, 2.5.1, 2.3.1)中每個消息類型的數據模型,枚舉它們能以更可讀的方式生成消息。以下的代碼創(chuàng)建了一個ADT_A01消息,用于確認病人、填寫一些基本的病人身份信息。
// 創(chuàng)建并將信息投入一個模型,同時創(chuàng)建默認字段填充
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等開發(fā)的HL7接口,LEADTOOLS還支持PACS解決方案中HL7消息的接收。這個綜合的PACS框架和DIOCM存儲服務提供了高級類和OEM-ready組件,開發(fā)者能以很少的工作量完成PACS開發(fā)。
正如許多不同的醫(yī)學應用程序越來越需要HL7一樣,PACS在醫(yī)院或醫(yī)療實踐中作為一個獨立的個體被需要,用來存儲DICOM圖像。然而,互操作性已經改變了整體的結構,PACS加入,這樣它就能和管理病人信息和賬單的前臺應用程序交互。例如,一個病人多年不會去見整形專家,但是現在需要一個X-射線或MRI。上次訪問至今,他們可能結婚或搬走了。前臺的病人確認應用程序可以將HL7消息發(fā)送給網絡中的每一個系統(tǒng),包括PACS,這樣現在的醫(yī)生就可以查找和查看病人若干年前的就診記錄。
LEADTOOLS DICOM存儲服務器包含了一個病人更新器插件,可以通過監(jiān)聽其他應用程序發(fā)送的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沒有定義發(fā)送和接收消息的規(guī)則,因此LEADTOOLS為您提供了插件的源碼,這樣你就能根據環(huán)境的要求完全自定義它。這個插件包括偵聽TCP連接的能力,它還可以輕松被修改來偵聽其他連接類型,或監(jiān)視一個含有HL7消息數據的文本文件的文件夾。
互操作性是當今醫(yī)療部門降低費用最小化風險必不可少的一部分。HL7是全球范圍內交換病人護理和臨床信息的消息標準,但對軟件開發(fā)者來說這是一個復雜的領域。LEADTOOLS這一類的SDK可以幫助開發(fā)者兼容HL7,不耽誤項目的進度。當還需要PACS和DICOM時,LEADTOOLS的PACS框架和DICOM存儲服務器帶來了巨大的改變。這些框架節(jié)省了數月的開發(fā)時間,為開發(fā)與HL7相互連接的動態(tài)現代化醫(yī)學應用程序的開發(fā)者提供了內心的寧靜。
本文轉自
購買最新正版授權!""
慧都年終盛典火爆開啟,一年僅一次的最強促銷,破冰鉅惠不容錯過!!優(yōu)惠詳情點擊查看>>
本站文章除注明轉載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn