Một số nhận xét và kết luận

Một phần của tài liệu Nghiên cứu giải pháp gắn thông tin vùng hình ảnh region of interest trong ảnh y tế vào chuẩn tài liệu HL7 CDA và ứng dụng hiển thị thông tin lâm sàng trên smartphone (Trang 68 - 78)

4. Ý nghĩa khoa học và thực tiễn của đề tài

3.5. Một số nhận xét và kết luận

(1) Tài liệu CDA sau khi đã nhúng hình ảnh ROIs có thể làm việc tốt trên các trình duyệt Mobile với chất lượng hình ảnh tốt;

(2) Người dùng có thể hiển thị vùng ROI, dùng cơ chế zoom in/out để xem xét hình ảnh cùng như vùng ROIs hi cần;

(3) Ngoài ra đối với các trình duyệt trên, có thể chia thành 02 nhóm:

Nhóm 1: Hỗ trơ trực tiếp view tài liệu XML: Internet Explorer for Mobile, Firefox for Mobile and Dolphin browser.

Nhóm 2: Không trực tiếp hỗ trợ view tài liệu XML: Android browser, Opera browser for Mobile and Google Chrome browser for Mobile. Trong trường hợp này khi cần hiển thị tài liệu CDA ta phải lưu tài liệu CDA, CDA Style Sheet và ảnh y tế cùng vào một thư mục được chia sẻ và nhận biết bằng Internet Information Server (IIS), sau đó duyệt tài liệu bằng địa chỉ URL.

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết quả đạt đƣợc.

Cách tiếp cận của chúng tôi có một số lợi thế hơn các phương pháp đang có:

(1) Dữ liệu lâm sàng này được mã hóa bằng cách sử dụng một tiêu chuẩn quốc tế - CDA R2. Do đó, tài liệu lâm sàng tương thích với các ứng dụng hiện tại có hỗ trợ CDA, người nhận không cần phải nâng cấp các ứng dụng;

(2) Chỉ cần thay đổi tối thiểu trong trình sinh CDA, theo đó chỉ cần phải thêm vào hàm để tạo ra mục RegionOfInterest.values;

(3) Vì trình sinh CDA sẽ lo việc truy cập cơ sở dữ liệu, phương pháp của chúng tôi là độc lập với các nguồn dữ liệu;

(4) Các nội dung tài liệu lâm sàng và hình dạng vùng được quan tâm có thể được thể hiện bởi trình duyệt web tùy ý chọn mà không cần một trình xem đặc biệt.

Kiến nghị và hướng phát triển

Để tạo thuận lợi cho người sử dụng, chúng tôi có kế hoạch nâng cấp trình sinh CDA bằng cách cung cấp nhiều lựa chọn hơn khi sinh các tài liệu CDA và phiếu định kiểu tương ứng, chẳng hạn như sự lựa chọn cho các giá trị của thuộc tính href để chỉ định một phiếu định kiểu XSLT trong <? XML- stylesheet>, và các giá trị thuộc tính của thẻ <reference>.

Hiện nay ngôn ngữ HTML đã được nâng cấp thành HTML5 là một ngôn ngữ cấu trúc và trình bày nội dung cho World Wide Web và sẽ là công nghệ cốt lõi của Internet trong tương lai không xa, đề tài có thể phát triển cải thiện khả năng hỗ trợ cho đa phương tiện mới nhất để trình diễn các hình ảnh sinh động hơn, vẫn sẽ giữ lại những đặc điểm cơ bản của HTML4 và bổ sung thêm các đặc tả nổi trội của XHTML, DOM cấp 2, đặc biệt là JavaScript.

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

PHỤ LỤC 1:

MATLAB CODE

% MyReducing the number of picture element

% This version shows the original Medical picture - the

% Opening a Medical image file

[filename, pathname] = uigetfile('*.*', 'Select a Medical Image');

if isequal(filename,0)

disp('User selected Cancel') exit

else

%disp(['User selected ', fullfile(pathname, filename)])

BW = imread(filename);

%[B,L,N,A] = bwboundaries(BW);

