



















Preview text:
  lOMoAR cPSD| 59078336
TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI  KHOA CÔNG NGHỆ THÔNG TIN  ĐỒ ÁN 
PHÁT TRIỂN CHO ỨNG DỤNG DI  ĐỘNG 
ỨNG DỤNG ĐẶT LỊCH KHÁM BỆNH  Nhóm 2: Đậu Huy Trung   Nguyễn Khánh An   Nguyễn Hoàng Minh (67PM1)  Lớp: 67PM2 
Giáo viên hướng dẫn: Nguyễn Thanh Bản  HÀ NỘI – 5/2025  1          lOMoAR cPSD| 59078336 LỜI CẢM ƠN 
Lời đầu tiên, chúng em xin gửi lời cảm ơn chân thành và sâu sắc nhất đến thầy Nguyễn 
Thanh Bản – người đã luôn tận tình hướng dẫn, hỗ trợ chúng em trong suốt quá trình học 
tập và tìm hiểu môn Phát triển cho ứng dụng di động. 
Trong suốt thời gian thực hiện bài tập lớn với đề tài: "Ứng dụng đặt lịch khám bệnh", 
chúng em đã nhận được rất nhiều sự quan tâm, giúp đỡ và những chỉ dẫn quý báu từ thầy. 
Thầy đã giúp chúng em tích lũy thêm nhiều kiến thức bổ ích để có thể hoàn thành tốt bài  tập lớn này. 
Chúng em hiểu rằng trong quá trình thực hiện bài làm, chắc chắn sẽ không tránh khỏi 
những thiếu sót và sai sót. Điều đó là điều hoàn toàn tự nhiên trong quá trình học tập và 
phát triển. Vì vậy, chúng em kính mong nhận được những ý kiến đóng góp từ thầy để bài 
tập lớn của chúng em ngày càng hoàn thiện hơn. Những nhận xét quý báu ấy sẽ giúp 
chúng em cải thiện kỹ năng, cũng như nâng cao chất lượng sản phẩm cuối cùng. 
Một lần nữa, chúng em xin chân thành cảm ơn thầy Nguyễn Thanh Bản vì tất cả những gì 
thầy đã dành cho chúng em. Chúng em rất trân trọng sự hỗ trợ và tận tâm của thầy, và hy 
vọng sẽ tiếp tục nhận được sự đồng hành, định hướng từ thầy trong những chặng đường  học tập tiếp theo. 
Chúng em xin chân thành cảm ơn!  MỤC LỤC 
Danh sách các sinh viên thực hiện..................................................................................1 
Phần I. Tổng quan đề tài.................................................................................................1 
1.1. Lý do chọn đề tài.....................................................................................................1 
1.2. Yêu cầu nghiệp vụ...................................................................................................2 
1.3. Các đối tượng sử dụng hệ thống..............................................................................3 
1.4. Kiến trúc ứng dụng và các công cụ/công nghệ sử dụng...........................................3 
II. Phân tích thiết kế ứng dụng.......................................................................................5 
2.1. Phân tích yêu cầu về mặt chức năng........................................................................5 
2.2. Thiết kế chức năng (Wireframe, Mockup, Prototype).............................................6 
2.3. Thiết kế cơ sở dữ liệu..............................................................................................7 
2.3.1. Cơ sở dữ liệu Local và Server..........................................................................7      lOMoAR cPSD| 59078336
2.3.2. Cấu trúc bảng...................................................................................................7 
Bảng Users - Thông tin người dùng...........................................................................7 
Bảng Doctors - Thông tin bác sĩ.................................................................................8 
Bảng Schedules - Lịch làm việc của bác sĩ.................................................................8 
Bảng Bookings - Lịch hẹn khám bệnh.......................................................................9 
Bảng Clinics - Cơ sở khám bệnh..............................................................................10 
Bảng Specialties - Chuyên khoa...............................................................................11 
Bảng History - Lịch sử khám bệnh...........................................................................12 
Bảng OTP – Lưu trữ thông tin mã OTP...................................................................12 
Bảng Allcodes..........................................................................................................13 
Bảng Posts – Bài Viết...............................................................................................13 
2.4. Sơ đồ ERD........................................................................................................15 
III. Kết quả sản phẩm....................................................................................................15 
IV. Kết luận và kiến nghị...............................................................................................15 
Danh sách các sinh viên thực hiện  Họ và tên  MSSV  Lớp  % đóng  góp  Nguyễn Khánh An    4005867  67PM2  Đậu Huy Trung    (Nhóm trưởng)  0073467  67PM2  Nguyễn Hoàng Minh    0035467  67PM1 
Phần I. Tổng quan đề tài 
1.1. Lý do chọn đề tài 
Ứng dụng MediBook được phát triển nhằm đáp ứng nhu cầu số hóa trong lĩnh vực chăm 
sóc sức khỏe, giải quyết các bất cập của quy trình đặt lịch khám truyền thống như xếp      lOMoAR cPSD| 59078336
hàng dài, khó khăn trong việc chọn bác sĩ hoặc thời gian phù hợp, và thiếu thông tin minh 
bạch. Trong bối cảnh công nghệ số phát triển mạnh mẽ, MediBook hướng tới việc cung 
cấp một nền tảng trực tuyến giúp bệnh nhân dễ dàng tìm kiếm cơ sở y tế, lựa chọn bác sĩ, 
chuyên khoa, và thời gian khám chỉ với vài thao tác đơn giản, đồng thời mang lại sự 
minh bạch, thuận tiện và tin cậy.  • 
Nhu cầu thực tiễn: Đáp ứng xu hướng sử dụng các nền tảng trực tuyến để đặt lịch 
khám nhanh chóng và tiện lợi, đặc biệt trong bối cảnh người dân ngày càng yêu 
cầu dịch vụ y tế hiện đại.  • 
Cải thiện trải nghiệm người dùng: Giúp bệnh nhân chủ động tìm kiếm bác sĩ, 
chuyên khoa, và phòng khám, giảm thiểu thời gian chờ đợi và nâng cao chất lượng  khám chữa bệnh.  • 
Xây dựng hệ sinh thái y tế thông minh: Tạo cầu nối hiệu quả giữa bệnh nhân và 
cơ sở y tế, góp phần nâng cao chất lượng cuộc sống cộng đồng.  1      lOMoAR cPSD| 59078336  
Ứng dụng công nghệ hiện đại: Sử dụng các công nghệ như MongoDB, Node.js, 
và RESTful API để xây dựng một hệ thống linh hoạt, dễ mở rộng, và thân thiện  với người dùng. 
1.2. Yêu cầu nghiệp vụ 
Hệ thống MediBook cần cung cấp các chức năng chính sau: 
1. Quản lý người dùng: Hỗ trợ đăng ký, đăng nhập, xác thực OTP, phân quyền theo 
vai trò (bệnh nhân, bác sĩ, quản trị viên), và quản lý thông tin cá nhân như họ tên, 
địa chỉ, số điện thoại. 
2. Quản lý bác sĩ: Lưu trữ thông tin bác sĩ, chuyên khoa, phòng khám liên kết, và 
quản lý lịch trình làm việc của bác sĩ. 
3. Quản lý lịch hẹn: Cho phép bệnh nhân đặt lịch khám, chọn bác sĩ, thời gian, và 
cung cấp thông tin cá nhân; quản lý trạng thái lịch hẹn và lịch sử khám. 
4. Quản lý phòng khám và chuyên khoa: Cung cấp thông tin chi tiết về phòng 
khám (địa chỉ, mô tả, hướng dẫn di chuyển) và chuyên khoa, hiển thị qua URL  thân thiện. 
5. Quản lý bài viết: Bác sĩ hoặc quản trị viên tạo, chỉnh sửa, xóa bài viết y tế; hỗ trợ 
hiển thị bài viết nổi bật. 
6. Quản lý cài đặt chung: Cập nhật thông tin website như tên, logo, thông tin liên 
hệ, và liên kết mạng xã hội. 
1.3. Các đối tượng sử dụng hệ thống 
Các đối tượng sử dụng hệ thống  • 
Bệnh nhân: Đặt lịch khám, xem thông tin bác sĩ, phòng khám, chuyên khoa, và  đọc bài viết y tế.  • 
Bác sĩ: Quản lý lịch trình, xem lịch sử khám bệnh của bệnh nhân.  • 
Quản trị viên: Quản lý người dùng, bác sĩ, phòng khám, chuyên khoa, bài viết, và  cài đặt hệ thống.  • 
Phòng khám: Cung cấp thông tin chi tiết và liên kết với bác sĩ.      lOMoAR cPSD| 59078336
1.4. Kiến trúc ứng dụng và các công cụ/công nghệ sử dụng 
Kiến trúc ứng dụng   Client: 
o Giao diện web (React.js hoặc Vue.js) hoặc ứng dụng di động (React Native  hoặc Flutter). 
o Hỗ trợ hiển thị thông tin bác sĩ, phòng khám, bài viết; đặt lịch khám; và 
quản lý hồ sơ người dùng.  •  Server: 
o Backend sử dụng Node.js với Express.js để xử lý logic nghiệp vụ. o Cơ sở 
dữ liệu MongoDB (NoSQL) để lưu trữ dữ liệu linh hoạt. 
o Xác thực người dùng bằng JWT (JSON Web Token) và OTP gửi qua email  hoặc SMS.  • 
API: o RESTful API để giao tiếp giữa client và server.  o Các endpoint ví dụ: 
 POST /api/users/register: Đăng ký người dùng. 
 POST /api/bookings: Tạo lịch hẹn. 
 GET /api/doctors: Lấy danh sách bác sĩ. 
 PUT /api/settings-general: Cập nhật cài đặt website.  • 
