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

Hệ thống quản lý bệnh viện hospital management system

29 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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 đề Hệ Thống Quản Lý Bệnh Viện
Tác giả Thịnh Trần Khánh Linh, Nguyễn Hiệp Tài, Nguyễn Trung Tín, Nguyễn Mạnh Tuấn, Nguyễn Hà Thùy Linh, Trần Nguyễn Thanh Lâm
Người hướng dẫn ThS. Mai Ditc Trung
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Khoa Học Và Kỹ Thuật Máy Tính
Thể loại báo cáo
Năm xuất bản 2024
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 29
Dung lượng 2,55 MB

Nội dung

Bằng cách tận dụng sức mạnh của công nghệ thông tin, hệ thống quản lý bệnh viện đã trỏ thành công cụ không thể thiếu đối với các cơ sở y tế hiện đại.. Trong báo cáo này, nhóm askell Clou

Trang 1

DẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRUONG DAI HOC BACH KHOA KHOA KHOA HOC VA KY THUAT MAY TINH

BAO CÁO BÀI TẬP LỚN

MÔN LẬP TRÌNH NÂNG CAO

SV thực hiện: Thịnh Trần Khánh Linh 2211862

Nguyễn Hiệp Tài 2212985 Nguyễn Trung Tín 2213500 Nguyễn Mạnh Tuấn 2213786 Nguyễn Hà Thuỳ Linh 2211856 Trần Nguyễn Thanh Lâm 2211822

THANH PHO HO CHi MINH, THANG 4 NAM 2024

Trang 2

TRUONG DAI HOC BACH KHOA 6

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

đóng góp Leader: Phân công nhiệm vu theo

1 Trần Nguyễn Thanh Lam | 2211822 từng tuần va kiểm tra tiến độ, 100%

làm báo cáo BA: Làm các usecase diagram,

- Frontend: Hién thue UI Admin,

6 | Nguyễn Hà Thuy Linh 2211856 100%

Receptionist, Doctor

Trang 3

TRUONG DAI HOC BACH KHOA ge

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

3 Hiện thực phần mềm: 13 3.1 Các kiến thức trong Ự án: c c c c c r va 13 3.1.1 Singleton Pattern: 2.0 cv a a 13 3.1.2 NoSQL Database: 2 c c L Q r Là gà và va 14 3.13 Password Hashing: 0.0.00 2 va 15 3.2 Cac cdng nghé trong du an: 2 c c c c r c rà gà vàng 16 3.3 Câu trúc mã nguỒN: Q Q Q Q Q r Q ga va 19 : 87) 6C NNHaaIIII annnaananaiiia Ặ 20 3.41 Hiện thực Database: cv và va 20 3.4.2 Hién thuc Backend: 2 0.000.000 0000 0 ee 20 3.4.3 Hién thuc Frontend: 2 0.00.00 0000 0 es 20

4 Kiém thi phần mềm: 22

5.1 Ưu điểm và hạn chế 0 c c c c c vn ng xxx x2 26 5.2 Tính ứng dụng trong thực tiễn ee 27 5.3 Ké hoach phat trién tiép theo 2 27

6 Mã nguồn và hướng dẫn sử dụng 28

Trang 4

TRUONG DAI HOC BACH KHOA ge

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

1 Giới thiệu

Trong vài thập kỷ qua, sự tích hợp của công nghệ thông tin vào lĩnh vực y tế đã làm thay đổi cách cung cấp và quản lý dịch vụ y tế, mở ra một thời đại của sự hiệu quả, độ chính xác và tiện lợi chưa từng có

Bằng cách tận dụng sức mạnh của công nghệ thông tin, hệ thống quản lý bệnh viện

