1. Trang chủ
  2. » Y Tế - Sức Khỏe

Hướng dẫn điều dưỡng viên về chăm sóc bệnh nhân có COVID-19

55 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Master Patient Index - Hệ Thống Định Danh Bệnh Nhân
Tác giả Lê Đình Tuyến
Người hướng dẫn ThS. Trần Hồ Thủy Tiên
Trường học Đại Học Đà Nẵng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2019
Thành phố Đà Nẵng
Định dạng
Số trang 55
Dung lượng 2,16 MB

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ PHẦN MỀM ĐỀ TÀI: MASTER PATIENT INDEX Người hướng dẫn: ThS TRẦN HỒ THỦY TIÊN Sinh viên thực hiện: LÊ ĐÌNH TUYẾN Số thẻ sinh viên: 102150144 Lớp : 15T2 Đà Nẵng, 12 / 2019 L ê Đình Tuyến T ÊN ĐỀ TÀI : MASTER PATIENT INDEX 2019 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ PHẦN MỀM ĐỀ TÀI: MASTER PATIENT INDEX Người hướng dẫn: ThS TRẦN HỒ THỦY TIÊN Sinh viên thực hiện: LÊ ĐÌNH TUYẾN Số thẻ sinh viên: 102150144 Lớp : 15T2 Đà Nẵng, 12 / 2019 NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN ………………………………………………………………………………………… .. ………………………………………………………………………………………… .. ………………………………………………………………………………………… .. ………………………………………………………………………………………… .. ………………………………………………………………………………………… .. ………………………………………………………………………………………… .. ………………………………………………………………………………………… .. NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN ………………………………………………………………………………………… .. ………………………………………………………………………………………… .. ………………………………………………………………………………………… .. ………………………………………………………………………………………… .. ………………………………………………………………………………………… .. ………………………………………………………………………………………… .. ………………………………………………………………………………………… .. TÓM T Ắ T Tên đề tài: Master Patient Index – Hệ thống định danh bệnh nhân Sinh viên thực hiện: LÊ ĐÌNH TUYẾN Số thẻ SV: 102150144 Lớp: 15T2 Đề tài: Master Patient Index - Hệ thống chỉ mục bệnh nhân Master Patient Index(gọi tắt là MPI) là một hệ thống lưu giữ thông tin bệnh nhân khi các bệnh nhân này tham gia các dịch vụ chăm sóc sức khỏe ở các cơ sở y tế khác nhau. MPI nhằm mục đích gán mỗi bệnh nhân với 1 định danh duy nhất. Khi một bệnh nhân đến k hám 7 tại các cơ sở y tế khác nhau thì ở những cơ sở y tế này sẽ tạo ra nhiều bản ghi chứa thông tin của bệnh nhân này, hệ thống MPI sẽ giúp ta biết được những bản ghi này đều tham chiếu đến cùng 1 người duy nhất. ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc NHI Ệ M V Ụ Đ Ồ ÁN T Ố T NGHI Ệ P Họ tên sinh viên: : LÊ ĐÌ NH TUYẾN Số thẻ sinh viên: 102150144 Lớp: 15T2 Khoa: Công nghệ thông tin Ngành: Công nghệ phần mềm 1. Tên đề tài đồ án: Master Patient Index – Hệ thống chỉ mục bệnh nhân 2. Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện 3. Các số liệu và dữ liệu ban đầu:  Thông tin cá nhân của bệnh nhân  Thông tin các tỉnh thành phố theo tổng cục thống kê  Cấu hình các thuật toán 4. Nội dung các phần thuyết minh và tính toán:  Cấu hình hệ thống: thuật toán so sánh, blocking  Tạo mới, quản lý tài khoản cho cơ sở y tế  Quản lý các cơ sở y tế  Thêm mới, quản lý thông tin bệnh nhân  Thực hiện manual merge person 5. Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):  Sơ đồ ca sử dụng  Sơ đồ hoạt động  Bản vẽ cơ sở dữ liệu 6. Họ tên người hướng dẫn: Th.S TRẦN HỒ THỦY TIÊN 7. Ngày giao nhiệm vụ đồ án: ……../……./201….. 8. Ngày hoàn thành đồ án: ……../……./201….. Đà Nẵng, ngày tháng năm 201 Trưởng Bộ môn: TS.LÊ THỊ MỸ HẠNH Người hướng dẫn Trần Hồ Thủy Tiên i L Ờ I NÓI Đ Ầ U Đầu tiên, em xin gửi lời cảm ơn chân thành tới Th.S Trần Hồ Thủy Tiên đã giúp đỡ em hoàn thành tốt đề tài đồ án tốt nghiệp này. Trong quá trình hướng dẫn em làm đồ án, cô đã chỉ bảo và hướng dẫn tận tình cho em những lý thuyết, cũng như các kỹ năng trong lập trình, cách giải quyết các vấn đề trong đề tài. Cô luôn là người truyền động lực cho em, đề xuất cho em các ý tưởng mới mẽ để giúp em hoàn thành tối đề tài đồ án. Em thực sự biết ơn và ghi nhớ sự dạy dỗ tận tình của các thầy cô khoa Công nghệ thông tin – Trường Đại học Bách khoa – Đại học Đà Nẵ ng. Trong quá trình hoàn thành đồ án, em đã rất cố gắng thực hiện hết khả năng trong thời gian cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót. Em rất mong nhận sự góp ý, chỉ bảo của quý thầy cô. ii CAM ĐOAN Tôi xin cam đoan: 1. Nội dung trong đồ án này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của Th. S Trần Hồ Thủy Tiên 2. Các tham khảo dùng trong đồ án đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố 3. Nếu có những sao chép không hợp lệ, vi phạm, tôi xin chị u hoàn toàn trách nhiệm. Sinh viên thực hiện iii M Ụ C L Ụ C TÓM TẮT ................................ ................................ ................................ .................... . NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ................................ ................................ ............. . LỜI NÓI ĐẦU ................................ ................................ ................................ .............. i CAM ĐOAN ................................ ................................ ................................ ............... ii MỤC LỤC ................................ ................................ ................................ ................. iii DANH SÁCH CÁC BẢNG, HÌNH VẼ ................................ ................................ ....... v DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT ................................ ....................... vi MỞ ĐẦU ................................ ................................ ................................ .................... 1 Chương 1: GIỚI THIỆU CHUNG ................................ ................................ ............ 2 1.1. Giới thiệu chung về đề tài: ................................ ................................ .............. 2 1.1.1. Đề tài: ................................ ................................ ................................ ...... 2 1.1.2. Lợi ích mang lại của đề tài: ................................ ................................ ..... 2 1.2. Các công nghệ đã được sử dụng: ................................ ................................ ....... 3 1.2.1. Back end : ................................ ................................ ................................ .... 3 1.2.2. Front end: ................................ ................................ ................................ ... 3 1.2.3 Hệ quản trị cơ sở dữ liệu: ................................ ................................ ............ 4 Chương 2: PHÂN TÍCH HỆ THỐNG ................................ ................................ ...... 6 2.1. Actors: ................................ ................................ ................................ ............... 6 2.2. Sơ đồ Use cases: ................................ ................................ ................................ 6 2.3. Sơ đồ hoạt động: ................................ ................................ ............................... 8 2.4. Từ điển dữ liệu: ................................ ................................ ................................ . 9 Chương 3: PHÁT TRIỂN VÀ TRIỂN KHAI HỆ THỐNG ................................ ... 13 3.1. Phát triển hệ thống: ................................ ................................ .......................... 13 3.1.1. Thuật toán tính độ tương đồng của hai chuỗi: ................................ ........... 13 3.1.2. Thuật toán chia block: ................................ ................................ .............. 15 3.1.3. Quy tắc sinh mã định danh: ................................ ................................ ....... 16 3.1.4. Cơ sở dữ liệu: ................................ ................................ ........................... 17 3.2. Triển khai hệ thống: ................................ ................................ ........................ 19 3.2.1. Triển khai back end: ................................ ................................ ................. 19 3.2.2. Triển khai frontend: ................................ ................................ .................. 22 3.3. Kết quả đã thực hiện: ................................ ................................ ....................... 23 iv 3.3.1. Màn hình bắt đầu: ................................ ................................ .................... 23 3.3.2. M àn hình đăng nhập: ................................ ................................ ............... 24 3.3.3. Màn hình quản lý bệnh nhân: ................................ ................................ ... 24 3.3.4. Màn hình quản lý định danh: ................................ ................................ .... 25 3.3.5. Màn hình duyệt thủ công: ................................ ................................ ......... 26 3.3.6. Màn hình cài đặt: ................................ ................................ ..................... 26 KẾT LUẬN ................................ ................................ ................................ .............. 28 TÀI LIỆU THAM KHẢO ................................ ................................ ....................... 29 PHỤ LỤC 1 ................................ ................................ ................................ ................ . PHỤ LỤC 2 ................................ ................................ ................................ ................ . v DANH SÁCH CÁC B Ả NG, HÌNH V Ẽ Bảng 2.1 Actors Bảng 2.2 Setting Bảng 2.3 FieldWeight Bảng 2.4 BlockingRound Bảng 2.5 BlockingField Bảng 2.6 User Bảng 2.7 Role Bảng 2.8 HealthCenter Bảng 2.9 Person Bảng 2.10 Person Bảng 2.11 ReviewLink Bảng 2.12 Province Bảng 3.1 Ví dụ về cách đá nh trọng số Bảng 3.2 Ví dụ về blocking Hình 1.1 Hình minh họa về Master Patient Index Hình 1.2 Kiến trúc của Spring Framework Hình 1.3 Đ ặc đ iểm của th ư viện của React.js Hình 1.4 Kiến trúc của MySQL Hình 2.2 S ơ đ ồ Use case Hình 2.3 S ơ đ ồ hoạt đ ộng Hình 3.1 Mã giả thuật toán Levenshtein Hình 3.2 Quy tắ c sinh mã đ ịnh danh Hình 3.3 Màn hình đă ng ký Heroku Hình 3.4 Đă ng nhập Heroku CLI thành công Hình 3.5 Màn hình thêm mới app Hình 3.6 Thêm add - on heroku - postgresql Hình 3.7 Cấu hình datasource Hình 3.8 Toàn bộ file server.js Hình 3.9 Màn hình welcome Hình 3.10 Màn hình đă ng nhập Hình 3.11 Màn hình quản lý bệnh nhân Hình 3.12 Màn hình quản lý đ ịnh danh Hình 3.13 Màn hình duyệt thủ công Hình 3.14 Màn hình cài đ ặt vi DANH SÁCH CÁC KÝ HI Ệ U, CH Ữ VI Ế T T Ắ T KÝ HIỆU: …….……................................................................................................... ....................... …….……................................................................................................... ....................... …….……................................................................................................... ....................... …….……................................................................................................... ....................... …….……................................................................................................... ....................... …….……................................................................................................... ....................... CHỮ VIẾT TẮT:  MPI: Master Patient Index  Java EE: Java Enterprise Edition  CSDL : Cơ sở dữ liệu  SQL: Structure Query Language  CLI: Command Line Interface Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 1 M Ở Đ Ầ U Mục đích thực hiện đề tài:  Củng cố, hoàn thiện các kiến thức và kỹ năng đã trau dồi suốt thời gian học tập  Nắm bắt những công nghệ mới, đang là xu thế trong ngành công nghệ thông tin  Xây dựng một hệ thống có thể mang những lợi ích thiết thực trong cuộc sống Mục tiêu đề tài:  Xây dựng hệ thông Master Patient Index – nhằm ma ng lại cơ sở dữ liệu để định danh bệnh nhân giữa các cơ sở y tế khác nhau  Hệ thông có đầy đủ chức năng và đáp ứng tốt các yêu cầu phi chức năng Phạm vi và đối tượng nghiên cứu:  Tham khảo các hệ thống tương tự đã có trên các nước khác, các phần mềm mã nguồn mở  Các quy định về y tế đã được ban hành Phương pháp nghiên cứu:  Tìm hiểu, nghiên cứu các tài liệu, hệ thống mã nguồn mở có sẵ n trên internet  Học cách sử dụng các công nghệ như Spring, React Cấu trúc của đồ án tốt nghiệp:  C hương 1 Giới thiệu chung  Chương 2 Phân tích hệ thống  Chương 3 Phát triển hệ thống và triển khai Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 2 Chương 1: GI Ớ I THI Ệ U CHUNG 1.1. Gi ớ i thi ệ u chung v ề đ ề tài : 1.1.1. Đề tài: Master Patient Index(gọi tắt là MPI) là một hệ thống lưu giữ thông tin bệnh nhân khi các bệnh nhân này tham gia các dịch vụ chăm sóc sức khỏe ở các cơ sở y tế khác nhau. MPI nhằm mục đích gán mỗi bệnh nhân với 1 định danh duy nhất. K hi một bệnh nhân đến k hám tại các cơ sở y tế khác nhau thì ở những cơ sở y tế này sẽ tạo ra nhiều bản ghi chứa thông tin của bệnh nhân này, hệ thống MPI sẽ giúp ta biết được những bản ghi này đều tham chiếu đến cùng 1 người duy nhất. Hình 1.1 Hình minh họa về Master Patient Index 1.1.2. Lợi ích mang lại của đề tài: MPI là 1 phần quan trọng, không thể thiếu trong 1 hệ thống y tế điện tử hiện nay. MPI cho phép trao đổi thông tin cá nhân và những hồ sơ bệnh án của cùng 1 bệnh nhân giữa các cơ sở y tế mà bệnh nhân đó đã tham gia khám, điều trị. Nhờ đó, bác sĩ có thể dễ dàng xem xét việc tiếp tục điều trị như thế nào. Duy trì 1 định danh duy nhất cho mỗi bệnh nhân, có thể sử dụng để liên kết với bệnh án điện tử. Hệ thống này còn giúp xác định các cở sở y tế mà bệnh nhân đã tham gia khám, điều trị. Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 3 1.2. Các công ngh ệ đã đư ợ c s ử d ụ ng: 1.2.1. Back end : Sử dụng ngôn ngữ Java với Framework Spring Boot Spring Framework là một bộ khung ứng dụng và bộ chứa đảo ngược điều khiển cho nền tảng Java. Chức năng tính của bộ khung này có thể áp dụng cho bất kỳ ứng dụng Java nào, tuy vậy, nhiều bản mở rộng dành cho việc xây dựng ứng dụng nền web cũng được phát triển trên nền tảng Java EE. Tuy bộ khung không ấn định lên một cụ thể nào, Spring Framework đã trở nên phổ biến trong cộng đồng Java như một ph ương án song hành, thay thế, hoặc thậm chí bổ sung cho mô hình Enterprise JavaBeans (EJB). Đây là bộ khung mã nguồn mở. Hình 1.2 Kiến trúc của Spring Framework 1.2.2. Front end: S ử dụng ngôn ngữ JavaScript với Framework React.js React là một thư viện JavaScript nhằm đơn giản hóa việc phát triển giao diện người dùng. Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 4 Được phát triển bởi Facebook và bản release đầu tiên trên thế giới vào nằm 2013 và được sử dụng để viết ra Facebook, instagram và được sự ủng hộ sử dụng của rất nhiều công ty khác trên thế giới. Mục tiêu của react chính là đơn giản để phát triển. Tất cả trạng thái đều được tập trung tại một thời điểm, bằng cách chia giao diện người dùng thành tập hợp các thành phần (components) Hình 1.3 Đặc điểm của thư viện của React.js 1.2.3 H ệ qu ả n t r ị cơ s ở d ữ li ệ u: Sử dụng hệ quản trị cơ sở dữ liệu MySQL. MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet. Người dùng có thể tải về MySQL mi ễn phí từ trang chủ. MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,.. Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 5 MySQL là một trong những ví dụ rất cơ bản v ề Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL). MySQL được sử dụng cho việc bổ trợ NodeJs, PHP, Perl, và nhiều ngôn ngữ khác, làm nơi lưu trữ những thông tin trên các trang web viết bằng NodeJs, PHP hay Perl,... Hình 1.4 Kiến trúc của MySQL Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 6 Chương 2: PHÂN TÍCH H Ệ TH Ố NG 2.1. Actors: Bảng dưới đây sẽ mô tả tất cả các tác nhân tham gia vào hệ thông Master Patient Index. Mỗi tác nhân sẽ có một vai trò khác nhau trong hệ thống. Hiện tại chúng ta có các tác nhân : Admin, Health Center User. Actor Description Admin Có quyền chỉnh sửa thông tin cá nhân, mật khẩu Cấu hình hệ thống: thuật toán so sánh, blocking Tạo mới , quản lý tài khoản cho cơ sở y tế Quản lý các cơ sở y tế Thực hiện manual merge person Xem, tìm kiếm thông tin person, master person Health Center User Có qu yền chỉnh sửa thông tin cá nhân , mật khẩu Tạo mới, cập nhật person Thực hiện manual merge person Xem, tìm kiếm thông tin person, master person Bảng 2 .1 Actors 2.2. Sơ đ ồ Use cases: Chúng ta có 2 sơ đồ use case tương ứng với 2 actors có trong hệ thông:  Admin: là người quản trị hệ thống  Health Center User: là người dùng ở các cơ sở y tế Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 7 Hình 2 .2 Sơ đồ Use case Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 8 2.3. Sơ đ ồ ho ạ t đ ộ ng: Hình 2 .3 Sơ đồ hoạt động Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 9 2.4. T ừ đi ể n d ữ li ệ u: Setting STT Trường Kiểu dữ liệu Mô tả 1 id long Id tự động tăng 2 mpi_key varchar Key của setting 3 mpi_value varchar Giá trị của setting key tương ứng 4 description text Mô tả Bảng 2 . 2 Setting FieldWeight STT Trường Kiểu dữ liệu Mô tả 1 id long Id tự động tăng 2 field int Id của trường cần đánh trọng số 3 weight int Trọng số Bảng 2 .3 FieldWeight BlockingRound STT Trường Kiểu dữ liệu Mô tả 1 id long Id tự động tăng 2 name varchar Tên của blocking round Bảng 2 . 4 BlockingRound Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 10 BlockingField STT Trường Kiểu dữ liệu Mô tả 1 id long Id tự động tăng 2 field int Id của trường có trong block 3 blocking_round_id long Khóa ngoại nối với blocking round tương ứng Bảng 2 . 5 BlockingField User STT Trường Kiểu dữ liệu Mô tả 1 id long Id tự động tăng 2 f ull_name varchar Họ và tên người dùng 3 password varchar Mật khẩu 4 user_name varchar Tên đăng nhập 5 health_center_id long Khóa ngoại nối với cơ sở y tế tương ứng 6 role_id long Khóa ngoại nối với role tương ứng Bảng 2 . 6 User Role STT Trường Kiểu dữ liệu Mô tả 1 id long Id tự động tăng 2 role_name varchar Tên của role Bảng 2 . 7 Role Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 11 HealthCenter STT Trường Kiểu dữ liệu Mô tả 1 id long Id tự động tăng 2 name varchar Tên của cơ sở y tế 3 address varchar Địa chỉ của cơ sở y tế Bảng 2 . 8 HealthCenter Person STT Trường Kiểu dữ liệu Mô tả 1 id long Id tự động tăng 2 address varchar Tên của cơ sở y tế 3 date_of_birth date Địa chỉ của cơ sở y tế 4 full_name varchar Họ và tên bệnh nhân 5 gender int Id của giới tính 6 health_center_insurance_number varchar Mã thẻ bảo hiểm y tế 7 identification_number varchar Số chứng minh nhân dân 8 patient_code varchar Mã bệnh nhân ở cơ sở 9 person_status int Trạng thái của record 10 score double Điểm số khi chạy thuật toán 11 health_center_ id long Id của cơ sở y tế 12 master_person_id long Id của master person Bảng 2 . 9 Person Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 12 Master Person STT Trường Kiểu dữ liệu Mô tả 1 id long Id tự động tăng 2 address varchar Tên của cơ sở y tế 3 date_of_birth date Địa chỉ của cơ sở y tế 4 full_name varchar Họ và tên bệnh nhân 5 gender int Id của giới tính 6 health_center_insurance_number varchar Mã thẻ bảo hiểm y tế 7 identification_number varchar Số chứng minh nhân dân Bảng 2 . 10 Person ReviewLink STT Trường Kiểu dữ liệu Mô tả 1 id long Id tự động tăng 2 link_status int Trạng thái của record 3 score double Điểm số khi chạy thuật toán 4 master_person_id long Khóa ngoại nối với master person tương ứng 5 person_id long Khóa ngoại nối với person tương ứng Bảng 2 . 11 ReviewLink Province STT Trường Kiểu dữ liệu Mô tả 1 id long Id tự động tăng 2 code varchar Mã tỉnh theo tổng cục thống kê 3 name varchar Tên tỉnh Bảng 2 . 12 Province Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 13 Chương 3 : PHÁT TRI Ể N VÀ TRI Ể N KHAI H Ệ TH Ố NG 3 .1. Phát tri ể n h ệ th ố ng: 3 . 1 . 1 . Thu ậ t toán tính đ ộ tương đ ồ ng c ủ a hai chu ỗ i: Để xác định 2 bản ghi có cùng tham chiếu đến 1 người hay không, chúng ta phải đánh giá độ tương đồng giữa 2 bản ghi này. Vì vậy, trước hết, chúng ta cần phải tìm ra độ tương đồng giữa 2 chuỗi. Trong đồ án tốt nghiệp này, em dùng thuật toán Levenshtein để tìm ra khoảng cách giữa hai chuỗi . Từ đó, chúng ta có thể dễ dàng tính ra độ tương đồng hai chuỗi này. Trong các thuật toán của bộ môn khoa học máy tính, khái niệm Khoảng cách Levenshtein thể hiện khoảng cách khác biệt giữa 2 chuỗi ký tự. Khoảng cách Levenshtein giữa chuỗi S và chuỗi T là số b ư ớc ít nhất biến chuỗi S thành chuỗi T thông qua 3 phép biến đ ổi là:  xoá 1 ký tự.  thêm 1 ký tự.  thay ký tự này bằng ký tự khác. Khoảng cách này đư ợc đ ặt theo tên Vladimir Levenshtein, ng ư ời đã đ ề ra khái niệm này vào n ă m 1965. Nó đư ợc sử dụng trong việc tính toán sự giống và khác nhau giữa 2 chuỗi, nh ư ch ươ ng trình kiểm tra lỗi chính tả của winword spellchecker. Ví dụ: Khoảng cách Levenshtein giữa 2 chuỗi "kitten" và "sitt ing" là 3, vì phải dùng ít nhất 3 lần biến đ ổi.  kitten - > sitten (thay "k" bằng "s")  sitten - > sittin (thay "e" bằng "i")  sittin - > sitting (thêm ký tự "g") Mã giả: Master Patient Index S inh viên thực hiện: Lê Đình Tuyến Hướng dẫn: Trần Hồ Thủy Tiên 14 Hình 3 .1 Mã giả thuật toán Levenshtein Khi đó , độ tương đồng của 2 chuỗi sẽ là:

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ PHẦN MỀM

