1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng app đặt lịch khám bệnh và theo dõi sức khỏe

178 29 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Ứng Dụng Đặt Lịch Khám Bệnh Và Theo Dõi Sức Khỏe
Tác giả Lê Nhật Thu An, Lê Thị Ngọc Yến
Người hướng dẫn TS. Huỳnh Xuân Phụng
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đề tài luận văn tốt nghiệp
Năm xuất bản 2022
Thành phố Hồ Chí Minh
Định dạng
Số trang 178
Dung lượng 10,96 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • 1. Tính cấp thiết của đề tài (12)
  • 2. Mục tiêu của đề tài (12)
  • CHƯƠNG 1: CƠ SỞ LÝ THUYẾT (13)
    • 1.1 Công nghệ sử dụng (13)
    • 1.2 Lý thuyết (13)
      • 1.2.1 React Native (13)
      • 1.2.2 Node JS (15)
      • 1.2.3 React JS (21)
      • 1.2.4 Firebase (22)
      • 1.2.5 EndlessMedical (23)
  • CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG (27)
    • 2.1 KHẢO SÁT HIỆN TRẠNG (27)
      • 2.1.1 Ứng dụng “UMC – Đăng ký khám bệnh Online” (27)
      • 2.1.2 Ứng dụng AIHeath: Ứng dụng tìm bác sĩ riêng (29)
      • 2.1.3 Ứng dụng eDoctor (30)
  • CHƯƠNG 3. TÀI LIỆU MÔ TẢ HỆ THỐNG CHỨC NĂNG (32)
    • 3.1 XÁC ĐỊNH YÊU CẦU (32)
      • 3.1.1 Yêu cầu chức năng (32)
        • 3.1.1.1 Ứng dụng của Mobile App (32)
        • 3.1.1.2 Web (33)
      • 3.1.2 Yêu cầu phi chức năng (34)
      • 3.2.1 Sơ đồ phân dã chức năng (35)
      • 3.2.2 Lược đồ Usecase (36)
      • 3.2.3 Danh sách chức năng (39)
      • 3.2.4 Ma trận quyền (42)
    • 3.3 ĐẶC TẢ CHỨC NĂNG (45)
      • 3.3.1 Đăng nhập (45)
      • 3.3.2 Đăng xuất (48)
      • 3.3.3 Đăng ký (51)
      • 3.3.4 Quên mật khẩu (55)
      • 3.3.5 Đổi mật khẩu (60)
      • 3.3.6 Xác thực OTP (63)
      • 3.3.7 Cập nhập thông tin cá nhân (67)
      • 3.3.8 Quản lý chỉ số BMI (71)
      • 3.3.9 Quản lý nhịp tim, huyết áp (75)
      • 3.3.10 Đặt lịch khám theo khoa (79)
      • 3.3.11 Đặt lịch khám theo bác sĩ (83)
      • 3.3.12 Theo dõi số thứ tự khám (87)
      • 3.3.13 Xem hồ sơ bệnh án (90)
      • 3.3.14 Đăng nhập Web (92)
      • 3.3.15 Xem biểu đồ thống kê (95)
      • 3.3.16 Tạo số thứ tự khám bệnh (98)
      • 3.3.17 Xem chi tiết thông tin bác sĩ (101)
      • 3.3.20 Đăng ký dịch vụ (108)
      • 3.3.21 Thanh toán dịch vụ (110)
      • 3.3.22 Quản lý các dịch vụ đã đăng ký (114)
      • 3.3.23 Quản lý các bệnh nhân đăng ký (118)
      • 3.3.24 Tạo bệnh án (120)
      • 3.3.25 Xem danh sách số thứ tự khám hôm nay theo khoa (121)
      • 3.3.26 Lọc số thứ tự khám theo phòng và trạng thái (123)
      • 3.3.27 Chuẩn đoán và kê đơn (126)
      • 3.3.28 Xem chi tiết bệnh án (128)
      • 3.3.29 Tìm bệnh án theo tên bệnh nhân (130)
      • 3.3.30 Nhắn tin với bác sĩ (133)
      • 3.3.31 Nhắn tin với bệnh nhân (136)
      • 3.3.32 Chuẩn đoán bệnh (139)
      • 3.3.33 Nhắc uống thuốc (142)
      • 3.3.34 Thêm phòng (145)
      • 3.3.35 Admin thêm lịch khám bệnh cho bác sĩ (149)
  • CHƯƠNG 4. THIẾT KẾ PHẦN MỀM (153)
    • 4.1 Sơ đồ lớp (153)
      • 4.1.1 Quản lý tài khoản cá nhân (153)
      • 4.1.2 Đặt lịch (154)
      • 4.1.3 Đặt lịch (154)
    • 4.2 Lược đồ ERD (155)
    • 4.3 Mô tả Cơ sở dữ liệu (155)
      • 4.3.2 Patient (157)
      • 4.3.3 Department (157)
      • 4.3.4 Room (157)
      • 4.3.5 Doctor (158)
      • 4.3.6 MedicalRecord (158)
      • 4.3.7 Position (159)
      • 4.3.8 BMI (160)
      • 4.3.9 HeartBeat (160)
      • 4.3.10 Schedule (161)
      • 4.3.11 Message (161)
      • 4.3.12 Service (161)
      • 4.3.13 DoctorRegistration (162)
      • 4.3.14 Medicine (163)
      • 4.3.15 Prescription (163)
  • CHƯƠNG 5. CÀI ĐẶT VÀ KIỂM THỬ (164)
    • 5.1 CÀI ĐẶT (164)
      • 5.1.1 App (164)
      • 5.1.2 Web (164)
    • 5.2. KIỂM THỬ (165)
    • 1. SO SÁNH VỚI CÁC ỨNG DỤNG HIỆN NAY (175)
      • 1.1 Ứng dụng “UMC – Đăng ký khám bệnh Online” (175)
      • 1.3 Ứng dụng eDoctor (175)
    • 2. KẾT QUẢ ĐẠT ĐƯỢC (176)
    • 3. ƯU ĐIỂM (176)
    • 3. NHƯỢC ĐIỂM (176)
    • 4. HƯỚNG PHÁT TRIỂN (176)
  • TÀI LIỆU THAM KHẢO (177)

Nội dung

Tính cấp thiết của đề tài

đã và đang phát triển

Dựa trên nhu cầu thực tế của các bệnh viện lớn tại thành phố Hồ Chí Minh, người dân ở vùng xa cần khám bệnh công lập để tránh việc phải di chuyển sớm và xếp hàng chờ đợi Tình trạng đông đúc khiến họ không đủ chỗ ngồi, vừa mệt mỏi vừa dễ xảy ra sự cố Sau khi bốc số, họ vẫn phải chờ đợi tại bệnh viện, điều này càng trở nên nghiêm trọng trong bối cảnh dịch bệnh COVID-2019, khi việc tụ tập đông người cần được hạn chế và sức khỏe trở thành mối quan tâm hàng đầu.

Nhằm đáp ứng nhu cầu của người dùng, nhóm chúng em đã phát triển ứng dụng "my-doctor" để đặt lịch khám và theo dõi sức khỏe, với mục tiêu hỗ trợ bệnh nhân trong việc lưu trữ thông tin sức khỏe và quản lý lịch hẹn khám bệnh.

Mục tiêu của đề tài

CƠ SỞ LÝ THUYẾT

Công nghệ sử dụng

 Ngôn ngữ lập trình: JavaScript

 Front-end: React Native, React

 Công cụ lập trình và kiểm thử: Visual Studio Code, MySQL, Postman

Lý thuyết

Bạn có thể sử dụng bất kỳ công cụ lập trình nào thay vì phải viết mã riêng cho từng hệ điều hành, như XCode cho iOS và Android Studio cho Android.

