Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide
0.9.0 - Draft for Community Review
Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide - Local Development build (v0.9.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| URL chính thức: http://fhir.hl7.org.vn/core/StructureMap/vn-sm-bhyt-xml13-referral | Phiên bản: 0.9.0 | ||||
| Computable Name: BHYTXML13ReferralLMStructureMap | |||||
| Định danh khác: OID:2.25.161089673617632664299011809196868855799.43.5 | |||||
Generated StructureMap scaffold for Bảng 13 giấy chuyển tuyến/chuyển cơ sở KCB BHYT — XML13 Referral Logical Model. Source semantics come from the logical model mapping annotations in BHYTXML13ReferralLM.fsh and remain aligned with the Python BHYT round-trip export adapter.
Language: vi
map "http://fhir.hl7.org.vn/core/StructureMap/vn-sm-bhyt-xml13-referral" = "BHYTXML13ReferralLMStructureMap" // Generated StructureMap scaffold for Bảng 13 giấy chuyển tuyến/chuyển cơ sở KCB BHYT — XML13 Referral Logical Model. Source semantics come from the logical model mapping annotations in `BHYTXML13ReferralLM.fsh` and remain aligned with the Python BHYT round-trip export adapter. // FHIR-native source bundle profile used by the repository round-trip adapter. uses "http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-bhyt-submission-bundle" alias BHYTSubmissionBundle as source // Bảng 13 giấy chuyển tuyến/chuyển cơ sở KCB BHYT — XML13 Referral Logical Model uses "http://fhir.hl7.org.vn/core/StructureDefinition/bhytXml13ReferralLm" alias BHYTXML13ReferralLM as target // Rows derive from the referral ServiceRequest/DocumentReference (giấy chuyển tuyến/chuyển cơ sở KBCB), the linked Encounter, Patient/Coverage identity data, diagnosis Conditions and the signing Practitioner. Generated from logical-model `^mapping` annotations. Fields still missing a field-level `^mapping.map` entry remain outside this StructureMap and are tracked in `wiki/mappings/bhyt-output-data/machine/structuremap-coverage.json`. group MapBHYTXML13ReferralLM(source sourceBundle : BHYTSubmissionBundle, target targetRow : BHYTXML13ReferralLM) { // Target field: MA_LK - Mã liên kết hồ sơ, PRIMARY KEY liên kết Bảng 1 và các bảng khác trong một lần KCB FHIR path: VNCoreClaim.identifier[MALK].value sourceBundle.entry 0..* as maLkSource -> targetRow.maLk "maLk"; // Target field: SO_HOSO - Số hồ sơ giấy chuyển tuyến/chuyển cơ sở KBCB BHYT do cơ sở KBCB quy định FHIR path: VNCoreServiceRequest.identifier.value | future referral soHoSo identifier slice sourceBundle.entry 0..* as soHoSoSource -> targetRow.soHoSo "soHoSo"; // Target field: SO_CHUYENTUYEN - Số của sổ chuyển tuyến/chuyển cơ sở KBCB FHIR path: VNCoreServiceRequest.identifier.value | future referral soChuyenTuyen identifier slice sourceBundle.entry 0..* as soChuyenTuyenSource -> targetRow.soChuyenTuyen "soChuyenTuyen"; // Target field: GIAY_CHUYEN_TUYEN - Số giấy chuyển tuyến/chuyển cơ sở KBCB do cơ sở KBCB cấp FHIR path: VNCoreServiceRequest.identifier.value | VNCoreDocumentReference.identifier.value sourceBundle.entry 0..* as giayChuyenTuyenSource -> targetRow.giayChuyenTuyen "giayChuyenTuyen"; // Target field: MA_CSKCB - Mã cơ sở KBCB nơi cấp giấy chuyển tuyến/chuyển cơ sở KBCB FHIR path: VNCoreServiceRequest.requester.resolve().identifier[CSKCB].value | VNCoreOrganization.identifier[CSKCB].value sourceBundle.entry 0..* as maCskcbSource -> targetRow.maCskcb "maCskcb"; // Target field: MA_CSKCB_DI - Mã CSKCB nơi người bệnh chuyển đi (đổi tên từ MA_NOI_DI); nhiều cơ sở thì ghi lần lượt, cách nhau dấu chấm phẩy (;) FHIR path: VNCoreEncounter.hospitalization.origin.resolve().identifier[CSKCB].value | future ServiceRequest nơi-chuyển-đi extension Mapping note: QĐ 3176/QĐ-BYT đổi tên MA_NOI_DI thành MA_CSKCB_DI, tăng kích thước tối đa lên 100 ký tự; hỗ trợ multi-value ngăn cách bằng dấu chấm phẩy (;) khi người bệnh chuyển từ nhiều cơ sở. sourceBundle.entry 0..* as maCskcbDiSource -> targetRow.maCskcbDi "maCskcbDi"; // Target field: MA_CSKCB_DEN - Mã CSKCB nơi người bệnh được chuyển đến (đổi tên từ MA_NOI_DEN) FHIR path: VNCoreEncounter.hospitalization.destination.resolve().identifier[CSKCB].value | VNCoreServiceRequest.performer.resolve().identifier[CSKCB].value sourceBundle.entry 0..* as maCskcbDenSource -> targetRow.maCskcbDen "maCskcbDen"; // Target field: HO_TEN - Họ và tên người bệnh được chuyển tuyến/chuyển cơ sở KBCB FHIR path: VNCorePatient.name.text sourceBundle.entry 0..* as hoTenSource -> targetRow.hoTen "hoTen"; // Target field: NGAY_SINH - Ngày sinh (ghi theo trường NGAY_SINH Bảng 1) FHIR path: VNCorePatient.birthDate sourceBundle.entry 0..* as ngaySinhSource -> targetRow.ngaySinh "ngaySinh"; // Target field: GIOI_TINH - Giới tính (ghi theo trường GIOI_TINH Bảng 1) FHIR path: VNCorePatient.gender sourceBundle.entry 0..* as gioiTinhSource -> targetRow.gioiTinh "gioiTinh"; // Target field: MA_QUOCTICH - Mã quốc tịch (ghi theo trường MA_QUOCTICH Bảng 1) FHIR path: VNCorePatient.extension[citizenship].valueCodeableConcept.coding.code sourceBundle.entry 0..* as maQuocTichSource -> targetRow.maQuocTich "maQuocTich"; // Target field: MA_DANTOC - Mã dân tộc (ghi theo trường MA_DANTOC Bảng 1) FHIR path: VNCorePatient.extension[ethnicity].valueCodeableConcept.coding.code sourceBundle.entry 0..* as maDanTocSource -> targetRow.maDanToc "maDanToc"; // Target field: MA_NGHE_NGHIEP - Mã nghề nghiệp (ghi theo trường MA_NGHE_NGHIEP Bảng 1) FHIR path: VNCorePatient.extension[occupation].valueCodeableConcept.coding.code sourceBundle.entry 0..* as maNgheNghiepSource -> targetRow.maNgheNghiep "maNgheNghiep"; // Target field: DIA_CHI - Địa chỉ (ghi theo trường DIA_CHI Bảng 1) FHIR path: VNCorePatient.address.text sourceBundle.entry 0..* as diaChiSource -> targetRow.diaChi "diaChi"; // Target field: MA_THE_BHYT - Mã thẻ BHYT (ghi theo trường MA_THE_BHYT Bảng 1) FHIR path: VNCoreCoverage.identifier[BHYT].value sourceBundle.entry 0..* as maTheBhytSource -> targetRow.maTheBhyt "maTheBhyt"; // Target field: GT_THE_DEN - Giá trị thẻ đến ngày (ghi theo trường GT_THE_DEN Bảng 1) FHIR path: VNCoreCoverage.period.end sourceBundle.entry 0..* as gtTheDenSource -> targetRow.gtTheDen "gtTheDen"; // Target field: NGAY_VAO - Ngày vào theo định dạng yyyyMMddHHmm (ghi theo trường NGAY_VAO Bảng 1) FHIR path: VNCoreEncounter.period.start | VNCoreClaim.created sourceBundle.entry 0..* as ngayVaoSource -> targetRow.ngayVao "ngayVao"; // Target field: NGAY_VAO_NOI_TRU - Ngày vào nội trú (ghi theo trường NGAY_VAO_NOI_TRU Bảng 1) FHIR path: VNCoreEncounter.hospitalization | future admission instant extension sourceBundle.entry 0..* as ngayVaoNoiTruSource -> targetRow.ngayVaoNoiTru "ngayVaoNoiTru"; // Target field: NGAY_RA - Ngày ra theo định dạng yyyyMMddHHmm (ghi theo trường NGAY_RA Bảng 1) FHIR path: VNCoreEncounter.period.end | VNCoreClaim.created sourceBundle.entry 0..* as ngayRaSource -> targetRow.ngayRa "ngayRa"; // Target field: DAU_HIEU_LS - Các dấu hiệu lâm sàng của người bệnh khi chuyển tuyến/chuyển cơ sở KBCB FHIR path: VNCoreServiceRequest.reasonCode.text | VNCoreClinicalImpression.finding.itemCodeableConcept.text sourceBundle.entry 0..* as dauHieuLsSource -> targetRow.dauHieuLs "dauHieuLs"; // Target field: CHAN_DOAN_RV - Chẩn đoán ra viện (ghi theo trường CHAN_DOAN_RV Bảng 1) FHIR path: VNCoreCondition.code.text | VNCoreComposition.section[diagnosis].text sourceBundle.entry 0..* as chanDoanRvSource -> targetRow.chanDoanRv "chanDoanRv"; // Target field: QT-BENHLY - Quá trình bệnh lý và diễn biến lâm sàng (tên trường gốc dùng gạch ngang) FHIR path: VNCoreComposition.section[history].text sourceBundle.entry 0..* as qtBenhLySource -> targetRow.qtBenhLy "qtBenhLy"; // Target field: TOMTAT_KQ - Tóm tắt kết quả xét nghiệm, cận lâm sàng có giá trị chẩn đoán FHIR path: VNCoreDiagnosticReport.conclusion sourceBundle.entry 0..* as tomtatKqSource -> targetRow.tomtatKq "tomtatKq"; // Target field: PP_DIEUTRI - Phương pháp, thủ thuật, kỹ thuật, thuốc đã sử dụng trong điều trị FHIR path: VNCoreProcedure.code | VNCoreComposition.section[procedures].text Mapping note: QĐ 3176/QĐ-BYT sửa toàn bộ diễn giải: trước đây tham chiếu Bảng 1, nay diễn giải trực tiếp phương pháp/thủ thuật/kỹ thuật/thuốc đã dùng. sourceBundle.entry 0..* as ppDieuTriSource -> targetRow.ppDieuTri "ppDieuTri"; // Target field: MA_BENH_CHINH - Mã bệnh chính, ICD-10 VN (ghi theo trường MA_BENH_CHINH Bảng 1) FHIR path: VNCoreClaim.diagnosis.where(type='principal').diagnosisCodeableConcept | VNCoreCondition.code sourceBundle.entry 0..* as maBenhChinhSource -> targetRow.maBenhChinh "maBenhChinh"; // Target field: MA_BENH_KT - Mã bệnh kèm theo (ghi theo trường MA_BENH_KT Bảng 1, cho phép nhiều mã) FHIR path: VNCoreClaim.diagnosis.where(type!='principal').diagnosisCodeableConcept | VNCoreCondition.code sourceBundle.entry 0..* as maBenhKtSource -> targetRow.maBenhKt "maBenhKt"; // Target field: MA_BENH_YHCT - Mã bệnh y học cổ truyền (ghi theo trường MA_BENH_YHCT Bảng 1) FHIR path: VNCoreClaim.diagnosis.diagnosisCodeableConcept.coding.code | VNCoreConditionDiagnosis.code.coding[yhct].code sourceBundle.entry 0..* as maBenhYhctSource -> targetRow.maBenhYhct "maBenhYhct"; // Target field: TINH_TRANG_CT - Tình trạng người bệnh tại thời điểm chuyển tuyến/chuyển cơ sở KBCB (đổi tên từ PP_DIEU_TRI) FHIR path: VNCoreClinicalImpression.summary | future ServiceRequest tình-trạng-chuyển-tuyến extension Mapping note: QĐ 3176/QĐ-BYT đổi tên trường PP_DIEU_TRI thành TINH_TRANG_CT và thay đổi hoàn toàn diễn giải so với QĐ 4750/QĐ-BYT. sourceBundle.entry 0..* as tinhTrangCtSource -> targetRow.tinhTrangCt "tinhTrangCt"; // Target field: MA_LOAI_RV - Mã loại ra viện (ghi theo trường MA_LOAI_RV Bảng 1) FHIR path: VNCoreEncounter.hospitalization.dischargeDisposition Mapping note: Ghi chú cuối Bảng 13: chỉ trích chuyển Bảng này khi có chuyển tuyến/chuyển cơ sở KBCB và MA_LOAI_RV = 2 hoặc 5. sourceBundle.entry 0..* as maLoaiRvSource -> targetRow.maLoaiRv "maLoaiRv"; // Target field: MA_LYDO_CT - Mã lý do chuyển tuyến/chuyển cơ sở KBCB (1/2/3) FHIR path: VNCoreServiceRequest.reasonCode (binding VNCareTransferReasonVS — vn-care-transfer-reason-cs) | future mã-lý-do-chuyển-tuyến extension Mapping note: Mã hóa bằng CodeSystem vn-care-transfer-reason-cs (VNCareTransferReasonCS, QĐ 3176/QĐ-BYT Bảng 13 STT 32). Danh mục mã cố định: 1=đủ điều kiện & phù hợp quy định chuyển tuyến/chuyển cơ sở KBCB; 2=đủ điều kiện do không phù hợp khả năng đáp ứng của CSKCB; 3=theo yêu cầu người bệnh hoặc người đại diện hợp pháp. sourceBundle.entry 0..* as maLydoCtSource -> targetRow.maLydoCt "maLydoCt"; // Target field: HUONG_DIEU_TRI - Hướng điều trị sắp tới cho người bệnh FHIR path: VNCoreCarePlan.description | VNCoreServiceRequest.note sourceBundle.entry 0..* as huongDieuTriSource -> targetRow.huongDieuTri "huongDieuTri"; // Target field: PHUONGTIEN_VC - Phương tiện vận chuyển người bệnh khi chuyển tuyến/chuyển cơ sở KBCB FHIR path: VNCoreServiceRequest.note | future ServiceRequest phương-tiện-vận-chuyển extension sourceBundle.entry 0..* as phuongtienVcSource -> targetRow.phuongtienVc "phuongtienVc"; // Target field: HOTEN_NGUOI_HT - Họ và tên người hộ tống người bệnh (nếu có) FHIR path: VNCoreRelatedPerson.name.text Mapping note: Chỉ ghi nếu có người hộ tống. sourceBundle.entry 0..* as hotenNguoiHtSource -> targetRow.hotenNguoiHt "hotenNguoiHt"; // Target field: CHUCDANH_NGUOI_HT - Chức danh, trình độ chuyên môn người hộ tống (nếu có) FHIR path: VNCoreRelatedPerson.relationship.text | future người-hộ-tống chức-danh Mapping note: Chỉ ghi nếu có người hộ tống. sourceBundle.entry 0..* as chucdanhNguoiHtSource -> targetRow.chucdanhNguoiHt "chucdanhNguoiHt"; // Target field: MA_BACSI - Mã người hành nghề chỉ định chuyển tuyến/chuyển cơ sở KBCB (mã hóa theo số GPHN) FHIR path: VNCorePractitioner.identifier[GPHN].value Mapping note: QĐ 3176/QĐ-BYT đổi căn cứ mã hóa từ CCHN sang GPHN. Trường hợp huy động/điều động chống dịch, thiên tai: mã hóa MA_BAC_SI.HD.XXXXX (XXXXX = mã CSKCB cử người đi; nếu không đăng ký hành nghề thì XXXXX = 2 ký tự mã tỉnh nơi ra quyết định huy động + XXX). sourceBundle.entry 0..* as maBacsiSource -> targetRow.maBacsi "maBacsi"; // Target field: MA_TTDV - Mã người đứng đầu CSKCB (hoặc người được ủy quyền) ký giấy chuyển, ưu tiên GPHN FHIR path: VNCorePractitioner.identifier[GPHN].value | VNCorePractitioner.identifier[CCCD].value (fallback khi không có GPHN) Mapping note: QĐ 3176/QĐ-BYT ưu tiên mã hóa theo GPHN; nếu không có GPHN thì ghi số CCCD hoặc số định danh cá nhân của người ký. Đổi kiểu dữ liệu sang chuỗi, tăng kích thước tối đa 255 ký tự. sourceBundle.entry 0..* as maTtdvSource -> targetRow.maTtdv "maTtdv"; // Target field: DU_PHONG - Trường dự phòng; theo QĐ 3176/QĐ-BYT dùng để ghi dữ liệu chữ ký số của cơ sở KBCB FHIR path: VNCoreProvenance.signature.data | future chữ-ký-số dự-phòng sourceBundle.entry 0..* as duPhongSource -> targetRow.duPhong "duPhong"; }