ĐỀ TÀI:

MASTER PATIENT INDEX

Người hướng dẫn: ThS TRẦN HỒ THỦY TIÊN Sinh viên thực hiện: LÊ ĐÌNH TUYẾN

Trang 2

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ PHẦN MỀM

ĐỀ TÀI:

MASTER PATIENT INDEX

Người hướng dẫn: ThS TRẦN HỒ THỦY TIÊN Sinh viên thực hiện: LÊ ĐÌNH TUYẾN

Số thẻ sinh viên: 102150144

Lớp: 15T2

Đà Nẵng, 12/2019

Trang 3

………

………

………

………

………

………

………

Trang 4

………

………

………

………

………

………

………

Trang 5

Tên đề tài: Master Patient Index – Hệ thống định danh bệnh nhân

Sinh viên thực hiện: LÊ ĐÌNH TUYẾN

Số thẻ SV: 102150144 Lớp: 15T2

Đề tài: Master Patient Index- Hệ thống chỉ mục bệnh nhân

Master Patient Index(gọi tắt là MPI) là một hệ thống lưu giữ thông tin bệnh nhân khi các bệnh nhân này tham gia các dịch vụ chăm sóc sức khỏe ở các cơ sở y tế khác nhau MPI nhằm mục đích gán mỗi bệnh nhân với 1 định danh duy nhất