- Load project bằng phím tắt R

- Hiển thị lỗi ngay trên màn hình điện thoại

- Tiết kiệm tài nguyên, dễ bảo trì, nâng cấp

- Chưa phát triển hoàn thiện, một số tính năng vẫn chưa được hỗ trợ

- Không dùng để viết game có tính đồ họa và cách chơi phức tạp

- Khả năng quản lý bộ nhớ chưa tốt

React Native gọi Objective-C API để hiển thị trên iOS hoặc Java API để hiển thị trên Android

Để khai thác tối đa React Native, cần nắm vững một số khái niệm cơ bản như JSX, components, state và props JSX là cú pháp mở rộng của JavaScript, kết hợp với XML, cho phép viết mã bằng cú pháp gần giống XML Components giúp chia giao diện người dùng thành các phần độc lập, dễ quản lý và tái sử dụng Props, viết tắt của Properties, là các thuộc tính hoặc đối số của một Component, trong khi state là các giá trị có thể thay đổi, biểu thị trạng thái của Component.

Bảng dưới đây là ví dụ về React Native Component tương ứng với các đối tượng trong các hệ điều hành:

React Native Android iOS Web

React Native offers six types of components: basic components, user interface components, ListView components, Android-specific components, iOS-specific components, and other components Most React Native applications utilize basic components such as View, Text, TextInput, Image, ScrollView, and StyleSheet, with StyleSheet serving as a CSS alternative User interface components, like Button and Switch, facilitate user interaction, while ListView components, including FlatList and SectionList, display data lists Both Android and iOS have unique components tailored to their respective operating systems, such as BackHandler, DrawerLayoutAndroid, PermissionsAndroid, and ToastAndroid for Android, and ActionSheetiOS for iOS Additionally, useful components like ActivityIndicator, Alert, Animated, Dimensions, KeyboardAvoidingView, Linking, Modal, PixelRatio, RefreshControl, and StatusBar are categorized separately.

1.2.2 Node JS 1.2.2.1 Khái niệm Node JS là một mã nguồn mở và là môi trường runtime đa nền tảng của JavaScript Node

JS được xem là một công cụ phổ biến cho hầu hết các loại dự án

Node.js operates on the V8 JavaScript Engine of Chrome, which is a program or interpreter that executes JavaScript This JavaScript Engine can interpret JavaScript in the traditional sense or compile it just-in-time into bytecode.

Node JS cho phép chạy ứng dụng trong một tiến trình độc lập mà không cần tạo luồng mới cho mỗi yêu cầu Nó cung cấp các primitive I/O bất đồng bộ trong thư viện chuẩn, giúp ngăn chặn mã JavaScript bị blocking Các thư viện của Node JS được phát triển theo mô hình non-blocking, khiến cho hành vi blocking trở thành ngoại lệ thay vì là điều bình thường.

Blocking I/O là một khái niệm quan trọng trong lập trình, nơi mà ứng dụng không nhận được phản hồi cho đến khi yêu cầu I/O hoàn tất Điều này dẫn đến việc chương trình không thể thực hiện bất kỳ tác vụ nào khác trong khi chờ đợi, gây ra sự chậm trễ, đặc biệt khi có nhiều người dùng cùng sử dụng Để khắc phục vấn đề này, non-blocking I/O đã được phát triển, cho phép các yêu cầu I/O được xử lý mà không làm gián đoạn hoạt động của ứng dụng.

Non-blocking I/O là một phương thức gọi bất đồng bộ, cho phép trả về kết quả ngay lập tức mà không cần chờ đợi các thao tác I/O khác hoàn thành Điều này cho phép chúng ta truy cập dữ liệu của user2 mà không cần đợi user1 hoàn tất, nghĩa là hai tiến trình có thể hoạt động song song.

Event Loop giúp JavaScript thực hiện nhiều thao tác cùng một lúc Vậy Event Loop là gì?

The term "Event Loop" in JavaScript Runtime refers to a cyclical process that listens for events Its primary function is to read from the Stack and the Event Queue When the Stack is empty, the Event Loop retrieves the first event from the Event Queue, along with its associated handler (callback or listener), and pushes it onto the Stack The function continues until it either returns a result or throws an exception Additionally, the JavaScript Runtime interacts with a callback queue, where the Stack operates on a Last In First Out (LIFO) basis, while the Event Queue follows a First In First Out (FIFO) structure.

Engine là một phần của Java Runtime, trong đó Google’s V8 engine là một trong những engine phổ biến của JavaScript Cấu trúc của một engine bao gồm Memory Head, liên quan đến phân vùng bộ nhớ đệm, và Call Stack.

JavaScript là một ngôn ngữ lập trình chạy đơn luồng, có nghĩa là nó chỉ sử dụng một Call stack và thực hiện một công việc tại một thời điểm.

In addition to the JS Runtime engine, the process involves Web APIs, which facilitate asynchronous operations The JS runtime categorizes functions like setTimeout() and setInterval() into Macrotasks, while asynchronous functions (Promises) are placed in Microtasks JavaScript prioritizes the execution of Microtasks over Macrotasks.

1.2.2.2 Node JS với Express và MySQL Express là một web frameworks phổ biến nhất cho Node JS trong việc hỗ trợ routing, middleware, view system

The structure of REST, which stands for REpresentational State Transfer, is a standard web architecture that utilizes the HTTP protocol It revolves around resources, where every component is considered a resource accessed through a common interface using HTTP methods A REST server provides access to these resources, while a REST client accesses and modifies them using the HTTP protocol.

Các giá trị của REST biểu diễn dưới dạng text, JSON, XML, trong đó JSON là dạng phổ biến nhất

* Các phương thức HTTP Có 4 phương thức HTTP phổ biến:

- GET: được sử dụng để cung cấp quyền Read only đến resource

- PUT: được sử dụng để update hoặc replace một resourse

- POST: được sử dụng để tạo mới một resourse

- Delete: được sử dụng để xóa một resourse

* Các status code của API Các loại status code:

- 1xx: Informational – giao tiếp chuyển đổi thông tin các protocol-level

- 2xx: Success – thông báo thành công

- 3xx: Redirection – Thông bào client cần thực hiện bổ sung một số hành động nào đó để hoàn thành request

- 4xx: Client Error – Đây là loại status code về lỗi bên phía của client

- 5xx: Server Error – Server chịu trách nhiệm về trạng thái lỗi này

* Một số loại status code phổ biến của REST

200 Status code thông báo request thành công Và không giống như 204 status code, một

200 response nên được thêm vào một response body Những thông tin trả về với response sẽ được dựa vào phương thức request, ví dụ:

+ GET: trả về một entity hoặc một object tương ứng với request được gửi trong response

+ HEAD: trả về một entity-header fields tương ứng với request được gửi trong response mà không có message-body

+ POST: trả về một entity mô tả hoặc chứa kết quả của request

+ TRACE: trả về một entity chứa request message

1.2.3 React JS React.js là một thư viện Javascript đang nổi lên trong những năm gần đây với xu hướng Single Page Web Application React là một library cho phép nhúng code html trong code javascript nhờ vào JSX, làm cho các component dễ hiểu hơn React là một thư viện UI phát triển tại Facebook để hỗ trợ việc xây dựng những thành phần (components) UI có tính tương tác cao, có trạng thái và có thể sử dụng lại được Một trong những điểm hấp dẫn của React là thư viện này không chỉ hoạt động trên phía client, mà còn được render trên server và có thể kết nối với nhau

