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

Luận văn thạc sĩ Khoa học máy tính: 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

140 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 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
Tác giả Nguyễn Công Anh
Người hướng dẫn Ths. Trần Thị Quế Nguyệt, Ths. Nguyễn Đình Thành
Trường học Đại học Quốc gia Tp.HCM
Chuyên ngành Khoa học máy tính
Thể loại Luận văn tốt nghiệp đại học
Năm xuất bản 2021
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 140
Dung lượng 4,01 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN HỆ THỐNG (18)
    • 1. Giới thiệu (18)
    • 2. Ý nghĩa (19)
    • 3. Mục tiêu (21)
    • 4. Giới hạn đề tài (21)
  • CHƯƠNG 2: KIẾN THỨC NỀN TẢNG (8)
    • 1. React (23)
      • 1.1. Single page application (23)
      • 1.2. React component (24)
      • 1.3. JSX (24)
      • 1.4. Virtual Dom (24)
      • 1.5. React hook (25)
    • 2. Redux (26)
    • 3. NextJs (28)
    • 4. Java (29)
    • 5. Maven (30)
    • 6. Spring (30)
      • 6.1. Spring Architecture (31)
      • 6.2. Core container (32)
      • 6.3. Data access / integration (33)
      • 6.4. Web (33)
    • 7. Mô hình dữ liệu quan hệ (33)
    • 8. Hệ quản trị cơ sở dữ liệu MySQL (34)
    • 9. Docker (34)
    • 10. Amazon Web Services (35)
    • 11. Third party services (36)
      • 11.1. Amazon S3 (36)
  • CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (8)
    • 1. Các khái niệm trong hệ thống (38)
    • 2. Use Case Diagram (39)
      • 2.1. Quản trị viên chi nhánh (39)
      • 2.2. Bác sĩ (47)
    • 3. Cơ sở dữ liệu (71)
      • 3.1. ERD - Quan hệ (71)
      • 3.2. ERD - Thực thể (73)
      • 3.3. ERD - Thực thể chi tiết (75)
      • 3.4. Sơ đồ cơ sở dữ liệu vật lý (83)
  • CHƯƠNG 4: HIỆN THỰC (8)
    • 1. Kiến trúc hệ thống (85)
    • 2. Quản lý mã nguồn (86)
      • 2.1. Ứng dụng web (front-end) (86)
      • 2.2. Ứng dụng web HTTP server (back-end) (87)
  • CHƯƠNG 5: GIAO DIỆN ỨNG DỤNG WEB (8)
    • 1. Giao diện đăng nhập (88)
    • 2. Giao diện đổi mật khẩu lần đầu (88)
    • 3. Giao diện quản trị viên (89)
      • 3.1. Các giao diện quản lý chi nhánh (89)
      • 3.2. Các giao diện quản lý bác sĩ của chi nhánh (90)
    • 4. Giao diện bác sĩ (94)
      • 4.1. Các giao diện quản lý người bệnh (94)
      • 4.2. Giao diện thêm hồ sơ khám (97)
      • 4.3. Các giao diện quản lý lịch sử khám (98)
      • 4.4. Các giao diện quản lý thông tin khám lâm sàng (103)
      • 4.5. Các giao diện quản lý thông tin chẩn đoán và kết luận (105)
      • 4.6. Các giao diện quản lý thông tin cận lâm sàng (106)
      • 4.7. Các giao diện quản lý thông tin sức khỏe (109)
      • 4.8. Các giao diện quản lý đơn thuốc (115)
  • CHƯƠNG 6: TRIỂN KHAI (8)
    • 1. Ứng dụng web (120)
    • 2. Ứng dụng web HTTP server (121)
  • CHƯƠNG 7: TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI (8)
    • 1. Đánh giá kết quả đạt được (136)
      • 1.1. Đối với nhiệm vụ đề tài (136)
      • 1.2. Đối với cơ sở lý thuyết và công nghệ (136)
      • 1.3. Đối với quy trình phát triển phần mềm (137)
      • 1.4. Đối với lợi ích thực tế (137)
    • 2. Đánh giá ưu điểm, nhược điểm (137)
      • 2.1. Ưu điểm (137)
      • 2.3. Nhược điểm (138)
    • 3. Hướng phát triển đề tài (138)

Nội dung

TỔNG QUAN HỆ THỐNG

Giới thiệu

Trong hệ thống thông tin y tế của các cơ sở chăm sóc sức khỏe xưa và nay, công tác lưu trữ thông tin về người bệnh đến khám đều phải thực hiện trên giấy tờ, sổ sách. Việc này gây ra vô vàn những bất cập như lượng thông tin lưu trữ quá lớn, tìm kiếm khó khăn, đặc biệt là việc chia sẻ thông tin giữa các khâu khám bệnh, giữa các khoa trong các cơ sở chăm sóc sức khỏe hoặc giữa các cơ sở chăm sóc sức khỏe với nhau còn hạn chế.

Cùng với sự phát triển vượt bậc của công nghệ thông tin, sự hoàn thiện cơ sở pháp lý về ứng dụng công nghệ thông tin trong đời sống xã hội nói chung và trong lĩnh vực chăm sóc sức khỏe nói riêng, việc tiến đến xây dựng và triển khai các hệ thống bệnh án điện tử là xu thế khách quan đối với các cơ sở chăm sóc sức khỏe trong nước và trên thế giới.

Bệnh án điện tử là bản tin học hóa của hồ sơ bệnh án được sở hữu riêng bởi một cơ sở y tế cụ thể, có thể là bệnh viện, phòng khám đa khoa, phòng khám chuyên khoa Hồ sơ bệnh án điện tử bao gồm thông tin được thu thập bởi các bác sĩ để chẩn đoán và điều trị cho bệnh nhân của họ, được ghi lại để sử dụng nội bộ và thông tin này thường không thể sử dụng bên ngoài cơ sở y tế đó Bệnh án điện tử không chỉ là chuyển hồ sơ giấy sang hồ sơ số, điều quan trọng hơn là tích hợp nhiều tiện ích cho bác sĩ, điều dưỡng và cả nhà quản lý nhằm tăng hiệu quả điều trị và tăng tính an toàn cho người bệnh. Ở một bước tiến mới hơn, Hồ sơ sức khỏe điện tử gần giống như hồ sơ bệnh án điện tử nhưng thông tin về bệnh nhân vượt xa giới hạn trong một cơ sở y tế Hồ sơ sức khỏe điện tử là một bộ sưu tập dữ liệu sức khoẻ của một cá nhân, thu thập từ tất cả các bác sĩ tham gia chăm sóc bệnh nhân tại nhiều cơ sở y tế khác nhau Hồ sơ sức khỏe toàn diện này cũng có thể được chia sẻ giữa các cơ sở y tế với nhau vì nó được tạo ra bởi chính các nhà cung cấp dịch vụ y tế khác nhau, do đó thông tin sẽ đầy đủ hơn, hữu ích hơn trong chẩn đoán và điều trị so với hồ sơ bệnh án điện tử.

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 phấn đấu cho tất cả hệ thống y tế của mọi quốc gia, tức là trong tương lai không còn hình ảnh mỗi cơ sở y tế, mỗi cơ sở chăm sóc sức khỏe lại có một hệ thống hồ sơ bệnh án điện tử dùng riêng mà các dữ liệu và thông tin về tình hình sức khoẻ và các 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.

