Hình 3: Mô hình CSDL quản lý bệnh nhân
3.2.3.1 Danh sách các bảng và mô tả
Table Miêu tả
BN_benhnhan Các thông tin hành chính về bệnh nhân BN_dieutri Các thông tin trong điều trị bệnh nhân
BN_gen Các thông tin liên quan đến nguy cơ do gen của BN BN_phauthuat Các thông tin phẫu thuật của bệnh nhân
BN_thuocdiung Các loại thuốc bệnh nhân bị dị ứng BN_xetnghiem Các xét nghiệm bệnh nhân đã làm
3.2.3.2 Bảng BN_BenhNhan
Tên trường Kiểu dữ liệu P/F key Mặc định Diễn giải
ID_BN Char P Mã số bệnh nhân
Ten_BN Char Họ tên bệnh nhân
Gioi_tinh Bit 0 : nữ, 1: nam
Ngay_sinh Datetime
Tuoi Int
ID_dantoc Char F
ID_tongiao Char F
Hon_nhan Char Tình trạng hôn nhân
(độc thân, kết hôn, ly dị)
Nhom_mau Char Nhóm máu (A, B, AB,
O)
Rh Bit + -
Nghe_nghiep Char F Nghề của bệnh nhân
Doi_tuong Char F Đối tượng bệnh nhân (miễn, giảm, BHYT, dịch vụ, khác)
Dia_chi Char Địa chỉ bệnh nhân
ID_huyen Char F Huyện nơi cư trú
ID_tinh Char F Tỉnh nơi cư trú
ID_bo Char Mã số bệnh nhân của
bố (nếu có)
ID_me Char Mã số bệnh nhân của
mẹ (nếu có)
Mieu_ta Char Các thông tin khác của
BN
Tên cột Nội dung
ID_BN Được cấp phát trong trường hợp bệnh nhân đi khám lần đầu hay kiểm tra không tồn tại trong CSDL
3.2.3.3 Bảng BN_Dieutri
Tên trường Kiểu dữ liệu P/F key Mặc định Diễn giải
ID_dieutri Char P Mã số lần điều trị(mã
số lưu trữ hồ sơ)
ID_BN Char F Mã số bệnh nhân được
điều trị
ID_benhly Char F Mã bệnh (ICD-10)
được chẩn đoán
ID_bacsy Char F Mã bác sỹ điều trị
Trieu_chung Char Những triệu chứng
ban đầu bệnh nhân gặp phải
Tinh_trang Char Tình trạng bệnh nhân
lúc vào viện
Ngay_chandoan Datetime Ngày được chẩn đoán bệnh
Batdau_dieutri Datetime Ngày bắt đầu được điều trị
Ketthuc_dieutri datetime Ngày kết thúc đợt điều trị
Ra_viện Char Tình trạng bệnh nhân
lúc ra viện-kết quả điều trị(khỏi, đỡ, không đổi, nặng hơn, tử vong..)
3.2.3.4 Bảng BN_PhauThuat
Tên trường Kiểu dữ liệu P/F key Mặc định Diễn giải
ID_capt Char P Mã số ca phẫu thuật bệnh nhân đã thực hiện
ID_BN Char F Mã số bệnh nhân đã
được phẫu thuật
ID_bacsymo Char F Bác sỹ mổ chính
ID_gayme Char F Bác sỹ gây mê
Ngay_phauthuat Datetime Ngày thực hiện phẫu thuật
Ket_qua Char Kết quả ca phẫu thuật (tình trạng bệnh nhân)
3.2.3.5 Bảng BN_gen
Tên trường Kiểu dữ liệu P/F key Mặc định Diễn giải
ID_gen Char P Mã gen của bệnh nhân gây nguy cơ
ID_BN Char P Mã bệnh nhân có gen gây
nguy cơ
3.2.3.6 Bảng BN_XetNghiem
Tên trường Kiểu dữ liệu P/F key Mặc định Diễn giải
ID_soxn Char P Mã số số xét nghiệm
bệnh nhân đã thực hiện
ID_xn Char F Mã số loại xét
ID_BN Char F Mã số bệnh nhân làm xét nghiệm
ID_Bacsychidinh Char F Bác sỹ chỉ định xét nghiệm
ID_bacsyxn Char F Bác sỹ thực hiện xét
nghiệm
Ngay_xn Datetime Ngày thực hiện xét nghiệm
Noi_xn Char Nơi thực hiện xét
nghiệm
Ngay_ketqua Datetime Ngày trả kết quả xét nghiệm
ID_benhly Char F Bệnh lý có thể nhận
thấy từ xét nghiệm
3.2.3.7 Bảng BN_CDHA
Tên trường Kiểu dữ liệu P/F key Mặc định Diễn giải
ID_lanCDHA Char P Mã số ca chẩn đoán hình ảnh
ID_CDHA Char F Mã số loại chẩn đoán hình ảnh đã thực hiện
ID_BN Char F Mã số bệnh nhân đã làm
chẩn đoán hình ảnh
ID_bsychidinh Char F Mã số bác sỹ chỉ định làm CDHA
ID_bsylam Char F Mã số bác sỹ trực tiếp làm CDHA
ngay_CDHA datetime Ngày thực hiện
Ket_qua Image Hình ảnh kết quả
ID_benhly Char F Các bệnh lý có thể đưa
3.2.3.8 Bảng BN_ThuocDiUng
Tên trường Kiểu dữ liệu P/F key Mặc định Diễn giải
ID_BN Char P Mã số bệnh nhân
ID_thuoc Char P Mã số thuốc mà bệnh nhân
CHƯƠNG 4 THIẾT KẾ CHỨC NĂNG
4.1Quản lý hệ thống 4.2 Quản lý danh mục
TT Tên chức năng Mô tả
1 Danh mục bệnh viện Quản lý danh mục bệnh viện 1.1 Liệt kê Liệt kê danh sách bệnh viện 1.2 Thêm mới
1.3 Sửa thông tin
2 Danh mục bệnh lý Quản lý danh sách bệnh lý 2.1 Tìm kiếm thông tin về các
bệnh lý 2.2 Thêm mới
3 Danh mục công ty BH Quản lý danh sách các công ty bảo hiểm 3.1 Liệt kê
3.2 Thêm mới 3.3 Xóa bỏ
4 Danh mục thuốc Quản lý các thuốc được phép sử dụng 4.1 Liệt kê
4.2 Thêm 4.3 Sửa
5 Danh mục đơn vị thuốc Quản lý các đơn vị được sử dụng 5.1 Liệt kê
5.2 Thêm mới
6 Danh mục gen Quản lý danh sách các gen của con người
6.1 Liệt kê
7 Danh mục xet nghiệm Quản lý danh sách các xét nghiệm được thực hiện
7.1 Liệt kê 7.2 Thêm mới
8 Danh mục phẫu thuật Quản lý danh sách các loại phẫu thuật có thể thực hiện
8.1 Liệt kê 8.2 Thêm mới
9 Danh mục thuốc độc Quản lý danh sách các loại thuốc độc 9.1 Liệt kê
9.2 Thêm mới
10 Danh mục huyện Quản lý danh sách các huyện trên cả nước
10.1 Liệt kê 10.2 Thêm mới 10.3 Sửa đổi
11 Danh mục tỉnh Quản lý danh sách các tỉnh 11.1 Liệt kê
11.2 Thêm mới 11.3 Sửa đổi
12 Nghề nghiệp Quản lý danh sách các nghề hiện tại 12.1 Liệt kê
12.2 Thêm mới
13 Tôn giáo Quản lý danh sách tôn giáo đang hoạt động
13.1 Liệt kê 13.2 Thêm mới
4.3 Quản lý bệnh viện
TT Tên chức năng Miêu tả
1 Quản lý khoa Quản lý danh mục các khoa trong viện 1.1 Liệt kê
2 Quản lý phòng bệnh Quản lý số phòng bệnh và tình trạng các phòng bệnh tại các khoa
2.1 Liệt kê 2.3 Thêm mới 2.4 Sửa
3 Quản lý giường bệnh Quản lý số giường bệnh và tình trạng sử dụng giường bệnh
3.1 Liệt kê 3.2 Thêm mới 3.3 Sửa
4 Bác sỹ Quản lý các bác sỹ làm việc tại viện 4.1 Liệt kê
4.2 Thêm mới 4.3 Sửa
4.4 Quản lý bệnh nhân
TT Tên chức năng Miêu tả
1 Hồ sơ bệnh nhân
1.1 Bệnh nhân mới Nhập các thông tin cần thiết về bệnh nhân mới
1.2 Sửa đổi các thông tin Sửa đổi các thông tin trong quá trình điều trị
1.3 Xóa thông tin điều trị 1.4 Tìm kiếm bệnh nhân
2 Phiếu xét nghiệm Quản lý thông tin các xét nghiệm 2.1 Liệt kê các xét nghiệm
2.2 Thêm mới phiếu xét nghiệm
3 Phẫu thuật Quản lý các thông tin về việc phẫu thuật của bệnh nhân
3.1 Nhập các thông tin
thực hiện 3.3 Thêm mới
CHƯƠNG 5 MÔ HÌNH PHÂN TÁN DỮ LIỆU
5.1 Khái niệm chung
Hệ CSDL phân tán được xây dựng dựa trên hai công nghệ là CSDL và mạng máy tính. Một CSDL phân tán là một tập hợp nhiều CSDL có liên quan logic và được phân bố vật lý trên một mạng máy tính.
Trong khái niệm miêu tả về hệ CSDL có hai đặc trưng cơ bản là “liên quan logic” và “phân bố trên mạng”. Trong CSDL phân tán các tập tin dữ liệu được lưu trữ độc lập trên các nút mạng máy tính không chỉ có liên quan về mặt logic mà đòi hỏi chúng phải được truy xuất qua một giao diện chung thống nhất.
Hệ quản trị CSDL phân tán là hệ thống phần mềm cho phép quản lý các hệ CSDL phân tán và làm cho sự phân tán trở nên trong suốt với người sử dụng.
Khái niệm “trong suốt” để chỉ sự tách biệt ở cấp độ cao của hệ thống với các vấn đề cài đặt ở cấp độ thấp của hệ thống. Các dạng trong suốt:
• Trong suốt về phân tán: các dữ liệu được lưu trữ tại các nút có vị trí địa lý khác nhau, phần mềm sẽ đáp ứng các yêu cầu của người sử dụng sao cho người sử dụng không cần biết vị trí địa lý của dữ liệu
• Trong suốt về phân hoạch: do dữ liệu phân tán và do nhu cầu của công việc dữ liệu cần được phân hoạch và mỗi phân hoạch được lưu trữ tại một nút khác nhau(quá trình phân mảnh). Quá trình phân mảnh hoàn toàn tự động bởi hệ thống và người sử dụng không cần phải can thiệp
• Trong suốt về nhân bản: vì lý do hiệu năng, tin cậy nên dữ liệu còn được sao chép một phần ở những vị trí khác nhau
• Trong suốt về độc lập dữ liệu
• Trong suốt về kết nối mạng: người sử dụng không cần biết về sự có mặt của giao tiếp mạng
Phân Tán Phân Mảnh Nhân Bản Kết Nối Mạng Độc Lập Dữ Liệu Dữ Liệu
Hình 4: Các tầng trong suốt của hệ thống
5.2. Mô hình kiến trúc của Hệ Quản Trị CSDL Phân Tán
Ta xét 3 mô hình phổ biến: mô hình kiến trúc phân tán khách-đại lý, mô hình phân tán
5.2.1 Mô hình kiến trúc phân tán khách đại lý (client-server)
Chức năng của hệ thống được chia làm 2 lớp:
• Chức năng đại lý – server function
• Chức năng khách hàng – client function
Trong hệ thống khách đại lý các thao tác dữ liệu đáp ứng yêu cầu của khách hàng đều được thực hiện bởi chức năng đại lý, chỉ có kết quả được gửi trả cho khách hàng
Hệ khách (Client) có các tầng:
• Giao diện tương tác với người sử dụng (User Interface), các chương trình ứng dụng (Application Program)
• Hệ quản trị CSDL khách hàng (Client DBMS)
• Các phần mềm mạng có chức năng truyền tin (Communication Software)
Hệ Điều Hành Operating System
Phần mềm mạng có chức năng truyền tin Communication Software
Kiểm soát ngữ nghĩa dữ liệu Semantic Data Controller
Tối ưu hóa câu hỏi Query Optimizer Quản lý giao tác Transaction Manager Quản lý khôi phục Recovery Manager Hỗ trợ thực thi Run -time Support Processor Giao diện Người dùng User interface ... Chương trình ứng dụng Application Program Hệ quản trị khách Client DBMS
Phần mềm mạng có chức năng truyền tin Communication Software Hệ điều hành Operating System Truy vấn SQL Kết quả Cơ sở dữ liệu Database
Hình 5: Mô hình kiến trúc phân tán Client-Server Hệ đại lý (server) có các tầng:
• Các phần mềm mạng có chức năng truyền tin
• Tầng kiểm soát ngữ nghĩa của dữ liệu (Semantic Data Controler)
• Tầng tối ưu hóa câu hỏi (Query Optimizer)
• Tầng quản lý các giao tác (Transaction Manager)
• Tầng quản lý khôi phục (Recovery Manager)
• Tầng hỗ trợ thực thi (Run-time Support Processor) Hệ điều hành quản lý chung và giao tiếp với các CSDL vật lý
5.2.2 Mô hình phân tán hệ ngang hàng
Hình 6: Mô hình kiến trúc phân tán hệ ngang hàng
Dữ liệu được tổ chức ở các nút có chức năng như nhau, đồng thời sự tổ chức dữ liệu tại các nút này lại rất khác nhau. Sự tổ chức dữ liệu tại mỗi nút cần có:
• Định nghĩa dữ liệu tại mỗi vị trí: tại mỗi nút phải xây dựng lược đồ dữ liệu cục bộ LIS(Local Internal Schema)
• Mô tả cấu trúc logic toàn cục: lược đồ khái niệm toàn cục GCS(Global Conceptual Schema)
• Mô tả cấu trúc dữ liệu của các ứng dụng gọi là lược đồ ngoại giới ES(External Schema)
Cấu trúc của hệ thống bao gồm hai thành phần chính: bộ phận tiếp nhận người dùng (User Processor) và bộ phận xử lý dữ liệu (Data Processor). Hai module này được đặt chung trên mỗi máy
Các chức năng cơ bản:
• User Interface Handler - giao tiếp người sử dụng, diễn dịch yêu cầu, định dạng kết quả
• Semantic Data Controler - kiểm soát dữ liệu ngữ nghĩa, dựa vào lược đồ khái niệm toàn cục để kiểm tra câu vấn tin có thực hiện được hay không
• Global Query Optimizer - tối ưu hóa câu hỏi toàn cục, định ra chiến lược thực thi tốt nhất trên các nút
• Global Execution Monitor – điều khiển thực thi câu vấn tin toàn cục
• Local Query Processor – xử lý câu hỏi cục bộ
• Local Recovery Manager – quản lý khôi phục cục bộ: quản lý sự nhất quán khi có sự cố
• Run-time Support Processor – bộ phận hỗ trợ thực thi: quản lý truy xuất CSDL
5.2.3 Mô hình hệ phân tán phức hợp
Hình 7: Mô hình hệ phân tán phức hợp
5.3 Thiết kế CSDL phân tán
Để phân tán CSDL có hai hoạt động chính: phân mảnh các quan hệ và phân tán các quan hệ.
Hệ CSDL phân tán có ba cách phân mảnh chính: phân mảnh ngang, phân mảnh dọc và phân mảnh hỗn hợp
Phân mảnh ngang: chia một quan hệ theo các bộ vì vậy mỗi mảnh là một tập con của quan hệ.
Có hai loại: phân mảnh ngang nguyên thủy và phân mảnh ngang dẫn xuất.
Môi trường mạng máy tính
Phân mảnh ngang nguyên thủy của một quan hệ: được thực hiện dựa trên các vị từ được định nghĩa trên quan hệ. Phân mảnh ngang nguyên thủy được định nghĩa bằng phép toán chọn trên các quan hệ chủ của một lược đồ CSDL.
Phân mảnh ngang dẫn xuất: là phân rã một quan hệ dựa vào các vị từ được định nghĩa trên một quan hệ khác. Phân mảnh ngang dẫn xuất được định nghĩa trên một quan hệ thành viên của một đường nối (phép nối bằng) dựa theo phép toán chọn trên quan hệ chủ của đường nối đó.
Phân mảnh dọc: phân hoạch một quan hệ thành một tập các quan hệ nhỏ hơn để nhiều ứng dụng chỉ cần chạy trên một mảnh.
Phân mảnh hỗn hợp: phân mảnh dọc được thực hiện sau phân mảnh ngang hoặc ngược lại
Môi trường mạng máy tính Trạm 1 Trạm 2 Trạm 3 Trạm 4 CSDL 3 CSDL 4 CSDL 2 CSDL 1
5.4 Ứng dụng cơ sở dữ liệu phân tán trong bài toánCenter Center Bệnh Viện 3 Bệnh Viện 2 Bệnh Viện 3 Phòng Khám 1 Phòng Khám 1 Bệnh Viện 1 Bệnh Viện 2 Phòng Khám 2 Bệnh Viện 1 Internet Internet Tỉnh 2 Tỉnh 1 Tỉnh 3
Hình 8: Mô hình phân tán dữ liệu
Ứng dụng mô hình CSDL phân tán trong bài toán có mô hình phân tán: các thông tin chung như các thông tin quản lý danh mục thuốc, quản lý các danh mục khác (bệnh viện, phòng khám, tỉnh, huyện) sẽ được lưu trữ trên server trung tâm (center). Các thông tin về bệnh nhân tại mỗi tỉnh sẽ được lưu trữ tại server đặt tại mỗi tỉnh hay thành phố trực thuộc trung ương của tỉnh đó.
Ứng dụng mô hình phân tán ngang phân tán dữ liệu đến từng bệnh viện, phòng khám. Mỗi bệnh viện, phòng khám sẽ lưu trữ cục bộ về thông tin của bệnh nhân đến khám và điều trị tại bệnh viện phòng khám đó, thông tin này sẽ được gửi lên server lưu trữ của mỗi tỉnh. Mỗi tỉnh sẽ lưu thông tin bệnh nhân của tỉnh mình (xác định theo địa chỉ thường trú của bệnh nhân đăng ký khi đến khám).
Nếu bệnh nhân thay đổi địa chỉ từ tỉnh này sang tỉnh khác thì hệ thống sẽ tự động rút thông tin hồ sơ của bệnh nhân ở tỉnh cũ chuyển đến lưu trữ tại tỉnh mới
nơi bệnh nhân chuyển đến. Với trường hợp bệnh nhân ở một tỉnh nhưng lần đầu tiên khám bệnh lại khám ở tỉnh khác thì thông tin của bệnh nhân trước hết vẫn được lưu trữ cục bộ tại bệnh viện phòng khám bệnh nhân đó đã khám sau đó hệ thống sẽ xác định, chuyển thông tin của bệnh nhân đến lưu tại tỉnh nơi bệnh nhân thường trú.
Đối với một bệnh nhân đi khám lần đầu, nhân viên y tế sẽ nhập vào các thông tin của bệnh nhân mới và lưu trữ vào CSDL cục bộ của bệnh viện. Thông tin này sau đó sẽ được gửi lên lưu trữ trên server của tỉnh mà bệnh nhân đó đăng ký địa chỉ thường trú của mình.
Đối với các bệnh nhân đã từng đi khám bệnh (đã có mã số bệnh nhân trong CSDL), khi nhân viên y tế thực hiện chức năng tìm kiếm một bệnh nhân qua mã bệnh nhân trước tiên hệ thống sẽ tìm trong CSDL cục bộ của viện, nếu không thấy thông tin về bệnh nhân đó thì hệ thống sẽ gửi truy vấn đến server của tỉnh, nếu tỉnh không lưu thông tin bệnh nhân đó hệ thống gửi truy vấn lên server trung tâm, qua trung tâm sẽ xác định được tỉnh lưu trữ thông tin bệnh nhân trước đó để gửi truy vấn đến và tìm được thông tin về bệnh nhân. Các nhân viên y tế chỉ được chỉ được phép tạo mới và chỉnh sửa thông tin về bệnh nhân mình điều trị.
Bệnh nhân cũng có thể xem thông tin bệnh án của mình qua mạng bằng cách truy cập vào trang web qua tài khoản được cấp khi đi khám bệnh (với user là mã số bệnh nhân). Mỗi bệnh nhân chỉ được xem thông tin về bệnh án của mình. Bệnh nhân sẽ gửi thông tin truy vấn trực tiếp lên center và center sẽ xác định server của tỉnh lưu trữ thông tin của bệnh nhân đó và trả lại các thông tin cần thiết cho bệnh nhân.
CHƯƠNG 6: THỰC NGHIỆM
6.1 Lựa chọn môi trường cài đặt và phát triển
Hệ thống quản lý bệnh viện là một hệ thống lớn và rất phức tạp. Để phân tích thiết kế cài đặt hệ thống đòi hỏi một khối lượng công việc rất lớn. Trong khuôn khổ một khóa luận tốt nghiệp, nội dung chủ yếu là đề cập tới thiết kế mô hình dữ liệu, phần demo chỉ mang tính minh họa tính khả thi cho hệ thống và chỉ là một phần nhỏ mà hệ thống có thể làm được.
Demo xây dựng một CMS trên nền joomla sử dụng ngôn ngữ PHP và hệ CSDL MySql.
Các chức năng chính: Nhập bệnh nhân mới
Chỉnh sửa thông tin bệnh nhân,