Những ưu điểm chính của LVTN: - Dựa trên việc tìm hiểu nghiệp vụ tại cơ sở phòng khám để nắm quy trình thực tế và các thông tin dữ liệu y khoa cần lưu trữ, sinh viên đã đề ra các tính nă
TỔNG QUAN HỆ THỐNG
Giới thiệu
Trong hệ thống thông tin y tế hiện tại, việc lưu trữ thông tin bệnh nhân chủ yếu vẫn dựa vào giấy tờ và sổ sách, dẫn đến nhiều bất cập Khối lượng thông tin lớn gây khó khăn trong việc tìm kiếm, và việc chia sẻ thông tin giữa các khâu khám bệnh, các khoa trong cơ sở chăm sóc sức khỏe, cũng như giữa các cơ sở y tế với nhau còn hạn chế.
Sự phát triển mạnh mẽ của công nghệ thông tin đã thúc đẩy việc hoàn thiện cơ sở pháp lý cho ứng dụng công nghệ trong xã hội, đặc biệt trong lĩnh vực chăm sóc sức khỏe Việc xây dựng và triển khai hệ thống bệnh án điện tử trở thành xu thế tất yếu cho các cơ sở y tế cả trong nước và quốc tế.
Bệnh án điện tử là hồ sơ y tế được số hóa, thuộc sở hữu của một cơ sở y tế cụ thể như bệnh viện hoặc phòng khám, chứa thông tin do bác sĩ thu thập để chẩn đoán và điều trị bệnh nhân Hồ sơ này không chỉ đơn thuần là chuyển đổi từ giấy sang số mà còn tích hợp nhiều tiện ích cho bác sĩ, điều dưỡng và nhà quản lý, nhằm nâng cao hiệu quả điều trị và an toàn cho bệnh nhân Trong khi đó, hồ sơ sức khỏe điện tử mở rộng thông tin bệnh nhân ra ngoài một cơ sở y tế, là tập hợp dữ liệu sức khỏe từ nhiều bác sĩ tại các cơ sở khác nhau, cho phép chia sẻ thông tin giữa các cơ sở y tế, từ đó cung cấp thông tin đầy đủ và hữu ích hơn cho quá trình chẩn đoán và điều trị.
Hồ sơ sức khỏe điện tử được Tổ chức Y tế Thế giới xác định là mục tiêu quan trọng cho tất cả hệ thống y tế toàn cầu Trong tương lai, các cơ sở y tế sẽ không còn sử dụng hệ thống hồ sơ bệnh án điện tử riêng biệt, mà thay vào đó, sẽ có một hệ thống thống nhất để lưu trữ dữ liệu và thông tin về tình hình sức khỏe cũng như các dịch vụ chăm sóc trước đó.
CHƯƠNG 1: TỔNG QUAN HỆ THỐNG của người bệnh phải được liên thông, xuyên suốt theo thời gian và địa điểm chăm sóc sức khỏe Điều này đã yêu cầu thay đổi trọng tâm trong chăm sóc sức khỏe ở nhiều lĩnh vực để đảm bảo, nếu có thể nên triển khai thực hiện hồ sơ sức khỏe điện tử trên một phạm vi rộng lớn các cơ sở cung ứng dịch vụ chăm sóc sức khỏe.
Mặc dù nhiều kế hoạch đã được xây dựng, không phải quốc gia nào cũng có thể thực hiện thành công, đặc biệt là ở các nước đang phát triển và ngay cả một số nước phát triển Đây chỉ là tình huống lý tưởng mà thôi.
Tại Việt Nam, hồ sơ sức khỏe điện tử đang trong quá trình hoàn thiện quy định pháp lý và thí điểm tại các bệnh viện loại 1 Việc triển khai này rất phức tạp, yêu cầu sự tham gia của toàn bộ ngành y tế, từ các bệnh viện lớn đến các phòng khám đa khoa, chuyên khoa, và cả những phòng khám nhỏ như phòng khám bác sĩ gia đình.
Để hỗ trợ các mục tiêu của nền y tế số Việt Nam, tôi đã phát triển ý tưởng và thực hiện luận văn về việc xây dựng phần mềm quản lý hồ sơ sức khỏe điện tử cho các phòng khám bác sĩ gia đình, bao gồm cả những phòng khám có một hoặc nhiều chi nhánh.
Vì vậy đề tài được mang tên “Xây dựng phần mềm quản lý hồ sơ sức khỏe điện tử cho các phòng khám gia đình”.
Ý nghĩa
Phần mềm hỗ trợ các phòng khám bác sĩ gia đình, dù chỉ có một hay nhiều chi nhánh, cải thiện dịch vụ chăm sóc sức khỏe bằng cách ghi lại thông tin của bệnh nhân trong một hồ sơ duy nhất Thông tin như dị ứng, kết quả xét nghiệm và lịch sử kê đơn luôn sẵn sàng, giúp hỗ trợ quyết định chẩn đoán, điều trị và dùng thuốc Phần mềm lý tưởng sẽ ghi nhận toàn bộ lịch sử sức khỏe của cá nhân qua tất cả các lần thăm khám tại bất kỳ chi nhánh nào, từ đó giúp phòng khám tận dụng ưu thế của hồ sơ sức khỏe điện tử.
CHƯƠNG 1: TỔNG QUAN HỆ THỐNG Đối với người bệnh:
Hồ sơ sức khỏe điện tử giúp bác sĩ truy cập nhanh chóng và chính xác thông tin sức khỏe của người bệnh, từ đó nâng cao hiệu quả chẩn đoán và điều trị Việc này không chỉ đảm bảo chăm sóc sức khỏe toàn diện và liên tục mà còn giúp phát hiện bệnh sớm, điều trị kịp thời khi bệnh còn ở giai đoạn đầu, mang lại hiệu quả điều trị cao và giảm chi phí khám chữa bệnh.
Thông tin về sức khỏe của bệnh nhân sẽ được chia sẻ tại tất cả các chi nhánh của phòng khám, giúp nâng cao độ chính xác trong chẩn đoán và phối hợp điều trị Việc này không chỉ đảm bảo sự thống nhất trong quá trình điều trị mà còn nâng cao hiệu quả điều trị cho bệnh nhân.
- Có thể tra cứu thông tin lịch sử sức khỏe của người bệnh đến khám chữa bệnh bất kỳ lúc nào một cách nhanh chóng, thuận tiện.
- Cập nhật thông tin khám bệnh, chữa bệnh vào một hệ thống hồ sơ sức khỏe điện tử duy nhất.
Hồ sơ sức khỏe điện tử cung cấp cho bác sĩ thông tin đầy đủ về bệnh tật và tiền sử bệnh, giúp họ có cái nhìn toàn diện hơn về sức khỏe người bệnh Nhờ đó, bác sĩ có thể chẩn đoán chính xác và kịp thời, phát hiện bệnh sớm và điều trị hiệu quả hơn Thêm vào đó, việc chia sẻ thông tin sức khỏe giữa các chi nhánh sẽ nâng cao khả năng chẩn đoán và phối hợp điều trị.
Việc hiện thực và triển khai nền tảng không chỉ giúp tôi áp dụng và củng cố kiến thức từ quá trình học tập và thực tập, mà còn cho phép tôi phân tích thiết kế và lựa chọn công nghệ mới nhất như Spring Boot và NextJs Tôi đã có cơ hội triển khai hệ thống trên nền tảng điện toán đám mây AWS, đồng thời vận dụng kiến thức từ các môn học quan trọng như hệ điều hành, mạng máy tính, hệ cơ sở dữ liệu và lập trình web.
CHƯƠNG 1: TỔNG QUAN HỆ THỐNG
Mục tiêu
Mục tiêu của đề tài là phát triển phần mềm quản lý hồ sơ sức khỏe điện tử cho các phòng khám bác sĩ gia đình Phần mềm cung cấp cho quản trị viên các chức năng như quản lý thông tin chi nhánh, thông tin bác sĩ, và cấu hình chi nhánh với các nhóm chức năng liên quan đến chuyên khoa và phòng khám Đối với bác sĩ, phần mềm hỗ trợ quản lý hồ sơ sức khỏe điện tử của bệnh nhân, bao gồm việc tạo thông tin nhân khẩu, hồ sơ khám, và quản lý thông tin lâm sàng, sức khỏe, cận lâm sàng, chẩn đoán, kết luận, và đơn thuốc.
Sự kết hợp của các chức năng này giúp bác sĩ hoàn thiện hồ sơ bệnh án của người bệnh, lưu trữ theo lịch sử, tạo ra một bộ hồ sơ sức khỏe thống nhất cho bệnh nhân, bất kể thời gian khám hay chi nhánh khám.
KIẾN THỨC NỀN TẢNG
React
Một trong những vấn đề đầu tiên là lựa chọn và xây dựng giao diện, bao gồm UI,
UX và phát triển tính năng cho người dùng là rất quan trọng, đặc biệt khi đối tượng sử dụng là các phòng khám và bác sĩ đã quen với giao diện web Nền tảng web application được ưu tiên do tính phổ biến, dễ sử dụng và khả năng phát triển Sau khi xem xét các công nghệ như VueJs, Html-Js-Css thuần, AngularJs và ReactJs, tôi đã quyết định chọn ReactJs làm khung xương cho dự án React (hay ReactJs, React.js) là một thư viện Javascript mã nguồn mở, cho phép xây dựng các thành phần giao diện tái sử dụng hiệu quả, và hiện là một trong những thư viện hàng đầu để phát triển các ứng dụng một trang (SPA).
SPA, hay ứng dụng một trang, là một xu hướng mới trong phát triển web, mang lại trải nghiệm người dùng tốt hơn.
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG cách sử dụng Client Side Rendering Đầu tiên khi tải một trang web bất kỳ, SPA sẽ tải một trang HTML đơn, mã nguồn Js, sau đó dựa trên request của người dùng, SPA sẽ tiếp tục cập nhật giao diện mà không cần phải request html file từ phía server Toàn bộ resource của web bao gồm các file Css, Javascript, master layout hay cấu trúc web page sẽ được load lần đầu tiên khi chúng ta bắt đầu duyệt một website nào đó Ở những lần sau, khi chuyển sang một page/route khác, SPA sẽ phát hiện được sự thay đổi của URL và từ đó cập nhật giao diện mà không phải yêu cầu lại toàn bộ resource.
Việc sử dụng SPA (Single Page Application) cải thiện trải nghiệm người dùng trên web bằng cách giảm thời gian tải lại toàn bộ trang, tiết kiệm băng thông và thời gian chờ đợi Điều này hoàn toàn khác biệt so với các trang web truyền thống, nơi người dùng phải tải lại toàn bộ trang khi chuyển đổi giữa các trang SPA đặc biệt mang lại lợi ích lớn trên các nền tảng di động, nơi băng thông thường thấp hơn so với máy tính.
ReactJS cho phép tái sử dụng mã nguồn thông qua việc chia nhỏ website thành các React Component Việc lồng ghép các component giúp tiết kiệm thời gian viết code và kiểm thử, đồng thời giải quyết hiệu quả các vấn đề khi dự án mở rộng Giao diện được xây dựng từ các component kết hợp, cho phép sử dụng lại một component ở nhiều vị trí khác nhau trong dự án, từ đó dễ dàng quản lý và duy trì.
React đã giới thiệu cú pháp JSX, cho phép nhúng HTML vào trong các component, giúp chúng trở nên dễ hiểu và quen thuộc hơn JSX chuyển đổi cú pháp gần giống XML thành Javascript, cho phép lập trình viên viết code ReactJs bằng cú pháp XML thay vì Javascript Các phần tử XML, thuộc tính và children được chuyển đổi thành các đối số cho React.createElement.
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
DOM ảo (virtual DOM) là tính năng nổi bật của ReactJs, giúp tăng tốc độ hiệu suất đáng kể Đội ngũ phát triển nhận thấy rằng mặc dù JavaScript rất nhanh, nhưng việc cập nhật DOM lại làm giảm tốc độ Vì vậy, React đã tối ưu hóa quá trình này bằng cách giảm thiểu các thay đổi cần thiết trên DOM, từ đó nâng cao hiệu quả cập nhật.
React sử dụng một cây DOM để lưu giữ ánh xạ của DOM, bao gồm các thuộc tính và thành phần con Khi dữ liệu của Component thay đổi, React sẽ vẽ lại giao diện nhưng không thay đổi trực tiếp mô hình DOM của trình duyệt Thay vào đó, nó sử dụng một DOM ảo để tính toán sự khác biệt giữa hai mô hình DOM và chỉ cập nhật những khác biệt đó cho DOM của trình duyệt Cách tiếp cận này giúp tăng hiệu năng cho ứng dụng web, giảm thiểu tác động lên DOM và mang lại trải nghiệm mượt mà hơn cho người dùng.
In version 16.8, ReactJs introduced a new feature called React Hook, allowing us to connect state and component lifecycle to functional components This significantly reduces the amount of code, making components more lightweight It was created to address several issues.
- “Wrapper hell” các component được lồng (nested) vào nhau nhiều tạo ra một DOM tree phức tạp.
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
- Sự phức tạp của Lifecycles trong class.
React provides several default hooks, including `useState`, `useEffect`, and `useRef`, and allows developers to create custom hooks for reuse React hooks leverage JavaScript's closure mechanism to maintain independent state, which can be utilized within functional components.
React cung cấp một hệ thống thư viện phong phú và một cộng đồng đông đảo, mang lại nhiều lợi ích cho quá trình phát triển giao diện.
Redux
Trong ReactJs, khi dữ liệu thay đổi, nó có thể ảnh hưởng đến nhiều component cùng lúc, dẫn đến việc rerender và vẽ lại giao diện Các thư viện như React và Angular được thiết kế để các component tự quản lý trạng thái (state) của chúng mà không cần sự can thiệp từ bên ngoài.
Trong một ứng dụng, việc chia sẻ state của component nên được thực hiện ở component cha gần nhất để đảm bảo tính nhất quán Khi dữ liệu và logic phân tán giữa các component khác nhau, việc xử lý luồng phức tạp trở nên khó khăn Lý tưởng nhất, dữ liệu trong một component nên chỉ tồn tại trong component đó, giúp giảm thiểu sự phức tạp khi chia sẻ dữ liệu giữa các component anh em.
Trong React, để chia sẻ dữ liệu giữa các component, state cần phải được lưu trữ trong component cha Component cha sẽ cung cấp một phương thức để cập nhật state này và truyền nó dưới dạng props đến các component con Khi ứng dụng trở nên lớn hơn, việc quản lý state từ component cha và cho phép các component con sử dụng lại dữ liệu trở nên phức tạp hơn, bao gồm việc cập nhật, xác thực và xử lý logic, dẫn đến sự rối rắm trong việc quản lý, lưu trữ và đồng bộ state giữa các component.
Redux ra đời như một giải pháp hiệu quả để quản lý dữ liệu trong ứng dụng, tập trung tất cả STATE vào một STORE duy nhất Các component cần dữ liệu chỉ cần kết nối với STORE, giúp truy cập trực tiếp vào state mà không cần phải truyền thuộc tính giữa các component.
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
Hình 2.3: Redux quản lý state bằng store
Việc thay đổi STATE phải thông qua các ACTIONS, mỗi ACTION tương ứng với một logic nghiệp vụ và được xử lý bởi các REDUCER Điều này đảm bảo rằng STATE chỉ được thay đổi khi có ACTION, giúp quản lý dữ liệu một cách đồng bộ và thống nhất.
Các khái niệm cơ bản của redux:
- State: Trạng thái của model Thông thường, STATE là một JavaScript OBJECT thuần, và là một immutable data.
Action là một đối tượng quan trọng dùng để thay đổi trạng thái trong ứng dụng Đây là phương thức duy nhất để cập nhật dữ liệu vào Store Tất cả dữ liệu, bao gồm sự kiện từ người dùng, callback từ mạng, hoặc các nguồn khác, đều phải được gửi đi dưới dạng Action.
- Reducers: Reducers là các function nguyên thủy chúng lấy state hiện tại của app, thực hiện một action và trả về một state mới.
- Store: Lưu trạng thái ứng dụng và nó là duy nhất trong bất kỳ một ứng dụng Redux nào.
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
Redux hỗ trợ middleware và các thư viện mở rộng để cập nhật dữ liệu một cách bất đồng bộ, như Redux-Saga, đồng thời cho phép thêm tính năng ghi log và xác thực dữ liệu.
NextJs
ReactJS is primarily utilized for client-side rendering, offering advantages such as speed, Virtual DOM, and widespread popularity In contrast, Next.js serves as a server-side rendering framework built on ReactJS.
Nextjs tích hợp nhiều tính năng như:
- Pre-rendering, cả static generation (SSG) và server-side rendering (SSR)
Tách mã tự động giúp tăng tốc độ tải trang bằng cách chỉ tải những thành phần cần thiết cho mỗi trang Chẳng hạn, khi trang chủ được render, các trang khác sẽ không được khởi tạo, từ đó giúp trang chủ tải nhanh hơn ngay cả khi website có tới 100 trang.
- Hỗ trợ Css và Sass, hỗ trợ bất kì thư viện Css, JS nào.
- Hỗ trợ refresh page nhanh chóng ở môi trường development.
- Routing theo cây thư mục.
- Tự động tối ưu việc tải và hiển thị hình ảnh.
- Hỗ trợ phân tích trang web tự động, tiện dụng khi SEO trang web khi hỗ trợ tốt cho các bot crawler dữ liệu của Google, Facebook,
Hình 2.4: NextJs real experience score
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
Hiện tại nhiều hệ thống lớn đang sử dụng NextJs như Tiktok, Netflix,
Sử dụng Next.js mang lại lợi ích tối ưu cho việc triển khai trên Vercel, một nền tảng đám mây chuyên cho các trang web tĩnh và serverless Vercel, trước đây được biết đến với tên gọi Zeit, cho phép các nhà phát triển dễ dàng lưu trữ và quản lý các trang web cùng công nghệ của họ.
Jamstack triển khai ngay lập tức, tự động mở rộng quy mô và không yêu cầu giám sát, tất cả đều cần phải cấu hình phức tạp.
Vercel có một số ưu điểm nổi bật như:
- Khả năng phát triển đơn giản.
- Miễn phí hoàn toàn cho người dùng cá nhân.
- Dễ dàng cài đặt domain.
- Xây dựng và đẩy sản phẩm dễ dàng (chỉ cần dùng 1 lệnh duy nhất vercel).
- Có Edge Network (cho phép chọn địa điểm).
Java
Java là một trong những ngôn ngữ lập trình mạnh mẽ và phổ biến nhất, ra đời từ năm 1996 Là ngôn ngữ hướng đối tượng tiêu chuẩn, Java khác biệt so với các ngôn ngữ lập trình truyền thống như C và C++ Thay vì biên dịch mã nguồn thành mã máy, Java biên dịch mã nguồn thành Java bytecode, cho phép chạy trên môi trường thực thi ảo JVM Nhờ đó, ứng dụng Java có thể hoạt động độc lập trên nhiều nền tảng, bao gồm Android, MacOS, Windows và Linux.
Java là một ngôn ngữ lập trình với cú pháp rõ ràng và tường minh, nổi bật với các đặc điểm của lập trình hướng đối tượng Nhờ vào những tính năng này, Java đã được cộng đồng lập trình viên tin tưởng và sử dụng để phát triển các sản phẩm và ứng dụng lớn, phức tạp và có khả năng thương mại hóa.
Các công cụ và công nghệ mã nguồn mở nổi tiếng như WebServer Apache, Apache Kafka và Cassandra đều được phát triển bằng ngôn ngữ Java Bên cạnh đó, máy ảo JVM cũng hỗ trợ chạy các ngôn ngữ mạnh mẽ khác như Scala, giúp tăng cường khả năng lập trình hàm.
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG programming, Kotlin – là phiển bản nâng cấp ngôn ngữ java, thường được sử dụng trong lập trình Android, Groovy, Clojure
Java là một ngôn ngữ lập trình mạnh mẽ với một cộng đồng lớn và hệ sinh thái phong phú Tôi đã quyết định chọn Java làm ngôn ngữ chính cho việc phát triển backend.
Maven
Apache Maven là công cụ quản lý dự án giúp các lập trình viên quản lý phiên bản, các dependencies, và quy trình build Việc tự động hóa quá trình build và quản lý thư viện là rất quan trọng trong phát triển phần mềm, giúp tối ưu hóa biên dịch và đóng gói, từ đó tạo điều kiện thuận lợi cho quá trình phát triển.
Ngoài ra, Maven còn hỗ trợ phát triển, tích hợp nhiều plugins CI/CD trong việc build, test dự án, kiểm tra chất lượng source code qua Sonarqube,
Spring
Spring Framework là một framework Java mạnh mẽ, cung cấp nhiều tính năng giúp xây dựng sản phẩm nhanh chóng và thuận tiện Hiện nay, Spring được sử dụng rộng rãi và trở thành phần không thể thiếu trong các sản phẩm Java EE Nó mang đến mô hình lập trình và cấu hình toàn diện cho các ứng dụng doanh nghiệp dựa trên Java, phù hợp với mọi nền tảng triển khai.
Spring có nhiều tính năng được tổ chức thành các module, cho phép ứng dụng dễ dàng lựa chọn và kết hợp nhiều module chỉ bằng cách thêm các dependency vào Maven.
Spring Boot và Spring MVC là các module trong Spring Framework, nổi bật với tính năng Dependency Injection và Inversion of Control (IoC), giúp phát triển ứng dụng với khả năng loosely coupled Điều này cho phép phân chia mã nguồn thành nhiều module độc lập, và khi thay đổi nhà cung cấp, chỉ cần cập nhật cấu hình của Spring để tự động quét và inject đúng dependency Hệ sinh thái của Spring rất phong phú với các thư viện tin cậy như Spring Data, Spring Security, và Spring Batch, giúp các sản phẩm xây dựng trên Spring framework đạt hiệu năng cao và dễ dàng thay đổi.
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
Khi khởi tạo server, Spring tìm kiếm các Class được đánh dấu là Bean để đưa vào Beans Container Những class này sẽ nhận các dependency đã tồn tại, và Spring sẽ chuyển Bean tương ứng từ store để "kết nối" với đối tượng trong class, thực hiện việc "inject" thay vì khởi tạo trực tiếp trong class Đây là kỹ thuật Dependency Injection và IoC.
Spring Framework yêu cầu cấu hình dependency injection bằng XML, điều này có thể gây khó khăn và tốn thời gian khi dự án phát triển lớn hơn Để khắc phục những vấn đề này, Spring Boot đã ra đời, sử dụng Config Annotation để thực hiện injection và hỗ trợ nhiều tính năng khác Sự đơn giản và tiện dụng của Spring Boot đã khiến nó trở thành một lựa chọn không thể thiếu khi làm việc với Spring.
Spring được module hóa, cho phép lập trình viên chọn và sử dụng các module thích hợp mà không cần quan tâm đến các thành phần khác.
Về cơ bản, Spring framework cung cấp khoảng 20 modules, những modules này có thể được sử dụng dựa trên yêu cấu của ứng dụng.
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
Hình 2.5: Spring framework, các thành phần lõi
Container xử lý IoC và DI của framework, bao gồm các module:
- Core module: module cung cấp các thành phần cơ bản của Spring framework, bao gồm IoC và chức năng Dependency Injection.
- Bean module: module này cung cấp BeanFactory và quản lý Bean.
Module Context là một phần được cung cấp bởi Core và Bean module, tạo ra một môi trường cho phép truy cập vào bất kỳ đối tượng nào đã được định nghĩa và cấu hình.
- SpEL module: module này cung cấp một dạng ngôn ngữ rất tiện ích cho việc query và thao tác với các object tại thời điểm runtime.
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
Nhóm này bao gồm JDBC, ORM, OXM, JMS và module Transaction. Những module này cung cấp khả năng giao tiếp với databases.
The web module offers integrated web-oriented functionalities, including file upload capabilities and the initialization of an IoC container, which utilizes servlet listeners and a web-oriented application context.
Web-MVC module chứa sự các thành phần Model-View-Controller cho 1 web application.
Ngoài ra còn các module khác bao gồm AOP, Test và Aspects.
Mô hình dữ liệu quan hệ
Tôi quyết định xây dựng cơ sở dữ liệu dựa trên mô hình cơ sở dữ liệu quan hệ, nơi dữ liệu được tổ chức thành các bảng có mối quan hệ với nhau Điều này giúp giảm thiểu sự dư thừa dữ liệu và đảm bảo hiệu quả trong việc lưu trữ và truy xuất thông tin.
Mô hình cơ sở dữ liệu quan hệ tổ chức dữ liệu thành các thực thể và mối quan hệ giữa chúng, với các thực thể được ánh xạ từ thực tế hoặc đối tượng trừu tượng Thực thể đại diện cho một lớp các đối tượng có đặc tính chung mà người quản lý thông tin quan tâm Mỗi đối tượng có thuộc tính riêng, mô tả đặc trưng của thực thể Trong cơ sở dữ liệu quan hệ, tồn tại ba loại quan hệ: một – một, một – nhiều, và nhiều – nhiều, có thể kèm theo các thuộc tính riêng.
Một cơ sở dữ liệu có thể chứa nhiều quan hệ, và để giảm thiểu sai sót, mỗi quan hệ cần được xác định một cách duy nhất Các đặc điểm giúp phân biệt tự động các quan hệ trong cơ sở dữ liệu là rất quan trọng.
Mỗi quan hệ trong cơ sở dữ liệu cần có một tên riêng biệt và duy nhất để phân biệt với các quan hệ khác trong cùng hệ thống.
- Một quan hệ không được có hai thuộc tính trùng tên Mỗi thuộc tính phải có một tên riêng biệt.
- Trong một quan hệ không được xuất hiện các bộ giá trị trùng lặp
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
- Mỗi bộ phải có chính xác một giá trị dữ liệu cho một thuộc tính.
Cơ sở dữ liệu quan hệ đã khẳng định vị thế vững chắc của mình với sự phổ biến của nhiều hệ quản trị như Oracle, MySQL và PostgreSQL.
Hệ quản trị cơ sở dữ liệu MySQL
Hệ quản trị cơ sở dữ liệu (DBMS) là phần mềm giúp xác định, thao tác, truy xuất và quản lý dữ liệu trong cơ sở dữ liệu DBMS làm việc với dữ liệu của chính nó, bao gồm định dạng dữ liệu, tên field, cấu trúc bản record và cấu trúc file Ngoài ra, nó còn quy định các quy tắc để xác thực và thao tác với dữ liệu.
Hiện nay, nhiều hệ quản trị cơ sở dữ liệu (DBMS) sử dụng mô hình dữ liệu quan hệ (RDBMS) như Oracle, SQL Server và MySQL Trong số đó, MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở, được phát triển và hỗ trợ bởi Oracle MySQL tương thích với hầu hết các nền tảng, bao gồm Linux, UNIX và Windows, và thường được sử dụng kết hợp với các ứng dụng web Với sự phổ biến của MySQL, tôi đã chọn nó làm cơ sở dữ liệu chính vì những lý do sau đây.
- Linh hoạt, dễ sử dụng.
- Hiệu năng cao, có lịch sử hình thành lâu đời.
- MySQL hoạt động trên nhiều hệ điều hành và với nhiều ngôn ngữ.
Docker
Một trong những xu hướng nổi bật hiện nay là ứng dụng serverless và cloud Docker, với vai trò là nền tảng mở, cho phép phát triển, vận chuyển và chạy các ứng dụng một cách nhanh chóng và nhẹ nhàng Nhờ vào Docker, chúng ta có thể tách biệt ứng dụng khỏi cơ sở hạ tầng, từ đó tăng tốc độ phân phối phần mềm Việc áp dụng Docker trong thử nghiệm và triển khai ứng dụng giúp giảm đáng kể độ trễ giữa việc viết code và chạy code, nâng cao hiệu quả trong quá trình phát triển sản phẩm.
Docker cho phép đóng gói và chạy ứng dụng trong môi trường cô lập gọi là container, giúp tăng cường sự cô lập và bảo mật Điều này cho phép bạn chạy nhiều container đồng thời trên một máy chủ.
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
Container nhẹ hơn và hoạt động trực tiếp từ nhân máy chủ, cho phép chạy nhiều container hơn trên cùng một phần cứng so với máy ảo (VM) Nhờ việc chia sẻ tài nguyên hệ điều hành, container khởi động và kết thúc nhanh chóng, gọn nhẹ hơn so với máy ảo.
Một số khái niệm của Docker:
Một snapshot của máy ảo là một file bất biến, chứa các source code, libraries, dependencies, tools và các files cần thiết cho ứng dụng Nó đại diện cho một ứng dụng và môi trường ảo của nó tại một thời điểm cụ thể Tính nhất quán này là một trong những tính năng nổi bật của Docker, cho phép các developers kiểm tra và thử nghiệm phần mềm trong điều kiện ổn định và thống nhất.
- Container: Một image khi start thì sẽ trở thành container Container đảm bảo cho ứng dụng hoạt động như nhau trong các môi trường giống nhau.
Volumes là một thành phần quan trọng trong container, cho phép cập nhật và lưu trữ dữ liệu giữa container và máy host Chúng hoạt động như một "ổ đĩa" được gắn vào container, giúp ánh xạ một thư mục từ máy host vào container và ngược lại.
Hiện nay, các nền tảng cloud phổ biến hỗ trợ triển khai image một cách nhanh chóng và tiện lợi Với việc chỉ cần cấu hình một lần và không cần cấu hình lại trên server cloud, Docker đảm bảo tính thống nhất về môi trường, vì vậy tôi đã quyết định sử dụng Docker trong quá trình xây dựng và phát triển phần mềm.
Amazon Web Services
Với nhu cầu triển khai back-end trên nền tảng cloud, tôi đã chọn Amazon Web Services (AWS) làm nền tảng chính Ra đời vào năm 2016, AWS cung cấp các dịch vụ cơ sở hạ tầng CNTT Sử dụng AWS mang lại nhiều lợi ích đáng kể.
- Chi phí thấp: AWS đưa ra các mức giá cạnh tranh và thanh toán theo mức độ sử dụng mà không cần phải trả trước.
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
- Linh hoạt, co giãn, tức thời: Dễ dàng mở rộng, tích hợp các hệ thống mới nhanh, đơn giản.
- Mở và linh hoạt: AWS là nền tảng không phụ thuộc vào hệ điều hành, do đó có nhiều lựa chọn cho ứng dụng của doanh nghiệp.
- Bảo mật: AWS là nền tảng công nghệ bảo mật và ổn định với nhiều chứng nhận và kết quả kiểm tra được công nhận trong ngành.
AWS là một trong những công ty hàng đầu trong lĩnh vực dịch vụ điện toán đám mây, cung cấp nhiều giải pháp đa dạng như nền tảng SaaS, PaaS, cơ sở dữ liệu quan hệ, công nghệ lưu trữ và CDN.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Các khái niệm trong hệ thống
Phần mềm quản lý hồ sơ sức khỏe điện tử cho các phòng khám gia đình có tính năng phức tạp Để tránh nhầm lẫn và khó hiểu, tôi sẽ giải thích một số khái niệm liên quan đến phần mềm này.
Quản trị viên chi nhánh là người đảm nhận trách nhiệm quản lý một chi nhánh cụ thể, bao gồm việc quản lý thông tin cấu hình chi nhánh như chuyên khoa bác sĩ, các loại phòng và các phòng khám Họ cũng quản lý thông tin của chi nhánh và tất cả các bác sĩ làm việc tại đó.
- Bác sĩ: Người chịu trách nhiệm khám bệnh và lưu hồ sơ bệnh án cho người bệnh.
Bệnh án được phân loại thành nhiều loại khác nhau như Bệnh án ngoại trú, Bệnh án nội trú, Bệnh án nhi khoa và Bệnh án ngoại khoa Mỗi loại bệnh án này có những đặc điểm riêng biệt về mẫu thông tin và tóm tắt bệnh án, tạo nên sự khác biệt trong cách lưu trữ và quản lý thông tin y tế.
Lịch sử khám bệnh của mỗi người bệnh bao gồm các lần khám riêng biệt, với mỗi lần khám được ghi lại trong một hồ sơ bệnh án độc lập Hồ sơ sức khỏe sẽ lưu trữ các bệnh án này theo thứ tự thời gian, tạo thành một bức tranh tổng thể về quá trình khám chữa bệnh của người bệnh.
Khám lâm sàng là bước đầu tiên trong quy trình khám chữa bệnh, nơi bác sĩ trực tiếp kiểm tra bệnh nhân bằng các kỹ năng như nhìn, sờ, gõ và nghe để phát hiện dấu hiệu bất thường Quá trình này giúp bác sĩ nhận diện các yếu tố ảnh hưởng đến sức khỏe như tuổi tác, tiền sử bệnh, môi trường sống, nghề nghiệp, và thói quen như nghiện rượu hay thuốc lá Khám lâm sàng không chỉ xác định tình trạng bệnh ban đầu mà còn định hướng cho việc chỉ định các xét nghiệm cận lâm sàng phù hợp nhằm chẩn đoán chính xác bệnh.
Thông tin sức khỏe bao gồm các yếu tố quan trọng liên quan đến tình trạng sức khỏe của người bệnh, như tình trạng lúc sinh, các yếu tố nguy cơ ảnh hưởng đến sức khỏe, tiền sử bệnh, tiền sử dị ứng, tiền sử phẫu thuật và thông tin về khuyết tật.
Khám sức khỏe cận lâm sàng là một phần quan trọng trong quy trình khám bệnh, bao gồm các kỹ thuật như chụp X-quang, siêu âm và chụp cắt lớp.
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG vi tính (CT), chụp cộng hưởng từ (MRI), Kỹ thuật y học cận lâm sàng là sự hỗ trợ đắc lực cho các bác sĩ trong quá trình chẩn đoán và điều trị bệnh.
Chẩn đoán và kết luận là thông tin quan trọng liên quan đến chẩn đoán ban đầu của bệnh, dựa trên kết quả khám lâm sàng và cận lâm sàng Nó bao gồm các thông tin về tiên lượng bệnh, kết luận cuối cùng, hướng điều trị và tư vấn từ bác sĩ.
Use Case Diagram
2.1 Quản trị viên chi nhánh
Hình 3.1: Usecase của quản trị viên chi nhánh
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Tên usecase Đổi mật khẩu lần đầu
Khi người dùng đăng nhập vào website lần đầu tiên, họ sẽ được yêu cầu đổi mật khẩu để kích hoạt tài khoản Các đối tượng liên quan bao gồm quản trị viên chi nhánh và bác sĩ.
Mức độ ưu tiên Trung bình
Trigger Người dùng muốn đăng nhập vào website
Tiền điều kiện Người dùng đã được cấp tài khoản với mật khẩu mặc định Điều kiện thực hiện thành công Đổi mật khẩu thành công
Luồng thực thi chính 1 Người dùng nhập tên đăng nhập và mật khẩu
2 Người dùng chọn “Đăng nhập”
3 Màn hình yêu cầu cập nhật mật khẩu hiện ra
4 Người dùng nhập mật khẩu cập nhật 2 lần
5 Người dùng chọn “Xác nhận”
6a Mật khẩu cập nhật thành công Luồng thay thế
Luồng ngoại lệ 6b Hiển thị thông báo lỗi khi có lỗi xảy ra
Bảng 3.1: Usecase đổi mật khẩu lần đầu
Mô tả Người dùng đăng nhập vào website để sử dụng các chức năng hệ thống cung cấp Actor Quản trị viên chi nhánh, Bác sĩ
Mức độ ưu tiên Trung bình
Trigger Người dùng muốn đăng nhập vào website
Tiền điều kiện Tài khoản của người dùng đã được kích hoạt thông qua việc
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG đổi mật khẩu lần đầu Điều kiện thực hiện thành công Đăng nhập thành công
Luồng thực thi chính 1 Người dùng nhập tên đăng nhập và mật khẩu
2 Người dùng chọn “Đăng nhập”
3a Đăng nhập thành công Luồng thay thế
Luồng ngoại lệ 3b Hiển thị thông báo lỗi khi có lỗi xảy ra
Mô tả Người dùng đăng xuất khỏi website hệ thống
Actor Quản trị viên chi nhánh, Bác sĩ
Mức độ ưu tiên Thấp
Trigger Người dùng muốn đăng xuất khỏi website hệ thống
Tiền điều kiện Người dùng đã đăng nhập vào website trước đó Điều kiện thực hiện thành công Người dùng đăng xuất khỏi website thành công
Luồng thực thi chính 1 Người dùng chọn “Đăng xuất” ở góc trên bên phải của giao diện website 2a Hiển thị trang đăng nhập.
Luồng ngoại lệ 2b Hiển thị thông báo lỗi khi có lỗi xảy ra
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Tên usecase Xem thông tin chi nhánh
Mô tả Quản trị viên chi nhánh xem thông tin chi tiết của chi nhánh mình quản lý
Actor Quản trị viên chi nhánh
Mức độ ưu tiên Trung bình
Trigger Quản trị viên muốn xem thông tin chi nhánh mình quản lý
Tiền điều kiện Quản trị viên đã đăng nhập vào website Điều kiện thực hiện thành công Thông tin chi tiết chi nhánh hiển thị ra thành công
Quản trị viên truy cập vào menu “Chi nhánh” trên thanh menu bên trái của giao diện website để xem thông tin chi tiết về chi nhánh hiện tại mà họ đang quản lý.
Luồng ngoại lệ 2b Hiển thị thông báo lỗi khi có lỗi xảy ra
Bảng 3.4: Usecase xem thông tin chi nhánh
Tên usecase Cập nhật thông tin chi nhánh
Mô tả Quản trị viên chi nhánh cập nhật thông tin của chi nhánh mình quản lý
Actor Quản trị viên chi nhánh
Mức độ ưu tiên Trung bình
Quản trị viên cần cập nhật thông tin chi nhánh mà mình quản lý Để thực hiện điều này, quản trị viên phải đăng nhập vào website Sau khi hoàn tất, thông tin chi nhánh sẽ được cập nhật thành công.
Luồng thực thi chính 1 Quản trị viên chọn “Chỉnh sửa” trong màn hình thông tin chi
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG nhánh
2 Quản trị viên điều chỉnh các thông tin của chi nhánh 3a Quản trị viên chọn “Xác nhận”
4a Thông tin chi nhánh được hệ thống cập nhật
Luồng thay thế 3b Quản trị viên chọn “Hủy”
4b Thông tin chi nhánh vẫn được hệ thống giữ nguyên Luồng ngoại lệ 4c Hiển thị thông báo lỗi khi có lỗi xảy ra
Bảng 3.5: Usecase cập nhật thông tin chi nhánh
Tên usecase Xem danh sách bác sĩ
Mô tả Quản trị viên chi nhánh xem danh sách bác sĩ của chi nhánh mình quản lý
Actor Quản trị viên chi nhánh
Mức độ ưu tiên Cao
Quản trị viên cần xem danh sách bác sĩ của chi nhánh mình quản lý Để thực hiện điều này, quản trị viên phải đăng nhập vào website Khi đăng nhập thành công, danh sách bác sĩ sẽ được hiển thị một cách rõ ràng.
Quản trị viên truy cập vào menu “Bác sĩ” trên thanh menu bên trái của giao diện website, sau đó hệ thống sẽ hiển thị danh sách các bác sĩ thuộc quản lý của chi nhánh hiện tại.
Luồng ngoại lệ 2b Hiển thị thông báo lỗi khi có lỗi xảy ra
Bảng 3.6: Usecase xem danh sách bác sĩ
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Tên usecase Tìm kiếm hồ sơ bác sĩ
Mô tả Quản trị viên tìm kiếm bác sĩ của chi nhánh mình quản lý
Actor Quản trị viên chi nhánh
Mức độ ưu tiên Cao
Quản trị viên có thể tìm kiếm bác sĩ trong chi nhánh mình quản lý sau khi đã đăng nhập vào website Danh sách bác sĩ sẽ được cập nhật thành công dựa trên các tiêu chí tìm kiếm đã chỉ định.
Quản trị viên nhập các tiêu chí tìm kiếm trên màn hình danh sách bác sĩ, sau đó hệ thống sẽ cập nhật danh sách bác sĩ phù hợp với các tiêu chí đã nhập.
Luồng ngoại lệ 2b Hiển thị thông báo lỗi khi có lỗi xảy ra
Bảng 3.7: Usecase tìm kiếm bác sĩ
Tên usecase Thêm mới hồ sơ bác sĩ
Mô tả Quản trị viên thêm mới hồ sơ bác sĩ cho chi nhánh mình quản lý
Actor Quản trị viên chi nhánh
Mức độ ưu tiên Cao
Quản trị viên cần thêm hồ sơ bác sĩ cho chi nhánh mình quản lý Để thực hiện điều này, quản trị viên phải đăng nhập vào website Khi các điều kiện được đáp ứng, hồ sơ bác sĩ sẽ được thêm thành công.
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Luồng thực thi chính 1 Quản trị viên chọn “Thêm hồ sơ” trong màn hình danh sách bác sĩ
2 Form thông tin hiện ra
3 Quản trị viên thêm đầy đủ thông tin bác sĩ mới mà form yêu cầu4 Quản trị viên chọn “Xác nhận”
Hệ thống lưu trữ thông tin bác sĩ mới được quản lý bởi quản trị viên và chi nhánh hiện tại, đồng thời cung cấp cho bác sĩ một tài khoản mặc định.
Luồng ngoại lệ 5b Hiển thị thông báo lỗi khi có lỗi xảy ra
Bảng 3.8: Usecase thêm mới bác sĩ
Tên usecase Xem chi tiết hồ sơ bác sĩ
Mô tả Quản trị viên xem chi tiết hồ sơ bác sĩ do mình quản lý
Actor Quản trị viên chi nhánh
Mức độ ưu tiên Cao
Quản trị viên cần xem chi tiết hồ sơ bác sĩ mà mình quản lý Để thực hiện điều này, quản trị viên phải đăng nhập vào website Khi đăng nhập thành công, hồ sơ bác sĩ sẽ được hiển thị đầy đủ.
Quản trị viên có thể xem thông tin chi tiết của bác sĩ bằng cách chọn “Chi tiết” trên dòng thông tin tương ứng trong danh sách bác sĩ Hệ thống sẽ hiển thị thông tin chi tiết của bác sĩ đã chọn.
Luồng ngoại lệ 2b Hiển thị thông báo lỗi khi có lỗi xảy ra
Bảng 3.9: Usecase xem chi tiết bác sĩ
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Tên usecase Xóa hồ sơ bác sĩ
Mô tả Quản trị viên xóa hồ sơ bác sĩ do mình quản lý
Actor Quản trị viên chi nhánh
Mức độ ưu tiên Cao
Trigger Quản trị viên muốn xóa hồ sơ bác sĩ do mình quản lý
Tiền điều kiện Quản trị viên đã đăng nhập vào website Điều kiện thực hiện thành công Hồ sơ bác sĩ được xóa thành công
Quản trị viên thực hiện thao tác xóa thông tin bác sĩ bằng cách chọn “Xóa” trên dòng thông tin tương ứng trong danh sách bác sĩ Hệ thống sẽ tiến hành xóa toàn bộ thông tin của bác sĩ đó, bao gồm tài khoản và các tài nguyên liên quan.
Luồng ngoại lệ 2b Hiển thị thông báo lỗi khi có lỗi xảy ra
Bảng 3.10: Usecase xóa hồ sơ bác sĩ
Tên usecase Cập nhật hồ sơ bác sĩ
Mô tả Quản trị viên cập nhật hồ sơ bác sĩ do mình quản lý
Actor Quản trị viên chi nhánh
Mức độ ưu tiên Cao
Trigger Quản trị viên muốn cập nhật hồ sơ bác sĩ do mình quản lý
Tiền điều kiện Quản trị viên đã đăng nhập vào website Điều kiện thực hiện thành công Hồ sơ bác sĩ được cập nhật thành công
Luồng thực thi chính 1 Quản trị viên chọn “Chỉnh sửa” trong màn hình thông tin chi
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG tiết bác sĩ
2 Form thông tin hiện ra
3 Quản trị viên thêm đầy đủ thông tin cập nhật bác sĩ mà form yêu cầu, bao gồm cả ảnh bác sĩ.
4 Quản trị viên chọn “Xác nhận”
5a Hệ thống cập nhật thông tin hồ sơ bác sĩ đó cùng với tài khoản và các tài nguyên liên quan.
Luồng ngoại lệ 5b Hiển thị thông báo lỗi khi có lỗi xảy ra
Bảng 3.11: Usecase cập nhật hồ sơ bác sĩ
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Hình 3.2: Usecase của bác sĩ
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Tên usecase Xem danh sách người bệnh
Mô tả Bác sĩ xem danh sách người bệnh thuộc tất cả các chi nhánh
Mức độ ưu tiên Cao
Bác sĩ cần xem danh sách bệnh nhân từ tất cả các chi nhánh Để thực hiện điều này, bác sĩ phải đăng nhập vào website Khi đăng nhập thành công, danh sách bệnh nhân sẽ được hiển thị một cách hiệu quả.
Bác sĩ truy cập vào menu “Hồ sơ bệnh nhân” hoặc “Hồ sơ bệnh án” trên thanh menu bên trái của giao diện website, sau đó hệ thống sẽ hiển thị danh sách người bệnh từ tất cả các chi nhánh.
Luồng ngoại lệ 2b Hiển thị thông báo lỗi khi có lỗi xảy ra
Bảng 3.12: Usecase xem danh sách người bệnh
Tên usecase Thêm mới hồ sơ người bệnh
Mô tả Bác sĩ thêm mới hồ sơ người bệnh vào hệ thống
Mức độ ưu tiên Cao
Trigger Bác sĩ muốn thêm mới hồ sơ người bệnh vào hệ thống
Tiền điều kiện Bác sĩ đã đăng nhập vào website Điều kiện thực hiện thành công Hồ sơ người bệnh được thêm mới thành công
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
Luồng thực thi chính 1 Bác sĩ chọn “Thêm hồ sơ” trong màn hình Quản lý bệnh nhân (danh sách)
2 Các form thông tin hiện ra
3 Bác sĩ thêm đầy đủ thông tin bệnh nhân mới mà form phía trên yêu cầu
4 Bác sĩ chọn “Xác nhận” tại form trên 5a Hệ thống thêm thông tin bệnh nhân mới, sinh mã hồ sơ sức khỏe cho bệnh nhân, và báo thêm bệnh nhân thành công
6 Bác sĩ thêm đầy đủ thông tin bệnh nhân mới mà form phía dưới yêu cầu
7 Bác sĩ chọn “Xác nhận” tại form dưới 8a Hệ thống cập nhật thông tin bệnh nhân, và báo thành công Luồng thay thế
Luồng ngoại lệ 5b Hiển thị thông báo lỗi khi có lỗi xảy ra
8b Hiển thị thông báo lỗi khi có lỗi xảy ra
Bảng 3.13: Usecase thêm hồ sơ người bệnh
Tên usecase Cập nhật hồ sơ người bệnh
Mô tả Bác sĩ cập nhật hồ sơ người bệnh
Mức độ ưu tiên Cao
Trigger Bác sĩ muốn cập nhật hồ sơ người bệnh
Tiền điều kiện Bác sĩ đã đăng nhập vào website Điều kiện thực hiện thành công Hồ sơ người bệnh được cập nhật thành công
Luồng thực thi chính 1 Bác sĩ chọn “Chỉnh sửa” trên dòng thông tin bệnh nhân muốn chỉnh sửa trong màn hình Quản lý bệnh nhân (danh sách)
2 Các form thông tin hiện ra
3 Bác sĩ chọn “Cập nhật” trên từng form để mở khóa form
4 Bác sĩ thêm đầy đủ thông tin cập nhật người bệnh mà các form yêu cầu.
CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
5 Bác sĩ chọn “Xác nhận” trên từng form 6a Hệ thống cập nhật thông tin cho người bệnh Luồng thay thế
Luồng ngoại lệ 6b Hiển thị thông báo lỗi khi có lỗi xảy ra
Bảng 3.14: Usecase cập nhật hồ sơ người bệnh
Tên usecase Xem chi tiết hồ sơ người bệnh
Mô tả Bác sĩ xem chi tiết hồ sơ người bệnh
Mức độ ưu tiên Cao
Trigger Bác sĩ muốn xem chi tiết hồ sơ người bệnh
Tiền điều kiện Bác sĩ đã đăng nhập vào website Điều kiện thực hiện thành công Hồ sơ người bệnh được hiển thị ra thành công