React sử dụng cơ chế one-way data binding, cho phép dữ liệu được truyền từ component cha đến component con thông qua props Luồng dữ liệu một chiều này giúp dễ dàng kiểm soát và sửa lỗi trong ứng dụng Với khả năng xử lý dữ liệu thay đổi liên tục theo thời gian, React là lựa chọn lý tưởng để xây dựng các ứng dụng lớn, nơi mà sự thay đổi dữ liệu thường đi kèm với sự thay đổi về giao diện.

React JS sử dụng Virtual DOM để cải thiện hiệu suất ứng dụng Virtual DOM là một đối tượng JavaScript chứa thông tin cần thiết để tạo ra một DOM Khi dữ liệu thay đổi, nó sẽ tính toán sự khác biệt giữa đối tượng và cây DOM thật, giúp tối ưu hóa quá trình re-render cây DOM thật.

KHẢO SÁT HIỆN TRẠNG

KHẢO SÁT HIỆN TRẠNG

Khảo sát một số ứng dụng đặt lịch khám, theo dõi sức khỏe hiện nay:

2.1.1 Ứng dụng “UMC – Đăng ký khám bệnh Online”

Hình 1 Ứng dụng UMC - Đăng ký khám bệnh

- Thao tác nhanh chóng, cho phép người dùng đặt lịch khám ở mọi nơi, chọn bác sĩ và khung giờ cụ thể

- Cho phép đặt lịch khám cho nhiều người, cho người thân

- Tiện lợi về việc tạo hồ sơ trực tuyến, thanh toán online

- Khi đặt lịch khám thành công, các thông tin về số thứ tự ngày giờ được gửi qua mail đăng kí

- Có thể hủy đăng ký lịch khám

- Giao diện thân thiện cho người dùng, dễ sử dụng Ngoài ra còn có hướng dẫn sử dụng ứng dụng

- Đặt lịch nhắc nhở uống thuốc

- Không được bảo mật, do chỉ cần đăng nhập một lần

- Không lưu trữ các thông số sức khỏe của bệnh nhân

- Không có tư vấn nhắn tin trực tiếp được với bác sĩ

2.1.2 Ứng dụng AIHeath: Ứng dụng tìm bác sĩ riêng

- Đặt lịch khám bệnh ở nhiều nơi thuộc hệ thống AIHeath

- Tìm bác sĩ riêng, có thể chat, video call để khám bệnh

- Có thể mua thuốc online, giao thuốc tận nơi

- Lưu trữ các thông tin cần thiết cho người dùng về lịch sử khám, sổ hiến máu

- Đăng nhập được bảo mật qua OTP

- Không có dịch vụ chăm sóc khách hàng miễn phí

- Không lưu trữ các chỉ số sức khỏe của người dùng

- Giúp dễ dàng kết nối người dùng và Bác sĩ dễ dàng ở mọi lúc mọi nơi

- Tư vấn tra cứu trực tuyến trên ứng dụng, đặt câu hỏi miễn phí

- Có các dịch vụ chăm sóc sức khỏe tại nhà

- Lưu trữ các thông tin về sức khỏe, liên kết các thông tin từ điện thoại (ví dụ số bước chân trong IOS)

- Có nhà thuốc online cho người dùng

- Bố cục hơi rối mắt

- Không có nhắn tin tư vấn với bác sĩ.

TÀI LIỆU MÔ TẢ HỆ THỐNG CHỨC NĂNG

XÁC ĐỊNH YÊU CẦU

3.1.1 Yêu cầu chức năng Đề tài dựa trên phân quyền từng chức năng của người dùng, hệ thống có hai phần Thứ nhất phần ứng dụng di dộng cho người dùng là bệnh nhân và thứ hai phần web dành cho người dùng là bác sĩ và admin quản lý

3.1.1.1 Ứng dụng của Mobile App

Xác thực bằng mã OTP là quy trình mà hệ thống gửi một mã số ngẫu nhiên qua tin nhắn điện thoại cho người dùng Người dùng cần nhập mã này để hoàn tất xác thực Nếu không được xác thực trong một khoảng thời gian nhất định, mã OTP sẽ bị vô hiệu hóa, và người dùng có thể yêu cầu hệ thống gửi mã OTP mới để thực hiện xác thực lại.

Người dùng có thể đăng ký tài khoản bằng số điện thoại và mật khẩu Nếu số điện thoại chưa được sử dụng, hệ thống sẽ xác thực tài khoản thông qua mã OTP.

Khi quên mật khẩu đăng nhập, người dùng có thể dễ dàng khôi phục bằng cách gửi số điện thoại và mật khẩu mới để yêu cầu xác nhận tài khoản Nếu tài khoản tồn tại, hệ thống sẽ gửi mã OTP để xác thực.

Người dùng có thể dễ dàng cập nhật thông tin cá nhân của mình, bao gồm avatar, họ và tên, năm sinh, địa chỉ và giới tính, ngay sau khi đăng nhập vào hệ thống.

Người dùng có thể dễ dàng đổi mật khẩu sau khi đăng nhập bằng cách xác thực tài khoản của mình với mật khẩu mới thông qua mã OTP.

Người dùng có thể theo dõi sức khỏe bằng cách cập nhật chiều cao, cân nặng để tính chỉ số BMI, cũng như nhịp tim, huyết áp tâm trương và tâm thu Tất cả thông tin được lưu trữ và người dùng có thể xem danh sách theo ngày, theo dõi các cập nhật và thống kê theo tháng, năm.

Người dùng có thể đặt lịch khám bệnh theo khoa bằng cách tự chọn hoặc tham khảo các đề xuất từ chẩn đoán khoa Họ có thể lựa chọn khoa phù hợp với nhu cầu của mình và xác định ngày, thời gian cũng như phòng khám bệnh.

Người dùng có thể đặt lịch khám bệnh theo bác sĩ bằng cách tự chọn hoặc tham khảo các đề xuất từ chẩn đoán khoa Họ có thể lựa chọn bác sĩ dựa trên lịch làm việc của bác sĩ để chọn ngày, thời gian và phòng khám phù hợp.

Người dùng có thể đăng ký dịch vụ khám bệnh theo thời gian của bác sĩ thông qua các gói tháng hoặc năm.

Sau khi đặt lịch khám, người dùng sẽ nhận được số thứ tự (STT) khám bệnh, bao gồm thông tin về ngày, phòng và giờ dự kiến khám Hệ thống cũng cho phép người dùng theo dõi STT khám bệnh hiện tại và sẽ gửi thông báo khi đến lượt khám của họ.

Bệnh nhân có thể truy cập và xem bệnh án của mình, bao gồm các đơn thuốc do bác sĩ kê Họ cũng có khả năng thiết lập thời gian để uống thuốc một cách thuận tiện.

Bệnh nhân có thể nhận được sự tư vấn từ bác sĩ thông qua việc gửi tin nhắn văn bản hoặc hình ảnh, cũng như chia sẻ số đo nhịp tim để được hỗ trợ kịp thời.

Bệnh nhân có thể đoán bệnh của mình thông qua việc trả lời các câu hỏi Hệ thống sẽ phân tích các câu trả lời và dựa vào tình trạng sức khỏe của bệnh nhân để đưa ra dự đoán về các bệnh liên quan.

