chương 1, nhóm chúng tôi sẽ trình bay khái quát về đề tài, bao gồm những ly do chọn làm đề tài này, cũng như mục tiêu của đề tài này và phạm vi ứng dụng trong thực tế.1 Lý do chọn đề tài Trong thời kỳ công nghệ số hóa và y học tiên tiến, khả năng chẩn đoán bệnh thông qua hình ảnh y tế đang trở thành một thành phần quan trọng của sự tiến bộ trong lĩnh vực chăm sóc sức khỏe. Bằng việc áp dụng các phương pháp hình ảnh như siêu âm, x-quang, các chuyên gia y tế có khả năng đánh giá và phân tích dữ liệu hình ảnh, từ đó đưa ra những quyết định quan trọng liên quan đến việc chẩn đoán bệnh và phương pháp điều trị hiệu quả. Hình ảnh y khoa không chỉ là một công cụ hữu ích, mà còn là nguồn thông tin quan trọng về tình trạng sức khỏe của bệnh nhân. Qua việc thực hiện các phân tích chi tiết, hình ảnh y tế giúp đảm bảo rằng bệnh nhân được đánh giá chính xác và nhận được chăm sóc y tế tối ưu nhất.
Điều này không chỉ tăng cường khả năng chẩn đoán mà còn thúc đẩy quá trình điều trị hiệu quả và đồng thời nâng cao chất lượng cuộc sống của bệnh nhân. Tuy nhiên, việc chẩn đoán bệnh dựa trên hình ảnh y khoa đòi hỏi sự kỹ thuật và kiến thức chuyên môn cao, cũng như sự đánh giá đối chiếu giữa nhiều hình ảnh và dữ liệu tương ứng. Ngoài ra, sự tiến bộ của y học và công nghệ đã tạo ra một lượng lớn dữ liệu hình ảnh y khoa, đặc biệt trong các hệ thống PACS1 [3], nơi hình ảnh y khoa được lưu trữ và quản lý. Thách thức nảy sinh khi cần quản lý, truy cập, và sử dụng hiệu quả dữ liệu hình ảnh y khoa.
Với nhận thức về những khó khăn này, nhóm sinh viên đã quyết định triển khai một hệ thống phần mềm hỗ trợ các bên sử dụng dịch vụ chuẩn đoán bệnh qua hình ảnh một cách nhanh chóng và thuận tiện. Mục tiêu là tối ưu hóa quá trình quản lý dữ liệu, cung cấp khả năng truy cập linh hoạt và đồng thời đảm bảo tính chính xác và hiệu quả trong quá trình chẩn đoán. Đề tài "Phát triển hệ thống multi-tenant và ứng dụng hệ thống phần mềm hỗ trợ chẩn đoán bệnh dựa trên hình ảnh y khoa" đã ra đời với mục tiêu chính là đáp ứng linh hoạt và tích cực đối với các thách thức và cơ hội đặt ra trong lĩnh vực chăm sóc sức khỏe. Hệ thống này được xây dựng dưới hình thức multi-tenant, cho phép nhiều tổ chức y tế và cá nhân truy cập và sử dụng dịch vụ chẩn đoán bệnh dựa trên hình ảnh y khoa một cách hiệu quả và an toàn.
Mục tiêu của đề tài là nâng cao quy trình chẩn đoán bệnh, đảm bảo rằng bệnh nhân nhận được chăm sóc y tế tốt nhất có thể. Qua đó, hệ thống không chỉ hỗ trợ tối ưu hóa chẩn đoán mà còn mở rộng cơ hội tiếp cận đối với các tổ chức y tế và chuyên gia. Điều này giúp tăng cường hiệu suất và chất lượng của quá trình chăm sóc sức khỏe, đồng thời thúc đẩy sự phát triển và tiến bộ trong lĩnh vực y học. 1 Picture Archiving and Communication System Báo cáo Đồ án Tốt Nghiệp (CO4337) - Niên Khóa 2023-2024 Trang 1/61 Trường Đại Học Bách Khoa - Đại học Quốc gia TP.HCM Khoa Khoa Học & Kỹ Thuật Máy Tính 1.2 Mục tiêu đề tài Mục tiêu chính của dự án này là phát triển một ứng dụng phần mềm với kiến trúc multi-tenant, tạo điều kiện cho nhiều tổ chức y tế, bệnh viện, và cá nhân sử dụng ứng dụng chẩn đoán bệnh dựa trên hình ảnh y khoa.
Bằng phương pháp này, các tổ chức có thể triển khai hệ thống này để thực hiện các công việc chẩn đoán, theo dõi, và điều trị bệnh, trong khi bệnh nhân cũng có khả năng truy cập và tận dụng dịch vụ của nhóm dự án,góp phần tạo ra một môi trường linh hoạt và tích hợp, nâng cao khả năng đáp ứng và hiệu quả của quá trình chăm sóc sức khỏe, đồng thời tạo ra sự thuận tiện và tiếp cận dễ dàng cho người dùng cuối.3 Phạm Vi Đề Tài Trong phạm vi của đề tài này, nhóm sẽ tận dụng các công nghệ phát triển web để thiết kế và xây dựng một ứng dụng web cung cấp dịch vụ chuẩn đoán bệnh dựa trên hình ảnh y khoa. Mục tiêu là phát triển một nền tảng mạnh mẽ, linh hoạt và hiệu quả, giúp tối ưu hóa quá trình chẩn đoán và tạo ra trải nghiệm người dùng đồng thời thuận tiện và chất lượng. Báo cáo Đồ án Tốt Nghiệp (CO4337) - Niên Khóa 2023-2024 Trang 2/61 Trường Đại Học Bách Khoa - Đại học Quốc gia TP.HCM Khoa Khoa Học & Kỹ Thuật Máy Tính Chương 2 Kiến thức nền tảng Trong chương 2, nhóm sẽ nêu các kiến thức nền tảng cho việc giải quyết mục tiêu của đề tài. Từ đó rút ra được các công nghệ được sử dụng cho hệ thống.1 Khái niệm Web Development là quá trình phát triển và xây dựng các trang web cũng như ứng dụng dành cho Internet.
Quá trình phát triển web bao gồm mọi thứ từ các trang web tĩnh đơn giản đến các nền tảng và ứng dụng truyền thông xã hội phức tạp, cũng như từ các trang web thương mại điện tử đến hệ thống quản trị nội dung. Một cách đơn giản hóa, phát triển web là quá trình tạo ra các ứng dụng web có thể chạy trên các trình duyệt web và người thực hiện công việc này được gọi là web developer. Lĩnh vực này được phân chia thành ba nhánh chính: client-side coding (frontend), server-side coding (backend) và công nghệ cơ sở dữ liệu (database technology)[13]. • Client-side: thuật ngữ nói về cách render một trang web, quá trình render sẽ không diễn ra trên web server mà ở trình duyệt.
Client-side code sẽ thực thi những gì người dùng cuối nhìn thấy khi họ truy cập vào website, người dùng sẽ thấy những thứ như bố cục, phông chữ, màu sắc,. • Server-side: kịch bản phía máy chủ thường dùng để cho người truy cập có thể tuỳ chỉnh trang web mà mình sử dụng, tất cả những điều này sẽ diễn ra bên trong hậu trường nơi người dùng không thể nhìn thấy. Server-side sẽ chịu trách nhiệm lưu trữ và sắp xếp dữ liệu, đồng thời đảm bảo rằng mọi thứ ở client-side đều chạy trơn tru, nó thực hiện điều này bằng cách giao tiếp với frontend. Bất cứ khi nào có điều gì đó xảy ra ở phía client-side, ví dụ như khi người dùng điền vào biểu mẫu, lúc này trình duyệt sẽ gửi yêu cầu đến server-side.
Phía server-side sẽ "phản hồi" với thông tin liên quan ở dạng frontend code sau đó frontend có thể diễn giải và hiển thị. • Database technology: các website cũng dựa trên công nghệ quản lý dữ liệu (database technology). Database chứa tất cả các tệp và nội dung cần thiết để website hoạt động, lưu trữ giúp dễ dàng truy xuất, sắp xếp, chỉnh sửa và lưu. Database chạy trên máy chủ (server) và hầu hết các website thường sử dụng hệ quản trị cơ sỡ dữ liệu quan hệ (RDBMS).2 Web Application Architecture Kiến trúc ứng dụng web (Web Application Architecture) là một khái niệm mô tả cách các thành phần của ứng dụng được kết nối và tương tác với nhau.
Đồng thời mô tả cách máy khách và máy chủ thiết lập kết nối, cùng với việc máy chủ xử lý giao tiếp giữa máy khách và máy chủ[14]. Để hiểu rõ cách một kiến trúc web hoạt động, hãy xem xét trường hợp của "hc- mut.vn": khi nhập "hcmut.vn" vào trình duyệt, địa chỉ IP của người dùng được Báo cáo Đồ án Tốt Nghiệp (CO4337) - Niên Khóa 2023-2024 Trang 3/61 Trường Đại Học Bách Khoa - Đại học Quốc gia TP.HCM Khoa Khoa Học & Kỹ Thuật Máy Tính Hình 1: Minh họa một kiến trúc ứng dụng web xác định và yêu cầu sẽ được gửi đến máy chủ tên miền. Máy chủ tên miền sau đó chuyển tiếp yêu cầu đến máy chủ nơi hcmut được lưu trữ. Máy chủ này sẽ xử lý yêu cầu, truy xuất dữ liệu cần thiết và sau đó trả kết quả về để hiển thị trên màn hình của người dùng.2 Kiến trúc Multi-tenant 2.1 Tổng quát về kiến trúc Multi-tenant Kiến trúc multitenancy là một cấu trúc phần mềm trong đó một phiên bản duy nhất của phần mềm chạy trên một máy chủ và phục vụ nhiều khách hàng.
Các hệ thống được thiết kế theo cách này được gọi là "chia sẻ" (thay vì "riêng biệt" hoặc "cô lập"). Mỗi khách hàng được hiểu là một nhóm người dùng chia sẻ quyền truy cập chung với các đặc quyền cụ thể đối với phiên bản phần mềm[15]. Trong kiến trúc multitenancy, ứng dụng phần mềm được thiết kế để cung cấp mỗi khách hàng một phần riêng biệt của phiên bản - bao gồm dữ liệu, cấu hình, quản lý người dùng, chức năng cụ thể của khách hàng và các thuộc tính không chức năng. Kiến trúc multitenancy tương phản với các kiến trúc multi-instance, trong đó các phiên bản phần mềm riêng biệt hoạt động thay mặt cho các khách hàng khác nhau.
Nhiều nhận xét cho rằng multitenancy là một đặc điểm quan trọng của tính năng trong lĩnh vực cloud computing. Điều này đặc biệt trở nên quan trọng trong bối cảnh ngày nay, nơi sự linh hoạt và khả năng chia sẻ tài nguyên giữa các khách hàng là chìa khóa cho việc tối ưu hóa hiệu suất và chi phí trong môi trường đám mây.2 Ứng dụng của kiến trúc Multi-tenant Kiến trúc Multi-tenant được cải tiến và kết hợp một số đặc điểm của ba loại dịch vụ sau: • Timesharing: Bắt đầu từ những năm 1960, các doanh nghiệp đã áp dụng mô hình chia sẻ thời gian (timesharing) bằng cách thuê không gian lưu trữ và khả năng xử lý trên máy tính lớn để giảm thiểu chi phí tính toán. Trong mô hình này, họ cũng tận dụng ứng dụng hiện có bằng cách đơn giản chỉ cần một trường nhập dữ liệu tại màn hình đăng nhập để xác định một ID tài khoản khách hàng. Dựa trên ID này, bộ phận kế toán của máy tính lớn có khả năng lập hóa đơn chính xác cho từng khách hàng, bao gồm chi phí sử dụng CPU, bộ nhớ, và ổ đĩa/băng thực tế.
Báo cáo Đồ án Tốt Nghiệp (CO4337) - Niên Khóa 2023-2024 Trang 4/61 Trường Đại Học Bách Khoa - Đại học Quốc gia TP.HCM Khoa Khoa Học & Kỹ Thuật Máy Tính • Hosted Applications: Từ đầu những năm 1990, các nhà cung cấp dịch vụ ứng dụng truyền thống (ASPs) đã đưa ra khái niệm về việc chứa (host) các ứng dụng thay cho khách hàng của họ.