Tuy nhiên đây chỉ được xem là tình huống lý tưởng, cho đến nay không phải quốc gia nào cũng thực hiện được như vậy, mặc dù nhiều kế hoạch đã được xây dựng nhưng vẫn không thực hiện được ở một số nước đang phát triển và ngay cả một số nước phát triển.

Tại Việt Nam, việc triển khai hồ sơ sức khỏe điện tử vẫn còn đang trong giai đoạn hoàn thiện các quy định pháp lý và triển khai thí điểm tại các bệnh viện loại 1, nhưng đây lại là là một công việc vô cùng phức tạp đòi hỏi sự tham gia của toàn bộ ngành y tế, toàn bộ các cơ sở khám chữa bệnh từ các bệnh viện loại 1 cho đến các phòng khám đa khoa, phòng khám chuyên khoa, đến cả những phòng khám nhỏ như phòng khám bác sĩ gia đình.

Nhằm hưởng ứng những mục tiêu trên của nền y tế số nước nhà, tôi đã lên ý tưởng và thực hiện đề tài luận văn của mình về việc sẽ xây dựng một 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 có một chi nhánh hoặc đa 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

Về thực tiễn, phần mềm sẽ hỗ trợ các phòng khám bác sĩ gia đình có một chi nhánh hoặc đa chi nhánh cải thiện việc cung cấp dịch vụ chăm sóc sức khỏe và đảm bảo việc chăm sóc của một cá nhân bởi nhiều chuyên gia chăm sóc sức khỏe khác nhau từ nhiều chi nhánh khác nhau được ghi lại trong một hồ sơ duy nhất và có sẵn Nó sẽ cho phép thông tin chăm sóc sức khỏe, như dị ứng, kết quả xét nghiệm gần đây hoặc lịch sử kê đơn luôn sẵn sàng để hỗ trợ ra quyết định chẩn đoán, điều trị và dùng thuốc Lý tưởng nhất là phần mềm sẽ ghi nhận được toàn bộ lịch sử sức khỏe của một cá nhân trong tất cả các lần thăm khám tại bất kỳ chi nhánh nào Qua đó giúp phòng khám tận dụng được những ưu thế của hồ sơ sức khỏe điện tử như:

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ử cung cấp thông tin sức khỏe của người bệnh cho các bác sĩ một cách nhanh chóng, chính xác tạo thuận lợi cho việc chẩn đoán và điều trị người bệnh giúp họ được chăm sóc sức khỏe toàn diện và liên tục, phát hiện bệnh sớm, điều trị kịp thời khi bệnh còn ở giai đoạn sớm mang lại hiệu quả điều trị cao, giảm bớt chi phí khám chữa bệnh.

- Cho phép thông tin về sức khỏe của người bệnh được chia sẻ tại bất kỳ chi nhánh nào của phòng khám Khi thông tin về sức khỏe của người bệnh được thông suốt giữa các chi nhánh sẽ giúp việc chẩn đoán chính xác, phối hợp điều trị thống nhất, hiệu quả điều trị sẽ cao hơn. Đối với cơ sở khám bệnh, chữa bệnh:

- 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ĩ đầy đủ các thông tin về bệnh tật, tiền sử bệnh tật, các yếu tố nguy cơ ảnh hưởng đến sức khỏe Từ đó kết hợp với thăm khám hiện tại, bác sĩ sẽ có nhận định về sức khỏe của người bệnh toàn diện hơn, chẩn đoán bệnh kịp thời, chính xác hơn, phát hiện bệnh sớm hơn, điều trị kịp thời khi bệnh còn ở giai đoạn sớm mang lại hiệu quả điều trị cao hơn Hơn nữa, khi thông tin về sức khỏe của người bệnh được thông suốt giữa các chi nhánh sẽ giúp việc chẩn đoán và phối hợp điều trị tốt hơn.

Về mặt học thuật, việc hiện thực và triển khai nền tảng giúp tôi áp dụng và củng cố những kiến thức, kinh nghiệm có được qua quá trình học tập, các kỳ thực tập môn học và doanh nghiệp vào chính đề tài Hơn thế nữa tôi được phân tích thiết kế, tự mình chọn những công nghệ phù hợp và mới nhất để áp dụng điển hình như Spring Boot, NextJs. Được tận tay triển khai hệ thống trên nền tảng điện toán đám mây cụ thể là AWS Được vận dụng kiến thực các môn học không thể thiếu như hệ điều hành, mạng máy tính, hệ cơ sở dữ liệu, 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à xây dựng một 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. Đối với quản trị viên của các chi nhánh, phần mềm cung cấp những nhóm chức năng: quản lý thông tin chi nhánh, quản lý thông tin các bác sĩ của chi nhánh, cấu hình chi nhánh bằng những nhóm chức năng: quản lý chuyên khoa bác sĩ của chi nhánh, quản lý phòng và kiểu phòng của chi nhánh. Đối với bác sĩ, phần mềm cung cấp các chức năng liên quan đến quản lý hồ sơ sức khỏe điện tử của người bệnh như: tạo thông tin nhân khẩu cho người bệnh, tạo hồ sơ khám cho người bệnh khi người bệnh đến khám tại một chi nhánh bất kỳ, quản lý thông tin khám lâm sàng, quản lý thông tin sức khỏe, quản lý thông tin cận lâm sàng, quản lý thông tin chẩn đoán và kết luận, quản lý đơn thuốc,

Sau cùng với sự kết hợp của các chức năng này, sẽ giúp bác sĩ hoàn thiện được các bộ hồ sơ bệnh án của người bệnh và lưu các bệnh án đó lại theo lịch sử, giúp người bệnh của phòng khám có một bộ hồ sơ sức khỏe thống nhất cho dù là đi khám khi nào, đi khám ở chi nhánh nào.

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 các tính năng ở phía người dùng Do tập đối tượng sử dụng là các phòng khám và bác sĩ, đã quen với việc sử dụng giao diện web, nền tảng web application được ưu tiên lựa chọn do mức độ phổ biến, dễ sử dụng và phát triển của nó Sau khi cân nhắc công nghệ phát triển web application như VueJs, Html-Js-Css thuần, AngularJs và ReactJs, tôi đã cân nhắc lựa chọn ReactJs là khung xương để xây dựng đề tài React (hay ReactJs, React.js) là một thư viện Javascript mã nguồn mở để xây dựng các thành phần giao diện có thể tái sử dụng một cách hiệu quả Nó là một thư viện phổ biến hàng đầu hiện nay để xây dựng các Single-page-application (SPA).

