Giao thức Lower Layer Protocol (LLP) được dùng riêng trong việc gửi và nhận bản tin HL7 giữa máy chủ và một máy trạm. Ưu điểm của phương pháp là giao thực đơn giản, dễ cài đặt và người dũng có thể làm chủ được các thông số kỹ thuật. Bên cạnh đó, hiện nay với sự phát triển vượt bậc của công nghệ Java và mã nguồn mở thì các kỹ sư lập trình có thể dễ dàng tham khảo và sử dụng lại mã nguồn của giao thức này.
Để làm chủ được giao thức, chúng tôi đã nghiên cứu chi tiết các nội dung sau: Khi truyền dữ liệu bản tin HL7, dữ liệu sẽ được đóng gói thành từng block, theo định dạng. Mỗi một block dữ liệu được đóng trong cặp < SB> dddd< EB> < CR>.
Mỗi <SB> được mã hóa bằng 1 byte ứng với mã ASCII <0x0B>
<dddđ>: dữ liệu được mã hóa theo dạng từng byte, ngữ nghĩa từng ký tự ứng với mã ký tự trong bảng mã ASCII.
<EN>: Đánh dấu kết thúc một block, được mã hóa bằng 1 byte ứng với mã ASCII (0x1C)
<CR> 1 byte mã Carriage Return <0x0D>.
Module cài đặt giao thức LLP
package server4his; import java.io.*; import java.net.*; /**
*
* @author Ngo The Hoang */
public class Client { Socket cSk = null; PrintWriter out = null; BufferedReader in = null;
String st1;
public void SendHL7To(long startingTime,String HL7ToBeSentData, String IPAdress, int portNumber,
String patientID, String messageType, String
messageId, String fromIp, String toIp, String
sendingTime, String sendingStatus, String
localLocation, String messageFileName) {
char Header = (char) 0x0B; char Trailer = (char) 0x1C; char CRi = (char) 0x0D; try {
String lineOut = "";
String strSending = Header+HL7ToBeSentData; long myCount = strSending.length();
int maxBuffer = 0;
int bufferConst = 8; // Default Value int myPos = 1;
cSk = new Socket(IPAdress, portNumber);// kh?i t?o m?t socket
// out : dua chu?i lên server
out = new PrintWriter(cSk.getOutputStream(), true); // in: nh?n chu?i du?c g?i t? server/
//out.println(Header);
//lineOut= Header+ lineOut + Trailer ; myCount = myCount - maxBuffer; if (maxBuffer == bufferConst)
else
{ lineOut= Header+ lineOut + Trailer +CRi ;} //if (maxBuffer == bufferConst)
//{lineOut= Header+ "Doan " +
Integer.toString(dem)+" " + Trailer + Header ;} //else
//{lineOut= Header+ "Doan " +
Integer.toString(dem)+" " + Trailer +CRi ;} //dem++;
//printing the SubHL7 message out.println(lineOut);
//out.println(Header + "Bat dau" + Trailer + Header); //out.println(Header + "Khuc giua 1 " + Trailer + Header);
//out.println(Header + "Khuc giua 2 " + Trailer + Header);
//out.println(Header+" Ket thuc" +Trailer + CRi); } // end while
BufferedReader messageFromServer = new
BufferedReader(new
InputStreamReader(cSk.getInputStream()));
myConfig.setMessageStatusInformation(patientID, messageType, messageId, fromIp, toIp, sendingTime, sendingStatus, localLocation, messageFileName); // inLine = "quit";
// out.println(inLine); cSk.close();
InputStreamReader(cSk.getInputStream())); } catch (IOException e) { e.printStackTrace(); } } }
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Việt
[1] Giáo trình : MỘT SỐ CHUẨN CÔNG NGHỆ THÔNG TIN Y TẾ VÀ CÁC NGUYÊN TẮC ÁP DỤNG CHUẨN TRONG NGÀNH Y TẾ VIỆT. NXB Lao động Xã hội, năm 2012. Chủ biên: PGS.TS. Nguyễn Hoàng Phương.
Tài liệu tiếng Anh
[1] Health Level Seven – Version 2.8 Final Standard, Healthy Level Seven. [2] http://loinc.org. Accessed Aug 2009
[3] http://hl7api.sourcelorge.net
[4] http://hl7.org/implement/standards/product_brief.cfm?product_id=7 [5] Vũ, A. T., Seldonb H. L., Chủ, H.D., Kiên, P. N. (2006), Electronic healthcare communications in Vietnam in 2004, International journal of medical informatics, 75:764-770.
[6] Kim, H.C., Yi, B.-K., Kim, I. K., Kwak, Y.-S. (2009) Integrating Clinical Information in National Biobank of Korea. J Med Syst, 35(4) (2011) 647-656.
[7] Jian WS, Hsu CY, Hao TH, Wen HC, Hsu MH, Lee YL, Li YC, Polun C (2007) Building a portable data and information interoperability infrastructure - framework for a standard Taiwan Electronic Medical Record Template. Computer methods and programs in biomedicine, 88:102-111.
[8] Han H. H., Lee M. H., Kim S. G., Jeong J. Y., Lee B. N., Choi M. S., Kim I. K., Park W. S., Ha K., Cho E., Kim Y., Bae J. B. (2010) Implementation of Medical Information Exchange System Based on EHR Standard. J Korean Soc Med Inform 16:281-289.
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... Thái Nguyên, ngày tháng năm 2020
Xác nhận của giáo viên hướng dẫn
TS. Nguyễn Hải Minh
Học viên