Một dự án triển khai LIS thường vấp vào cùng một câu hỏi ở buổi khảo sát đầu tiên: máy sinh hóa này nói chuyện bằng ASTM hay HL7? Kỹ sư của hãng máy trả lời một đằng, tài liệu bán hàng ghi một nẻo, còn trưởng khoa xét nghiệm chỉ cần biết kết quả có tự về hệ thống hay không. Bài này so sánh HL7 và ASTM theo hướng của người phải quyết định: nhìn bản tin trông ra sao, chạy trên đường truyền nào, chỗ nào hay hỏng, và máy nào nên đi bằng chuẩn nào.
So sánh HL7 và ASTM: hai chuẩn sinh ra để làm gì
ASTM trong bối cảnh máy xét nghiệm là hai chuẩn đi đôi. Chuẩn E1381 quy định tầng truyền (cách hai bên bắt tay, đóng khung, kiểm tra lỗi), chuẩn E1394 quy định nội dung bản tin (người bệnh, chỉ định, kết quả). Về sau hai chuẩn này được CLSI tiếp nhận thành LIS01 và LIS02, nhưng trong tài liệu của hãng máy bạn vẫn hay thấy tên ASTM cũ. Mục đích ban đầu rất hẹp: để máy phân tích và hệ thống phòng xét nghiệm trao đổi chỉ định và kết quả.
HL7 phiên bản 2 ra đời từ một nhu cầu rộng hơn. Nó là ngôn ngữ chung giữa các hệ thống trong bệnh viện: đăng ký người bệnh, chỉ định, kết quả, viện phí. Phần dành cho xét nghiệm chỉ là một nhóm bản tin trong đó. Muốn hiểu bức tranh lớn của họ chuẩn này, đọc thêm bài chuẩn HL7 và FHIR trong phần mềm bệnh viện.
Hệ quả thực tế của xuất thân khác nhau:
- ASTM gọn, ít trường, thiết kế quanh một máy nối với một hệ thống.
- HL7 v2 nhiều trường hơn, mềm dẻo hơn, nhưng cũng "lỏng" hơn: mỗi hãng, mỗi bệnh viện có thể dùng trường theo cách riêng.
Cấu trúc bản tin: nhìn thẳng vào dữ liệu
Hai chuẩn đều dùng văn bản có dấu phân cách, đọc được bằng mắt khi bắt gói. Cách tổ chức thì khác.
ASTM chia bản tin thành các bản ghi, mỗi bản ghi mở đầu bằng một chữ cái:
- H (Header): thông tin phiên truyền, tên máy gửi.
- P (Patient): thông tin người bệnh.
- O (Order): chỉ định xét nghiệm, mã mẫu.
- R (Result): từng kết quả, đơn vị, cờ bất thường.
- C (Comment): ghi chú đi kèm.
- L (Terminator): kết thúc phiên.
HL7 v2 chia theo đoạn (segment), mở đầu bằng ba chữ cái:
- MSH: tiêu đề bản tin, loại bản tin, mã phiên bản.
- PID: định danh người bệnh.
- OBR: một yêu cầu xét nghiệm.
- OBX: từng kết quả đơn lẻ, kèm đơn vị, khoảng tham chiếu, cờ bất thường.
- NTE: ghi chú.
Loại bản tin HL7 hay gặp ở phòng xét nghiệm là ORM hoặc OML để gửi chỉ định xuống máy và ORU^R01 để máy trả kết quả. Tên các loại bản tin này khá cố định, nhưng nội dung trong từng trường thì đây mới là chỗ khác nhau giữa các hãng.
| Tiêu chí | ASTM (E1381/E1394, CLSI LIS01/LIS02) | HL7 v2 |
|---|---|---|
| Đơn vị cấu trúc | Bản ghi H, P, O, R, C, L | Đoạn MSH, PID, OBR, OBX, NTE |
| Dấu phân cách | Thanh đứng, dấu gạch ngược, mũ, và dấu và | Thanh đứng, mũ, dấu ngã, gạch ngược, và |
| Phạm vi | Giữa máy phân tích và hệ thống phòng xét nghiệm | Mọi hệ thống trong bệnh viện |
| Độ gọn của bản tin | Gọn, ít trường | Nhiều trường, có nhiều trường tùy chọn |
| Mức "lệch chuẩn" giữa các hãng | Vừa phải | Cao hơn, phải đọc tài liệu từng hãng |
Mặt sau máy xét nghiệm: cổng nối tiếp cho kiểu kết nối ASTM đời cũ và cổng mạng cho HL7 hoặc ASTM qua TCP/IP
Đường truyền: nối tiếp, TCP/IP và giao thức bắt tay
Đây là chỗ hai chuẩn khác nhau rõ nhất khi lắp đặt.
ASTM có giao thức tầng truyền riêng. Hai bên bắt tay bằng các ký tự điều khiển (ENQ để hỏi, ACK để đồng ý, EOT để kết thúc). Dữ liệu đi trong khung có ký tự bắt đầu STX, ký tự kết thúc ETX, số thứ tự khung và tổng kiểm tra (checksum). Nhờ vậy ASTM tự phát hiện khung hỏng và yêu cầu gửi lại ngay ở tầng truyền. Cách này sinh ra cho cổng nối tiếp RS-232, nhưng nhiều máy đời mới chạy cùng cơ chế đó qua TCP/IP.
HL7 v2 không tự lo phần truyền. Trên mạng, bản tin thường được bọc bằng giao thức MLLP: một byte mở khối (0x0B) ở đầu, hai byte đóng khối (0x1C rồi 0x0D) ở cuối. Bên nhận trả lại một bản tin xác nhận ACK, trong đó có mã báo nhận thành công hoặc lỗi. Nếu bản tin sai nội dung, lỗi nằm ở tầng ứng dụng chứ không bị bắt ở tầng truyền như ASTM.
Điều này dẫn tới một khác biệt vận hành. Với ASTM nối tiếp, sự cố hay gặp là cáp, cổng COM, tốc độ baud và bit dừng cấu hình lệch. Với HL7 qua mạng, sự cố hay gặp là địa chỉ IP, cổng, tường lửa, hoặc máy đóng kết nối sau mỗi bản tin trong khi LIS chờ kết nối giữ nguyên. Bạn có thể xem phần cấu hình cụ thể ở bài hướng dẫn kỹ thuật kết nối máy xét nghiệm HL7 ASTM.
Sai lầm thường gặp: coi "hỗ trợ TCP/IP" đồng nghĩa với "hỗ trợ HL7". Nhiều máy chạy ASTM qua cổng mạng, bản tin vẫn là H, P, O, R, L. Hỏi hãng máy rõ ba thứ: chuẩn bản tin, tầng truyền, và máy đóng vai máy chủ hay máy khách.
Chỉ định và kết quả: luồng hai chiều khác nhau thế nào
Một kết nối hai chiều gồm hai việc. LIS gửi chỉ định xuống máy để máy biết chạy gì cho ống máu nào. Máy trả kết quả lên LIS.
Với ASTM, có hai kiểu gửi chỉ định:
- Máy hỏi LIS (query): kỹ thuật viên đặt ống máu có mã vạch vào máy, máy đọc mã và gửi truy vấn hỏi LIS "mã này cần chạy gì". LIS trả danh sách xét nghiệm.
- LIS đẩy chỉ định (download): LIS gửi sẵn chỉ định xuống máy trước khi ống máu tới.
Kiểu hỏi theo mã vạch (host query) rất phổ biến với ASTM, và nó hợp với phòng xét nghiệm có lưu lượng mẫu lớn, vì chỉ định luôn mới nhất tại thời điểm máy đọc mã.
HL7 v2 cũng làm được cả hai kiểu, nhưng bộ bản tin nhiều biến thể hơn: có hãng dùng ORM^O01, có hãng dùng OML^O21, có hãng dùng bản tin truy vấn riêng. Tài liệu giao tiếp của hãng máy là thứ duy nhất cho bạn biết hãng đó chọn biến thể nào.
Phía trả kết quả thì hai chuẩn giống nhau về ý tưởng. Mỗi kết quả là một bản ghi R hoặc một đoạn OBX, gồm mã xét nghiệm, giá trị, đơn vị, khoảng tham chiếu, cờ bất thường (cao, thấp, nguy kịch) và thời điểm có kết quả. Sau đó LIS ánh xạ mã máy sang mã của danh mục xét nghiệm bệnh viện. Đây là chỗ hỏng nhiều nhất bất kể chuẩn nào.
Máy đọc mã vạch ống máu rồi hỏi hệ thống: khâu đầu của luồng chỉ định hai chiều
Ưu và nhược điểm thực tế của từng chuẩn
Phần so sánh HL7 và ASTM ở các mục trên, gói lại thành danh sách để dễ đối chiếu với tài liệu hãng máy.
ASTM, điểm mạnh:
- Bản tin gọn, dễ đọc khi bắt gói, dễ dò lỗi.
- Tầng truyền tự kiểm lỗi bằng checksum.
- Rất nhiều máy sinh hóa, huyết học, miễn dịch đời cũ đến đời giữa chỉ có chuẩn này.
ASTM, điểm yếu:
- Gắn với mô hình một máy một cổng, mở rộng sang liên thông nhiều hệ thống thì kém tự nhiên.
- Giám sát trạng thái kết nối khó hơn nếu đi bằng cổng nối tiếp thuần túy.
- Cấu hình cổng COM trên máy chủ LIS dễ lỗi khi có nhiều máy.
HL7 v2, điểm mạnh:
- Cùng một ngôn ngữ cho phòng xét nghiệm và các hệ thống khác trong bệnh viện, nên đội IT chỉ cần nắm một họ chuẩn.
- Đi qua mạng, dễ đặt bộ giao tiếp tập trung, dễ giám sát, dễ ghi nhật ký.
- Có chỗ cho nhiều loại dữ liệu hơn: kết quả định lượng, định tính, kết quả dạng văn bản dài.
HL7 v2, điểm yếu:
- Cùng là HL7 nhưng mỗi hãng một cách điền trường. Đọc tài liệu và kiểm thử trên máy thật là bắt buộc.
- Nhiều trường tùy chọn nên dễ lệch giữa phía gửi và phía nhận.
- Lỗi nội dung chỉ lộ ra ở tầng ứng dụng, đôi khi sau khi kết quả đã vào hệ thống.
Chọn chuẩn nào theo từng tình huống
Kết quả so sánh HL7 và ASTM không có chuẩn "thắng tuyệt đối". Bảng dưới là cách chọn thực dụng tôi thấy áp dụng được trong các lần khảo sát phòng xét nghiệm.
| Tình huống | Hướng nên chọn | Lý do |
|---|---|---|
| Máy sinh hóa đời cũ, chỉ có cổng RS-232 | ASTM qua bộ chuyển đổi cổng nối tiếp sang mạng | Máy không có lựa chọn khác, bộ chuyển đổi giúp bỏ cáp COM dài về máy chủ |
| Máy huyết học, miễn dịch đời mới có cả hai | HL7 qua mạng nếu hãng có tài liệu rõ, ASTM nếu LIS đã kiểm thử sẵn dòng máy đó | Chọn đường đã chạy thật ở nơi khác thì rủi ro thấp hơn |
| Bệnh viện nhiều máy từ nhiều hãng | LIS hỗ trợ cả hai, gom qua một bộ giao tiếp trung tâm | Tránh mỗi máy một cách kết nối riêng |
| Cần liên thông chung với HIS và hệ thống khác | HL7 ở tầng liên thông | Cùng ngôn ngữ với các luồng còn lại |
| Phòng khám nhỏ, vài máy bán tự động | Theo khả năng thực tế của máy, đôi khi chỉ đọc file xuất | Không phải máy nào cũng có giao tiếp hai chiều |
Quy tắc đơn giản: chuẩn tốt nhất là chuẩn mà hãng máy đã triển khai ổn định trên đúng model đó và LIS của bạn đã kiểm thử. Một chuẩn "hiện đại" nhưng chưa ai chạy thử trên model của bạn là rủi ro, không phải lợi thế. Với những bệnh viện cần gửi kết quả xét nghiệm sang luồng viện phí, hãy xem thêm cách HL7 truyền kết quả xét nghiệm sang viện phí.
Kiểm thử trên máy thật bằng mẫu đã biết kết quả trước khi đưa kết nối vào chạy
Kiểm thử trước khi chốt: bốn phép thử không nên bỏ
Dù chọn chuẩn nào, phần việc quyết định chất lượng là kiểm thử. Một quy trình gọn cho cả hai chuẩn:
- Gửi chỉ định thử: tạo ống mẫu có mã vạch, kiểm tra máy nhận đúng danh sách xét nghiệm, đúng thứ tự.
- Chạy mẫu kiểm chứng: chạy mẫu có giá trị đã biết, so kết quả trên màn hình máy với kết quả hiển thị trong LIS, từng ký số thập phân và đơn vị.
- Thử trường hợp lệch: mã xét nghiệm lạ, ký tự tiếng Việt có dấu trong tên người bệnh, kết quả vượt ngưỡng, kết quả dạng chữ ("Dương tính", "Âm tính").
- Cắt kết nối rồi nối lại: rút cáp hoặc tắt dịch vụ giao tiếp, xem máy có giữ kết quả chờ và gửi bù đủ khi nối lại không.
Phép thử thứ ba hay lộ lỗi nhất. Mã hóa ký tự và dấu phân cách nằm lẫn trong tên hoặc ghi chú là nguyên nhân quen thuộc của bản tin "chạy được hôm qua, hỏng hôm nay".
Điều cần hỏi nhà cung cấp LIS trước khi ký
Một LIS tốt cho phòng xét nghiệm không buộc bạn chọn chuẩn. Nó giữ sẵn bộ giao tiếp cho cả hai và tách phần "đọc bản tin của hãng máy" khỏi phần nghiệp vụ. Hỏi nhà cung cấp:
- Danh sách model máy đã kết nối thật, bằng chuẩn nào, chạy ở bao nhiêu cơ sở.
- Ai chịu trách nhiệm viết bộ giao tiếp khi gặp model chưa có sẵn, mất bao lâu, tính phí ra sao.
- Có nhật ký bản tin gốc để dò lỗi không, giữ bao lâu.
- Cảnh báo khi mất kết nối hiển thị ở đâu, ai nhận.
- Khi máy đổi từ ASTM sang HL7, phần ánh xạ mã có phải làm lại từ đầu không.
Nếu bạn đang chuẩn bị khảo sát, nên đọc trước bài hệ thống LIS là gì và vận hành thế nào, rồi xem phân hệ cận lâm sàng trong HIS để biết kết quả từ máy đi tiếp vào bệnh án ra sao.
Phòng xét nghiệm của bạn có máy từ nhiều hãng, lúc ASTM lúc HL7? Đội kỹ thuật MyHospital có thể khảo sát từng model và đề xuất phương án kết nối trong phần mềm quản lý bệnh viện, để kết quả về thẳng hồ sơ người bệnh mà không cần nhập tay.