Khi một bệnh nhân đến khám 7tại các cơ sở y tế khác nhau thì ở những cơ sở y tế này

sẽ tạo ra nhiều bản ghi chứa thông tin của bệnh nhân này, hệ thống MPI sẽ giúp ta biết được những bản ghi này đều tham chiếu đến cùng 1 người duy nhất

Trang 6

KHOA CÔNG NGHỆ THÔNG TIN

Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Họ tên sinh viên: : LÊ ĐÌNH TUYẾN Số thẻ sinh viên: 102150144

Lớp: 15T2 Khoa:Công nghệ thông tin Ngành: Công nghệ phần mềm

1 Tên đề tài đồ án:

Master Patient Index – Hệ thống chỉ mục bệnh nhân

2 Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện

3 Các số liệu và dữ liệu ban đầu:

 Thông tin cá nhân của bệnh nhân

 Thông tin các tỉnh thành phố theo tổng cục thống kê

 Cấu hình các thuật toán

4 Nội dung các phần thuyết minh và tính toán:

 Cấu hình hệ thống: thuật toán so sánh, blocking

 Tạo mới, quản lý tài khoản cho cơ sở y tế

 Quản lý các cơ sở y tế

 Thêm mới, quản lý thông tin bệnh nhân

 Thực hiện manual merge person