đã trỏ thành công cụ không thể thiếu đối với các cơ sở y tế hiện đại Các hệ thống này bao gồm một loạt các chức năng, bao gồm hồ sơ sức khỏe điện tử (EHR), lập lịch, thanh toán, quản lý hàng tồn kho và hơn thế nữa Chúng cung cấp cho các chuyên gia y tế thông tin toàn diện về bệnh nhân ngay lập tức, giúp chấn đoán nhanh chóng hơn, lập kế hoạch điều trị cá nhân hóa và cải thiện kết quả lâm sàng Hơn nữa, HMS tạo điều kiện cho việc phối hợp liền mạch giữa các phòng ban khác nhau, đảm bảo cung cấp dịch vụ đúng thời gian và phân phối tài nguyên hiệu quả, giảm đáng kế lượng tiêu thụ về giấy, mực so với cách lưu trữ thông tin truyền thống

Trong báo cáo này, nhóm askell Cloumns sẽ nghiên cứu các tác động của công nghệ thông tin đối với lĩnh vực y tế thông qua việc xây dựng một ứng dụng quản lý bệnh viện Sau đó nhóm sẽ thảo luận về các đặc điểm chính và lợi ích của các hệ thống này, xem xét vai trò của chúng trong tối ưu hóa việc cung cấp dịch vụ y tế, nâng cao trải nghiệm khám chữa bệnh, cùng với đó là những thách thức liên quan đến việc triển khai

và vận hành ứng dụng trong thực tế

Thông qua việc phân tích toàn diện về việc tích hợp công nghệ số hóa vào lĩnh vực

y tế để tối ưu hóa khả năng của hệ thống quản lý bệnh viện, nhớm đã tạo ra một giải pháp hữu ích nhằm hỗ trợ các cơ sở y tế có thể thích ứng với các yêu cầu của việc cung cấp dịch vụ y tế hiện đại, từ đó cải thiện kết quả cho bệnh nhân và nâng cao chất lượng chăm sóc

Trang 5

TRUONG DAI HOC BACH KHOA ge

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

Hệ thống được thiết kế dành cho các đối tượng sử dụng sau:

1 Admin: người quản trị các tài khoản trong hệ thống

2 Receptionist: người thực hiện các thủ tục khám chữa bệnh

3 Doctor: người tiến hành khám chữa bệnh và kê đơn thuốc

4 Technician: người quản lý các thiết bị y tế

5 Pharmacist: người quản lý kho thuốc

Mỗi loại đối tượng sẽ được thao tác trên một giao diện đi kèm với bộ tính năng khác nhau phù hợp với nhu cần sử dụng trong thực tế tại các bệnh viện Trang đăng nhập sẽ hiện ra khi người dùng mở ứng dụng lên và chỉ cho phép người có quyền hạn mới được

sử dụng tính năng tương ứng với vai trò của người đó trong bệnh viện

2.1 Use Case Diagrams

Dé có cái nhìn tổng quan về các tính năng được thiết kế cho 5 loại đối tượng này, ta

sẽ xem qua 5 sơ đồ Use Case Diagram - thể hiện các tương tác có thể xảy ra giữa người dùng và hệ thống

Trang 6

TRUONG DAI HOC BACH KHOA gp

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

2.1.1 Đối với Admin

Giao điện Admin gồm các tinh năng sau:

e Tao tài khoản cho nhân viên mới (5 loại người dùng) bằng cách điền các thông tin

cá nhân và chỉ định username + password

e Hiển thị danh sách tất cả các nhân viên cùng với thông tin về ID, tên, khoa

e Tìm kiêm thông tin nhân viên theo tên

e Xóa nhân viên khỏi hệ thống

Trang 7

TRUONG DAI HOC BACH KHOA ge

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

2.1.2 Đối voi Receptionist

«extend» aree (Coenen) «extend»

auto find Doctor

We

S «extend»_

_= C delete

«extend»

Giao điện Receptionist gdm các tính năng sau:

e Quản lý danh sách các bệnh nhân: thêm, tìm kiếm theo tên, chỉnh sửa thông tin, xóa,