Bác sĩ và y tá sẽ nhận được tài khoản đăng nhập bao gồm tên đăng nhập và mật khẩu Sau khi đăng nhập thành công, hệ thống sẽ tự động chuyển hướng theo từng loại tài khoản.

 Theo dõi và cập nhật bệnh án: Bác sĩ có thể xem và cập nhật thêm thông tin vào bệnh án online của bệnh nhân mình phụ trách

 Cập nhật tình trạng STT khám bệnh: Khi bác sĩ khám đến người kế tiếp thì phải cập nhật lại tình trạng STT khám bệnh

 Cập nhật STT xét nghiệm: Khi bác sĩ yêu cầu bệnh nhân xét nghiệm, y tá sẽ nhập STT xét nghiệm cho bệnh nhân

 Kê đơn thuốc: Bác sĩ kê đơn thuốc cho bệnh nhân

 Admin theo dõi trạng thái của các dịch vụ đã đăng ký, thay đổi hoặc cập nhập trạng thái của các dịch vụ mà người dùng đã đăng ký

 Admin quản lý thông tin bác sĩ, lịch khám, thông tin bệnh nhân, phòng khám

 Bác sĩ theo dõi các người bệnh đăng ký dịch vụ của mình, tư vấn với bệnh nhân, xem lịch khám của mình

3.1.2 Yêu cầu phi chức năng

- Hiển thị tương thích trên các loại màn hình điện thoại khác nhau

- Thiết kế hiện đại, màu sắc đơn giản, mang tính tin tưởng cao

3.1.3 Sơ đồ gantt – kế hoạch thực hiện đề tài

3.2 TỔNG QUAN 3.2.1 Sơ đồ phân dã chức năng 3.2.1.1 App

3.2.2 Lược đồ Usecase 3.2.2.1 Usecase cho App

STT CHỨC NĂNG VERSION LOẠI MÔ TẢ

1 Đăng nhập Đăng nhập vào hệ thống

2 Đăng xuất Đăng xuất kết thúc phiên làm việc

3 Đăng ký Đăng ký tài khoản

4 Quên mật khẩu Người dùng lấy lại mật khẩu đã quên

5 Đổi mật khẩu Người dùng thay đổi mật khẩu

6 Xác thực OTP Dùng SMS để xác thực các đăng ký tài khoản

7 Cập nhập thông tin cá nhân

Người dùng thay đổi các thông tin cá nhân cơ bản: tên, ảnh đại diện, hoặc thay đổi mật khẩu,…

8 Quản lý chỉ số BMI

Người dùng nhập thông tin chiều cao, cân nặng, có thể chỉnh sửa, xóa, tìm kiếm theo ngày

9 Quản lý chỉ số nhịp tim, huyết áp

ĐẶC TẢ CHỨC NĂNG

Name Đăng nhập Brief description

Người dùng đăng nhập vào hệ thống

Actor(s) Người dùng (bệnh nhân), Bác sĩ, Y tá Pre-conditions Người dùng đã được tạo tài khoản trong hệ thống

Post-conditions Nếu đăng nhập thành công: Người dùng được xác thực và hệ thống hiển thị nội dung trang chủ

Nếu đăng nhập không thành công: Người dùng không truy cập được vào hệ thống dành cho người dùng có tài khoản

Flow of events Basic flow Use case bắt đầu khi người dùng cần thực hiện chức năng nào đó của hệ thống cần xác thực quyền truy cập:

1 Hệ thống hiển thị cửa sổ cho người dùng nhập số điện thoại và password

2 Người dùng nhập SĐT và password

3 Hệ thống xác định vai trò của người dùng

4 Hệ thống mở màn hình trang chủ và mở các chức năng được phép truy cập của người dùng

Nếu người dùng nhập sai SĐT/password Những công việc sau được thực hiện:

1 Hệ thống mô tả lý do xác thực bị sai

2 Hệ thống lưu ý người dùng đăng nhập lại

3 Khi người dùng nhập lại SĐT và password, bước 3 ở Basic flow được thực hiện

3.3.2 Đăng xuất 3.3.2.1 Mô tả Usecase

Name Đăng xuất Brief description

Người dùng muốn thoát khỏi phiên làm việc hiện tại

STT Loại control Chức năng

1 Input Nhập số điện thoại đã đăng ký

3 Button Thực hiện đăng nhập

4 Button Chuyển đến trang đăng ký

5 Text Chuyến đến trang quên mật khẩu

Actor(s) Bác sĩ, y tá, người dùng

Người dùng cần có tài khoản đã được tạo và đăng nhập thành công vào hệ thống Sau khi đăng xuất thành công, hệ thống sẽ chuyển hướng về trang đăng nhập tương ứng với vai trò của người dùng đã đăng nhập trước đó.

Nếu đăng xuất không thành công: hiển thị trang lỗi

Flow of events Basic flow

Use case bắt đầu khi người dùng chọn vào menu của icon profile ở góc trên bên phải thanh menu:

1 Hệ thống hiển thị cửa sổ yêu cầu người dùng xác nhận kết thúc phiên làm việc

2 Người dùng chọn vào nút đồng ý

3 Hệ thống xóa các thông tin về phiên làm việc trên trình duyệt của người dùng

4 Hiển thị trang đăng nhập tương ứng với quyền đã đăng nhập trước đó

Người dùng chọn cancel ở thông báo yêu cầu xác nhận thoát phiên làm việc, hệ thống sẽ thực hiện các công việc sau:

1 Thông báo sẽ được tắt đi

Nếu hệ thống xảy ra sự cố (bảo trì, …) không thể gửi các tin nhắn, hệ thống sẽ thực hiện các công viêc sau:

1 Hiển thị thông báo có sự cố xảy ra không thể , nhắc người gửi được tin nhắn, hiển thị thông báo nhắc người dùng thực hiện lại hành động sau

STT Loại control Chức năng

3.3.3 Đăng ký 3.3.3.1 Mô tả Usecase

Brief description Người dùng đăng ký tài khoản trên hệ thống MyDoctor Actor(s) Bệnh nhân

Người dùng chưa có tài khoản trong hệ thống sẽ nhận được thông báo rằng tài khoản chưa được đăng ký Hệ thống yêu cầu xác thực số điện thoại qua mã OTP trên trang AuthOTP.

- Không thành công: : Hệ thống thông báo tài khoản đă được đăng ký

Flow of events Basic flow (Thành công)

Use case bắt đầu khi người dùng cần thực hiện chức năng đăng ký của hệ thống Chức năng đăng ký cần xác thực

1 Hệ thống hiển thị trang Signup cho người dùng nhập SĐT và mật khẩu

2 Người dùng nhập SĐT và mật khẩu và nhấn đăng ký

3 Hệ thống xác thực SĐT

4 Hệ thống chuyển sang trang AuthOTP kèm SĐT, mật khẩu vừa nhập và action = ‘signup’

Nếu người dùng nhập sai SĐT hoặc không nhập mật khẩu thì nút đăng ký bị vô hiệu hóa

Nếu SĐT có tồn tại trong CSDL Những công việc sau được thực hiện:

1 Hệ thống mô tả lý do xác thực bị sai để lưu ý người dùng đăng ký lại

2 Khi người dùng nhập lại SĐT và mật khẩu và nhấn đăng ký, bước 3 ở Basic flow được thực hiện

STT Loại control Chức năng

1 Text Hiển thị văn bản

2 Text Hiển thị văn bản

3 PhoneInput Nhập số điện thoại

4 Text Hiển thị văn bản

6 Button Kiểm tra dữ liệu nhập

• SĐT ko hợp lệ / tài khoản đã được đăng ký / chưa nhập mật khẩu: Hiển thị alert lỗi

• SĐT hợp lệ và tài khoản chưa được đăng ký: Chuyển trang đến Authentication OTP

Người dùng muốn khôi phục mật khẩu cho tài khoản đã đăng ký trên hệ thống Điều kiện tiên quyết là người dùng đã có tài khoản trong hệ thống Sau khi thực hiện, nếu thành công, hệ thống sẽ thông báo rằng tài khoản đã được đăng ký và yêu cầu xác thực số điện thoại qua mã OTP trên trang AuthOTP.

- Không thành công: : Hệ thống thông báo tài khoản chưa được đăng ký