5 Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):

 Sơ đồ ca sử dụng

 Sơ đồ hoạt động

 Bản vẽ cơ sở dữ liệu

6 Họ tên người hướng dẫn: Th.S TRẦN HỒ THỦY TIÊN

7 Ngày giao nhiệm vụ đồ án: …… /……./201…

8 Ngày hoàn thành đồ án: …… /……./201…

Đà Nẵng, ngày tháng năm 201

Trần Hồ Thủy Tiên

Trang 7

Đầu tiên, em xin gửi lời cảm ơn chân thành tới Th.S Trần Hồ Thủy Tiên đã giúp

đỡ em hoàn thành tốt đề tài đồ án tốt nghiệp này Trong quá trình hướng dẫn em làm đồ

án, cô đã chỉ bảo và hướng dẫn tận tình cho em những lý thuyết, cũng như các kỹ năng trong lập trình, cách giải quyết các vấn đề trong đề tài Cô luôn là người truyền động lực cho em, đề xuất cho em các ý tưởng mới mẽ để giúp em hoàn thành tối đề tài đồ án

Em thực sự biết ơn và ghi nhớ sự dạy dỗ tận tình của các thầy cô khoa Công nghệ thông tin – Trường Đại học Bách khoa – Đại học Đà Nẵng

Trong quá trình hoàn thành đồ án, em đã rất cố gắng thực hiện hết khả năng trong thời gian cho phép nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Em rất mong nhận sự góp ý, chỉ bảo của quý thầy cô

