ĐẠ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à:
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: Lê Đình Tuyến TÊN ĐỀ TÀI: MASTER PATIENT INDEX 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 ĐẠ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 mục bệnh nhân Master Patient Index(gọi tắt MPI) hệ thống lưu giữ thông tin bệnh nhân bệnh nhân tham gia dịch vụ chăm sóc sức khỏe sở y tế khác MPI nhằm mục đích gán bệnh nhân với định danh Khi bệnh nhân đến khám 7tại sở y tế khác sở y tế tạo nhiều ghi chứa thông tin bệnh nhân này, hệ thống MPI giúp ta biết ghi tham chiếu đến người ĐẠ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ự - 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 Tên đề tài đồ án: Master Patient Index – Hệ thống mục bệnh nhân Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ kết thực Các số liệu liệu ban đầu: Thông tin cá nhân bệnh nhân Thông tin tỉnh thành phố theo tổng cục thống kê Cấu hình thuật tốn Nội dung phần thuyết minh tính tố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 sở y tế Quản lý sở y tế Thêm mới, quản lý thông tin bệnh nhân Thực manual merge person Các vẽ, đồ thị ( ghi rõ loại kích thước vẽ ): Sơ đồ ca sử dụng Sơ đồ hoạt động Bản vẽ sở liệu Họ tên người hướng dẫn: Th.S TRẦN HỒ THỦY TIÊN Ngày giao nhiệm vụ đồ án: …… /……./201… 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 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 Trong trình hướng dẫn em làm đồ án, cô bảo hướng dẫn tận tình cho em lý thuyết, kỹ lập trình, cách giải vấn đề đề tài Cô người truyền động lực cho em, đề xuất cho em ý tưởng mẽ để giúp em hoàn thành tối đề tài đồ án Em thực biết ơn ghi nhớ dạy dỗ tận tình thầy cô khoa Công nghệ thông tin – Trường Đại học Bách khoa – Đại học Đà Nẵng Trong trình hồn thành đồ án, em cố gắng thực hết khả thời gian cho phép chắn khơng tránh khỏi thiếu sót Em mong nhận góp ý, bảo quý thầy cô i CAM ĐOAN Tôi xin cam đoan: Nội dung đồ án thực hướng dẫn trực tiếp Th.S Trần Hồ Thủy Tiên Các tham khảo dùng đồ án 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ố Nếu có chép khơng hợp lệ, vi phạm, tơi xin chịu hồn tồn trách nhiệm Sinh viên thực ii 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 Chương 1: GIỚI THIỆU CHUNG 1.1 Giới thiệu chung đề tài: 1.1.1 Đề tài: 1.1.2 Lợi ích mang lại đề tài: 1.2 Các công nghệ sử dụng: 1.2.1 Back end: 1.2.2 Front end: 1.2.3 Hệ quản trị sở liệu: Chương 2: PHÂN TÍCH HỆ THỐNG 2.1 Actors: 2.2 Sơ đồ Use cases: 2.3 Sơ đồ hoạt động: 2.4 Từ điển liệu: 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 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ở 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 thực hiện: 23 iii 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 PHỤ LỤC iv