SPA là một khái niệm và xu hướng mới trong việc phát triển web Single page application là một ứng dụng web giúp nâng cao trải nghiệm người dùng bằng

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 này mang đến trải nghiệm cho người dùng web tốt hơn, giảm thời gian phải load lại toàn bộ trang web cồng kềnh, tiết kiệm băng thông cũng như thời gian chờ đợi Việc này là trái ngược hoàn toàn với trang web truyền thống khi toàn bộ trang web phải load lại mỗi khi chuyển trang SPA đem lại trải nghiệm tốt hơn, đặc biệt trên các nền tảng mobile nơi mà băng thông thường thấp hơn máy tính.

ReactJS cho phép tái sử dụng mã nguồn bằng cách chia các thành tố của website thành các React Component Các component được sử dụng lồng vào nhau, việc sử dụng lại logic và giao diện của các component giúp giảm tải công việc viết code và testing Ý tưởng về Component chính là chìa khóa giải quyết vấn đề khó khăn khi dự án ngày càng lớn Giao diện được tạo ra từ các Component ghép lại với nhau, một Component có thể được sử dụng tại nhiều nơi trong dự án Vì vậy, rất dễ dàng khi chúng ta chỉ cần quản lý các Component của mình.

React giới thiệu một cú pháp mới trong việc phát triển các component là JSX JSX cho phép người phát triển nhúng HTML vào trong JSX làm cho các component có thể dễ hiểu và quen thuộc hơn Nó thay đổi cú pháp dạng gần như XML về thành Javascript, giúp người lập trình có thể code ReactJs bằng cú pháp của XML thay vì sử dụng Javascript Các XML elements, attributes và children được chuyển đổi thành các đối số truyền vào React.createElement.

CHƯƠNG 2: KIẾN THỨC NỀN TẢNG

DOM ảo (virtual DOM) là một trong những tính năng mới giúp ReactJs có tốc độ nhanh đáng kể Đội ngũ phát triển ReactJs nhận ra rằng JavaScript rất nhanh, nhưng việc cập nhật DOM khiến nó chậm lại Do đó, React giảm thiểu các thay đổi DOM bằng cách hiệu quả và thông minh nhất để cập nhật DOM.

React sử dụng một cây DOM (tree) lưu giữ ánh xạ của một DOM bao gồm các thuộc tính và thành phần con ở trong Khi dữ liệu của Component thay đổi, React cần phải vẽ lại (rerender) giao diện Thay vì tạo ra thay đổi trực tiếp vào mô hình DOM của trình duyệt, nó tạo ra thay đổi trên một DOM ảo (virtual DOM), tính toán bằng các thuật toán nhằm hạn chế nhiều nhất số lần render lại React sẽ tự tính toán sự khác biệt giữa 2 mô hình DOM, và chỉ cập nhập các khác biệt cho DOM của trình duyệt Cách tiếp cận này tăng hiệu năng cho ứng dụng web, giảm thiểu số lần tác động lên DOM của trình duyệt, giúp trải nghiệm của người dùng mượt mà hơn.

Trong phiên bản 16.8, ReactJs giới thiệu tính năng mới là React Hook Giờ đây, chúng ta có thể kết nối state và component lifecycle vào functional component, giảm đáng kể số lượng code, làm các component trở nên gọn nhẹ hơn Nó ra đời để giải quyết một số vấn đề sau:

- “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.

Một số hooks mặc định của react gồm `useState`, `useEffect`, `useRef`, và ta có thể tự viết một hook riêng để tái sử dụng React hook dựa trên cơ chế closure của JS, nhằm lưu giữ state độc lập và sử dụng được trong các functional component.

Với hệ thống thư viện phong phú, cộng đồng đông đảo vào vững chắc, React đem lại cho tôi rất nhiều lợi ích trong suốt quá trình phát triển giao diện.

Redux

Trong ReactJs, khi một dữ liệu thay đổi nó sẽ ảnh hưởng tới nhiều component cùng lúc Việc đó sẽ gây ra việc rerender và vẽ lại giao diện Hầu hết các thư viện như React, Angular,… sẽ được xây dựng sao cho các components có thể tự quản lý nội bộ các state của chúng mà không cần bất kỳ một thư viện hay công cụ nào từ bên ngoài.

State của component khuyên dùng là nên chia sẻ ở component cha gần nhất của chúng Trong một ứng dụng, nơi dữ liệu được chia sẻ thông qua các components, dữ liệu và logic có thể nằm phân tán giữa các component khác nhau Việc xử lý một luồng phức tạp hoặc kết hợp nhiều tầng logic Một sự lý tưởng là data trong một component nên live trong chỉ một component Vì vậy việc share data thông qua các components anh em sẽ trở nên khó khăn hơn.

Ví dụ, trong React để share data thông qua các components anh em, một state phải live trong component cha Một method để update chính state này sẽ được cung cấp bởi chính component cha này và pass như props đến các components con. Ứng dụng càng lớn khiến việc quản lý state từ các component cha, các component con sử dụng lại dữ liệu của component cha, cập nhật, validate và thêm xử lý logic khiến việc quản lý, lưu trữ và đồng bộ state giữa các component trở nên rối rắm và phức tạp.

Redux ra đời như một giải pháp đơn giản giải quyết vấn đề đó: nó tập trung dữ liệu lại một nơi, và component nào cần sẽ phải kết nối với store trong redux Tất cả STATE của ứng dụng được lưu trữ ở STORE Mỗi component có thể truy cập trực tiếp đến state được lưu trữ thay vì phải truyền thuộc tính từ component này đến component khác.

CHƯƠNG 2: KIẾN THỨC NỀN TẢNG

Hình 2.3: Redux quản lý state bằng store

Ngoài ra, việc thay đổi STATE cần thông qua các ACTIONS Mỗi ACTION sẽ tương ứng với một logic nghiệp vụ, được xử lý thông qua các REDUCER Việc các STATE chỉ được thay đổi khi gởi một ACTION giúp việc quản lý việc thay đổi dữ liệu đồ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.

- Actions: Action là một OBJECT thuần để thay đổi trạng thái Action là cách duy nhất để cập nhật dữ liệu vào Store Bất kỳ dữ liệu nào, cho dù từ các sự kiện từ người dùng, callback từ mạng hay các nguồn cần 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 có hỗ trợ các middleware và các thư viện phát triển thêm nhằm phục vụ việc cập nhật dữ liệu một cách bất đồng bộ (do dữ liệu trong REDUX được cập nhật đồng bộ) như REDUX-SAGA, thêm log hoặc validate dữ liệu.

NextJs

Tuy ReactJs được sử dụng chính dưới dạng Client-side-rendering, với những ưu điểm của nó như về tốc độ, Virtual DOM và tính phổ biến, NextJs là một framework Server-side-rendering với 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 để tải trang nhanh hơn, mỗi trang chỉ tải những gì cần thiết cho trang đó Ví dụ khi render trang chủ thì những trang khác sẽ không được khởi tạo, như vậy trang chủ sẽ được tải nhanh cho dù website của bạn có cả 100 page.

- 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,