Trang 8

Tôi xin cam đoan:

1 Nội dung trong đồ án này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của Th.S Trần Hồ Thủy Tiên

2 Các tham khảo dùng trong đồ án đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố

3 Nếu có những sao chép không hợp lệ, vi phạm, tôi xin chịu hoàn toàn trách nhiệm

Sinh viên thực hiện

Trang 9

TÓM TẮT

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

LỜI NÓI ĐẦU i

CAM ĐOAN ii

MỤC LỤC iii

DANH SÁCH CÁC BẢNG, HÌNH VẼ v

DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT vi

MỞ ĐẦU 1

Chương 1: GIỚI THIỆU CHUNG 2

1.1 Giới thiệu chung về đề tài: 2

1.1.1 Đề tài: 2

1.1.2 Lợi ích mang lại của đề tài: 2

1.2 Các công nghệ đã được sử dụng: 3

1.2.1 Back end: 3

1.2.2 Front end: 3

1.2.3 Hệ quản trị cơ sở dữ liệu: 4

Chương 2: PHÂN TÍCH HỆ THỐNG 6

2.1 Actors: 6

2.2 Sơ đồ Use cases: 6

2.3 Sơ đồ hoạt động: 8

2.4 Từ điển dữ liệu: 9

Chương 3: PHÁT TRIỂN VÀ TRIỂN KHAI HỆ THỐNG 13

