Kỹ Thuật - Công Nghệ - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Kỹ thuật UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA CÔNG NGHỆ THÔNG TIN ---- ----- KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: TÌM HIỂU VỀ CƠ SỞ DỮ LIỆU THỜI GIAN VÀ ỨNG DỤNG TRONG BÀI TOÁN QUẢN LÝ HỒ SƠ BỆNH ÁN BỆNH VIỆN ĐA KHOA TW QUẢNG NAM Sinh viên thực hiện HUỲNH THỊ MY LY MSSV: 2113011022 CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN KHÓA: 2013 – 2017 Cán bộ hướng dẫn Th.S NGUYỄN THỊ MINH CHÂU MSCB: .............. Quảng Nam, tháng 04 năm 2017 LỜI CẢM ƠN Lời đầu tiên, cho phép em gửi lời cảm ơn đến ban lãnh đạo nhà trường, đội ngũ cán bộ giảng viên trường đại học Quảng Nam đã tạo điều kiện cho em hoàn thành tốt quá trình học tập thuộc chuyên ngành Công nghệ Thông tin từ đầu khoá học 2013-2017 đến nay. Hơn hết, em xin gửi lời cảm ơn rất chân thành và sâu sắc đến giảng viên Th.S Nguyễn Thị Minh Châu , đã tận tình trong việc hướng dẫn và luôn tạo điều kiện tốt nhất cho em hoàn thành khoá luận này. Và báo cáo này là kết quả mà em có được dưới sự giúp đỡ tận tình của cô. Thông qua đây, em cũng xin gửi lời cảm ơn đến gia đình, tất cả bạn bè đã đồng hành và giúp đỡ em trong suốt thời gian qua. Một lần nữa, em xin chân thành cảm ơn MỤC LỤC PHẦN 1. MỞ ĐẦU ........................................................................................... 1 1. Lý do chọn đề tài ........................................................................................... 1 2. Mục tiêu của đề tài ........................................................................................ 1 3. Đối tượng và phạm vi nghiên cứu ................................................................. 2 4. Phương pháp nghiên cứu ............................................................................... 2 5. Lịch sử nghiên cứu ........................................................................................ 2 6. Đóng góp của đề tài....................................................................................... 2 7. Cấu trúc của đề tài ......................................................................................... 2 PHẦN 2. NỘI DUNG ....................................................................................... 3 Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU THỜI GIAN ....................... 3 1.1. Giới thiệu về cơ sở dữ liệu thời gian thực.................................................. 3 1.2. Các khái niệm cơ bản về CSDL thời gian thực ......................................... 3 1.2.1. Hệ thời gian thực ..................................................................................... 3 1.2.2. CSDL thời gian thực ............................................................................... 4 1.3 Mô hình thực thể mối quan hệ thời gian (TimeER) .................................... 4 1.4. So sánh mô hình ER và mô hình TimeER ................................................. 7 1.5. Cách xây dựng mô hình CSDL thời gian ở mức khái niệm (TimeER) ..... 8 1.6. Cách chuyển đổi từ mô hình TimeER sang mô hình R ............................. 9 Chương 2: HỆ THỐNG QUẢN LÝ HỒ SƠ BỆNH ÁN ................................ 15 2.1. Mô tả hồ sơ bệnh án và quy trình làm việc .............................................. 15 2.1.1. Mô tả hồ sơ bệnh án .............................................................................. 15 2.1.2. Mô tả quy trình làm việc ....................................................................... 18 2.2. Chức năng của hệ thống ........................................................................... 18 Chương 3: PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU CHO HỆ THỐNG QUẢN LÝ HỒ SƠ BỆNH ÁN ....................................................................... 20 3.1. Mô tả bài toán........................................................................................... 20 3.2. Đưa ra mô hình ER .................................................................................. 20 3.3. Áp dụng CSDL thời gian vào bài toán quản lý ........................................ 28 3.3.1. Xây dựng mô hình TimeER .................................................................. 28 3.3.2. Chuyển đổi mô hình TimeER sang mô hình R ..................................... 30 Chương 4: CHƯƠNG TRÌNH THỬ NGHIỆM.............................................. 41 4.1. Các thành phần của chương trình............................................................. 41 4.2. Các chức năng liên quan đến xử lý CSDL thời gian ............................... 44 PHẦN 3. KẾT LUẬN VÀ KIẾN NGHỊ......................................................... 45 TÀI LIỆU THAM KHẢO ............................................................................... 46 CÁC TỪ VIẾT TẮT Tên viết tắt Ý nghĩa CSDL Cơ sở dữ liệu DL Dữ liệu TW Trung ương CMND Chứng minh nhân dân HSBA Hồ sơ bệnh án TTBN Thông tin bệnh nhân BS Bác sĩ CĐ Chỉ định TT Thông tin TT TD CN Thông tin theo dõi chức năng MSCD Mã số chỉ định MSBN Mã số bệnh nhân ĐD Điều dưỡng TG Thời gian LS LifeSpan (Thời gian sống) VT ValidTime (Thời gian hợp lệ) BT BiTemporal TT TransactionTime (Thời gian tương tác) LT LifeTime 1 PHẦN 1. MỞ ĐẦU 1. Lý do chọn đề tài Khi thiết kế cơ sở dữ liệu, chúng ta hay gặp phải những đối tượng mà một số thông tin luôn thay đổi theo thời gian. Đòi hỏi chúng ta phải làm như thế nào đó để có thể lưu lại tất cả những thay đổi đó trên từng mốc thời gian cụ thể mà chúng xảy ra. Nó đưa chúng ta đi theo một hướng nghiên cứu đó là “Cơ sở dữ liệu theo thời gian”. Các ứng dụng của cơ sở dữ liệu thời gian có rất nhiều những tiện ích giúp cho cả ngư ời quản lý cũng như các tổ chức có thể nắm bắt kịp thời việc thay đổi dữ liệu một cách liên tục, nhanh chóng, nó giúp cho việc phân tích dự đoán được kịp thời và phản ánh các thay đổi gần như ngay lập tức, vì vậy việc xây dựng các cơ sở dữ liệu theo thời gian là hết sức cần thiết đối với các tổ chức có các yêu cầu nghiệp vụ quản lý các loại thông tin dữ liệu liên tục thay đổi. Như trong y tế, khi nhập viện, bạn sẽ được đo huyết áp hoặc điện tim mỗi ngày (Phụ thuộc từng khoa). Chỉ số thay đổi liên tục theo thời gian. Một hệ thống cần phải có khả năng xử lý các truy vấn thời gian gần như tức thời, trả về tạm thời những dữ liệu hợp lệ, và hỗ trợ cho việc lập kế hoạch ưu tiên. Việc ứng dụng cơ sở dữ liệu thời gian là một xu hướng tất yếu trong tương lai khi các yêu cầu nghiệp vụ đòi hỏi sự hỗ trợ ngay lập tức từ việc xử lý thông tin, cũng như hỗ trợ ra quyết định. Và với sự hướng dẫn của ThS.Nguyễn Thị Minh Châu, em đã chọn đề tài: “Tìm hiểu về cơ sở dữ liệu thời gian và ứng dụng trong bài toán quản lý hồ sơ bệnh án bệnh viện đa khoa TW đa khoa Quảng Nam”. 2. Mục tiêu của đề tài Tìm hiểu về cơ sở dữ liệu theo thời gian. So sánh mô hình ER và mô hình TimeER. Áp dụng được cơ sở lý thuyết vào việc xây dựng cơ sở dữ liệu cho mô hình quản lý hồ sơ bệnh án bệnh viện đa khoa TW đa khoa Quảng Nam. 2 3. Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu: Cơ sở dữ liệu theo thời gian. Hồ sơ bệnh án. Phạm vi nghiên cứu: nghiên cứu về cơ sở dữ liệu theo thời gian từ đó xây dựng cơ sở dữ liệu cho mô hình quản lý đã chọn. 4. Phương pháp nghiên cứu Đọc tài liệu tham khảo, các biểu mẫu thu thập được; nghiên cứu trên internet; tham khảo ý kiến từ giáo viên hướng dẫn. 5. Lịch sử nghiên cứu Nghiên cứu về việc làm thế nào để chuyển đổi từ mô hình ER sang mô hình TimeER. Tiếp tục nghiên cứu chuyển đổi từ mô hình TimeER về R. 6. Đóng góp của đề tài Đề tài giúp chúng ta hiểu rõ hơn về ý nghĩa CSDL thời gian và việc thiết kế chúng. 7. Cấu trúc của đề tài Phần nội dung của đề tài này gồm 4 chương như sau: Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU THỜI GIAN Chương 2: HỆ THỐNG QUẢN LÝ HỒ SƠ BỆNH ÁN Chương 3: PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU CHO HỆ THỐNG QUẢN LÝ HỒ SƠ BỆNH ÁN Chương 4: CHƯƠNG TRÌNH THỬ NGHIỆM 3 PHẦN 2. NỘI DUNG Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU THỜI GIAN 1.1. Giới thiệu về cơ sở dữ liệu thời gian thực Khi thiết kế cơ sở dữ liệu, nhiều khi chúng ta gặp phải các đối tượng mà một số thông tin thường xuyên thay đổi theo thời gian. Ví dụ 1.1: Khi mô tả thông tin về nhân viên, ngoài các trường ít (hoặc không) thay đổi như: Mã nhân viên, họ tên, số CMND,… thì cũng có một số trường có thể thay đổi như: Hệ số lương, chức vụ, phòng ban,… Hay một số ví dụ khác như giá ngoại tệ, giá bán sản phẩm. Do đó, để đảm bảo lưu trữ đc đầy đủ thông tin của những thay đổi này. Nó buộc chúng ta phải đi theo hướng nghiên cứu đó là “Cơ sở dữ liệu theo thời gian”. Một hệ thống cần phải có khả năng xử lý các truy vấn thời gian gần như tức thời, trả về tạm thời những dữ liệu hợp lệ, và hỗ trợ cho việc lập kế hoạch ưu tiên. Việc ứng dụng cơ sở dữ liệu thời gian là một xu hướng tất yếu trong tương lai khi các yêu cầu nghiệp vụ đòi hỏi sự hỗ trợ ngay lập tức từ việc xử lý thông tin, cũng như hỗ trợ ra quyết định. Ví dụ 1.2: Hệ thống quản lý giá vàng trong và ngoài nước, nhà quản lý muốn xem sự chênh lệch giá vàng các ngày trong tuần qua, cụ thể về giá và thời gian. Như vậy có nghĩa là hệ thống này phải lưu trữ được các thông số thay đổi trong từng ngày của giá vàng và đưa ra được dữ liệu gọi là tạm thời đúng với yêu cầu tại thời điểm đó. 1.2. Các khái niệm cơ bản về CSDL thời gian thực 1.2.1. Hệ thời gian thực Trước hết chúng ta phải hiểu được Hệ thời gian thực là gì? Hệ thời gian thực là một trong những điểm đúng đắn của hệ thống không chỉ phụ thuộc vào 4 những kết quả logic mà còn phụ thuộc vào thời gian trên quá trình đưa ra những kết quả đó. Ví dụ 1.3: Như ví dụ 1.2, cũng cùng một yêu cầu trên nhưng hôm nay hệ thống đưa ra một kết quả, hôm sau hoặc thời gian sau đó, kết quả mà hệ thống đưa ra có thể khác đi. 1.2.2. CSDL thời gian thực Một cơ sở dữ liệu thời gian thực là một hệ thống cơ sở dữ liệu trong đó sử dụng thời gian thực để xử lý khối lượng công việc cho các bài toán đang có thay đổi liên tục về dữ liệu. Ví dụ 1.4: Các hệ thống bán hàng có các sản phẩm có giá trị thay đổi liên tục như vàng, dầu mỏ, điện thoại, xe máy... hoặc các loại dữ liệu khác. Ví như xe máy, tại thời điểm hiện tại nhận một giá trị, cũng thời điểm đó, nhưng của ngày hôm sau nó lại nhận một giá trị khác. Hệ thống phải xử lý như thế nào đó để tránh người dùng nhầm lẫn về thời gian và việc biến đổi giá cả. Cơ sở dữ liệu (CSDL) thời gian phản ánh đầy đủ, chi tiết hơn thông tin ở hiện tại và quá khứ. Yếu tố thời gian làm cho cơ sở dữ liệu (CSDL) đầy đủ về mặt “lịch sử” dữ liệu hơn, nhưng đồng thời cũng làm cho nó phức tạp hơn. Ví dụ 1.5: Bệnh nhân nhập viện sẽ được đo huyết áp hàng ngày (một hoặc nhiều lần). Hệ CSDL thời gian có khả năng lưu trữ lại tất cả quá trình đo đạt cụ thể về thời gian đo, số lần và đơn vị huyết áp… cho đến khi bệnh nhân ra viện. Sau này có khả năng bệnh nhân nhập viện lần nữa, lịch sử bệnh án của bệnh nhân vẫn được tìm thấy và có thể được tiếp tục lưu trữ thêm. 1.3 Mô hình thực thể mối quan hệ thời gian (TimeER) 1 2 Để giải quyết vấn đề thiết kế các CSDL thời gian từ mức khái niệm, đã có nhiều đề xuất về các mô hình ER thời gian, như các mô hình sau: TERM, RAKE, MOTAR, TEER, STEER, ERT, TER, TempEER, TempRT, TERC+ , TimeER… tuy nhiên, trong khoá luận lần này, em chỉ tập trung nghiên cứu về mô hình TimeER. 5 Mô hình TimeER là phát triển dựa vào mô hình EER (Mô hình thực thể mối liên kết mở rộng). Mô hình này cho phép hỗ trợ các loại thời gian sau: Thời gian sống (LifeSpan) của một thực thể (ký hiệu là LS) Thời gian hợp lệ (Valid Time) của một sự kiện (ký hiệu là VT) Thời gian giao tác (Transaction Time) của một thực thể hoặc một sự kiện (ký hiệu là TT) Đối với các thực thể, hệ thống chỉ có thể hỗ trợ thời gian sống (LifeSpan, ký hiệu là LS), hoặc thời gian giao tác (Transaction Time, ký hiệu là TT), hoặc cả hai loại thời gian này tức LS+TT=LT (LifeTime, ký hiệu là LT). Đối với các thuộc tính, hệ thống chỉ cho phép hỗ trợ thời gian hợp lệ (Valid Time, ký hiệu là VT), hoặc thời gian giao tác (TT) hoặc cả hai loại thời gian này tức VT+TT= BT (BiTemporal, ký hiệu là BT). Ngoài ra, do một mối quan hệ có thể xem là một tập thực thể hoặc một thuộc tính, nhờ vậy mà người thiết kế có thể xác định các yếu tố thời gian hỗ trợ cho mối quan hệ đó nếu cần. Dưới đây là mô hình TimeER (Hình 2) được xây dựng trên mô hình ER (Hình 1) và mô hình ER (Hình 3) biểu diễn rõ hơn cho mô hình TimeER: 6 Hình 1. Ví dụ về mô hình ER Hình 2. Ví dụ về mô hình TimeER 7 Hình 3. Mô hình ER mô tả rõ hơn cho mô hình TimeER 1.4. So sánh mô hình ER và mô hình TimeER - Giống nhau: Mô hình ER và mô hình Time ER đều là mô hình mối quan hệ thực thể ở mức khái niệm. Về mặt cấu trúc, hai mô hình này tương tự như nhau. TimeER được coi như ER mở rộng. - Khác nhau: Thực thể: Bên phía Time ER sẽ có phát sinh thêm thực thể mới liên kết với thực thể cần hỗ trợ về mặt thời gian thực. Ví dụ 1.6: Hình 3, thực thể NHÂN VIÊN phát sinh thêm quan hệ với LifeTime Thuộc tính: Cũng tương tự như thực thể, thuộc tính bên phía TimeER cũng sẽ phát sinh thêm thực thể hỗ trợ trên mối quan hệ của thuộc tính đó với thực thể chính. Ví dụ 1.7: Trên hình 3, thuộc tính lương của thực thể NHÂN VIÊN cũng phát sinh BiTemporal hỗ trợ cho quan hệ của lương với thực thể NHÂN VIÊN. Mối quan hệ: Mối quan hệ trong TimeER cũng có thể phát sinh thực thể mới hỗ trợ nếu quan hệ đó được cho là cần thiết hỗ trợ thời gian thực. 8 Ví dụ 1.8: Hình 3, mối quan hệ làm việc giữa NHÂN VIÊN với DỰ ÁN phát sinh ValidTime hỗ trợ cho quan hệ làm việc. Thiết kế: Bên phía TimeER đòi hỏi độ phức tạp hơn so với ER. TimeER đòi hỏi người thiết kế phải xác định được thực thể nào, thuộc tính nào hay mối quan hệ nào cần thiết phải hỗ trợ thời gian thực. Còn trong mô hình ER không có những phát sinh như vậy. 1.5. Cách xây dựng mô hình CSDL thời gian ở mức khái niệm 2 Muốn có được mô hình CSDL thời gian ở mức khái niệm (TimeER), từ mô hình ER truyền thống, chúng ta thực hiện qua các bước như sau: Bước 1: Xác định đối tượng hỗ trợ thời gian, bao gồm: Thực thể, hay thuộc tính, hay mối quan hệ. Ví dụ 1.9: Ở hình 2, các thực thể, thuộc tính hay mối quan hệ được hỗ trợ thời gian như: thực thể (NHÂN VIÊN, BỘ PHẬN), thuộc tính (Lương, Địa chỉ, lợi nhuận, ngân sách), mối quan hệ “làm việc” giữa NHÂN VIÊN với DỰ ÁN. Bước 2: Xác định loại thời gian cần hỗ trợ cho các đối tượng, lưu ý các loại thời gian phù hợp với từng đối tượng: LifeSpan, TranTime, ValidTime, LifeTran, BiTemporal. Ví dụ 1.10: Hình 2 hỗ trợ các loại thời gian cho từng đối tượng như sau: ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG LOẠI THỜI GIAN HỖ TRỢ 1.NHÂN VIÊN Thực thể LifeTran 2.BỘ PHẬN Thực thể TranTime 3. Lương Thuộc tính BiTemporal 4. Địa chỉ Thuộc tính ValidTime 5. Lợi nhuận Thuộc tính BiTemporal 6. Ngân sách Thuộc tính BiTemporal 9 7. Làm việc Mối quan hệ ValidTime Bảng 1. Đối tượng và loại thời gian hỗ trợ Bước 3: Sử dụng thực thể thời gian tương ứng (hình 2) và mối quan hệ nhị nguyên S (1-n) để xây dựng mô hình ER biểu diễn dữ liệu thời gian. Ví dụ 1.11: từ mô hình ER truyền thống như Hình 1 ta xây dựng được mô hình TimeER như Hình 2. 1.6. Cách chuyển đổi từ mô hình TimeER sang mô hình R 1 Chúng ta sẽ tìm hiểu cách chuyển đổi mô hình TimeER sang mô hình R: Bước 1: Chuyển đổi các tập thực thể không tham gia vào mối quan hệ lớp chalớp con Với mỗi tập thực thể E không tham gia vào mối quan hệ lớp chalớp con và có các thuộc tính đơn trị phi thời gian là A1, A2, …, An, ta xét hai trường hợp sau: a) Chuyển đổi tập thực thể mạnh 1 : Nếu E là tập thực thể mạnh có khóa ký hiệu là ID(E) , thì ta tạo một quan hệ được gọi là quan hệ chính biểu diễn với tập thực thể E, ký hiệu là R(E), có tập thuộc tính là ID(E) {A1, A2, …, An} . Khóa chính của quan hệ R(E) là ID(E). b) Chuyển đổi tập thực thể yếu 2 : Xét E là tập thực thể yếu của mối quan hệ định danh S có tập thực thể chủ là E’. Giả sử E có khóa bộ phận là X {A1, A2, …, An}. Khi đó, ta tạo ra một quan hệ chính R(E) có tập thuộc tính là FK {A1, A2, …, An}, với FK là khóa ngoài tham chiếu đến quan hệ R(E’) . Khi đó, khóa chính của R(E) là FK X. Hình 4. Nhãn thời gian hỗ trợ cho thực thể và mối quan hệ 1 Thực thể có thuộc tính khoá cho chính mình 2 Thực thể không có thuộc tính khoá cho chính mình. Không thể xác định khi k có thực thể chủ. 10 Gọi T’ T là các thuộc tính có gạch dưới trong bảng trên, khi đó khóa chính của quan hệ TR(E) là FK T’. Hình 5. Chuyển đổi thực thể không tham gia vào lớp chacon Bước 2: Chuyển đổi các tập thực thể tham gia vào mối quan hệ lớp chalớp con Với mỗi mối quan hệ lớp chalớp con, trong đó lớp cha E có các lớp con là S 1 , S 2, …, S n, ta tạo ra quan hệ chính R(E) tương ứng với tập thực thể E để biểu diễn lớp cha E. Ngoài ra, giả sử mỗi lớp con S i có tập thuộc tính đơn trị phi thời gian riêng là X i , thì ta tạo thêm n quan hệ được gọi là các quan hệ con, ký hiệu là SR(S i), có tập thuộc tính là FK Xi (với i = 1..n) và khóa chính là FK, ở đây FK là khóa ngoài tham chiếu đến quan hệ R(E). Nếu E hoặc S 1, S 2 , …, S n có hỗ trợ yếu tố thời gian thì bổ sung thêm các quan hệ thời gian tương ứng với các tập thực thể này như bước 1. Bước 3: Chuyển đổi các thuộc tính đơn trị có yếu tố thời gian của một tập thực thể. Với mỗi thuộc tính A của E là thuộc tính đơn trị có yếu tố thời gian, nếu các yếu tố thời gian hỗ trợ cho thuộc tính A được ký hiệu bởi dấu , thì ta tạo thêm một quan hệ được gọi là quan hệ thời gian biểu diễn thuộc tính A của E, ký hiệu là TR A(E), có tập thuộc tính là FK A T, với FK là khóa ngoài tham chiếu đến quan hệ R(E), và T là tập các thuộc tính nhãn thời gian tương ứng với ký hiệu của thuộc tính A cho ở bảng sau: 11 Hình 6. Nhãn thời gian hỗ trợ cho các thuộc tính và mối quan hệ Gọi T’ T là các thuộc tính có gạch dưới trong bảng trên, khi đó khóa chính của quan hệ TR A(E) là FK T’. Bước 4: Chuyển đổi các thuộc tính đa trị Với mỗi thuộc tính A là thuộc tính đa trị của một tập thực thể E thuộc dạng chuẩn PNF (Partitioned Normal Form), hoặc xét tương tự, A là thuộc tính đa trị của một thuộc tính phức hợp B, ta gọi R’ là quan hệ biểu diễn tập thực thể E (hoặc thuộc tính phức hợp B ). Khi đó, việc chuyển đổi thuộc tính đa trị A thành quan hệ tương ứng được xét một cách đệ quy theo các trường hợp sau: a) A là thuộc tính đơn: Ta xét hai khả năng sau: Nếu A là thuộc tính phi thời gian, thì ta tạo một quan hệ mới nhằm biểu diễn thuộc tính A, ký hiệu là R A(E) (hoặc R A(B)), gồm các thuộc tính FK A , với FK là khóa ngoài tham chiếu đến quan hệ R’, và A’ là thuộc tính dùng để lưu các giá trị của thuộc tính đa trị A, gọi tắt là thuộc tính tương ứng với A . Khi đó, khóa chính của R A(E) (hoặc R A(B)) là FK A’ . Nếu A có hỗ trợ yếu tố thời gian, thì ta tạo một quan hệ thời gian nhằm biểu diễn thuộc tính A, ký hiệu là TR A(E) (hoặc TR A(B)), gồm các thuộc tính FK A’ T’ và có khóa chính là FK A’ T, với FK là khóa ngoài tham chiếu đến quan hệ R’, A’ là thuộc tính tương ứng với thuộc tính đa trị A . Ngoài ra, T và T’ được xác định tương tự như bước 3. b) A là thuộc tính phức hợp: Nếu A là thuộc tính phức hợp có tập thuộc tính đơn trị phi thời gian là X và khóa bộ phận là K, ta tạo một quan hệ mới nhằm biểu diễn thuộc tính A , ký hiệu là R A(E) (hoặc R A(B)), gồm các thuộc tính FK X và có khoá chính là FK K, với FK là khóa ngoài tham chiếu đến quan hệ s. 12 Nếu thuộc tính A có hỗ trợ yếu tố thời gian, thì ta bổ sung thêm quan hệ thời gian TRA (E) (hoặc TR A(B)) có tập thuộc tính là FK’ T và có khóa chính là FK’ T’, với FK’ là khóa ngoài tham chiếu đến quan hệ RA (E) (hoặc RA (B)). Ngoài ra, T và T’ được xác định tương tự như bước 3. Trong trường hợp thuộc tính phức hợp A có chứa các thuộc tính đơn trị thời gian, thì với mỗi thuộc tính đơn trị thời gian C, ta bổ sung thêm một quan hệ thời gian TRC(A) biểu diễn thuộc tính C có tập thuộc tính là FK” C T và khóa chính là FK” T’, với FK” là khoá ngoài tham chiếu đến quan hệ RA (E) (hoặc RA (B)). Ngoài ra, T và T’ được xác định tương tự như bước 3. Bước 5: Chuyển đổi các mối quan hệ phi thời gian Việc chuyển đổi các mối quan hệ phi thời gian (nhị nguyên, phản xạ, đa nguyên) giữa các tập thực thể được thực hiện như phương pháp chuyển đổi truyền thống. Bước 6: Chuyển đổi các mối quan hệ nhị nguyên thời gian không có thuộc tính Xét mối quan hệ S là mối quan hệ nhị nguyên thời gian không có thuộc tính giữa hai tập thực thể E1 và E2. Khi đó, ta tạo ra một quan hệ thời gian để biểu diễn mối quan hệ nhị nguyên thời gian S, ký hiệu là TR(S), có tập thuộc tính là FK 1 FK2 T, với FK 1 và FK2 lần lượt là các khoá ngoài tham chiếu đến quan hệ R(E1) và R(E2 ). Ngoài ra, tùy thuộc vào loại thời gian hỗ trợ cho mối quan hệ S mà T được xác định như trong bảng 1 hoặc bảng 2. Khóa chính của TR(S) là ID(S) T’, với T’ T cũng được xác định như trong bảng 1 hoặc bảng 2. Ngoài ra, tùy thuộc vào các bản số (min, max) của mối quan hệ S mà ID(S) được xác định như sau: - Nếu S là mối quan hệ 1 - 1 thì ID(S) = FK1 hoặc ID(S) = FK 2 - Nếu S là mối quan hệ 1 - nhiều thì ID(S) = FK 2 - Nếu S là mối quan hệ nhiều - 1 thì ID(S) = FK 1 - Nếu S là mối quan hệ nhiều - nhiều thì ID(S) = FK1 FK2 . Bước 7: Chuyển đổi các mối quan hệ nhị nguyên thời gian có thuộc tính 13 Xét mối quan hệ S là mối quan hệ nhị nguyên thời gian giữa hai tập thực thể E1 và E 2 , và có tập thuộc tính đơn trị phi thời gian X. Khi đó, ta cần tạo ra hai quan hệ sau: - Một quan hệ để biểu diễn mối quan hệ nhị nguyên S, ký hiệu là R(S), có tập thuộc tính là FK1 FK2 X, với FK 1 và FK 2 lần lượt là các khóa ngoài tham chiếu đến quan hệ R(E1 ) và R(E 2 ). Khóa chính của R(S) là ID(S) cũng được xác định tương tự như bước 6. -...
NỘI DUNG
1.1 Giới thiệu về cơ sở dữ liệu thời gian thực
Khi thiết kế cơ sở dữ liệu, nhiều khi chúng ta gặp phải các đối tượng mà một số thông tin thường xuyên thay đổi theo thời gian
Ví dụ 1.1: Khi mô tả thông tin về nhân viên, ngoài các trường ít (hoặc không) thay đổi như: Mã nhân viên, họ tên, số CMND,… thì cũng có một số trường có thể thay đổi như: Hệ số lương, chức vụ, phòng ban,… Hay một số ví dụ khác như giá ngoại tệ, giá bán sản phẩm
Do đó, để đảm bảo lưu trữ đc đầy đủ thông tin của những thay đổi này Nó buộc chúng ta phải đi theo hướng nghiên cứu đó là “Cơ sở dữ liệu theo thời gian”
Một hệ thống cần phải có khả năng xử lý các truy vấn thời gian gần như tức thời, trả về tạm thời những dữ liệu hợp lệ, và hỗ trợ cho việc lập kế hoạch ưu tiên Việc ứng dụng cơ sở dữ liệu thời gian là một xu hướng tất yếu trong tương lai khi các yêu cầu nghiệp vụ đòi hỏi sự hỗ trợ ngay lập tức từ việc xử lý thông tin, cũng như hỗ trợ ra quyết định
Ví dụ 1.2: Hệ thống quản lý giá vàng trong và ngoài nước, nhà quản lý muốn xem sự chênh lệch giá vàng các ngày trong tuần qua, cụ thể về giá và thời gian Như vậy có nghĩa là hệ thống này phải lưu trữ được các thông số thay đổi trong từng ngày của giá vàng và đưa ra được dữ liệu gọi là tạm thời đúng với yêu cầu tại thời điểm đó
1.2 Các khái niệm cơ bản về CSDL thời gian thực
Trước hết chúng ta phải hiểu được Hệ thời gian thực là gì? Hệ thời gian thực là một trong những điểm đúng đắn của hệ thống không chỉ phụ thuộc vào
TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU THỜI GIAN
Giới thiệu về cơ sở dữ liệu thời gian thực
Khi thiết kế cơ sở dữ liệu, nhiều khi chúng ta gặp phải các đối tượng mà một số thông tin thường xuyên thay đổi theo thời gian
Ví dụ 1.1: Khi mô tả thông tin về nhân viên, ngoài các trường ít (hoặc không) thay đổi như: Mã nhân viên, họ tên, số CMND,… thì cũng có một số trường có thể thay đổi như: Hệ số lương, chức vụ, phòng ban,… Hay một số ví dụ khác như giá ngoại tệ, giá bán sản phẩm
Do đó, để đảm bảo lưu trữ đc đầy đủ thông tin của những thay đổi này Nó buộc chúng ta phải đi theo hướng nghiên cứu đó là “Cơ sở dữ liệu theo thời gian”
Một hệ thống cần phải có khả năng xử lý các truy vấn thời gian gần như tức thời, trả về tạm thời những dữ liệu hợp lệ, và hỗ trợ cho việc lập kế hoạch ưu tiên Việc ứng dụng cơ sở dữ liệu thời gian là một xu hướng tất yếu trong tương lai khi các yêu cầu nghiệp vụ đòi hỏi sự hỗ trợ ngay lập tức từ việc xử lý thông tin, cũng như hỗ trợ ra quyết định
Ví dụ 1.2: Hệ thống quản lý giá vàng trong và ngoài nước, nhà quản lý muốn xem sự chênh lệch giá vàng các ngày trong tuần qua, cụ thể về giá và thời gian Như vậy có nghĩa là hệ thống này phải lưu trữ được các thông số thay đổi trong từng ngày của giá vàng và đưa ra được dữ liệu gọi là tạm thời đúng với yêu cầu tại thời điểm đó.
Các khái niệm cơ bản về CSDL thời gian thực
Trước hết chúng ta phải hiểu được Hệ thời gian thực là gì? Hệ thời gian thực là một trong những điểm đúng đắn của hệ thống không chỉ phụ thuộc vào
4 những kết quả logic mà còn phụ thuộc vào thời gian trên quá trình đưa ra những kết quả đó
Ví dụ 1.3: Như ví dụ 1.2, cũng cùng một yêu cầu trên nhưng hôm nay hệ thống đưa ra một kết quả, hôm sau hoặc thời gian sau đó, kết quả mà hệ thống đưa ra có thể khác đi
Một cơ sở dữ liệu thời gian thực là một hệ thống cơ sở dữ liệu trong đó sử dụng thời gian thực để xử lý khối lượng công việc cho các bài toán đang có thay đổi liên tục về dữ liệu
Ví dụ 1.4: Các hệ thống bán hàng có các sản phẩm có giá trị thay đổi liên tục như vàng, dầu mỏ, điện thoại, xe máy hoặc các loại dữ liệu khác Ví như xe máy, tại thời điểm hiện tại nhận một giá trị, cũng thời điểm đó, nhưng của ngày hôm sau nó lại nhận một giá trị khác Hệ thống phải xử lý như thế nào đó để tránh người dùng nhầm lẫn về thời gian và việc biến đổi giá cả
Cơ sở dữ liệu (CSDL) thời gian phản ánh đầy đủ, chi tiết hơn thông tin ở hiện tại và quá khứ Yếu tố thời gian làm cho cơ sở dữ liệu (CSDL) đầy đủ về mặt “lịch sử” dữ liệu hơn, nhưng đồng thời cũng làm cho nó phức tạp hơn
Ví dụ 1.5: Bệnh nhân nhập viện sẽ được đo huyết áp hàng ngày (một hoặc nhiều lần) Hệ CSDL thời gian có khả năng lưu trữ lại tất cả quá trình đo đạt cụ thể về thời gian đo, số lần và đơn vị huyết áp… cho đến khi bệnh nhân ra viện Sau này có khả năng bệnh nhân nhập viện lần nữa, lịch sử bệnh án của bệnh nhân vẫn được tìm thấy và có thể được tiếp tục lưu trữ thêm.
Mô hình thực thể mối quan hệ thời gian (TimeER)
Để giải quyết vấn đề thiết kế các CSDL thời gian từ mức khái niệm, đã có nhiều đề xuất về các mô hình ER thời gian, như các mô hình sau: TERM, RAKE, MOTAR, TEER, STEER, ERT, TER, TempEER, TempRT, TERC+ , TimeER… tuy nhiên, trong khoá luận lần này, em chỉ tập trung nghiên cứu về mô hình TimeER
Mô hình TimeER là phát triển dựa vào mô hình EER (Mô hình thực thể mối liên kết mở rộng)
Mô hình này cho phép hỗ trợ các loại thời gian sau:
Thời gian sống (LifeSpan) của một thực thể (ký hiệu là LS)
Thời gian hợp lệ (Valid Time) của một sự kiện (ký hiệu là VT)
Thời gian giao tác (Transaction Time) của một thực thể hoặc một sự kiện (ký hiệu là TT) Đối với các thực thể, hệ thống chỉ có thể hỗ trợ thời gian sống (LifeSpan, ký hiệu là LS), hoặc thời gian giao tác (Transaction Time, ký hiệu là TT), hoặc cả hai loại thời gian này tức LS+TT=LT (LifeTime, ký hiệu là LT) Đối với các thuộc tính, hệ thống chỉ cho phép hỗ trợ thời gian hợp lệ (Valid Time, ký hiệu là VT), hoặc thời gian giao tác (TT) hoặc cả hai loại thời gian này tức VT+TT= BT (BiTemporal, ký hiệu là BT)
Ngoài ra, do một mối quan hệ có thể xem là một tập thực thể hoặc một thuộc tính, nhờ vậy mà người thiết kế có thể xác định các yếu tố thời gian hỗ trợ cho mối quan hệ đó nếu cần
Dưới đây là mô hình TimeER (Hình 2) được xây dựng trên mô hình ER (Hình 1) và mô hình ER* (Hình 3) biểu diễn rõ hơn cho mô hình TimeER:
6 Hình 1 Ví dụ về mô hình ER
Hình 2 Ví dụ về mô hình TimeER
Hình 3 Mô hình ER* mô tả rõ hơn cho mô hình TimeER
So sánh mô hình ER và mô hình TimeER
- Giống nhau: Mô hình ER và mô hình Time ER đều là mô hình mối quan hệ thực thể ở mức khái niệm Về mặt cấu trúc, hai mô hình này tương tự như nhau
TimeER được coi như ER mở rộng
Thực thể: Bên phía Time ER sẽ có phát sinh thêm thực thể mới liên kết với thực thể cần hỗ trợ về mặt thời gian thực
Ví dụ 1.6: Hình 3, thực thể NHÂN VIÊN phát sinh thêm quan hệ với LifeTime
Thuộc tính: Cũng tương tự như thực thể, thuộc tính bên phía TimeER cũng sẽ phát sinh thêm thực thể hỗ trợ trên mối quan hệ của thuộc tính đó với thực thể chính
Ví dụ 1.7: Trên hình 3, thuộc tính lương của thực thể NHÂN VIÊN cũng phát sinh BiTemporal hỗ trợ cho quan hệ của lương với thực thể NHÂN
Mối quan hệ: Mối quan hệ trong TimeER cũng có thể phát sinh thực thể mới hỗ trợ nếu quan hệ đó được cho là cần thiết hỗ trợ thời gian thực
Ví dụ 1.8: Hình 3, mối quan hệ làm việc giữa NHÂN VIÊN với DỰ ÁN phát sinh ValidTime hỗ trợ cho quan hệ làm việc
Thiết kế: Bên phía TimeER đòi hỏi độ phức tạp hơn so với ER TimeER đòi hỏi người thiết kế phải xác định được thực thể nào, thuộc tính nào hay mối quan hệ nào cần thiết phải hỗ trợ thời gian thực
Còn trong mô hình ER không có những phát sinh như vậy.
Cách xây dựng mô hình CSDL thời gian ở mức khái niệm (TimeER)
Muốn có được mô hình CSDL thời gian ở mức khái niệm (TimeER), từ mô hình ER truyền thống, chúng ta thực hiện qua các bước như sau:
Bước 1: Xác định đối tượng hỗ trợ thời gian, bao gồm: Thực thể, hay thuộc tính, hay mối quan hệ
Ví dụ 1.9: Ở hình 2, các thực thể, thuộc tính hay mối quan hệ được hỗ trợ thời gian như: thực thể (NHÂN VIÊN, BỘ PHẬN), thuộc tính (Lương, Địa chỉ, lợi nhuận, ngân sách), mối quan hệ “làm việc” giữa NHÂN VIÊN với
Bước 2: Xác định loại thời gian cần hỗ trợ cho các đối tượng, lưu ý các loại thời gian phù hợp với từng đối tượng: LifeSpan, TranTime, ValidTime, LifeTran, BiTemporal
Ví dụ 1.10: Hình 2 hỗ trợ các loại thời gian cho từng đối tượng như sau: ĐỐI TƯỢNG LOẠI ĐỐI TƯỢNG LOẠI THỜI GIAN HỖ
1.NHÂN VIÊN Thực thể LifeTran
2.BỘ PHẬN Thực thể TranTime
4 Địa chỉ Thuộc tính ValidTime
5 Lợi nhuận Thuộc tính BiTemporal
6 Ngân sách Thuộc tính BiTemporal
7 Làm việc Mối quan hệ ValidTime
Bảng 1 Đối tượng và loại thời gian hỗ trợ Bước 3: Sử dụng thực thể thời gian tương ứng (hình 2) và mối quan hệ nhị nguyên S (1-n) để xây dựng mô hình ER* biểu diễn dữ liệu thời gian
Ví dụ 1.11: từ mô hình ER truyền thống như Hình 1 ta xây dựng được mô hình TimeER như Hình 2.
Cách chuyển đổi từ mô hình TimeER sang mô hình R
Chúng ta sẽ tìm hiểu cách chuyển đổi mô hình TimeER sang mô hình R:
Bước 1: Chuyển đổi các tập thực thể không tham gia vào mối quan hệ lớp cha/lớp con
Với mỗi tập thực thể E không tham gia vào mối quan hệ lớp cha/lớp con và có các thuộc tính đơn trị phi thời gian là A1, A2, …, An, ta xét hai trường hợp sau: a) Chuyển đổi tập thực thể mạnh 1 : Nếu E là tập thực thể mạnh có khóa ký hiệu là ID(E), thì ta tạo một quan hệ được gọi là quan hệ chính biểu diễn với tập thực thể E, ký hiệu là R(E), có tập thuộc tính là ID(E) {A1, A2, …, An}
Khóa chính của quan hệ R(E) là ID(E) b) Chuyển đổi tập thực thể yếu 2 : Xét E là tập thực thể yếu của mối quan hệ định danh S có tập thực thể chủ là E’ Giả sử E có khóa bộ phận là X{A1, A2, …, An} Khi đó, ta tạo ra một quan hệ chính R(E) có tập thuộc tính là FK
{A1, A2, …, An}, với FK là khóa ngoài tham chiếu đến quan hệ R(E’) Khi đó, khóa chính của R(E) là FK X
Hình 4 Nhãn thời gian hỗ trợ cho thực thể và mối quan hệ
1 Thực thể có thuộc tính khoá cho chính mình
2 Thực thể không có thuộc tính khoá cho chính mình Không thể xác định khi k có thực thể chủ
Gọi T’ T là các thuộc tính có gạch dưới trong bảng trên, khi đó khóa chính của quan hệ TR(E) là FK T’
Hình 5 Chuyển đổi thực thể không tham gia vào lớp cha/con
Bước 2: Chuyển đổi các tập thực thể tham gia vào mối quan hệ lớp cha/lớp con
Với mỗi mối quan hệ lớp cha/lớp con, trong đó lớp cha E có các lớp con là
S 1 , S 2 , …, S n , ta tạo ra quan hệ chính R(E) tương ứng với tập thực thể E để biểu diễn lớp cha E Ngoài ra, giả sử mỗi lớp con S i có tập thuộc tính đơn trị phi thời gian riêng là X i , thì ta tạo thêm n quan hệ được gọi là các quan hệ con, ký hiệu là SR(S i ), có tập thuộc tính là FK X i (với i = 1 n) và khóa chính là FK, ở đây FK là khóa ngoài tham chiếu đến quan hệ R(E)
Nếu E hoặc S 1 , S 2 , …, S n có hỗ trợ yếu tố thời gian thì bổ sung thêm các quan hệ thời gian tương ứng với các tập thực thể này như bước 1
Bước 3: Chuyển đổi các thuộc tính đơn trị có yếu tố thời gian của một tập thực thể Với mỗi thuộc tính A của E là thuộc tính đơn trị có yếu tố thời gian, nếu các yếu tố thời gian hỗ trợ cho thuộc tính A được ký hiệu bởi dấu *, thì ta tạo thêm một quan hệ được gọi là quan hệ thời gian biểu diễn thuộc tính A của E, ký hiệu là TR A (E), có tập thuộc tính là FK A T, với FK là khóa ngoài tham chiếu đến quan hệ R(E), và T là tập các thuộc tính nhãn thời gian tương ứng với ký hiệu * của thuộc tính A cho ở bảng sau:
Hình 6 Nhãn thời gian hỗ trợ cho các thuộc tính và mối quan hệ
Gọi T’ T là các thuộc tính có gạch dưới trong bảng trên, khi đó khóa chính của quan hệ TR A (E) là FK T’
Bước 4: Chuyển đổi các thuộc tính đa trị Với mỗi thuộc tính A là thuộc tính đa trị của một tập thực thể E thuộc dạng chuẩn PNF (Partitioned Normal Form), hoặc xét tương tự, A là thuộc tính đa trị của một thuộc tính phức hợp
B, ta gọi R’ là quan hệ biểu diễn tập thực thể E (hoặc thuộc tính phức hợp B)
Khi đó, việc chuyển đổi thuộc tính đa trị A thành quan hệ tương ứng được xét một cách đệ quy theo các trường hợp sau: a) A là thuộc tính đơn:
Ta xét hai khả năng sau:
Nếu A là thuộc tính phi thời gian, thì ta tạo một quan hệ mới nhằm biểu diễn thuộc tính A, ký hiệu là R A (E) (hoặc R A (B)), gồm các thuộc tính FK A, với FK là khóa ngoài tham chiếu đến quan hệ R’, và A’ là thuộc tính dùng để lưu các giá trị của thuộc tính đa trị A, gọi tắt là thuộc tính tương ứng với A
Khi đó, khóa chính của R A (E) (hoặc R A (B)) là FK A’
Nếu A có hỗ trợ yếu tố thời gian, thì ta tạo một quan hệ thời gian nhằm biểu diễn thuộc tính A, ký hiệu là TR A (E) (hoặc TR A (B)), gồm các thuộc tính
FK A’ T’ và có khóa chính là FK A’ T, với FK là khóa ngoài tham chiếu đến quan hệ R’, A’ là thuộc tính tương ứng với thuộc tính đa trị A
Ngoài ra, T và T’ được xác định tương tự như bước 3 b) A là thuộc tính phức hợp:
Nếu A là thuộc tính phức hợp có tập thuộc tính đơn trị phi thời gian là X và khóa bộ phận là K, ta tạo một quan hệ mới nhằm biểu diễn thuộc tính A, ký hiệu là R A (E) (hoặc R A (B)), gồm các thuộc tính FK X và có khoá chính là
FK K, với FK là khóa ngoài tham chiếu đến quan hệ s
Nếu thuộc tính A có hỗ trợ yếu tố thời gian, thì ta bổ sung thêm quan hệ thời gian TRA(E) (hoặc TRA(B)) có tập thuộc tính là FK’ T và có khóa chính là FK’ T’, với FK’ là khóa ngoài tham chiếu đến quan hệ RA(E) (hoặc RA(B)) Ngoài ra, T và T’ được xác định tương tự như bước 3
Trong trường hợp thuộc tính phức hợp A có chứa các thuộc tính đơn trị thời gian, thì với mỗi thuộc tính đơn trị thời gian C, ta bổ sung thêm một quan hệ thời gian TRC(A) biểu diễn thuộc tính C có tập thuộc tính là FK” C T và khóa chính là FK” T’, với FK” là khoá ngoài tham chiếu đến quan hệ
RA(E) (hoặc RA(B)) Ngoài ra, T và T’ được xác định tương tự như bước 3
Bước 5: Chuyển đổi các mối quan hệ phi thời gian
Việc chuyển đổi các mối quan hệ phi thời gian (nhị nguyên, phản xạ, đa nguyên) giữa các tập thực thể được thực hiện như phương pháp chuyển đổi truyền thống
Bước 6: Chuyển đổi các mối quan hệ nhị nguyên thời gian không có thuộc tính
Xét mối quan hệ S là mối quan hệ nhị nguyên thời gian không có thuộc tính giữa hai tập thực thể E1 và E2 Khi đó, ta tạo ra một quan hệ thời gian để biểu diễn mối quan hệ nhị nguyên thời gian S, ký hiệu là TR(S), có tập thuộc tính là FK1 FK2 T, với FK1 và FK2 lần lượt là các khoá ngoài tham chiếu đến quan hệ R(E1) và R(E2) Ngoài ra, tùy thuộc vào loại thời gian hỗ trợ cho mối quan hệ S mà T được xác định như trong bảng 1 hoặc bảng 2 Khóa chính của TR(S) là ID(S) T’, với T’ T cũng được xác định như trong bảng 1 hoặc bảng 2 Ngoài ra, tùy thuộc vào các bản số (min, max) của mối quan hệ
S mà ID(S) được xác định như sau:
- Nếu S là mối quan hệ 1 - 1 thì ID(S) = FK1 hoặc ID(S) = FK2
- Nếu S là mối quan hệ 1 - nhiều thì ID(S) = FK2
- Nếu S là mối quan hệ nhiều - 1 thì ID(S) = FK1
- Nếu S là mối quan hệ nhiều - nhiều thì ID(S) = FK1 FK2
Bước 7: Chuyển đổi các mối quan hệ nhị nguyên thời gian có thuộc tính
Xét mối quan hệ S là mối quan hệ nhị nguyên thời gian giữa hai tập thực thể E1 và E2, và có tập thuộc tính đơn trị phi thời gian X Khi đó, ta cần tạo ra hai quan hệ sau:
- Một quan hệ để biểu diễn mối quan hệ nhị nguyên S, ký hiệu là R(S), có tập thuộc tính là FK1 FK2 X, với FK1 và FK2 lần lượt là các khóa ngoài tham chiếu đến quan hệ R(E1) và R(E2) Khóa chính của R(S) là ID(S) cũng được xác định tương tự như bước 6
- Một quan hệ thời gian để biểu diễn yếu tố thời gian của mối quan hệ S, ký hiệu là TR(S), có tập thuộc tính là FK T và khóa chính là FK T’, với
HỆ THỐNG QUẢN LÝ HỒ SƠ BỆNH ÁN
Mô tả hồ sơ bệnh án và quy trình làm việc
2.1.1 Mô tả hồ sơ bệnh án
Dưới đây là một số mẫu thông tin thu thập được nằm trong hồ sơ bệnh án
Hình 7 Phiếu theo dõi chức năng sống
Hình 8 Mẫu phiếu chỉ định
Hình 9 Mẫu phiếu kết quả xét nghiệm
2.1.2 Mô tả quy trình làm việc
Một bệnh nhân khi đến khám bệnh tại bệnh viện, trong trường hợp cần thiết, bệnh nhân buộc phải nhập viện để theo dõi và điều trị
Khi đó, thông tin về bệnh nhân cũng như mọi thông tin khám chữa bệnh sẽ được cập nhật hằng ngày và lưu trữ thành một bộ hồ sơ Hồ sơ sẽ ngừng tương tác khi bệnh nhân xuất viện, chuyển viện hoặc tử vong.
Chức năng của hệ thống
Mục đích của bài báo cáo này là hướng đến việc thiết kế CSDL làm sao để lưu vết được những dữ liệu biến đổi theo thời gian, nên hệ thống chỉ có những chức năng chính cập nhật mọi thông tin cơ bản có trong hồ sơ và tiến hành lưu trữ
Sơ đồ chức năng của hệ thống:
QUẢN LÝ HỒ SƠ BỆNH ÁN BỆNH VIỆN ĐA KHOA TW QUẢNG NAM
Hình 11 Sơ đồ chức năng của hệ thống quản lý hồ sơ bệnh án
Sơ đồ mức ngữ cảnh
Hình 12 Sơ đồ luồng dữ liệu mức ngữ cảnh
PHÂN TÍCH VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU CHO HỆ THỐNG QUẢN LÝ HỒ SƠ BỆNH ÁN
Mô tả bài toán
Dựa trên thông tin thu thập từ các mẫu hồ sơ cũng như các câu hỏi về cách thức làm việc và quản lý, vấn đề được đặc ra là làm thế nào để xây dựng một hệ thống có thể lưu trữ được đầy đủ và chính xác các thông tin có trong hồ sơ bệnh án của một bệnh nhân Cụ thể ở đây là Hồ sơ bệnh án bệnh viện đa khoa trung ương Quảng Nam.
Đưa ra mô hình ER
Để đưa ra được mô hình ER, ta qua các bước như sau:
Liệt kê chọn lọc thông tin từ các mẫu thu thập được; xác định thực thể, thuộc tính, thuộc tính định danh:
THỰC THỂ THUỘC TÍNH THUỘC TÍNH ĐỊNH DANH
Số lưu trữ Ngày lập hồ sơ Ngày kết thúc hồ sơ Giám đốc
Bác sĩ làm bệnh án
Họ tên Ngày sinh Giới tính Nghề nghiệp Dân tộc Địa chỉ(cụ thể)
Họ tên người nhà Địa chỉ người nhà
Số điện thoại người nhà
Mã đối tượng Tên đối tượng
4.THÔNG Mã chuẩn đoán ra viện Mã Cđoán ra viện
Ra viện(cụ thể đến phút)
Lí do ra viện(ra viện/xin về/bỏ về/đưa về)
Tai biến/biến chứng Tổng số ngày điều trị Kết quả điều trị(khỏi/đỡ/…) Giải phẫu bệnh(lành tính/ác tính/…)
Mã chuẩn đoán Nơi chuyển đến Khu khám bệnh, cấp cứu Khi vào khoa điều trị Bệnh chính
Bệnh kèm theo Phân biệt Tiên lượng Hướng điều trị
Mã tử vong Thời gian tử vong(cụ thể đến phút)
Lý do tử vong(do bệnh/tai biến điều trị/khác)
Thời gian vào viện(trước 24h/sau 24h)
Nguyên nhân chính Khám nghiệm tử thi(có/không) Chuẩn đoán giải phẫu tử thi
Lý do vào viện Vào viện(cụ thể đến giờ/phút) Trực tiếp vào(Cấp cứu/KKB/…) Nơi giới thiệu
Lần vào viện do bệnh này Vào khoa(cụ thể đến phút) Chuyển khoa(cụ thể đến phút) Chuyển viện(Tuyến trên/dưới/CK) Chuyển đến
Quá trình bệnh lý(khởi phát,…) Tiền sử bệnh bản thân
Tiền sử bệnh gia đình
Mã khám bệnh Toàn thân(Mạch,nhiệt độ,…) Tuần hoàn
Thần kinh Cơ-xương-khớp Tai-mũi-họng Răng-hàm-mặt Mắt
Mã số bệnh nhân Ngày lấy mẫu(cụ thể đến phút) Khoa chỉ định
Tên xét nghiệm Kết quả xét nghiệm Chỉ số bình thường(…) Bác sĩ điều trị
Mã số phiếu chỉ định Loại chỉ định
Số lượng Bác sĩ điều trị Thời gian chỉ định(cụ thể đến phút)
Mã TD Ngày tháng Nhiệt độ Huyết áp Nhịp thở Cân nặng
13.BÁC SĨ Mã bác sĩ
Bảng 2 Thực thể và thuộc tính
Xác định mối quan hệ; vẽ mô hình, xác định bản số các thực thể Dưới đây sẽ chỉ rõ mô hình từng cặp bản thể
Hình 13 Mô hình ER (BỆNH NHÂN - ĐỐI TƯỢNG)
Hình 14 Mô hình ER (BỆNH NHÂN - HSBA)
Hình 15 Mô hình ER (HSBA – TT CĐOÁN)
Hình 16 Mô hình ER (HSBA – TT KHÁM BỆNH)
Hình 17 Mô hình ER (HSBA – TT TD CN SỐNG)
Hình 18 Mô hình ER (HSBA – TT RA VIỆN)
Hình 19 Mô hình ER (HSBA – TT VÀO VIỆN)
Hình 20 Mô hình ER (HSBA - KHOA)
Hình 21 Mô hình ER (HSBA – TT TỬ VONG)
Hình 22 Mô hình ER (KHOA – TT PHÒNG)
Hình 23 Mô hình ER (KHOA – BÁC SĨ)
Hình 24 Mô hình ER (KHOA – Y TÁ)
Hình 25 Mô hình ER (KHOA - PHIẾU CHỈ ĐỊNH)
Hình 26 Mô hình ER (PHIẾU CHỈ ĐỊNH - KQXN)
Hình 27 Mô hình ER (KQXN - BỆNH NHÂN)
Hình 28 Mô hình ER của quản lý hồ sơ bệnh án
Áp dụng CSDL thời gian vào bài toán quản lý
3.3.1 Xây dựng mô hình TimeER
Từ mô hình ER ở hình 4, thông qua các bước như ở mục 1.5 đã nêu, ta xây dựng mô hình TimeER cho mô hình ER này
Bước 1:Xác định đối tượng hỗ trợ thời gian
THUỘC TÍNH THỰC THỂ MỐI QUAN HỆ
- CHỈ ĐỊNH(giữa KHOA với PHIẾU CHỈ ĐỊNH)
Bảng 3 Đối tượng cần hỗ trợ thời gian
Bước 2: Xác định loại thời gian cần hỗ trợ cho các đối tượng
LOẠI ĐỐI TƯỢNG CỤ THỂ LOẠI THỜI GIAN
Bảng 4 Loại thời gian hỗ trợ cho từng đối tượng
Bước 3: Sử dụng thực thể thời gian tương ứng (hình 2) và mối quan hệ nhị nguyên S (1-n) để xây dựng mô hình ER* biểu diễn dữ liệu thời gian
Hình 29 Hỗ trợ thời gian cho thực thể TTBN và ĐỐI TƯỢNG
Hình 30 Hỗ trợ thời gian cho thuộc tính Hướng Điều Trị
Hình 31 Các thuộc tính trong thực thể TT TD CN SỐNG
Gán nhãn thời gian trên mô hình ER ở Hình 4 để được mô hình TimeER
Hình 32 Mô hình TimeER cho mô hình ER của quản lý hồ sơ bệnh án
3.3.2 Chuyển đổi mô hình TimeER sang mô hình R a) Chuyển đổi quan hệ TTBN-ĐỐI TƯỢNG
Hình 33 Mô hình R (TTBN-ĐỐI TƯỢNG)
Thực thể ĐỐI TƯỢNG được hỗ trợ loại thời gian TranTime, nên sinh ra quan hệ mới với TG ĐỐI TƯỢNG gồm các thuộc tính: TTs(thời gian bắt đầu) và TTe(thời gian kết thúc) và MaĐT là khoá ngoại
Hình 34 Chuyển đổi thực thể ĐỐI TƯỢNG
Thực thể BỆNH NHÂN được hỗ trợ loại thời gian LifeSpan, nên sinh ra quan hệ mới với TG BN gồm các thuộc tính: LSs(thời gian bắt đầu) và LSe(thời gian kết thúc) và MSBN là khoá ngoại
Hình 35 Chuyển đổi thực thể BỆNH NHÂN
Hình 36 Mô hình Rtime (TTBN- ĐỐI TƯỢNG) b) Chuyển đổi quan hệ TTBN – HSBA
Hình 37 Mô hình R (TTBN - HSBA) c) Chuyển đổi quan hệ HSBA – TT KHÁM BỆNH
Hình 38 Mô hình R (HSBA – TT KHÁM BỆNH) d) Chuyển đổi quan hệ HSBA – TT TD CN SỐNG
Hình 39 Mô hình R (HSBA- TT TD CN SỐNG)
Mối quan hệ này có thuộc tính, nên phát sinh quan hệ mới
Hình 40 Mô hình R (HSBA – TT TD CN SỐNG) phát sinh quan hệ mới
Thực thể TT TD CN SỐNG được hỗ trợ loại thời gian LifeSpan, nên sinh ra quan hệ mới với TG TD gồm các thuộc tính:
LSs (thời gian bắt đầu) và LSe (thời gian kết thúc) và MaTD là khoá ngoại
Hình 41 Chuyển đổi thực thể TT TD CN SỐNG
Chuyển đổi thuộc tính Nhiệt độ được hỗ trợ loại thời gian ValidTime của thực thể TT TD CN SỐNG, sinh ra quan hệ mới với thực thể TG NHIỆT ĐỘ, có tập thuộc tính Nhiệt độ, VTs (thời gian bắt đầu),VTe (thời gian kết thúc) và khoá ngoại MaTD Khoá chính của TG NHIỆT ĐỘ là MaTD và VTs
Tương tự các thuộc tính Huyết áp, Cân nặng, Nhịp thở, Y tá ĐD cũng chuyển đổi như vậy
Hình 42 Chuyển đổi thuộc tính có hỗ trợ thời gian của TT TD CN SỐNG
Hình 43 Mô hình Rtime (HSBA – TT TD CN SỐNG) e) Chuyển đổi quan hệ HSBA – TT CĐOÁN
Hình 44 Mô hình R (HSBA – TT CĐOÁN)
Thuộc tính Hướng điều trị có hỗ trợ thời gian
Hình 45 Mô hình Rtime (Hướng điều trị) f) Chuyển đổi quan hệ HSBA – TT TỬ VONG
Hình 46 Mô hình R (HSBA – TT TỬ VONG) g) Chuyển đổi quan hệ HSBA – KHOA
Hình 47 Mô hình R (HSBA - KHOA) h) Chuyển đổi quan hệ HSBA – TT RA VIỆN
Hình 48 Mô hình R (HSBA – TT RA VIỆN) i) Chuyển đổi quan hệ HSBA – TT VÀO VIỆN
Hình 49 Mô hình R (HSBA – TT VÀO VIỆN) j) Chuyển đổi quan hệ KHOA – TT PHÒNG
Hình 50 Mô hình R (KHOA – TT PHÒNG) k) Chuyển đổi quan hệ KHOA – BÁC SĨ
Hình 51 Mô hình R (KHOA – BÁC SĨ) l) Chuyển đổi quan hệ KHOA – Y TÁ
Hình 52 Mô hình R (KHOA – Y TÁ) m) Chuyển đổi quan hệ KHOA - PHIẾU CHỈ ĐỊNH
Hình 53 Mô hình R (KHOA - PHIẾU CHỈ ĐỊNH)
Quan hệ (1-n) có thuộc tính, phát sinh quan hệ mới
Hình 54 Mô hình R (KHOA - PHIẾU CHỈ ĐỊNH) phát sinh quan hệ mới n) Chuyển đổi quan hệ PHIẾU CHỈ ĐỊNH – KQXN
Hình 55 Mô hình R (PHIẾU CHỈ ĐỊNH - KQXN) o) Chuyển đổi quan hệ KQXN – TTBN
Hình 56 Mô hình R (KQXN - TTBN)
40 Hình 57 Mô hình R hoàn chỉnh
CHƯƠNG TRÌNH THỬ NGHIỆM
Các thành phần của chương trình
Chương trình mang tính thử nghiệm nên chỉ gồm các phần chính như sau:
Phần thứ nhất, giao diện chính của chương trình
Hình 58 Giao diện chính của chương trình
Phần thứ hai, quản lý bệnh nhân (thêm các thông tin cần thiết về bệnh nhân)
Hình 59 Giao diện thêm thông tin bệnh nhân của chương trình
Phần thứ ba, quản lý hồ sơ bệnh án bao gồm tạo lập hồ sơ, thông tin vào viện, thông tin khám bệnh, thông tin trong quá trình điều trị, thông tin ra viện
Hình 60 Giao diện tạo lập hồ sơ
Hình 61 Giao diện thêm thông tin vào viện
43 Hình 62 Giao diện thêm thông tin khám bệnh
Hình 63 Giao diện thêm thông tin theo dõi chức năng sống
Hình 64 Giao diện thêm thông tin ra viện
Các chức năng liên quan đến xử lý CSDL thời gian
Chức năng thêm thông tin bệnh nhân như Hình 58, khi thông tin bệnh nhân được thêm vào cơ sở dữ liệu, đồng nghĩa với việc thời gian sống (LifeSpan) của bệnh nhân đó sẽ bắt đầu và được hiển thị ra màn hình
Chức năng thêm thông tin theo dõi như Hình 62, khi thêm mới thông tin đầu tiên cho bệnh nhân, khi đó thời gian hợp lệ (ValidTime) của những thông tin đó sẽ được bắt đầu và hiển thị ra bên ngoài màn hình với cột ValidTime start Khi thông tin được thêm từ lần thứ 2 trở đi đối với một bệnh nhân, ngoài việc bắt đầu thời gian hợp lệ(ValidTime) cho các thông tin kia với MaTD = n thì thời gian hợp lệ cho các thông tin có MaTD = n – 1 sẽ kết thúc và sẽ hiển thị ra màn hình
Chức năng thêm thông tin ra viện như Hình 63, có 3 trường hợp bệnh nhân ra viện: khỏi bệnh ra viện, chuyển viện hoặc tử vong Khi bệnh nhân ra viện hoặc chuyển viện thì thời gian sống của bệnh nhân vẫn hoạt động bình thường, tuy nhiên với trường hợp bệnh nhân tử vong, thì thời gian sống của bệnh nhân trong hệ thống sẽ kết thúc và hiển thị ra ngoài màn hình