Flow of events Basic flow (Thành công)

Use case bắt đầu khi người dùng chọn chức năng quên mật khẩu Chức năng quên mật khẩu cần xác thực

1 Hệ thống hiển thị trang ForgotPass cho người dùng nhập SĐT và mật khẩu mới

2 Người dùng nhập SĐT và mật khẩu mới và nhấn cập nhật

3 Hệ thống xác thực SĐT

4 Hệ thống chuyển sang trang AuthOTP kèm SĐT, mật khẩu vừa nhập và action = ‘forgotPass’

Nếu người dùng nhập sai SĐT hoặc không nhập mật khẩu thì nút đăng ký bị vô hiệu hóa

Nếu SĐT không có trong CSDL Những công việc sau được thực hiện:

1 Hệ thống mô tả lý do xác thực bị sai để lưu ý người dùng đăng ký lại

2 Khi người dùng nhập lại SĐT và mật khẩu và nhấn đăng ký, bước 3 ở Basic flow được thực hiện

STT Loại control Chức năng

1 Text Hiển thị văn bản

2 Text Hiển thị văn bản

3 PhoneInput Nhập số điện thoại

4 Text Hiển thị văn bản

6 Button Kiểm tra dữ liệu nhập

• SĐT ko hợp lệ / tài khoản chưa được đăng ký / chưa nhập mật khẩu: Hiển thị alert lỗi

• SĐT hợp lệ và tài khoản đã được đăng ký: Chuyển trang Authentication OTP

Name Đổi mật khẩu Brief description

Người dùng muốn đổi mật khẩu của tài khoản đã đăng ký trên hệ thống

Actor(s) Bệnh nhân Pre- conditions

Người dùng đã đăng nhập vào trong hệ thống

- Nếu đổi mật khẩu thành công: Hệ thống thông báo đổi mật khẩu thành công

- Nếu đổi mật khẩu không thành công: Hệ thống hiển thị lý do đổi mật khẩu không thành công

Flow of events Basic flow (Thành công)

Use case bắt đầu khi người dùng chọn chức năng đổi mật khẩu Chức năng quên mật khẩu cần xác thực

1 Hệ thống hiển thị trang ChangePass cho người dùng nhập mật khẩu hiện tại và mật khẩu mới, nhập lại mật khẩu mới và mã xác nhận

2 Người dùng nhập mật khẩu hiện tại và mật khẩu mới, nhập lại mật khẩu mới và mã xác nhận và nhấn cập nhật

3 Hệ thống xác thực các thông tin vừa nhập

4 Hệ thống đổi mật khẩu mới cho tài khoản trên database

5 Hệ thống hiển thị thông báo đổi mật khẩu thành công Alternative flow (Thất bại)

Nếu người dùng nhập sai Những công việc sau được thực hiện:

1 Hệ thống mô tả lý do không đổi được mật khẩu và lưu ý người dùng làm lại

2 Hệ thống tạo mã xác thực mới

3 Khi người dùng nhập lại và nhấn cập nhật, bước 3 ở Basic flow được thực hiện

1 Input Mật khẩu hiện tại

2 Input Nhập lại mật khẩu mới

5 Button Reset mã xác thực

6 Button Thực hiện chức năng Đổi mật khẩu

Name Xác thực OTP Brief description

Người dùng xác thực SĐT bằng mã OTP trên hệ thống MyDoctor

Actor(s) Bệnh nhân Pre- conditions

- Nếu xác thực thành công: Hệ thống thông báo xác thực thành công và hiển thị nội dung trang Home dưới danh của tài khoản

- Nếu xác thực không thành công: Hệ thống thông báo xác thực không thành công

Flow of events Basic flow (Thành công)

Use case bắt đầu khi người dùng cần thực hiện chức năng xác thực OTP của hệ thống

1 Người dùng nhập mã OTP vừa nhận vào trang OTPAuth và nhấn xác thực

2 Hệ thống xác thực mã OTP và thực hiện tạo tài khoản hoặc cập nhật mật khẩu tùy vào action

3 Hệ thống chuyển sang trang Home

Nếu người dùng nhập sai mã OTP hay mã OTP hết hạn Những công việc sau được thực hiện:

1 Hệ thống mô tả lý do Nếu mã OTP hết hạn thì nhấn gửi lại mã OTP trong trang AuthOTP để nhận mã OTP mới

2 Khi người dùng nhập lại mã OTP và nhấn xác thực, bước 2 ở Basic flow được thực hiện

STT Loại control Chức năng

1 Text Hiển thị văn bản

3 Button Xác thực bằng mã OTP

4 Button Gửi tin nhắn chứa mã OTP

3.3.7 Cập nhập thông tin cá nhân

Name Cập nhật thông tin cá nhân Brief description Người dùng muốn cập nhật thông tin cá nhân Actor(s) Bệnh nhân

Người dùng cần đăng nhập vào hệ thống để cập nhật thông tin cá nhân Nếu việc cập nhật thành công, hệ thống sẽ hiển thị sự thay đổi trên trang Profile.

- Nếu thông tin cá nhân cập nhật không thành công: Hệ thống hiển thị lý do thông tin cá nhân chưa thể cập nhật được

Flow of events Basic flow (Thành công) Use case bắt đầu khi người dùng chọn chức năng cập nhật thông tin cá nhân

1 Hệ thống hiển thị trang Profile với các thông tin cá nhân của người dùng

2 Người dùng nhập các thông tin cần sửa và nhấn nút update

3 Hệ thống kiểm tra thông tin hợp lệ

4 Hệ thống cập nhật thông tin chỉnh sửa của tài khoản trên database

5 Hệ thống hiện sự thay đổi trên trang Profile

Nếu người dùng nhập thông tin không hợp lệ Những công việc sau được thực hiện:

1 Hệ thống mô tả lý do sai và lưu ý người dùng nhập lại

2 Khi người dùng nhập lại và nhấn update, bước 3 ở Basic flow được thực hiện

STT Loại control Chức năng

1 Text Hiển thị văn bản

2 Avatar Tải ảnh từ bộ nhớ thiết bị

3 Text Hiển thị văn bản

4 TextInput Nhập họ và tên

5 Text Hiển thị văn bản

6 DatePicker Chọn ngày, tháng, năm

7 Text Hiển thị văn bản

9 Text Hiển thị giới tính

10 Text Hiển thị văn bản

12 Button Cập nhật thông tin cá nhân

3.3.8 Quản lý chỉ số BMI

Name Quản lý chỉ số BMI Brief description

Người dùng muốn lưu thông tin liên quan đến sức khỏe về chiều cao, cân nặng

Actor(s) Người dùng – bệnh nhân Pre-conditions Người dùng đã được tạo tài khoản trong hệ thống và đã đăng nhập thành công Post-conditions

Use case bắt đầu khi người dùng chọn vào trang theo dõi sức khỏe, sau đó lựa chọn theo các chức năng về lưu trữ chiều cao, cân nặng:

1 Người dùng chọn button thêm hoặc cập nhập ở mỗi chức năng chính

2 Cập nhập thông tin 2.1 Chọn button cập nhập 2.2 Xuất hiện hộp thoại để nhập các thông tin về sức khỏe

2.3 Chọn button lưu để cập nhập thông tin

3 Xem lịch sử cập nhập 3.1 Chọn vào chức năng xem lịch sử cập nhập 3.2 Hệ thống hiển thị danh sách chỉ số đã lưu

4 Xem theo ngày tháng 4.1 Chọn button lọc calandar trên thanh header 4.2 Chọn ngày muốn xem thông tin

4.3 Chọn button Xem 4.4 Hệ thống hiển thị thông tin theo ngày đã lọc Alternative flow (Thất bại)