3.1 Phát triển hệ thống: 13

3.1.1 Thuật toán tính độ tương đồng của hai chuỗi: 13

3.1.2 Thuật toán chia block: 15

3.1.3 Quy tắc sinh mã định danh: 16

3.1.4 Cơ sở dữ liệu: 17

3.2 Triển khai hệ thống: 19

3.2.1 Triển khai back end: 19

3.2.2 Triển khai frontend: 22

3.3 Kết quả đã thực hiện: 23

Trang 10

3.3.2 Màn hình đăng nhập: 24

3.3.3 Màn hình quản lý bệnh nhân: 24

3.3.4 Màn hình quản lý định danh: 25

3.3.5 Màn hình duyệt thủ công: 26

3.3.6 Màn hình cài đặt: 26

KẾT LUẬN 28

TÀI LIỆU THAM KHẢO 29

PHỤ LỤC 1

PHỤ LỤC 2

Trang 11

Hình 1.1 Hình minh họa về Master Patient Index

Hình 1.2 Kiến trúc của Spring Framework

Hình 1.3 Đặc điểm của thư viện của React.js

Hình 1.4 Kiến trúc của MySQL

Hình 2.2 Sơ đồ Use case

Hình 2.3 Sơ đồ hoạt động

Hình 3.1 Mã giả thuật toán Levenshtein

Hình 3.2 Quy tắc sinh mã định danh

Hình 3.3 Màn hình đăng ký Heroku

Hình 3.4 Đăng nhập Heroku CLI thành công

Hình 3.5 Màn hình thêm mới app

Hình 3.6 Thêm add-on heroku-postgresql

Trang 12

KÝ HIỆU:

…….……

…….……

…….……

…….……

…….……

…….……

CHỮ VIẾT TẮT:

 MPI: Master Patient Index

 Java EE: Java Enterprise Edition

 CSDL: Cơ sở dữ liệu

 SQL: Structure Query Language

 CLI: Command Line Interface

Trang 13

MỞ ĐẦU

Mục đích thực hiện đề tài:

 Củng cố, hoàn thiện các kiến thức và kỹ năng đã trau dồi suốt thời gian học tập

 Nắm bắt những công nghệ mới, đang là xu thế trong ngành công nghệ thông tin

 Xây dựng một hệ thống có thể mang những lợi ích thiết thực trong cuộc sống Mục tiêu đề tài:

 Xây dựng hệ thông Master Patient Index – nhằm mang lại cơ sở dữ liệu để định danh bệnh nhân giữa các cơ sở y tế khác nhau

 Hệ thông có đầy đủ chức năng và đáp ứng tốt các yêu cầu phi chức năng

Phạm vi và đối tượng nghiên cứu:

 Tham khảo các hệ thống tương tự đã có trên các nước khác, các phần mềm mã nguồn mở

 Các quy định về y tế đã được ban hành

Phương pháp nghiên cứu:

 Tìm hiểu, nghiên cứu các tài liệu, hệ thống mã nguồn mở có sẵn trên internet

 Học cách sử dụng các công nghệ như Spring, React

Cấu trúc của đồ án tốt nghiệp:

 Chương 1 Giới thiệu chung

 Chương 2 Phân tích hệ thống

 Chương 3 Phát triển hệ thống và triển khai

Trang 14

Chương 1: GIỚI THIỆU CHUNG

1.1 Giới thiệu chung về đề tài:

1.1.1 Đề tài:

