Bác sĩ vừa hoàn tất kê đơn, phần mềm báo "gửi thành công" - nhưng khi tra cứu trên Hệ thống Đơn thuốc Quốc gia lại không thấy đơn nào, hoặc API trả về một mã lỗi khó hiểu. Tình huống đơn thuốc điện tử không liên thông được này khiến cả bác sĩ lẫn cán bộ IT lúng túng, nhất là khi cơ sở đang đông người bệnh chờ lấy thuốc.
Việc liên thông là yêu cầu bắt buộc theo quy định về kết nối Hệ thống Đơn thuốc Quốc gia tại Thông tư 27/2021/TT-BYT. Tin tốt là phần lớn lỗi liên thông đơn thuốc quốc gia đều rơi vào 5 nhóm nguyên nhân có thể tự kiểm tra. Bài viết này cung cấp checklist chẩn đoán nhanh và hướng dẫn khắc phục từng bước.

Lỗi 1 - Mã thuốc không khớp danh mục Hệ thống Đơn thuốc Quốc gia
Đây là nguyên nhân chiếm tỷ lệ cao nhất theo phản hồi triển khai thực tế.
- Cơ chế: Hệ thống Đơn thuốc Quốc gia chỉ chấp nhận mã thuốc theo danh mục thuốc đã được duyệt. Khi mã nội bộ của cơ sở y tế khác với mã chuẩn của hệ thống, bản tin lỗi trả về thường là "Mã thuốc không tồn tại" hoặc "Drug code not found".
- Cách kiểm tra: Đối chiếu trường
<MaThuoc>trong dữ liệu XML/JSON gửi đi với danh mục thuốc trên cổng Hệ thống Đơn thuốc Quốc gia. Nếu mã không trùng, đó chính là nguyên nhân. - Cách sửa: Cập nhật bảng ánh xạ (mapping) mã thuốc trong cấu hình phần mềm HIS - gắn mã nội bộ với mã chuẩn quốc gia. Nếu thuốc chưa có trong danh mục quốc gia, liên hệ Cục Quản lý Dược để đề nghị bổ sung.
Lỗi 2 - Chứng thư số (chữ ký số) hết hạn hoặc chưa được cấu hình đúng
- Cơ chế: Theo Thông tư 27/2021/TT-BYT, mỗi đơn thuốc điện tử phải có chữ ký số của bác sĩ kê đơn. Khi token hết hạn hoặc driver không nhận, API trả về lỗi 403 hoặc SIGNATURE_INVALID.
- Cách kiểm tra: Mở phần mềm ký số (VNPT-CA, Viettel-CA, FPT-CA...), kiểm tra ngày hết hạn chứng thư; thử ký một tài liệu bất kỳ để xác nhận token còn hoạt động.
- Cách sửa: Gia hạn chứng thư số với nhà cung cấp; cài lại driver token nếu hệ điều hành không nhận; đảm bảo tài khoản bác sĩ trên hệ thống được liên kết đúng mã chứng thư mới.
Lưu ý quan trọng: Đặt lịch nhắc gia hạn chứng thư số trước 30 ngày (tùy nhà cung cấp, chu kỳ 1 năm hoặc 3 năm) để tránh gián đoạn kê đơn cho toàn bộ bác sĩ trong cơ sở. Một chứng thư hết hạn có thể khiến cả khoa ngừng kê đơn được trong nhiều giờ.
Lỗi 3 - Thiếu hoặc sai trường bắt buộc trong dữ liệu đơn thuốc
- Các trường bắt buộc theo schema: mã cơ sở y tế (OID), mã bác sĩ kê đơn, mã thẻ BHYT người bệnh (nếu khám BHYT), ngày kê đơn, tên thuốc, hàm lượng, đơn vị tính, số lần dùng/ngày, số ngày dùng. Chuẩn kết nối tham chiếu Thông tư 27/2021/TT-BYT và hướng dẫn kỹ thuật của Bộ Y tế.
- Nguyên nhân phổ biến: Phần mềm HIS chưa cập nhật schema mới sau khi hệ thống nâng cấp API; hoặc bác sĩ bỏ trống trường hiển thị "không bắt buộc" trên giao diện nhưng thực ra lại bắt buộc trong dữ liệu gửi đi.
- Cách kiểm tra: Bật log raw request trong phần mềm HIS; dùng Postman hoặc curl gọi API với payload thực; đọc response (thường là lỗi 422 Unprocessable Entity) để xác định trường nào thiếu hoặc sai định dạng.
- Cách sửa: Yêu cầu vendor HIS cập nhật phiên bản tương thích schema hiện hành; bổ sung kiểm tra (validation) ngay trên giao diện để bắt buộc nhập đủ trường trước khi gửi.
Lỗi 4 - Thông tin người bệnh không khớp hồ sơ BHYT hoặc CCCD
- Cơ chế: Hệ thống xác thực mã số BHYT hoặc CCCD của người bệnh qua cổng dữ liệu dân cư và cổng BHXH. Chênh lệch ngay cả 1 ký tự cũng dẫn đến từ chối toàn bộ đơn thuốc.
- Các dạng lỗi thường gặp: nhập sai số thẻ BHYT; họ tên có dấu khác với file BHXH (tên viết tắt, sai thứ tự chữ đệm); ngày sinh không khớp; mã CCCD chưa cập nhật sang CCCD 12 số.
- Cách sửa: Đối chiếu thẻ BHYT vật lý hoặc ứng dụng VssID của người bệnh; yêu cầu bộ phận tiếp đón kiểm tra kỹ thông tin định danh ngay khi làm thủ tục đăng ký khám - đặc biệt với người bệnh cao tuổi hoặc có họ tên đặc biệt. Sửa sớm ở khâu tiếp đón giúp tránh tắc nghẽn ở khâu kê đơn.
Lỗi 5 - Sự cố kỹ thuật: timeout, lỗi kết nối hoặc quá tải phía Hệ thống Đơn thuốc Quốc gia
- Cơ chế: Hệ thống đôi khi bảo trì theo lịch hoặc quá tải vào khung giờ cao điểm (đầu giờ sáng, sau kỳ nghỉ lễ dài). Phần mềm HIS không có cơ chế gửi lại (retry) sẽ ghi trạng thái "gửi thất bại" mà không nêu rõ nguyên nhân.
- Cách kiểm tra: Theo dõi thông báo bảo trì từ đơn vị quản lý hệ thống; kiểm tra log HIS xem HTTP status code (504 Gateway Timeout, 503 Service Unavailable); thử gọi thủ công đến endpoint API để xác nhận hệ thống còn hoạt động.
- Cách sửa: Cấu hình gửi lại tự động trong phần mềm HIS (khuyến nghị 3 lần, mỗi lần cách 30 giây); thiết lập hàng đợi (queue) lưu đơn chờ gửi lại khi hệ thống phục hồi; nếu sự cố kéo dài, liên hệ đơn vị quản lý Hệ thống Đơn thuốc Quốc gia kèm theo file log đầy đủ.
Bảng tóm tắt: Nhận diện nhanh 5 nhóm lỗi

