CHƯƠNG 1 : GIỚI THIỆU
1.3. TỔNG QUAN VÀ MỤC TIÊU CỦA ĐỀ TÀI
1.3.1. Tổng quan của đề tài
Trong ngành y tế, việc đảm bảo sử dụng thuốc hợp lý, an toàn và hiệu quả là một trong những mục tiêu lớn. Song song với nhiều loại thuốc đang được sử dụng rộng rãi trong điều trị thì ngày càng có hiều thuốc với ra đời, những thuốc mới này có những tác động tích cực trong việc kiểm sốt bệnh tật, và nâng cao chất lượng khám chữa bệnh trong cộng đồng. Bên cạnh những mặt tích cực của thuốc mạng lại thì những nguy cơ liên quan đến thuốc, đặc biệt là những phản ứng có hại của thuốc (gọi tắt là ADR - Adverse Drug Reaction) lại xảy ra khá phổ biến và gây ảnh hưởng không nhỏ tới hiệu quả điều trị và sức khỏe người bệnh. Phản ứng có hại của thuốc có thể nặng thêm tình trạng bệnh và có thể để lại di chứng, đe dọa tính mạng
của người bệnh. Phản ứng ADR đang là một trong 10 nguyên nhân gây tử vong hàng đầu tại nhiều quốc gia. Theo thống kê thì đa số phản ứng có hại của thuốc có thể phịng tránh được. Do đó, để giảm thiểu tối đa ảnh hưởng do phản ứng ADR mang lại thì cần có một hệ thống Cảnh giác dược, một hệ thống chuyên biệt của ngành Y tế có nhiệm vụ theo dõi và đánh giá những dữ liệu về tính an tồn của thuốc để ngăn ngừa và giảm thiểu tác động tiêu cực của thuốc đối với người sử dụng, qua đó gián tiếp nâng cao sức khỏe cộng đồng.
Từ nguồn dữ liệu là các báo cáo ADR của Trung tâm DI&ADR Quốc gia, đề tài sẽ nghiên cứu một số phương pháp khai phá dữ liệu Apriori, FDA, WHO-UCM để tìm ra các phản ứng có hại của thuốc.
1.3.2. Mục tiêu của đề tài
Nghiên cứu và áp dụng thuật toán khai phá dữ liệu áp dụng trong lĩnh vực y tế để phát hiện phản ứng có hại của thuốc, các thuật toán và phương pháp khai phá dữ liệu được nghiên cứu và áp dụng trong đề tài bao gồm:
- Thuật toán khai phá dữ liệu Apriori
- Phương pháp phát hiện tín hiệu ADR của FDA
- Phương pháp phát hiện tín hiệu ADR của WHO-UCM
Thử nghiệm các phương pháp khai phá dữ liệu trên cơ sở dữ liệu báo cáo ADR của Trung tâm DI&ADR Quốc gia.
1.3.3. Phương pháp thực hiện
Trên cơ sở nghiên cứu thuật toán khai phá dữ liệu Apriori, phương pháp của FDA và WHO-UCM để phát hiện ra phản ứng có hại của thuốc, tiến hành lập trình thử nghiệm các thuật toán trên bộ dữ liệu báo cáo ADR của các bệnh viện gửi về Trung tâm ADR&DI Quốc gia, các bước thực hiện như sau:
- Dữ liệu sau khi được thu thập từ cơ sở dữ liệu báo cáo ADR Quốc gia sẽ được chuẩn hóa, thiết lập các thông số và tiến hành khai phá dữ liệu;
- Dữ liệu được khai phá theo các mơ hình khai phá dữ liệu khác nhau: theo thuật toán khai phá dữ liệu Apriori, phương pháp FDA và phương pháp WHO-UMC;
- Đầu ra của quá trình khai phá dữ liệu là các tín hiệu ADR;
- Kết luận: Mỗi phương pháp có thể sẽ cho kết quả đầu ra là các tập tín hiệu ADR khác nhau, tương ứng với các thơng số thiết lập đầu vào của từng phương pháp. Các tín hiệu ADR sẽ được so sánh chéo giữa các phương pháp, kết hợp với kinh nghiệm của các chuyên gia về Cảnh giác Dược để đưa ra kết luận đối với các tín hiệu ADR: chấp nhận tín hiệu, tiến hành các cơng tác đưa ra cảnh báo hay sẽ tiến hành điều chỉnh lại các thông số để tiến hành lại quá trình phát hiện tín hiệu; nếu khơng sẽ tiến hành loại bỏ tín hiệu ADR.
1.3.4. Cơng cụ, ngơn ngữ lập trình
Phần mềm thử nghiệm thuật toán khai phá dữ liệu của đề tài được phát triển bằng ngơn ngữ lập trình C# trên nền tảng công nghệ của Microsoft, đây là ngơn ngữ lập trình ứng dụng rất phổ biến hiện nay và được nhiều công ty phần mềm sử dụng để phát triển các sản phẩm của mình.
Cơ sở dữ liệu được sử dụng để lưu trữ thông tin báo cáo ADR và kết quả khai phá dữ liệu là Hệ quản trị CSDL SQL Server đây là hệ quản trị CSDL được phát triển bởi Microsoft và là hệ quản trị CSDL được dùng rất phổ biến tại Việt Nam. Hệ quản trị CSDL SQL Server có phiên bản sử dụng miễn phí là SQL Server Express với các tính năng hạn chế. Với quy mơ và mục đích thử nghiệm thuật tốn nên phiên bản CSDL được chọn hệ CSDL SQL Server Express.
Phần mềm được phát triển dựa trên nền tảng công nghệ web-base theo kiến trúc 3 lớp cho phép NSD truy xuất qua internet. Ứng dụng được xây dựng bằng công cụ Visual Studio với ngôn ngữ C#.
KIẾN TRÚC PHẦN MỀM NSD Client HTML page (Browser)
Internet Infomation Service Web Application
Presentation Layer View Model Business Layer Modul Phân tích dữ liệu ADR Modul Quản lý dữ liệu ADR Modul Quản lý danh mục Data Layer Database Data Quản trị hệ thống C o n tr o ll e r Data Hình 1.8 – Kiến trúc tổng thể
Các thành phần chính của hệ thống như sau:
Bảng 1.1 – Các thành phần chính của hệ thống
Thành phần
Mơ tả
Client Là các máy trạm chạy ứng dụng sử dụng trình duyệt web brower. Người sử dụng thao tác trên ứng dụng dựa trên tầng Presentation, từng này gọi tới tới tầng Bussines để xử lý yêu cầu, trong quá trình xử lý nghiệp vụ tầng bussiness sẽ tương tác với cơ sở dữ liệu thông qua tầng Data.
Tầng
Presentation
Là tầng biểu diễn dữ liệu, cung cấp giao diện thơng qua trình duyệt web brower để người dùng tương tác với hệ
thống.
Tầng Presentation của ứng dụng được xây dựng dựa trên Framework.Net phiên bản 4.0. Đây là 1 framework có hỗ trợ MVC design pattern (tăng tính linh hoạt trong thiết kế và phát triển ứng dụng trên WebServer).
Tầng Bussines
Là tầng xử lý nghiệp vụ của ứng dụng như quản lý thơng tin ADR, phân tích dữ liệu ADR.
Tầng này nhận yêu cầu của người sử dụng thông qua tầng Presentation, truy vấn cơ sử dữ liệu để xử lý nghiệp vụ và trả kết quả về cho tầng Presentation.
Tầng Data Là tầng dữ liệu, tầng này lưu trữ toàn bộ dữ liệu của hệ thống và cung cấp giao diện qua các hàm (function), thủ tục (procedure) cho tầng Bussiness truy vấn dữ liệu.
Sử dụng hệ quản trị cơ sở dữ liệu Microsoft SQL Server, đây là hệ quản trị CSDL có thể quản lý dữ liệu lớn tới hàng Tetra bytes. CSDL của hệ thống được cài đặt sử dụng chuẩn lưu trữ Latin1_General_CI_AS cho phép lưu trữ dữ liệu dạng Unicode TCVN 6909-2001.
CHƯƠNG 2: MỘT SỐ PHƯƠNG PHÁP PHÁT HIỆN PHẢN ỨNG CÓ HẠI CỦA THUỐC
2.1. BÀI TỐN PHÁT HIỆN PHẢN ỨNG CĨ HẠI CỦA THUỐC
Trên thực tế, trước khi một thuốc được sản xuất để đưa ra thị trường sử dụng sẽ được thử nghiệm lâm sàng (TNLS) trên một số lượng người bệnh rất ít so với người bệnh sẽ được điều trị bằng thuốc đó. Mặt khác, đối tượng người bệnh trong các TNLS được tuyển chọn rất kỹ lưỡng nên không phản ánh hết được sự phong phú về độ tuổi, bệnh mắc kèm, thuốc dùng đồng thời, chủng tộc, tình trạng thai sản,… khi thuốc được sử dụng trong thực tế. Do vậy, thông tin về tính an tồn của thuốc vẫn cần được tiếp tục ghi nhận, đánh giá sau khi thuốc được cấp phép lưu hành. Lúc này, thông tin do các cán bộ y tế tại các cơ sở khám chữa bệnh cung cấp về các phản ứng có hại của thuốc sẽ vơ cùng hữu ích để tiếp tục đánh giá, và tìm ra các nguy cơ tiềm ẩn của thuốc khi lưu hành trên thị trường.
Báo cáo ADR theo thời gian, được tích lũy và tăng về số lượng. Số lượng mẫu báo cáo ADR tăng lên là điều kiện thuận lợi cho việc thống kê, đánh giá các phản ứng có hại của thuốc khi sử dụng thuốc giai đoạn hậu mãi. Tuy nhiên, việc tăng về số lượng cũng đồng thời làm tăng tính đa dạng về đặc điểm bệnh nhân, loại phản ứng có hại; loại thuốc (biệt dược và các thành phần hoạt chất) trong các báo cáo phản ứng có hại của thuốc. Điều này làm tăng độ phức tạp trong việc phát hiện các tổ hợp ngẫu nhiên của các loại thuốc và các phản ứng có hại xảy ra trên những đối tượng bệnh nhân có tình trạng lâm sàng khác nhau. Những tổ hợp này có thể là những tín hiệu dự báo các phản ứng có hại mới, hiếm gặp hoặc những phản ứng có hại đã biết nhưng tần suất và mức độ nghiêm trọng của phản ứng tăng lên trong những điều kiện sử dụng thuốc nhất định.
Hai thông tin quan trọng nhất trong cơ sở dữ liệu báo cáo ADR là thông tin về “thuốc” và thông tin về phản ứng có hại của thuốc (ADR, gọi tắt là ”phản ứng”). Khi số lượng báo cáo ADR (số bản ghi) tăng lên đồng nghĩa với việc tăng số lượng “thuốc” và “phản ứng” được ghi nhận, dẫn đến sự xuất hiện đồng thời trong một bản ghi của những cặp “thuốc” – “phản
ứng” mới trong cơ sở dữ liệu hoặc sự tăng bất thường tần suất xuất hiện của cặp “thuốc” – “phản ứng” cũ trong khoảng thời gian nhất định, kèm theo một số yếu tố nguy cơ như tuổi, giới, chỉ định dùng thuốc, thuốc dùng đồng thời…Những sự bất thường này gọi là “tín hiệu” và khơng phải lúc nào cũng có thể rà sốt từng bản ghi đơn lẻ để phát hiện được.
Bảng 2.1 - Thống kê số dữ liệu theo thuốc R và phản ứng T
Phản ứng T Tất cả các phản ứng khác Thuốc R Kết hợp (Thuốc R+ phản ứng T) Thuốc R + tất cả các phản ứng khác Tất cả các thuốc khác Tất cả các thuốc khác + phản ứng T Tất cả các thuốc khác + tất cả các phản ứng khác
Do đó, cần có một mơ hình có khả năng giải quyết các vấn đề trên, có khả năng xử lý với dữ liệu lớn, phát hiện các luật tổ hợp ngẫu nhiên của các đơn vị thuốc có khả năng gây ra các phản ứng có hại.
2.2. SỬ DỤNG THUẬT TOÁN KHAI PHÁ DỮ LIỆU APRIORI ĐỂ PHÁT HIỆN PHẢN ỨNG CÓ HẠI CỦA THUỐC
2.2.1. Một số khái niệm trong luật kết hợp
Khai phá luật kết hợp: là phát hiện những mối quan hệ giữa các
thuộc tính hoặc mục của dữ liệu, các mối quan hệ hình thành luật kết hợp.
- Định nghĩa 1: Cho tập mục (item) I = {I1, I2,…, Im} là tập m thuộc
tính riêng biệt. Một giao dịch (transaction) T là tập con của I, T I. Cơ sở dữ liệu giao dịch là tập các giao dịch DB = {T1,T2,…,Tm}. Mỗi giao dịch được gán một định danh Tid. Một tập mục con X I, gồm k mục riêng biệt được gọi là k- tập mục. Giao dịch T gọi là chứa tập mục X nếu X T.
- Một luật kết hợp R được biểu diễn dạng: X Y, trong đó X, Y là các tập con của I, X Y =; X gọi là tiên đề của luật, Y gọi là kết luận của luật.
- Định nghĩa 2: Cho tập thuộc tính X I. Độ hỗ trợ (Support) của tập thuộc tính X trong cơ sở dữ liệu thao tác DB, ký hiệu sup(X), được xác định như sau:
𝑠𝑢𝑝(𝑋) = |{𝑇∈𝐷𝐵\𝑇𝑋}|
|𝐷𝐵| (2.1)
- Định nghĩa 3: Cho tập mục X I với ngưỡng hỗ trợ tối thiểu
(minimum support) minsup ∈ [0,1]. X được gọi là tập thuộc tính
thường xuyên khi sup(X) ≥minsup và ngược lại X là tập thuộc tính khơng thường xun.
- Định nghĩa 4: [12] Độ hỗ trợ (support) của luật kết hợp ký hiệu là
sup(X Y), là độ hỗ trợ của tập mục X Y được xác định:
sup(X Y ) = sup (X Y) (2.2)
- Định nghĩa 5: [12] Tập X được gọi là tập thường xuyên khi:
support(X) > minsup. Kí hiệu là FI.
- Định nghĩa 6: [12] Độ tin cậy (confidence) luật kết hợp, ký hiệu là
conf(X Y) là độ tin cậy của tập mục X Y, ta có cơng thức:
conf(X Y ) = sup(X Y)/sup (X) (2.3) 2.2.2. Khai phá luật kết hợp
- Luật kết hợp X Y được gọi là luật kết hợp mạnh nếu thỏa mãn:
𝑆𝑢𝑝𝑝𝑜𝑟𝑡(𝑋 → 𝑌) ≥ 𝑚𝑖𝑛𝑠𝑢𝑝 (2.4)
- Khai phá dữ liệu bằng luật kết hợp được thực hiện thông qua hai bước:
Bước 1: tìm tất cả các tập thuộc tính là tập thuộc tính thường xuyên (FI).
Bước 2: từ các tập thuộc tính thường xuyên sinh ra các luật kết hợp thỏa mãn độ tin cậy của luật lớn hơn độ tin cậy tối thiểu minconf xác định trước.
2.2.3. Thuật toán Apriori
Thuật toán Apriori được R.Agrawal và cộng sự xây dựng vào năm 1993 để xác định tập thuộc tính thường xuyên.
Ý tưởng của thuật giải:
- Tạo ra tập 1_itemset: từ các item trên CSDL, ta xác định độ hỗ trợ cho từng item dựa vào CSDL đã mã hóa, loại đi các item có số lần xuất hiện sup(X) < minsup.
- Tạo ra tập 2_itemset: xác định độ hỗ trợ sup(X) cho tập gồm 2 item, loại đi các item có số lần xuất hiện sup(X) < minsup.
- Tạo ra tập k_itemset: xác định độ hỗ trợ s cho tập gồm k item, loại đi các item có số lần xuất hiện sup(X) < minsup.
Thuật giải có 2 bước chính:
- Bước 1: Sinh ra tập Itemset thường xuyên.
- Bước 2: Tìm ra luật kết hợp dựa vào tham số độ tin cậy β.
Giải thuật Apriori:
Input: Tập giao dịch D, ngưỡng support, tối thiểu minsup OutPut: L – tập thuộc tính thường xuyên trong D.
1. Quét CSDL D để tìm ra các tập thuộc tính phổ biến L1 = 1_itemset
2. For k = 2; Lk-1 ≠ ; k++) 3. {
4. Ck = Apriori_Gen(Lk-1
7. Ct = subnet(Ck, t); 8. For (mỗi một ứng cử c ∈ Ct) 9. c.count++; 10. } 11. Lk = {c ∈ Ck | c.count ≥ minsup} 12. } 13. Return L = k Lk
Các tập Lk chính là các tập thuộc tính thường xuyên.
Hàm Apriori_Gen(Lk-1): Thực hiện việc kết hợp các cặp (k-1)-itemset
để phát sinh các tập k-itemset mới
o Đầu vào: Lk-1 là tập tất cả các (k-1)-itemset
o Đầu ra: Kết quả trả về là tập các k-itemset
Thuật toán:
1. Foreach (itemset p ∈ Lk-1){ 2. Foreach (itemset q in ∈ Lk-1){
3. If (p.item1 = q.item1 & p.item2 = q.item2 & .. & p.itemk-1 < q.itemk-1){
4. c=p q.itemk-1 } 5. Ck = Ck {c}
6. }}
7. Return Ck.
Giải thuật xây dựng luật:
o Đầu vào: L là tập các tập thuộc tính thường xuyên
o Đầu ra: Kết quả trả về là tập luật kết hợp F.
1. For (k = 1;Lk ≠ ; k++){ 2. For (với mỗi Ck ∈ Lk) {
3. For ( i = 1; i < k + 1; i++) {
4. If (conf(Xi, Yk-i) = sup(Xi, Yk-i)/sup(Xi) > β) { 5. Fk = (Xi, Yk-i) // 6. } 7. } 8. } 9. } 10. Return F = kFk Các tập Fk chính là tập luật kết hợp.
Nhược điểm của thuật toán Apriori:
- Phải duyệt CSDL nhiều lần. Với I = {i_1, i_2, ..., i_{100}}, số lần duyệt CSDL sẽ là 100.
- Số lượng tập ứng viên rất lớn: 2^{100} - 1 = 1.27 * 10^{30}
- Thực hiện việc tính độ phổ biến nhiều, đơn điệu.
2.3. NGHIÊN CỨU VÀ ÁP DỤNG PHƯƠNG PHÁP FDA ĐỂ GIẢI BÀI TOÁN PHÁT HIỆU ADR TOÁN PHÁT HIỆU ADR
2.3.1. Giới thiệu chỉ số thống kê RR
Chỉ số RR (Relative risk) là tỉ lệ của xác suất khả năng mắc bệnh trong nhóm phơi nhiễm so với xác suất khả năng mắc bệnh trong nhóm khơng phơi nhiễm, và chỉ số này được dùng rất phổ biến trong thống kê của lĩnh vực y học. Cơ chế tính tốn của chỉ số như sau [10][11]:
Ví dụ về nghiên cứu bệnh nhân hút thuốc lá làm tăng nguy cơ mắc bệnh ung thư phổi. Trong nhóm 1 có n1 bệnh nhân hút thuốc, sau thời gian theo dõi có k1 bệnh nhân mắc bệnh ung thư phổi, thì tỉ lệ mắc bệnh là p1 =
bệnh ung thư phổi và trong cùng thời gian theo dõi có k2 bệnh nhân mắc bệnh, thì tỉ lệ mắc bệnh ung thư phổi của nhóm 2 là p2 = k2/n2. Khi đó, chỉ số RR là tỉ số của 2 tỉ lệ và được tính theo cơng thức:
RR = p1/p2 (2.5) Dựa vào giá trị của chỉ số RR, ta có kết luận: Nếu giá trị RR > 1 (hay
p1 > p2), thì bệnh nhân hút thuốc lá sẽ làm tăng khả năng mắc bệnh ung thư