Master Patient Index(gọi tắt là MPI) là một hệ thống lưu giữ thông tin bệnh nhân khi các bệnh nhân này tham gia các dịch vụ chăm sóc sức khỏe ở các cơ sở y tế khác nhau MPI nhằm mục đích gán mỗi bệnh nhân với 1 định danh duy nhất

Khi một bệnh nhân đến khám tại các cơ sở y tế khác nhau thì ở những cơ sở y tế này

sẽ tạo ra nhiều bản ghi chứa thông tin của bệnh nhân này, hệ thống MPI sẽ giúp ta biết được những bản ghi này đều tham chiếu đến cùng 1 người duy nhất

Hình 1.1 Hình minh họa về Master Patient Index

1.1.2 Lợi ích mang lại của đề tài:

MPI là 1 phần quan trọng, không thể thiếu trong 1 hệ thống y tế điện tử hiện nay MPI cho phép trao đổi thông tin cá nhân và những hồ sơ bệnh án của cùng 1 bệnh nhân giữa các cơ sở y tế mà bệnh nhân đó đã tham gia khám, điều trị Nhờ đó, bác sĩ có thể dễ dàng xem xét việc tiếp tục điều trị như thế nào

Duy trì 1 định danh duy nhất cho mỗi bệnh nhân, có thể sử dụng để liên kết với bệnh

án điện tử

Hệ thống này còn giúp xác định các cở sở y tế mà bệnh nhân đã tham gia khám, điều trị

Trang 15

1.2 Các công nghệ đã được sử dụng:

1.2.1 Back end:

Sử dụng ngôn ngữ Java với Framework Spring Boot

Spring Framework là một bộ khung ứng dụng và bộ chứa đảo ngược điều khiển cho nền tảng Java Chức năng tính của bộ khung này có thể áp dụng cho bất kỳ ứng dụng Java nào, tuy vậy, nhiều bản mở rộng dành cho việc xây dựng ứng dụng nền web cũng được phát triển trên nền tảng Java EE Tuy bộ khung không ấn định lên một cụ thể nào, Spring Framework đã trở nên phổ biến trong cộng đồng Java như một phương án song hành, thay thế, hoặc thậm chí bổ sung cho mô hình Enterprise JavaBeans (EJB) Đây là bộ khung mã nguồn mở

Hình 1.2 Kiến trúc của Spring Framework

1.2.2 Front end:

Sử dụng ngôn ngữ JavaScript với Framework React.js

React là một thư viện JavaScript nhằm đơn giản hóa việc phát triển giao diện người dùng

Trang 16

Được phát triển bởi Facebook và bản release đầu tiên trên thế giới vào nằm 2013 và được sử dụng để viết ra Facebook, instagram và được sự ủng hộ sử dụng của rất nhiều công ty khác trên thế giới

Mục tiêu của react chính là đơn giản để phát triển Tất cả trạng thái đều được tập trung tại một thời điểm, bằng cách chia giao diện người dùng thành tập hợp các thành phần (components)

Hình 1.3 Đặc điểm của thư viện của React.js

1.2.3 Hệ quản trị cơ sở dữ liệu:

Sử dụng hệ quản trị cơ sở dữ liệu MySQL

MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ

sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều

hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet Người dùng có thể tải về MySQL miễn phí từ trang chủ MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng

Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,

Trang 17

MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ

sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)

MySQL được sử dụng cho việc bổ trợ NodeJs, PHP, Perl, và nhiều ngôn ngữ khác, làm nơi lưu trữ những thông tin trên các trang web viết bằng NodeJs, PHP hay Perl,

Hình 1.4 Kiến trúc của MySQL

Trang 18

Chương 2: PHÂN TÍCH HỆ THỐNG

2.1 Actors:

Bảng dưới đây sẽ mô tả tất cả các tác nhân tham gia vào hệ thông Master Patient Index Mỗi tác nhân sẽ có một vai trò khác nhau trong hệ thống Hiện tại chúng ta có các tác nhân : Admin, Health Center User

Admin Có quyền chỉnh sửa thông tin cá nhân, mật khẩu

Cấu hình hệ thống: thuật toán so sánh, blocking Tạo mới, quản lý tài khoản cho cơ sở y tế Quản lý các cơ sở y tế

Thực hiện manual merge person Xem, tìm kiếm thông tin person, master person Health Center

2.2 Sơ đồ Use cases:

Chúng ta có 2 sơ đồ use case tương ứng với 2 actors có trong hệ thông:

 Admin: là người quản trị hệ thống

 Health Center User: là người dùng ở các cơ sở y tế

Trang 19

Hình 2.2 Sơ đồ Use case

Trang 20

2.3 Sơ đồ hoạt động:

Hình 2.3 Sơ đồ hoạt động

Trang 21

2.4 Từ điển dữ liệu:

Setting

3 mpi_value varchar Giá trị của setting key tương ứng

Trang 22

BlockingField

3 blocking_round_id long Khóa ngoại nối với blocking round

tương ứng Bảng 2.5 BlockingField

User

5 health_center_id long Khóa ngoại nối với cơ sở y tế tương

Trang 23

HealthCenter

Bảng 2.8 HealthCenter Person

6 health_center_insurance_number varchar Mã thẻ bảo hiểm y tế

7 identification_number varchar Số chứng minh nhân dân

toán

Bảng 2.9 Person

Trang 24

MasterPerson

6 health_center_insurance_number varchar Mã thẻ bảo hiểm y tế

7 identification_number varchar Số chứng minh nhân dân

Bảng 2.10 Person

ReviewLink

