PHẦN MỞ ĐẦU 6. Phần mềm đặt lịch khám bệnh medpro (https://medpro.2: Ứng dụng web đăng ký đặt lịch khám - Medpro Chức năng chính: phần mềm cho phép người dùng lựa chọn đặt khám tại cơ sở y tế hoặc theo bác sĩ. Ngoài ra, phần mềm còn cung cấp đặt các gói dịch vụ xét nghiệm, tiêm chủng tùy theo nhu cầu của người khám. Tư vấn khám bệnh qua video, thông qua phần mềm người dùng có thể nhận được những lời tư vấn của các bác sĩ chuyên khoa từ xa mà không cần đến trực tiếp đến cơ sở y tế.
Tra cứu kết quả khám bệnh, người dùng có thể tra cứu kết quả khám trên phần mềm sau ngày khám giúp tiết kiệm được thời gian chờ trả kết quả khám bệnh. Giúp dễ dàng và thuận tiện tra cứu, theo dõi quản lý đơn thuốc, kết quả khám cận lâm sàng như chẩn đoán hình ảnh, siêu âm, xét nghiệm. Tránh được việc bị đánh mất, thất lạc kết quả. Danh sách phiếu khám được phân chia thành các mục gồm: đã thanh toán, chưa thanh toán, đã khám và đã hủy.
Có thể theo dõi các thông tin như mã phiếu, họ tên bệnh nhân, bệnh viện, loại dịch vụ, chuyên khoa đã đăng ký và trạng thái của phiếu khám. Quản lý hồ sơ bệnh nhân, phần mềm cho phép một tài khoản truy cập có thể tạo nhiều hồ sơ bệnh nhân thông qua cách quét mã BHYT/CCCD hoặc nhập các thông tin bệnh nhân thủ công. Ưu điểm: phần mềm có thể đăng ký đặt lịch khám với nhiều bệnh viện trên cả nước, giao diện phần mềm trực quan, dễ dàng thao tác sử dụng, có gửi thông báo nhắc lại phiếu khám bệnh qua email trước ngày đã đăng ký khám, khi tìm kiếm trên ứng dụng có hiển thị các gợi ý tìm kiếm phổ biến, kết quả tìm kiếm được phân chia thành các mục như: tất cả, cơ sở y tế, bác sĩ, chuyên khoa và gói khám giúp người dùng dễ dàng lựa chọn. 5 PHẦN MỞ ĐẦU Nhược điểm: không có đánh giá chất lượng dịch vụ khám chữa bệnh, không thể tìm kiếm đưa ra gợi ý các cơ sở y tế chuyên khám và điều trị bệnh dựa trên tên bệnh.
Phần mềm kiểm tra sức khỏe webmd (https://symptoms.3: Trang ứng dụng web kiểm tra sức khỏe WebMD Chức năng chính: Trang web cung cấp công cụ Symptom Checker hỗ trợ dự đoán dựa trên các triệu chứng người dùng mô tả cùng với các thông tin về tuổi, giới tính, tiền sử bệnh để đưa ra các thông tin về lời các loại bệnh có thể đang mắc phải và cách điều trị của chúng. Ưu điểm: có thể chọn nhiều triệu chứng, chọn được nhiều vị trí trên cơ thể để chẩn đoán, đưa ra kết quả chẩn đoán nhanh chóng, có mô tả chi tiết về các loại bệnh có thể gặp phải. Nhược điểm: độ chính xác không cao do các ứng dụng chẩn đoán bệnh nói chung đều đang trong giai đoạn phát triển và chưa hoàn hảo, các triệu chứng có thể chọn là có giới hạn. KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC Quản lý bệnh án, sau khi triển khai ứng dụng web, thông tin bệnh án sẽ được quản lý một cách hiệu quả hơn.
Thông tin sẽ được tổ chức đồng bộ, rõ ràng và dễ dàng truy cập, giúp tăng cường khả năng chăm sóc bệnh nhân và tăng cường sự liên kết phối hợp giữa các chuyên khoa trong bệnh viện. Hỗ trợ chẩn đoán, bằng cách áp dụng các kỹ thuật học máy vào quá trình chẩn đoán, có thể cung cấp các công cụ hỗ trợ quyết định cho các bác sĩ chẩn đoán hình ảnh, cải thiện độ chính xác của các chẩn đoán. Bệnh nhân có thể đăng ký chuyên khoa khám phù hợp dựa trên các chẩn đoán của học máy từ các biểu hiện triệu chứng người bệnh gặp phải, giúp tăng khả năng phát hiện sớm bệnh tật. 6 PHẦN MỞ ĐẦU Hỗ trợ đặt lịch khám từ xa, bệnh nhân có thể đăng ký lịch khám bệnh cho bản thân để bệnh nhân có thể chủ động thời gian và tiết kiệm thời gian chờ đợi.
Bệnh nhân có thể quản lý thông tin hành chính, tra cứu kết quả khám bệnh, phiếu khám của bản thân, người thân, theo dõi các thông tin chỉ số sinh hiệu. 7 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT PHẦN NỘI DUNG CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. MỘT SỐ KHÁI NIỆM VỀ HỌC MÁY 1. Mạng nơ-ron nhân tạo Mạng nơ-ron nhân tạo hay Artificial neural networks (ANNs) một mô hình học máy lấy cảm hứng từ bộ cách hoạt động của bộ não người.
Một mạng nơ-ron nhân tạo gồm 3 thành phần chính gồm: input layer, hidden layer, và output layer. Input layer (lớp đầu vào) nhận dữ liệu đầu vào được cung cấp dưới nhiều định dạng khác nhau. Hidden layer (lớp ẩn), nằm ở giữa lớp đầu vào và lớp đầu ra, thực hiện tất cả các phép tính để tìm các đặc trưng. Nếu có nhiều Hidden layer thì có thể gọi là một mạng học sâu (deep learning).
Để huấn luyện mạng nơ-ron nhân tạo ta còn cần một số khái niệm sau như hàm mất mát, thuật toán tối ưu hóa, forward propagation và backpropagation. Hàm mất mát (Loss function), sử dụng để tính toán mức độ sai lệch giữa giá trị dự đoán và giá trị thực. Thuật toán tối ưu hóa (Optimizer) là thuật toán sử dụng để cập nhật các tham số của mô hình nhằm tối ưu hóa hàm mất mát. Một số thuật toán phổ biến Stochastic Gradient Descent (SGD), Adam, Nadam, … Forward propagation là quá trình lan truyền từ lớp đầu vào đến lớp đầu ra, sử dụng để tính kết quả đầu ra của mạng.
Backpropagation là thuật toán chính của việc huấn luyện các mạng nơ-ron hiện nay, nó là quá trình lan truyền ngược từ kết quả đầu ra về lớp đầu để cập nhật trọng số cho mô hình [1]. Mạng nơ-ron tích chập Mạng nơ-ron tích chập hay Convolutional neural networks (CNNs) là một mạng học sâu được sử dụng phổ biến trong lĩnh vực xử lý ảnh và thị giác máy tính cho các nhiệm vụ phân loại ảnh và nhận diện đối tượng. Một mạng CNNs gồm 3 thành phần chính: Convolutional layer, Pooling layer và Fully-connected layer. Convolutional layer (Lớp tích chập) là lớp cốt lõi của mạng nơi mà phần lớn tài nguyên tính toán được sử dụng.
Nó cần dữ liệu đầu vào, bộ lọc - filter (kernel) và filter map, bước nhảy - stride và hàm kích hoạt (hàm phi tuyến, thường dùng ReLU) - activation function để hoạt động. Pooling layer thường dùng theo sau lớp tích chập để giảm chiều và tổng hợp dữ liệu, gồm 2 loại chính là Max pooling (sử dụng giá trị lớn nhất của đầu vào để tổng hợp) và Average pooling (sử dụng giá trị trung bình của đầu vào để tổng hợp dữ liệu). Fully- 8 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT connected layer hoặc Dense layer (Lớp kết nối đầy đủ) thường là lớp cuối cùng trong mạng, dùng để phân loại hình ảnh dựa trên kết quả tổng hợp được từ các lớp trước đó. Hàm kích hoạt thường được sử dụng cho việc phân loại là softmax [1].
Một số kiến trúc CNNs phổ biến như LeNet-5, AlexNet, VGGNet, ResNet, … 1. Một số metrics - tiêu chí đánh giá mô hình học máy Các metrics là các tiêu chí để đánh giá hiệu suất của mô hình trong việc giải quyết bài toán. Việc chọn metrics thường phụ thuộc vào loại bài toán, mục đích của mô hình và đặc điểm của dữ liệu. True Positive - TP (dương tính thật) là việc nhãn thực sự là dương tính và mô hình dự đoán là dương tính.
False Positive - FP (dương tính giả) là việc nhãn thực sự là âm tính nhưng mô hình dự đoán là dương tính. True Negative - TN (âm tính thật) là việc nhãn thực sự là âm tính và mô hình dự đoán là âm tính. False Negative - FN (âm tính giả) là việc nhãn thực sự là dương tính nhưng mô hình dự đoán là âm tính. Precision (độ chính xác) được xác định bằng tỷ lệ giữa số dương tính thật trên tổng số các dự đoán dương tính.
Precision cao thể hiện cho việc độ chính xác của dự TP đoán là cao [2]. Công thức: 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = TP+FP Recall (độ nhạy) được xác định bằng tỉ lệ giữa số dương tính thật trên tổng số các nhãn là thật sự là dương tính. Recall cao thể hiện cho việc tỷ lệ phát hiện được các điểm TP dương tính thật trong tổng số các điểm dương tính cao [2]. Công thức: 𝑅𝑒𝑐𝑎𝑙𝑙 = TP+FN F1 score là một đại lượng dụng hòa giữa Precision và Recall, giúp cân bằng giữa 2×Precision×Recall Precision và Recall của mô hình được tính bằng công thức [2]: 𝐹1 = Precision+Recall 1.
PHƯƠNG PHÁP VÀ KỸ THUẬT LẬP TRÌNH Lập trình hướng đối tượng là một phương pháp lập trình hiện đại, có thể trừu tượng hóa các trạng thái và hành vi của đối tượng trong thực tế vào bên trong chương trình thông qua các phương thức và thuộc tính của lớp, phương pháp lập trình này có 4 tính chất gồm: tính đóng gói, tính kế thừa, tính đa hình và tính trừu tượng. Ưu điểm là giúp che giấu đi các thông tin, tái sử dụng mã nguồn, tăng cường tính linh hoạt và giảm 9 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT đi sự phức tạp của chương trình [3]. Phương pháp được nhóm lựa chọn sử dụng bởi các ưu điểm mang lại trong quá trình phát triển phần mềm. Client-side Rendering (CSR) là một kỹ thuật phát triển web nơi tất cả mã JavaScript được tải về từ server vào trình duyệt của người dùng, sau đó thực thi và render giao diện người dùng hoàn toàn từ phía client, khi xây dựng ứng dụng web bằng React sẽ tạo ra một SPA (single page application), trình duyệt sẽ gửi request đến server, request ban đầu dành cho một trang html trống sau đó sẽ nạp các tập lệnh JS thao tác với DOM và hiển thị các trang cho người dụng [4].
Kỹ thuật này được nhóm lựa chọn vì mang lại sự hiệu quả trong lúc phát triển phần mềm 1. CÔNG CỤ VÀ MÔI TRƯỜNG LẬP TRÌNH StarUML là một công cụ được sử dụng trong việc hỗ trợ phân tích và thiết kế các lược đồ của hệ thống thông qua ngôn ngữ mô hình hóa thống nhất (Unified Modeling Language). Visual Studio Code là một công cụ soạn thảo mã nguồn được sử dụng để viết mã nguồn trong dự án. MongoDB Atlas và MongoDB Compass, MongoDB Atlas là một cơ sở dữ liệu đám mây NoSQL của MongoDB được triển khai và vận hành trên các nhà cung cấp dịch vụ điện toán đám mây.
MongoDB Compass là một giao diện đồ họa người dùng được sử dụng để truy vấn, tổng hợp và phân tích dữ liệu của cơ sở dữ liệu MongoDB. Git và Github, Git là một công cụ được sử dụng để quản lý mã nguồn phân tán, giúp kiểm soát và theo dõi sự thay đổi của mã nguồn.