Web ứng dụng cho hệ thống giám sát sức khỏe
Bài viết đề nghị một giải pháp xây dựng hệ thống giám sát sức khỏe người bệnh sau khi được điều trị. Giúp người bệnh không phải đến trung tâm y tế mà vẫn được bác sĩ theo dõi tình trạng sức khỏe thường xuyên.
Trang 1
Trang 2
Trang 3
Trang 4
Trang 5
Trang 6
Trang 7
Trang 8
Trang 9
Bạn đang xem tài liệu "Web ứng dụng cho hệ thống giám sát sức khỏe", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Web ứng dụng cho hệ thống giám sát sức khỏe
TAÏP CHÍ KHOA HOÏC ÑAÏI HOÏC SAØI GOØN Soá 14 (39) - Thaùng 3/2016 39 Web ứng dụng cho hệ thống giám sát sức khỏe Web application for health care monitoring PGS.TS. Lê Tiến Thường, ThS. Nguyễn Duy Thắng Trường Đại học Bách Khoa – ĐHQG TP.HCM Assoc.Prof., Ph.D. Le Tien Thuong, M.S. Nguyen Duy Thang Ho Chi Minh City University of Technology Tóm tắt Bài viết đề nghị một giải pháp xây dựng hệ thống giám sát sức khỏe người bệnh sau khi được điều trị. Giúp người bệnh không phải đến trung tâm y tế mà vẫn được bác sĩ theo dõi tình trạng sức khỏe thường xuyên. Từ đó bác sĩ sẽ lên phác đồ điều trị theo tiến trình phục hồi của người bênh. Sử dụng các cảm biến sinh học để lấy tín hiệu từ người bệnh, sau đó đưa vào bộ truyền vô tuyến gồm board mạch vi xử lý Arduino Uno kết hợp với module nRF24L01 cho cả bên phát và thu. Dữ liệu sẽ được ghi vào một file text, sau đó được truyền đến máy chủ thông qua một chương trình lập lich cho việc cập nhật dữ liệu từ file text. Phía bệnh viện hoặc bác sĩ, xây dựng web quản lý thông tin bệnh nhân, tình trạng sức khỏe cũng như tiến trình khôi phục bệnh. Từ khóa: hệ thống giám sát từ xa, cảm biến sinh học, mạng truyền vô tuyến, Arduino Uno, nRF24L01, PHP, HTML, CSS, Javascript, SQL Server 2008 Abstract The paper proposes a solution to build health monitoring system for patients after having a treatment. Therefore, patients don't need to go to the medical center but their health status was still monitored regularly by doctors. Since then doctors will give a regimen depending on recovered process of patients. System uses biosensors to get signal from patients, then sent to radio transmitter including microprocessor board Arduino Uno combined with module nRF24L01 for both transmitter and receiver. Data will be recorded to a text file, then it is transmitted to the host server through a program established for updating data from the text file. At the hospital, there is a website built to manage patient's information, health status and recovered process. Keywords: remote monitoring system, biosensor, wireless networks, Arduino Uno, nRF24L01, PHP, HTML, CSS, JavaScript, SQL Server 2008 1. Giới thiệu Ngày nay, bên cạnh sự tiến bộ vượt bậc của các nền kinh tế, của khoa học kỹ thuật, công nghệ tiên tiến... đã giúp cho đời sống con người được nâng cao. Tuy nhiên, số người mắc bệnh ngày càng gia tăng, nguyên nhân chủ yếu do chế độ ăn uống và thói quen sinh hoạt hàng ngày. Để giúp bác sĩ kiểm tra tình trạng sức khỏe của bệnh nhân trong quá trình điều trị mà người 40 bệnh không cần phải thường xuyên đi đến cơ sở y tế để kiểm tra đồng thời giảm tải cho phía bệnh viện, hệ thống giám sát từ xa được sử dụng [1, 5]. Hệ thống cho phép bác sĩ giám sát bệnh nhân từ nhà riêng của họ bằng cách thu thập dữ liệu từ các cảm biến cố định trên người bệnh được truyền thông qua kênh truyền vô tuyến [2]. Thông tin từ bệnh nhân được lưu vào database, dựa vào dữ liệu đó bác sĩ có thể đánh giá tình trạng bình phục của bệnh nhân và sau đó đưa ra các chẩn đoán, các phương pháp điều trị cũng như ra toa thuốc cho phù hợp. Hệ thống sử dụng module Wi-Fi nRF24L01 kết hợp với board Arduino để truyền dữ liệu [3, 11]. Khi người bệnh đến điều trị lần đầu tiên sẽ được tạo mới thông tin với một mã tài khoản (ID). Mỗi người bệnh sẽ có mã ID riêng và duy nhất không trùng lặp với các bệnh nhân khác. Từ sau đó, thông tin sức khỏe của bệnh nhân sẽ tự động gửi lên máy chủ [8, 9]. Bác sĩ sẽ quản lý hồ sơ liên quan đến các bệnh nhân của mình. Trong trường hợp dữ liệu về tình trạng sức khỏe của bệnh nhân vượt ra ngoài mức cho phép hệ thống sẽ cảnh báo bác sĩ, từ đó bác sĩ sẽ thực hiện kê toa trực tuyến hoặc tư vấn từ xa cho bệnh nhân. Trang web quản lý dùng các ngôn ngữ lập trình thiết kế website như PHP, HTML, CSS, Javascript. Bài viết sẽ trình bày sơ đồ hệ thống giám sát, chức năng các module sử dụng, lưu đồ thuật toán thực hiện cho từng khối, và nêu các kết quả đạt được. 2. Thiết kế hệ thống Signal from patient Web Application Manager Sensors nRF24L01 Transmiter nRF24L01 Receiver Wireless channel Arduino Uno Arduino Uno Service Hình 1: Sơ đồ hệ thống giám sát Hệ thống giám sát sức khỏe được chia thành ba khối con chính bao gồm khối lấy tín hiệu từ cơ thể người bệnh, khối truyền dữ liệu và hệ thống web quản lý thông tin người bệnh. Tín hiệu từ người bệnh được lấy thông qua các cảm biến sinh học. Khối truyền dữ liệu sử dụng board Arduino kết hợp với module Wi-Fi nRF24L01 cho cả bên phát lẫn bên thu. Hệ thống web chứa thông tin bác sĩ, bệnh nhân và tình trạng bình phục bệnh của người bệnh. Tất cả các thông tin đều được lưu trữ ở máy chủ, với thông tin điều trị bệnh nhân được cập nhật liên tục. 41 2.1. Các module trong hệ thống A. Cảm biến Body Body temperature sensor Pulse sensor Blood pressure sensor Glucometer sensor Hình 2: Thu thập tín hiệu các cảm biến Cảm biến chính được sử dụng trong bài viết là cảm biến xung nhịp. Ngoài ra còn có thể sử dụng một số cảm biến khác cho hệ thống giám sát sức khỏe như cảm biến nhiệt độ cơ thể, cảm biến huyết áp, cảm biến đường huyết [4]. 1) Cảm biến xung nhịp – Pusle sensor Cảm biến xung nhịp [10] dùng để đo nhịp tim trong hệ thống, được kết nối đến board Arduino qua các chân tương tự. Thiết bị đo được gắn bên ngoài da, một áp lực dù rất nhỏ trong hệ mạch cũng sẽ được phát hiện. Sự thay đổi về thể tích gây ra bởi áp lực này được phát hiện bằng cách dùng ánh sáng đèn LED chiếu lên da và đo lượng ánh sáng phản xạ trở lại diode quang. Hình 3: Cảm biến xung nhịp 2) Cảm biến nhiệt độ - Temperature Cảm biến dung để đo nhiệt độ cơ thể của người bệnh. Do có một số bệnh khi điều trị sẽ kèm theo sự thay đổi của nhiệt độ cơ thể. Vì vậy, cảm biến sẽ giúp bác sĩ theo dõi thân nhiệt của người bệnh từ đó đưa ra phương án điều trị phù hợp. ... ào chân tương tự board Arduino phát. Ở board Arduino phía phát viết chương trình truyền dữ liệu thu được cùng với mã ID của bệnh nhân điều trị thông qua module nRF24L01. Để thu được tín hiệu trên bên thu cũng sử dụng board Arduino và nRF24L01. Management Center Signal Wireless Web App sensors patient Transmitter Receiver Board Arduino Uno Module nRF24L01 Admin Doctor Patient Appointment Healthcare Board Arduino Uno Module nRF24L01 Hình 6: Sơ đồ cây hệ thống giám sát Tín hiệu thu được ghi vào file text tạo sẵn trên máy tính cá nhân đặt ở nhà bệnh nhân, file text này chứa thông tin sức khỏe cùng với mã ID của người bệnh. Khi đó dựa vào mã ID của từng bệnh nhân mà thông tin trong file text được cập nhật vào database thông qua chương trình service dùng cho lập lịch cập nhật thông tin định kỳ. Phía bác sĩ sẽ xây dựng trang web quản lý được viết bằng ngôn ngữ lập trình PHP. Trang web này được kết nối đến database để lấy thông tin bác sĩ và bệnh nhân, sau đó hiển thị lên giao diện người dùng. Từ đó bác sĩ sẽ theo dõi tình trạng sức khỏe người bệnh, đồng thời có thể thực hiện lên lịch hẹn với bệnh nhân. B. Truyền dữ liệu 1) Truyền và lưu dữ liệu vào file text Đầu tiên nhúng thư viện hổ trợ truyền vô tuyến RF24 vào chương trình. Gán chân CE của nRF24L01 vào chân 9, và chân CSN vào chân 10 board Arduino. Dữ liệu được gán vào chân tương tự của board Arduino để truyền lên kênh truyền. Tạo hệ thống truyền vô tuyến thông qua thư viện RF24 đã được nhúng. Khi kênh truyền sẵn sàng tiến hành đọc dữ liệu nhận từ chân tương tự của board Arduino phát, và truyền sang phía thu. Bên thu sẽ đọc dữ liệu nhận được và ghép chuỗi để truyền vào cổng Serial. 43 Begin create radio channel Channel available? send data over radio channel F add library define pins write data to serial port alert message alert message channel available? End open serial port ri l rt data =! nullt ! ll read data from serial port r t fr ri l rt write data to text file rit t t t t fil T F T F T Receiver Save data read data from radio channel process data draw datar t read data from analog pins Hình 7: Lưu đồ khối truyền dữ liệu Quá trình lưu dữ liệu vào file text được thực hiện: Đầu tiên xác định mở cổng COM sao cho cổng này chính là cổng Serial được kết nối với board Arduino thu. Đọc dữ liệu từ cổng Serial board Arduino thu và gọi hàm lưu dữ liệu vào file text, đồng thời biểu diễn dữ liệu thu được lên cửa sổ thay cho điện tâm đồ. 2) Cập nhật dữ liệu vào database Khi bắt đầu chạy service sẽ tiến hành lấy thời gian được lập lịch so sánh với thời gian hiện tại theo từng cặp giờ phút giây. Nếu thỏa điều kiện thì thực hiện lấy đường dẫn đến thư mục lưu trữ file text. Kiểm tra nếu đường dẫn có tồn tại thì tiến hành đọc tất cả các giá trị có trong file text theo từng dòng và thực thi câu lệnh thêm dữ liệu vào database. Sau khi hoàn tất quá trình thêm dữ liệu sẽ xóa các giá trị tồn tại trong file text để khi cập nhật lần kế tiếp sẽ không bị trùng dữ liệu. Begin End Get current time Compare time together? Insert database Read all line data Set time start on File path existence? Get the text file path T F T F Delete value in the text file Hình 8: Lưu đồ cập nhật dữ liệu. C. Web ứng dụng cho quản lý 1) Cơ sở dữ liệu Admini tbl_doctort l t r tbl_patientt l ti t tbl_appt l tbl_heartbeatt l rt t d_id p_id Hình 9: Quan hệ giữa các bảng dữ liệu. Database giúp hệ thống quản lý thông tin bác sĩ và người bệnh một cách hợp lý. Các bảng dùng trong hệ thống bao gồm: admin, tbl_doctor, tbl_patient, tbl_app, tbl_heartbeat. Bảng tbl_app liên kết với bảng tbl_doctor thông qua d_id, và liên kết với bảng tbl_patient thông qua p_id. Riêng bảng dữ liệu tbl_heartbeat thì liên kết với bảng tbl_patient dựa vào p_id. 2) Lưu đồ thuật toán hệ thống web Đăng nhập là một trong những chức năng gần như bắt buộc trong các ứng dụng web, giúp người quản trị đảm bảo được quyền của người dùng. Khi bắt đầu trang đăng nhập hệ thống yêu cầu nhập tên người dùng và mật khẩu, tiến hành kiểm tra thông tin đăng nhập với dữ liệu đã được lưu trữ trong bảng tbl_admin. Đối với các user đăng nhập thuộc quyền admin được phép thực hiện tất cả các chức năng của hệ thống. Quyền bác sĩ chỉ can thiệp vào hệ thống với các chức năng liên quan đến bệnh nhân. Riêng quyền bệnh nhân chỉ được xem thông tin có trong hệ thống. Hệ thống trang web gồm các chức năng: tạo mới thông tin bác sĩ / bệnh nhân, xem danh sách bác sĩ / bệnh nhân, tạo lịch hẹn giữa bác sĩ và bệnh nhân, xem tình trạng sức khỏe. Khi tạo mới thông tin bác sĩ hoặc bệnh nhân, yêu cầu nhập thông tin vào các trường tương ứng. Khi thực hiện chức năng lưu thông tin vào các bảng trong database, hệ thống thực hiên kiểm tra các trường bắt 44 buộc phải nhập đã được nhập đầy đủ thông tin thì hệ thống sẽ lưu thông tin vào database và chuyển sang màn hình hiển thị danh sách bác sĩ / bệnh nhân tương ứng. Đối với màn hình hiển thị thông tin có thể thực hiện các chức năng như sau: tìm kiếm nhanh, chỉnh sửa thông tin, hiển thị thông tin chi tiết, và chức năng xóa thông tin bác sĩ / bệnh nhân ra khỏi danh sách. Đối với bác sĩ được phép tạo lịch hẹn với người bệnh, còn bệnh nhân sẽ xem được tiến trình điều trị bệnh. Begin Check info Save user role; Home page T F Alert message Add doctor/ patient View doctor/ patient F T Alert message Search Data existence? Edit Info Delete Alert message Require field empty? Require field empty? Insert database; Display list doctor Alert message confirm T F F T T T Update database; Display list doctor/patient Display list detail doctor/ patient Input username Input password Choose patient; Input datetime; Input encoder Edit info Input info Add Appointment Healthcare Display health of patient Insert database; Display list doctor/patient Display list doctor/patient found Update database; Display list doctor/patient Require field empty? End Data existence? Input Name or Id doctor Check role of user Login? T F T F Agree? Check role of user Login? T F F F Check role of user Login? Check role of user Login? F F TT Hình 10: Lưu đồ thuật toán hệ thống web quản lý Đối với chức năng chỉnh sửa thông tin cũng thực hiện tương tự như tạo mới thông tin với tất cả dữ liệu hiển thị được lấy từ database. Để thực thi chức năng xóa thông tin ra khỏi danh sách, sẽ xuất hiện thông báo xác nhận có muốn xóa thông tin được chọn không. Nếu đồng ý sẽ xóa thông tin khỏi danh sách và cập nhật lại dữ liệu trong database. 2.3. Kết quả A. Thu thập và xử lí dữ liệu Xem xét quá trình đo nhịp tim, tín hiệu từ ngón tay người bệnh được lấy thông qua cảm biến xung nhịp chuyển thành dạng sóng tương ứng đo từ oscilloscope thể hiện ở hình 11. Đối với các cảm biến khác thao tác thực hiện diễn ra tương tự. Hình 11: Tín hiệu nhận từ cảm biến 45 Tín hiệu này được đưa vào chân tương tự ở board Arduino phát. Ở cả hai board thu phát đều được nạp code cho việc truyền dữ liệu. Sau khi có dữ liệu sẽ được ghi vào cổng Serial ở board Arduino thu. Tiến hành chạy chương trình xử lý việc ghi giá trị thu được vào file text và hiển thị kết quả thu được khi chương trình Processing (hình 12). Phần lớn cửa sổ chính biểu diễn dạng sóng dữ liệu của cảm biến xung nhịp theo thời gian. Trái tim lớn màu đỏ ở phía trên bên phải trình bày chỉ số của nhịp tim trên mỗi phút (BPM). Hình 12: Dạng sóng tín hiệu từ cảm biến Nhịp tim bình thường của một người trưởng thành khoảng 60-100 BPM. Đối với các vận động viên thể thao, nhịp tim có thể thấp hơn, khoảng 40-60 BPM. Đa số những người càng khỏe mạnh thì chỉ số nhịp tim càng thấp. Nhưng nếu nhịp tim dưới giới hạn bình thường, có thể là hội chứng nhịp tim chậm. Nhịp tim chậm có thể là vấn đề nghiêm trọng nếu tim không bơm đủ máu giàu oxy cho cơ thể. B. Web ứng dụng Để bắt đầu vào trang web của hệ thống bằng cách truy cập vào đường link localhost/HealthCareCenter/admin. Giao diện xuất hiện đầu tiên là trang Login. Chức năng màn hình Login là quản lý thông tin người quản trị. Đồng thời thực hiện chia quyền cho phép tài khoản nào được quyền truy cập vào trang web. Sau khi đăng nhập thành công sẽ chuyển sang màn hình chính của hệ thống. Hình 13: Màn hình Login Màn hình tạo mới thông tin với các trường “Required” là bắt buộc thì không được để trống. Còn đối với các trường “Option” có thể để trống. Riêng trường “Default” sẽ hiện thị giá trị mặc định, người quản trị không thể chỉnh sửa, dùng tạo mã ID để mỗi bác sĩ / bệnh nhân sẽ có mã ID riêng biệt không trùng với nhau, giúp hệ thống dễ dàng kiểm soát. Hình 14: Màn hình tạo mới bác sĩ Danh sách người bệnh được hiển thị thông qua giao diện ở hình 15 với tất cả dữ liệu cần thiết được truy vấn từ bảng tbl_patient. Từ màn hình hiển thị danh sách bác sĩ / bệnh nhân có thể thực hiện các chức năng xem thông tin chi tiết từng bác sĩ / bệnh nhân, chỉnh sửa thông tin, xóa thông tin ra khỏi danh sách. Riêng đối với bệnh nhân thì có thể theo dõi tiến trình bình phục bệnh. 46 Hình 15: Màn hình danh sách bệnh nhân Để xem trình trạng điều trị bệnh chỉ cần nhấn vào bệnh nhân muốn xem. Lúc đó hệ thống sẽ dựa vào ID của bệnh nhân mà thực hiện câu truy vấn để lấy dữ liệu từ database với dữ liệu là các giá trị từ cảm biến xung nhịp đã được cập nhật hàng ngày. Khi có dữ liệu trả về sẽ dựa vào kết quả này mà tiến hành phát họa biểu đồ biểu diễn tiến trình điều trị bệnh của người bệnh. Dữ liệu hiển thị gồm biểu đồ thay cho điện tâm đồ và chỉ số nhịp tim của người bệnh, tất cả dữ liệu được lọc theo ngày cập nhât (hình 16). Dựa vào kết quả chỉ số nhịp tim đo được mà bác sĩ có thể theo dõi trình trạng sức khỏe của bệnh nhân. Trong trường hợp nhịp tim nhanh hoặc chậm hơn chỉ số cho phép tương ứng với từng độ tuổi, hoặc trình trạng sức khỏe cụ thể mà bác sĩ đưa ra lời cảnh báo cũng như phương án điều trị với bệnh nhân bằng cách liện hệ tư vấn từ xa, hoặc yêu cầu bệnh nhân đến ngay các cơ sở y tế trong trường hợp khẩn cấp. Bác sĩ cũng có thể ghi chú tình trạng sức khỏe của bệnh nhân vào trường “Remarks” ở màn hình bệnh nhân, như vậy khi người bệnh truy cập hệ thống sẽ biết được tình trạng bệnh của cá nhân để có biện pháp điều trị hiệu quả. Hình 16: Màn hình hiển thị dữ liệu Bảng 1: Bảng thống kê các kết quả STT Tuổi Số lượng Cảm biến (BPM) Thiết bị y tế (BPM) Sai lệch 1 1 - 10 10 84-119 83-121 1-2 2 10-20 10 64-102 68-101 1-4 3 21-30 10 69-82 70-80 1-2 4 31-40 10 54-90 55-88 1-2 5 41-50 10 70-89 68-88 1-2 6 >50 10 65-89 61-86 1-4 Bảng thống kê hiển thị kết quả đo lường từ cảm biến với các độ tuổi tương ứng. Số lượng người tham gia là 10 cho mỗi độ tuổi từ trẻ em đến người lớn tuổi. Kết quả phép đo được lấy trung bình với thời gian thực hiện khoảng 1 phút, và được so sánh với dụng cụ y tế tham khảo (Omron HEM-7200) dùng đo chỉ số tim mạch. Kết quả cho thấy giữa hệ thống thiết kế với thiết bị y tế có sự sai lệch tương đối do trong quá trình đo thí nghiệm thì hệ thống giám sát thực hiện đo tín hiệu từ đầu ngón tay của người bệnh kết quả phụ thuộc vào sự tiếp xúc giữa cảm biến và ngón tay, còn thiết bị y tế tham khảo tiến hành trên cánh tay. Ưu điểm của hệ thống so với sử dụng thiết bị y tế là thiết kế nhỏ gọn và dữ liệu được cập nhật liên tục lên database của hệ thống giám sát. 47 3. Kết luận Với hệ thống giám sát người bệnh không phải trực tiếp đi đến các cơ sở y tế mà vẫn được bác sĩ theo dõi điều trị bệnh. Đồng thời người thân trong gia đình cũng có thể theo dõi trình trạng sức khỏe của người bệnh. Từ đó giúp cho tiến trình khôi phục bệnh diễn ra một cách thuận lợi hơn. Việc truyền dữ liệu dùng board Arduino Uno kết hợp với module Wi-Fi nRF24L01 thực hiện một cách dễ dàng, với chương trình thu phát dữ liệu đơn giản, dễ hiểu. Dữ liệu được cập nhật liên tục hàng ngày và thực hiện một cách tự động khi bật chương trnh Service trên máy tính. Giao diện hệthống web quản lý khá thân thiện, có menu trợ giúp rõ ràng với các chức năng thêm mới, tìm kiếm dữ liệu thông minh giúp người dùng thao tác thuận tiện, dễ dàng hơn. TÀI LIỆU THAM KHẢO 1. A. B. K.C. Kavitha, "Wireless Health Care Monitoring," IJIRSET, vol. 3, no. 3, 2014. 2. B. G. A. D. Anish Vahora, Ripal Patel, “Heart beat monitoring and wireless data logging using arm cortex A8,” IJRITCC, vol. 2, no. 8, Aug. 2014. 3. C. H. Zhurong Chen, J. Liao, “Protocol architecture for wireless body area network based on nrf24l01,” IEEE ICAL, pp. 3050 - 3054, Sept. 2008. 4. [Online]. Available (12/10/2015): https://www.cooking- hacks.com/shop/sensors 5. M. G. Lipika Chatterjee, M. K. Nallakaruppan, “Transmission of emergency data over wireless networks by using biosensors,” IJARCSSE, vol. 3, no. 5, 2013. 6. M. Margolis, Arduino Cookbook. OReilly Media, March 2011, ISBN: 9780596802479. 7. [Online]. Available (12/10/2015): 8. T. M. Michael Cook and J. Trevathan, “A prototype home based environmental monitoring system,” SERSC, vol. 7, no. 6, pp. 393 - 408, 2013. 9. V. Saurabh Prakash, “Real time monitoring of ECG signal using pic and web server,” IJET, vol. 5, no. 2, pp. 733 – 736, 2013. 10. Y. V. Prasad Kumari Nisha, “Heart rate monitoring and data transmission via bluetooth,” IJIERE, vol. 2, no. 2, 2015. 11. Z. L. X. J. Zhu Yao-lin, Zhang Gao-qiang, “Design of wireless multipoint temperature transmission system based on nrf24l01,” IEEE BMEI, pp. 780 - 783, 2011. Ngày nhận bài: 21/12/2015 Biên tập xong: 15/03/2016 Duyệt đăng: 20/03/2016
File đính kèm:
- web_ung_dung_cho_he_thong_giam_sat_suc_khoe.pdf