[B,L,N,A] = bwboundaries(BW,8,'noholes');

imshow(BW);

hold on;

end

% detecting the contours

%[B,L,N,A] = bwboundaries(BW);

[B,L,N,A] = bwboundaries(BW,8,'noholes');

imshow(BW);

hold on;

for k=1:length(B), if(~sum(A(k,:))) boundary = B{k};

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

plot(boundary(:,2), boundary(:,1), 'g','LineWidth',1);

for l=find(A(:,k))' boundary = B{l};

plot(boundary(:,2), boundary(:,1), 'g','LineWidth',1);

%hold on

end end end

% reducing number of point for a contour reduce = B{15};

x=reduce(:,2);

y=reduce(:,1);

p = [x' y'];

ps4 = dpsimplify(reduce,eps);

%plot(p(:,1),p(:,2),'k')

plot(boundary(:,2), boundary(:,1), 'g','LineWidth',1);

hold on

plot(ps4(:,2),ps4(:,1),'r','LineWidth',1);

hold on

tol = 1;

boundary = B{23};

x=boundary(:,2);

y=boundary(:,1);

p = [x' y'];

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

ps5 = dpsimplify(boundary,eps);

plot(ps5(:,2),ps5(:,1),'r','LineWidth',1);

% Write results to a file

fid=fopen('…\roi\ROI1.txt','w') for k=1:length(ps4)

fprintf(fid,'<value value="%4.0f"/>\n <value value="%4.0f"/>\n',ps4(k,2),ps4(k,1))

end

fclose(fid)

fid1=fopen('…\roi\ROI1_Point.txt','w') for k=1:length(ps4)

fprintf(fid1,'%4.0f,%4.0f',ps4(k,2),ps4(k,1)) end

fclose(fid1)

fid2=fopen('…\roi\ROI1_XY_11.txt','w') for k=1:length(ps4)

fprintf(fid2,'%4.0f,',ps4(k,2)) end

fprintf(fid2,'\n') for k=1:length(ps4)

fprintf(fid2,'%4.0f,',ps4(k,1)) end

fclose(fid2)

fid3=fopen('…\roi\ROI1_XY_12.txt','w') for k=1:length(ps5)

fprintf(fid3,'%4.0f,',ps5(k,2))

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

end

fprintf(fid3,'\n') for k=1:length(ps5)

fprintf(fid3,'%4.0f,',ps5(k,1)) end

fclose(fid3)

fid4=fopen('…\roi\ROI1_X1Y1_12.txt','w')

%lineConst=95;%IE

lineConst=98;%Google Chrome for k=1:length(ps5)-1

x1=ps5(k,2);

y1=lineConst+ps5(k,1);

x2=ps5(k+1,2);

y2=lineConst+ps5(k+1,1);

b= sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

if x2<x1

fprintf(fid4,'demoElement.appendChild(createLine(%4.0f,%4.0f,%4 .0f,%4.0f,%4.0f));\n',x2,y2,x1,y1,b);

%fprintf(fid4,'demoElement.appendChild(createLine(%4.0f,%4.0f,%

4.0f,%4.0f,%4.0f));\n',ps5(k+1,2),20+ps5(k+1,1),ps5(k,2),20+ps5 (k,1),b);

else

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

fprintf(fid4,'demoElement.appendChild(createLine(%4.0f,%4.0f,%4 .0f,%4.0f,%4.0f));\n',x1,y1,x2,y2,b);

%fprintf(fid4,'demoElement.appendChild(createLine(%4.0f,%4.0f,%

4.0f,%4.0f,%4.0f));\n',ps5(k,2),20+ps5(k,1),ps5(k+1,2),20+ps5(k +1,1),b);

end end

fid5=fopen('…\roi\ROI1_X1Y1_11.txt','w') %lineConst=95;%IE

lineConst=98;%Google Chrome

for k=1:length(ps4)-1 x1=ps4(k,2);

y1=lineConst+ps4(k,1);

x2=ps4(k+1,2);

y2=lineConst+ps4(k+1,1);

b= sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

if x2<x1

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

