Cơ sở tri thức của HCG được tổng hợp từ các cơ sở tri thức con của từng loại bệnh. Chi tiết về cơ sở tri thức của từng loại bệnh được trình bày sau đây.
a. Phổi kẽ lan tỏa
1. IF nghe phổi có ran THEN nguy cơ mắc bệnh là thấp.
2. IF khó thở tăng dần OR ho khan THEN nguy cơ mắc bệnh là trung bình.
3. IF [khó thở tăng dần AND ho khan] THEN nguy cơ mắc bệnh là cao.
4. IF tím tái mặt mày OR ngón tay dùi trống OR suy tim phải THEN nguy
cơ mắc bệnh là cao.
5. IF [tím tái mặt mày AND ngón tay dùi trống] OR [tím tái mặt mày AND
suy tim phải] OR [ngón tay dùi trống AND suy tim phải] OR [tím tái mặt mày
AND ngón tay dùi trống AND suy tim phải] THEN nguy cơ mắc bệnh là rất cao.
b. Nghẽn mạch phổi
1. IF nghe phổi có ran OR nhịp tim nhanh OR đau ngực OR nghe phổi có
ran AND nhịp tim nhanh OR [nghe phổi có ran AND đau ngực] OR [nhịp tim
nhanh AND đau ngực] THEN nguy cơ mắc bệnh là thấp.
2. IF [nghe phổi có ran AND nhịp tim nhanh AND đau ngực] THEN nguy cơ
mắc bệnh là trung bình.
3. IF khó thở nhanh OR cò cử khu trú OR ngất THEN nguy cơ mắc bệnh là
trung bình.
4. IF [khó thở nhanh AND cò cử khu trú] OR [khó thở nhanh AND ngất] OR
[cò cử khu trú AND ngất] THEN nguy cơ mắc bệnh là cao. 5. IF cọ sát màng phổi THEN nguy cơ mắc bệnh là cao.
6. IF [khó thở nhanh AND ngất AND cò cử khu trú] THEN nguy cơ mắc
bệnh là rất cao.
c. Lao phổi
1. IF sốt OR sút cân OR ra mồ hôi đêm OR [sốt AND sút cân] OR [sốt AND
ra mồ hôi đêm] OR [sút cân AND ra mồi hôi đêm] THEN nguy cơ mắc bệnh là thấp.
2. IF [sốt AND sút cân AND ra mồi hôi đêm] THEN nguy cơ mắc bệnh là
trung bình.
3. IF nghe phổi có ran OR đau ngực THEN nguy cơ mắc bệnh là trung bình.
4. IF [nghe phổi có ran AND đau ngực] THEN nguy cơ mắc bệnh là cao.
5. IF ho ra máu THEN nguy cơ mắc bệnh là cao.
d. Tràn dịch màng phổi
1. IF nghe cọ sát màng phổi OR sốt OR sút cân OR [nghe cọ sát màng phổi AND sốt] OR [nghe cọ xát màng phổi AND sút cân] OR [sốt AND sút cân] THEN nguy cơ mắc bệnh là thấp.
2. IF [nghe cọ sát màng phổi AND sốt AND sút cân] THEN nguy cơ mắc
bệnh là trung bình.
3. IF đau ngực, nhất là khi thở vào OR gõ phổi nghe tiếng đục OR ho khan THEN nguy cơ mắc bệnh là trung bình.
4. IF [đau ngực, nhất là khi thở vào AND gõ phổi nghe tiếng đục] OR [đau
ngực, nhất là khi thở vào AND ho khan] OR [gõ phổi nghe tiếng đục AND ho
khan] THEN nguy cơ mắc bệnh là cao.
5. IF nghe mất rung thanh OR nghe mất rì rào phế nang OR tái tím mặt mày THEN nguy cơ mắc bệnh là cao.
6. IF [đau ngực, nhất là khi thở vào AND gõ phổi nghe tiếng đục AND ho
khan] THEN nguy cơ mắc bệnh là rất cao.
7. IF [nghe mất rung thanh AND nghe mất rì rào phế nang] OR nghe mất
[rung thanh AND tái tím mặt mày] OR [nghe mất rì rào phế nang AND tái tím
mặt mày] THEN nguy cơ mắc bệnh là rất cao.
e. Tràn khí màng phổi
1. IF khó thở THEN nguy cơ mắc bệnh là thấp.
2. IF đau ngực dữ dội OR gõ ngực thấy vang THEN nguy cơ mắc bệnh là
trung bình.
3. IF [đau ngực dữ dội AND gõ ngực thấy vang] THEN nguy cơ mắc bệnh là
cao.
4. IF mất rung thanh OR tái tím mặt mày OR mất tiếng rì rào phế nang THEN
nguy cơ mắc bệnh là cao.
5. IF [mất rung thanh AND tái tím mặt mày] OR [mất rung thanh AND mất
tiếng rì rào phế nang] OR [tái tím mặt mày AND mất tiếng rì rào phế nang] OR [mất rung thanh AND tái tím mặt mày AND mất tiếng rì rào phế nang] THEN nguy cơ mắc bệnh là rất cao.
f. Viêm phổi do hít
1. IF khó thở nhanh OR ho THEN nguy cơ mắc bệnh là trung bình.
2. IF [khó thở nhanh AND ho] THEN nguy cơ mắc bệnh là cao.
3. IF nghe phổi có ran OR sốt THEN nguy cơ mắc bệnh là cao.
4. IF [nghe phổi có ran AND sốt] THEN nguy cơ mắc bệnh là rất cao. 3.2. Máy suy diễn
Dựa trên cơ sở tri thứcmột số bệnh về phổi, từ các triệu chứng đầu vào, máy suy diễn thực hiện quá trình suy diễn để đưa ra kết luận về nguy cơ mắc bệnh ở mỗi loại bệnh phổi. Phần này có sử dụng các tag (thẻ tên) đại diện cho các triệu chứng của từng bệnh để mô tả quá trình suy diễn đưa ra định hướng kết luận bệnh.
3.2.1. Phổi kẽ lan tỏa
Bảng 3.1. Diễn giải các tag dùng trong quá trình suy diễn phổi kẽ lan tỏa
Tag Giải thích
pklt1 Nghe phổi có ran
pklt2 Khó thở tăng dần
Tag Giải thích
pklt4 Tím tái mặt mày
pklt5 Ngón tay dùi trống
pklt6 Suy tim phải
tb1 Bạn có nguy cơ mắc bệnh thấp.
tb2 Bạn có nguy cơ mắc bệnh trung bình.
tb3 Bạn có nguy cơ mắc bệnh cao! Hãy thực hiện khám cận lâm sàng!
tb4 Bạn có nguy cơ mắc bệnh rất cao! Hãy thực hiện khám cận lâm sàng!
tb5 Bạn chưa chọn triệu chứng. Chẩn đoán không thành công.
Dựa trên các tag được diễn giải ở bảng 3.1, quá trình suy diễn đưa ra kết luận khi thực hiện chẩn đoán phổi kẽ lan tỏa như sau:
1. (pklt1==0 & pklt2==0 & pklt3==0 & pklt4==0 & pklt5==0 & pklt6==0) ⟹ tb5.
2. pklt1==1 ⟹ tb1.
3. pklt2==1 | pklt3==1 ⟹ tb2. 4. (pklt2==1 & pklt3==1) ⟹ tb3.
5. pklt4==1 | pklt5==1 | pklt6==1 ⟹ tb3.
6. (pklt4==1 & pklt5==1 | pklt4==1 & pklt6==1) | (pklt5==1 & pklt6==1 | pklt4==1 & pklt5==1 & pklt6==1) ⟹ tb4.
3.2.2. Nghẽn mạch phổi
Bảng 3.2. Diễn giải các tag trong quá trình suy diễn nghẽn mạch phổi
Tag Giải thích
nmp1 Nghe phổi có ran
nmp2 Nhịp tim nhanh
Tag Giải thích nmp4 Khó thở nhanh nmp5 Cò cử khu trú nmp6 Ngất nmp7 Cọ sát màng phổi tb1 Bạn có nguy cơ mắc bệnh thấp.
tb2 Bạn có nguy cơ mắc bệnh trung bình.
tb3 Bạn có nguy cơ mắc bệnh cao! Hãy thực hiện khám cận lâm sàng!
tb4 Bạn có nguy cơ mắc bệnh rất cao! Hãy thực hiện khám cận lâm sàng!
tb5 Bạn chưa chọn triệu chứng. Chẩn đoán không thành công.
Dựa trên các tag được diễn giải ở bảng 3.2, quá trình suy diễn đưa ra kết luận khi thực hiện chẩn đoán nghẽn mạch phổi như sau:
1. (nmp1==0 & nmp2==0 & nmp3==0 & nmp4==0 & nmp5==0 &
nmp6==0 & nmp7==0) ⟹ tb5.
2. nmp1==1 | nmp2==1 | nmp3==1 | (nmp1==1 & nmp2==1) | (nmp1==1 & nmp3==1) | (nmp2==1 & nmp3==1) ⟹ tb1.
3. (nmp1==1 & nmp2==1 & nmp3==1) ⟹ tb2. 4. nmp4==1 | nmp5==1 | nmp6==1 ⟹ tb2.
5. (nmp4==1 & nmp5==1) | (nmp4==1 & nmp6==1) | (nmp5==1 & nmp6==1) ⟹ tb3.
6. nmp7==1 ⟹ tb3.
3.2.3. Lao phổi
Bảng 3.3. Diễn giải các tag dùng trong quá trình suy diễn bệnh lao phổi
Tag Giải thích
lp1 Sốt
lp2 Sút cân
lp3 Ra mồ hôi đêm
lp4 Nghe phổi có ran
lp5 Đau ngực
lp6 Ho ra máu
tb1 Bạn có nguy cơ mắc bệnh thấp.
tb2 Bạn có nguy cơ mắc bệnh trung bình.
tb3 Bạn có nguy cơ mắc bệnh cao! Hãy thực hiện khám cận lâm sàng!
tb4 Bạn có nguy cơ mắc bệnh rất cao! Hãy thực hiện khám cận lâm sàng!
tb5 Bạn chưa chọn triệu chứng. Chẩn đoán không thành công.
Dựa trên các tag được diễn giải ở bảng 3.3, quá trình suy diễn đưa ra kết luận khi thực hiện chẩn đoán lao phổi như sau:
1. (lp1==0 & lp2==0 & lp3==0 & lp4==0 & lp5==0 & lp6==0) ⟹ tb5 2. lp1==1 | lp2==1 | lp3==1 | lp1==1 & lp2==1 | (lp1==1 & lp3==1) | (lp2==1 & lp3==1) ⟹ tb1. 3. (lp1==1 & lp2==1 & lp3) ⟹ tb2. 4. lp4==1 | lp5==1 ⟹ tb2. 5. (lp4==1 & lp5==1) ⟹ tb3. 6. lp6==1 ⟹ tb3.
3.2.4. Tràn dịch màng phổi
Bảng 3.4. Diễn giải các tag trong quá trình suy diễn tràn dịch màng phổi
Tag Giải thích
tdmp1 Nghe cọ xát màng phổi
tdmp2 Sốt
tdmp3 Sút cân
tdmp4 Đau ngực, nhất là khi thở vào
tdmp5 Gõ phổi nghe tiếng đục
tdmp6 Ho khan
tdmp7 Nghe mất rung thanh
tdmp8 Nghe mất rì rào phế nang
tdmp9 Tái tím mặt mày
tb1 Bạn có nguy cơ mắc bệnh thấp.
tb2 Bạn có nguy cơ mắc bệnh trung bình.
tb3 Bạn có nguy cơ mắc bệnh cao! Hãy thực hiện khám cận lâm sàng!
tb4 Bạn có nguy cơ mắc bệnh rất cao! Hãy thực hiện khám cận lâm sàng!
tb5 Bạn chưa chọn triệu chứng. Chẩn đoán không thành công.
Dựa trên các tag được diễn giải ở bảng 3.4, quá trình suy diễn đưa ra kết luận khi thực hiện chẩn đoán tràn dịch màng phổi như sau:
1. (tdmp1==0 &tdmp2==0 & tdmp3==0 & tdmp4==0 & tdmp5==0 & tdmp6==0 & tdmp7==0 & tdmp8==0 & tdmp9==0) ⟹ tb5. 2. tdmp1==1 | tdmp2==1 | tdmp3==1 | (tdmp1==1 & tdmp2==1) |
(tdmp1==1 & tdmp3==1) | (tdmp2==1 & tdmp3==1) ⟹ tb1. 3. (tdmp1==1 & tdmp2==1 & tdmp3==1) ⟹ tb2.
5. (tdmp4==1 & tdmp5==1) | (tdmp4==1 & tdmp6==1) | (tdmp5==1 & tdmp6==1) ⟹ tb3.
6. tdmp7==1 | tdmp8==1 | tdmp9==1 ⟹ tb3. 7. (tdmp4==1 & tdmp5==1 & tdmp6==1) ⟹ tb4.
8. (tdmp7==1 & tdmp8==1) | (tdmp7==1 & tdmp9==1) | (tdmp8==1 & tdmp9==1) | (tdmp7==1 & tdmp8==1 & tdmp9==1) ⟹ tb4.
3.2.5. Tràn khí màng phổi
Bảng 3.5. Diễn giải các tag dùng trong quá trình suy diễn tràn khí màng phổi
Tag Giải thích tkmp1 Khó thở tkmp2 Đau ngực dữ dội tkmp3 Gõ ngực thấy vang tkmp4 Mất rung thanh tkmp5 Tái tím mặt mày
tkmp6 Mất tiếng rì rào phế nang
tb1 Bạn có nguy cơ mắc bệnh thấp.
tb2 Bạn có nguy cơ mắc bệnh trung bình.
tb3 Bạn có nguy cơ mắc bệnh cao! Hãy thực hiện khám cận lâm sàng!
tb4 Bạn có nguy cơ mắc bệnh rất cao! Hãy thực hiện khám cận lâm sàng!
tb5 Bạn chưa chọn triệu chứng. Chẩn đoán không thành công.
Dựa trên các tag được diễn giải ở bảng 3.5, quá trình suy diễn đưa ra kết luận khi thực hiện chẩn đoán tràn khí màng phổi như sau:
1. (tkmp1==0 & tkmp2==0 & tkmp3==0 & tkmp4==0 & tkmp5==0 & tkmp6==0) ⟹ tb5.
3. tkmp2==1 | tkmp3==1 ⟹ tb2. 4. (tkmp2==1 & tkmp3==1) ⟹ tb3.
5. tkmp4==1 | tkmp5==1 | tkmp6==1 ⟹ tb3.
6. (tkmp4==1 & tkmp5==1) | (tkmp4==1 & tkmp6==1) | (tkmp5==1 & tkmp6==1) | (tkmp4==1 & tkmp5==1 & tkmp6==1) ⟹ tb4.
3.2.6. Viêm phổi do hít
Bảng 3.6. Diễn giải các tag dùng trong luật suy diễn
Tag Giải thích
vpdh1 Khó thở nhanh
vpdh2 Ho
vpdh3 Nghe phổi có ran
vpdh4 Sốt
tb1 Bạn có nguy cơ mắc bệnh thấp.
tb2 Bạn có nguy cơ mắc bệnh trung bình.
tb3 Bạn có nguy cơ mắc bệnh cao! Hãy thực hiện khám cận lâm sàng!
tb4 Bạn có nguy cơ mắc bệnh rất cao! Hãy thực hiện khám cận lâm sàng!
tb5 Bạn chưa chọn triệu chứng. Chẩn đoán không thành công.
Dựa trên các tag được diễn giải ở bảng 3.6, quá trình suy diễn đưa ra kết luận khi thực hiện chẩn đoán viêm phổi do hít như sau:
1. (vpdh1==0 & vpdh2==0 & vpdh3==0 & vpdh4==0) ⟹ tb5. 2. vpdh1==1 | vpdh2==1 ⟹ tb2.
3. (vpdh1==1 & vpdh2==1) ⟹ tb3. 4. vpdh3==1 | vpdh4==1 ⟹ tb3. 5. (vpdh3==1 & vpdh4==1) ⟹ tb4.
3.3. Thiết kế giao diện Hệ chuyên gia trên phần mềm MATLAB
Chương trình Hệ chuyên gia y tế chẩn đoán ban đầu một số bệnh về phổi được viết trên phần mềm MATLAB.
3.3.1. Giới thiệu chung về MATLAB
MATLAB (Matrix Laboratory) là một ngôn ngữ lập trình bậc cao, cung cấp môi trường tính toán đa dạng với nhiều công cụ tính toán số và cho phép thực hiện nhiều giải pháp tính toán khác nhau. Hình 3.2 là cửa sổ giao diện chính của phần mềm Matlab.
Hình 3.1. Giao diện chính của MATLAB
Matlab cho phép làm việc theo một số phương thức sau:
- Lập trình: soạn thảo các tập lệnh và các hàm số (function) trong các file có đuôi “.m” (m-files). Các hàm số có khả năng cung cấp dữ liệu vào , ra rất rõ ràng (Input/Output capability).
- Tương tác: thực thi các câu lệnh (command execution) trên của sổ lệnh thông qua các dấu nhắc “>>”.
- Lưu trữ: các dữ liệu có thể được lưu trữ độc lập với phần lập trình trong các file có đuôi “.mat” (mat.files). Các dữ liệu này được lưu vào hoặc tải ra từ các chương trình chính trong phần lập trình hoặc phần tương tác.
Matlab cung cấp nhiều bộ công cụ (toolbox) khác nhau dùng cho lập trình HCG y tế như:
- Sinh học máy tính (Bioinformatics) - Cơ sở dữ liệu (Database)
- Xử lý tín hiệu (Signal Processing) - Xử lý ảnh (Image Processing) - Logic mờ (Fuzzy Logic)
- Mạng Nơ ron (Neural Networks)
Hình 3.2. Cửa sổ đồ họa GUI với giao diện trắng
Matlab cho phép tạo ra các giao diện người sử dụng thông qua môi trường phát triển GUI (Graphical User Interface Design Environment). Từ một cửa sổ đồ họa GUI với giao diện trắng như biểu diễn trên hình 3.2, người dùng có thể tạo ra một chương trình hệ chuyên gia hoàn chỉnh với nhiều giao diện người sử dụng như trên hình 3.3. Các công cụ có thể sử dụng trong thiết kế giao diện HCG có thể kể đến như Push Button, Radio Button, Edit text, Pop-up menu, Axes, Button
group, Static text, Listbox, Table, Panel.
Hình 3.3. Các cửa sổ đồ họa GUI đã được thiết kế
3.3.2. Sơ đồ cấu trúc của hệ chuyên gia
Hình 3.4. Sơ đồ cấu trúc của hệ chuyên gia
về phổi. . Sau “giao diện mở đầu”, sẽ là hai nút “chẩn đoán lâm sàng” và “tìm hiểu tri thức”. Nút “chẩn đoán lâm sàng” sẽ lần lượt đi tới các nút con, tương ứng với các bước thăm khám bệnh nhân của bác sĩ. Từ đó, dựa vào những triệu chứng dấu hiệu thu thập được, tại nút Kết quả chẩn đoán sẽ đưa ra khả năng mắc bệnh tương ứng với từng bệnh. Tại giao diện “tìm hiểu tri thức”, người dùng sẽ chọn một trong các bệnh có trong HCG để thực hiện chức năng tìm hiểu tri thức về bệnh đó. Người dùng sẽ được tiếp cận với định nghĩa, khái quát chung về bệnh lý, sau đó có thể tìm hiểu về “triệu chứng” (triệu chứng của bệnh), “nguyên nhân” (nguyên nhân gây bệnh) và “điều trị” (các phương pháp điều trị bệnh) tương ứng với mỗi bệnh.
3.3.3. Các giao diện trong hệ chuyên gia
Chương trình HCG y tế chẩn đoán một số bệnh ban đầu về phổi bao gồm các lớp giao diện chính là: khởi tạo, chẩn đoán lâm sàng, tìm hiểu tri thức bệnh, kết luận. Giao diện khởi tạo được thể hiện ở hình 3.5. Giao diện nhằm giới thiệu sơ qua về chương trình hệ chuyên gia, cùng với đó là hình tượng bác sĩ với nét vẽ ngộ nghĩnh tạo thiện cảm cho người dùng. Giao diện này chỉ xuất hiện một lần khi khởi động chương trình.
Hình 3.5. Giao diện khởi tạo
hai chức năng của hệ chuyên gia để người dùng lựa chọn: “Chẩn đoán lâm sàng” (bắt đầu quá trình chẩn đoán lâm sàng) và “Tìm hiểu” (tìm hiểu về các bệnh có trong hệ chuyên gia). Hai nút chức năng có mũi tên sang phải và sang trái, có vai trò đưa người sử dụng đến giao diện kế tiếp hoặc trở về giao diện trước (trái là lùi, phải là tiến).
Hình 3.6. Giao diện trang chủ a. Chức năng chẩn đoán lâm sàng
Sau khi chọn vào chức năng “chẩn đoán lâm sàng”, người dùng bắt đầu quá trình chẩn đoán bệnh. Hình 3.7 và 3.8 là giao diện nhập triệu chứng bệnh thứ nhất và thứ hai, thể hiện bước hỏi bệnh, giống như khi bác sĩ hỏi thăm bệnh nhân những biến đổi của cơ thể liên quan tới đường hô hấp như đau ngực, khó thở và ho. Bên cạnh đó là những triệu chứng mà bệnh nhân gặp phải trong sinh hoạt như ốm, sút cân, chán ăn, mất ngủ, ra mồ hôi đêm.
Tại giao diện triệu chứng khám phổi ở hình 3.9, các triệu chứng khi khám phổi được đưa ra. Đối tượng người dùng là bác sĩ có thể dễ dàng kiểm tra xem có
hay không mắc phải những triệu chứng được liệt kê ở người bệnh qua việc thăm khám phổi.
Hình 3.7. Giao diện nhập triệu chứng bệnh thứ nhất
Giao diện ở hình 3.10 đưa ra những dấu hiệu có thể gặp phải khi mắc các bệnh về phổi. Bác sĩ có chuyên môn có thể thực hiện khám tổng quát toàn thân bệnh nhân để kiểm tra những dấu hiệu này. Các triệu chứng này được nhận biết khi hỏi bệnh nhân trong quá trình sinh hoạt hằng ngày. Sau khi tích vào các ô triệu chứng, chương trình sẽ thu nhận và tổng hợp kết quả cho đến khi bước chọn triệu chứng cuối cùng được thực hiện. Trong khi chọn triệu chứng, ngươi dùng có thể trở lại giao diện chọn triệu chứng trước để chọn lại triệu chứng, nhưng sẽ phải chọn lại triệu chứng khi chuyển sang giao diện tiếp theo. Các triệu chứng xuyên suốt chương trình được sắp xếp theo các bước thăm khám bệnh nhân của bác sĩ hay nhân viên y tế: Hỏi bệnh, khám phổi, kiểm tra tổn thương liên quan và đưa ra kết luận.
Hình 3.8. Giao diện nhập triệu chứng bệnh thứ hai
Hình 3.10. Giao diện chọn các triệu chứng liên quan đến tổn thương phổi
Sau khi hoàn thành các thao tác chọn triệu chứng, giao diện kết luận như hình 3.11 sẽ được đưa ra cùng với khả năng mắc bệnh được xác định với 5 kết quả. Các kết quả này được đánh dấu bằng biểu tượng ngôi sao với màu sắc tương ứng như phần chú giải ở ngay trong giao diện: không có nguy cơ (màu xanh da trời), nguy cơ thấp (màu xanh lá), nguy cơ trung bình (màu tím), nguy cơ cao (màu da cam) và nguy cơ rất cao (màu đỏ). Phím bấm hình ngôi nhà màu xanh lá