CHƯƠNG 1. TỔNG QUAN HỆ THỐNG 1.1 Tổng quan về hệ thống đặt lịch khám bệnh 1.1 Khảo sát thực tế Thông thường, khi cần đi khám với bác sĩ, bệnh nhân (hoặc người nhà) thường đến các cơ sở y tế lấy số, xếp hàng, chờ đợi, hoặc nhắn tin, gọi điện đặt lịch trước. Tuy nhiên, lấy số xếp hàng chờ khám rất mất thời gian và mệt mỏi. Bệnh nhân ở tỉnh xa đi lại rất khó khăn, vất vả, tốn kém.
Nếu là gọi điện đặt lịch thì có vẫn có một số tình huống sau đây xảy ra như: - Không gặp được lễ tân, trợ lý của bác sĩ vì không ai bắt máy - Bệnh nhân gọi điện vào giờ nghỉ vì nhân viên chỉ làm việc vào giờ hành chính - Bệnh nhân không nắm được lịch khám chi tiết của bác sĩ khi gọi điện đến - Bệnh nhân không tìm được các thông tin quan trọng khác như: giá khám, giá dịch vụ, thông tin về bảo hiểm y tế, địa chỉ khám, các thay đổi lịch khám. Những trường hợp này đa số sẽ dẫn đến các cuộc gọi liên tục qua lại giữa hai bên. Vì nhiều lý do, bệnh nhân không thể nhận điện thoại từ phòng khám vào giờ làm việc, khiến quá trình này kéo dài hơn. Và tình trạng không hẹn được kéo dài càng lâu thì càng có nhiều khả năng họ bỏ cuộc và đi tìm nơi khác.
Những thuận lợi của đặt khám trực tuyến thông qua hệ thống đặt lịch khám là rất rõ ràng. Bệnh nhân có thể đặt lịch khám 24/7, mọi lúc, mọi nơi chỉ cần một thiết bị có kết nối Internet. Sau đó, sẽ có nhân viên tại phòng khám xác nhận thông tin khách hàng và thông báo lịch khám cụ thể, tư vấn chi phí. Do đó, chúng em quyết định xây dựng “Hệ thống đặt lịch khám bệnh cho các phòng khám, bệnh viện” nhằm cung cấp nền tảng, phương tiện công nghệ để kết nối bệnh nhân đến với phòng khám, bệnh viện dễ dàng, nhanh chóng và thuận tiện thay vì phải gọi điện hay đến xếp hàng dài chờ đợi tại các cơ sở y tế.
Hiện nay, đã có rất nhiều website hỗ trợ bệnh nhân đăng ký khám bệnh trực tuyến tại các bệnh viện công và tư với đầy đủ các tính năng hữu ích cho người dùng.2 Giới thiệu hệ thống Với mục tiêu đáp ứng được nhu cầu tối thiểu của người dùng là đặt lịch khám bệnh trước với bác sĩ, có thể khám bệnh từ xa, dễ dàng liên hệ với bác sĩ, cung cấp một số thông tin về y tế đến cho người dùng, những chia sẻ về vấn đề chăm sóc sức khỏe của bác sĩ tới bệnh nhân, website sẽ được xây dựng hướng tới bốn nhóm người dùng chính với các tính năng như sau: Nhóm người dùng thứ nhất: Khách hàng - Tìm kiếm bệnh viện, phòng khám, bác sĩ - Đặt lịch khám bệnh - Xem tin tức về y tế, cẩm nang sức khỏe của bác sĩ - Bình luận, tương tác với bài viết - Nhắn tin với chatbot Nhóm người dùng thứ hai: Bác sĩ - Quản lý tài khoản của bác sĩ - Quản lý lịch khám bệnh Nhóm người dùng thứ ba: dành cho quản trị hệ thống - Quản lý tài khoản của người dùng (mở/khóa tài khoản) - Quản lý tin tức, cẩm nang - Quản lý bác sĩ (mở/khóa tài khoản, thêm tài khoản bác sĩ) - Quản lý bệnh viện (thêm, sửa, xóa bệnh viện) Nhóm người dùng thứ tư: dành cho quản trị bệnh viện - Quản lý tài khoản - Quản lý kế hoạch khám chữa bệnh (thêm thông tin, xem thông tin, sửa thông tin kế hoạch) Tieu luan 1.2 Giới thiệu về một số công nghệ được sử dụng 1.1 ReactJS + Redux - ReactJS là một thư viện JavaScript chuyên giúp các nhà phát triển xây dựng giao diện người dùng hay UI. Trong lập trình ứng dụng front-end, lập trình viên thường sẽ phải làm việc chính trên 2 thành phần sau: UI và xử lý tương tác của người dùng. UI là tập hợp những thành phần mà bạn nhìn thấy được trên bất kỳ một ứng dụng nào, ví dụ có thể kể đến bao gồm: menu, thanh tìm kiếm, những nút nhấn, card,… Giả sử bạn đang lập trình một website thương mại điện tử, sau khi người dùng chọn được sản phẩm ưng ý rồi và nhấn vào nút “Thêm vào giỏ hàng”, thì việc tiếp theo mà bạn phải làm đó là thêm sản phẩm được chọn vào giỏ hàng và hiển thị lại sản phẩm đó khi user vào xem => xử lý tương tác. - Redux là một thư viện giúp bạn quản lí trạng thái (state) của application.
Nó được thiết kế dựa trên Flux, nhưng giảm bớt những đau khổ thường gặp phải khi viết một ứng dụng Flux. Nếu bạn đã từng làm việc với Flux, bạn sẽ dễ dàng nhận ra rằng Redux đã xây dựng sẵn cho bạn rất nhiều thứ mà lẽ ra bạn tự phải làm. Ngoài ra, không giống như Flux, bạn có một state container duy nhất. Đó là một ưu điểm lớn, bởi vì nó sẽ giúp chia sẻ state và tái sử dụng code dễ dàng hơn 1.2 HTML/CSS-scss/Bootstrap5 (reactrap) - HTML, HyperText Markup Language, cung cấp cấu trúc nội dung và ý nghĩa bằng cách xác định nội dung đó, ví dụ như tiêu đề, đoạn văn hoặc hình ảnh.
CSS, hay Cascading Style Sheets, là ngôn ngữ trình bày được dùng để tạo kiểu cho sự xuất hiện của nội dung sử dụng, ví dụ như phông chữ hoặc màu sắc. - Bootstrap là một framework front-end miễn phí giúp người dùng phát triển web nhanh hơn và dễ dàng hơn. Bootstrap bao gồm các mẫu thiết kế dựa trên HTML và CSS cho các kiểu chữ, biểu mẫu, nút, bảng, điều hướng, hình ảnh., cũng như các Tieu luan plugin JavaScript tùy chọn. Bootstrap cũng cung cấp cho bạn khả năng dễ dàng tạo các thiết kế website responsive.1 NodeJS (ExpressJS) - NodeJS là một môi trường runtime chạy JavaScript đa nền tảng và có mã nguồn mở, được sử dụng để chạy các ứng dụng web bên ngoài trình duyệt của client.
Nền tảng này được phát triển bởi Ryan Dahl vào năm 2009, được xem là một giải pháp hoàn hảo cho các ứng dụng sử dụng nhiều dữ liệu nhờ vào mô hình hướng sự kiện (event- driven) không đồng bộ. Và cũng như nhiều ngôn ngữ chạy phía server khác, NodeJS cũng bắt đầu có một cộng đồng phát triển rất lớn, nhiều framework sử dụng core NodeJS ra đời, một trong số các framework phổ biến nhất hiện nay là Express Framework này giúp cho việc phát triển ứng dụng được rút ngắn đi rất nhiều. Cũng như các framework dựa trên những ngôn ngữ khác như Rails (Ruby); Django (Python); Laravel, CakePHP (PHP)… Express được xây dựng dựa trên NodeJs. Vậy nó có ưu điểm gì để ta lựa chọn cho việc phát triển ứng dụng.
Express hỗ trợ việc phát triển ứng dụng theo mô hình MVC, mô hình phổ biến cho việc lập trình web hiện nay. Cho phép định nghĩa Middleware hỗ trợ cho việc tổ chức và tái sử dụng code. Định nghĩa routes và các request method đến server một cách dễ dàng. Hỗ trợ REST API.
Và còn rất nhiều thứ mà framework này hỗ trợ, còn bây giờ hãy thử cài đặt và xây dựng một ứng dụng đơn giản nhé.2 PostgreSQL PostgreSQL là một hệ thống quản trị cơ sở dữ liệu quan hệ-đối tượng (object- relational database management system) có mục đích chung, hệ thống cơ sở dữ liệu mã nguồn mở tiên tiến nhất hiện nay. PostgreSQL được phát triển dựa trên POSTGRES 4.2 tại phòng khoa học máy tính Berkeley, Đại học California. PostgreSQL được thiết kế để chạy trên các nền tảng tương tự UNIX. Tuy nhiên, PostgreSQL sau đó cũng được điều chỉnh linh động để có thể chạy được trên nhiều nền tảng khác nhau như Mac OS X, Solaris và Windows.
PostgreSQL là một phần mềm mã nguồn mở miễn phí. Mã nguồn của phần mềm khả dụng theo license của PostgreSQL, một license nguồn mở tự do. Theo đó, bạn sẽ được tự do sử dụng, sửa đổi và phân phối PostgreSQL dưới mọi hình thức. PostgreSQL không yêu cầu quá nhiều công tác bảo trì bởi có tính ổn định cao.
Do đó, nếu bạn phát triển các ứng dụng dựa trên PostgreSQL, chi phí sở hữu sẽ thấp hơn so với các hệ thống quản trị dữ liệu khác.3 Hosting website Back-end: Deploy bằng Render Front-end: Deploy bằng Vercel 1.4 Các công nghệ khác - Sử dụng các plugin của Facebook để tích hợp xây dựng các chức năng Like, Share, Comment - Chatbot với Facebook Mesenger (sử dụng NLP - Natural Language Processing) Tieu luan 1.3 Kết luận Chương 1 Chương 1 của đồ án đã trình bày giới thiệu tổng quan về đề tài, khảo sát một số website đặt lịch khám bệnh trực tuyến, trình bày một số công cụ sử dụng để thực hiện đồ án. Trong chương tiếp theo, đồ án sẽ trình bày quá trình phân tích, thiết kế hệ thống đặt lịch khám bệnh trực tuyến. Tieu luan CHƯƠNG 2. ĐẶC TẢ YÊU CẦU, THIẾT KẾ HỆ THỐNG 2.1 Phân tích yêu cầu của hệ thống 2.1 Yêu cầu chức năng - Xây dựng hệ thống bao gồm những chức năng cơ bản của một trang web đặt lịch khám bệnh online như: Đặt lịch khám bệnh, tra cứu thông tin bác sĩ, chuyên khoa, cơ sở y tế, quản lý bác sĩ, quản lý kế hoạch khám bệnh cũng như bệnh nhân - Xây dựng hệ thống cho phép người dùng có thể tìm kiếm, tra cứu thông tin một cách nhanh chóng và trực quan - Xây dựng trang web thông tin có các tin tức về cơ sở y tế, bác sĩ, chuyên khoa - Xây dựng hệ thống với các công nghệ mới như Nodejs, Reactjs, MySQL.
Nhóm em chọn những công nghệ này vì chúng có tính bao quát rộng hơn, Nodejs hỗ trợ bất đồng bộ giúp nhiều phương thức chạy động thời, MySQL là cơ sở dữ liệu tốc độ cao, ổn định hoạt động trên nhiều hệ điều hành, cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Đặc biệt, hệ quản trị cơ sở dữ liệu MySQL hoàn toàn miễn phí nên người dùng có thể thoải mái tải về từ trang chủ 2.2 Yêu cầu phi chức năng Một số yêu cầu phi chức năng của Hệ thống đặt lịch khám bệnh cần đảm bảo như sau: Hoạt động được trên các thiết bị sử dụng hệ điều hành Windown 10: Hệ thống được xây dựng dựa trên hệ điều hành sẽ được chạy ổn định nhất. Giao diện đẹp, thân thiện với người dùng: Giao diện hệ thống được xây dựng bắt mắt, dễ dàng sử dụng và thân thiện với người dùng nhằm mục đích đem lại trải nghiệm tốt nhất tới người sử dụng.