4 master_person_id long Khóa ngoại nối với master person

tương ứng

ứng Bảng 2.11 ReviewLink

Province

Bảng 2.12 Province

Trang 25

Chương 3: PHÁT TRIỂN VÀ TRIỂN KHAI HỆ THỐNG

3.1 Phát triển hệ thống:

3.1.1 Thuật toán tính độ tương đồng của hai chuỗi:

Để xác định 2 bản ghi có cùng tham chiếu đến 1 người hay không, chúng ta phải đánh giá độ tương đồng giữa 2 bản ghi này Vì vậy, trước hết, chúng ta cần phải tìm ra

độ tương đồng giữa 2 chuỗi

Trong đồ án tốt nghiệp này, em dùng thuật toán Levenshtein để tìm ra khoảng cách giữa hai chuỗi Từ đó, chúng ta có thể dễ dàng tính ra độ tương đồng hai chuỗi này Trong các thuật toán của bộ môn khoa học máy tính, khái niệm Khoảng cách

Levenshtein thể hiện khoảng cách khác biệt giữa 2 chuỗi ký tự Khoảng cách

Levenshtein giữa chuỗi S và chuỗi T là số bước ít nhất biến chuỗi S thành chuỗi T thông qua 3 phép biến đổi là:

Ví dụ: Khoảng cách Levenshtein giữa 2 chuỗi "kitten" và "sitting" là 3, vì phải dùng

ít nhất 3 lần biến đổi

 kitten -> sitten (thay "k" bằng "s")

 sitten -> sittin (thay "e" bằng "i")

 sittin -> sitting (thêm ký tự "g")

Mã giả:

Trang 26

Hình 3.1 Mã giả thuật toán Levenshtein

Khi đó, độ tương đồng của 2 chuỗi sẽ là:

𝐿𝑒𝑣𝑒𝑛𝑠ℎ𝑡𝑒𝑖𝑛𝐷𝑖𝑠𝑡𝑎𝑛𝑐𝑒(𝑠1, 𝑠2)𝑀𝑎𝑥𝐿𝑒𝑛𝑔𝑡ℎ(𝑠1, 𝑠2)

Chúng ta biết rằng có vài trường trong bản ghi thông tin bệnh nhân sẽ có mức độ quan trọng cao hơn Do đó, chúng ta cần đánh trọng số tương ứng với mức độ quan trọng của trường đó

address 1600 pennsylvania ave 1600 Pensylvannia Avenue 20

Trang 27

Bảng 3.1 Ví dụ về cách đánh trọng số

3.1.2 Thuật toán chia block:

Khi 1 bản ghi bệnh nhân được thêm vào hệ thống MPI, bản ghi này sẽ được chạy thuật toán so sánh độ tương đồng với tất cả các bản ghi trong MPI Khi mà số lượng bản ghi MPI trở nên lớn thì việc so sánh này trở nên chậm chạp, mất rất nhiều thời gian

Trong thực tế, những bản ghi trùng nhau hầu như luôn luôn chia sẻ một vài đặc điểm chung Nếu chúng ta định nghĩa được những nhóm dữ liệu phân chia theo đặc điểm chung đó, việc so sánh chỉ còn đối với nhóm dữ liệu này thay vì so sánh với toàn

bộ cơ sở dữ liệu

Chúng ta phải dùng thuật toán blocking để giảm số lần so sánh

record id first name last name address phone

number

gender

pennsylvania ave

555-0123 male

Pensylvannia Avenue

Với dữ liệu như bảng ở trên, nếu chúng ta gom nhóm các bản ghi theo trường

gender thì số lần so sánh sẽ giảm đi rất nhiều và kết quả vẫn được đảm bảo

Câu lệnh truy vẫn SQL tương ứng sẽ là

“SELECT * FROM master_person WHERE gender=?”

Trang 28

3.1.3 Quy tắc sinh mã định danh:

Trong hệ thống MPI, chúng ta cần sinh ra mã định danh(globalId) cho mỗi bệnh nhân Định danh này được sinh theo quy tắc như sau

Hình 3.2 Quy tắc sinh mã định danh Thuật toán module 11:

Các bước để tính ký tự kiểm tra:

 Gán trọng số cho mỗi số trong dãy số cần tính Trọng số được đánh từ 2, 3, 4, từ trái sang phải

 Mỗi số được nhân với trọng số của nó

 Kết quả của mỗi phép nhân được cộng lại với nhau

 Tổng này được chia cho 11 để lấy số dư

 Ký tự kiểm tra bằng 11 trừ cho số dư(nếu ký tự kiểm tra bằng 10 thì được thay bằng “X”, nếu ký tự kiểm tra bằng 11 thì được thay bằng “0”)

Ví dụ: cần tính ký tự kiểm tra cho dãy số 036532

Trang 29

11 - 4 = 7

7 là ký tự cần tìm

Các bước để đảm bảo tính đúng dắn của ký tự kiểm tra:

 Toàn bộ mỗi số cần tính được nhân với trọng số như cách tính trên, với ký tự kiểm tra thì được nhân với 1

 Kết quả của các phép nhân được cộng lại với nhau

 Tổng này được chia cho 11, nếu số dư là 0, thì dãy số trên là đúng đắn

Từ những thiết kế ở từ điển dữ liệu, chúng ta triển khai cài đặt trên hệ quản trị cơ sở

dữ liệu MySQL Kết quả thu được như hình dưới:

Ngày đăng: 25/02/2024, 11:05

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w