Nếu khi thực hiên thêm chức năng thêm thông tin ở bước 2 bị lỗi sẽ thông báo lỗi cho người dùng nhập lại

Tại bước 4.2 của Basic Flow người dùng có thể chọn bỏ lọc để xem lại toàn bộ danh sách ban đầu

STT Loại control Chức năng

6 Button Mở đến trang thêm dữ liệu cho BMI

7 Button Xem tất cả các dữ liệu đã nhập

8 Button Trở về trang trước

9 Button Mở dialog Chọn lịch ngày để lọc danh sách các dữ liệu BMI

10 Button Thực hiện chọn lọc danh sách

11 Button Thực hiện bỏ lọc những ngày đã chọn

3.3.9 Quản lý nhịp tim, huyết áp

Name Quản lý chỉ số nhịp tim, huyết áp Brief description

Người dùng muốn lưu thông tin liên quan đến sức khỏe về nhịp tim, huyết áp

Actor(s) Người dùng – bệnh nhân Pre-conditions Người dùng đã được tạo tài khoản trong hệ thống và đã đăng nhập thành công Post-conditions

Flow of events Basic flow

Use case bắt đầu khi người dùng chọn vào trang theo dõi sức khỏe, sau đó lựa chọn theo các chức năng về lưu trữ nhịp tim, huyết áp:

1 Người dùng chọn button thêm hoặc cập nhập ở mỗi chức năng chính

2 Cập nhập thông tin 2.1 Chọn button cập nhập

2.2 Xuất hiện hộp thoại để nhập các thông tin về sức khỏe

2.3 Chọn button lưu để cập nhập thông tin

3 Xem lịch sử cập nhập 3.1 Chọn vào chức năng xem lịch sử cập nhập 3.2 Hệ thống hiển thị danh sách chỉ số đã lưu

4 Xem theo ngày tháng 4.1 Chọn button lọc calandar trên thanh header 4.2 Chọn ngày muốn xem thông tin

4.3 Chọn button Xem 4.4 Hệ thống hiển thị thông tin theo ngày đã lọc

5 Gửi thông tin cho bác sĩ đã đăng kí dịch vụ khám bệnh, người dùng bấm chọn buton send

5.1 Hiển thị alert danh sách các bác sĩ 5.2 Chọn những bác sĩ mà người dùng muốn gửi 5.3 Hoặc tìm kiếm theo tên những bác sĩ mà người dùng muốn gửi

5.4 Chọn gửi cho bác sĩ Alternative flow (Thất bại)

Nếu khi thực hiên thêm chức năng thêm thông tin ở bước 2 bị lỗi sẽ thông báo lỗi cho người dùng nhập lại

Tại bước 4.2 của Basic Flow người dùng có thể chọn bỏ lọc để xem lại toàn bộ danh sách ban đầu

3.3.10 Đặt lịch khám theo khoa 3.3.10.1 Mô tả Usecase

Name Đặt lịch khám theo khoa Brief description Người dùng muốn đặt lịch khám theo khoa Actor(s) Bệnh nhân

Pre-conditions Người dùng đã đăng nhập vào hệ thống Post-conditions - Nếu đặt lịch khám thành công: Hệ thống thông báo đặt lịch khám thành công

- Nếu đặt lịch khám không thành công: Hệ thống hiển thị lý do đặt lịch khám không thành công

Flow of events Basic flow (Thành công)

Use case bắt đầu khi người dùng chọn chức năng đặt lịch khám

1 Hệ thống hiển thị trang BookingScreen cho người dùng chọn khoa/bác sĩ khám

2 Người dùng chọn khoa/bác sĩ khám

3 Hệ thống hiển thị trang đặt lịch khám

4 Người dùng chọn ngày, giờ khám và nhấn nút đặt lịch

5 Hệ thống kiểm tra ngày khám chưa qua

6 Hệ thống tạo số thứ tự khám cho người dùng

7 Hệ thống hiển thị thông báo đặt lịch khám thành công

Nếu ngày khám đã qua Những công việc sau được thực hiện:

1 Hệ thống mô tả lý do không đặt lịch khám được và lưu ý người chọn ngày, giờ lại

2 Khi người dùng chọn lại và nhấn đặt lịch, bước 5 ở Basic flow được thực hiện

3.3.11 Đặt lịch khám theo bác sĩ 3.3.11.1 Mô tả Usecase

Name Đặt lịch khám theo bác sĩ Brief description Người dùng muốn đặt lịch khám theo bác sĩ Actor(s) Bệnh nhân

Pre-conditions Người dùng đã đăng nhập vào hệ thống Post-conditions - Nếu đặt lịch khám thành công: Hệ thống thông báo đặt lịch khám thành công

- Nếu đặt lịch khám không thành công: Hệ thống hiển thị lý do đặt lịch khám không thành công

Flow of events Basic flow (Thành công)

Use case bắt đầu khi người dùng chọn chức năng đặt lịch khám

1 Hệ thống hiển thị trang xem chi tiết bác sĩ

2 Người dùng chọn đặt lịch

3 Hệ thống hiển thị alert ngày và lịch khám của bác sĩ để chọn lịch khám

4 Người dùng chọn ngày khám và nhấn nút đặt lịch

5 Hệ thống kiểm tra ngày khám có tồn tại trong lịch làm việc của bác sĩ chưa

6 Hệ thống chuyển đến trang chọn phòng và buổi

7 Khi chọn vào một phòng và buổi, Hệ thống tạo STT

8 Kiểm tra xem lịch đó người dùng đã đặt chưa

9 Hệ thống tạo đặt lịch cho người dùng

10 Thông báo kết quả đặt lịch Alternative flow

Nếu lịch khám đã đặt trước Những công việc sau được thực hiện:

1 Hệ thống mô tả lý do không đặt lịch khám được và lưu ý người chọn ngày, giờ lại

2 Khi người dùng chọn lại và nhấn đặt lịch, bước 2 ở Basic flow được thực hiện

3.3.12 Theo dõi số thứ tự khám 3.3.12.1 Mô tả Usecase

Name Theo dõi số thứ tự khám Brief description Người dùng muốn theo dõi số thứ tự khám Actor(s) Bệnh nhân

STT Loại control Chức năng

1 Button Đóng alert đặt lịch

2 Button Button chọn ngày đã chọn chuyển đến trang chọn phòm khám

3 Button Quay trở về trang profile bác sĩ

Pre-conditions Người dùng đã đăng nhập vào hệ thống Post-conditions Hệ thống hiển thị danh sách STT khám bệnh của người dùng Extension point Không có

STT Loại control Chức năng

1 Text Hiển thị văn bản

2 FlatList Hiển thị danh sách STT khám

3.3.13 Xem hồ sơ bệnh án 3.3.13.1 Mô tả Usecase

Name Xem hồ sơ bệnh án Brief description Người dùng muốn xem hồ sơ bệnh án Actor(s) Bệnh nhân

Pre-conditions Người dùng đã đăng nhập vào hệ thống

Post-conditions Hệ thống hiển thị danh sách bệnh án của người dùng

STT Loại control Chức năng

1 Text Hiển thị văn bản

2 FlatList Hiển thị danh sách bệnh án

3.3.14 Đăng nhập Web 3.3.14.1 Mô tả Usecase

Brief description Người dùng đăng nhập vào web https://my-doctor-

Actor(s) Bác sĩ, y tá, Quản trị viên Pre-conditions Người dùng có tài khoản trong hệ thống Post-conditions - Thành công: Hệ thống chuyển đến trang Home

- Không thành công: Hệ thống hiển thị lý do không thành công

Flow of events Basic flow (Thành công)

