Chương 1. TONG QUAN ĐÈ TÀI 1. Giới thiệu đề tài Trong thời gian qua, ngành y tế tại Việt Nam đã có nhiều khởi sắc và tiến bộ về trình độ cũng như chất lượng chăm sóc người bệnh. Trong đó, việc áp dụng thành công nhiều tiến bộ về khoa học kỹ thuật và công nghệ vào trong qui trình điều trị, bảo vệ, chăm sóc và nâng cao sức khỏe người dân đã mang lại nhiều kết quả tích cực.
Bộ Y tế đã đổi mới mạnh mẽ về cơ chế và phương thức hoạt động của Y tế Cơ sở đề xây dựng được nền tảng chăm sóc sức khỏe cho nhân dân, góp phần giảm tải y tế tuyến trên và đáp ứng được yêu cầu cơ bản trong việc chăm sóc sức khỏe ban đâu cho người dân Bộ Y tế cho răng Y tế cơ sở là nền tảng, xương sống của hệ thống y tế Việt Nam. Hệ thống này sẽ đảm bảo cung cấp dịch vụ chăm sóc sức khỏe ban đầu toàn diện, giúp cho mọi người tiếp cận được dịch vụ y tế một cách ít tốn kém nhất. Song song với việc phát triển Y tế cơ sở, đó chính là sự phát triển của cuộc Cách mạng công nghiệp 4. Trong năm 2019, các ứng dụng công nghệ thông tin trong bảo vệ, chăm sóc, nâng cao sức khỏe ở Việt Nam đã có nhiều bước đột phá.
Chúng ta có thé thay sự hiện diện của ứng dụng công nghệ trong khắp các lĩnh vực của ngành y, từ Ung dụng bệnh án điện tử; tư van khám chữa bệnh online, thu viện phí trực tuyén;. cho đến hệ thống BHYT quốc gia (VSSID) được triển khai gần đây, hệ thống phòng chống Covid-19 như BlueZone, Ncovi,. Đến nay, 100% cơ sở khám, chữa bệnh đã có ứng dụng công nghệ thông tin trong quản lí bệnh viện và kết nối liên thông với bảo hiểm xã hội. Cả nước đã có khoảng 30% bệnh viện triển khai thanh toán điện tử không bằng tiền mặt.
Đây là minh chứng cho việc công nghệ thông tin đã va đang được ứng dụng rộng rãi trong ngành Y tế Việt Nam và là nền tảng quan trọng cho việc phát triển công tác khám chữa bệnh và đảm bảo quyền lợi về y tế và sức khỏe cho người dân Việt Nam. Mục tiêu - _ Mục tiêu chính của dé tài là = Tìm hiéu kiến trúc Multi-tenancy, áp dụng hướng tiếp cận phù hợp vào việc xây dựng hệ thống quản lí phòng khám. =» Xây dung một hệ thống quản lí phòng khám tiện dụng cho phòng khám, bệnh nhân, va dé dàng phát triển, mở rộng cho nhà cung cấp dịch vu phần mềm. = Xây dựng một ứng dụng mobile cho bệnh nhân dé tăng tương tác giữa bệnh nhân và phòng khám.
Đối tượng nghiên cứu - _ Khóa luận này hướng đến nghiên cứu các đối tượng sau: - _ Các công nghệ phát triển ứng dụng: = ASP.NET Core = Angular =" SQL Server = Multi-tenancy = React Native - Déi tượng đề tài hướng đến: = Phòng khám có nhu cau quản lí sử dung ứng dụng công nghệ thông tin = Bệnh nhân đến khám ở các phòng khám này 1. Phạm vi nghiên cứu Ứng dụng quản lí phòng khám được xây dựng bằng công nghệ ASP.NET Core cho các RESTful Service và Angular cho giao diện người dùng. Phương pháp nghiên cứu và nguồn số liệu 1. Phương pháp nghiên cứu Nhóm đã sử dụng các phương pháp nghiên cứu: - _ Nghiên cứu, đọc tài liệu về các vấn đề liên quan - Phân tích các phần mềm, ứng dụng hiện có Nhóm tập trung tìm hiểu về các công nghệ được áp dụng dé xây dựng hệ thống phòng khám.
Trong đó, các công nghệ chính được sử dụng gồm ASP.NET Core, Angular, React Native, SQL Server, kiến trúc Multi-tenancy. Ngoài ra, nhóm còn tham khảo các ứng dụng quản lí phòng khám đang có trên thị trường hiện nay dé chọn hướng phát trién phù hợp. Nguồn dữ liệu Nhóm đã chọn nguồn dữ liệu cho luận văn từ nguồn đáng tin cậy: Công thông tin điện tử thuộc Bộ Y tế - https://moh. Diém mới của luận văn Các ứng dụng quản lí phòng khám hiện nay trên thị trường chủ yếu sử dụng công nghệ cũ và theo mô hình cài đặt ứng dụng sử dụng trực tiếp trên máy.
Với luận văn này, ứng dụng được xây dựng trên nền tảng web và được triển khai với mô hình hệ thống phân tán, giúp cho việc cài đặt, sử dụng và tiếp cận người dùng cuối dễ dàng hơn rât nhiêu. Ngoài ra ứng dụng của nhóm được xây dựng với kiến trúc Multi-tenancy. Điều này giúp cho các phòng khám sử dụng hệ thống này có thể quản lí các tài nguyên riêng của mình một cách độc lập chỉ thông qua việc đăng nhập vào tài khoản của mình và không phải cài đặt hay triển khai ứng dụng cho từng phòng khám riêng biệt. Tổng quan về kiến trúc Multi-tenancy 2.
Khái niệm Cụm từ “software multitenancy” dùng dé miêu tả một loại kiến trúc phần mềm mà trong đó, một thể hiện của phần mềm đó được triển khai trên server và dùng dé phuc vu nhiéu người thuê (tenants). Cu thé là, một tenant có thé là một khách hàng doanh nghiệp hay cá nhân của dịch vụ phần mềm này, và họ có quyền và khả năng truy cập vào một số tài nguyên nhất định trong thê hiện của hệ thống. Single Tenant Multi-Tenant HẠ 88 š Hình 2.1 Kiến trúc Single-tenancy và Multi-tenancy 2. Đặc điểm Trong một kiến trúc multi-tenancy, phần mềm được thiết kế dé cung cap cho mỗi tenant một phần của hệ thong — trong đó bao gom dữ liệu, hiệu chỉnh, quan lí người dùng, các chức năng của tenant đó và các yêu cầu phi chức năng.
Multi- tenancy đối lập với các kiến trúc single-tenancy thông thường, trong đó mỗi tenant sử dụng riêng một instance của hệ thống được triển khai riêng cho đúng tenant đó. Ưu điểm và nhược điểm của Multi-tenancy 2. Ưu điểm Giảm thiểu chỉ phí: = Đây là ưu điểm quan trọng nhất. Kiến trúc Multi-tenancy cho phép người dùng và cả nhà phát triển tiết kiệm được rất nhiều chi phí bằng các tổ hợp lại qui trình triển khai ứng dụng cho các tenant.
Lấy ví dụ: mỗi tenant phải tự triển khai một hệ thống của mình, trong đó mỗi hệ thống sẽ phải chiếm memory và overhead không dùng cho nghiệp vụ của tenant đó. Bên cạnh đó mỗi tenant phải chỉ riêng phí bản quyền cho các phần mềm khác được sử dụng (như hệ điều hành, database.) Bằng cách ứng dụng multi-tenancy, chúng ta với tư cách là nhà phát triển chỉ cần triển khai đúng một hệ thống để dùng chung cho tất cả tenants. Điều này làm giảm được nhiều overhead dẫn tới chi phí không đáng có. Ngoài ra, việc lisensing cũng trở nên dễ hơn vì chúng ta chỉ triển khai đúng một hệ thống.
Những yếu t6 trên chung qui lại là kiến trúc multi-tenancy sẽ giúp chung ta scale hệ thông dễ dang hơn va theo nhu cầu của các tenants và nhà phát triển. Không bị phí phạm, thừa thai tài nguyên do nhu cầu sử dụng của các tenants không đồng đều. Khai thác dữ liệu “ Với mô hình truyền thống, mỗi tenant sẽ sử dụng bộ dữ liệu riêng trong một nguồn dữ liệu riêng. Bên cạnh đó, các nguồn dữ liệu này còn có thé có các thiết kế khác nhau.
Do đó việc thu thập di liệu người dùng sẽ trở nên khó khăn hơn. Với mô hình Multi-tenancy, các tenants sẽ sử dụng chung một nguồn dữ liệu với thiết kế như nhau. Khi đó việc thu thập dữ liệu sẽ trở nên dễ dàng hơn. Chúng ta với tư cách là nhà phát triển sẽ biết được nhu cầu và các xu hướng của người dùng người dùng, từ đó phát triên được hệ thống tốt hơn.
- _ Triển khai các bản phát hành dễ hơn “ Với mô hình truyền thống, chúng ta phải đóng gói mã nguồn và thay đôi database, sau đó mới triển khai cho khách hàng trên server của họ. Khi scale lên, việc này sẽ trở nên tốn thời gian rất nhiều khi lượng khách hàng lớn. Multi-tenancy giúp cho việc phát hành phiên bản phần mềm mới dễ dàng hơn đến khách hàng. Một phiên bản chỉ cần được triển khai trên một server và tat cả tenants đêu sẽ sử dụng được.
Nhược điểm - Van đề về tùy chỉnh cho khách hang Một hệ thống mult-tenancy thường sẽ có nhiều khách hang sử dụng chung. Cho nên việc cho khách hàng có thê tùy chỉnh được hệ thống của mình theo nhu cầu của họ là rất cần thiết. Một số vấn đề về việc tùy chỉnh bao gồm: Thương hiệu và tính thâm mỹ của khách hàng, Luéng và qui trình làm việc của khách hang, Mô hình dữ liệu dé thay đối, Quyền truy cập hệ thống và dữ liệu của từng khách hàng,. - Chat lượng của dịch vụ Hệ thống phải đảm bảo chất lượng về bảo mật, tính khả dụng và hiệu năng cho các tenants, thông thường là nhờ vào việc triển khai tài nguyên hệ thống bởi nhà phát triển - Phức tạp Do phải cung cấp nhiều tùy chỉnh và lưu trữ siêu đữ liệu cho từng khách hàng, hệ thống multi-tenancy cần nhiều nguồn lực phát triển hơn.
Bên cạnh đó, nhà phát triển phải lo về các vấn đề gây ảnh hưởng đến hệ thống do được sử dụng chung cho tat cả tenants. Tổng quan về ASP.NET Core và ASP. Giới thiệu ASP.NET Core ASP.NET Core là một web framework mã nguồn mở và miễn phí, kế thừa từ ASP.NET và được phát triển bởi Microsoft.NET Core được viết tại từ đầu và hợp nhất ASP.NET MVC và ASP.NET Web API thành một mô hình lập trình chung duy nhất. Một số tính năng khi sử dụng ASP.NET Core bao gồm: Xây dựng ứng dụng web va web services, ứng dụng IoT, và backends cho mobile Sử dụng các công cụ phát triển trên các nền tảng khác nhau bao gồm Windows, macOS và Linux Dễ dàng triển khai và tích hợp với dịch vụ cloud Azure của Microsoft Chạy trên nền .NET Core — nền tảng chung cho các sản phẩm phát trién phần mềm của Microsoft.
Nhóm quyết định sử dụng ASP.NET Core vì các lí do sau: Dễ dàng xây dựng RESTful APIs làm backend cho các ứng dụng frontend Cấu trúc phần mềm dễ hiéu và phát trién Chạy được trên nhiều nền tang và công cụ phát trién khác nhau Mã nguồn mở và cộng đồng lớn mạnh Các tinh năng có sẵn hữu dụng như dependency injection, http request pipeline. Giới thiệu ASP.NET Boilerplate ASP.NET Boilerplate (ABP) là một framework mã nguồn mở và gồm tài liệu hướng dẫn đầy đủ và chỉ tiết. Bên cạnh đó, ABP còn cung cấp sẵn một kiến trúc phần mềm dựa trên Domain Driven Design (DDD) và nhiều best practices. ABP bao gồm phiên bản được viết trên ASP.NET Core và dễ sử dụng.