Việc sử dụng NextJs có thêm một lợi ích nữa đó là việc tối ưu hỗ trợ deploy khi sử dụng Vercel Vercel (trước đây là zeit) là một nền tảng đám mây cho các trang web tĩnh và serverless Nó cho phép các nhà phát triển lưu trữ các trang web và công nghệ

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

Là một trong những ngôn ngữ mạnh và phổ biến nhất hiện nay Được ra đời từ năm 1996, Java là một ngôn ngữ hướng đối tượng tiêu chuẩn của tất cả các ngôn ngữ sau này Khác với ngôn ngữ lập trình thông thường như C, C++, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành Java bytecode, bytecode sau đó sẽ được môi trường thực thi ảo JVM Do đó, ứng dụng java có thể chạy độc lập trên đa nền tảng, bao gồm các hệ điều hành như Android, MacOS, Windows, Linux,

Java là ngôn ngữ có cú pháp rõ ràng, tường minh và mang trong mình đặc điểm của hướng đối tượng Với những đặc điểm đó, java đã được tin tưởng trong cộng đồng lập trình viên từ lâu để xây dựng nên những sản phẩm, ứng dụng lớn có tính phức tạp và thương mại hoá.

Các công cụ, công nghệ opensource nổi tiếng bao gồm WebServer Apache,Apache Kafka, Cassandra, đều được phát triển bằng Java Một mặt khác, máy ảo JVM chính là máy ảo hỗ trợ chạy các ngôn ngữ mạnh mẽ khác như Scala – hỗ trợ functional

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ữ mạnh mẽ, có nền tảng cộng đồng và hệ sinh thái vô cùng rộng lớn, tôi đã lựa chọn Java làm ngôn ngữ chính để phát triển backend.

Maven

Apache Maven là một chương trình quản lý dự án cho phép các developers có thể quản lý về version, các dependencies (các thư viện sử dụng trong dự án), quản lý build, tự động download javadoc và source Trong quá trình phát triển phần mềm, việc tự động hóa quá trình build và quản lý các thư viện rất quan trọng, nhằm tối ưu hóa công đoạn biên dịch, đóng gói, thuận tiện hơn cho việc phát triển phần mềm.

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 của Java cung cấp rất nhiều tính năng giúp xây dựng sản phẩm một cách thuận tiện và nhanh chóng hơn Spring hiện được sử dụng rất rộng rãi và là một phần gần như không thể thiếu trong các sản phẩm Java EE Nó cung cấp 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 hiện đại - trên bất kỳ loại nền tảng triển khai nào.

Các tính năng của Spring được chia làm rất nhiều module, ứng dụng có thể dễ dàng chọn sử dụng nhiều module kết hợp chỉ bằng cách thêm các dependency vào trong Maven.

Spring Boot, Spring MVC cũng là các module nằm trong Spring Framework Tính năng chính và nổi bật của Spring Framework đó là Dependency Injection và Inversion ofControl (IoC) giúp phát triển các ứng dụng với khả năng loosely coupled Nhờ vậy, khi sử dụng Spring, chúng ta có thể phân chia mã nguồn thành nhiều module khác nhau, độc lập với nhau Khi thay đổi nhà cung cấp (provider), chúng ta chỉ cần cập nhật các cấu hình của Spring, khi đó Spring sẽ tự động quét và inject đúng dependency mà chúng ta đang cần Ngoài ra, Spring bao gồm một hệ sinh thái vô cùng rộng, các thư viện đã trưởng thành và tin cậy như: Spring Data, Spring Security, Spring Batch, Các sản phẩm xây dựng trên Spring framework đạt hiệu năng cao, dễ dàng thay đổi.

CHƯƠNG 2: KIẾN THỨC NỀN TẢNG

Về cơ chế DI, khi khởi tạo server, Spring sẽ tìm kiếm những Class được đánh dấu là Bean để khởi tạo chúng và đưa vào một khu vực gọi là Beans Container Những class khi khởi tạo mà nhúng những dependency đã tồn tại thì Spring sẽ chuyển Bean tương ứng từ store và “kết nối” với đối tượng được khai báo trong class, “inject” chúng vào thay vì phải khởi tạo trực tiếp ở trong class đó Đây chính là kỹ thuật Dependency Injection và IoC.

Tuy nhiên, Spring Framework phải cấu hình các dependency injection bằng XML, khi dự án phát triển lớn hơn sẽ gây khó khăn khi cấu hình, tốn thời gian và khó sửa lỗi. Spring Boot được ra đời nhằm giải quyết các vấn đề này Spring Boot sử dụng các Config Annotation để hiện thực Injection, đồng thời hỗ trợ nhiều tính năng khác Sự đơn giản và tiện dụng này khiến Spring Boot là một lựa chọn kèm theo 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.

- Context module: module này được cung cấp bởi Core và Bean module Nó cũng là một môi trường để truy cập vào bất kì object nào được định nghĩa và được configured.

- 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.

Web module cung cấp các chức năng tích hợp Web-oriented như là chức năng file-upload và khởi tạo IoC container thứ mà sử dụng servlet listener và context ứng dụng web-oriented.

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 lựa chọn xây dựng cơ sở dữ liệu dựa trên cơ sở dữ liệu quan hệ Cơ sở dữ liệu quan hệ tổ chức dữ liệu theo các bảng và có quan hệ với nhau để giảm thiểu sự dư thừa dữ liệu đồng thời vẫn đảm bảo hiệu quả trong lưu trữ và truy xuất dữ liệu.

Mô hình cơ sở dữ liệu quan hệ là một mô hình mà ở đó dữ liệu được tổ chức thành các thực thể và các mối quan hệ giữa chúng Các thực thể này được ánh xạ từ thực tế hoặc những đối tượng trừu tượng Thực thể là khái niệm để chỉ một lớp các đối tượng có cùng đặc tính chung mà người ta muốn quản lý thông tin về nó Những đối tượng sẽ có thuộc tính riêng, mô tả các đặc trưng riêng của thực thể Giữa các thực thể, sẽ có thể tồn tại các mỗi quan hệ khác nhau Trong cơ sở dữ liệu quan hệ, chia ra 3 loại quan hệ: một – một, một – nhiều, nhiều - nhiều, và có thể đi kèm thêm các thuộc tính riêng.

Một cơ sở dữ liệu có thể chứa một số lượng nhất định các quan hệ Để giảm thiểu tối đa trường hợp sai sót, mỗi quan hệ phải được xác định là duy nhất Một số đặc điểm giúp tự động phân biệt các quan hệ trong cơ sở dữ liệu:

- Mỗi quan hệ trong cơ sở dữ liệu phải có một tên riêng biệt và duy nhất để phân biệt nó với các quan hệ khác trong cơ sở dữ liệu.

- 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ệ đã chứng tỏ nền tảng vững chắc của nó khi hàng loạt những hệ quản trị cơ sở dữ liệu quan hệ trở nên vô cùng phổ biến như Oracle, MySql,PostgreSql,

Hệ quản trị cơ sở dữ liệu MySQL