PHỤ LỤC 2:

MÃ NGUỒN MỘT SỐ MODULES CHÍNH CDA GENERATOR

/**

* @author Mr. Minh */

import java.io.*;

import java.io.FileInputStream;

//import javax.lang.model.element.Element;

import java.util.Iterator;

import java.util.List;

import org.jdom.Element;

import org.jdom.input.*;

import org.jdom.output.XMLOutputter;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.concurrent.TimeUnit;

public class Main {

//=======================================

public org.jdom.Document openFileSource(String fileName) { try {

// Create a builder factory

SAXBuilder builder = new SAXBuilder();

//jdomDoc = builder.build(new FileInputStream(xmlFile));

org.jdom.Document jdomDoc;

jdomDoc = builder.build(new FileInputStream(fileName));

return jdomDoc;

} catch (Exception e) { e.printStackTrace();

System.out.print(e);

return null;

} }

public void saveMyCDA(String desFileName, org.jdom.Document CDABuffer) {

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

try {

XMLOutputter outputter = new XMLOutputter();

outputter.output(CDABuffer, new FileOutputStream(desFileName));

} catch (Exception e) { e.printStackTrace();

}

return;

}

//Get a Attribute

public String GetTheAttribute(Element currentElement, String attributeName) {

return currentElement.getAttributeValue(attributeName);

}

// Repalace A value to the Attribute

public void replaceTheAttribute(Element currentElement, String attributeName, String newValue) {

currentElement.setAttribute(attributeName, newValue);

}

// Get the context on the XML file

public String GetTheContext(Element currentElement, String rootName) {

return currentElement.getText();

}

// Replace the context

public void replaceTheContext(Element currentNode, String newValue) {

currentNode.setText(newValue);

}

public Element addNewTag_td(Element tr, String strValue, String align) {

Element td1 = new Element("td");

td1.setText(strValue);

td1.setAttribute("align", align);

tr.addContent(td1);

return tr;

}

public static void main(String[] args) {

try {

... }

} catch (Exception e) {

e.printStackTrace(); }

Số hóa bởi Trung tâm Học liệu - ĐHTN http://www.lrc-tnu.edu.vn/

TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt

[1] Nguyễn Hoàng Phương, Một số chuẩn về 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.

[2] TS. Đỗ Năng Toàn, TS. Phạm Việt Bình, Giáo trình xử lí ảnh, Trường ĐH Thái Nguyên khoa CNTT, tháng 11 năm 2007.

Tài liệu tiếng Anh

[3] Berglund A. Extensible Stylesheet Language (XSL) Version 1.1, W3C05 Press; 2006.

[4] Dolin, R.H., Alschuler, L., Boyer, S. and Beebe, C., HL7 Clinical Document Architecture, Release 2.0, HL7® Version 3 Standard, Health Level Seven, 2006.

[5] Nguyen Hai Minh, Byoung-Kee Yi, Il Kon Kim, et al. "Embedding the shapes of regions of interest into a Clinical Document Architecture document", Health Informatics Journal, DOI: 10.1177/1460458213502738, , 2013.

[6] Huang, K.-H., Hsieh, S.-H., Chang, Y.-J., Lai, F., Hsieh, S.-L., Lee, H.-H. (2009), Application of Portable CDA for Secure Clinical-document Exchange. J Med Syst. doi: 10.1007/s10916-009-9266-9.

[7] Huang EW, Tseng TL, Chang ML, Pan ML, Liou DM (2010) Generating Standardized Clinical Documents for Medical Information Exchanges. IEEE Computer Society, IT Pro, 26-32.

[8] Jian WS, Hsu CY, Hao TH, Wen HC, Hsu MH, Lee YL, Li YC, Polun C (2007) Building a portable data and information interoperability

Một phần của tài liệu Nghiên cứu giải pháp gắn thông tin vùng hình ảnh region of interest trong ảnh y tế vào chuẩn tài liệu HL7 CDA và ứng dụng hiển thị thông tin lâm sàng trên smartphone (Trang 68 - 78)

Tải bản đầy đủ (PDF)

(78 trang)