5 Bài học từ việc Tích hợp EHR Xuyên biên giới
Tôi đã dành nhiều tháng để kết nối hồ sơ bệnh nhân giữa hai quốc gia khác nhau. Tôi đã làm việc với một Chuyên viên Phân tích Nghiệp vụ (Lead Business Analyst) có mười năm kinh nghiệm lâm sàng. Cách tiếp cận của cô ấy đã thay đổi cách tôi nhìn nhận về phần mềm y tế.
Dưới đây là năm bài học từ dự án đó.
- Ánh xạ thuật ngữ khó hơn ánh xạ dữ liệu
Các kỹ sư thường coi việc tích hợp là một vấn đề về lược đồ (schema). Bạn ánh xạ trường A sang trường B và coi như xong. Trong y tế, cách này sẽ thất bại.
Một hệ thống sử dụng ICD-10 và hệ thống kia sử dụng ICD-11. Chúng không thể ánh xạ một cách gọn gàng. Một hệ thống sử dụng LOINC cho các xét nghiệm trong khi hệ thống kia lại dùng các mã nội bộ cũ.
BA của chúng tôi đã xây dựng một bảng đối chiếu khái niệm (concept crosswalk) trước khi chúng tôi viết mã. Cô ấy đã ánh xạ các mã địa phương sang một bộ tiêu chuẩn như SNOMED CT. Nếu không có điều này, chúng tôi sẽ làm sai lệch ý nghĩa lâm sàng.
Ánh xạ trường bị lỗi tạo ra các giá trị sai. Ánh xạ thuật ngữ bị lỗi tạo ra các giá trị trông có vẻ hợp lý nhưng lại sai về mặt lâm sàng. Trường hợp sau nguy hiểm hơn nhiều.
- Luật dữ liệu định hình kiến trúc ngay từ đầu
Tôi từng nghĩ rằng chúng tôi sẽ thiết kế mô hình dữ liệu trước rồi mới xử lý việc tuân thủ sau. Tôi đã lầm.
Dữ liệu bệnh nhân khi vượt biên giới sẽ chạm đến nhiều bộ luật như HIPAA hoặc GDPR. Một số quốc gia cấm dữ liệu y tế rời khỏi biên giới của họ.
BA của chúng tôi đã làm việc với các đội ngũ pháp lý từ sớm. Cô ấy quyết định trường dữ liệu nào có thể sao chép và trường nào cần được ẩn danh (de-identification).
Điều này đã thay đổi kiến trúc của chúng tôi. Chúng tôi đã xây dựng một lớp truy vấn liên hợp (federated query layer) thay vì một cơ sở dữ liệu sao chép duy nhất. Chúng tôi đã thêm các thẻ phân loại dữ liệu trực tiếp vào lược đồ của mình.
Hãy mời các chuyên gia tuân thủ và một BA vào thảo luận trước khi bạn thiết kế mô hình dữ liệu.
- Các tiêu chuẩn là chưa đủ
Cả hai hệ thống đều hỗ trợ HL7. Tuy nhiên, một bên dùng HL7 v2 và bên kia dùng FHIR R4. Chúng không thể giao tiếp với nhau nếu không có một lớp chuyển đổi (translation layer).
Ngay cả trong FHIR, chúng tôi cũng gặp phải sự không khớp về hồ sơ (profile mismatches). Cả hai hệ thống đều tuyên bố tuân thủ nhưng lại sử dụng các hướng dẫn triển khai (implementation guides) khác nhau.
Đừng cho rằng việc tích hợp là dễ dàng chỉ vì một hệ thống có hỗ trợ tiêu chuẩn. Hãy luôn hỏi về phiên bản và hồ sơ cụ thể. Hãy dành ngân sách thời gian cho một lớp bộ chuyển đổi (adapter layer).
- Sơ đồ quy trình giúp phát hiện các trường hợp biên (edge cases) tiềm ẩn
Tôi từng coi sơ đồ quy trình chỉ là tài liệu bổ sung. Tôi đã lầm.
BA của chúng tôi đã lập bản đồ chi tiết việc chuyển viện của bệnh nhân. Cô ấy xem xét điều gì sẽ xảy ra khi một bệnh nhân chuyển viện giữa chừng quá trình điều trị hoặc khi kết quả xét nghiệm được gửi đến sau khi bệnh nhân đã xuất viện.
Đây không phải là các trường hợp hiếm gặp trong bệnh viện. Chúng xảy ra hàng ngày.
Những sơ đồ này đã thay đổi mô hình dữ liệu của chúng tôi. Chúng tôi đã thêm khái niệm "giai đoạn chăm sóc" (care episode) để theo dõi việc chăm sóc liên tục trên cả hai hệ thống.
- Xây dựng một bảng thuật ngữ chung ngay từ đầu
Các từ như encounter hay discharge có ý nghĩa khác nhau trong các hệ thống khác nhau. Chúng tôi đã lãng phí thời gian vì các nhóm hiểu các thuật ngữ theo những cách khác nhau.
BA của chúng tôi đã xây dựng một bảng thuật ngữ chung. Mọi bên liên quan đều xem xét và thống nhất các định nghĩa này. Chúng tôi đã tham chiếu tài liệu này trong mọi yêu cầu.
Hãy giả định rằng mọi thuật ngữ chuyên ngành đều có thể gây mơ hồ. Hãy định nghĩa nó trong một tài liệu mà cả hai bên cùng ký xác nhận.
Summary
Một BA giỏi không chỉ đơn thuần là viết ticket. Họ đóng vai trò là kiến trúc sư cho các ràng buộc pháp lý và ý nghĩa lâm sàng. Nếu bạn xây dựng phần mềm phức tạp, đừng coi vai trò này là một khoản chi phí phát sinh (overhead). Nó giúp ngăn chặn việc một thành công về mặt kỹ thuật trở thành một thất bại về mặt lâm sàng.
Optional learning community: https://t.me/GyaanSetuAi