Use case bắt đầu khi người dùng chọn chức năng đăng nhập

1 Hệ thống hiển thị trang Signin

2 Người dùng nhập tên đăng nhập, mật khẩu và nhấn nút Đăng nhập

3 Hệ thống kiểm tra tên đăng nhập và mật khẩu

4 Hệ thống chuyển đến trang Home

Nếu không nhập tên đăng nhập hoặc mật khẩu, nút Đăng nhập sẽ bị vô hiệu hóa Tài khoản cần phải được đăng ký, đúng thông tin và thuộc đối tượng bệnh nhân để có thể thực hiện các công việc tiếp theo.

1 Hệ thống mô tả lý do và lưu ý người nhập lại

2 Khi người dùng chọn lại và nhấn đặt lịch, bước 3 ở Basic flow được thực hiện

STT Loai control Chức năng

1 Input type = ”text” Trường nhập tên đăng nhập

2 Input type = ”password” Trường nhập mật khẩu

3 Input type = “checkbox” Lưu/Xóa tài khoản đăng nhập trong lần đăng nhập tới

4 Button Thực hiện chức năng Đăng nhập

3.3.15 Xem biểu đồ thống kê 3.3.15.1 Mô tả Usecase

Name Xem biểu đồ thống kê Brief description

Người dùng muốn xem biểu đồ thống kê

Actor(s) Bác sĩ, y tá Pre- conditions

Người dùng đang đăng nhập trong hệ thống

Hệ thống hiển thị biểu đồ thống kê tùy vào đối tượng đang đăng nhập

Người dùng bắt đầu sử dụng chức năng xem biểu đồ thống kê, và hệ thống sẽ hiển thị biểu đồ phù hợp với đối tượng đang đăng nhập.

STT Loai control Chức năng

1 Icon Mở rộng/ Thu gọn Sidebar

2 Link Chuyển đến trang chủ

3 Link Chuyển đến trang bệnh án

4 Link Chuyển đến trang bệnh nhân đăng ký dịch vụ

5 Icon Thực hiện chức năng Đăng xuất

6 Chart Biểu đồ lượng người khám bệnh theo tuần, tháng

3.3.16 Tạo số thứ tự khám bệnh 3.3.16.1 Mô tả Usecase

Name Tạo số thứ tự khám bệnh Brief description Người dùng muôn tạo số thứ tự khám bệnh

Pre-conditions Người dùng có tài khoản y tá trong hệ thống Post-conditions - Thành công: Hệ thống hiển thị số thứ tự được thêm vào

- Không thành công: Hệ thống hiển thị lý do không thành công Flow of events

Basic flow (Thành công) Use case bắt đầu khi người dùng chọn chức năng tạo số thứ tự khám bệnh

1 Hệ thống hiển thị trang Position

2 Người dùng chọn phòng, nhập số thứ tự và nhấn Thêm

3 Hệ thống kiểm tra phòng và số thứ tự

4 Hệ thống hiển thị số thứ tự được thêm vào

Nếu số thự tự của phòng khám đã được đăng ký Những công việc sau được thực hiện:

1 Hệ thống mô tả lý do và lưu ý người thực hiện lại

2 Khi người dùng thực hiện lại, bước 3 ở Basic flow được thực hiện

STT Loai control Chức năng

1 Button Mở hộp thoại Thêm số thứ tự

2 Select Hiển thị danh sách phòng khám trong khoa

3 Input type = “text” Trường nhập số thứ tự

4 Button Thực hiện chức năng Thêm số thứ tự

3.3.17 Xem chi tiết thông tin bác sĩ 3.3.17.1 Mô tả Usecase

Name Xem chi tiết thông tin bác sĩ Brief description Người dùng muốn chi tiết thông tin bác sĩ Actor(s) Bệnh nhân

Người dùng đã đăng nhập vào hệ thống

Usecase bắt đầu khi người dùng ở trang danh sách các bác sĩ và muốn xem chi tiết bác sĩ:

1 Hệ thống hiển thị thông tin bác sĩ cho tại trang xem thông tin bác sĩ

STT Loai control Chức năng

1 Image Hình đại diện của bác sĩ

2 Text Tên và chuyên khoa của bác sĩ

3 Text Thông tin liên lạc của bác sĩ

4 Button Thực hiện chức năng nhắn tin với bác sĩ

5 Button Thực hiện chức năng đặt lịch

6 Component Hiển thị thông tin các dịch vụ khám bệnh của bác sĩ

3.3.18 Tìm kiếm bác sĩ 3.3.18.1 Mô tả Usecase

Name Tìm kiếm bác sĩ theo tên Brief description Người dùng muốn tìm kiếm bác sĩ Actor(s) Bệnh nhân

Pre-conditions Người dùng đã đăng nhập vào hệ thống Basic flow

Usecase bắt đầu khi người dùng ở trang danh sách các bác sĩ và muốn tìm kiếm bác sĩ:

1 Người dùng nhập tên bác sĩ trên thanh tìm kiếm

2 Hệ thống lọc danh sách bác sĩ theo tên bác sĩ đã nhập

3 Hiển thị danh sách các bác sĩ đã lọc Extension point Tại bước 2 của Basic flow nếu người dùng nhập tên bác sĩ không có trong danh sách bệnh viện, hệ thống hiện loading thông báo không có bác sĩ

STT Loai control Chức năng

1 TextInput Nhập tên bác sĩ để tìm kiếm bác sĩ

2 Component Hiện các thông tin bác sĩ

3.3.19 Quản lý dịch vụ 3.3.19.1 Mô tả Usecase

Name Quản lý dịch vụ Brief description Người dùng quản lý các dịch vụ của mình Actor(s) Bệnh nhân

Pre-conditions Người dùng đã đăng nhập vào hệ thống Basic flow

Usecase bắt đầu khi người dùng ở trang “Bác sĩ riêng” gồm nhiều tab:

1 Tab “Bác sĩ riêng” hiển thị danh sách các bác sĩ mà người dùng đã đăng kí dịch vụ

2 Tab “Dịch vụ” hiển thị danh sách các dịch vụ đang sử dụng

3 Tab “” hiển thị danh sách các dịch vụ đang sử dụng Extension point Tại bước 4.2 của Basic flow nếu đăng kí không thành công hệ thống báo lỗi Tại bước 2 của Basic flow nếu bác sĩ này đã được đăng kí, hệ thống thông báo lỗi

STT Loai control Chức năng

1 Tab Header Chọn những dịch vụ theo trạng thái đăng ký

2 Component Hiện các thông tin bác sĩ đã đăng ký

3 Component Hiển thị dịch vụ đã đăng ký

4 Button Hiển thị thời gian còn lại đăng ký dịch vụ

3.3.20 Đăng ký dịch vụ 3.3.20.1 Mô tả Usecase Name Đăng ký dịch vụ

Người dùng muốn đăng kí dịch vụ của bác sĩ

Actor(s) Bệnh nhân Pre- conditions Người dùng đã đăng nhập vào hệ thống Basic flow

Usecase bắt đầu khi người dùng ở trang xem chi tiết profile bác sĩ và muốn đăng kí dịch vụ bác sĩ:

1 Người dùng chọn dịch vụ mà mình muốn đăng kí

3 Hệ thống chuyển đến trang chi tiết dịch vụ

4 Nếu người dùng có 2 sự lựu chọn:

4.1 Bấm ra thoát nếu không muốn đăng kí 4.2 Bấm đăng kí, hệ thống tạo đăng kí cho người dùng

Nếu đăng ký không thành công tại bước 4.2 của Basic flow, hệ thống sẽ báo lỗi Tương tự, nếu bác sĩ đã được đăng ký tại bước 2 của Basic flow, hệ thống cũng sẽ thông báo lỗi.

