Lắp đặt camera
Thiết bị sử dụng 2 camera với 2 mục đích khác nhau nên được thiết kế và lắp
đặt tại các vị trí hồn tồn khác nhau. Camera thu ảnh gelcard được bố trí tại vị trí
ở đầu chính giữa của hệ thống với nhiệm vụ thu nhận chính xác hình ảnh các cột
gel để xử lý. Camera 1 thu nhận ảnh gelcard được đặt lên bệsao cho độ cao của camera so với sàn là d = 8 cm. Camera thu ảnh QRcode được đặt đối diện camera thu ảnh gelcard để có thể đồng thời thu ảnh 2 mặt của gelcard từ 2 camera này.
Camera được đặt tại vị trí chính giữa gelcard cách gelcard khoảng cách 4.0(cm), cho quá trình thu ảnh QRcode chính xác nhờ tính năng lấy nét tự động. Camera
được kết nối trực tiếp với máy tính xử lý thơng qua cáp kết nối USB.
46
Lắp đặt Gelcard và khung vỏ
Gelcard được đặt lên giá và ở vị trí cách camera 1 thu nhận hình ảnh cột gel một khoảng cách là 7.6 cm. Chiều cao của giá là 5.7 cm. Tầm bìa nền trắng có kích
thước 22x16.6 cm được đặt tại vị trí cách mắt camera 1 khoảng cách là 21.2 cm sao cho nó lấp đầy khung hình 640x480 pixel.
Để việc thu nhận ảnh các gelcard từcamera được thuận lợi nhất, tránh các tác nhân nhiễu từ bên ngoài, các chi tiết gelcard và camera được đặt bên trong khung vỏ của thiết bị cách biệt với ánh sáng ngồi mơi trường. Kích thước khung vỏđược thiết kế dạng hình hộp chữ nhật với kích thước độ rộng, chiều dài, độ cao là 40 x 28 x 24 cm. Khung vỏ của thiết bị được thể hiện như hình 3.2
47 Hệ thống đèn Led được tính tốn lắp đặt tại nắp của thiết bị, giúp cho quá trình thu nhận ảnh Gelcard đạt hiệu quả tốt nhất. Thiết bị được sử dụng loại Led thanh
12V, cho ánh sáng trung tính. Đèn Led được bố trí tại nắp của thiết bị.
Phần khung vỏ của thiết bị được thiết kế với bìa mơ hình trắng, tránh đối đa
các ánh sáng nhiễu lọt vào trong quá trình thu nhận ảnh. Phần nắp trên được thiết kế với bản lềgiúp q trình đóng mở nắp đểđưa gelcard vào xử lý dễdàng hơn.
Kết quả xử lý ảnh
Quá trình xử lý ảnh được thực hiện trên máy tính với mơi trường là python 3.9, ngơn ngữ lập trình trong mơi trường là python, và giao điện được thiết kế sử dụng PyQt5.
Kết quả xứ lý ảnh QRcode
Camera 2 thu ảnh mặt sau của gelcard, nơi chứa QRcode/Barcode của nhà sản xuất và gửi về bộ xử lý trung tâm. Camera sẽ thu các bức ảnh có kích thước 1024x720 pixel và gửi về cho bộ xử lý trung tâm. Tại đây sử dụng thư viện pyzbar
để xử lý phát hiện mã code có chứa trên các thẻ. Kết quả trả về sẽ là vị trí của code trong ảnh, loại của code (QRcode hoặc Barcode) và mã code. Mã code sau khi
được nhận diện sẽđược giải mã theo mã hóa UTF-8 đểcó được thơng tin của thẻ.
Hình 3.3 thể hiện hình ảnh thu nhận từ Camera 2 và kết quảđọc Barcode.
Hình 3.3 Hình ảnh thu được từ camera 2 và kết quảđọc Qrcode/Barcode và kết quảđọc Qrcode/Barcode
48 Trong Hình 3.3 hình ảnh mặt sau của gelcard chứa mã code được thu nhận với
kích thước hiển thị 300x200. Sau q trình thu nhận xử lý hình ảnh mặt sau gelcard và giải mã code kết quả trả về là chuỗi ký tự ‘718310220120299709’. Chuỗi ký tự
cho ta biết thẻ gelcard sử dụng định đạng CODE128, lot 21012.02, hạn sử dụng 10/2022.
Kết quả xử lý ảnh phát hiện ngưng kết
Sau khi bắt đầu chương trình phân loại nhóm máu và thực hiện lệnh “start” khởi tạo camera, hình ảnh ban đầu thu được từ camera số1 có kích thước là 640 x 480 pixel thể hiện ở hình 3.4. Để xử lý phát hiện được các mức ngưng kết, đầu tiên ta phải xác định và cắt vùng quan tâm toàn cục. Đó là khu vực mà chứa các buồng phản ứng và phần nhãn dán tên kháng thểtương ứng từng cột gel cũng như nơi ghi
chú thông tin bệnh nhân. Hình 3.5 là ảnh mơ tả trích xuất lấy vùng quan tâm tồn cục.
Hình 3.4 Hình ảnh gelcard thu trực tiếp từ camera
Thông qua việc bố trí và lắp đặt các linh kiện được nêu trong mục 2.3.1.3, với các thơng sốkích thước, khoảng cách cũng như vị trí đặt camera, gelcard và tấm bìa khung nền, dễ dàng tính tốn xác định được kích thước của vùng quan tâm toàn cục là 524 x 303 pixel, với tọa độ2 điểm góc là (58, 127) và (582, 430). Ảnh vùng quan tâm toàn cục chứa đầy đủ thông tin các cột gel và phần thông tin mẫu bệnh phẩm do kỹ thuật viên đánh dấu sẽđược sử dụng cho tồn bộ q trình xử lý.
49
Hình 3.5 Hình ảnh trích xuất vùng quan tâm tồn cục
Sau khi có vùng quan tâm tồn cục, đểxác định mức ngưng kết của các cột gel một cách dễ dàng, hình ảnh tiếp tục được tách ra vùng quan tâm cục bộ. Vùng quan tâm cục bộ chỉ chứa hình ảnh 6 cột gel với kích thước 524 x 127 pixel được thể
hiện tại Hình 3.6. Vùng quan tâm cục bộ được tăng sáng để dễ dàng quan sát và phân tách các mức ngưng kết. phân tách các mức ngưng kết.
Hình 3.6 Vùng quan tâm cục bộ
Hình ảnh sau khi được tăng sáng cho thấy rõ bản chất màu của các mức ngưng
kết hơn so với hình ảnh vùng quan tâm cục bộlúc trước. Hình ảnh khi chưa được
tăng sáng có các mức ngưng kết màu bị lẫn màu do nền tối, sau khi tăng sáng các
mức ngưng kết nổi bật so với vùng nền còn lại.
Trong bước làm nổi bật màu, ta tiếp tục chuyển ảnh sang miền HSV và phân
ngưỡng ảnh theo giá trịS (độxám). Để làm nổi bật rõ vịtrí ngưng kết so với phần nền ta phân ngưỡng với thang xám từ 0 đến 255 để làm nổi bật màu sắc các cột
ngưng kết so với phần nền. Sau khi phân ngưỡng điểm ảnh nào có giá trị dưới
ngưỡng sẽcó độ xám lớn nhất, điểm ảnh nào có giá trị trên ngưỡng sẽcó độ xám nhỏ nhất.
50
Hình 3.7 Ảnh thu được sau khi phân ngưỡng
Ảnh sau khi được làm nổi bật màu sắc bằng phân ngưỡng các phần nền có giá trị xám thấp chuyển hẳn thành màu xám trắng, một số có giá trị hơn ngưỡng thì
được nổi bật nhưng có bản chất màu là màu vàng và xanh nhạt, các khối ngưng kết sẽđược tăng cường màu sắc là màu đỏ.
Sau khi làm nổi bật màu sắc, ta thấy rõ các ngưng kết sẽcó màu đỏ, cịn phần nền là màu xám trắng, và xen lẫn màu xanh nhạt. Do đó khi chuyển ảnh về thang màu xanh lá, sẽlàm tăng cường độ hiển thị của các khối ngưng kết. Hình ảnh thu
được sau khi chuyển sang thang màu xanh lá được thể hiện tại Hình 3.8.
Hình 3.8 Hình ảnh sau khi chuyển sang thang màu xanh lá
Phần ngưng kết tách biệt hoàn toàn so với phần còn lại của bức ảnh trong thang màu xanh lá. Hình ảnh chỉcịn rõ 2 đối tượng phân tích là ngưng kết và phần nền.
Để chuẩn bịcho bước chuyển ảnh sang thang nhịphân để phân tích, ta chuyển
ảnh qua thang xám để dễ dàng xét ngưỡng tách riêng các khối ngưng kết ra so với phần nền. Trong thang xám các điểm ảnh có giá trị xám từ 0 đến 255, lựa chọn
ngưỡng 47 để tách phần ngững kết ra so với phần nền còn lại. Hình 3.9 thu được sau quá trình chuyển sang thang xám và làm mờ bởi bộ lọc Gauss.
51
Sau khi thu được ảnh tại thang xám, tiếp tục sử dụng bộ lọc Gauss để làm mờ các điểm nhiễu. Sau đó ảnh được lấy ngưỡng cốđịnh và chuyển sang ảnh nhị phân
như tại Hình 3.10.
Hình 3.10 Ảnh được lấy ngưỡng và chuyển sang nhị phân
Do sau khi thực hiện nhị phân hóa ảnh, một sốvùng ngưng kết được phân tách
còn bé, chưa rõ ràng. Ta vận dụng sử dụng thêm phép toán dilate và erode đểtăng cường cho việc xác định đường biên ngưng kết. Kết quảthu được như hình 3.11.
Hình 3.11 Ảnh nhị phân sau phép Dilate và Erode
Sau khi phân vùng chính xác từng vị trí ngưng kết, ta sử dụng thuật toán phát hiện đường biên (Contour) cho ảnh nhị phân hóa để thực hiện khoanh vùng các
đường bao được phân tách ra và hiển thị lên ảnh ban đầu. Kết quảthu được là các
đường bao khối ngưng kết trên hình ảnh vùng quan tâm tồn cục như trên hình
3.12.
52
Xác định vùng bao của từng ngưng kết trong các cột gel, từđó tính tốn ra tọa
độ trọng tâm của vùng ngưng kết. Vì vị trí của từng cột gel ta có thểtính tốn được cụ thể nên ta sẽ chỉ giữ lại các vật thểmà xác định được ởbước trước nằm trong cột gel sau khi tính tốn trọng tâm, diện tích vật thể. Các vật thể nằm trong từng cột gel sẽđược đánh giá vùng mà nó xuất hiện. Tổng hợp các đánh giá sẽ cho ta
được kết quả của các mức ngưng kết. Kết quả của xác quá trình xác định ngưng
kết được mơ tả tại Hình 3.13.
Hình 3.13 Kết quảquá trình xác định mức ngưng kết
Trong Hình 3.13 các cột gel được xử lý các vùng ngưng kết sau khi sử dụng phát hiện đường biên được thể hiện bằng viền màu đỏ khép kín, trọng tâm của các
53 khối ngưng kết thể hiện bằng chấm tròn trắng nằm giữa. Từđường biên và trọng tâm của vùng ngưng kết, tham khảo tài liệu hướng dẫn phân loại mức độ ngưng
kết gelcard của bộ y tế Hình 1.4 và từ việc so sánh trọng tâm khối ngưng kết có nằm trong các vùng đã phân tích nêu trong mục b phần 2.3.2.2 có thể suy ra mức
ngưng kết từ các cột gel: cột gel số 1 dương tính 4+, cột gel số 2 âm tính, cột gel số3 dương tính 3+, cột gel số 4 âm tính, cột gel số5 dương tính 3 +, cột gel số 6 âm tính, cột gel số7 dương tính 4+, cột gel số 8 âm tính. Sau khi đã có chuỗi các mức ngưng kết, dữ liệu các chuỗi ngưng kết sẽ được tổng hợp với mã QRcode/Barcode của thẻđể cho ra kết quảđịnh danh nhóm máu. Như vậy với 1 thẻ gelcard này sẽđịnh danh cho được 2 bệnh nhân cùng 1 lúc.
Dựa theo kết quảđịnh danh nhóm máu hệ ABO, Rh của bộ y tếở bảng 1.4 và bảng 1.5 mục 1.3.3.1, ta suy ra bảng phân loại định danh nhóm máu từ các mức
ngưng kết cụ thể trong bảng 3.1:
Bảng 3.1 Bảng phân loại định danh nhóm máu ABO/Rh
Anti-A Anti-B Ctl Anti-D Nhóm máu Loại Rh
3+ đến 4+ Âm tính hoặc 1+ Âm tính 4+ hoặc 3+ A Rh+ Âm tính hoặc 1+ 3+ đến 4+ Âm tính 2+ hoặc 1+ B Rh+ Weak 3+ đến 4+ 3+ đến 4+ Âm tính Âm tính AB Rh - Âm tính hoặc 1+ Âm tính hoặc 1+ Âm tính O
Dữ liệu phân tích ở bảng 3.1 kết hợp với thơng tin mã Qrcode/Barcode cung cấp, kết quảđịnh danh nhóm máu và thơng tin bệnh nhân sẽđược hiển thị lên bảng kết quả bao gồm họ tên, nhóm máu, loại Rh của hai người bệnh tương ứng như
54
Hình 3.14 Kết quảđịnh danh nhóm máu
Một số kết quảđịnh danh nhóm máu cho bệnh nhân khác được thể hiện thêm tại hình 3.15. Cụ thểnhư sau:
55
Giao diện ứng dụng quản lý dữ liệu
Sau khi thiết bịđã được kết nối các bộ nguồn và cáp dữ liệu, mẫu Gelcard được kỹ thuật viên đặt lên giá. Kỹ thuật viên sẽ đăng nhập với một tài khoản và mật khẩu mặc định vào hệ thống quản lý Gelcard được thiết kế với mơi trường .NET ngơn ngữ lập trình là Windowform, C# như trong Hình 3.16. Phần mềm quản lý
Gelcard được thiết kế một cách đơn giản và thao tác sử dụng dễ dàng.
Hình 3.16 Giao diện đăng nhập chương trình
Tại đây, kỹ thuật viên sẽ sử dụng tài khoản và mật khẩu được cung cấp sẵn trên hệ thống đểđăng nhập. Sau khi đăng nhập, giao diện phần mềm hiển thị trên hình
3.17. Để tiến hành chạy định danh nhóm máu đối với gelcard, kỹ thuật viên vào mục thông tin bệnh nhân để kiểm tra mã Qrcode/Barcode của gelcard đồng thời khai báo các thông tin của bệnh nhân vào từng trường. Hình 3.18 mơ tả quá trình
đăng ký bệnh nhân.
56
Hình 3.18 Giao diện đăng ký thông tin bệnh nhân
Sau khi lưu lại, thông tin bệnh nhân sẽđược lưu trữ trên hệ thống server, cụ thể
là MySQL server. Ngay sau khi đăng ký được thông tin bệnh nhân, các kỹ thuật viên sẽ tiến hành chạy mẫu gelcard bệnh nhân trên thiết bị. Kỹ thuật viên hay bác sỹ có thể tra cứu kết quảđịnh danh nhóm máu cho từng cặp mẫu bệnh nhân thơng qua việc vào mục kết quả trên phần mềm quản lý này. Hình 3.19 mơ tảtính năng
trả kết quả.
57 Tại đây, kỹ thuật viên nhập mã Qrcode/Barcode tương ứng được cung cấp trên thẻgelcard để tìm kiếm kết quả cho bệnh nhân. Thông tin các kết quả của 2 bệnh nhân sẽ hiển thị tương ứng lên phần mềm bao gồm họ tên, tuổi, nhóm máu, loại Rh và hình ảnh minh họa. Ở đây, kỹ thuật viên có thể thao tác chỉnh sửa hoặc xóa
đi kết quảvà lưu lại với giá trị mới.
Ngoài ra các kỹ thuật viên có thể tìm kiếm danh sách bệnh nhân đã thực hiện xét nghiệm thông qua họtên. Người sử dụng vào mục tìm kiếm ở giao diện màn hình menu của chương trình, và nhập họ tên người bệnh cần truy xuất vào ô textbox. Hình 3.20 mơ tả giao diện chức năng này.
Hình 3.20: Giao diện chức năng tìm kiếm theo tên bệnh nhân
Đánh giá độ chính xác của thiết bị
Thiết bị đã tiến hành thử nghiệm để đọc xác định mức ngưng kết với Gelcard thực tế. Quá trình thử nghiệm diễn ra với 30 Gelcard loại 8 cột dưới sựđánh giá
của các kỹ thuật viên kinh nghiệm. Kết quảđánh giá độ chính xác thể hiện qua đồ
58
Hình 3.21 Mức độ chính xác của thiết bịtrong q trình xác định ngưng kết
Trên 30 gelcard loại 8 cột gel ứng với tổng 240 cột ngưng kết, thiết bịxác định
đúng: 102/105 ngưng kết âm tính đạt 97.1%; 32/35 ngưng kết dương tính 1+ đạt 91.4%; 5/7 ngưng kết dương tính 2+ đạt 71.4%; 29/31 ngưng kết dương tính 3+ đạt 93.5%; 60/62 ngưng kết dương tính 4+ đạt 96.7%. So với thực tế chỉ sử dụng mức âm tính, dương tính 3+ và dương tính 4+, kết quả thu được từ thiết bị được
đánh giá đáng tin cậy.
Ngoài ra với 30 gelcard chạy thử nghiệm trên thiết bị, kết quả phân loại nhóm
máu cũng được lấy mẫu so sánh kiểm chứng với kết quả mà các kỹ thuật viên bác sỹđọc. Kết quả tham chiếu được thể hiện trên hình 3.22.
Hình 3.22 Độ chính xác của thiết bị trong phân loại nhóm máu
Với 30 gelcard này tương đương với 60 mẫu bệnh nhân được chạy thử nghiệm
định danh nhóm máu trong đó có 7 mẫu khơng phân loại. Các kết quả phân nhóm ABO và Rh+ / Rh- được so sánh tham chiếu với kết quả mà các kỹ thuật viên bác sỹđã đọc. Cụ thể với nhóm máu A / Rh+ đúng 12/13 đạt 92.3%, nhóm máu B/ Rh+
96.70% 93.50% 71.40% 91.40% 97.10% 0% 20% 40% 60% 80% 100% 4+ 3+ 2+ 1+ Âm tính Mức độ chính xác