Hệ quản trị cơ sở dữ liệu (DBMS) là một gói phần mềm được thiết kế để xác định, thao tác, truy xuất và quản lý dữ liệu trong cơ sở dữ liệu DBMS thường thao tác với dữ liệu của chính nó Định dạng dữ liệu, tên field, cấu trúc bản record và cấu trúc file Nó cũng xác định các quy tắc để xác thực và thao tác với các dữ liệu này.

Hiện nay có rất nhiều DBMS sử dụng mô hình dữ liệu quan hệ (RDBMS) như Oracle, SQL Server, MySQL, Trong đó 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, phân phối và hỗ trợ bởi tập đoàn Oracle MySQL chạy trên hầu hết tất cả các nền tảng, bao gồm cả Linux, UNIX và Windows MySQL thường được kết hợp với các ứng dụng web Là một Relational Database Management System (RDBMS) vô cùng phổ biến, việc tôi lựa chọn MySQL làm Database chính vì một số 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 hiện nay của ứng dụng là serverless và cloud Docker là một nền tảng mở để phát triển, vận chuyển và chạy các ứng dụng nhanh, nhẹ, khởi động nhanh, dễ dàng triển khai trên cloud độc lập Với Docker, tôi có thể tách các ứng dụng khỏi cơ sở hạ tầng để có thể phân phối phần mềm một cách nhanh chóng Bằng cách tận dụng Docker vào việc thử nghiệm và triển khai ứng dụng một cách nhanh chóng, chúng ta có thể giảm đáng kể độ trễ giữa việc viết code và chạy code trong quá trình ra sản phẩm.

Docker cung cấp khả năng đóng gói và chạy ứng dụng trong một môi trường cô lập được gọi là container Sự cô lập và bảo mật cho phép bạn chạy nhiều container đồng thời trên một máy chủ nhất định.

CHƯƠNG 2: KIẾN THỨC NỀN TẢNG

Các container có trọng lượng nhẹ nhưng lại được chạy trực tiếp từ trong nhân của máy chủ Điều này có nghĩa là ta có thể chạy nhiều container hơn trên một hệ thống phần cứng nhất định so với khi đang sử dụng máy ảo (VM) Có thể thấy, các container chia sẻ chung tài nguyên hệ điều hành, nên một container khi bắt đầu và kết thúc rất nhanh và gọn nhẹ hơn so với máy ảo.

Một số khái niệm của Docker:

- Image: 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 khác cần thiết cho một ứng dụng để chạy Chúng đại diện cho một application và virtual environment 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 tuyệt vời của Docker Nó cho phép các developers test và thử nghiệm phần mềm trong điều kiện ổn định, 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: Một container khi chạy sẽ có nhu cầu cập nhật dữ liệu hoặc lưu dữ liệu trên máy host Volume chính là một “ổ đĩa” được gắn vào container để thực hiện map 1-1 một folder 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 đều hỗ trợ triển khai các image một cách vô cùng tiện lợi và nhanh chóng Với tính chất chỉ cần cấu hình một lần, không cần phải cấu hình lại trên server cloud và đảm bảo tính thống nhất về môi trường, tôi quyết định sử dụng Docker trong việc 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 một nền tảng cloud trực tuyến, tôi đã lựa chọn Amazon Web Services (AWS) làm nền tảng chính để triển khai AWS được ra đời vào năm 2016, cung cấp các dịch vụ cơ sở hạ tầng CNTT (cloud services) Một số lợi ích khi sử dụng AWS:

- 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.

Với độ phổ biến nằm trong top các công ty dịch vụ điện toán đám mây, AWS cung cấp rất nhiều giải pháp đa dạng, từ các nền tảng SaaS, PaaS, nền tảng cloud, cơ sở dữ liệu quan hệ, các công nghệ lưu trữ, 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” tương đối phức tạp, để không gây nhầm lẫn và khó hiểu, tôi xin được giải thích một số khái niệm sau trong phần mềm:

- Quản trị viên chi nhánh: Người chịu trách nhiệm quản lý một chi nhánh duy nhất bao gồm những công việc như: quản lý các thông tin cấu hình chi nhánh (chuyên khoa bác sĩ, các loại phòng tới các phòng, ), quản lý thông tin của chi nhánh đồng thời quản lý thông tin tất cả các bác sĩ của chi nhánh.

- 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.

- Kiểu bệnh án: Là loại bệnh án được lưu, chẳng hạn như Bệnh án ngoại trú, Bệnh án nội trú, Bệnh án nhi khoa, Bệnh án ngoại khoa, Mỗi loại bệnh án lại có đôi chút sự khác biết trong mẫu thông tin cũng như trong tóm tắt bệnh án.

- Lịch sử khám: Mỗi người bệnh đi khám sẽ có một lịch sử khám hay một lần khám, mỗi lần khám sẽ có một hồ sơ bệnh án riêng, hồ sơ sức khỏe sẽ lưu các bệnh án này theo chiều dọc lịch sử khám bệnh của người bệnh.

- Thăm khám lâm sàng: Khám lâm sàng là hoạt động khám đầu tiên của tất cả quy trình khám chữa bệnh Bác sĩ sẽ trực tiếp khám người bệnh thông qua các kỹ năng lâm sàng cơ bản là nhìn, sờ, gõ, nghe, để phát hiện các dấu hiệu bất thường của các cơ quan trong cơ thể Khám lâm sàng giúp bác sĩ tìm ra các yếu tố tác động tới tình trạng sức khỏe người bệnh như tuổi, tiền sử bệnh, môi trường sống, nghề nghiệp, nghiện rượu, thuốc lá, Bước khám này giúp bác sĩ xác định tình trạng bệnh ban đầu, định hướng để chỉ định các xét nghiệm cận lâm sàng phù hợp để từ đó chẩn đoán xác định bệnh.

- Thông tin sức khỏe: Là những thông tin liên quan mật thiết đến sức khỏe của người bệnh như: Tình trạng lúc sinh, Yếu tố nguy cơ tác độ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 khuyết tật.

- Cận lâm sàng: Khám sức khỏe cận lâm sàng là một khâu nằm trong quy trình khám, nó bao gồm nhiều kỹ thuật như: Chụp X-quang, Siêu âm, 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à những thông tin liên quan đến chẩn đoán ban đầu của bệnh sau khi đã có kết quả khám lâm sàng và cận lâm sàng, cùng với các thông tin về tiên lượng bệnh được theo dõi, sau cùng là các kết luận, hướng điều trị và tư vấn của 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

Mô tả Người dùng đăng nhập vào website lần đầu tiên được yêu cầu đổi mật khẩu để kích hoạt tài khoản 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 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

Luồng thực thi chính 1 Quản trị viên chọn menu “Chi nhánh” trong thanh menu bên trái của giao diện website 2a Hệ thống hiển thị thông tin chi tiết của chi nhánh hiện tại mà quản trị viên đang quản lý Luồng thay thế

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

Trigger Quản trị viên muốn cập nhật 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 nhánh đượ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

