Nghiên cứu và xây dựng thử nghiệm hệ thống đơn thuốc điện tử tại Việt Nam theo mô hình mạng lưới surescripts Nghiên cứu và xây dựng thử nghiệm hệ thống đơn thuốc điện tử tại Việt Nam theo mô hình mạng lưới surescripts luận văn tốt nghiệp thạc sĩ
Trang 2Học Viên: Võ Tư Duy 1
MỤC LỤC
M ỤC LỤC 1
LỜI CAM ĐOAN 5
LỜI CẢM ƠN 6
DANH M ỤC CÁC TỪ TIẾNG ANH, TỪ VIẾT TẮT 7
DANH M ỤC CÁC BẢNG 9
DANH MỤC CÁC HÌNH VẼ, ĐỒ THI ̣ 10
M Ở ĐẦU 14
PH ẦN 1: NỀN TẢNG CƠ SỞ 17
CHƯƠNGI:TỔNG QUAN VỀ ĐƠN THUỐC ĐIỆN TỬ VÀ MẠNG LƯỚI SURECRIPTS 17
M ở Chương 17
1 T ổng quan về đơn thuốc điện tử 17
1.1 Tổng quan 17
1.2 Lợi ích của đơn thuốc điện tử 17
2 Tổng quan về Mạng Lưới Surescripts 18
2.1 Tổng quan 18
2.2 Thế mạnh của Surescripts 19
2.3 Cách hoạt động 19
2.4 Bảo mật 21
CHƯƠNGII:NỀN TẢNG CÔNG NGHỆ WEB API VÀ MÔ HÌNH PHÁT TRIỂN WEBSITE MVC 22
Mở Chương 22
1 Công nghệ Web API 22
1.1 Tổng quan 22
1.2 Kiến Trúc Web API 23
The hosting layer - Tầng hosting 25
The message handler pipeline - Tầng xử lý thông điệp 25
The controller handling layer - Tầng xử lý của controller 26
1.3 Lợi ích của Web API 27
2 Mô hình phát tri ển website MVC 28
2.1 Tổng quan 28
2.2 Luồng xử lý yêu cầu của người dùng trong MVC 30
2.3 Lợi ích của mô hình MVC 31
Trang 3Học Viên: Võ Tư Duy 2
SURESCRIPTVN 32
CHƯƠNGIII:HỆ THỐNG ĐƠN THUỐC ĐIỆN TỬ SURESCRIPTVN 32
Mở Chương 32
1 Tổng quan về Hệ Thống Đơn Thuốc Điện Tử SurescriptVN 32
1.1 Mục Đích 32
1.2 Lợi Ích 32
1.3 Các thành phần trong hệ thống 33
1.4 Mô hình hoạt động chung 36
2 Phân tích yêu cầu chức năng 38
2.1 Yêu cầu chức năng của hệ thống SurescriptVN 38
2.1.1 Yêu cầu chức năng của Website SurescriptVN 38
A Ca sử dụng cho người dùng, bệnh viện, nhà thuốc và bệnh nhân 38
B Ca sử dụng cho quản trị viên 45
2.1.2 Yêu cầu APIs của hệ thống SurescriptVN 49
A APIs cho bệnh viện, phòng khám 49
B APIs cho nhà thuốc 55
2.2 Yêu cầu chức năng của Website Bệnh Viện Vinmec 58
Sơ đồ ca sử dụng 58
UC15 – Đăng nhập 58
UC16 – Tra cứu thông tin bệnh nhân 59
UC17 – Thêm bệnh nhân mới 59
UC18 – Sửa thông tin bệnh nhân 60
UC19 – Cập nhật thuốc dị ứng của bệnh nhân 60
UC20 – Kê đơn thuốc mới cho bệnh nhân 61
UC21 – Tra cứu đơn thuốc bệnh nhân 62
UC22 – Xem thông tin một đơn thuốc 62
UC23 – Sửa đơn thuốc 63
UC24 – Hủy đơn thuốc 63
UC25 – In đơn thuốc 64
UC26 – Bác sĩ đăng Xuất 64
2.3 Yêu cầu chức năng của Website Nhà Thuốc Linh Đan 65
Sơ đồ ca sử dụng 65
UC27 – Dược sĩ đăng nhập 65
UC28 – Tra cứu đơn thuốc của nhà thuốc 66
UC29 – Xem thông tin một đơn thuốc 66
UC30 – Xuất đơn thuốc 67
Trang 4Học Viên: Võ Tư Duy 3
UC31 – In đơn thuốc 67
UC32 – Tra cứu thuốc 68
UC33 – Cập nhật thông tin thuốc 68
UC34 – Dược sĩ đăng xuất 69
CHƯƠNGIV:THI ẾT KẾ HỆ THỐNG ĐƠN THU ỐC ĐI ỆN TỬ SURESCRIPTVN 70
Mở Chương 70
1 Thi ết kế kiến trúc tổng quát 70
2 Thi ết kế hệ thống con SurescriptVN 73
2.1 Thiết kế kiến trúc Website SurescriptVN 73
2.2 Thiết kế kiến trúc SurescriptVN APIs 74
2.2.1 Model 76
2.2.2 Các API Controller 81
2.3 Thiết kế database 90
Sơ đồ mối quan hệ giữa các bảng 90
Thiết kế từng bảng dữ liệu cụ thể 92
2.4 Xây dựng cơ chế kiểm tra thuốc tốt 98
3 Thi ết kế Website Bệnh Viện Vinmec 101
3.1 Thiết kế kiến trúc 101
3.2 Thiết kế database 101
Mối quan hệ giữa các bảng 101
Thiết kế từng bảng dữ liệu cụ thể 101
4 Thi ết kế Website Nhà Thuốc Linh Đan 103
4.1 Thiết kế kiến trúc 103
4.2 Thiết kế database 103
Mối quan hệ giữa các bảng 103
Thiết kế từng bảng dữ liệu cụ thể 103
CHƯƠNGV:THỬ NGHIỆM HỆ THỐNG VÀ ĐÁNH GIÁ 105
Mở Chương 105
1 Môi trường thử nghiệm 105
2 Chương Trình Thử Nghiệm 105
2.1 Hệ Thống SurescriptVN 105
2.1.1 Website SurescriptVN 105
UC07 - Đăng ký Bệnh Viện 105
UC08 - Đăng ký Nhà Thuốc 107
UC09 – Xem thông tin đơn thuốc 109
UC12 – Thêm thuốc vào hệ thống 111
UC13 – Sửa thông tin Thuốc 112
Trang 5Học Viên: Võ Tư Duy 4
UC14 – Xóa thuốc khỏi hệ thống 112
2.1.2 SurescriptVN APIs 113
2.2 Website Bệnh Viện Vimec 113
UC16 – Tra cứu thông tin bệnh nhân 113
UC19 – Cập nhật thuốc dị ứng bệnh nhân 115
UC20 – Kê đơn thuốc mới 116
UC23 – Sửa đơn thuốc 119
UC24 – Hủy đơn thuốc 121
UC25 – In đơn thuốc 122
2.3 Website Nhà Thuốc Linh Đan 122
UC28 – Tra cứu đơn thuốc của nhà thuốc 122
UC30 – Xuất đơn thuốc 123
UC32 – Tra cứu thuốc của nhà thuốc 123
UC33 – Cập nhật thông tin thuốc 124
3 Kết quả thử nghiệm 124
CHƯƠNG VI.KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 125
TÀI LI ỆU THAM KHẢO 126
Trang 6Học Viên: Võ Tư Duy 5
LỜI CAM ĐOAN
Tác giả luận văn xin cam đoan đây là công trình nghiên cứu của riêng tác giả luận văn đúc kết từ quá trình nghiên cứu, tập hợp các nguồn tài liệu, các kiến thức
đã học đến việc tự thu thập các thông tin liên quan và liên hệ thực tế tại đơn vị công tác Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công
bố trong bất kỳ công trình nào khác
Tác giả luận văn xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận
văn này đã được cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ
nguồn gốc
Tác giả luận văn xin chi ̣u trách nhiê ̣m về nghiên cứu của mı̀nh
Ho ̣c viên thực hiê ̣n luâ ̣n văn
Võ Tư Duy
Trang 7Học Viên: Võ Tư Duy 6
LỜI CẢM ƠN
Trước tiên, tác giả luận văn xin được gửi lời cảm ơn đến tất cả quý thầy cô
đã giảng dạy trong chương trình đào ta ̣o tha ̣c sỹ, Viện Công Nghê ̣ Thông Tin và
Truyền Thông, Đa ̣i ho ̣c Bách Khoa Hà Nội, những người đã truyền đạt cho tác giả
những kiến thức hữu ích làm cơ sở cho tác giả thực hiện tốt luận văn này
Với lòng kính trọng và biết ơn, tác giả luận văn xin được bày tỏ lời cảm ơn
tới TS Nguyễn Hữu Đức đã khuyến khích, tận tình hướng dẫn trong thời gian thực
hiện luận văn Mặc dù trong quá trình thực hiện luận văn có giai đoạn không được
thuận lợi nhưng những gì thầy đã hướng dẫn, chỉ bảo đã cho tác giả luận văn nhiều
kinh nghiệm trong thời gian thực hiện đề tài
Sau cùng tác giả luận văn xin gửi lời biết ơn sâu sắc đến gia đình đã luôn tạo điều kiện tốt nhất cho tác giả luận văn trong suốt quá trình học cũng như thực hiện
luận văn Do thời gian có hạn và kinh nghiệm nghiên cứu khoa học chưa nhiều nên
luận văn còn nhiều thiếu xót, rất mong nhận được ý kiến góp ý của Thầy/Cô và các
ba ̣n học viên
Học viên thực hiê ̣n luâ ̣n văn
Võ Tư Duy
Trang 8Học Viên: Võ Tư Duy 7
DANH MỤC CÁC TỪ TIẾNG ANH, TỪ VIẾT TẮT
T ừ Viết Tắt Gi ải Nghĩa
dụng
hoặc chọn dữ liệu có sẵn
các ứng dụng web
đổi giữa Client và Server
Trang 9Học Viên: Võ Tư Duy 8
Trang 10Học Viên: Võ Tư Duy 9
DANH MỤC CÁC BẢNG
Bảng 1: clinics – Bệnh Viện/Phòng Khám 92
Bảng 2: pharmacy – Nhà Thuốc 92
Bảng 3: patient – Bệnh Nhân 93
Bảng 4: drug - Thuốc 94
Bảng 5: prescription – Đơn Thuốc 94
Bảng 6: prescriptiondrug – Thuốc trong đơn 95
Bảng 7: pharmacydrug – Thuốc đã được nhà thuốc đăng ký 95
Bảng 8: drugcategory – Nhóm thuốc 96
Bảng 9: drugunit – Đơn vị/Đóng gói thuốc 96
Bảng 10: patientallergy – Thuốc bệnh nhân dị ứng 96
Bảng 11: accstatus – Trạng thái bệnh viện/nhà thuốc 96
Bảng 12: user – người dùng hệ thống SurescriptVN 97
Bảng 13: user – người dùng hệ thống Bệnh Viện Vinmec 101
Bảng 14: doctor – Bác Sĩ 102
Bảng 15: user – người dùng hệ thống Nhà Thuốc Linh Đan 103
Bảng 16: pharmacist – Dược Sĩ 104
Trang 11Học Viên: Võ Tư Duy 10
DANH MỤC CÁC HÌNH VẼ, ĐỒ THI ̣
Hình 1: Surescripts Network logo 19
Hình 2: Cách hoạt động của Surescripts Network 20
Hình 3: Web API hỗ trợ hầu hết thiết bị 22
Hình 4: Kiến trúc Web API 24
Hình 5: Thành phần xử lý thông điệp - Message Handler 25
Hình 6: Các phương thức của Web API 28
Hình 7: Xử lý yêu cầu người dùng trong MVC 30
Hình 8: Sơ đồ hoạt động chung 36
Hình 9: Sơ đồ ca sử dụng cho người dùng của Website SurescriptVN 38
Hình 10: Sơ đồ ca sử dụng cho quản trị viên của Website SurescriptVN 45
Hình 11: Sơ đồ ca sử dụng cho Bệnh Viện 49
Hình 12: Sơ đồ ca sử dụng cho nhà thuốc 55
Hình 13: Sơ đồ ca sử dụng cho Bác Sĩ 58
Hình 14: Sơ đồ ca sử dụng cho Dược Sĩ 65
Hình 15: Kiến trúc tổng quát Hệ thống Đơn Thuốc Điện Tử SurescriptVN 71
Hình 16: Sơ đồ kiến trúc website theo mô hình MVC 73
Hình 17: Sơ đồ kiến trúc SurescriptVN APIs 74
Hình 18: Thành phần Model cùa SurescriptVN APIs 76
Hình 19: Lớp clinic.cs - Bệnh Viện 77
Hình 20: Lớp pharmacy.cs – Nhà Thuốc 78
Hình 21: Lớp patient.cs - Bệnh Nhân 79
Hình 22: Lớp drug.cs - Thuốc 80
Hình 23: Lớp prescription.cs - Đơn Thuốc 81
Trang 12Học Viên: Võ Tư Duy 11
Hình 24: Các API Controller 82
Hình 25: Các APIs của PrescriptionController 82
Hình 26: HTTP GET lấy thông tin một đơn thuốc 83
Hình 27: Dữ liệu đơn thuốc dưới dạng JSON 83
Hình 28: HTTP GET lấy danh sách đơn thuốc của nhà thuốc 84
Hình 29: Danh sách đơn thuốc trả về dưới dạng JSON 84
Hình 30: HTTP POST thêm đơn thuốc mới vào hệ thống 85
Hình 31: API trả lại mã đơn thuốc mới 85
Hình 32: HTTP PUT Xuất đơn thuốc 86
Hình 33: APIs của ClinicController 86
Hình 34: APIs của PharmacyController 87
Hình 35: APIs của DrugController 88
Hình 36: APIs của PatientController 89
Hình 37: APIs của PharmacyDrugController2.3 Thiết kế database 89
Hình 38: Mối quan hệ giữa các bảng của Hệ thống SurescriptVN 90
Hình 39: Bảng Patient, Drug và PatientAllergy 98
Hình 40: Sơ đồ nghiệp vụ API.12 - Kiểm tra thuốc tốt 100
Hình 41: Mối quan hệ giữa các bảng của Website Bệnh Viện Vinmec 101
Hình 42: Mối quan hệ giữa các bảng của Website Nhà Thuốc Linh Đan 103
Hình 43: Danh sách Bệnh Viện 105
Hình 44: Dialog Đăng Ký Bệnh Viện 106
Hình 45: Trang Quản Lý Bệnh Viện 106
Hình 46: Dialog Cập nhật trạng thái Bệnh Viện 107
Hình 47: Danh sách Nhà Thuốc 107
Trang 13Học Viên: Võ Tư Duy 12
Hình 48: Dialog Đăng ký Nhà Thuốc 108
Hình 49: Trang Quản lý Nhà Thuốc 108
Hình 50: Dialog Cập nhật trạng thái Nhà Thuốc 108
Hình 51: Danh sách Đơn Thuốc của Bệnh Bhân 109
Hình 52: Đơn Thuốc 110
Hình 53: Trang Quản lý Thuốc 111
Hình 54: Dialog Thêm Thuốc 111
Hình 55: Dialog Cập nhật Thuốc 112
Hình 56: Dialog Xác nhận xóa 112
Hình 57: Danh sách Bệnh Nhân 113
Hình 58: Dialog Thông tin Bệnh Nhân 114
Hình 59: Thuốc Bệnh Nhân dị ứng 115
Hình 60: Kết quả cập nhật thuốc dị ứng 115
Hình 61: Dialog Kê đơn thuốc 116
Hình 62: Tìm thuốc cho Đơn Thuốc 116
Hình 63: Cảnh báo Thuốc 117
Hình 64: Kê đơn đầy đủ 117
Hình 65: Chọn Nhà Thuốc 118
Hình 66: Kiểm tra đơn thuốc 119
Hình 67: Kết quả sau khi kê Đơn Thuốc 119
Hình 68: Trang Đơn Thuốc Bệnh Nhân 119
Hình 69: Đơn Thuốc đầy đủ 120
Hình 70: Dialog Kê Đơn khi sửa Đơn Thuốc 121
Hình 71: Kết quả Hủy Đơn Thuốc 121
Trang 14Học Viên: Võ Tư Duy 13
Hình 72: In Đơn Thuốc 122
Hình 73: Danh sách Đơn Thuốc của Nhà Thuốc 122
Hình 74: Kết quả Xuất Đơn Thuốc 123
Hình 75: Danh mục Thuốc của Nhà Thuốc 123
Hình 76: Cập nhật thông tin Thuốc 124
Trang 15Học Viên: Võ Tư Duy 14
MỞ ĐẦU
Theo số liệu của Tổng Cục Thống Kê (1), tính đến hết năm 2012 nước ta có
910 bệnh viện, ước tính mỗi bệnh viện có 500 đơn thuốc mỗi ngày Như vậy cả
nước có 455.000 đơn thuốc được kê mỗi ngày Hầu hết trong số này là đơn
thuốc tay do bác sĩ viết Tức là viết các loại thuốc lên đơn thuốc và bệnh nhân
sẽ mang đơn thuốc ra nhà thuốc để mua Với số lượng đơn thuốc lớn và quy
trình kê đơn, mua thuốc thủ công như vậy, chắc chắn sẽ có nhưng sai sót xẩy ra
gây nguy hiểm cho người bệnh Đồng thời quy trình kê đơn, mua thuốc này
cũng đang tồn tại rất nhiều bất cập như:
- Bác sĩ lạm dụng kháng sinh trong kê đơn để bệnh nhân nhanh khỏi bệnh
Việc này làm cho tình trạng kháng kháng sinh ở nước ta đang ở mức cao nhất
thế giới và Việt Nam đã được WHO đưa ra cảnh báo (2) Theo Tổ chức Y tế thế giới (WHO), từ năm 2009 đến nay, số lượng thuốc kháng sinh được bán ở Việt
Nam đã tăng gấp 2 lần WHO đưa ra cảnh báo đến năm 2050, tình trạng kháng
thuốc kháng sinh có thể là nguyên nhân gây tử vong cho 10 triệu người trên
toàn cầu Đáng báo động hơn, trong số các quốc gia có tình trạng kháng thuốc
kháng sinh nghiêm trọng thì Việt Nam là một trong số những nước đứng đầu
Ông Lokky Wai – Trưởng đại diện WHO tại Việt Nam cho rằng, trong vài chục năm nữa, khi các phương pháp điều trị như hóa trị bệnh ung thư và phẫu thuật
đơn giản sẽ không thể thực hiện được do phụ thuộc vào thuốc kháng sinh để
bảo vệ bệnh nhân chống nhiễm trùng Trong tương lai khi kháng sinh không
còn tác dụng thì triệu chứng ho hay một vết cắt cũng có thể gây tử vong
- Bác sĩ kê thuốc nằm trong danh sách giới hạn của Bộ Y Tế Đây là những
thuốc đặc biệt, cần cực kỳ hạn chế khi kê đơn như thuốc ngủ Seduxen, thuốc
giảm đau mạnh Morphin, thuốc an thần diazepam, Bộ Y Tế đã có Thông Tư
(3) Quy định quản lý thuốc gây nghiện, thuốc hướng tâm thần và tiền chất dùng làm thuốc để hạn chế việc sản xuất và sử dụng những loại thuốc này
Trang 16Học Viên: Võ Tư Duy 15
- Sự liên kết giữa bác sĩ, công ty sản xuất/nhập khẩu thuốc và nhà thuốc tạo
ra sự độc quyền một số loại thuốc nhất định, dẫn đến việc bệnh nhân bị mua
thuốc với giá cao Bác sĩ sẽ được hưởng hoa hồng từ việc kê loại thuốc này, còn công ty và nhà thuốc sẽ có lợi nhuận lớn Bộ Y Tế cũng đã có thông tư (4) về
việc nghiêm cấm các công ty thuốc quảng cáo thuốc cho bác sĩ, gây ảnh hưởng
đến việc kê đơn thuốc
- Bệnh nhân có tiền sử dị ứng với loại thuốc trong đơn Nếu bệnh nhân
không thông báo và bác sĩ kê thuốc vào đơn, bệnh nhân sẽ gặp nhiều nguy hiểm khi sử dụng thuốc
- Chữ viết trong đơn xấu hoặc không rõ ràng, dược sĩ khó lấy đúng loại
thuốc cho bệnh nhân
- Những loại thuốc chuyên dụng như thuốc tiêm, thuốc kháng viêm và giảm đau Voltaren, thường ít nhà thuốc bán và bệnh nhân mất nhiều thời gian để
tìm mua
- Thuốc đã dừng sản xuất và được thay thế bằng một loại mới Bệnh nhân sẽ phải quay lại hỏi bác sĩ xem liệu mình có thể dùng loại thuốc mới không, liều
dùng của loại thuốc mới như nào
- Bệnh nhân làm thất lạc đơn thuốc
Tại các quốc gia phát triển như Mỹ, đơn thuốc điện tử đã được chính phủ
cấp phép và nó đang dần thay thế đơn thuốc tay truyền thống Theo thông kê
của Surescripts - mạng lưới đơn thuốc điện tử lớn nhât ở Mỹ, hiện đã có hơn
900.000 chuyên gia, bác sĩ và hơn 1000 bệnh viện tham gia vào mạng lưới và
họ thực hiện kê hơn 1 tỷ đơn thuốc điện tử mỗi năm cho 270 triệu người
Surescripts Network cung cấp các dịch vụ và tiện ích cho phép bác sĩ viết và
gửi đơn thuốc trực tiếp đến nhà thuốc thay cho cách viết tay truyền thống Đơn
thuốc điện tử sẽ đảm bảo đúng loại thuốc, đúng nơi nhận và dược sĩ có thể hiểu
được Đơn thuốc điện tử giúp giảm thiểu rủi ro trong quá trình kê đơn, mua và
Trang 17Học Viên: Võ Tư Duy 16
sử dụng thuốc của bệnh nhân đồng thời khắc phục những bất cập của quy trình
kê đơn thuốc tay truyền thống
Nhận thấy những ưu điểm của đơn thuốc điện tử và với mong muốn những
bệnh nhân ở nước ta được kê những đơn thuốc tốt, cũng như không gặp phải
khó khăn khi mua và sử dụng thuốc Tác giả xin đề xuất đề tài:
Nghiên cứu và xây dựng thử nghiệm hệ thống đơn thuốc điện tử tại Việt
Nam theo mô hình mạng lưới Surescripts
Hệ thống được đặt tên là SurescriptVN và gồm có 3 hệ thống con:
- Website Bệnh Viện Vinmec: Nơi bác sĩ kê đơn cho bệnh nhân
- Website Nhà Thuốc Linh Đan: Bệnh nhân mua thuốc tại nhà thuốc Linh
Đan Dược sĩ sẽ bàn giao thuốc cho bệnh nhân thông qua Website nhà thuốc
- Hệ thống con SurescriptVN: Hệ thống đóng vai trò quan trọng nhất trong
SurescriptVN, có nhiệm vụ kết nối bệnh viện, nhà thuốc và bệnh nhân
Trang 18Học Viên: Võ Tư Duy 17
PHẦN 1: Nền tảng cơ sở CHƯƠNG I: Tổng quan về đơn thuốc điện tử và mạng lưới Surecripts
Mở Chương
Trong Chương I, người viết sẽ trình bày 2 vấn đề chính:
- Tổng quan về đơn thuốc điện tử: các khái niệm cơ bản và mục đích của đơn thuốc điện tử
- Tổng quan về Mạng Lưới SurescriptVN: Nhiệm vụ, cách thức hoạt động
của mạng lưới Sự phát triển mạnh mẽ của mạng lưới Surescripts tại Mỹ
1 Tổng quan về đơn thuốc điện tử
1.1 Tổng quan
Đơn thuốc điện tử là một nền tảng công nghệ cho phép bác sĩ viết và gửi đơn thuốc trực tiếp đến nhà thuốc thay cho cách viết tay truyền thống Đơn thuốc điện tử phải đảm bảo đúng loại thuốc, đúng nơi nhận và dược sĩ có thể hiểu được (5)
Một hệ thống đơn thuốc điện tử cơ bản có nhiệm vụ giống như một cuốn cẩm nang tham khảo Nơi mà các bác sĩ và bệnh nhân có thể truy cập vào và tra cứu
thông tin đơn thuốc Các hệ thống phức tạp hơn cho phép bác sĩ kê đơn cho bệnh
nhân, quản lý thuốc, tra cứu thông tin qua trình điều trị của bệnh nhân, kết nối tới
cửa hàng thuốc và tích hợp với hệ thống hồ sơ y tế điện tử
Các hệ thống đơn thuốc điện tử tại Mỹ đều phải có chứng nhận của chính
phủ Một hệ thống được cấp phép cần phải có khả năng gửi đơn thuốc điện tử, cảnh
báo người kê đơn về tác dụng phụ (nếu có) và gợi ý thuốc thay thế Đơn thuốc điện
tử giúp giảm thiểu lỗi do chữ viết xấu, thất lạc đơn thuốc mà đơn thuốc truyền
thống thường đem lại
1.2 L ợi ích của đơn thuốc điện tử
- Đảm bảo sự an toàn cho bệnh nhân
+ Khi bác sĩ kê một loại thuốc kháng sinh, thuốc nằm trong danh sách giới
hạn hoặc thuốc bệnh nhân bị dị ứng, hệ thống sẽ có cảnh báo để nhắc nhở bác sĩ sử
dụng một loại thuốc khác thay thế
Trang 19Học Viên: Võ Tư Duy 18
+ Đơn thuốc được số hóa nên tên các loại thuốc, số lượng, công dụng, liều
dùng đều được nhìn thấy rõ ràng Dược sĩ sẽ lấy được đúng thuốc, đúng số lượng
cho bệnh nhân Bệnh nhân cũng nắm rõ được thông tin đơn thuốc để có thể sử dụng thuốc đúng liều, đúng cách
- Bệnh nhân có thể mua đơn thuốc với chi phí hợp lý Hệ thống chịu trách nhiệm
quản lý danh sách thuốc Một loại thuốc mới được thêm vào hệ thống sẽ được thông báo đến tất cả các nhà thuốc Các nhà thuốc có thể tra cứu thông tin về thuốc mới và đặt mua từ công ty sản xuất/nhập khẩu Điều này sẽ giúp tránh độc quyền thuốc và
bệnh nhân sẽ không phải mua thuốc với giá cao
- Giảm thiểu chi phí: Một nghiên cứu gần đây (6) cho thấy nếu số lượng đơn thuốc
điện tử tăng 10% sẽ giúp tiết kiệm 140 đến 240 tỷ $ trong vòng 10 năm tới
- Tăng sự hiệu quả: đơn thuốc điện tử được gửi trực tiếp đến hệ thống máy tính nhà
thuốc, giúp giảm thiểu thời gian cũng như khả năng thất lạc đơn thuốc Ngoài ra
dược sĩ nhà thuốc cũng không cần nhập đơn thuốc vào máy tính để thông kê cũng
như tính toán giá thành
- Khả năng mở rộng: Một phòng khám hay một nhà thuốc mới có thể dễ dàng tham
gia vào mạng lưới thông qua các dịch vụ hệ thống cung cấp
2 Tổng quan về Mạng Lưới Surescripts
2.1 Tổng quan
Mạng lưới Surescripts có tên gọi đầy đủ là The Surescripts Electronic
Prescribing Network ( Mạng lưới đơn thuốc điện tử Surescripts) Được tạo ra vào
năm 2001 bởi Hiệp hội dược tại Arlington, Virginia (7) Mục đích của mạng lưới là
cải thiện quá trình kê đơn bằng cách cung cấp khả năng gửi đơn thuốc từ văn phòng bác sĩ tới nhà thuốc thông qua mạng internet Nó cũng tương tự với mạng lưới kết
nối các ngân hàng với các máy rút tiền (ATMs), Surescripts kết nối các bác sĩ với
các nhà thuốc Mạng lưới cho phép truyền tải đơn thuốc an toàn và tin cậy từ máy
tính tại văn phòng bác sĩ tới máy tính của nhà thuốc
Trang 20Học Viên: Võ Tư Duy 19
Hình 1: Surescripts Network logo
Surescripts không phát triển hoặc bán ứng dụng kê đơn thuốc điện tử mà họ
sẽ xác nhận hệ thống kê đơn điện tử của phòng khám và nhà thuốc, sau đó để các hệ thống đấy kết nối vào mạng lưới của mình
Đơn thuốc điện tử trao đổi qua mạng Surescripts sẽ được đảm bảo an toàn,
tăng hiệu quả và chất lượng đơn thuốc cũng tốt hơn so với phương pháp đơn tay
truyền thống
2.2 Thế mạnh của Surescripts
Mục đích của mạng lưới Surescripts là mang các dịch vụ và sản phẩm y tế đến
với tất cả mọi người thông qua internet 3 khả năng cốt lõi cũng như thế mạnh của
mạng lưới Surescripts là :
- Kết nối với cộng động rộng lớn các đối tác chăm sóc sức khỏe Bao gồm hơn
700 ứng dụng chăm sóc sức khỏe, được sử dụng bởi hơn 900.000 chuyên gia, hơn
1.000 bệnh viện và hơn 270 triệu người tham gia vào mạng lưới
- Trao đổi một khối lượng thông tin khổng lồ và an toàn trên internet
Surecripts thực hiện hơn 6 tỷ giao dịch mỗi năm, bao gồm 700 triệu bệnh án, hơn 1
tỷ đơn thuốc điện tử và gần 10 triệu tin nhắn chuẩn đoán bệnh
- Tích hợp với các phần mềm, ứng dụng của bệnh viện và nhà thuốc mà không cần mua thêm phần mềm và phần cứng
2.3 Cách h oạt động
Để có thể gửi được đơn thuốc điện tử từ bác sĩ đến nhà thuốc, Surescripts cung
cấp nhiều dịch vụ cho bệnh viện và nhà thuốc Thông qua các dịch vụ, bác sĩ có thể
truy xuất thông tin bệnh nhân, kê đơn thuốc và gửi đơn đến nhà thuốc Bệnh nhân
có thể nhận thuốc tại nhà thuốc hoặc có thể yêu cầu nhà thuốc gửi thuốc về nơi ở
Trang 21Học Viên: Võ Tư Duy 20
Hình 2: Cách hoạt động của Surescripts Network Các dịch vụ mạng lưới Surescripts cung cấp:
- Đơn thuốc mới: gửi một đơn thuốc mới cho bệnh nhân tới nhà thuốc
- Đơn thuốc chỉnh sửa: gửi đơn thuốc được chỉnh sửa đến nhà thuốc
- Đơn thuốc tốt: cho phép người kê đơn lựa chọn thuốc trên dữ liệu thuốc có
sẵn và thông tin về các loại thuốc tốt cho bệnh nhân
- Bệnh án: truy cập bệnh án bệnh nhân sẽ giúp bác sĩ nắm rõ tình trạng sức
khỏe bệnh nhân, cũng như các loại thuốc mà bệnh nhân bị dị ứng Qua đó bác sĩ có
thể kê đơn thuốc hiệu quả hơn, tránh được các tác dụng phụ không mong muốn
- Tình trạng bệnh nhân: thông báo cho bác sĩ và nhà thuốc khi tình trạng bệnh
nhân thay đổi Ví dụ: khi bệnh nhân đến hoặc ra khỏi một bệnh viện, hoặc thay đổi
số phòng, số bảo hiểm …
- Cung cấp thêm thuốc: cho phép bệnh viện yêu cầu nhà thuốc cấp thêm thuốc
cho bệnh nhân điều trị lâu dài hoặc bị bệnh mãn tính
- Hủy đơn thuốc: hủy đơn thuốc đã gửi đến nhà thuốc
- Yêu cầu chỉnh sửa đơn thuốc: cho phép nhà thuốc gửi yêu cầu chỉnh sửa đơn
thuốc tới người kê đơn nếu thấy sự bất thường trong đơn thuốc
Trang 22Học Viên: Võ Tư Duy 21
2.4 Bảo mật
Thông tin đơn thuốc và bệnh nhân là những thông tin cực kỳ quan trọng,
chúng cần được đảm bảo chính xác cũng như an toàn khi lưu chuyển trong mạng
Surescripts Vì vậy để đảm bảo sự tin tưởng từ khách hàng mạng lưới Surescripts đã đạt được các chứng chỉ an toàn thông tin ở mức cao nhất
- Surescripts đạt được chứng chỉ bảo mật an toàn thông tin ISO27001 (8) vào năm 2013, chỉ có 105 công ty ở Mỹ có thể đạt được chứng chỉ này ISO27001 là
một tiêu chuẩn quốc tế, nó định nghĩa các yêu cầu mà một hệ thống quản lý thông
tin cần phải có, từ đó đảm bảo rằng thông tin trong hệ thống được an toàn
- Surescripts đã được chứng nhận bởi WebTrust (9) WebTrust được quản lý
bởi Hiệp hội kế toán chuyên nghiệp Canada Nó được phát triển nhằm tăng sự tin
tưởng của người dùng khi trao đổi thông tin trên mạng internet WebTrust định
nghĩa ra các tiêu chí và nguyên tắc (10), các hệ thống cần đáp ứng được các tiêu chí đấy để nhận được chứng chỉ
Trang 23Học Viên: Võ Tư Duy 22
CHƯƠNG II: Nền tảng công nghệ Web API và mô hình phát triển website
MVC
Mở Chương
Trong chương II, người viết sẽ trình bày về 2 công nghệ chính để xây dựng Hệ
thống Đơn Thuốc Điện Tử SurescriptVN
- Công nghệ Web API: tạo ra các SurescriptVN APIs, kết nối bệnh viện, nhà thuốc và bệnh nhân
- Mô hình phát triển website MVC: Dùng để xây dựng Website
SurescriptVN, Bệnh Viện Vinmec cũng như Nhà Thuốc Linh Đan
1 Công nghệ Web API
1.1 Tổng quan
Web API (11) là một công nghệ giúp chúng ta tạo ra các dịch vụ web trực
tuyến dùng chung cho ứng dụng web, ứng dụng window, cũng như smartphone,
tablet … Đây là công nghệ kế tiếp của WCF và Web Services với nhiều cải tiến
hơn
Hình 3: Web API hỗ trợ hầu hết thiết bị
- Web Serives: Chỉ hỗ trợ giao thức HTTP, trao đổi dữ liệu dạng SOAP
(Simple Object Access protocol) dưới định dạng XML Ưu điểm là dễ dàng cài đặt
nhưng chỉ có thể triển khai trên IIS, kiểu dữ liệu SOAP tốn nhiều dung lượng lưu
trữ và khó xử lý, vị vậy hiệu năng không cao
Trang 24Học Viên: Võ Tư Duy 23
- WCF - Windowns Communication Foundation: Có thể trao đổi nhiều định
dạng dữ liệu SOAP, JSON, và hỗ trợ nhiều giao thức hơn TCP, HTTP, HTTPS,
Ưu điểm là đã hỗ trợ kiểu dữ liệu JSON, nhẹ hơn nhiều so với SOAP Nhược
điểm lớn của WCF là kiến trúc phức tạp, khó cài đặt và cầu hình
- Web API: Có thể trao đổi kiểu dữ liệu bất kỳ, nhưng thường là JSON thông qua các phương thức của HTTP (GET/POST/PUT/DELETE) Ưu điểm lớn là dễ cài đặt, có thể trao đổi dữ liệu với bất cứ Client nào hỗ trợ JSON Vì vậy hiệu năng của Web API là rất cao
Chúng ta có thể tạo ra 1 Web API đơn giản cung cấp chỉ số chứng khoán, kết quả
bóng đá, Hầu hết Client có thể sử dụng được API này thông qua phương thức
HTTP Get Không phân biệt công nghệ mà Client sử dụng (.Net, Java, PHP, ),
không phân biệt hệ điều hành (Windowns, Linux, MacOS, ), không phân biệt thiết
bị (desktop, mobile, tablet )
1.2 Kiến Trúc Web API
Kiến trúc ASP NET Web API gồm có 3 tầng chính: tầng hosting, tầng xử lý
thông điệp và tầng xử lý của Controller (12)
Trang 25Học Viên: Võ Tư Duy 24
Hình 4: Kiến trúc Web API
Trang 26Học Viên: Võ Tư Duy 25
The hosting layer - Tầng hosting
Là nơi triển khai các APIs sau khi được cài đặt xong Web API có thể được
triển khai trên nhiều môi trường khác nhau như IIS ( Web Host), trong một ứng
dụng khác (Self Host) hoặc một loại tùy chọn khác (Custom Hosts)
Khi người dùng gửi một yêu cầu như tìm kiếm bệnh viện, tầng hosting sẽ tạo
ra một thể hiện của lớp HttpRequestMessage, chứa các thông tin của yêu cầu
HttpRequestMessage được gửi đến tầng xử lý thông điệp Sau khi yêu cầu được các
tầng khác xử lý xong, tầng hosting sẽ nhận về HttpResponseMessage chứa kết quả
tương ứng với yêu cầu như danh sách các bệnh viện thỏa mãn điều kiện
The message handler pipeline - Tầng xử lý thông điệp
Gồm có nhiều thành phần con như Message Handler ( xử lý thông điệp),
Route Dispatcher ( điều phối luồng) và Controller Dispatcher ( điều phối
Controller)
Có thể có một hoặc nhiều Message Handler, mỗi Message Handler thực hiện
một nhiệm vụ riêng như là: kiểm tra trạng thái đăng nhập, thay đổi phương thức của
yêu cầu HTTP hoặc thêm tiêu đề cho thông điệp phản hồi, …
Hình 5: Thành phần xử lý thông điệp - Message Handler Trong sơ đồ bên phải của Hình 5, Message Handler đầu tiên phát hiện người
dùng chưa đăng nhập nên trả lại một HttpResponseMessage với mã 401
Trang 27Học Viên: Võ Tư Duy 26
Unauthorized ( chưa đăng nhập) Yêu cầu của người dùng được xử lý và trả lại ngay tại tầng này, không nhất thiết phải chạy qua tất cả các tầng
Kết thúc chuỗi xử lý của Message Handler, yêu cầu sẽ được phần luồng bởi
thành phần điều phối luồng Mỗi yêu cầu của người dùng đều chứa thông tin về
luồng Ví dụ một yêu cầu tìm kiếm bệnh viện có url là
http://localhost:50650/api/hospital?name=vinmec
thì luồng xử lý thông điệp là Hospital Nếu không tìm được luồng thích hợp thì một thông điệp phản hồi với mã 404 Not Found ( không tìm thấy) được trả lại
The controller dispatcher - Điều phối Controller
Sử dụng thông tin luồng để lấy mô tả của Controller xử lý yêu cầu Nếu
không tìm thấy mô tả của Controller thích hợp sẽ trả lại phản hồi với mã 404 Not
Found Nếu tìm thấy sẽ khởi tạo Controller và chạy phương thức ExecuteAsync với tham số truyền vào là HttpRequestMessage
Điều phối luồng cũng có nhiệm vụ xử lý các ngoại lệ ( exception) được trả
về bởi ApiController, tạo ra một HttpResponseMessage với mã 500 Internal Service Error ( lỗi nội bộ)
The controller handling layer - Tầng xử lý của controller
ApiController tiếp nhận yêu cầu, gọi đến phương thức tương ứng để xử lý yêu
cầu dựa trên loại yêu cầu (GET, POST, PUT hoặc DELETE) Đối với yêu cầu tìm
kiếm bệnh viện thì loại yêu cầu là GET
Xử lý nghiệp vụ có thể được đặt ngay trong phương thức của ApiController,
nhưng thông thường người phát triển sẽ đặt toàn bộ nghiệp vụ của hệ thống trong
thành phần Model Model sẽ chịu trách nhiệm kết nối đến cơ sở dữ liệu, lấy hoặc
cập nhật dữ liệu tùy thuộc vào yêu cầu Sau đó trả kết quả lại cho ApiController
ApiController sẽ nhận lại kết quả, tạo ra một HttpResponseMessage chứa kết quả và đẩy lại cho tầng xử lý thông điệp
Trang 28Học Viên: Võ Tư Duy 27
1.3 Lợi ích của Web API
Các lợi ích khi chúng ta sử dụng công nghệ Web API
- Không cần cấu hình để sử dụng
Ngay khi xây dựng xong một API dựa trên ASP.NET Web API, người dùng có
thể tạo một yêu cầu HTTP đến API để sử dụng Khái niệm điểm đầu cuối trong
WCF không còn Đây là một thiết kế dịch vụ lỏng lẻo hơn nhiều so với dịch vụ
WCF nhưng nó hợp với xu thế hiện nay
- Không cần khai báo kiểu dữ liệu khi cài đặt API
Với WCF, chúng ta cần các hợp đồng về dữ liệu khi trao đổi dữ liệu giữa Client
và Server Nhưng với ASP.NET Web API, các phương thức Controller chỉ cần trả
về dữ liệu gốc, còn kiểu dữ liệu thực sự được trao đổi (JSON, XML, …) sẽ được tự
động chuyển đổi tùy theo yêu cầu từ Client gọi tới Trong đó, Client sẽ sử dụng tiêu
đề (header) Accept hoặc Content-Type để thông báo kiểu dữ liệu trao đổi
- Cung cấp đầy đủ các phương thức của HTTP (Get, Post, Put, Delete) tương ứng
với lấy dữ liệu, thêm dữ liệu, sửa dữ liệu và xóa dữ liệu Người dùng chỉ cần sử
dụng các yêu cầu HTTP để thực hiện việc quản lý dữ liệu
Trang 29Học Viên: Võ Tư Duy 28
Hình 6: Các phương thức của Web API
- Hỗ trợ CORS (Cross-Origin Resource Sharing - Chia sẻ nguồn tài nguyên giữu
các domain/website khác nhau)
Trong ASP.NET Web API ta nên kích hoạt chức năng này bằng việc thêm một
thuộc tính EnableCorsAttribute để cho phép các yêu cầu bằng Ajax từ các domain
khác, trang web khác và các ứng dụng khác có thể gọi đến API mà bạn cài đặt
2 Mô hình phát triển website MVC
2.1 Tổng quan
MVC (13) là tên viết tắt của 3 thành phần Model – View – Controller Mô hình
MVC sẽ tách hệ thống thành 3 phần riêng biệt Mỗi thành phần sẽ có những chức
năng, nhiệm vụ riêng để xử lý các yêu cầu của người dùng gửi tới Việc tách hệ
thống ra thành 3 phần riêng biệt sẽ giúp việc phát triển hệ thông trở nên đơn giản
Trang 30Học Viên: Võ Tư Duy 29
hơn, nhanh hơn bằng cách giao mỗi phần cho một người làm và kết nối lại sau khi
các phần đã được hoàn thành Đồng thời cũng giúp chúng ta dễ dàng thêm các tính
năng mới vào hệ thống
Nhiệm vụ các thành phần của mô hình MVC:
- Model: Là nơi xử lý nghiệp vụ của hệ thống, tương tác với dữ liệu hoặc hệ quản trị
cơ sở dữ liệu (mysql, mssql… ) Model sẽ bao gồm các class/function xử lý nhiều
nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm /xóa /sửa dữ liệu…
- View: Là nới chứa những giao diện như một nút bấm, khung nhập liệu, menu,
hình ảnh… nó đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác
với hệ thống
- Controller: Là nơi tiếp nhận những yêu cầu cần xử lý được gửi từ người dùng Tùy thuộc vào từng yêu cầu, sẽ gọi đến những thành phần khác nhau như View hay
Model, hoặc chỉ trả lại kết quả
S ự tương tác giữa các thành phần trong mô hình MVC
Controller – View: View sẽ lấy những hình ảnh, nút bấm…hoặc dữ liệu được trả ra từ Controller để hiển thị cho người dùng có thể quan sát và thao tác Trong sự tương tác này cũng có thể không cần dữ liệu được lấy từ Model và khi đó View chỉ
chịu trách nhiệm hiển thị những phần tử HTML như hình ảnh, nút bấm…
Controller – Model: là luồng xử lý khi Controller tiếp nhận yêu cầu và các
tham số đầu vào từ người dùng, Controller sẽ gọi đến Model tương ứng để lấy ra
những dữ liệu chính xác
View – Model: có thể tương tác với nhau mà không qua Controller, nó chỉ
đảm nhận hiển thị dữ liệu chứ không phải qua bất kỳ xử lý nghiệp vụ nào
Mô hình MVC có thể áp dụng cho nhiều loại dự án khác nhau : dự án website, dự
án ứng dụng – phần mềm,… nhưng trong phạm vi luận văn, người viết chỉ đi sâu
vào tìm hiểu mô hình này được áp dụng như nào trong các dự án xây dựng và phát
triển website
Trang 31Học Viên: Võ Tư Duy 30
2.2 Luồng xử lý yêu cầu của người dùng trong MVC
Luồng xử lý yêu cầu trong MVC
Hình 7: Xử lý yêu cầu người dùng trong MVC Bước 1: Người dùng sử dụng một trình duyệt web bất kỳ (Firefox, Chrome,
IE,…) để có thể gửi những yêu cầu (HTTP Request), có thể kèm theo những dữ liệu
tới những Controller Việc xác định Controller nào xử lý yêu cầu sẽ thông qua một
bộ Routing điều hướng trong mô hình MVC ( Người viết sẽ chỉ đề cập đến luồng
xử lý cơ bản và các thành phần cơ bản trong mô hình MVC, không đi sâu vào trình
bày mọi thành phần như Routing)
Bước 2: Khi Controller nhận được yêu cầu gửi tới, nó sẽ chịu trách nhiệm
kiểm tra yêu cầu đó có cần dữ liệu từ Model hay không Nếu có, nó sẽ gọi đến
Model, Model xử lý yêu cầu và trả ra kết quả( Resulting Arrays) Controller nhận
kết quả và gửi đến View để hiển thị Controller sẽ xác định View tương ứng để hiển thị đúng với yêu cầu từ người dùng
Bước 3: Khi nhận được dữ liệu từ Controller, View sẽ chịu trách nhiệm xây
dựng các thành phẩn hiển thị như hình ảnh, thông tin dữ liệu… và trả về GUI
Content ( giao diện người dùng dạng html) để Controller đưa kết quả lên màn hình
trình duyệt
Trang 32Học Viên: Võ Tư Duy 31
Bước 4: Trình duyệt sẽ nhận giá trị trả về( HTTP Response) và sẽ hiển thị
với người dùng Kết thúc một luồng xử lý yêu cầu
2.3 Lợi ích của mô hình MVC
Lợi ích quan trọng nhất của mô hình MVC là nó giúp cho ứng dụng dễ bảo
trì, module hóa các chức năng, và được xây dựng nhanh chóng MVC tách các tác
vụ của ứng dụng thành các phần riêng lẻ Model, View, Controller giúp cho việc xây dựng ứng dụng nhẹ nhàng hơn Dễ dàng thêm các tính năng mới, và các tính năng
cũ có thể dễ dàng thay đổi MVC cho phép các nhà phát triển và các nhà thiết kế có
thể làm việc đồng thời với nhau Nó cho phép thay đổi trong 1 phần của ứng dụng
mà không ảnh hưởng đến các phần khác
Ví dụ: Người phát triển có thể thay đổi nghiệp vụ xử lý ở Model, để lấy ra
nhưng kết quả khác Phần View có nhiệm vụ hiển thị kết quả nên không cần thay
đổi gì Kết quả người dùng thấy được sự thay đổi trên View
Sở dĩ như vậy vì kiến trúc MVC đã tách biệt (decoupling) sự phụ thuộc giữa
các thành phần trong một đối tượng, làm tăng tính linh động (flexibility) và tính tái
sử dụng (reusebility) của đối tượng đó Một đối tượng bây giờ có thể dễ dàng thay
đổi giao diện bằng cách thay đổi thành phần View của nó trong khi cách thức lưu
trữ cũng như xử lý (Model) không hề thay đổi Tương tự, ta có thể thay đổi Model
hoặc Controller của đối tượng nhưng giữ nguyên phần View
Chính vì vậy mô hình kiến trúc MVC đã được ứng dụng để xây dựng rất
nhiều nền tảng và thư viện đồ họa khác nhau Tiêu biểu là bộ thư viện đồ họa của
ngôn ngữ lập trình hướng đối tượng SmallTalk (cũng do Xerox PARC nghiên cứu
và phát triển vào thập niên 70 của thế kỷ 20) Các Swing Components của Java
cũng được xây dựng dựa trên kiến trúc MVC Đặc biệt là nền tảng ASP.NET MVC
Framework
Trang 33Học Viên: Võ Tư Duy 32
PHẦN 2: Xây dựng Hệ Thống Đơn Thuốc Điện Tử SurescriptVN
CHƯƠNG III: Hệ Thống Đơn Thuốc Điện Tử SurescriptVN
Mở Chương
Trong Chương III, người viết sẽ trình bày 2 vấn đề chính:
- Tổng quan về Hệ thống Đơn Thuốc Điện Tử SurescriptVN
- Phân tích yêu cầu chức năng của từng hệ thống con:
+ Hệ thống SurescriptVN gồm có Website SurescriptVN và SurescriptVN
APIs
+ Website Bệnh Viện Vinmec
+ Website Nhà Thuốc Linh Đan
1 Tổng quan về Hệ Thống Đơn Thuốc Điện Tử SurescriptVN
1.1 Mục Đích
Mục đích chính của hệ thống là giúp bác sĩ kê đơn thuốc điện tử cho bệnh
nhân Đơn thuốc thay vì được viết tay như truyền thống, sẽ được bác sĩ kê trên máy
tính, sau đó được gửi trực tiếp đến nhà thuốc thông qua mạng Internet
Ngoài ra hệ thống cung cấp nhiều dịch vụ tiện ích khác, giúp ích cho bác sĩ
và bệnh nhân trông quá trình kê đơn và sử dụng thuốc như cảnh báo thuốc, tra cứu
bệnh án bệnh nhân, tra cứu thông tin bệnh viện và nhà thuốc, tra cứu thông tin
thuốc, …
Để có thể gửi đơn thuốc trực tiếp từ bệnh viện đến nhà thuốc, hệ thống được
xây dựng theo dạng mạng lưới, kết nối nhiều bệnh viện và nhà thuốc với nhau thông qua các APIs
1.2 Lợi Ích
Hệ thống đơn thuốc điện tử SurescriptVN giúp giảm thiểu rủi ro cũng như
bất cập của đơn thuốc tay, cung cấp các dịch vụ tiện ích giúp bác sĩ kê đơn thuốc tốt cho bệnh nhân
- Đơn thuốc được kê trên máy tính nên rất rõ ràng, dược sĩ có thể lấy đúng thuốc
cho bệnh nhân Bệnh nhân hiểu được đơn thuốc nên có thể dùng thuốc đúng liều
Trang 34Học Viên: Võ Tư Duy 33
- Đơn thuốc được gửi trực tiếp đến nhà thuốc nên sẽ không xẩy ra tình trạng thất lạc đơn thuốc Bệnh nhân không cần đi nhiều nhà thuốc để tìm mua thuốc, bởi lẽ hệ
thống đã xác minh nhà thuốc có đủ số lượng thuốc trước khi gửi đơn
- Hệ thống SurescriptVN cung cấp dịch vụ cảnh báo thuốc kháng sinh, thuốc giới
hạn và thuốc dị ứng Nó sẽ giúp bác sĩ kê các loại thuốc phù hợp cho bệnh nhân và
hạn chế tối đa các tác dụng phụ của thuốc Ngoài ra bác sĩ có thể tra cứu lịch sử đơn thuốc bệnh nhân, lấy đó làm cơ sở để kê các loại thuốc phù hợp
1.3 Các thành p hần trong hệ thống
Hệ thống đơn thuốc điện tử SurescriptVN gồm có 3 hệ thống con:
- Hệ thống con SurescriptVN: cung cấp các APIs để kết nối bệnh viện và nhà thuốc, tạo thành một mạng lưới
- Website Bệnh Viện Vinmec: Nơi bác sĩ kê đơn cho bệnh nhân
- Website Nhà Thuốc Linh Đan: Nơi dược sĩ xuất thuốc cho bệnh nhân
Hệ thống có thể kết nối nhiều bệnh viện và nhà thuốc với nhau thông qua các APIs Trong phạm vị luận văn, tác giả sẽ nghiên cứu và xây dựng thử nghiệm một
Website bệnh viện (Vinmec) và một Website nhà thuốc (Linh Đan) theo mô hình
phát triển website MVC Bệnh viện Vinmec và nhà thuốc Linh Đan sẽ sử dụng các
APIs do hệ thống con SurescriptVN cung cấp để kê đơn và xuất đơn cho bệnh nhân Các bệnh viện và nhà thuốc khác có thể xây dựng theo mô hình tương tự hoặc có
thể sử dụng công nghệ, kiến trúc khác Tùy thuộc vào mục đích và đặc thù riêng của từng bệnh viện, nhà thuốc
Sau đây, chúng ta sẽ tìm hiểu về vai trò và nhiệm vụ của từng thành phần
trong hệ thống
H ệ thống con SurescriptVN
Đây là thành phần đóng vai trò quan trọng nhất trong hệ thống đơn thuốc
điện tử SurescriptVN Nó tạo ra các APIs dùng chung cho nhiều bệnh viện và nhà
thuốc dựa trên công nghệ Web API
Các APIs hệ thống cung cấp cho bệnh viện:
- Đăng ký bệnh nhân: giúp bác sĩ bệnh viện thêm mới bệnh nhân vào hệ thống
- Sửa thông tin bệnh nhân: giúp bác sĩ cập nhật thông tin bệnh nhân khi có thay đổi
Trang 35Học Viên: Võ Tư Duy 34
- Cập nhật thuốc dị ứng của bệnh nhân: giúp bác sĩ thêm hoặc xóa các loại thuốc dị
- Sửa đơn thuốc: giúp bác sĩ sửa đơn thuốc của bệnh nhân sau khi đã gửi
- Hủy đơn thuốc: bác sĩ có thể hủy đơn thuốc đã kê cho bệnh nhân
- Tra cứu bệnh án: bác sĩ có thể xem danh sách các đơn thuốc đã kê cho bệnh nhân
- Kiểm tra thuốc tốt: kiểm tra và đưa ra cảnh báo cho bác sĩ khi bác sĩ kê thuốc
kháng sinh, thuốc giới hạn hoặc thuốc bệnh nhân bị dị ứng
Các APIs hệ thống cung cấp cho nhà thuốc:
- Tra cứu đơn thuốc của nhà thuốc: giúp dược sĩ tra cứu các đơn thuốc được gửi đến nhà thuốc
- Bàn giao thuốc cho bệnh nhân: khi dược sĩ xác nhận đã bàn giao thuốc thành công cho bệnh nhân, API này sẽ chuyển trạng thái đơn thuốc thành “Hoàn Thành”, đồng
thời giảm số lượng thuốc tồn kho của nhà thuốc trong hệ thống xuống
- Cập nhật giá và số lượng thuốc tồn kho: giúp dược sĩ cập nhật giá và số lượng tồn
kho của từng loại thuốc trong nhà thuốc vào hệ thống
Ngoài ra hệ thống SurescriptVN cung cấp một website cho phép người dùng
tìm kiếm thông tin bệnh viện và nhà thuốc có trong mạng lưới Bệnh viện và nhà
thuốc mới sẽ đăng ký tham gia vào mạng lưới thông qua website này Bệnh nhân có thể đăng nhập để xem thông tin đơn thuốc của mình hoặc tra cứu thông tin về các
loại thuốc ( hoạt chất, tác dụng, công ty sản xuất …) Quản trị viên hệ thống quản lý bệnh viện, nhà thuốc và thuốc thông qua website này
Website B ệnh Viện Vinmec
Trang 36Học Viên: Võ Tư Duy 35
Nhiệm vụ chính là cung cấp giao diện để bác sĩ kê đơn thuốc cho bệnh nhân, sau đó đơn thuốc được gửi trực tiếp đến nhà thuốc thích hợp thông qua
SurescriptVN APIs Sau khi khám bệnh cho bệnh nhân, bác sĩ đăng nhập vào
website, sử dụng các APIs để lựa chọn các loại thuốc phù hợp cho bệnh nhân, chọn
nhà thuốc có đủ số lượng thuốc cần thiết và gửi đơn thuốc đến nhà thuốc đấy
Ngoài ra Website bệnh viện cũng cung cấp các giao diện giúp bác sĩ tra cứu
thông tin bệnh nhân, bệnh án bệnh nhân, thêm bệnh nhân mới vào hệ thống …
Website Nhà Thu ốc Linh Đan
Nhiệm vụ chính là cung cấp giao diện để dược sĩ tra cứu thông tin đơn thuốc bệnh nhân, bàn giao các loại thuốc trong đơn và xác nhận đã bàn giao thuốc thông
qua SurescriptVN APIs
Ngoài ra website nhà thuốc cũng cung cấp giao diện để dược sĩ cập nhật giá
và số lượng thuốc tồn kho của nhà thuốc đến hệ thống SurescriptVN Các chức
năng trên của nhà thuốc sẽ gọi đến các APIs được cung cấp bởi hệ thống con
SurescriptVN
Trang 37Học Viên: Võ Tư Duy 36
1.4 Mô hình hoạt động chung
Sơ đồ hoạt động chung
Hình 8: Sơ đồ hoạt động chung
Hệ thống con SurescriptVN cung cấp các Surescript APIs lên mạng Internet Các bệnh viện và nhà thuốc sau khi đăng ký tham gia mạng lưới sẽ được cung cấp
một mã truy cập riêng biệt Khi gọi đến các APIs để sử dụng, bệnh viện và nhà
Trang 38Học Viên: Võ Tư Duy 37
thuốc cần gửi theo mã truy cập này Hệ thống sẽ dùng mã truy cập để xác minh
bệnh viện hay nhà thuốc nào đang tương tác với hệ thống
Bệnh viện và nhà thuốc sẽ sử dụng các APIs để thực hiện các nghiệp vụ khác nhau Tác nhân chính của Website bệnh viện là bác sĩ và nghiệp vụ chính là kê đơn
thuốc cho bệnh nhân Tác nhân chính của Website nhà thuốc là dược sĩ, nghiệp vụ
chính là bàn giao thuốc cho bệnh nhân và cập nhật giá thành, số lượng thuốc tồn
kho vào hệ thống đơn thuốc điện tử SurescriptVN
Bệnh viện và nhà thuốc có thể xây dựng ứng dụng để sử dụng APIs theo bất
kỳ mô hình hoặc kiến trúc nào, không nhất thiết phải là website theo mô hình MVC
Nó có thể là website theo mô hình 3 tầng ( 3-tiers), có thể là ứng dụng window, ứng dụng mobile, chỉ cần ứng dụng đấy có thể thực hiện được các yêu cầu HTTP là có
thể tham gia vào mạng lưới
Trang 39Học Viên: Võ Tư Duy 38
2 Phân tích yêu cầu chức năng
2.1 Y êu cầu chức năng của hệ thống SurescriptVN
2.1.1 Y êu cầu chức năng của Website SurescriptVN
A C a sử dụng cho người dùng, bệnh viện, nhà thuốc và bệnh nhân
a Sơ đồ ca sử dụng
Hình 9: Sơ đồ ca sử dụng cho người dùng của Website SurescriptVN
Có 4 tác nhân trong ca sử dụng này:
+ Người dùng: người dùng thông thường, không yêu cầu đăng nhập
+ Bệnh viện: nhân viên bệnh viện, cần biết thông tin về bệnh viện
+ Nhà thuốc: nhân viên nhà thuốc, cần biết thông tin về nhà thuốc
+ Bệnh nhân: bệnh nhân đã đăng ký thông tin với hệ thống thông qua các bệnh viện trong hệ thống
Trang 40Học Viên: Võ Tư Duy 39
b Đặc tả ca sử dụng cho người dùng
Tác Nhân: Người dùng
Mục Đích: Tra cứu thông tin bệnh viện, nhà thuốc và thông tin thuốc trong
hệ thống
Tiền điều kiện: Không có
Hiển thị các thông tin cơ bản như tên, địa chỉ, SĐT, địa chỉ email và GPKD
của bệnh viện
sách bệnh viện Hiển thị danh sách các bệnh viện trong hệ thống
Chức năng này sẽ giúp bệnh nhân tìm được bệnh viện ở gần nơi mình ở,
hoặc kiểm tra xem bệnh viện mình dự định đến khám có nằm trong mạng lưới
không
sách bệnh viện Hiển thị danh sách các bệnh viện trong hệ thống
Nhập dữ liệu vào Input, dữ liệu có thể là
tên, địa chỉ, SĐT, địa chỉ email hoặc
GPKD của bệnh viện
Hệ thống lọc kết quả bệnh viện dựa trên
dữ liệu người dùng nhập vào và hiển thị danh sách bệnh viện thỏa mãn điều kiện