Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam
0.8.0 - Draft for Community Review
Bộ Hướng dẫn Triển khai Core FHIR cho Việt Nam - Draft for Community Review (v0.8.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-xml7-discharge-paper | Phiên bản: 0.8.0 | ||||
| Computable Name: BHYTXML7DischargePaperLMStructureMap | |||||
| Định danh khác: OID:2.25.161089673617632664299011809196868855799.43.10 | |||||
Generated StructureMap scaffold for Bảng 7 giấy ra viện — XML7 Discharge Paper Logical Model. Source semantics come from the logical model mapping annotations in BHYTXML7DischargePaperLM.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-xml7-discharge-paper" = "BHYTXML7DischargePaperLMStructureMap" // Generated StructureMap scaffold for Bảng 7 giấy ra viện — XML7 Discharge Paper Logical Model. Source semantics come from the logical model mapping annotations in `BHYTXML7DischargePaperLM.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 7 giấy ra viện — XML7 Discharge Paper Logical Model uses "http://fhir.hl7.org.vn/core/StructureDefinition/bhytXml7DischargePaperLm" alias BHYTXML7DischargePaperLM as target // Rows are derived from discharge Composition/DocumentReference, the linked Encounter, Condition, Practitioner and guardian/temporary card data. 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 MapBHYTXML7DischargePaperLM(source sourceBundle : BHYTSubmissionBundle, target targetRow : BHYTXML7DischargePaperLM) { // Target field: MA_LK - Mã liên kết hồ sơ FHIR path: VNCoreClaim.identifier[MALK].value sourceBundle.entry 0..* as maLkSource -> targetRow.maLk "maLk"; // Target field: SO_LUU_TRU - Số lưu trữ/số hồ sơ bệnh án FHIR path: VNCoreComposition.identifier.value | VNCoreDocumentReference.identifier.value sourceBundle.entry 0..* as soLuuTruSource -> targetRow.soLuuTru "soLuuTru"; // Target field: MA_YTE - Mã y tế/mã người bệnh FHIR path: VNCorePatient.identifier[MRN].value sourceBundle.entry 0..* as maYteSource -> targetRow.maYte "maYte"; // Target field: MA_KHOA_RV - Mã khoa ra viện/tổng kết FHIR path: VNCoreEncounter.location.location.resolve().identifier.value | VNCoreOrganizationDepartment.identifier.value sourceBundle.entry 0..* as maKhoaRvSource -> targetRow.maKhoaRv "maKhoaRv"; // Target field: NGAY_VAO - Ngày vào viện FHIR path: VNCoreEncounter.period.start sourceBundle.entry 0..* as ngayVaoSource -> targetRow.ngayVao "ngayVao"; // Target field: NGAY_RA - Ngày ra viện FHIR path: VNCoreEncounter.period.end | VNCoreComposition.date sourceBundle.entry 0..* as ngayRaSource -> targetRow.ngayRa "ngayRa"; // Target field: MA_DINH_CHI_THAI - Mã đình chỉ thai FHIR path: VNCoreProcedure.code | VNCoreCondition.code Mapping note: MA_DINH_CHI_THAI='1' (đình chỉ thai nghén) tương ứng với sự tồn tại một VNCoreProcedure đình chỉ thai nghén (termination of pregnancy); '0' là không đình chỉ. Chưa có slice/mã cố định cho thủ thuật đình chỉ thai nên dùng Procedure.code; quan hệ điều kiện với 3 trường chi tiết theo invariant bhyt-xml7-abortion-fields-required (nhất quán nhóm đình chỉ thai với BHYTXML11SickLeaveLM). sourceBundle.entry 0..* as maDinhChiThaiSource -> targetRow.maDinhChiThai "maDinhChiThai"; // Target field: NGUYENNHAN_DINHCHI - Nguyên nhân đình chỉ thai FHIR path: VNCoreProcedure.reasonCode.text | VNCoreProcedure.reasonReference.resolve().code | VNCoreCondition.code Mapping note: Nguyên nhân đình chỉ thai nghén — ghi dạng text hoặc mã ICD-10 chẩn đoán liên quan (VNCoreCondition); trường hợp bất thường/bệnh lý thai nhi tham chiếu danh mục VNFetalSexDisclosureDiseaseVS (căn cứ TT 11/2026/TT-BYT). Bắt buộc khi MA_DINH_CHI_THAI='1' (invariant bhyt-xml7-abortion-fields-required). sourceBundle.entry 0..* as nguyenNhanDinhChiSource -> targetRow.nguyenNhanDinhChi "nguyenNhanDinhChi"; // Target field: THOIGIAN_DINHCHI - Thời gian đình chỉ thai FHIR path: VNCoreProcedure.performedDateTime Mapping note: Thời điểm thực hiện đình chỉ thai nghén (định dạng yyyymmddHHMM). Bắt buộc khi MA_DINH_CHI_THAI='1' (invariant bhyt-xml7-abortion-fields-required). sourceBundle.entry 0..* as thoiGianDinhChiSource -> targetRow.thoiGianDinhChi "thoiGianDinhChi"; // Target field: TUOI_THAI - Tuổi thai FHIR path: VNCoreProcedure | future tuổi-thai gestational-age extension Mapping note: Tuần tuổi thai thực tế (1–42 tuần) tại thời điểm đình chỉ. FHIR base không có phần tử tuổi thai trên Procedure nên đích mã hoá qua extension gestational-age để future (hoặc Observation LOINC 18185-9). Bắt buộc khi MA_DINH_CHI_THAI='1' (invariant bhyt-xml7-abortion-fields-required). sourceBundle.entry 0..* as tuoiThaiSource -> targetRow.tuoiThai "tuoiThai"; // Target field: CHAN_DOAN_RV - Chẩn đoán ra viện FHIR path: VNCoreComposition.section[diagnosis].entry.resolve().code | VNCoreCondition.code | section.text sourceBundle.entry 0..* as chanDoanRvSource -> targetRow.chanDoanRv "chanDoanRv"; // Target field: PP_DIEUTRI - Phương pháp điều trị (nội khoa, ngoại khoa, xạ trị, hoá trị hoặc kết hợp) FHIR path: VNCoreComposition.section[dischargeSummary].text | VNCoreProcedure.category | future phương-pháp-điều-trị extension Mapping note: Ghi phương pháp điều trị (nội khoa, ngoại khoa, xạ trị, hoá trị hoặc xạ trị kết hợp nội khoa) theo hướng dẫn TT 18/2022/TT-BYT. QĐ 4750/QĐ-BYT (trong chuẩn QĐ 3176/QĐ-BYT) sửa đổi toàn bộ diễn giải và tăng kích thước tối đa lên n ký tự. Chưa có code system phương pháp điều trị riêng nên đích mã hoá tạm để future extension. sourceBundle.entry 0..* as ppDieuTriSource -> targetRow.ppDieuTri "ppDieuTri"; // Target field: GHI_CHU - Ghi chú FHIR path: VNCoreDocumentReference.description | VNCoreComposition.section.text sourceBundle.entry 0..* as ghiChuSource -> targetRow.ghiChu "ghiChu"; // Target field: MA_TTDV - Mã thủ trưởng đơn vị/người ký FHIR path: VNCoreComposition.attester.party.resolve().identifier.value | VNCoreDocumentReference.authenticator.resolve().identifier.value sourceBundle.entry 0..* as maTtdvSource -> targetRow.maTtdv "maTtdv"; // Target field: MA_BS - Mã bác sĩ FHIR path: VNCoreComposition.author.resolve().identifier.value | VNCorePractitioner.identifier.value sourceBundle.entry 0..* as maBsSource -> targetRow.maBs "maBs"; // Target field: TEN_BS - Tên bác sĩ FHIR path: VNCoreComposition.author.display | VNCorePractitioner.name.text sourceBundle.entry 0..* as tenBsSource -> targetRow.tenBs "tenBs"; // Target field: NGAY_CT - Ngày cấp chứng từ FHIR path: VNCoreDocumentReference.date | VNCoreComposition.date sourceBundle.entry 0..* as ngayCtSource -> targetRow.ngayCt "ngayCt"; // Target field: MA_CHA - Mã cha FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='FTH').identifier[CCCD].value | VNCorePatient.contact.where(relationship.coding.code='FTH').name sourceBundle.entry 0..* as maChaSource -> targetRow.maCha "maCha"; // Target field: MA_ME - Mã mẹ FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='MTH').identifier[CCCD].value | VNCorePatient.contact.where(relationship.coding.code='MTH').name sourceBundle.entry 0..* as maMeSource -> targetRow.maMe "maMe"; // Target field: MA_THE_TAM - Mã thẻ tạm FHIR path: VNCoreCoverage.identifier.value Mapping note: Temporary card identifiers are kept as Coverage.identifier until a dedicated temporary-card slice is profiled. sourceBundle.entry 0..* as maTheTamSource -> targetRow.maTheTam "maTheTam"; // Target field: HO_TEN_CHA - Họ tên cha FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='FTH').name.text | VNCorePatient.contact.where(relationship.coding.code='FTH').name.text sourceBundle.entry 0..* as hoTenChaSource -> targetRow.hoTenCha "hoTenCha"; // Target field: HO_TEN_ME - Họ tên mẹ FHIR path: VNCoreRelatedPerson.where(relationship.coding.code='MTH').name.text | VNCorePatient.contact.where(relationship.coding.code='MTH').name.text sourceBundle.entry 0..* as hoTenMeSource -> targetRow.hoTenMe "hoTenMe"; // Target field: SO_NGAY_NGHI - Số ngày nghỉ FHIR path: Derived from VNCoreDocumentReference.context.period | VNCoreComposition.event.period sourceBundle.entry 0..* as soNgayNghiSource -> targetRow.soNgayNghi "soNgayNghi"; // Target field: NGOAITRU_TUNGAY - Ngoại trú từ ngày FHIR path: VNCoreDocumentReference.context.period.start | VNCoreComposition.event.period.start sourceBundle.entry 0..* as ngoaiTruTuNgaySource -> targetRow.ngoaiTruTuNgay "ngoaiTruTuNgay"; // Target field: NGOAITRU_DENNGAY - Ngoại trú đến ngày FHIR path: VNCoreDocumentReference.context.period.end | VNCoreComposition.event.period.end sourceBundle.entry 0..* as ngoaiTruDenNgaySource -> targetRow.ngoaiTruDenNgay "ngoaiTruDenNgay"; }