Trigger Quản trị viên muốn xem danh sách bác sĩ của 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 Danh sách bác sĩ được hiển thị ra thành công

Luồng thực thi chính 1 Quản trị viên chọn menu “Bác sĩ” trong thanh menu bên trái của giao diện website 2a Hệ thống hiển thị danh sách 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

Trigger Quản trị viên muốn tìm kiếm bác sĩ của 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 Danh sách bác sĩ được cập nhật thành công theo tiêu chí tìm kiếm

Luồng thực thi chính 1 Quản trị viên điền các tiêu chí tìm kiếm trong màn hình danh sách bác sĩ 2a Hệ thống cập nhật lại danh sách chứa những bác sĩ thỏa tiêu chí tìm kiếm

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

Trigger Quản trị viên muốn thêm mới hồ sơ bác sĩ cho 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 Hồ sơ bác 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”

5a Hệ thống lưu thông tin bác sĩ mới thuộc quản lý của quản trị viên và chi nhánh hiện tại, đồng thời tạo 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

Trigger Quản trị viên muốn xem chi tiế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 hiển thị ra thành công

Luồng thực thi chính 1 Quản trị viên chọn “Chi tiết” trên dòng thông tin bác sĩ muốn xem chi tiết trong màn hình danh sách bác sĩ 2a Hệ thống hiển thị thông tin chi tiết của bác sĩ đó Luồng thay thế

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

Luồng thực thi chính 1 Quản trị viên chọn “Xóa” trên dòng thông tin bác sĩ muốn xóa trong màn hình danh sách bác sĩ 2a Hệ thống xóa thông tin của 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ệ 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

Trigger Bác sĩ muốn xem danh sách người bệnh thuộc tất cả các chi nhá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 Danh sách người bệnh được hiển thị ra thành công

Luồng thực thi chính 1 Bác sĩ chọn menu “Hồ sơ bệnh nhân” hoặc menu “Hồ sơ bệnh án” trong thanh menu bên trái của giao diện website 2a Hệ thống hiển thị danh sách người bệnh của toàn bộ 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

HIỆN THỰC

Kiến trúc hệ thống

Hệ thống được tôi xây dựng theo kiến trúc client - server Trong đó ứng dụng ở phía client là ứng dụng web Ở phía server là ứng dụng web HTTP server để xử lý các request từ phía người dùng.

Trong đó trọng tâm là khối HTTP server được phân chia layer rõ ràng Các layer giao tiếp với nhau thông qua các interfaces giúp ứng dụng dễ bảo trì theo từng layer mà không ảnh hưởng đến các thành phần khác của ứng dụng:

- Security layer: đóng vai trò bộ lọc xác thực và phân quyền các request đến từ phía client.

- View layer: cung cấp các endpoint (được mô tả thông qua OpenAPI) cho client giao tiếp Layer này giao tiếp với business layer để chuyển các request từ client tới các service xử lý tương ứng.

- Business layer: là nơi chứa logic liên quan đến nghiệp vụ của hệ thống. Layer này gọi các 3rd party api giống như gọi các service phụ khác phục vụ các mục đích chuyên dụng như lưu các file, ảnh, và giao tiếp với persistence layer để chuyển các yêu cầu persist thông tin vào cơ sở dữ liệu.

- Persistence layer: Giao tiếp với hệ quản trị cơ sở dữ liệu để persist các thông tin yêu cầu từ các layer phía trên.

Hình 4.1: Kiến trúc hệ thống

GIAO DIỆN ỨNG DỤNG WEB

Giao diện đăng nhập

Ứng dụng web dành cho quản trị viên chi nhánh và bác sĩ cùng có chung một địa chỉ web để truy cập, hiện đang được triển khai tại https://ehealicords.vercel.app/

Quản trị viên chi nhánh và bác sĩ sau khi truy cập đến địa chỉ của ứng dụng web sẽ có chung một giao diện đăng nhập Họ cần cung cấp email và mật khẩu để đăng nhập vào ứng dụng.

Hình 5.1: Màn hình đăng nhập

Giao diện đổi mật khẩu lần đầu

Nếu như đây là lần đầu tiên đăng nhập thì giao diện đổi mật khẩu lần đầu sẽ hiện ra và yêu cầu người dùng đổi mật khẩu để kích hoạt tài khoản.

CHƯƠNG 5: GIAO DIỆN ỨNG DỤNG WEB

Hình 5.2: Màn hình đổi mật khẩu lần đầu

Giao diện quản trị viên

3.1 Các giao diện quản lý chi nhánh

Quản trị viên xem chi tiết chi nhánh hiện tại mình đang quản lý bằng cách chọn vào menu “Chi nhánh” trong thanh menu, sau đó giao diện thông tin chi tiết chi nhánh hiện tại sẽ được hiển thị ra.

CHƯƠNG 5: GIAO DIỆN ỨNG DỤNG WEB

Hình 5.3: Màn hình xem thông tin chi nhánh Để thực hiện cập nhật thông tin chi nhánh, ở giao diện thông tin chi tiết chi nhánh quản trị viên chọn “Chỉnh sửa” sau đó cập nhật đầy đủ các thông tin như form yêu cầu rồi chọn “Xác nhận” để cập nhật thông tin chi nhánh hoặc chọn

“Hủy” để hủy cập nhật thông tin chi nhánh.

Hình 5.4: Mà hình cập nhật thông tin chi nhánh

3.2 Các giao diện quản lý bác sĩ của chi nhánh

Quản trị viên chọn menu “Bác sĩ” trong thanh menu để xem danh sách các bác sĩ mình đang quản lý trong chi nhánh hiện tại.

CHƯƠNG 5: GIAO DIỆN ỨNG DỤNG WEB

Hình 5.5: Màn hình danh sách bác sĩ

Nếu muốn tạo mới hồ sơ bác sĩ, quản trị viên chọn “Thêm hồ sơ” trong màn hình danh sách bác sĩ, màn hình tạo mới hồ sơ xuất hiện Quản trị viên điền đầy đủ thông tin như form yêu cầu sau đó chọn “Xác nhận” để tạo hồ sơ mới hoặc thoát khỏi màn hình tạo mới hồ sơ để hủy tạo hồ sơ mới.

Hình 5.6: Màn hình tạo mới bác sĩ

CHƯƠNG 5: GIAO DIỆN ỨNG DỤNG WEB Để xem chi tiết thông tin một bác sĩ bất kỳ của chi nhánh, quản trị viên chọn

“Chi tiết” trên một dòng thông tin bác sĩ trong màn hình danh sách bác sĩ để tiến hành xem chi tiết thông tin Màn hình thông tin chi tiết sẽ xuất hiện để quản trị viên xem thông tin chi tiết.

Hình 5.7: Mà hình xem chi tiết hồ sơ bác sĩ Để cập nhật thông tin bác sĩ thì trong màn thông tin chi tiết bác sĩ, quản trị viên chọn “Chỉnh sửa thông tin”, form thông tin bác sĩ hiện ra cho quản trị viên điều chỉnh các thông tin cần cập nhật, rồi sau đó nếu chọn “Xác nhận” thì thông tin bác sĩ sẽ được cập nhật, nếu chọn “Hủy” thì thông tin bác sĩ sẽ được giữ nguyên.