3.3.21 Thanh toán dịch vụ 3.3.21.1 Mô tả Usecase

Name Thanh toán dịch vụ Brief description

Người dùng đã đăng kí dịch vụ và muốn thanh toán dịch vụ

Actor(s) Bệnh nhân Pre- conditions

Người dùng đã đăng nhập vào hệ thống

Usecase bắt đầu khi người dùng đã đăng kí dịch vụ và bắt đầu thanh toán:

1 Người dùng xem thông tin thanh toán bằng số tài khoản hiển thị trên screen

2 Người dùng có 3 lựa chọn 2.1 Tự chuyển khoản 2.1.1 Người chuyển khoản bằng số tài khoản 2.1.2 Người dùng bấm chọn button “Đã chuyển khoản xong”, Admin sẽ kiểm tra và chuyển trạng thái cho người dùng

2.2 Chuyển khoản bằng paypal 2.2.1 Người dùng bấm vào button thanh toán bằng paypal 2.2.2 Hệ thống chuyển đổi đơn vị tiền sang USD

2.2.2 Gọi API của paypal để thanh toán 2.3 Người dùng bấm hủy thanh toán để hủy đăng kí dịch vụ

Tại bước 2.2.2 của Basic flow nếu thanh toán không thành công hệ thống báo lỗi

STT Loại control Chức năng

1 Text Sao chép số tài khoản vào clipboard

2 Text Sao chép nội dung chuyển khoản vào clipboard

3 Button Xác nhận đã chuyển khoản

4 Button Thực hiện thanh toán bằng paypal

5 Button Quay lại trang thanh toán

6 Button Sau khi đăng nhập, sử dụng api của paypal để thanh toán

3.3.22 Quản lý các dịch vụ đã đăng ký

Name Quản lý các dịch vụ đã đăng ký Brief description Admin quản lý những dịch vụ mà người dùng đăng kí

Pre-conditions Admin đã đăng nhập vào hệ thống Basic flow

Usecase bắt đầu khi admin vào xem danh sách những dịch vụ đã được bệnh nhân đăng kí:

1 Xem danh sách những dịch vụ đã được đăng kí

2 Tìm kiếm những dịch vụ bằng số điện thoại của bệnh nhân

3 Lọc danh sách dịch vụ theo trạng thái của dịch vụ

4 Cập nhập trạng thái của các dịch vụ 4.1 Admin bấm vào button thay đổi trạng thái 4.2 Hệ thống hiển thị alert thông báo xác nhận cập nhập 4.3 Hệ thống cập nhập lại trạng thái của dịch vụ được đăng ký đã chọn thay đổi Extension point Không có

STT Loại control Chức năng

1 Input Nhập số điện thoại để tìm kiếm các dịch vụ đã đăng kí

3 Button Button chuyển trạng thái của payment

4 Alert Thông báo các thông tin sẽ chuyển trạng thái

3.3.23 Quản lý các bệnh nhân đăng ký 3.3.23.1 Mô tả Usecase

Name Quản lý các bệnh nhân đã đăng ký dịch vụ

Brief description Doctor quản lý những bệnh nhân đăng ký mình

Pre-conditions Doctor đã đăng nhập vào hệ thống Basic flow

Usecase bắt đầu khi doctor vào xem danh sách bệnh nhân đang sử dụng dịch vụ khám bệnh của mình:

1 Xem danh sách những bệnh nhân đã được đăng kí

2 Tìm kiếm những bệnh nhân bằng tên

3 Xem những thông tin về sức khỏe mà bệnh nhân gửi 3.1 Doctor bấm vào button xem thông tin

Extension point Không có Sequence Diagram

STT Loại control Chức năng

1 button Xem danh sách bệnh nhân

2 input Nhập tên bệnh nhân để tìm kiếm

3 Text Chuyển đến trang xem thông báo từ người bệnh

3.3.24 Tạo bệnh án 3.3.24.1 Mô tả Usecase

Brief description Người dùng muốn tạo bệnh án Actor(s) Bác sĩ

Pre-conditions Người dùng có tài khoản bác sĩ trong hệ thống Post-conditions - Thành công: Hệ thống chuyển đến trang Record

- Không thành công: Hệ thống hiển thị lý do không thành công Flow of events Use case bắt đầu khi người dùng chọn chức năng tạo bệnh án

1 Hệ thống hiển thị trang AddRecord

2 Người dùng nhập tên bệnh nhân, tên bệnh, đơn thuốc và nhấn nút Lưu

3 Hệ thống lưu dữ liệu vào databse

4 Hệ thống chuyển đến trang Record

3.3.25 Xem danh sách số thứ tự khám hôm nay theo khoa 3.3.25.1 Mô tả Usecase

Name Xem danh sách số thứ tự khám hôm nay theo khoa

Brief description Người dùng muốn xem danh sách số thứ tự khám hôm nay theo khoa

Người dùng cần đăng nhập vào hệ thống để xem danh sách số thứ tự khám hôm nay theo khoa Hệ thống sẽ hiển thị danh sách này khi người dùng chọn chức năng tương ứng.

1 Hệ thống hiển thị danh sách khoa

2 Người dùng chọn một khoa

3 Hệ thống hiển thị số thứ tự khám hôm nay theo khoa Extension point Không có

STT Loai control Chức năng

1 LinkGroup Chuyển hướng đến trang Position theo khoa

2 Select Lọc bảng theo trạng thái

3 Select Lọc bảng theo phòng khám

4 Table Hiển thị danh sách số thứ tự khám trong ngày

3.3.26 Lọc số thứ tự khám theo phòng và trạng thái 3.3.26.1 Mô tả Usecase

Name Lọc số thứ tự khám theo phòng và trạng thái Brief description Người dùng muốn lọc số thứ tự khám theo phòng và trạng thái

Users must be logged into the system to access the functionality Once logged in, the system displays a list of ticket numbers filtered by clinic and selected status The use case begins when the user selects the option to filter ticket numbers based on the clinic and status.

1 Hệ thống hiển thị trang Record

2 Người dùng chọn phòng khám và trạng thái

3 Hệ thống hiển thị số thứ tự khám đã được lọc theo phòng khám và trạng thái

STT Loai control Chức năng

1 LinkGroup Chuyển hướng đến trang Position theo khoa

2 Select Lọc bảng theo trạng thái

3 Select Lọc bảng theo phòng khám

4 Table Hiển thị danh sách số thứ tự khám trong ngày

3.3.27 Chuẩn đoán và kê đơn 3.3.27.1 Mô tả Usecase

Name Chẩn đoán và kê đơn Brief description Người dùng muốn chẩn đoán bệnh và kê đơn Actor(s) Bác sĩ

THIẾT KẾ PHẦN MỀM

CÀI ĐẶT VÀ KIỂM THỬ

Ngày đăng: 31/07/2023, 19:58

HÌNH ẢNH LIÊN QUAN

Bảng dưới đây là ví dụ về React Native Component tương ứng với các đối tượng trong  các hệ điều hành: - Xây dựng app đặt lịch khám bệnh và theo dõi sức khỏe
Bảng d ưới đây là ví dụ về React Native Component tương ứng với các đối tượng trong các hệ điều hành: (Trang 14)
Hình 1. Ứng dụng UMC - Đăng ký khám bệnh - Xây dựng app đặt lịch khám bệnh và theo dõi sức khỏe
Hình 1. Ứng dụng UMC - Đăng ký khám bệnh (Trang 27)
Hình Ứng dụng eDoctor. - Xây dựng app đặt lịch khám bệnh và theo dõi sức khỏe
nh Ứng dụng eDoctor (Trang 31)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w