Lotus Sametime và DB2 pureXML hỗ trợ sự cộng tác trong y tế Christian Pichler, Giải pháp máy chủ dữ liệu, IBM Susan Malaika, Chuyên viên kỹ thuật cao cấp, IBM Japan Tóm tắt: Bài viết này
Trang 1Lotus Sametime và DB2 pureXML hỗ trợ sự cộng tác trong y tế
Christian Pichler, Giải pháp máy chủ dữ liệu, IBM
Susan Malaika, Chuyên viên kỹ thuật cao cấp, IBM Japan
Tóm tắt: Bài viết này giới thiệu một kịch bản trong lĩnh vực y tế dựa trên kiến
trúc XML xuyên suốt từ đầu đến cuối, nó cho phép các thông tin được mã hóa trong các tài liệu XML theo kiến trúc tài liệu lâm sàng (CDA - Clinical Document Architecture) mức 7 ngành y tế (HL7- Health Level 7) được lưu trữ trong cùng định dạng đó tại cơ sở dữ liệu DB2 ® pureXML® của IBM®, được trao đổi trong cùng một định dạng bằng cách sử dụng dịch vụ Web, và được hiển thị trực quan ở cùng định dạng bằng cách sử dụng Trình khách Lotus® Sametime ® Connect của IBM Bạn sẽ thấy cách một nguyên mẫu trình cắm thêm của Sametime cho các trình khách dịch vụ tin nhắn tức thời có thể được sử dụng để truy cập và hiển thị
dữ liệu về bệnh nhân dưới dạng XML được lưu giữ trong cơ sở dữ liệu như thế nào Bạn cũng sẽ tìm hiểu cách cài đặt và định cấu hình cho trình cắm thêm, và định cấu hình lại cho trình cắm thêm này cho các kịch bản khác
Giới thiệu
Có nhiều nguồn lực để điều trị bệnh, chi phí thuốc men tăng lên và các chuyên gia
y tế có mặt trên toàn cầu là các lý do đòi hỏi phải có trao đổi thông tin nhanh chóng, đáng tin cậy và thuận lợi để hỗ trợ sự cộng tác trong môi trường y tế Việc trao đổi thông tin giữa các tổ chức, doanh nghiệp và thậm chí giữa các châu lục là một vấn đề không chỉ trong môi trường y tế, mà còn trong bất cứ môi trường nào cần phải cộng tác
Xây dựng các ứng dụng hỗ trợ cộng tác đòi hỏi phải có các công nghệ cho phép việc trao đổi thông tin theo các định dạng chung, được chuẩn hóa Các định dạng
Trang 2được thống nhất này thường được các chính phủ, các tập đoàn công nghiệp và các
tổ chức phát triển các tiêu chuẩn tạo ra, chẳng hạn như định dạng Mức 7 Y tế (HL7- Health Level 7) trong lĩnh vực y tế Định dạng Kiến trúc tài liệu lâm sàng (CDA - Clinical Document Architecture), một đặc tả kỹ thuật của HL7, được thiết
kế dành cho việc trao đổi các thông tin bệnh nhân được chuẩn hóa
Thông tin về bệnh nhân được trình bày, lưu giữ và trao đổi giữa các máy tính bằng cách sử dụng các định dạng của ngành y tế, chẳng hạn như CDA HL7, thường được thực hiện bằng cách sử dụng XML ngày càng tăng lên Có các thông tin bệnh nhân ở dạng tệp tin điện tử cho phép ta sử dụng các công nghệ hiện đại và đã được khẳng định, ví dụ như dịch vụ tin nhắn tức thời Dịch vụ tin nhắn đã hiện diện trong môi trường y tế, nhưng nguyên mẫu ban đầu được mô tả trong bài viết này được dựa trên kiến trúc XML xuyên suốt từ đầu đến cuối Trong kiến trúc XML xuyên suốt từ đầu đến cuối, các thông tin được mã hóa trong tài liệu XML theo CDA HL7 được lưu trữ ở cùng định dạng trong cơ sở dữ liệu pureXML DB2 của IBM, chúng được trao đổi trong cùng một định dạng bằng cách sử dụng dịch vụ Web và được hiển thị trực quan với cùng định dạng khi ta sử dụng Trình khách Lotus Sametime Connect của IBM
Bài viết này giới thiệu một kịch bản trong lĩnh vực y tế và các nguyên lý của kiến trúc XML xuyên suốt từ đầu đến cuối Bài viết sẽ giải thích cách một nguyên mẫu trình cắm thêm Sametime cho trình khách dịch vụ tin nhắn tức thời có thể được sử dụng để truy cập và để hiển thị dữ liệu bệnh nhân dưới dạng XML được lưu giữ trong cơ sở dữ liệu Thao tác truy cập này được kích hoạt bởi các văn bản cụ thể được gõ nhập vào một tin nhắn được trao đổi giữa hai hay nhiều bên Tất cả các bên tham gia vào phiên gửi tin nhắn đều có thể thấy các dữ liệu bệnh nhân được hiển thị, miễn là họ có các trình cắm thêm đã được cài đặt Bài viết này giải thích cách cài đặt và định cấu hình cho trình cắm thêm và cách định lại cấu hình của trình cắm thêm cho các kịch bản khác Các thiết đặt tệp tin cấu hình của trình cắm
Trang 3thêm trong các ví dụ của bài viết này thích hợp để trình diễn việc truy cập các định dạng công nghiệp của pureXML nhưng chúng có thể dễ dàng được thay đổi để truy cập các dịch vụ Web khác Bài viết này kết thúc bằng một bản tóm tắt về các lĩnh vực liên quan mà bạn có thể khám phá thêm
Các ứng dụng Sametime cung cấp cho ta giao diện thời gian thực để truyền thông thống nhất và các dịch vụ hợp tác Các giao diện như vậy có thể là một phần của các định nghĩa của quá trình nghiệp vụ trong các lĩnh vực nơi mà việc truyền thông giữa mọi người (hoặc thiếu truyền thông) có thể làm cho quá trình nghiệp
vụ trì trệ hoặc dừng lại Nói cách khác, mục đích của ứng dụng Sametime là trao cho người sử dụng các phương tiện để giảm bớt hoặc, nếu có thể, loại bỏ sự chậm trễ của con người trong một quy trình nghiệp vụ Các quy trình nghiệp vụ mà định nghĩa của nó bao gồm việc truyền thông thống nhất và các dịch vụ cộng tác được gọi là Quy trình nghiệp vụ kích hoạt bằng truyền thông (CEBP - Communications-Enabled Business Processes) Giải pháp tự động hoá quy trình nghiệp vụ bằng cách sử dụng các định nghĩa CEBP được gọi là các giải pháp dựa trên nền CEBP Kịch bản được mô tả trong bài viết này là một ví dụ về CEBP
Một kịch bản
Ví dụ sau đây, minh hoạ trong Hình 1, được đưa ra để chứng tỏ khả năng của dịch
vụ tin nhắn hỗ trợ cho sự cộng tác Bệnh nhân Sully Van gặp bác sĩ Durenda Flor tại bệnh viện địa phương do bị đau và đau đầu liên tục Sau khi ra viện, bác sĩ Durenda Flor bổ xung thêm các thông tin mới, được thu thập sau khi khám cho cô, vào Hồ sơ điện tử về sức khỏe của cô Sully Van cũng được dặn là sẽ phải gặp lại bác sĩ hành nghề tại địa phương sau một tuần sau khi ra viện để kiểm tra lần cuối
Vì vậy, một tuần sau Sully Van đến gặp bác sĩ hành nghề tại địa phương là Chuck Smart và nói với ông bệnh của mình Sẽ rất hữu ích nếu bác sĩ Chuck Smart có trong tay hồ sơ bệnh án mà đồng nghiệp của ông là Durenda Flor đã ghi lại một tuần trước đó
Trang 4Hình 1 Cộng tác trong lĩnh vực y tế để chia sẻ thông tin về bệnh nhân giữa các chuyên gia y tế
Theo trạng huống của ví dụ, thì ta có những lựa chọn khác nhau về cách bác sĩ Chuck Smart có thể yêu cầu thông tin từ Durenda Flor Chuck có thể đơn giản là gọi điện cho Durenda và yêu cầu bà miêu tả các kết quả khám bệnh của bà Một tùy chọn khác có thể là Chuck yêu cầu Durenda gửi fax hồ sơ bệnh nhân đến văn phòng của Chuck Tùy chọn thứ ba là có thể yêu cầu thông tin về bệnh nhân thông qua dịch vụ tin nhắn chẳng hạn như qua Lotus Sametime Connect Nguyên mẫu được mô tả trong bài viết này minh họa trình cắm thêm Lotus Sametime Connect, cho phép lấy ra các tài liệu XML theo CDA HL7 được lưu trong cơ sở dữ liệu pureXML của DB2 Trong khi Chuck và Durenda được kết nối với nhau thông qua các tin nhắn bằng cách sử dụng Lotus Sametime Connect, Chuck có thể gửi một tin nhắn đến Durenda hỏi về bệnh nhân Sully Van Phía sau hậu trường, trình cắm thêm trong Trình khách Lotus Sametime Connect của Chuck phân tích tin nhắn và truy cập thông tin của bệnh nhân trong hệ thống của Durenda, tìm các dữ liệu cho Chuck sử dụng
Kiến trúc XML xuyên suốt từ đầu đến cuối
Trang 5Mục đích ban đầu của tài liệu XML theo CDA HL7 là cung cấp một định dạng chuẩn để trao đổi thông tin về bệnh nhân Tuy nhiên, tài liệu XML CDA HL7 cũng được sử dụng để lưu trữ thông tin về bệnh nhân trong ví dụ này Phương pháp tiếp cận được mô tả ở đây còn sử dụng tài liệu XML CDA HL7 kết hợp với công nghệ xử lý tài liệu XML hiện có để hiển thị trực quan thông tin về bệnh nhân cho người sử dụng ứng dụng Việc sử dụng tài liệu XML CDA HL7 để lưu trữ, trao đổi và hiển thị triển khai thực hiện một kiến trúc XML xuyên suốt từ đầu đến cuối, như được minh họa trong Hình 2:
Hình 2 Kiến trúc XML xuyên suốt từ đầu đến cuối để hỗ trợ hợp tác trong lĩnh vực y tế
Kiến trúc XML xuyên suốt từ đầu đến cuối gồm ba tầng - tầng dữ liệu, tầng dịch
vụ phổ quát và tầng tương tác người dùng:
Dữ liệu: Tầng dữ liệu là một cơ sở dữ liệu pureXML của DB2, sử dụng khả
năng lưu trữ XML nguyên sinh của DB2 Lưu trữ XML nguyên sinh có
Trang 6nghĩa là XML có thể được lưu trữ trực tiếp trong cơ sở dữ liệu mà không cần phải chia nhỏ các thông tin được mã hóa trong các phần tử và thuộc tính của một tài liệu XML vào các bảng quan hệ Do đó, cơ sở dữ liệu phục
vụ giống như một kho trữ dữ liệu cho các tài liệu XML CDA HL7 Cơ sở
dữ liệu đã được tạo ra bằng cách sử dụng cái gọi là bó công nghiệp, đó là một cách tiếp cận dễ dàng và thuận tiện để tạo ra và điền dữ liệu cho một cơ
sở dữ liệu Các bó công nghiệp này có sẵn và miễn phí cho nhiều định dạng công nghiệp bao gồm cả CDA HL7 Để biết thêm thông tin về các bó công nghiệp, xin tham khảo phần Tài nguyên của bài viết này
Các dịch vụ phổ quát: Các dịch vụ phổ quát là một bộ đơn giản nhưng cố
định các hoạt động, bao gồm chèn, cập nhật, xóa, và truy vấn, cho phép trưng ra bất kỳ cột XML nào của cơ sở dữ liệu pureXML DB2 thông qua các hoạt động của dịch vụ web Các hoạt động của dịch vụ web cho phép truy cập vào tài liệu XML CDA HL7 được lưu trữ trong cơ sở dữ liệu thông qua các yêu cầu dịch vụ web đơn giản Dịch vụ phổ quát, chứa tất cả các thành phần cần thiết để thiết lập và định cấu hình một cách thành công cho các dịch vụ, đã có sẵn và miễn phí Để biết thêm thông tin về các dịch vụ phổ quát, xin tham khảo phần Tài nguyên của bài viết này
Tương tác người dùng: Tầng tương tác người dùng cho phép người sử
dụng tương tác với một ứng dụng (ví dụ, hiển thị trực quan thông tin được lưu trữ trong cơ sở dữ liệu) Trong trường hợp này, trình cắm thêm của Trình khách Lotus Sametime Connect cho phép truy cập vào cơ sở dữ liệu thông qua các dịch vụ phổ quát để lấy ra các thông tin bệnh nhân thích hợp
và xem các thông tin đã lấy ra Chi tiết hơn về các chức năng của trình cắm thêm, chẳng hạn như cách các thông tin về bệnh nhân có thể được lấy ra như thế nào thông qua Trình khách Lotus Sametime Connect, được mô tả trong các phần sau
Trang 7
Chức năng của trình cắm thêm
Trình khách Lotus Sametime Connect đã được mở rộng bằng cách thực hiện một nguyên mẫu trình cắm thêm, cho phép lấy ra các tài liệu XML CDA HL7, là các thông tin về bệnh nhân, được lưu trữ trong cơ sở dữ liệu pureXML DB2 Phần này của bài viết mô tả việc thực hiện các trình cắm thêm, được minh hoạ tại Hình 3 Các mô tả về chức năng này dựa trên giả định rằng một bác sĩ khởi chạy Trình khách Lotus Sametime Connect (từ giờ trở đi ta gọi đơn giản là trình khách) với ý định yêu cầu thông tin bệnh nhân từ một bác sĩ khác
Hình 3 Thực hiện trình cắm thêm cung cấp các chức năng để lấy ra và xem tài liệu XML
Trang 8Như được mô tả tại hình 3, trình khách nạp một tệp tin khởi tạo có thể tùy biến được, khi khởi chạy chương trình (bước 1 trong hình 3) Tệp tin khởi tạo (xem Liệt kê 1 để biết một ví dụ tệp tin khởi tạo) chứa các tham số để định cấu hình cho trình khách, chẳng hạn như điểm đầu cuối của dịch vụ phổ quát để truy cập tài liệu XML CDA HL7 được lưu trữ trong cơ sở dữ liệu Ví dụ, điểm đầu cuối được trình khách sử dụng để gửi yêu cầu dịch vụ web để truy cập vào tài liệu XML CDA HL7 được lưu trữ trong cơ sở dữ liệu Lưu ý rằng tất cả các tham số trong tệp tin khởi tạo được mô tả cùng với các mô tả về các chức năng trong suốt các phần sau của bài viết Sau khi nạp tất cả các tham số cấu hình và khởi chạy, trình khách sẵn sàng tiếp nhận và xử lý tin nhắn được người sử dụng nhập vào
Liệt kê 1 Tệp tin khởi tạo của trình cắm thêm của pureXML
Trang 9return <entry id="{$patient/id/@root}" label="{$patient/title/text()}"/>
Trang 10từ nữa là tên của bệnh nhân Ví dụ một mẫu văn bản tương ứng có thể là "patient Sully Van"
Nếu bác sĩ gõ nhập một tin nhắn có chứa mẫu ấy, trình khách sẽ được kích hoạt để truy vấn cơ sở dữ liệu về tài liệu XML CDA HL7 của một bệnh nhân cụ thể (bước
3 trong Hình 3) Các biểu thức XQuery để truy vấn cơ sở dữ liệu tìm tài liệu XML CDA HL7 phù hợp cũng được định nghĩa trong tệp cấu hình thông qua phần tử
<keysQuery> Truy vấn được thiết kế để trả lại một tập hợp các mã định danh duy nhất cho mỗi bản ghi tìm thấy trong cơ sở dữ liệu cũng như mô tả của chính tài liệu XML đó Các mã định danh duy nhất mà truy vấn trả về là cần thiết cho chính trình cắm thêm để xử lý các tài liệu XML khác nhau Các mô tả, cũng do biểu thức truy vấn trả về, được sử dụng để cung cấp cho bác sĩ một danh sách các tài liệu XML CDA HL7 khớp với các tham số đầu vào (bước 2 và 3 trong Hình 3); ví dụ, tên bệnh nhân là Sully Van
Sau khi bác sĩ chọn một trong các tài liệu XML CDA HL7, trình khách truy vấn
cơ sở dữ liệu để tìm tài liệu XML cụ thể đã được lựa chọn (bước 4) Để lấy ra tài liệu XML cụ thể, trình khách sử dụng biểu thức XQuery được định nghĩa thông qua phần tử <documentQuery> trong tệp tin khởi tạo và một trong các khóa được biểu thức XQuery trước đó trả về Khóa được sử dụng khớp với khóa được người
sử dụng chọn
Một khi tài liệu XML đã được trình khách nhận, thì trước khi hiển thị, nó được biến đổi bằng cách sử dụng một phiếu định kiểu (stylesheet) của XML (bước 5 trong Hình 3) Các phiếu định kiểu sẽ sử dụng được định nghĩa thông qua phần tử
<xsl> trong tệp tin khởi tạo Khi trình cắm thêm đã biến đổi tài liệu XML CDA HL7 được lấy ra từ cơ sở dữ liệu bằng cách sử dụng phiếu định kiểu XML, nó sẽ hiển thị kết quả chuyển đổi cho người sử dụng (bước 6)
Trang 11
Trình diễn trình cắm thêm
Sau khi đọc về mục đích của kiến trúc XML xuyên suốt từ đầu đến cuối và chức năng của trình cắm thêm, chúng ta hãy xem trình cắm thêm cho Trình khách Lotus Sametime Connect của IBM hoạt động như thế nào Một lần nữa, trình cắm thêm cho phép trình khách truy cập vào tài liệu XML được lưu trong cơ sở dữ liệu pureXML DB2
Để hiểu rõ hơn, ta sử dụng ví dụ về trạng huống được mô tả trong phần "Giới thiệu" của bài viết này Xin tóm tắt lại, nếu bác sĩ Chuck Smart xem được hồ sơ bệnh án cụ thể mà đồng nghiệp Durenda Flor của ông đã ghi lại một tuần trước đó thì rất tốt Vì thế bác sĩ Chuck Smart khởi chạy Trình khách Lotus Sametime Connect của IBM Thông qua trình khách Chuck biết rằng đồng nghiệp Durenda của ông đang mở máy tính, biểu tượng màu xanh lá cây bên cạnh tên của Durenda sáng lên, như ở Hình 4:
Hình 4 Danh sách các liên hệ trong Trình khách Lotus Sametime Connect của IBM
Trang 12Vì Durenda đang ở trên máy tính, Chuck bắt đầu trò chuyện bằng tin nhắn với cô Bạn có thể trò chuyện được bằng cách nhấn đúp chuột vào tên của Durenda, mở ra cửa sổ trò chuyện (chat), là chức năng điển hình của các môi trường dịch vụ tin nhắn tức thời Cửa sổ trò chuyện cho phép Chuck giao tiếp với Durenda được minh họa tại Hình 5:
Hình 5 Cửa sổ trò chuyện của Trình khách Lotus Sametime Connect của IBM
Trang 13Khi đã có cửa sổ trò chuyện, Chuck bắt đầu cuộc đàm thoại bằng cách nhập và gửi tin nhắn: "Chào Durenda, bạn có thể gửi cho tôi thông tin về bệnh nhân Sully Van không ?" như được minh họa tại Hình 6:
Hình 6 Nhập tin nhắn vào cửa sổ trò chuyện của Trình khách Lotus
Sametime Connect của IBM
Trang 14Bạn hãy nhớ rằng trình khách dịch vụ tin nhắn tức thời đã được mở rộng để phân tích và quét các tin nhắn để tìm cụm từ khóa cụ thể, như đã được xác định trong một biểu thức chính quy trong tệp tin khởi tạo Nhìn vào văn bản tin nhắn đã được nhập trong bước trên, ta thấy trong tin nhắn có từ "bệnh nhân" (patient), từ khóa được sử dụng trong kịch bản này Vì vậy, trình cắm thêm sử dụng hai từ đi theo sau từ khoá trong tin nhắn của Chuck, là "Sully" và "Van", là tên của bệnh nhân,
và truy vấn cơ sở dữ liệu của Durenda để lấy thông tin y tế tương ứng
Cửa sổ trò chuyện sau đó sẽ mở rộng để cung cấp cho Chuck, người sử dụng, một danh sách các thông tin có sẵn vể bệnh nhân Sully Van của mình, như được minh họa trong Hình 7:
Hình 7 Cửa sổ trò chuyện được mở rộng hiển thị các thông tin về bệnh nhân
đã tìm thấy trong cơ sở dữ liệu
Trang 15Để xem thông tin đã tìm thấy về Sully Van, Chuck nhấp đúp chuột vào mục tương ứng trong phần kết quả tìm kiếm, mở ra một cửa sổ riêng biệt, như được minh hoạ tại Hình 8:
Hình 8 Thông tin về bệnh nhân được hiển thị như là một phần của cuộc trò chuyện bằng tin nhắn
Trang 16Khả năng để xem chi tiết các lần khám bệnh của Sully Van tại phòng khám của Durenda của cho phép Chuck xem và thảo luận về tình trạng sức khoẻ của bệnh nhân với Durenda
Cài đặt và định cấu hình cho trình cắm thêm