CHƯƠNG 5: GIAO DIỆN ỨNG DỤNG WEB

Hình 5.8: Màn hình cập nhật hồ sơ bác sĩ Để xóa một hồ sơ bác sĩ bất kỳ của chi nhánh, quản trị viên chọn “Xóa” trên một dòng thông tin bác sĩ trong màn hình danh sách bác sĩ để tiến hành xóa hồ sơ. Popup hiện ra để xác nhận thì quản trị viên chọn “Xác nhận” để tiến hành xóa hồ sơ hoặc chọn “Hủy” để hủy xóa hồ sơ.

Hình 5.9: Màn hình xóa hồ sơ bác sĩ

CHƯƠNG 5: GIAO DIỆN ỨNG DỤNG WEB

TRIỂN KHAI

Ứng dụng web

Đối với ứng dụng web, tôi tiến hành triển khai NextJs sử dụng Vercel qua các bước sau đây:

Bước 1: Đầu tiên để có thể triển khai ứng dụng NextJs lên hệ thống Vercel, ta cần một tài khoản Github, sau đó thực hiện commit code và push code lên Github.

Bước 2: Truy cập địa chỉ web của Vercel: https://vercel.com/login/ để đăng ký tài khoản sử dụng Github Sau khi đăng ký, thêm dự án Github vào Vercel, truy cập https://vercel.com/import/ để thêm dự án và sau đó ủy quyền cho Vercel truy cập vào Github cá nhân.

Hình 6.1: Thêm project github vào vercel

Bước 3: Các mục thông tin tùy chọn cho dự án có thể để mặc định hoặc thay đổi theo ý muốn của như: tên dự án, địa chỉ, build command, development command,…

Hình 6.2: cấu hình thông tin triển khai trên vercel

Bước 4: Sau khi triển khai, dự án sẽ được hệ thống Vercel tự động build và nhanh chóng hoàn thành trong khoảng vài phút.

Hình 6.3: Hệ thống vercel triển khai ứng dụng web

Sau khi hoàn thành, một địa chỉ URL cho dự án sẽ được tạo ra, truy cập vào đường dẫn sẽ xuất hiện trang web yêu cầu.

Hình 6.4: Ứng dụng web được triển khai thành công

TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

Đánh giá kết quả đạt được

1.1 Đối với nhiệm vụ đề tài

Tìm hiểu nghiệp vụ về quy trình khám, về hồ sơ bệnh án và hồ sơ sức khỏe điện tử, cũng như các nghiệp vụ có liên quan khác trong lĩnh vực quản lý thông tin y tế Tham khảo các hệ thống ứng dụng có liên quan và đồng thời nghiên cứu thêm các tính năng hữu ích để xây dựng phần mềm, giúp phần mềm có cơ bản các tính năng hỗ trợ được nhu cầu cấu hình cho nhiều chi nhánh và cung cấp được các tính năng chính xoay quanh việc quản lý hồ sơ sức khỏe điện tử của người bệnh theo chiều dọc như quản lý lịch sử bệnh án, quản lý thông tin khám lâm sàng, thông tin cận lâm sàng, thông tin chẩn đoán và kết luận, thông tin đơn thuốc, và thông tin sức khỏe của người bệnh.

Tìm hiểu, học hỏi và vận dụng kỹ năng lập trình front-end để xây dựng ứng dụng web cho bác sĩ và quản trị viên của các chi nhánh.

Tìm hiểu, học hỏi và vận dụng kỹ năng lập trình back-end để xây dựng phần web server của hệ thống.

Tìm hiểu Vercel và cách triển khai ứng dụng web lên hệ thống của Vercel. Áp dụng Docker để đóng gói web server và triển khai nhanh lên nền tảng AWS cloud.

1.2 Đối với cơ sở lý thuyết và công nghệ Để hiện thực hệ thống, tôi đã tìm hiểu các công nghệ có liên quan và xem xét để chọn ra những công nghệ phù hợp với yêu cầu phát tiển hệ thống Thông qua quá trình đó tôi được học hỏi những công nghệ phát triển ứng dụng web và server cụ thể sau đây:

- Đối với ứng dụng web tôi sử dụng kết hợp React, Redux, NextJs

- Đối với server tôi hiện thực bằng Java và Spring Boot, sử dụng MySQL làm database lưu trữ các thông tin.

- Tôi đã triển khai web server lên môi trường cloud thông qua các dịch vụ của AWS: EC2, RDS, S3, , và tiển khai ứng dụng web dùng các dịch vụ của Vercel cung cấp như tên miền, ssl,

CHƯƠNG 7: TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

1.3 Đối với quy trình phát triển phần mềm

Về vấn đề tìm hiểu nghiệp vụ, quá trình hiện thực đề tài đã giúp tôi có cơ hội tìm hiểu về nhiều nghiệp vụ trong lĩnh vực y tế và chăm sóc sức khỏe, và mô hình hóa những nghiệp vụ này thành các chức năng trong phần mềm Về vấn đề tổ chức và quản lý mã nguồn, tôi đã áp dụng công cụ quản lý mã nguồn là git / github vào quá trình phát triển nhằm quản lý các phiên bản của mã nguồn một cách dễ dàng hơn, đồng thời sử dụng Docker Hub để quản lý các Docker image.

1.4 Đối với lợi ích thực tế Đề tài được tôi lên ý tưởng và thực hiện trước thực trạng việc quản lý hồ sơ sức khỏe điện tử chưa được áp dụng nhiều ở các phòng khám nhỏ như phòng khám bác sĩ gia đình, tuy nhiên để cả một hệ thống y tế có thể áp dụng được hồ sơ sức khỏe điện tử cần phải có sự đồng hành từ những cơ sở chăm sóc sức khỏe nhỏ nhất. Phần mềm của tôi có thể phục vụ được nhu cầu này của các phòng khám bác sĩ gia đình có từ một đến nhiều chi nhánh.

Phần mềm đã được tôi triển khai lên nền tảng Amazon Web Service vàVercel, trong đó ứng dụng web có thể truy cập thông qua public domain Bỏ qua những điểm còn thiếu sót về sự đa dạng tính năng, phần mềm có thể được hoàn thiện và bổ sung để triển khai cho các phòng khám bác sĩ gia đình vừa và nhỏ.

Đánh giá ưu điểm, nhược điểm

