Ước lượng thời gian khám

Một phần của tài liệu Thiết kế hệ thống lấy số khám bệnh từ xa my hospital (Trang 64 - 70)

6. Điểm: (Bằng chữ: )

3.3.1. Ước lượng thời gian khám

Thời gian ước lượng dựa trên các dữ liệu cần thiết và các sự kiện đặc biệt. Các thông số:

▪ flag: dữ liệu báo hiệu cần cập nhật mốc thời gian. ▪ w_hour: mốc thời gian (giờ)

▪ w_minute: mốc thời gian (phút) ▪ w_checknum: số thứ tự mốc

(Nếu khoảng thời gian khám cho bệnh nhân A không nằm trong mốc thời gian quy định – [4;8] phút thì hệ thống phải cập nhật lại thời gian khám dự tính cho các bệnh

53 nhân sau dựa trên mốc thời gian mới - thời gian ngay sau khi bệnh nhân A ra khỏi phòng khám và khoảng cách của số khám của một bệnh nhân với bệnh nhân A).

▪ n: Số lượng bệnh nhân đã khám.

▪ denta: Khoảng thời gian khám cho bệnh nhân.

▪ w_wait: Khoảng thời gian khám trung bình giành cho 1 bệnh nhân. ▪ estimate: Khoảng thời gian đợi cho tới lúc bệnh nhân được khám. ▪ check_time: Thời gian khám dự tính của bệnh nhân.

Việc ước lượng thời gian sẽ có ba trường hợp xảy ra:

Trường hợp bình

thường

Tính toán và ước lượng thời gian dựa trên mốc thời gian cũ (w_hour, w_minute).

TH1

Tính w_wait, estimate, check_time.

w_wait = (w_wait∗𝑛)+𝑑𝑒𝑛𝑡𝑎

𝑛+1 , n = n+1

estimate = w_wait *(số thứ tự - w_checknum)

check_time { ℎ𝑜𝑢𝑟 = 𝑤_ℎ𝑜𝑢𝑟 + ℎ𝑜𝑢𝑟/60

𝑚𝑖𝑛𝑢𝑡𝑒 = 𝑤_𝑚𝑖𝑛𝑢𝑡𝑒 + 𝑚𝑖𝑛𝑢𝑡𝑒%60

Trường hợp thời gian khám vượt quá thời gian quy định.

Xảy ra khi thời gian khám cho 1 bệnh nhân không nằm trong khoảng [ 4:8 ] phút. Hoặc bác sĩ

check in phòng khám.

Cập nhật lại mốc thời gian mới là thời gian hiện tại và ước lượng lại. TH2

Cập nhật lại w_hour và w_minute là thời gian hiện tại và w_checknum.

Tính estimate dựa trên w_wait trước đó và khoảng cách giữa số khám của bệnh nhân với số khám hiện tại đang được khám.

w_hour = giờ của thời gian hiện tại; w_minute = phút của thời gian hiện tại; w_checknum = số thứ tự vừa khám xong + 1.

54

Trường hợp thời gian ước lượng khám vượt quá giờ nghỉ trưa (11h30) và giờ tan ca (17h30).

Nếu quá 11h30: tính toán khoảng thời gian cách biệt và cộng khoảng thời gian ấy với 13h. Nếu quá 17h30: Hệ thống không nhận đặt số. TH3

Tính khoảng thời gian quá giờ, cộng khoảng thời gian đó với 13h.

➔ Tính check_time

{ ℎ𝑜𝑢𝑟 = 13 + 𝑡ℎờ𝑖 𝑔𝑖𝑎𝑛 𝑞𝑢á 𝑔𝑖ờ (𝑔𝑖ờ)

𝑚𝑖𝑛𝑢𝑡𝑒 = 0 + 𝑡ℎờ𝑖 𝑔𝑖𝑎𝑛 𝑞𝑢á 𝑔𝑖ờ (𝑝ℎú𝑡)

Ví dụ: bệnh nhân A có số khám thứ 26 tại phòng số 1 có các thông số:

• w_wait hiện tại là 6.5 • n = 9

• mốc thời gian w_hour = 6 và w_minute = 30 • w_checknum = 0;

TH1:

Giả sử thời gian khám cho bệnh nhân mới nhất là 7.2 phút

w_wait = 6.57;

estimate = 171 phút → 2 tiếng 51 phút

55

TH2:

Giả sử thời gian khám cho bệnh nhân số 12 là 10 phút ( vượt quá thời gian quy định) và w_wait tại thời điểm đó là 6.67 phút nên cần phải cập nhật lại

w_hour, w_minute và w_checknum.

Thời gian ra khỏi phòng khám của số 12 là 7h59p

w_checknum = 13;

w_hour = 7;

w_minute = 59;

➔Tính lại estimate cho bệnh nhân A.

estimate = 6.67*(26 - 13) = 87 phút → 1 tiếng 27 phút

check_time = 8 giờ 86 phút → 9 giờ 26 phút

TH3:

Giả sử bệnh nhân B có số khám là 59.

Giữ lại các thông số như ở trường hợp 2 để tính toán thử.

estimate = 6.67*(59-13)= 307 phút → 5 tiếng 7 phút.

check_time = (7+5) giờ (59+7) phút = 12 giờ 66 phút

 Vượt quá 11 giờ 30 phút ➔ Tính check_time

Thời gian quá giờ = (12 - 11) tiếng (66 - 30) phút = 1 tiếng 36 phút. check_time = (13 + 1) giờ (0 + 36) phút → 14 giờ 36 phút

56 Việc ước lượng thời gian khám sẽ được thực hiện thông qua hai đối tượng là Bác sĩ và Bệnh nhân, đồng thời với sự hỗ trợ của Realtime Database giúp việc lấy dữ liệu, cập nhật dữ liệu và các thao tác dựa trên sự thay đổi của dữ liệu dễ dàng hơn.

Ứng dụng sử dụng hai kiểu get dữ liệu của Firebase : SingleValue và EvenValue.

SingleValue: dữ liệu sẽ chỉ được get một lần khi gọi.

EvenValue: dữ liệu được get khi gọi ban đầu, sau đó, nếu có sự thay đổi dữ liệu ở RealTime Database, dữ liệu sẽ được get lại.

Lưu đồ thể hiện rằng, ở ứng dụng của bác sĩ, dữ liệu w_wait được get theo kiểu

EvenValue, còn ở phía bệnh nhân, flag được get theo kiểu EvenValue. Các dữ liệu còn lại được get theo kiểu SingleValue.

***Lưu ý: Lưu đồ dưới đây chỉ mô tả quá trình thao tác giữa bác sĩ, bệnh nhân và Database trong quá trình ước lượng thời gian khám nên phạm vi dữ liệu thể hiện chỉ là các dữ liệu cần thiết nhất cho việc ước lượng chứ không phải toàn bộ dữ liệu có ở Database.

57

Hình 3.37 Lưu đồ ước lượng thời gian khám của bệnh nhân

Thực tế việc ước lượng thời gian khám được thực hiện song song giữa hai đối tượng là bệnh nhân và bác sĩ cũng với việc truy xuất Database, chi tiết được thể hiện qua lưu đồ sau:

58

Hình 3.38 Lưu đồ ước lượng thời gian khám của bệnh nhân được thực hiện bởi bác sĩ và bệnh nhân

Một phần của tài liệu Thiết kế hệ thống lấy số khám bệnh từ xa my hospital (Trang 64 - 70)

Tải bản đầy đủ (PDF)

(92 trang)