Bài toán xếp lịch
Giới thiệu chung
Ngày nay, tin học đóng vai trò quan trọng trong hầu hết các ngành nghề, đặc biệt là trong kinh doanh, du lịch, hàng không, quản lý kế toán và bệnh viện Việc tổ chức, lưu trữ và xử lý lượng thông tin lớn trở thành thách thức lớn, tiêu tốn nhiều thời gian Do đó, cập nhật thông tin chính xác và truy xuất nhanh chóng là yêu cầu thiết yếu trong xã hội hiện đại Chính vì vậy, tin học ngày càng trở nên cần thiết đối với mỗi người.
Lập lịch trực cho nhân viên là yếu tố quan trọng không thể thiếu trong bất kỳ tổ chức nào Một hệ thống quản lý chặt chẽ và sắp xếp lịch trực hợp lý giúp tổ chức hoạt động nhịp nhàng và có kế hoạch rõ ràng Tổ chức tốt sẽ tạo điều kiện thuận lợi cho mọi hoạt động, từ đó nâng cao hiệu quả công việc và rút ngắn thời gian hoàn thành nhiệm vụ.
Việc triển khai hệ thống xếp lịch cho bác sĩ tại bệnh viện là một vấn đề quan trọng và cần thiết, đang thu hút sự chú ý trong thời gian gần đây.
Hiện nay, việc xếp lịch trực bác sĩ chủ yếu được thực hiện thủ công và lưu trữ bằng giấy tờ, dẫn đến tình trạng trùng lặp và mất thông tin Điều này khiến cho việc xếp lịch chính xác trở nên khó khăn, chỉ những người có kinh nghiệm lâu năm mới có thể thực hiện tốt Do đó, việc phát triển một phần mềm hỗ trợ cho quy trình xếp lịch là rất cần thiết.
Tin học hoá quản lý bệnh viện, đặc biệt trong việc xếp lịch trực cho bác sĩ, giúp giảm tải công việc và đơn giản hoá các quy trình quản lý phức tạp Môi trường bệnh viện yêu cầu sự chính xác cao, do đó việc sắp xếp thời gian và kế hoạch làm việc của đội ngũ y bác sĩ cần rõ ràng Những khó khăn này sẽ được giảm bớt nhờ vào tin học hoá các công tác này Để xây dựng một chương trình hỗ trợ xếp lịch hoàn chỉnh, cần phải phân tích thực tế một cách chính xác và thiết kế phù hợp với yêu cầu của bác sĩ Chương trình xếp lịch trực cần đáp ứng các tiêu chí như hỗ trợ nhanh chóng, công bằng và cho phép người dùng cập nhật lịch khi cần thiết.
Một số thuật toán xếp lịch
1.2.1 Thuật toán tô màu đồ thị
Bài toán tô màu đồ thị và sắc số đồ thị
Cho một số nguyên dương P, đồ thị G được gọi là P sắc khi có thể tô màu tất cả các đỉnh bằng P màu khác nhau sao cho hai đỉnh liền kề có màu khác nhau Số P nhỏ nhất thỏa mãn điều này được gọi là sắc số của đồ thị Bài toán tô màu đồ thị là tìm cách phân chia màu sắc cho các đỉnh của đồ thị sao cho đáp ứng được điều kiện trên.
Khi tô màu bản đồ hành chính, cần đảm bảo rằng mỗi quốc gia được tô bằng một màu riêng biệt, và các quốc gia liền kề, tức là có chung biên giới, không được sử dụng cùng một màu.
Ta xây dựng một đồ thị G với các đỉnh là các quốc gia trên bản đồ, trong đó hai quốc gia liền kề được nối bằng một cạnh Mục tiêu là tìm sắc số của đồ thị, đây là một trường hợp đặc biệt của bài toán tô màu đồ thị khi đồ thị là đồ thị phẳng Đã có chứng minh cho rằng chỉ cần tối đa 4 màu để tô màu cho đồ thị này Mặc dù bài toán tô màu đồ thị thuộc lớp NP - đầy đủ, nhưng nếu áp dụng một chiến lược hợp lý, kết quả thu được vẫn có thể chấp nhận được.
Thuật toán tìm sắc số của đồ thị (Thuật toán 1):
Trong lý thuyết đồ thị, khi có hai đỉnh x và y trong đồ thị G, ta có thể tạo ra một đồ thị mới G: xy bằng cách kết hợp hai đỉnh này thành một đỉnh duy nhất, nối với tất cả các đỉnh kề với x, y hoặc cả hai Ngoài ra, đồ thị G - {x} được hình thành bằng cách loại bỏ đỉnh x và tất cả các cạnh liên quan đến nó Đồ thị trống là đồ thị không có đỉnh hay cạnh nào, và hai đỉnh được gọi là kề nhau nếu chúng được nối bởi một cạnh.
Với một đỉnh x bất kỳ, ta xây dựng một tập các bộ 3 như sau:
Trong bài viết này, chúng ta xem xét một cấu trúc gồm ba đỉnh, trong đó đỉnh thứ nhất kề với đỉnh thứ hai, và đỉnh thứ hai kề với đỉnh thứ ba, nhưng không có bộ ba nào mà đỉnh thứ nhất kề hoặc trùng với đỉnh thứ ba Từ tập hợp các bộ ba này, chúng ta xác định các đỉnh yi sao cho mi = max(m1, m2, ,mn) và gán yi = x Nếu có nhiều đỉnh y đạt giá trị max, chúng ta sẽ chọn đỉnh đầu tiên Cách hình dung là chọn một đỉnh không kề với đỉnh x, kề với đỉnh trung gian kề với đỉnh x, và có số đỉnh trung gian lớn nhất.
Các bước của thuật toán (đồ thị G là dữ liệu vào):
Bước 2: Đặt vjlà đỉnh có bậc cao nhất trong H
Bước 3: Xây dựng tất cả các bộ ba từ đỉnh vj và xác định đỉnh x Nếu không tìm thấy x hoặc không có bộ ba nào khả thi, hãy chọn một đỉnh có bậc lớn nhất mà không kề với vj.
Bước 4: Nhập x vào vj và quay lại bước 3 cho tới khi không chọn được một đỉnh nào nữa thì quay lại bước 2 với : H=H-{vj}, j=j+1
Khi không còn đỉnh nào trong H, hãy xây dựng lại và tô màu i cho tất cả các đỉnh được nhập vào vi với (1 ≤ i ≤ j), trong đó j chính là sắc số của đồ thị G.
Thuật toán này không phải là giải pháp tối ưu cho mọi tình huống, nhưng nó nỗ lực tìm kiếm một phương pháp chấp nhận được để xác định sắc số cho đồ thị.
1.2.2 Thuật toán gen di truyền
Thuật toán di truyền gồm có bốn quy luật cơ bản là lai ghép, đột biến, sinh sản và chọn lọc tự nhiên như sau:
Quá trình lai ghép (phép lai)
Quá trình hình thành nhiễm sắc thể mới diễn ra bằng cách kết hợp các đoạn gen từ hai nhiễm sắc thể của cha và mẹ, tạo ra nhiễm sắc thể mang đặc tính của cả hai Phép lai này cho phép sự kết hợp di truyền giữa các đặc điểm của cha mẹ.
Chọn ngẫu nhiên hai hay nhiều cá thể trong quần thể Giả sử chuỗi nhiễm sắc thể của cha và mẹ đều có chiều dài là m
Để tìm điểm lai, hãy tạo ngẫu nhiên một số từ 1 đến m-1, giúp chia hai chuỗi nhiễm sắc thể cha-mẹ thành hai nhóm con m1 và m2 Hai chuỗi nhiễm sắc thể con sẽ được hình thành là m11+m22 và m21+m12 Sau đó, đưa hai chuỗi nhiễm sắc thể con này vào quần thể để tiếp tục tham gia vào quá trình tiến hóa.
Quá trình đột biến (phép đột biến)
Quá trình tiến hóa, được gọi là đột biến, xảy ra khi một hoặc nhiều tính trạng của con không được thừa hưởng từ cả hai chuỗi nhiễm sắc thể của cha mẹ Tỷ lệ xảy ra của đột biến thấp hơn nhiều so với tỷ lệ xảy ra của phép lai Đột biến có thể được mô tả như một hiện tượng sinh học quan trọng trong quá trình tiến hóa.
Chọn ngẫu nhiên một số k từ khoảng 1 ≥ k ≥ m
Thay đổi giá trị của gen thứ k Đưa nhiễm sắc thể con vào quần thể để tham gia quá trình tiến hóa tiếp theo
Quá trình sinh sản và chọn lọc (phép tái sinh và phép chọn)
Phép tái sinh là quá trình sao chép các cá thể dựa trên độ thích nghi của chúng, với độ thích nghi được gán các giá trị thực cho từng cá thể trong quần thể Quá trình này có thể được mô phỏng để hiểu rõ hơn về sự phát triển và tiến hóa của các loài.
Để tính độ thích nghi của từng cá thể trong quần thể, cần lập bảng cộng dồn các giá trị thích nghi theo thứ tự gán cho từng cá thể Giả sử quần thể có n cá thể, độ thích nghi của cá thể thứ i được ký hiệu là Fi, tổng dồn thứ i là Ft, và tổng độ thích nghi của quần thể là Fm.
Tạo số ngẫu nhiên F có giá trị trong đoạn từ 0 đến Fm
Chọn cá thể k đầu tiên thỏa mãn F ≥ Ft đưa vào quần thể của thế hệ mới
Phép chọn: là quá trình loại bỏ các cá thể xấu và để lại những cá thể tốt Phép chọn được mô tả như sau:
Sắp xếp quần thể theo thứ tự độ thích nghi giảm dần
Loại bỏ các cá thể cuối dãy, chỉ để lại n cá thể tốt nhất
Cấu trúc thuật giải di truyền tổng quát Bắt đầu t =0;
Tính độ thích nghi cho các cá thể thuộc P(t); Khi (điều kiện dừng chưa thỏa) lặp t = t + 1;
2 Các công thức của thuật giải di truyền
Tính độ thích nghi eval (vi) của mỗi nhiễm sắc thể vi (i =1 kích thước quần thể):
Tiến trình chọn lọc diễn ra thông qua việc quay bánh xe rulet kích thước quần thể Mỗi lần quay, một nhiễm sắc thể được chọn từ quần thể hiện tại và chuyển vào quần thể mới.
Phát sinh một số ngẫu nhiên r trong khoảng [0, 1]
Nếu r < q1thì chọn nhiễm sắc thể v1, ngược lại chọn nhiễm sắc thể vi (2 ≤ i ≤ kích thước quần thể) sao cho qi-1 < r ≤ qi
Xếp lịch trực bệnh viện
Khảo sát hiện trạng
Sau khi tiến hành khảo sát tại một số bệnh viện đa khoa như Bệnh viện Đại học Y Hải Phòng và Bệnh viện Việt Tiệp Hải Phòng, chúng tôi đã rút ra một số đặc điểm chung Các bệnh viện này đều có hệ thống cơ sở vật chất hiện đại, đội ngũ y bác sĩ chuyên nghiệp, và cung cấp đa dạng dịch vụ y tế nhằm đáp ứng nhu cầu chăm sóc sức khỏe của cộng đồng.
Các phân khoa của bệnh viện
Khoa Mắt - Tai – Mũi – Họng
Khoa Siêu Âm Định Toán
Ban chấp hành Công đoàn
Ban chấp hành Đoàn thanh niên
2.2 Xếp lịch trực tại bệnh viện
Để đảm bảo phục vụ bệnh nhân hiệu quả và kịp thời, bệnh viện luôn bố trí cán bộ nhân viên trực 24/24 giờ tại mọi phòng khoa, nhằm nhanh chóng xử lý mọi tình huống phát sinh ngoài giờ hành chính.
Ca trực và Kíp trực:
Ca trực (tua trực): tính bằng thời gian
Ví dụ: Ca ngày: bắt đầu từ 7 giờ sáng đến 4h chiều
Ca đêm: bắt đầu từ 4h chiều đến 7h sáng hôm sau
Kíp trực (nhóm trực): Số lượng nhân viên trong một kíp trực phụ thuộc vào từng bệnh viện, từng khoa, từng bộ phận cụ thể
Thông thường, nếu một khoa có 3 ca trực thì số kíp trực sẽ là 4 để luôn có một nhóm được nghỉ
Phân công trực: Bác sĩ và nhân viên hành chánh:
Bác sĩ và nhân viên hành chánh, bao gồm các bộ phận như điện, nước, bảo vệ và xe cộ, chỉ trực vào ban đêm và trong các ngày nghỉ, lễ Mỗi ca trực đêm kéo dài từ 17h đến 7h sáng hôm sau Vào ngày nghỉ và lễ, ngoài ca trực đêm, còn có ca trực ban ngày từ 7h đến 17h.
Khi có nhân viên nghỉ đột xuất trong ca trực, các nhân viên hành chính hoặc bác sĩ sẽ đảm nhận công việc thay thế Nếu nhân viên nghỉ chỉ tạm thời, họ sẽ trực bù vào ca sau để thay thế cho người đã trực trước đó.
Thông thường có từ 10 -12 bác sĩ trực chung /1 ca trực Điều dưỡng, hộ lý: Điều dưỡng, hộ lý có hai ca trực:
Ca ngày: bắt đầu từ 7h sáng đến 5h chiều cùng ngày
Ca đêm bắt đầu từ 17h đến 7h sáng hôm sau, và nhân viên trực đêm sẽ được nghỉ vào ngày hôm sau Trong trường hợp có nhân viên nghỉ đột xuất, những người trong ca trực sẽ tự chia sẻ công việc Nếu số lượng nhân viên nghỉ quá nhiều hoặc khối lượng công việc lớn, sẽ có nhân viên từ ca sau được điều động vào Đối với điều dưỡng, điều dưỡng trưởng sẽ tự phân chia lịch trực và nộp lên phòng kế hoạch tổng hợp.
* Ghi chú: Các cán bộ nhân viên nữ trong thời gian nghỉ sinh hoặc nuôi con mọn thì được miễn trực đêm
Qua khảo sát thực tế một số bệnh viện(Bệnh viện Từ Dũ và
Bệnh viện C Đà Nẵng), ta thấy bệnh viện có 4 cấp trực sau: o Trực lãnh đạo o Trực lâm sàng o Trực cận lâm sàng o Trực hành chánh
Ban giám đốc cùng các trưởng phòng ban tại bệnh viện chịu trách nhiệm giải quyết mọi vấn đề liên quan đến hành chính và chuyên môn, bao gồm cả việc xử lý những khó khăn, thắc mắc và khiếu nại từ bệnh nhân và thân nhân mà các cấp dưới không thể giải quyết thỏa đáng.
Bác sĩ, nữ hộ sinh, hộ lý và điều dưỡng được phân công làm việc theo ca, có thể là 2 ca, 3 ca hoặc 4 ca, tùy thuộc vào số lượng bệnh nhân của từng bệnh viện hoặc từng khoa.
Lịch trực của bác sĩ do phòng kế hoạch tổng hợp sắp, còn lịch trực cho hộ lý, nữ hộ sinh là do phòng điều dưỡng sắp
Bộ phận siêu âm, X quang, xét nghiệm, dược, nội soi
Những bộ phận này do phòng kế hoạch tổng hợp quản lý và sắp lịch
Trực hành chánh là các bộ phận hỗ trợ trong bệnh viện như điện nước, bảo vệ và xe cộ, nhằm đảm bảo nhu cầu hoạt động 24/24 Để duy trì dịch vụ điện, nước và xe cấp cứu ngoài giờ hành chính, Phòng kế hoạch tổng hợp sẽ lên lịch trực cho nhân viên từ các bộ phận này, cụ thể là ca trực đêm từ 17h đến 7h.
2.3 Quy trình xếp lịch trực
• Tiếp nhân danh sách nhân sự
Tiếp nhận thông tin nhân viên bao gồm họ và tên, ngày sinh, giới tính, địa chỉ, điện thoại, di động, khoa, chức danh và chức vụ, sau đó ghi nhận theo biểu mẫu BM1.
• Tiếp nhận danh sách phiếu yêu cầu
Tiếp nhận thông tin từ phiếu yêu cầu xếp lịch của các khoa, bao gồm hai loại: phiếu yêu cầu theo ca và phiếu yêu cầu theo số lượng Mỗi loại phiếu yêu cầu cần cung cấp thông tin theo biểu mẫu BM2.1 và BM2.2.
• Tiếp nhận thông tin ràng buộc nhân viên với cấp trực, chức danh và khoa
Nhân viên được thông báo về việc làm việc theo ca, bao gồm ca ngày, ca đêm hoặc cả hai ca theo quy định của BM3 Thông thường, nhân viên phải thực hiện cả hai loại ca trong suốt thời gian xếp lịch Tuy nhiên, chỉ có một số trường hợp đặc biệt được miễn làm ca ngày hoặc ca đêm.
• Tiếp nhận thời gian xếp lịch
Thời gian xếp lịch bao gồm: Thời gian bắt đầu lịch trực và thời gian kết thúc lịch trực theo BM4
• Xếp lịch trực cho khoa
Việc xếp lịch được thực hiện dựa trên các phiếu yêu cầu trong khoảng thời gian đã định, tuy nhiên, chương trình chỉ cho phép xếp lịch theo ca kíp hoặc số lượng yêu cầu của khoa mà không tối ưu hóa theo năng lực của đội ngũ y bác sĩ Do đó, người sử dụng có thể linh động cập nhật lại lịch trực dựa trên lịch đã được xếp sẵn.
• Cập nhật lịch trực Khi có sự thay đổi về nhân sự, về ca trực, người sử dụng có thể cập nhật và ghi nhận lại lịch trực mới
2.4 Phân tích chương trình xếp lịch trực
2.4.1 Biểu đồ ngữ cảnh của hệ thống
Xếp lịch trực bác sĩ
2.4.2 Biểu đồ phân rã chức năng y/c ttin bac sĩ
Bác sĩ Ban lãnh đạo
1.1.1 Thêm thông tin bac sĩ
1.1.4 Tìm kiếm thông tin bác sĩ
Sửa thông tin bác sĩ
1.1.3 Xoá thông tin bác sĩ
2.4.3 sơ đồ phân rã chức năng
Chương trình xếp lịch trực bệnh viện
Quản lý bác sĩ Quản lý lịch trực
Thêm thông tin bác sĩ
Sửa thông tin bác sĩ
Xoá thông tin bác sĩ
Tìm kiếm thông tin bác sĩ
Phân lịch trực Xoá lịch trực
Thống kê nhân sự theo khoa
Thống kê phòng theo khoa
Thống kê biểu đồ nhân sự
Thống kê ban lãnh đạo
Cập nhật thông tin khoa
Cập nhật thông tin phòng
Cập nhật tài khoản đăng nhập
Xác định các quan hệ:
Trong một bệnh viện có rất nhiều bác sĩ làm việc, mỗi bác sĩ có các thông tin:
BACSI bao gồm các thông tin quan trọng như mã số bác sĩ, mã khoa, họ tên, giới tính, ngày công tác, quê quán, ngày sinh, số chứng minh nhân dân, hộ khẩu, tình trạng biên chế, số điện thoại, email và mật khẩu.
Bệnh viện có rất nhiều khoa, mỗi khoa bao gồm: mã khoa, tên khoa, trưởng khoa, phó khoa Trong đó mã khoa là được xác định!
KHOA (mã khoa, tên khoa, trưởng khoa, phó khoa)
Trong khoa lại bao gồm các phòng khác nhau, mỗi phòng bao gồm mã phòng, tên phòng, khoa quản lý Trong đó mã phòng được xác định!
PHÒNG(mã phòng,tên phòng, khoa quản lý) (3)
Mỗi bác sĩ sẽ có lịch trực được sắp xếp bởi ban lãnh đạo, trong đó bao gồm các thông tin quan trọng như mã lịch trực, mã số bác sĩ, mã phòng, tuần, thứ, ca làm việc và bác sĩ đổi ca Mã lịch trực được xác định rõ ràng để đảm bảo quản lý hiệu quả.
LICHTRUC (mã lịch trực, mã số bác sĩ, mã phòng, tuần thứ, ca, vắng, bác sĩ đổi ) (5)
Mỗi bác sĩ sẽ có một hình ảnh, thông tin về hình ảnh bao gồm mã bác sĩ, photo Trong đó cả mã bác sĩ được xác định
PHOTO (mã bác sĩ, photo) (6)
Chuẩn hóa các quan hệ
Các quan hệ (1), (2), (3), (4), (5), (6), (7) đều là chuẩn 3 không cần chuẩn hóa
Cơ sở dữ liệu của hệ thống gồm 8 bảng:
Bảng account: Chứa thông tin đăng ký sử dụng phần mềm của người sử dụng
Bảng bác sĩ: Lưu trữ thông tin về bác sĩ
Bảng khoa: Lưu thông tin khoa
Bảng phòng: Lưu thông tin phòng
Bảng lịch trực: Lưu thông tin về lịch trực
Bảng pho to: Lưu trữ ảnh của bác sĩ
BACSI bao gồm các thông tin quan trọng như mã số bác sĩ, mã khoa, họ tên, giới tính, ngày công tác, quê quán, ngày sinh, số chứng minh nhân dân, hộ khẩu, biên chế, số điện thoại, email và mật khẩu.
KHOA (mã khoa, tên khoa, trưởng khoa, phó khoa)
PHONG (mã phòng, tên phòng, khoa quản lý)
LICHTRUC (mã lịch trực, mã số bác sĩ, mã phòng, tuần thứ, ca, vắng, bác sĩ đổi )
PHOTO (mã bác sĩ, photo)
Chuyển sang thực thể E-R n 1 n n 1 msbs makhoa hoten phai ngayct quequan ngaysinh cmnd hokhau bienche dienthoai email matkhau maph tenphong khoaquanly
Thuộc makh tenkhoa truongkhoa phokhoa sid mabs maphg tuan makhoa hoten phai ngayct quequan msbs
Phân công ngaysinh cmnd hokhau bienche dienthoai email matkhau bsdoi maph tenphong khoaquanly
Của makhoa hoten phai ngayct ngaysinh cmnd hokhau bienche dienthoai email quequan msbs matkhau maphg tuan
1 n msbs makhoa hoten phai ngayct maph tenphong makh tenkhoa phokhoa truongkhoa mabs sid thu bsdoi ca vang
2.4.5 Biểu đồ dữ liệu logic
Hệ thống các ký hiệu : quequan ngaysinh cmnd hokhau bienche dienthoai email matkhau có khoaquanly
Thuộc makhoa tenkhoa truongkhoa phokhoa Thuộc sid mabs maphg vang ca thu tuan bsdoi
# msbs makhoa hoten phai ngayct quequan ngaysinh cmnd
# maph tenphong khoaquanly Đối tượng BACSI
STT Tên thuộc tính Kiểu dữ liệu
1 msbs Chuỗi Mã số bác sĩ
#sid mabs maphg tuan thu ca vang bsdoi
3 hoten Chuỗi Họ và Tên
5 ngayct Ngày Ngày công tác
8 cmnd Số Số chứng minh nhân dân
10 bienche Số Số năm biên chế
11 dienthoai Số Số điiện thoại
12 email Chuỗi Địa chỉ email
13 matkhau Số Mật khẩu Đối tượng KHOA
STT Tên thuộc tính Kiểu dữ liệu Diễn giải
4 phokhoa Chuỗi Phó khoa Đối tượng PHONG
STT Tên thuộc tính Kiểu dữ liệu Diễn giải
3 khoaquanly Chuỗi Khoa quản lý Đối tượng PHOTO
STT Tên thuộc tính Kiểu dữ liệu Diễn giải
1 msbacsi Chuỗi Mã số bác sĩ
2 photo image Hình ảnh bác sĩ Đối tượng REQUEST
STT Tên thuộc tính Kiểu dữ liệu Diễn giải
3 thu Số Thứ Đối tượng LICHTRUC
STT Tên thuộc tính Kiểu dữ liệu Diễn giải
1 sid Số Số thứ tự bác sĩ
2 mabs Chuỗi Mã số bác sĩ
8 bsdoi Chuỗi Bác sĩ đổi
Mô tả thông tin về nhân viên
3 hoten Chuỗi 50 Họ và tên bác sĩ
4 phai Bit 50 Giới tính bác sĩ
5 ngayct Ngày 50 Ngày công tác
8 cmnd Số 50 Số chứng minh nhân dân
2 tenkhoa Chuỗi 50 Tên khoa truongkhoa Chuỗi 50 Trưởng khoa phokhoa Chuỗi 50 Phó khoa Bảng dữ liệu PHONG
2 tenphong Chuỗi 50 Tên cấp trực khoaquanly Chuỗi 50
2 tenphong Chuỗi 50 Tên chức vụ khoaquanly Chuỗi 50
1 sid bigint 10 Khoá Khoá Mã lịch
Quy trình xếp lịch trực
• Tiếp nhân danh sách nhân sự
Tiếp nhận thông tin nhân viên cần bao gồm họ và tên, ngày sinh, giới tính, địa chỉ, số điện thoại, di động, khoa, chức danh và chức vụ, và tất cả thông tin này sẽ được ghi nhận theo biểu mẫu BM1.
• Tiếp nhận danh sách phiếu yêu cầu
Nhận thông tin từ phiếu yêu cầu xếp lịch của các khoa, bao gồm hai loại: phiếu yêu cầu theo ca và phiếu yêu cầu theo số lượng, với các thông tin được cung cấp theo biểu mẫu BM2.1 và BM2.2.
• Tiếp nhận thông tin ràng buộc nhân viên với cấp trực, chức danh và khoa
Nhân viên sẽ nhận thông tin về ca làm việc theo cấp trực, bao gồm ca ngày, ca đêm hoặc cả hai theo quy định BM3 Thông thường, nhân viên phải làm cả hai ca trong suốt thời gian xếp lịch, trừ một số trường hợp đặc biệt được miễn làm ca ngày hoặc ca đêm.
• Tiếp nhận thời gian xếp lịch
Thời gian xếp lịch bao gồm: Thời gian bắt đầu lịch trực và thời gian kết thúc lịch trực theo BM4
• Xếp lịch trực cho khoa
Việc xếp lịch dựa trên các phiếu yêu cầu trong khoảng thời gian định sẵn, tuy nhiên, chương trình chỉ cho phép xếp lịch theo ca kíp hoặc số lượng phiếu yêu cầu của khoa, không tối ưu theo năng lực của đội ngũ y bác sĩ Do đó, người sử dụng có thể linh động cập nhật lại lịch trực dựa trên lịch đã xếp sẵn.
• Cập nhật lịch trực Khi có sự thay đổi về nhân sự, về ca trực, người sử dụng có thể cập nhật và ghi nhận lại lịch trực mới
Phân tích chương trình xếp lịch trực
2.4.1 Biểu đồ ngữ cảnh của hệ thống
Xếp lịch trực bác sĩ
2.4.2 Biểu đồ phân rã chức năng y/c ttin bac sĩ
Bác sĩ Ban lãnh đạo
1.1.1 Thêm thông tin bac sĩ
1.1.4 Tìm kiếm thông tin bác sĩ
Sửa thông tin bác sĩ
1.1.3 Xoá thông tin bác sĩ
2.4.3 sơ đồ phân rã chức năng
Chương trình xếp lịch trực bệnh viện
Quản lý bác sĩ Quản lý lịch trực
Thêm thông tin bác sĩ
Sửa thông tin bác sĩ
Xoá thông tin bác sĩ
Tìm kiếm thông tin bác sĩ
Phân lịch trực Xoá lịch trực
Thống kê nhân sự theo khoa
Thống kê phòng theo khoa
Thống kê biểu đồ nhân sự
Thống kê ban lãnh đạo
Cập nhật thông tin khoa
Cập nhật thông tin phòng
Cập nhật tài khoản đăng nhập
Xác định các quan hệ:
Trong một bệnh viện có rất nhiều bác sĩ làm việc, mỗi bác sĩ có các thông tin:
BACSI bao gồm các thông tin quan trọng như mã số bác sĩ, mã khoa, họ tên, phái, ngày công tác, quê quán, ngày sinh, chứng minh nhân dân, hộ khẩu, biên chế, điện thoại, email và mật khẩu.
Bệnh viện có rất nhiều khoa, mỗi khoa bao gồm: mã khoa, tên khoa, trưởng khoa, phó khoa Trong đó mã khoa là được xác định!
KHOA (mã khoa, tên khoa, trưởng khoa, phó khoa)
Trong khoa lại bao gồm các phòng khác nhau, mỗi phòng bao gồm mã phòng, tên phòng, khoa quản lý Trong đó mã phòng được xác định!
PHÒNG(mã phòng,tên phòng, khoa quản lý) (3)
Mỗi bác sĩ sẽ có lịch trực được sắp xếp bởi ban lãnh đạo, bao gồm các thông tin quan trọng như mã lịch trực, mã số bác sĩ, mã phòng, tuần, thứ và ca trực Mã lịch trực được xác định rõ ràng để đảm bảo sự tổ chức và hiệu quả trong công tác y tế.
LICHTRUC (mã lịch trực, mã số bác sĩ, mã phòng, tuần thứ, ca, vắng, bác sĩ đổi ) (5)
Mỗi bác sĩ sẽ có một hình ảnh, thông tin về hình ảnh bao gồm mã bác sĩ, photo Trong đó cả mã bác sĩ được xác định
PHOTO (mã bác sĩ, photo) (6)
Chuẩn hóa các quan hệ
Các quan hệ (1), (2), (3), (4), (5), (6), (7) đều là chuẩn 3 không cần chuẩn hóa
Cơ sở dữ liệu của hệ thống gồm 8 bảng:
Bảng account: Chứa thông tin đăng ký sử dụng phần mềm của người sử dụng
Bảng bác sĩ: Lưu trữ thông tin về bác sĩ
Bảng khoa: Lưu thông tin khoa
Bảng phòng: Lưu thông tin phòng
Bảng lịch trực: Lưu thông tin về lịch trực
Bảng pho to: Lưu trữ ảnh của bác sĩ
BACSI bao gồm các thông tin quan trọng như mã số bác sĩ, mã khoa, họ tên, giới tính, ngày công tác, quê quán, ngày sinh, chứng minh nhân dân, hộ khẩu, biên chế, số điện thoại, email và mật khẩu Những dữ liệu này giúp quản lý và xác thực thông tin của bác sĩ một cách hiệu quả.
KHOA (mã khoa, tên khoa, trưởng khoa, phó khoa)
PHONG (mã phòng, tên phòng, khoa quản lý)
LICHTRUC (mã lịch trực, mã số bác sĩ, mã phòng, tuần thứ, ca, vắng, bác sĩ đổi )
PHOTO (mã bác sĩ, photo)
Chuyển sang thực thể E-R n 1 n n 1 msbs makhoa hoten phai ngayct quequan ngaysinh cmnd hokhau bienche dienthoai email matkhau maph tenphong khoaquanly
Thuộc makh tenkhoa truongkhoa phokhoa sid mabs maphg tuan makhoa hoten phai ngayct quequan msbs
Phân công ngaysinh cmnd hokhau bienche dienthoai email matkhau bsdoi maph tenphong khoaquanly
Của makhoa hoten phai ngayct ngaysinh cmnd hokhau bienche dienthoai email quequan msbs matkhau maphg tuan
1 n msbs makhoa hoten phai ngayct maph tenphong makh tenkhoa phokhoa truongkhoa mabs sid thu bsdoi ca vang
2.4.5 Biểu đồ dữ liệu logic
Hệ thống các ký hiệu : quequan ngaysinh cmnd hokhau bienche dienthoai email matkhau có khoaquanly
Thuộc makhoa tenkhoa truongkhoa phokhoa Thuộc sid mabs maphg vang ca thu tuan bsdoi
# msbs makhoa hoten phai ngayct quequan ngaysinh cmnd
# maph tenphong khoaquanly Đối tượng BACSI
STT Tên thuộc tính Kiểu dữ liệu
1 msbs Chuỗi Mã số bác sĩ
#sid mabs maphg tuan thu ca vang bsdoi
3 hoten Chuỗi Họ và Tên
5 ngayct Ngày Ngày công tác
8 cmnd Số Số chứng minh nhân dân
10 bienche Số Số năm biên chế
11 dienthoai Số Số điiện thoại
12 email Chuỗi Địa chỉ email
13 matkhau Số Mật khẩu Đối tượng KHOA
STT Tên thuộc tính Kiểu dữ liệu Diễn giải
4 phokhoa Chuỗi Phó khoa Đối tượng PHONG
STT Tên thuộc tính Kiểu dữ liệu Diễn giải
3 khoaquanly Chuỗi Khoa quản lý Đối tượng PHOTO
STT Tên thuộc tính Kiểu dữ liệu Diễn giải
1 msbacsi Chuỗi Mã số bác sĩ
2 photo image Hình ảnh bác sĩ Đối tượng REQUEST
STT Tên thuộc tính Kiểu dữ liệu Diễn giải
3 thu Số Thứ Đối tượng LICHTRUC
STT Tên thuộc tính Kiểu dữ liệu Diễn giải
1 sid Số Số thứ tự bác sĩ
2 mabs Chuỗi Mã số bác sĩ
8 bsdoi Chuỗi Bác sĩ đổi
Mô tả thông tin về nhân viên
3 hoten Chuỗi 50 Họ và tên bác sĩ
4 phai Bit 50 Giới tính bác sĩ
5 ngayct Ngày 50 Ngày công tác
8 cmnd Số 50 Số chứng minh nhân dân
2 tenkhoa Chuỗi 50 Tên khoa truongkhoa Chuỗi 50 Trưởng khoa phokhoa Chuỗi 50 Phó khoa Bảng dữ liệu PHONG
2 tenphong Chuỗi 50 Tên cấp trực khoaquanly Chuỗi 50
2 tenphong Chuỗi 50 Tên chức vụ khoaquanly Chuỗi 50
1 sid bigint 10 Khoá Khoá Mã lịch nội chính trực khoa
Khoá Tên lịch trực khoa
4 tuan Số Mã ca trực
6 ca Số Tình trạng nhân viên đi hay trực hay không? vang bit bsdoi Chuỗi 10
Chương trình xếp lịch trực
Cài đặt chương trình
Chỉ đòi hỏi máy ở mức độ khá , máy sử dụng hệ điều hành Windows
2000 trở lên là có thể sử dụng được
- Bạn Click đúp vào file Setup.exe để tiến hành cài đặt
- Chọn Change or Remove Visual Studio
- Cửa sổ mới hiện ra, bạn nhấn nút next để chương trình tự động cài dặt
- Sau khi cài đặt xong, bạn mở chương trình, vào File\New Project
- Bạn gõ tên trong khung Name, chon Window Application đê bắt đầu dự án
Danh sách các thành phần của màn hình đăng nhập
STT Tên Loại Nội Dung
1 Tài khoản TextBox Tên người đăng nhập hệ thống
2 Mật khẩu TextBox Mật khẩu để vào hệ thống
3 Đăng nhập Button Đồng ý đăng nhập
STT Tên Loại Nội Dung
1 Thông tin tài khoản Icon Khi click vào nhãn này hệ thống sẽ chuyển đến màn hình đăng nhập
2 Quản lý bác sĩ Icon Khi click vào nhãn này hệ thống sẽ chuyển đến màn hình quản lý bác sĩ
3 Quản lý lịch trực Icon Khi click vào nhãn này hệ thống sẽ chuyển đến màn hình quản lý lịch trực
4 Quản trị hệ thống Icon Khi click vào nhãn này hệ thống sẽ chuyển đến màn hình quản trị hệ thống
Màn hình quản lý bác sĩ
Màn hình tìm kiếm bác sĩ
STT Tên Loại Nội dung
1 Mã bác sĩ TextBox Thông tin mã bác sĩ
2 Họ TextBox Thông tin Họ nhân viên
3 Tên lót TextBox Thông tin Tên lót nhân viên
4 Tên TextBox Thông tin Tên nhân viên
5 Giới tính ComboBox Thông tin giới tính nhân viên
6 Ngày sinh DateTimePicker Thông tin Ngày sinh
7 Ngày công tác DateTimePicker Thông tin ngày công tác
8 Biên chế RadioButton Thông tin số năm biên chế
9 Quê quán TextBox Thông tin quê quán
10 Hộ khẩu TextBox Thông tin hộ khẩu
Màn hình tìm kiếm bác sĩ
Màn hình thông tin bác sĩ
Màn hình điều hành bác sĩ
Màn hình báo cáo nhân sự
Màn hình quản lý lịch trực
Màn hình tra cứu lịch trực
Màn hình thao tác lịch trực
Màn hình phân lịch trực
Màn hình mở lại lịch trực
Màn hình báo cáo lịch trực
Màn hình xoá lịch trực
Màn hình quản trị hệ thống
Màn hình quản lý tài khoản
Màn hình quản lý khoa
Màn hình quản lý p hòng
Màn hình cấu hình lịch trực
Giao diện chương trình
Chương trình xếp lịch trực bác sĩ giúp người dùng cập nhật lịch trực nhanh chóng khi có thay đổi nhân sự, cho phép bác sĩ dễ dàng truy cập thông tin lịch trực của mình Điều này không chỉ nâng cao hiệu quả quản lý và sắp xếp mà còn đảm bảo an toàn và tiết kiệm thời gian làm việc, thay thế phương pháp lưu trữ thủ công bằng tay và sổ sách truyền thống.
Chương trình này không yêu cầu cấu hình máy tính cao, vì vậy ngay cả những máy tính thông thường cũng có thể sử dụng được, điều này rất phù hợp với tình hình hiện tại của các bệnh viện.
Bài toán xếp lịch trực bác sĩ không chỉ giúp tối ưu hóa quy trình mà còn mở ra hướng phát triển thuật toán xếp lịch nhanh chóng và hiệu quả hơn Việc phát triển thêm một phân hệ web sẽ cho phép người dùng dễ dàng truy cập hệ thống từ xa, nâng cao trải nghiệm và sự tiện lợi trong việc đặt lịch khám.