Tà i liệu ePOC Middleware
Tổng quan
ePOC Middleware là má»™t ứng dụng Windows chạy dưới dạng system tray, được thiết kế để nháºn và xá» lý dữ liệu từ các thiết bị y tế ePOC. Ứng dụng hoạt động như má»™t middleware, nháºn dữ liệu qua TCP, lưu trữ cục bá»™ và có thể chuyển tiếp dữ liệu đã được phân tÃch sang hệ thống khác.
Kiến trúc hệ thống
Các thà nh phần chÃnh
- TCP Server: Lắng nghe kết nối TCP trên port 9100 (có thể cấu hình)
- System Tray Interface: Giao diện ngưá»i dùng trong system tray
- Database Layer: SQLite để lưu trữ dữ liệu có cấu trúc
- License System: Hệ thống bảo vệ bản quyá»n dá»±a trên machine fingerprint
- Forwarding Module: Chuyển tiếp dữ liệu JSON sang server khác
- Logging System: Ghi log dữ liệu thô và thông báo
Luồng dữ liệu
Thiết bị ePOC → TCP Connection → Data Sanitization →
├── Raw Log (incoming_data.txt)
├── Database Storage (reports.db)
├── JSON Parsing
└── Optional Forwarding → External Server
Chức năng chi tiết
1. TCP Server
Cổng mặc định: 9100 (có thể cấu hình trong config.xml)
Quy trình xỠlý kết nối:
- Chấp nháºn kết nối TCP từ thiết bị ePOC
- Äá»c dữ liệu từ kết nối (buffer 4KB)
- Sanitize dữ liệu (loại bỠwhitespace, chuẩn hóa line endings)
- Phân tÃch dữ liệu thà nh cấu trúc JSON
- Lưu trữ và o database và file log
- Chuyển tiếp JSON (nếu được báºt)
XỠlý lỗi:
- Kết nối tạm thá»i bị lá»—i: retry sau 200ms
- Dữ liệu rỗng: bỠqua
- Lỗi parsing: lưu dữ liệu thô
2. Data Parsing
Cấu trúc dữ liệu được phân tÃch:
{
"facility": "Tên cơ sở y tế",
"test_name": "Tên xét nghiệm",
"patient_id": "ID bệnh nhân",
"date_time": "Thá»i gian xét nghiệm",
"sections": [
{
"name": "Tên nhóm kết quả",
"entries": [
{
"parameter": "Tên chỉ số",
"value": "Giá trị",
"unit": "ÄÆ¡n vị",
"flag": "Trạng thái (high/low/normal)"
}
]
}
],
"reference_ranges": [
{
"parameter": "Tên chỉ số",
"range": "Khoảng tham chiếu",
"unit": "ÄÆ¡n vị"
}
]
}
Các trưá»ng metadata:
entered_using: Phương thức nháºp liệusample_type: Loại mẫuhemodilution: Äá»™ pha loãng máucomments: Ghi chúoperator: Ngưá»i thá»±c hiệncard_lot: Lô thẻlast_eqc: EQC cuối cùngreader: Máy Ä‘á»chost: Host systemsensor_config: Cấu hình sensorevad_version: Phiên bản EVADos_version: Phiên bản OSos_security_patch_level: Mức patch bảo máºtqa_status: Trạng thái QA
3. Database Schema
Bảng reports:
CREATE TABLE reports (
id INTEGER PRIMARY KEY AUTOINCREMENT,
received_at TEXT NOT NULL, -- Thá»i gian nháºn (RFC3339)
remote_addr TEXT NOT NULL, -- Äịa chỉ IP nguồn
bytes INTEGER NOT NULL, -- Số byte dữ liệu
raw TEXT NOT NULL, -- Dữ liệu thô
json TEXT -- Dữ liệu JSON đã parse
)
Cấu hình SQLite:
- Journal mode: WAL (Write-Ahead Logging)
- Busy timeout: 5000ms
- Max connections: 1
4. System Tray Interface
Menu items:
- Valid until: Hiển thị ngà y hết hạn license
- IP: Danh sách địa chỉ IP cục bộ
- Forward target: Äịa chỉ server chuyển tiếp
- Forward JSON: Checkbox báºt/tắt chuyển tiếp
- Port: Cổng TCP đang lắng nghe
- About: Thông tin tác giả và dự án
- Quit: Thoát ứng dụng
Thông báo desktop:
- Khi có dữ liệu mới
- Khi báºt/tắt forwarding
- Khi có lỗi server
- Khi server sẵn sà ng
5. License System
6. Configuration
File config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<config>
<server>
<ip>192.168.0.10</ip> <!-- IP server chuyển tiếp -->
<port>3001</port> <!-- Port server chuyển tiếp -->
<timeout>5</timeout> <!-- Timeout kết nối (giây) -->
</server>
<listener>
<port>9100</port> <!-- Port TCP listener -->
</listener>
<logging>
<filename>incoming_data.txt</filename> <!-- Tên file log -->
</logging>
<license>
<key>LICENSE-KEY</key> <!-- License key -->
<type>premium</type> <!-- Loại license -->
</license>
</config>
7. Forwarding Module
Chá» ©c năng:
- Chuyển tiếp dữ liệu JSON đã parse sang server khác
- SỠdụng TCP connection với timeout
- Có thể báºt/tắt qua system tray
- Chỉ hoạt động khi có cấu hình server trong config
Protocol:
- Gá»i JSON data qua TCP
- Mỗi message kết thúc bằng newline
- Timeout mặc định: 5 giây
Yêu cầu hệ thống
- Windows 10 trở lên
- Quyá»n ghi file trong thư mục ứng dụng
Triển khai
- Copy
tcptrayserver.exevà o thư mục cà i đặt - Tạo file
config.xmlvới license key hợp lệ - Chạy ứng dụng (sẽ tự động tạo
reports.dbvà file log) - Cấu hình thiết bị ePOC kết nối đến IP:Port của máy nà y
Monitoring và Troubleshooting
Log Files
- incoming_data.txt: Chứa tất cả dữ liệu thô nháºn được
Common Issues
License validation failed:
- Kiểm tra license key có đúng format không
- Verify machine fingerprint khá»›p vá»›i license
- Kiểm tra ngà y hết hạn
Forward JSON disabled:
- Äảm bảo có cấu hình
<server>trong config.xml - Kiểm tra IP và port server chuyển tiếp
No data received:
- Verify thiết bị ePOC kết nối đúng IP:Port
- Kiểm tra firewall settings
- Xem log để debug connection issues
Database errors:
- Kiểm tra quyá»n ghi file trong thư mục
- Verify SQLite database không bị corrupt
Data Security
- Dữ liệu được lưu trữ cục bộ
- Không có encryption cho dữ liệu trong database
- Forwarding qua TCP không mã hóa
API Reference
Database Queries
-- Lấy tất cả reports
SELECT * FROM reports ORDER BY received_at DESC;
-- Lấy reports trong ngà y
SELECT * FROM reports WHERE date(received_at) = date('now');
-- Lấy reports có JSON data
SELECT * FROM reports WHERE json IS NOT NULL;
Configuration Parameters
listenPort: Port TCP listener (default: 9100)logFileName: Tên file log (default: "incoming_data.txt")forwardDialTimeout: Timeout kết nối forwarding (default: 5s)
Liên hệ và hỗ trợ
- Tác giả: Betex
- Website: https://betex.vn
- Email: support@betex.vn
- License: Premium
Tà i liệu nà y mô tả phiên bản hiện tại cá»§a ePOC Middleware. Äể cáºp nháºt thông tin má»›i nhất, vui lòng tham khảo README.md hoặc liên hệ tác giả.