| Nhóm lỗi | Dấu hiệu nhận biết (HTTP status / message) | Ai xử lý | Thời gian khắc phục ước tính |
|---|---|---|---|
| Mã thuốc sai | Drug code not found / 400 Bad Request | Dược sĩ + IT | 30 phút - 2 giờ |
| Chữ ký số hết hạn | 403 / SIGNATURE_INVALID | IT + bác sĩ (gia hạn CA) | 1 - 3 ngày làm việc |
| Thiếu trường bắt buộc | 422 Unprocessable Entity / field required | IT + vendor HIS | Vài giờ đến 1 ngày |
| Thông tin người bệnh sai | Patient not found / identity mismatch | Bộ phận tiếp đón + IT | 15 - 30 phút |
| Timeout / sự cố hệ thống | 504 / 503 / connection timeout | IT (chờ + gửi lại) | Phụ thuộc lịch bảo trì hệ thống |
Quy trình kiểm tra 3 bước trước khi gọi hỗ trợ kỹ thuật

- Đọc mã lỗi và nội dung response. Ghi lại HTTP status code và toàn bộ nội dung JSON/XML error trả về. Đây là dữ liệu quan trọng nhất để khoanh vùng nguyên nhân, đồng thời là bằng chứng cần thiết khi liên hệ hỗ trợ.
- Đối chiếu với checklist 5 nhóm lỗi. So sánh mã lỗi với bảng tóm tắt phía trên để xác định đúng nhóm. Mỗi nhóm có người xử lý và thời gian khắc phục khác nhau - xác định đúng nhóm giúp tiết kiệm thời gian đáng kể.
- Nếu chưa tự xử lý được - xuất log đầy đủ rồi mới liên hệ. Xuất file log HIS (bao gồm raw request và response) gửi cho vendor phần mềm hoặc đơn vị quản lý hệ thống. Liên hệ kèm log đầy đủ giúp rút ngắn thời gian chẩn đoán từ phía hỗ trợ kỹ thuật.
Phòng bệnh hơn chữa bệnh: chọn phần mềm cảnh báo lỗi sớm
Trong hầu hết trường hợp, đơn thuốc điện tử không liên thông được đều thuộc 1 trong 5 nhóm lỗi có thể tự kiểm tra và xử lý. Nhưng cách tốt nhất là không để bác sĩ gửi đơn xong mới biết thất bại.
Một phần mềm HIS được thiết kế tốt sẽ tích hợp sẵn cơ chế đối chiếu mã thuốc, kiểm tra chứng thư số, validate trường bắt buộc và hiển thị trạng thái ACK ngay trong luồng kê đơn - cảnh báo sự cố trước khi nó ảnh hưởng đến người bệnh đang chờ lấy thuốc.