“Phần mềm quản lý hồ sơ sức khỏe điện tử cho phòng khám gia đình” với mục đích ban đầu là cung cấp tiện ích cho quản trị viên và bác sĩ đã đáp ứng được các chức năng cơ bản hỗ trợ cho việc quản lý hồ sơ sức khỏe điện tử: quản trị viên quản lý thông tin bác sĩ của chi nhánh, bác sĩ quản lý thông tin người bệnh, quản lý thông tin hồ sơ bệnh án điện tử của người bệnh theo chiều dọc lịch sử mà trong đó mỗi hồ sơ bệnh án bác sĩ có thể quản lý các thông tin liên quan đến khám lâm sàng,cận lâm sàng, chẩn đoán và kết luận, đơn thuốc và các thông tin sức khỏe So với một số ứng dụng khác cùng thể loại, ứng dụng của tôi có ưu điểm là hỗ trợ đa chi nhánh nên phản ánh đúng thực chất của hồ sơ sức khỏe điện tử hơn chứ không chỉ dừng lại ở hồ sơ bệnh án điện tử Đồng thời bệnh án điện tử trong hồ sơ sức khỏe

CHƯƠNG 7: TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI điện tử của tôi có thông tin sát với các mẫu bệnh án chuẩn của bộ y tế hơn chứ không đơn thuần là các bản tóm tắt ngắn như các phần mềm khác.

Tuy nhiên phần mềm cũng có những khuyết điểm cần phải khắc phục với mục đích nâng cao chất lượng như: chưa sử dụng chữ ký điện tử để xác thực các thông tin được thêm vào hồ sơ bệnh án của người bệnh, chưa thử tích hợp với các hệ thống khác như Hệ thống quản lý phòng khám HIS, Hệ thống lưu trữ và truyền tải hình ảnh PAC, Hệ thống thông tin xét nghiệm LIS, Khi các phòng khám có triển khai các hệ thống này và thường là vậy, hệ thống của tôi nhiều khả năng sẽ không thể tích hợp với các hệ thống đó tạo thành một hệ thống hoàn chỉnh lớn hơn.Ngoài ra, các hồ sơ bệnh án chưa đạt các chuẩn thông tin y tế điện tử đang được áp dụng nên chất lượng và độ chính xác của thông tin chưa được cao, đồng thời chưa thể đáp ứng được các yêu cầu về mặt pháp lý, quyền riêng tư, bảo mật thông tin nên chưa giải quyết được vấn đề cung cấp thông tin cho người bệnh sở hữu, để tận dụng thêm các lợi thế của hồ sơ sức khỏe điện tử đối với người bệnh.

Hướng phát triển đề tài

“Phần mềm quản lý hồ sơ sức khỏe điện tử cho phòng khám gia đình” với hướng tôi phát triển là một phần mềm quản lý hồ sơ sức khỏe điện tử cho phòng khám đa chi nhánh vừa và nhỏ, sẽ còn nhiều chức năng cần phát triển để đáp ứng với thực tế các phòng khám Tuy nhiên vì giới hạn nhân lực, thời gian cũng như cơ sở vật chất trong quá trình phát triển đề tài, nên còn nhiều thiếu sót không thể phủ nhận.

Với phần mềm hiện tại, tôi xin đề xuất một số hướng phát triển nếu sau này được phát triển mở rộng:

- Hoàn thiện thêm khả năng cấu hình các chi nhánh

- Nghiên cứu tích hợp chữ ký điện tử phục vụ việc xác thực thông tin bệnh án người bệnh.

- Hoàn thiện các tính năng quản lý bệnh án điện tử để bệnh án điện tử đạt các chuẩn thông tin y tế điện tử.

CHƯƠNG 7: TỔNG KẾT VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI

- Phát triển các thành phần tích hợp với các hệ thống thường có trong các phòng khám như HIS, LIS, PAC nhằm hỗ trợ tích hợp hệ thống của tôi vào một hệ thống các phần mềm lớn hơn trong một phòng khám, để phần mềm quản lý hồ sơ sức khỏe điện tử có thể trao đổi thông tin xét nghiệm với hệ thống LIS, trao đổi thông tin quản lý với hệ thống HIS, trao đổi thông tin hình ảnh với hệ thống PAC.

- Hoàn thiện các tính năng để đáp ứng nhu cầu về mặt pháp lý, quyền riêng tư, bảo mật thông tin người bệnh qua đó mở rộng các tính năng ra hệ thống các thiết bị di động hỗ trợ người bệnh theo dõi hồ sơ sức khỏe điện tử của mình nhằm tăng cường những lợi ích có được từ hồ sơ sức khỏe điển tử.

- Hỗ trợ thêm các tính năng liên quan đến thống kê phân tích dữ liệu để tận dụng được tài nguyên dữ liệu về hồ sơ bệnh án điện tử có trong các hồ sơ sức khỏe điện tử.

Ngày đăng: 30/07/2024, 17:35

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Bắt đầu với Docker. URL: https://docs.docker.com/get-started/ (Truy cập lần cuối:02/12/2021) Link
[2] Các hướng dẫn về lập trình React. URL: https://reactjs.org/tutorial/tutorial.html. (Truy cập lần cuối: 11/12/2021) Link
[3] Các frontend framework của Javascript. URL: https://developer.mozilla.org/en-US/docs/Learn/Tools_and_testing/Client-side_JavaScript_frameworks/Introduction. (Truy cập lần cuối: 09/10/2021) Link
[4] Các hướng dẫn về lập trình Java chi tiết. URL:https://www3.ntu.edu.sg/home/ehchua/programming/index.html#Java. (Truy cập lần cuối:23/11/2021) Link
[5] Tài liệu hướng dẫn kết nối MySQL. URL:https://dev.mysql.com/doc/refman/8.0/en/connecting.html (Truy cập lần cuối: 02/12/2021) [6] Lập trình JDBC với Java. URL:https://www3.ntu.edu.sg/home/ehchua/programming/java/JDBC_Intermediate.html (Truy cập lần cuối: 23/11/2021) Link
[7] Tài liệu chi tiết của Spring framework. URL: https://docs.spring.io/spring- framework/docs/current/reference/html/. (Truy cập lần cuối: 25/11/2021) Link
[8] Sự kết hợp của React và Spring Data Rest. URL: https://spring.io/guides/tutorials/react-and-spring-data-rest/. (Truy cập lần cuối: 10/10/2021) Link
[9] Các hướng dẫn về lập trình Spring framework. URL: https://spring.io/guides. (Truy cập lần cuối: 25/11/2021) Link
[10] Tài liệu chi tiết của Redux. URL: https://redux.js.org/. (Truy cập lần cuối: 11/12/2021) [11] Spring framework core. URL: https://spring.io/projects/spring-framework. (Truy cập lần cuối: 25/11/2021) Link
[12] Hướng dẫn sơ lược về Spring Data. URL: https://spring.io/blog/2011/02/10/getting-started-with-spring-data-jpa. (Truy cập lần cuối: 25/11/2021) Link
[13] Hướng dẫn SSL trong Spring Boot. URL: https://www.thomasvitale.com/https-spring-boot-ssl-certificate/. (Truy cập lần cuối: 27/11/2021) Link
[14] Quản lý phiên bản bằng Git. URL: https://backlog.com/git-tutorial/vn/intro/intro4_2.html.(Truy cập lần cuối: 13/10/2021) Link

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

TÀI LIỆU LIÊN QUAN