Professional Documents
Culture Documents
Hà Nội – 2014
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Hà Nội – 2014
Lời cam đoan
Tôi xin cam đoan bản luận văn Thạc sĩ Công nghệ Điện tử - Viễn thông “Ứng
dụng smartphone cho điện tâm đồ không dây” là công trình nghiên cứu của cá nhân
tôi. Các kết quả, số liệu trình bày trong luận văn là trung thực. Các trích dẫn và tài liệu
tham khảo sử dụng trong luận văn đều được chỉ rõ nguồn và tác giả.
Hà Nội, ngày 09 tháng 10 năm 2014
Người cam đoan
Mục lục
Lời cam đoan .......................................................................................................... 3
Lời cảm ơn .............................................................................................................. 4
Bảng các ký hiệu, chữ viết tắt ................................................................................. 3
Danh mục các bảng ................................................................................................. 4
Danh mục các hình vẽ, đồ thị ................................................................................. 5
MỞ ĐẦU ................................................................................................................ 6
1. Lý do chọn đề tài ............................................................................................ 6
2. Nội dung và đối tượng nghiên cứu ................................................................. 6
Chương 1. ĐIỆN TÂM ĐỒ .................................................................................... 8
1.1. Nguyên lý ..................................................................................................... 8
1.1.1. Tim ........................................................................................................ 8
1.1.2. Định nghĩa điện tâm đồ ......................................................................... 8
1.1.3. Sự hình thành ........................................................................................ 8
1.2. Cách mắc điện cực ....................................................................................... 8
1.2.1. Điện trường tim..................................................................................... 8
1.2.2. Cách mắc............................................................................................... 8
1.3. Ý nghĩa dạng sóng ....................................................................................... 9
1.4. Hệ đo, thông số tín hiệu điện tim ................................................................. 9
1.5. Cơ sở dữ liệu mẫu ...................................................................................... 10
1.5.1. PhysioBank ......................................................................................... 10
1.5.2. Physio Toolkit ..................................................................................... 10
Chương 2. ANDROID .......................................................................................... 11
2.1. Kiến trúc .................................................................................................... 11
2.1.1. Các thành phần.................................................................................... 11
2.1.2. Applications ........................................................................................ 12
2.2. Môi trường phát triển ................................................................................. 16
2.2.1. Android SDK ...................................................................................... 16
2.2.2. Eclipse ................................................................................................. 17
2
MỞ ĐẦU
1. Lý do chọn đề tài
Bệnh tim là một trong những vấn đề sức khỏe hiện được quan tâm trên thế giới.
Đây là gánh nặng cho xã hội với tỷ lệ tử vong và tàn phế cao hàng đầu. Bên cạnh đó,
chi phí điều trị và chăm sóc điều trị bệnh nhân cũng là một gánh nặng. Cùng với sự
phát triển của kinh tế, số lượng người béo phì, hút thuốc lá, rượu bia và đái tháo đường
gia tăng cùng lối sống ít vận động gây nên những bệnh lý về tim mạch như cao huyết
áp, xơ vữa mạch vành và đột quỵ.
Theo thống kê của Tổ chức Y tế thế giới WHO, bệnh liên quan đến tim mạch là
nguyên nhân gây tử vong cho 17.3 triệu người hàng năm, chiếm 30% tổng số ca tử
vong trên toàn thế giới. Trong đó 80% đến từ các nước thu nhập thấp và trung bình.
Dự đoán năm 2030 sẽ có hơn 23.3 triệu người chết vì bệnh tim mỗi năm. [1]
Ở nước ta hiện nay, hệ thống y tế vẫn còn những khó khăn và thách thức lớn.
Nhu cầu khám chữa bệnh, chăm sóc sức khỏe đòi hỏi cao, trong khi nguồn lực còn hạn
hẹp. Theo thống kê, tỷ lệ bác sĩ trên 1000 bệnh nhân là 1.22 bác sĩ/1000 dân, tỷ lệ
giường bệnh là 2.2 giường bệnh /1000 dân [2]. Điều đó đặt ra áp lực rất lớn lên ngành
y tế, các thủ tục hành chính, qui trình khám chữa bệnh đã được cải cách, cùng với việc
áp dụng công nghệ thông tin vào bệnh viện. Tuy nhiên, việc ứng dụng công nghệ
thông tin trong y tế vẫn còn hạn chế và thiếu đồng bộ. Điều đó đặt ra thách thức, đồng
thời cũng tạo ra những cơ hội.
Theo thống kê, ở Việt Nam hiện có 136 triệu thuê bao di động, 36 triệu người sử
dụng Internet. Sự bùng nổ của các thiết bị di động, đặc biệt là smartphone đã khẳng
định tầm quan trọng của nó trong đời sống xã hội. Các sản phẩm mới có cấu hình và
thời lượng sử dụng pin ngày càng được cải thiện. Bên cạnh đó, các smartphone tích
hợp cảm biến và ứng dụng về chăm sóc sức khỏe đang là một xu hướng phát triển
mạnh mẽ. Các nghiên cứu ứng dụng trong chăm sóc sức khỏe, nhất là những ứng dụng
dựa trên nền tảng Android đang thu hút được sự chú ý trong những năm gần đây như
nghiên cứu giải thuật tăng cường ảnh và truyền kết quả bằng công nghệ điện toán đám
mấy của nhóm tác giả từ đại học Tennessee, Knoxville, Hoa Kỳ. Nghiên cứu của
nhóm tác giả từ đại học Erlangen-Nuremberg, Đức dựa trên giải thuật Pan-Tompkins
để phát hiện phức bộ QRS và đếm nhịp tim. Sản phẩm của nhóm tác giả từ đại học kỹ
thuật Lahore, Pakistan về máy đo điện tim giá rẻ dựa trên vi điều khiển MSP430 và
điện thoại Android [3-6].
điều hành Android, truyền dữ liệu điện tim từ thiết bị đầu cuối tới trung tâm. Nội dung
và phương pháp nghiên cứu được trình bày trong các chương:
Chương 1: Điện tâm đồ. Trình bày những khái niệm cơ bản về tín hiệu điện tim,
nguyên lý hình thành, đặc điểm tín hiệu và phương pháp ghi điện tâm đồ, ý nghĩa dạng
sóng. Phần cuối cùng của chương trình bày về cơ sở dữ liệu được sử dụng trong đề tài.
Đây là nguồn dữ liệu sinh lý học tin cậy phục vụ cho nghiên cứu được đo của bệnh
nhân tim và được số hóa và cung cấp miễn phí trên trang web http://physionet.org/.
Chương 2: Android. Trình bày kiến thức về hệ điều hành Android, kiến trúc, bộ
công cụ phát triển Android SDK, bộ công cụ phát triển hợp nhất Eclipse cũng như các
chương trình mô phỏng Emulator.
Chương 3: Phân tích thiết kế hệ thống. Khảo sát hệ thống, xây dựng biểu đồ phân
rã chức năng, mô hình khái niệm, thiết kế logic và thiết kế vật lý.
Chương 4: Cài đặt và thử nghiệm. Trình bày nội dung ứng dụng và server bao
gồm cài đặt và thử nghiệm. Ứng dụng được xây dựng để đọc và xử lý dữ liệu. Các
thành phần chính của ứng dụng bao gồm: nhận dữ liệu qua Bluetooth, hiển thị dạng
sóng lên màn hình, truyền dữ liệu về server. Server gồm cơ sở dữ liệu MySQL, các
trang webpage PHP đăng nhập và tra cứu hồ sơ bệnh nhân.
Kết luận. Những mặt đạt được và hạn chế, hướng phát triển tiếp theo.
8
1.1.1. Tim
Quả tim là cơ quan chịu trách nhiệm bơm máu cho hệ tuần hoàn. Tim được cấu
tạo bởi một loại cơ đặc biệt và tự đập mà không qua sự điều khiển của não bộ. Cấu tạo
của tim gồm 4 buồng: 2 tâm nhĩ và 2 tâm thất. Nhĩ trái nhận máu giàu O2 từ tĩnh mạch,
đẩy xuống thất trái, thất trái đẩy máu với áp lực mạnh vào động mạch và được đưa đi
tới các bộ phận khác của cơ thể. Máu quay trở lại qua nhĩ phải chứa nhiều CO2 và
được bơm vào phổi để trao đổi CO2 lấy O2 và quay trở lại nhĩ trái để lặp lại vòng tuần
hoàn. Mỗi phút tim của một người trưởng thành đập khoảng 70 – 90 nhịp.
Qui ước mắc điện cực: đặt điện cực dương ở bên trái quả tim và điện cực âm ở
bên phải của quả tim.
tần số cắt fc=100Hz và bộ lọc triệt tần fc=50Hz để loại bỏ nhiễu do mạng điện sinh
hoạt. Cuối cùng tín hiệu tương tự được số hóa bởi bộ ADC.
1.5.1. PhysioBank
PhysioBank là kho dữ liệu sinh lý học được số hóa để cung cấp cho cộng đồng
nghiên cứu y sinh. Hiện nay PhysioBank bao gồm dữ liệu về tim phổi, thần kinh và
các tín hiệu y sinh khác của người khỏe mạnh và người bệnh. Các thông số về những
bệnh tật có ảnh hưởng tới sức khỏe cộng đồng như đột quỵ, suy tim, động kinh, ngừng
thở khi ngủ và lão hóa. Hiện nay PhysioBank bao gồm 50 cơ sở dữ liệu có thể tải về
miễn phí.
Chương 2. ANDROID
2.1. Kiến trúc
Activities và views
Thoại
Cửa sổ
Các tài nguyên
Các dịch vụ định vị
Android runtime bao gồm máy ảo Dalvik và thư viện Java core. Các ứng dụng
chạy trên thiết bị Android được viết bằng ngôn ngữ Java và được biên dịch thành byte
code và được thực thi bởi máy ảo Dalvik trên thiết bị di động.
Dalvik là một máy ảo Java được tối ưu hóa cho thiết bị di động vốn có bộ nhớ và
thời lượng pin hạn chế. Nhiều máy ảo có thể chạy cùng lúc và nó tận dụng được ưu
điểm của hệ điều hành Linux cho bảo mật.
Ở bên trên của runtime và thư viện native là lớp Application Framwork. Nó bao
gồm các framework quan trọng sau :
Activity Manager : quản lý vòng đời của ứng dụng.
Content providers : quản lý và chia sẻ dữ liệu.
Resource manager : tài nguyên là tất cả những gì chạy cùng chương trình
mà không phải là code.
Location manager : quản lý vị trí
Notificaiton manager : quản lý các thông báo
Lớp cao nhất trong kiến trúc Android là lớp ứng dụng. Người dùng đầu cuối sẽ
chỉ nhìn thấy những chương trình này. Ứng dụng là những chương trình chiếm toàn
màn hình và tương tác với người sử dụng. Ngoài ra, widgets hoạt động với một cửa sổ
nhỏ hình chữ nhật trên màn hình chính của ứng dụng.
2.1.2. Applications
Mỗi ứng dụng chạy trong một tiến trình Linux riêng. Các thành phần cơ bản của
một ứng dụng Android:
a. Activity
Activity là thành phần quan trọng nhất trong phát triển một ứng dụng Android.
Định nghĩa activity là những lớp nằm trong các gói tương tác với người dùng. Một
activity mới được tạo ra phải được khai báo trong file AndroidManifest.xml.
Activity bao gồm 4 trạng thái:
Active: là trạng thái mà activity đang hiển thị trên màn hình (foreground)
Paused: activity vẫn hiển thị nhưng không thể tương tác
Stop: khi được thay thế bằng một activity mới, activity cũ sẽ chuyển sang
trạng thái stop.
13
Killed: khi hệ thống bị thiếu bộ nhớ, nó sẽ giải phóng các tiến trình.
Vòng đời của một activity
nhiên, nếu nó không được hiển thị cho người sử dụng nữa thì các cửa sổ
của nó sẽ bị ẩn và thường sẽ bị hệ thống kill để nhường bộ nhớ cho nơi
khác.
Nếu một activity ở trạng thái paused hoặc stopped, hệ thống có thể bỏ
activity khỏi bộ nhớ bằng cách yêu cầu nó có kết thúc hay không, hoặc
đơn giản là hủy các process của nó. Khi nó hiển thị trở lại cho người sử
dụng, nó phải được khởi động lại hoàn toàn và khôi phục lại trạng thái
trước đó.
Trong vòng đời của một activity có ba vòng chính:
Entire lifetime: giữa cuộc gọi đầu tiên onCreate(Bundle) tới cuộc gọi kết
thúc onDestroy().
Visible lifetime: giữa cuộc gọi onStart() tới onStop. Trong thời gian này
người sử dụng có thể trông thấy activity trên màn hình dù nó có thể không
ở foreground và tương tác với người dùng.
Foreground lifetime: giữa cuộc gọi onResume() và onPause(). Trong thời
gian này activity ở bên trên tất cả activity khác và tương tác với người sử
dụng. Một activity có thể thường xuyên chuyển đổi giữa các trạng thái
resumed và paused, ví dụ thiết bị ở trạng thái sleep, khi một intent được
gửi tới.
Thời gian sống của một activity được định nghĩa bởi các phương thức sau:
onCreate() được gọi khi activity được khởi tạo. Nó luôn được tiếp nối bởi
phương thức onStart().
onRestart() được gọi để khởi động lại sau khi activity bị stopped. Luôn
được tiếp nối bởi onStart().
onStart() được gọi khi activity hiển thị với người sử dụng.
onResume() được gọi khi hệ thống khôi phục lại activity trước.
onStop() được gọi khi activity không được sử dụng nữa.
onDestroy() cuộc gọi cuối cùng trước khi activity bị hủy. Nó xảy ra khi
activity kết thúc hoặc khi hệ thống tạm thời hủy activity này để giải phóng
bộ nhớ.
b. Service
Là một thành phần của app chạy ngầm trong background, không tương tác với
người dùng và có thời gian chạy không xác định. Service chạy trong thread chính của
tiến trình, nếu service làm công việc chiếm nhiều CPU hoặc thời gian, nó cần sinh ra
một thread riêng.
15
Cũng giống như activity, service được khởi tạo bằng phương thức onCreate() và
trả lại tài nguyên bằng onDestroy()
c. Intent
Trong một ứng dụng thường có nhiều activity và chúng độc lập với nhau. Các
activity dùng intent để trao đổi thông tin với nhau. Thông tin của một intent bao gồm:
action hay service muốn thực hiện và data cho action hoặc service đó. Ứng dụng quan
trọng nhất của intent là gọi một activity hoặc một service.
Intent được phát quảng bá tới tất cả activity hoặc service. Để tương tác chúng
dùng Intent-filter, nó quy định quan hệ giữa intent với activity hoặc service. Khi một
intent được phát đi, hệ thống sẽ đánh giá các activity, service và broadcast receiver rồi
gửi nó đến nơi phù hợp.
d. Content Provider
Là nơi lưu giữ và đọc dữ liệu cho các ứng dụng. Có các content provider cho các
kiểu dữ liệu thông dụng như âm thanh, video, ảnh, thông tin liên lạc cá nhân. Một
content provider có thể cung cấp dữ liệu cho activity và service trong cùng ứng dụng
hoặc các activity và service ở trong ứng dụng khác. [8]
e. Broadcast Receiver
Broadcast Receiver là một thành phần của tiến trình Android như các Activities,
conten providers và các services, có nhiệm vụ đáp ứng lại một bản tin, ở đây là quảng
bá một intent. Các thành phần khác như activity sử dụng phương thức sendBroadcast()
có trong lớp Context để phát quảng bá một sự kiện. Đối số của phương thức này là một
intent.[9]
f. Threads
Mỗi thread là một đơn vị thực thi song song, mỗi ứng dụng có ít nhất một thread
chạy khi nó được khởi động, đó là luồng chính (main thread). Ngoài ra nó có thể có
them vài luồng khác cho các hoạt động phục vụ luồng chính.
Các luồng dùng chung tài nguyên của tiến trình nhưng thực thi độc lập. Một ứng
dụng có thể tách thành một luồng chính chạy giao diện người sử dụng và các luồng
chạy ở background phục vụ các nhiệm vụ có thời gian dài. Với hệ thống có vi xử lý đa
nhân thì việc chạy đa luồng giúp cho ứng dụng chạy nhanh hơn.
Khi một tiến trình được sinh ra, luồng chính được dùng để chạy một messenger
queue, hàng đợi này quản lý các thành phần của ứng dụng như activity, intent receiver.
Các luồng phụ tương tác với luồng chính thông qua token. Khi lấy được token, luồng
phụ ghi dữ liệu vào messenger queue của handler và được thực thi khi nó ra khỏi hàng
đợi. Nhiệm vụ chính của handler là xếp lịch cho các message để thực thi trong một
thời điểm trong tương lai và xếp hàng một action cần thực hiện tại một luồng khác.
16
g. XML layouts
Layout là một cấu trúc trực quan của một giao diện người sử dụng cho một
activity hoặc một widget của ứng dụng. Có thể khai báo một layout theo hai cách:
Khai báo một thành phần giao diện người dùng trong XML. Android cung
cấp cú pháp XML đơn giản để khai báo các lớp View và các lớp con, cũng
như widgets và các layouts.
Ứng dụng có thể tạo đối tượng View và ViewGroup tức thời trong thời gian
chạy.
2.2.2. Eclipse
Một dự án ứng dụng trên Android bao gồm các thành phần chính sau: mã nguồn
Java, các files tài nguyên, file AndroidManifest.xml.
Thư mục src là thư mục chứa mã nguồn Java điều khiển ứng dụng.
R.java chứa định danh của mỗi thành phần tài nguyên. Nó rất quan trọng
và tự động được sinh ra mỗi khi tài nguyên thay đổi.
Thư mục res chứa toàn bộ tài nguyên của ứng dụng, bao gồm:
Drawables chứa các file ảnh như là bitmaps và icons.
Layout chứa file xml định nghĩa các view của activity.
File strings.xml được sử dụng cho các giá trị có kiểu chuỗi như là tên ứng
dụng.
AndroidManifest.xml miêu tả thông tin của dự án mà hệ điều hành cần
biết trước khi chạy. Nó bao gồm việc khai báo các activity, khai báo việc
sử dụng phần cứng như camera, Bluetooth, khai báo activity đầu tiên
được chạy khi ứng dụng được mở.
Quy trình phát triển một ứng dụng được mô tả như hình 2.4 dưới đây
18
Hình 2.4. Quy trình phát triển một ứng dụng Android
Các tài nguyên được khai báo trong các file xml, file R.java chứa định danh
được tự động sinh ra. Mã nguồn điều khiển nó được viết bằng java. Khai báo trong file
AndroidManifest.xml. Elipse biên dịch thành dạng byte code (file *.dex) để sẵn sàng
sử dụng trong các máy ảo Java. Bên cạnh đó, công cụ ADT của bộ công cụ Android
SDK còn convert file nguồn sang file *.apk là một dạng đóng gói để sẵn sàng chạy
trong các thiết bị Android cũng như các emulator.
2.2.3. Emulator
Cho dù test trên phần cứng mà ứng dụng được thiết kế cho nó vẫn là tốt nhất,
song việc test ứng dụng trên bộ mô phỏng emulator khiến cho công việc dễ dàng hơn.
Làm việc với emulator cho phép biên dịch, chạy và gỡ lỗi nhanh hơn so với việc chạy
trên phần cứng thật. Việc đồng bộ hóa, copy một ứng dụng vào thiết bị thật thì mất
thời gian hơn so với việc chạy trên emulator. Ngoài ra việc gỡ bỏ nó đi trên emulator
cũng dễ dàng hơn.
Có hai bộ công cụ mô phỏng thông dụng là Android Emulator và GenyMotion.
a. Android Emulator
Là bộ công cụ mô phỏng được tích hợp sẵn trong Android SDK, nó có đầy đủ
các tính năng của thiết bị như camera, bàn phím QWERTY, các phần cứng khác nhau,
màn hình hướng ngang (landscape) hay dọc (vertical).
Ngoài ra, Android Emulator còn cung cấp một bộ công cụ mạnh để test với các
điều kiện mạng khác nhau với tốc tộ thay đổi như GSM, GPRS, EDGE, HSPDA
b. GenyMotion
Android Emulator là bộ công cụ mạnh, nhưng có nhược điểm là chiếm khá nhiều
CPU. Để khắc phục nhược điểm này, nhất là khi test ứng dụng trên máy tính có cấu
19
hình yếu thì GenyMotion là một lựa chọn lý tưởng, được hơn 900 000 người sử dụng.
Nó không chiếm nhiều CPU như Android Emulator nhưng vẫn có đầy đủ các tính năng
của một bộ công cụ mô phỏng hoàn hảo. GenyMotion 2.3.0 hỗ trợ các thiết bị ảo từ
API 10 – API 18 (Android 2.3.7 – Android 4.4.4) với độ phân giải màn hình từ
480x800 – 1920x1200. Bên cạnh việc chạy mô phỏng các ứng dụng từ source code
trên bộ công cụ Eclipse, máy ảo còn cài được các ứng dụng từ file đóng gói *.apk bằng
kéo thả rất nhanh và tiện lợi.
20
3.1.1. Mô tả
a. Mô tả
Khách hàng đăng ký thông tin và tên đăng nhập, mật khẩu vào phiếu đăng ký.
Hệ thống cấp một mã số ID bệnh nhân.
Bệnh nhân đăng nhập vào ứng dụng trên smartphone. Máy đo gửi tín hiệu cho
smartphone qua bluetooth. Smartphone hiển thị kết quả trên màn hình, gửi dữ liệu tới
Trung tâm.
Khi dữ liệu được gửi, Trung tâm nhận dạng bệnh nhân theo mã ID, lưu dữ liệu
vào hồ sơ bệnh nhân, gửi thông báo đã nhận dữ liệu thành công. Gửi chỉ dẫn cấp cứu,
số điện thoại khẩn cấp, danh sách các bệnh viện gần nhất về smartphone của bệnh
nhân.
Khi bác sĩ, bệnh nhân, người nhà truy cập dữ liệu của bệnh nhân, kiểm tra mã
số ID, mật khẩu, nếu đúng thì in ra màn hình bảng kết quả theo dõi.
b. Sơ đồ hệ thống
Internet
HT T
P
3G
Hệ đo Database
Bluetooth
Smartphone
Bệnh nhân Web Server
Server: bao gồm cơ sở dữ liệu bệnh nhân và các dịch vụ. Server có chức
năng nhận thông tin từ người sử dụng, quản lý thông tin trên cơ sở dữ liệu
và trả về thông tin khi có yêu cầu.
3.1.2. Bảng phân tích xác định chức năng, tác nhân, hồ sơ
Bảng 3.1. Phân tích xác định chức năng, tác nhân
Cụm động từ + bổ ngữ Cụm danh từ Nhận xét
Đăng ký thông tin Bệnh nhân Tác nhân
Cấp mã số ID bệnh nhân Hồ sơ bệnh án Hồ sơ dữ liệu
Đăng nhập vào trang cá Bệnh nhân =
nhân
Gửi dữ liệu cho Máy đo Tác nhân
smartphone
Hiển thị kết quả Smartphone =
Gửi dữ liệu Trung tâm Tác nhân
Nhận dạng bệnh nhân theo Trung tâm =
ID
Lưu dữ liệu Hồ sơ bệnh nhân Hồ sơ dữ liệu
Truy cập dữ liệu bệnh Bệnh nhân, bác sĩ Hồ sơ dữ liệu
nhân
Kiểm tra mã số ID, mật Hồ sơ bệnh nhân Hồ sơ dữ liệu
khẩu
In ra màn hình Bảng kết quả Hồ sơ dữ liệu
22
Phản hồi
Bệnh án
Chỉ dẫn
Bác sĩ
1. Quản lý thông
2. Theo dõi 3. Quản lý bệnh án 4. Báo cáo
tin bệnh nhân
1.1. Kiểm tra thông 2.1. Hiển thị kết 3.1. Kiểm tra thông 4.1. Gửi yêu cầu
tin đăng ký quả tin đăng nhập báo cáo
1.2. Cấp tài khoản 2.2. Lưu dữ liệu 3.2. Tìm kiếm danh
4.2. Báo cáo
bệnh nhân vào bệnh án sách bệnh nhân
a. Phiếu đăng ký
b. Bệnh án Data
1.0
Quản lý 2.0 Kết quả Người sử
thông tin Theo dõi dụng
c. Danh sách bệnh nhân Chỉ dẫn
bệnh nhân
d. Danh sách bác sĩ
Đăng nhập
e. Phản hồi
a. Phiếu đăng ký
Thông tin đăng ký
Người sử 1.1
Thông tin đăng ký
dụng Kiểm tra 1.2
thông tin Cấp tài khoản
đăng ký
b. Bệnh án
Thông tin cập nhật c. Danh sách bệnh nhân Thông tin đăng ký
Hình 3.5. Biểu đồ luồng dữ liệu mức 1 quản lý thông tin bệnh nhân
b. Biểu đồ tiến trình Quản lý bệnh án
Ngày giờ Hồ sơ
Số bệnh nhân
Phản hồi
ID Phản hồi
Số bác sĩ Username
Số bệnh nhân Họ tên
Username
Cơ quan
Điện thoại
Bệnh Điện thoại
Chọn bác sĩ Bác sĩ
nhân
Email Địa chỉ
Chức danh
Email
Họ tên Giới tính
Số bệnh án
Số bệnh nhân Chẩn đoán
Theo dõi Ngày giờ
Ngày giờ Đơn thuốc
Bệnh án
4. Bệnh án
5. Phản hồi # Mã số bệnh án
* Mã số bệnh nhân
# Mã số phản hồi
* Mã số bác sĩ
* Mã số bệnh nhân
Chẩn đoán
Phản hồi
Đơn thuốc
Ngày giờ
Ngày giờ
(a) (b)
Hình 3.9. Màn hình menu của ứng dụng:
(a) Màn hình splash; (b) Màn hình menu
Khi ứng dụng được mở, màn hình splash hiển thị tên ứng dụng, tác giả và logo,
sau 1,5 giây tự động chuyển qua màn hình menu bao gồm các nút để người sử dụng
lựa chọn chức năng.
Các nút chức năng trong màn hình Menu bao gồm:
Bluetooth
Chart
Send Message
Upload Data
Help
Khi người dùng bấm vào các nút này, màn hình sẽ chuyển qua các activity tương
ứng với các chức năng
b. Bluetooth
Bluetooth là kênh không dây để thiết bị Android nhận dữ liệu từ hệ đo. Các chức
năng chính của Bluetooth Activity trong ứng dụng này bao gồm:
Scan để tìm thiết bị có Bluetooth khác
Danh sách các thiết bị đã kết nối
Kết nói với thiết bị khác qua service discovery
31
(d) (e)
Hình 3.10. Bluetooth:
(a) menu; (b) Turn on; (c) Discoverable; (d) Devices; (e) Turn off
Màn hính chính của Bluetooth bao gồm các phím chức năng
Turn on
Discoverable
Devices
Turn off
32
Khi người dùng bấm vào phím Turn on, màn hình pop-up hiện lên thông báo yêu
cầu cho phép bật Bluetooth của máy.
Khi người dùng bấm vào nút Discoverable, màn hình pop-up thông báo yêu cầu
cho phép các máy khác có thể tìm thấy máy trong 120 giây.
Khi người dùng bấm vào Devices, hiển thị danh sách các thiết bị đã kết nối với
máy.
Khi người dùng bấm vào Turn off, màn hình pop-up thông báo đã tắt Bluetooth
của máy.
c. Đồ thị dạng sóng điện tim
(a) (b)
(c) (d)
Hình 3.12. Gửi thông tin:
(a) Send Message; (b) Upload File; (c) Uploading; (d) File Upload Completed
e. Help
34
Điện thoại
Email
e. Trang bệnh án
(a)
(b)
Hình 3.18. Trang bệnh án:
(a) Nhập số bệnh nhân; (b) Kết quả bệnh án
Trang bệnh án gồm trang đăng nhập với mã số bệnh nhân. Kết quả tương ứng là
bệnh án bao gồm:
Tên bệnh nhân
Ngày sinh
Giới tính
Chẩn đoán của bác sĩ
Bác sĩ khám
Chức vụ
Thời gian khám
38
4.1.2. Project
commons-codec-1.6.jar
commons-logging-1.13.jar
fluent-hc-4.3.6.jar
httpclient-4.3.6.jar
httpclient-cache-4.3.6.jar
httpcore-4.3.3.jar
httpmime-4.3.6.jar
Thư mục res:
Drawable: chứa các file ảnh *.jpg và *.png sử dụng làm logo và icon cho
ứng dụng.
layout: chứa các file xml thiết kế giao diện cho các activity tương ứng
o splash.xml
o menu.xml
o bluetooth.xml
o posttext.xml
o postfile.xml
o help.xml
values: các file xml định nghĩa các màu, kích thước và các string sử dụng
trong ứng dụng.
o color.xml
o dimens.xml
o string.xml
o styles.xml
AndroidManifest.xml:
Khai báo các activity
Các permission để ứng dụng có thể sử dụng các phần cứng như Bluetooth,
Internet
4.3.2. Server
Chạy thử trang web đăng ký tại địa chỉ http://localhost/register.php, nhập thông
tin đăng ký.
Trang đăng nhập tại địa chỉ http://localhost/login.php, khi nhập đúng tên đăng
nhập và mật khẩu thì chuyển sang trang http://localhost/LoginRegister.php.
Danh sách bệnh nhân : http://localhost/DanhSachBenhNhan.php.
Danh sách bác sĩ : http://localhost/DanhSachBacSi.php.
Trang dành cho bác sĩ http://localhost/ChanDoan.php. Thông tin nhập vào được
xử lý tại http://localhost/ChanDoanController.php. Dữ liệu được lưu vào bảng Bệnh án
trong cơ sở dữ liệu.
43
Truy cập bệnh án tại địa chỉ http://localhost/benhan.php. Nhập số bệnh nhân, kết
quả trả về thông tin bệnh án tại trang http://localhost/BenhAnController.php. Kết quả
chạy, dữ liệu được nhập và truy vấn từ cơ sở dữ liệu đúng theo yêu cầu đặt ra
Gửi file dữ liệu (file *.csv) tới địa chỉ http://localhost/receiver2.php. Hình 4.3 là
LogCat thông báo các tiến trình khởi tạo các activity để truyền dữ liệu. Dữ liệu được
gửi tới server bằng bản tin HTTP (Request Message) bao gồm hai phần : tiêu đề chứa
tên phương thức POST, phần nội dung (body). Server trả về response 200 OK thông
báo quá trình liên lạc giữa client – server hoàn tất. Dữ liệu được gửi tới thư mục
\xampp\htdocs\uploads\ trên server.
.
44
KẾT LUẬN
Những nội dung của luận văn bao gồm nghiên cứu về lý thuyết và sản phẩm
demo. Phần lý thuyết đề cập những nội dung và phương pháp để phát triển ứng dụng
thu thập tín hiệu điện tim bao gồm lý thuyết điện tim, hệ điều hành Android. Lý thuyết
điện tim được đề cập bao gồm những kiến thức khái quát, nguyên lý, sự hình thành,
cách đo điện tim và ý nghĩa dạng sóng. Lý thuyết hệ điều hành Android bao gồm kiến
trúc, các thành phần, các công cụ và môi trường phát triển hợp nhất.
Ứng dụng demo được trình bày từ quy trình phát triển một sản phẩm phần mềm:
khảo sát, xây dựng các biểu đồ ngữ cảnh, phân rã chức năng, biểu đồ luồng dữ liệu
logic và vật lý, đặc tả cơ sở dữ liệu vật lý. Sản phẩm demo bao gồm ứng dụng
smartphone được viết cho hệ điều hành Android có chức năng xử lý và hiển thị kết quả
điện tim, gửi dữ liệu về server qua giao thức HTTP. Về phía server, cơ sở dữ liệu được
xây dựng trên MySQL, các trang web viết bằng PHP.
Do phạm vi của đề tài nên việc xây dựng phần cứng (hệ đo) chưa được thực hiện.
Điều đó dẫn đến khó khăn trong việc xây dựng một giải pháp tổng thể để phát triển hệ
thống từ hệ đo trên bệnh nhân tới ứng dụng smartphone và server.
Bên cạnh đó, do không đặt trọng tâm vào phần đồ họa nên đồ thị biểu diễn tín
hiệu điện tim trên ứng dụng còn đơn giản, không biểu diễn dạng sóng theo thời gian
thực (real-time).
Ứng dụng truyền dữ liệu tới trung tâm bằng giao thức HTTP chưa đảm bảo tính
bảo mật. Hướng phát triển tiếp theo của đề tài là sử dụng các giao thức bảo mật cao
hơn được dùng như chuẩn thông tin y tế được các nước đang sử dụng như bộ giao thức
HL7.
Hiện nay việc ứng dụng công nghệ thông tin và điện tử viễn thông trong lĩnh vực
y học hứa hẹn rất nhiều triển vọng. Hướng phát triển tiếp theo của đề tài là thiết kế hệ
đo bao gồm điện cực thu tín hiệu điện tim trên da bệnh nhân, khuếch đại tín hiệu và
lọc nhiễu, các bộ lọc bao gồm bộ lọc thông thấp, bộ lọc triệt tần và số hóa ADC. Hoàn
thiện giải pháp chăm sóc sức khỏe từ xa giúp người bệnh được chăm sóc liên tục mà
không cần tới bệnh viện, rút ngắn khoảng cách địa lý.
45