Deployment: o Server triển khai trên AWS, Heroku, hoặc DigitalOcean. 
o Database sử dụng MongoDB Atlas (cloud) hoặc MongoDB local cho phát  triển. 
Công cụ/Công nghệ sử dụng  • 
Backend: Node.js, Express.js, Mongoose.  •  Database: MongoDB.  • 
Frontend: React.js, Vue.js, hoặc framework tương tự. 
Plugin: mongoose-slug-updater để tạo URL thân thiện (slug).  • 
Xác thực: JWT, OTP (gửi qua email hoặc SMS).  • 
Công cụ thiết kế: Figma cho wireframe/mockup, Draw.io cho sơ đồ ERD.      lOMoAR cPSD| 59078336   • 
Quản lý mã nguồn: Git, GitHub.  • 
Triển khai: Docker, CI/CD với GitHub Actions. 
II. Phân tích thiết kế ứng dụng 
2.1. Phân tích yêu cầu về mặt chức năng 
Hệ thống MediBook được thiết kế với các chức năng chính như sau: 
1. Quản lý người dùng: 
o Đăng ký và đăng nhập thông qua email, mật khẩu, và xác thực OTP (dữ 
liệu lưu trong bảng otps). 
o Phân quyền theo vai trò (role_id): R1 (quản trị viên), R2 (bác sĩ), R3 (bệnh  nhân). 
o Cập nhật thông tin cá nhân như họ tên, địa chỉ, số điện thoại, avatar (bảng  users). 
2. Quản lý bác sĩ: 
o Liên kết bác sĩ với người dùng (userId), chuyên khoa (specialties), và 
phòng khám (clinics) (bảng doctors). 
o Quản lý lịch trình (schedules) và lịch hẹn (bookings) của bác sĩ. 
3. Quản lý lịch hẹn: 
o Bệnh nhân đặt lịch khám với bác sĩ, chọn thời gian từ lịch trình (schedules), 
và cung cấp thông tin cá nhân như email, họ tên, lý do khám (bảng  bookings). 
o Quản lý trạng thái lịch hẹn (statusId) và loại thời gian (timeType) từ bảng  allcodes. 
o Lưu trữ lịch sử khám bệnh với chẩn đoán và file đính kèm (bảng histories). 
4. Quản lý phòng khám và chuyên khoa: 
o Quản lý thông tin phòng khám (địa chỉ, mô tả, hình ảnh) và chuyên khoa 
(tên, mô tả) với URL thân thiện (slug) (bảng clinics, specialties).      lOMoAR cPSD| 59078336
o Hỗ trợ hiển thị thông tin chi tiết cho bệnh nhân. 
5. Quản lý bài viết: 
o Bác sĩ hoặc quản trị viên tạo, chỉnh sửa, xóa bài viết y tế; hỗ trợ đánh dấu 
bài viết nổi bật (featured) (bảng posts). 
6. Quản lý cài đặt chung: 
o Cập nhật thông tin website như tên, logo, thông tin liên hệ, và liên kết 
mạng xã hội (bảng settings-general). 
2.2. Thiết kế chức năng (Wireframe, Prototype)  2.2.1. Wireframe:   
Vai trò của Wireframe  • 
Xây dựng khung xương cho giao diện người dùng.  • 
Xác định vị trí, bố cục của các thành phần trên màn hình. 
Mô tả luồng người dùng cơ bản từ màn này sang màn khác.  • 
Giao tiếp giữa nhóm thiết kế – lập trình – giảng viên.      lOMoAR cPSD| 59078336  
Các màn hình và chức năng  Màn hình 
Nội dung chức năng  Trang chủ 
Hiển thị banner, nút tìm kiếm bác sĩ, truy cập chuyên khoa, bài  viết  Chuyên khoa 
Danh sách các chuyên khoa gồm tên và mô tả  Bác sĩ 
Danh sách bác sĩ kèm thông tin cơ bản  Chi tiết bác sĩ 
Thông tin chi tiết bác sĩ: họ tên, chuyên khoa, lịch làm việc  Đặt lịch 
Chọn ngày, giờ, nhập thông tin người khám, xác nhận đặt lịch 
Đăng nhập / OTP Nhập email, mật khẩu, xác thực mã OTP  Thông tin cá 
Cập nhật tên, số điện thoại, địa chỉ, xem lịch sử khám  nhân 
Luồng người dùng chính (từ wireframe)  1. Truy cập trang chủ 
2. Tìm kiếm hoặc chọn chuyên khoa  3. Chọn bác sĩ  4. Xem chi tiết  5. Đặt lịch  6. Nhập thông tin  7. Xác nhận  2.2.2. Prototype:      lOMoAR cPSD| 59078336  
Vai trò của Prototype  • 
Mô phỏng giao diện thực tế của sản phẩm.  • 
Cho phép tương tác thử như click chuyển màn, nhập thông tin.  • 
Hỗ trợ đánh giá trải nghiệm người dùng và điều hướng luồng.  • 
Là tài liệu trình bày cuối cùng với giảng viên hoặc nhà đầu tư. 
Các màn hình và chức năng  Màn hình 
Nội dung chức năng  Trang chủ 
Hiển thị banner, tìm kiếm, truy cập nhanh các mục bác sĩ, cơ  sở, bài viết  Đăng nhập 
Nhập thông tin và xác thực tài khoản bằng OTP  Đăng ký 
Tạo tài khoản mới với các trường cơ bản  Hồ sơ cá nhân 
Cập nhật tên, năm sinh, giới tính, địa chỉ, số điện thoại  Danh sách chuyên 
Hiển thị chuyên khoa và cơ sở khám theo từng thẻ  khoa  Chi tiết bác sĩ 
Giới thiệu bác sĩ, chuyên môn, lịch làm việc      lOMoAR cPSD| 59078336     Đặt lịch khám 
Chọn thời gian, lý do khám, nhập thông tin bệnh nhân  Danh sách lịch hẹn 
Quản lý các lịch hẹn sắp tới hoặc đã qua  Bài viết 
Danh sách và chi tiết các bài viết sức khỏe 
Luồng người dùng chính (từ prototype) 
Luồng 1: Đăng nhập và đặt lịch  1. Mở ứng dụng 
2. Đăng nhập → xác thực OTP 
3. Tìm bác sĩ theo chuyên khoa  4. Xem thông tin bác sĩ 
5. Đặt lịch → chọn ngày giờ 
6. Nhập thông tin → xác nhận 
Luồng 2: Quản lý hồ sơ cá nhân  1. Đăng nhập 
2. Truy cập phần cá nhân  3. Cập nhật thông tin 
4. Xem lịch sử khám, quản lý lịch hẹn 
Luồng 3: Đọc bài viết 
1. Từ trang chủ → mục bài viết  2. Xem danh sách  3. Xem chi tiết bài viết 
2.3. Thiết kế cơ sở dữ liệu 
2.3.1. Cơ sở dữ liệu Local và Server  • 
Local: MongoDB cục bộ để phát triển và kiểm thử.  • 
Server: MongoDB Atlas cho triển khai sản xuất.      lOMoAR cPSD| 59078336 • 
Cấu hình: Database medibook với các collections: users, doctors, schedules, 
bookings, clinics, specialties, histories, otps, allcodes, posts, settings - general. 
2.3.2. Cấu trúc bảng 
Bảng Users - Thông tin người dùng  Tên cột  Kiểu dữ  Mô tả  liệu  _id  ObjectId 
ID duy nhất của người dùng  email  String 
Email của người dùng (duy nhất)  password  String 
Mật khẩu của người dùng  fullname  String 
Họ và tên của người dùng  address  String 
Địa chỉ của người dùng  gender  String 
Giới tính của người dùng  birthyear  Number 
Năm sinh của người dùng  role_id  String 
Vai trò người dùng (ví dụ: R1 - Admin, R2 - Bác  sĩ, R3 - Bệnh nhân)  phone  String 
Số điện thoại của người dùng  avatar  String 
URL hình đại diện của người dùng  slug  String 
Slug duy nhất dựa trên fullname  deleted  Boolean 
Trạng thái xóa (mặc định: false)  deletedBy.account_id String 
ID tài khoản người đã thực hiện thao tác xóa  deletedBy.deletedAt Date 
Thời gian tài khoản bị xóa        createdAt  Date 
Thời gian tạo tài khoản  updatedAt  Date 
Thời gian cập nhật tài khoản      lOMoAR cPSD| 59078336
Bảng Doctors - Thông tin bác sĩ  Tên cột  Kiểu dữ liệu  Mô tả  _id 
ObjectId (chuỗi 24 ký tự)  ID duy nhất của bác sĩ  userId  String (ObjectId) 
Người dùng liên kết (ID từ bảng users)  specialties  JSON / String 
Danh sách chuyên khoa (ID từ bảng specialties)  clinics  String (ObjectId) 
Phòng khám liên kết (ID từ bảng clinics)  description String (TEXT)  Mô tả về bác sĩ 
Bảng Schedules - Lịch làm việc của bác sĩ  Tên cột  Kiểu dữ liệu  Mô tả  _id 
ObjectId (chuỗi 24 ký ID duy nhất của lịch trình  tự)  doctorId  String (ObjectId) 
Bác sĩ liên kết (ID từ bảng doctors)  date  Date  Ngày của lịch trình  timeType  String 
Loại thời gian của lịch trình (ví dụ: sáng,  chiều, tối, ...)  maxNumber  Number 
Số lượng bệnh nhân tối đa  currentNumber Number 
Số lượng bệnh nhân hiện tại  deleted  Boolean 
Trạng thái xóa (mặc định: false)  deletedAt  Date 
Thời gian xóa lịch trình  createdAt  Date 
Thời gian tạo lịch trình  updatedAt  Date 
Thời gian cập nhật lịch trình 
Bảng Bookings - Lịch hẹn khám bệnh  Tên cột  Kiểu dữ liệu  Mô tả      lOMoAR cPSD| 59078336 _id  ObjectId (chuỗi 24 ký 
ID duy nhất của lịch hẹn  tự)  statusId  String 
Trạng thái lịch hẹn (ID từ bảng allcodes)  doctorId  String (ObjectId) 
Bác sĩ khám (ID từ bảng doctors)  patientId  String (ObjectId) 
Người bệnh (ID từ bảng users)  scheduleId  String (ObjectId) 
Lịch trình liên kết (ID từ bảng schedules)  info.email  String  Email của bệnh nhân  info.fullname String  Họ tên của bệnh nhân  info.phone  String 
Số điện thoại của bệnh nhân  info.address  String 
Địa chỉ của bệnh nhân  info.birthyear String  Năm sinh của bệnh nhân  info.gender  String 
Giới tính của bệnh nhân  info.reasons  String  Lý do khám bệnh  createdAt  DateTime 
Thời gian tạo lịch hẹn  timeType  String 
Loại thời gian của lịch hẹn (sáng, chiều,  tối...)  updatedAt  DateTime 
Thời gian cập nhật bản ghi 
Bảng Clinics - Cơ sở khám bệnh  Tên cột  Kiểu dữ liệu  Mô tả  _id 
ObjectId (chuỗi 24 ký tự) 
ID duy nhất của phòng khám  address  String (VARCHAR 255)  Địa chỉ phòng khám  description  String (TEXT)  Mô tả phòng khám  avatar  String (VARCHAR 255) 
URL hình ảnh đại diện phòng khám  name  String (VARCHAR 255)  Tên phòng khám      lOMoAR cPSD| 59078336 howtogo  String (TEXT) 
Hướng dẫn đến phòng khám  slug  String (VARCHAR 255) 
Slug duy nhất dựa trên tên phòng khám  status  String 
Trạng thái phòng khám (active / inactive) 
Bảng Specialties - Chuyên khoa  Tên cột  Kiểu dữ liệu  Mô tả  _id  ObjectId 
ID duy nhất của chuyên khoa  description  String  Mô tả về chuyên khoa  avatar  String 
URL hình ảnh đại diện của chuyên khoa  status  String 
Trạng thái chuyên khoa (active / inactive)  name  String  Tên chuyên khoa  slug  String 
Slug duy nhất dựa trên tên chuyên khoa 
Bảng History - Lịch sử khám bệnh  Tên cột  Kiểu dữ liệu  Mô tả  _id 
ObjectId (chuỗi 24 ký tự) 
ID duy nhất của bản ghi lịch sử  patientId  String (ObjectId) 
Người bệnh (ID từ bảng users)  doctorId  String (ObjectId) 
Bác sĩ khám (ID từ bảng doctors)  description  String (TEXT)  Kết quả, chẩn đoán  files  JSON / String 
File đính kèm (đơn thuốc, xét nghiệm, URL) 
Bảng OTP – Lưu trữ thông tin mã OTP  Tên cột  Kiểu dữ liệu  Mô tả  _id 
ObjectId (chuỗi 24 ký tự)  ID duy nhất của OTP  email  String (VARCHAR 255)  Email liên kết với OTP  expireAt  DateTime 
Thời gian hết hạn của OTP (hết hạn sau 180 giây)      lOMoAR cPSD| 59078336 otp  String (VARCHAR 10)  Mã OTP  createdAt  DateTime  Thời gian tạo bản ghi  updatedAt DateTime 
Thời gian cập nhật bản ghi  Bảng Allcodes  Tên cột  Kiểu dữ liệu  Mô tả  _id 
ObjectId (chuỗi 24 ký tự)  ID duy nhất của mã  key  String  Khóa của mã  type  String 
Loại mã (duy nhất, được đánh chỉ mục)  valueEn  String  Giá trị bằng tiếng Anh  valueVi  String 
Giá trị bằng tiếng Việt 
Bảng Posts – Bài Viết  Tên cột  Kiểu dữ liệu  Mô tả  _id 
ObjectId (chuỗi 24 ký tự) 
ID duy nhất của bài viết  content  String (TEXT)  Nội dung bài viết  poster  String (VARCHAR 255) 
Poster của bài viết (URL hình ảnh)  title  String (VARCHAR 255)  Tiêu đề bài viết  slug  String (VARCHAR 255) 
Slug duy nhất dựa trên tiêu đề  authorId  String (ObjectId) 
Tác giả bài viết (ID từ bảng users)  featured  Boolean 
Bài viết nổi bật (mặc định: false)  createdAt  DateTime  Thời gian tạo bài viết  deleted  Boolean 
Trạng thái xóa (mặc định: false)  updatedAt  DateTime 
Thời gian cập nhật bài viết  Bảng Setting  Tên cột  Kiểu dữ liệu  Mô tả        lOMoAR cPSD| 59078336 _id 
ObjectId (chuỗi 24 ký tự) 
ID duy nhất của cài đặt  websiteName  String  Tên website  logo  String 
URL hoặc tên file của logo website  phone  String 
Số điện thoại liên hệ  email  String  Email liên hệ  address  String 
Địa chỉ của website/đơn vị  facebook  String 
Liên kết đến trang Facebook  twitter  String 
Liên kết đến trang Twitter  instagram  String 
Liên kết đến trang Instagram  copyright  String  Thông tin bản quyền  createdAt  Date  Thời gian tạo bản ghi  updatedAt  Date 
Thời gian cập nhật bản ghi          lOMoAR cPSD| 59078336 2.4. Sơ đồ ERD   
III. Kết quả sản phẩm 
IV. Kết luận và kiến nghị 
Dự án phát triển ứng dụng MediBook đã hoàn thành các mục tiêu đề ra nhằm xây dựng 
một nền tảng trực tuyến hỗ trợ quản lý và đặt lịch khám bệnh hiệu quả. Trong Phần 1: 
Tổng quan đề tài, chúng tôi đã xác định lý do chọn đề tài dựa trên nhu cầu số hóa chăm 
sóc sức khỏe, phân tích các yêu cầu nghiệp vụ như quản lý người dùng, bác sĩ, lịch hẹn, 
phòng khám, chuyên khoa, bài viết, và cài đặt hệ thống, đồng thời đề xuất kiến trúc ứng 
dụng sử dụng công nghệ như Node.js, MongoDB, và React.js. Phần 2: Phân tích thiết 
kế ứng dụng tập trung vào việc phân tích yêu cầu chức năng, thiết kế giao diện 
(wireframe, mockup, prototype) cho các màn hình chính như trang chủ, đặt lịch, quản lý 
bác sĩ, bài viết, và cài đặt hệ thống, cũng như thiết kế cơ sở dữ liệu với các bảng như 
users, doctors, bookings, ...Các prototype đã mô phỏng luồng tương tác người dùng, tích 
hợp dữ liệu từ cơ sở dữ liệu, và đảm bảo trải nghiệm thân thiện. Dự án đã thành công 
trong việc tạo ra một giải pháp toàn diện, minh bạch, và tiện lợi, đáp ứng nhu cầu của 
bệnh nhân, bác sĩ, và quản trị viên, góp phần xây dựng một hệ sinh thái y tế thông minh.  Kiến nghị      lOMoAR cPSD| 59078336
Để phát triển ứng dụng MediBook trong tương lai và giải quyết các vấn đề còn tồn tại, 
chúng tôi đề xuất một số kiến nghị sau: 
1. Tích hợp trí tuệ nhân tạo (AI): 
o Phát triển tính năng chatbot AI để tư vấn ban đầu cho bệnh nhân, giúp họ 
lựa chọn bác sĩ hoặc chuyên khoa phù hợp dựa trên triệu chứng, khắc phục 
hạn chế về thông tin y tế chưa đầy đủ. 
2. Hỗ trợ thanh toán trực tuyến: 
o Thêm tính năng thanh toán phí khám qua các cổng như MoMo, ZaloPay, 
hoặc thẻ tín dụng, giải quyết vấn đề chưa hỗ trợ thanh toán trước khi đến  khám. 
3. Quản lý hồ sơ y tế điện tử (EMR): 
o Xây dựng hệ thống lưu trữ và truy cập hồ sơ y tế cá nhân (liên kết với 
histories) trên đám mây, khắc phục hạn chế hiện tại về việc chỉ lưu trữ file 
đính kèm mà chưa có giao diện quản lý tập trung. 
4. Thông báo và nhắc nhở tự động: 
o Triển khai hệ thống gửi thông báo qua email hoặc SMS (liên kết với otps 
và bookings) để nhắc nhở lịch hẹn, giải quyết vấn đề bệnh nhân quên lịch  khám. 
5. Hỗ trợ đa ngôn ngữ: 
o Thêm tính năng đa ngôn ngữ (tiếng Anh, tiếng Việt, các ngôn ngữ khác) để 
phục vụ người nước ngoài, khắc phục hạn chế về đối tượng sử dụng hiện 
tại chỉ tập trung vào người Việt. 
6. Phân tích dữ liệu và báo cáo: 
o Phát triển công cụ phân tích dữ liệu (số lượng lịch hẹn, chuyên khoa phổ 
biến) cho quản trị viên, giải quyết vấn đề chưa có báo cáo thống kê để hỗ  trợ ra quyết định. 
Những kiến nghị trên không chỉ nâng cao hiệu quả của MediBook mà còn mở rộng phạm 
vi ứng dụng, hướng tới một hệ thống y tế toàn diện và hiện đại hơn trong tương lai.