e Quản lý danh sách các hỗ sơ bệnh án (medical record) của mỗi bệnh nhân: thêm, xem thông tin, xuất viện (đưa bệnh án vào trạng thái hoàn thành), xóa Khi tạo mới một bệnh án, tùy vào khoa khám bệnh được chọn mà hệ thống sẽ tìm kiém va chon ra mét Doctor cho bệnh nhân, mỗi Doctor không được có quá 5 hồ sơ bệnh

Trang 8

TRUONG DAI HOC BACH KHOA 6

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

2.1.3 Đối với Doctor

a View

appointments /< - «extend»

doctor Post

finish health test - - «include»

Giao điện Doctor gồm các tính năng sau:

e Xem các hồ sơ được gửi đến từ Receptionist hoặc Technician: thông tin bệnh nhân

Receptionist

Khi gửi cho Technician, hồ sơ chuyển sang trạng thái TESTING

khi giti cho Receptionist, hé so chuyén sang trang thai DIAGNOSED

Trang 9

TRUONG DAI HOC BACH KHOA gp

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

2.1.4 Đối với Technician

view patient info

«extend» "

View med records /*”"””" «extend» -

Giao điện Technician gồm các tính năng sau:

e Xem các hồ sơ được gửi đến từ Doetor: thông tin cá nhân và lịch sử bệnh án

e Chỉnh sửa trên phần test result: upload file kết quả xét nghiệm gửi về cho Doctor

e Quản lý các máy móc y tế: thêm, dùng, bảo trì, tìm kiếm theo tên, xóa Khi gửi về cho Doctor, hồ sơ chuyển thành TESTED

Trang 10

TRUONG DAI HOC BACH KHOA ge

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

2.1.5 Đối với Pharmacist

Giao dién Pharmacist gồm các tính năng sau:

e Quản lý các lô thuốc: thêm, chỉnh sửa thông tin thuốc, tìm kiếm theo tên, xuất thuốc, xóa thuốc

e Lọc các lô thuốc theo tình trạng: số lượng rỗng, hết hạn

Mỗi phần tử thuốc sẽ là một lô thuốc được nhập vào kho gồm các thông tin: tên, mô

tả, hạn sử dụng, số lượng, đơn vị Như vậy có thể có nhiều lô thuốc cùng tên nhưng khác nhau về hạn sử dụng hoặc số lượng

Tính năng xuất thuốc sẽ tạo ra hóa đơn dưới dạng file pdf

2.2 Class Diagram

Hệ thống được thiết kế theo mô hình hướng đối tượng nên ta sẽ xem xét sơ dé Class Diagram, thể hiện quan hệ của các đối tượng chính trong hệ thống

Trang 11

TRUONG DAI HOC BACH KHOA gp

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

User

-userid: String san

«enumeration» -username: String - -

xd: String #staffld: String

ode #name: String

(from User) userMode: Made

- ¬ Mode: Mode Staff tri

ADMIN tafild: String DOCTOR +getLIserld(): String 1 1

RECEPTIONIST TECHNICIAN PHARMACIST p0: Map< <String S Otiecr

+hashPassword( Sting): String ~

+toMap(): Map<String, Object> Bia ze!

Doctor i | Technician | Pharmacist | Admin +PATIENT_LIMIT: Long = SL F 1 1 | J Patient -department: DeptType C 1 Ũ 1 C | ]

patientid: String -patientCount: Long

name: String +getDepartmem): DeptType

birthDate: Loc: alate ~getPatientCountQ: Long - Medicine

-gender: Gend ~toMap(: Ma in Machine =a

-address: sting machineld: String gionel Sane oe ng rin ber 9 machineName: String Date: Local 9

bloodG foup avaiUse: “imponDate: LocalDate

healthinsuranceNumber: String “useCount: Long -expiryDate: LocalDate

— amount: Long +getPatientid(): String +getMachineld(): String unit: String

He porn aoe s +getMach neName0 String description: String

+getformattedDate(): String *getAvaiUse(: Long —

+oetGen: getadress) Sting sgetUseCount(): Long +getM cgeiMedicineNamed} Sing eld

+getAddress(): Sting ` 1 i: In np ~ isl +getformattedImportDate(): LocalDate wtDat

+getPhoneNumbe ning % " >to, M Object> 3

etBi roup(): BloodGroup t: Time 2 00) ap ro Obs +getformattedExpiryDate(): Loc

-Status: Status +getAmountQ: Long

+toMap() Map<String, Object>

+getMedRecid(): String TestResult +getPatientid(): String Shrine

+getDoctorld(): sestType: Sriag

-analysisFileP ath: String -diagnosis: String -prescription: String

enumeration» nai h

` +setCheckOut(Timestamp): void (from MedicalRecord) +getStatus(): Status +gefTestType0: Strin

PENDING 0: Long +9) ‘AnalysisFilePath0:

Giải thích về quan hệ giữa các class:

1 Quan hệ Composition giữa User và Staff: các thông tin đăng nhập của tài khoản được cô lập vào lớp Ủser Khi một nhân viên mới được tạo ra, một instance Staff phải được tạo ra trước, sau đó Staf#f ID sẽ được lưu vào User để khi đăng nhập,

hệ thống truy xuất User từ DB và từ đó nhận được các thông tin của người dùng lưu trong Staf Khi xóa tài khoản, User cũng sẽ được xóa trước rồi đến Staff

2 Quan hệ thừa kế của Doctor, Receptionist, Technician, Pharmacist, Ad- min tir Staff: vì hệ thống được xây dựng còn đơn giản nên ngoài Doctor ra, các loại người dùng còn lại chưa có sự khác nhau về các thông tin cá nhân Tuy nhiên nhóm vẫn giữ thiết kế này để dễ mở rộng trong tương lai

=5 Quan hé Association giữa MedicalRecord với Doctor và Receptionist:

để có thể hiển thị với đúng người dùng, hồ sơ phải lưu thong tin cha Doctor va leceptionist gắn với hồ sơ đó Sự tồn tại của MedicalRecord không ảnh hưởng đến Doctor hay Receptionist và ngược lại

11

Trang 12

4 Quan hệ Composition giữa MedicalRecord và Patient: bệnh nhân có thể

có nhiều hồ sơ bệnh án khi đi khám bệnh nhiều lần MedicalRecord sẽ bị xóa khi

TRUONG DAI HOC BACH KHOA

KHOA KHOA HỌC VÀ KỸ THUẬT MAY TÍNH +

Patient bị xóa khỏi hệ thống

5 Quan hệ Composition giữa TestResult và MedicalRecord: kết quả khám bệnh là một phần của hồ sơ bệnh án nên cũng sẽ bị xóa khi hồ sơ bị xóa Ngoài ra, trong mã nguồn còn nhiều class khác liên quan đến hiển thị giao diện, truy cập Database, Filemanager,

UserDAO -gblđanagar: DBManaper

+deleteDocument( ): void

+getMachineByName(String): List«Machine>

+getUsableMachine(): List<Machine>

+getUnusableMachine(): ListsMachine= +getAllMachines(): List<Machine>

+getMadicineByld(String): Medicine +getAliMedicine(): List<Medicine>

+getMedicineByName(String): List<Medicine> +getOutOfStock(): List<Mecicine>

Trang 13

TRUONG DAI HOC BACH KHOA ge

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

và trình bày trọng tâm của giải pháp cho vấn đề đó, theo cách mà có thể dùng đi dùng lại hàng triệu lần mà không cần phải suy nghĩ

Nhóm chúng em đã nhận ra tầm quan trọng của việc áp dụng design pattern trong quá trình thực hiện dự án và đã lựa chọn Singleton là pattern phù hợp cho mục đích của mình

Singleton là một pattern phải thỏa mãn 2 tiêu chí

e Giới hạn chỉ có duy nhất 1 instance của class đó tồn tại ở bất kỳ thời điểm nào class đó được request

e Cho phép quyền truy cập global

Vấn đề mà singleton giải quyết là làm sao để đảm bảo rằng 1 class chỉ có 1 instance duy nhất và nó luôn sẵn sàng để sử dụng ở bất kỳ thời điểm hoặc vị trí nào trong phần mềm của chúng ta Có thể lấy ví dụ như:

e Những tài nguyên được chia sẻ như DB để truy suất, file vật lý được sử dụng chung Những tài nguyên này nên chỉ có 1 instance tồn tại để sử dụng và theo dõi trạng thái của nó trong suốt quá trình sử dụng

e Hoặc những kiểu object không cần thiết phải tạo instance mới mỗi lần sử dụng như logging object, hãy tưởng tượng chuyện gì xảy với mỗi dòng log chúng ta lại tạo mới một logging object

Cách thức implement cơ bản với Java (Eager Initialization Singleton)

:public class Singleton {

2 // 1 Set instance to static

13

Trang 14

TRUONG DAI HOC BACH KHOA ge

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

9 // 3 Getter set to static method

10 public static Singleton getSingletonInstance() {

mở phân tán Thuật ngữ NoSQL đánh dấu bước phát triển của thế hệ database mới: distributed (phân tán) + non-relational (không ràng buộc) Dây là 2 đặc tính quan trọng nhất

Dac điểm của các No§QL Database:

e Consistency: chấp nhận tính nhất quán yếu, có thể không thấy ngay được sự thay đổi mặc dù đã cập nhật dữ liệu

14

Trang 15

TRUONG DAI HOC BACH KHOA ge

KHOA KHOA HOC VA KỸ THUAT MÁY TÍNn €+

e High Availability: Do chấp nhận sự trùng lặp trong lưu trữ nên nếu một node (commodity machine) nào đó bị chết cũng không ảnh hưởng tới toàn bộ hệ thống

e High Scalability: Gan như không có một giới hạn cho đữ liệu và người dùng trên hệ thống

e Deployment Flexibility: việc bố sung thêm/loại bỏ các node, hệ thống sẽ tự động nhận biết để lưu trữ mà không cần phải can thiệp bằng tay Hệ thống cũng không đòi hổi cấu hình phần cứng mạnh, đồng nhất

Phân loại các NoSQL Database:

e IXey-value stores Lưu trữ kiểu key-value là kiểu lưu trữ dữ liệu NoSQL đơn giản nhất sử dụng từ một API Chúng ta có thể nhận được giá trị cho khóa, đặt một giá trị cho một khóa, hoặc xóa một khóa từ dữ liệu

e Column-oriented databases (column-family) Cơ sở dữ liệu column-family lưu trữ

đữ liệu trong nhiều cột trong mỗi dòng với key cho từng dòng

e Document-oriented databases Tài liệu là nguyên lý chính của cơ sở dữ liệu kiến dữ liệu Dữ liệu lưu trữ và lấy ra là các tài liệu với định dạng XML, JSON, BSON Tài liệu miêu tả chính nó, kế thừa từ cầu trúc dữ liệu cây

Sau khi tìm hiển về công nghệ NoSQL, nhóm chúng em đã quyết dinh chon Cloud Firestore, mot Document-oriented database

3.1.3 Password Hashing:

Hashing là quá trình tạo ra một chuỗi (được băm) từ một thông điệp (chuỗi) được truyền vào sử dụng một hàm toán học nào đó (hàm băm mật mã) Mặc dù hiện nay có rất nhiều "hàm băm", mỗi hàm được viết dưới nhiều thuật toán khác nhan, cho ra nhiều kết quả khác nhau Tuy nhiên để là một hàm băm tốt cần phải có 4 thuộc tính bảo mật như sau:

e Có tính xác định: Cùng một chuỗi đầu vào được xử lý bởi cùng hàm băm, sẽ cho ra cùng một kết quả

e Không thể đảo ngược: Không thể tạo ra chuỗi (thông điệp) từ một chuỗi đã được băm từ hàm băm

15

Ngày đăng: 19/12/2024, 15:44

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN