Đặt lịch 5 bước: chuyên khoa → bác sĩ → slot → thông tin bệnh nhân → xác nhận. Test time-based slot, conditional validation cho trẻ em, slot lock.
Luồng đặt lịch điển hình của 1 hệ thống y tế: chọn chuyên khoa → chọn bác sĩ → chọn slot → khai báo thông tin bệnh nhân → xác nhận. Bài này tập trung vào time-based logic, conditional validation, và concurrency.
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────────┐
│chuyên │ → │ bác sĩ │ → │ slot │ → │ thông │ → │ xác nhận │
│khoa │ │ │ │ │ │ tin BN │ │ │
│(Screen 1)│ │(Screen 2)│ │(Screen 3)│ │(Screen 4)│ │ (Screen 5) │
└──────────┘ └──────────┘ └──────────┘ └──────────┘ └────────────┘
Chọn 1 trong 4 chuyên khoa: Nội tổng quát, Ngoại khoa, Sản phụ khoa, Nhi khoa.
available — Sẵn sàng khám.busy — Đang khám bệnh nhân khác (có thể đặt cho slot sau).on_leave — Đang nghỉ phép (KHÔNG cho phép đặt).on_leave phải bị ẩn hoặc disable, không cho click chọn.08:00, 09:00, 10:00, 14:00, 15:00, 16:00.| Field | Yêu cầu |
|---|---|
| Họ tên | Bắt buộc, 2-100 ký tự. |
| Năm sinh | Bắt buộc, 1900 ≤ năm ≤ năm hiện tại. Tự tính tuổi. |
| Số điện thoại | Bắt buộc. Đúng 10 chữ số bắt đầu bằng 0 (regex /^0\d{9}$/). Không cho phép chữ, ký tự đặc biệt, dấu cách. |
| Triệu chứng | Bắt buộc, ≥ 10 ký tự. |
| Người giám hộ — Họ tên | Bắt buộc nếu bệnh nhân < 18 tuổi, ngược lại là tùy chọn. |
| Người giám hộ — SĐT | Bắt buộc nếu bệnh nhân < 18 tuổi. Cùng format SĐT bệnh nhân. |
BK20260427-001).on_leave phải bị ẩn/disable."abc1234567", "012-345-6789", "+84901234567", "0", 9 số, 11 số.| STT | Mô tả | Bước tái hiện | Thực tế | Mong đợi | Mức độ |
|---|---|---|---|---|---|
| 1 | (học viên điền) | ||||
Form thực hành chỉ dành cho học viên đã đăng nhập.
Tab này chứa danh sách các lỗi đã cài cắm trong form. Vui lòng nhập mã giảng viên để mở khóa. Mã sẽ ghi nhớ trong phiên làm việc — chỉ cần nhập 1 lần cho cả 3 bài.