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-xml9-birth-certificate | Phiên bản: 0.8.0 | ||||
| Computable Name: BHYTXML9BirthCertificateLMStructureMap | |||||
| Định danh khác: OID:2.25.161089673617632664299011809196868855799.43.12 | |||||
Generated StructureMap scaffold for Bảng 9 giấy chứng sinh — XML9 Birth Certificate Logical Model. Source semantics come from the logical model mapping annotations in BHYTXML9BirthCertificateLM.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-xml9-birth-certificate" = "BHYTXML9BirthCertificateLMStructureMap" // Generated StructureMap scaffold for Bảng 9 giấy chứng sinh — XML9 Birth Certificate Logical Model. Source semantics come from the logical model mapping annotations in `BHYTXML9BirthCertificateLM.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 9 giấy chứng sinh — XML9 Birth Certificate Logical Model uses "http://fhir.hl7.org.vn/core/StructureDefinition/bhytXml9BirthCertificateLm" alias BHYTXML9BirthCertificateLM as target // Rows are derived from birth-certificate DocumentReference/Composition, newborn Patient, mother/caregiver RelatedPerson and certifying 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 MapBHYTXML9BirthCertificateLM(source sourceBundle : BHYTSubmissionBundle, target targetRow : BHYTXML9BirthCertificateLM) { // 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: MA_BHXH_NND - Mã BHXH người nuôi dưỡng FHIR path: VNCoreRelatedPerson.identifier[BHXH].value | VNCorePatient.contact.identifier.value sourceBundle.entry 0..* as maBhxhNndSource -> targetRow.maBhxhNnd "maBhxhNnd"; // Target field: MA_THE_NND - Mã thẻ người nuôi dưỡng FHIR path: VNCoreCoverage.subscriber.resolve().identifier[BHYT].value | VNCoreRelatedPerson.identifier.value sourceBundle.entry 0..* as maTheNndSource -> targetRow.maTheNnd "maTheNnd"; // Target field: HO_TEN_NND - Họ tên người nuôi dưỡng FHIR path: VNCoreRelatedPerson.name.text | VNCorePatient.contact.name.text sourceBundle.entry 0..* as hoTenNndSource -> targetRow.hoTenNnd "hoTenNnd"; // Target field: NGAYSINH_NND - Ngày sinh người nuôi dưỡng FHIR path: VNCoreRelatedPerson.birthDate sourceBundle.entry 0..* as ngaySinhNndSource -> targetRow.ngaySinhNnd "ngaySinhNnd"; // Target field: MA_DANTOC_NND - Mã dân tộc người nuôi dưỡng FHIR path: VNCoreRelatedPerson.extension[ethnicity].valueCodeableConcept.coding.code | VNCorePatient.contact.extension[ethnicity].valueCodeableConcept.coding.code sourceBundle.entry 0..* as maDanTocNndSource -> targetRow.maDanTocNnd "maDanTocNnd"; // Target field: SO_CCCD_NND - Số CCCD/định danh cá nhân (hoặc số hộ chiếu nếu là người nước ngoài) của người nuôi dưỡng FHIR path: VNCoreRelatedPerson.identifier[CCCD].value | VNCoreRelatedPerson.identifier[HC].value Mapping note: Ghi số căn cước công dân hoặc số định danh cá nhân trên thẻ căn cước của mẹ hoặc người nuôi dưỡng; trường hợp người nuôi dưỡng là người nước ngoài thì ghi số hộ chiếu (slice identifier[HC]). Diễn giải sửa đổi toàn bộ, đổi kiểu dữ liệu sang chuỗi và kích thước tối đa n ký tự theo QĐ 3176/QĐ-BYT (kế thừa QĐ 130/QĐ-BYT, sửa đổi bởi QĐ 4750/QĐ-BYT). sourceBundle.entry 0..* as soCccdNndSource -> targetRow.soCccdNnd "soCccdNnd"; // Target field: NGAYCAP_CCCD_NND - Ngày cấp CCCD người nuôi dưỡng FHIR path: VNCoreRelatedPerson.identifier[CCCD].period.start sourceBundle.entry 0..* as ngayCapCccdNndSource -> targetRow.ngayCapCccdNnd "ngayCapCccdNnd"; // Target field: NOICAP_CCCD_NND - Nơi cấp CCCD người nuôi dưỡng FHIR path: VNCoreRelatedPerson.identifier[CCCD].assigner.display sourceBundle.entry 0..* as noiCapCccdNndSource -> targetRow.noiCapCccdNnd "noiCapCccdNnd"; // Target field: NOI_CU_TRU_NND - Nơi cư trú người nuôi dưỡng FHIR path: VNCoreRelatedPerson.address.text | VNCorePatient.contact.address.text sourceBundle.entry 0..* as noiCuTruNndSource -> targetRow.noiCuTruNnd "noiCuTruNnd"; // Target field: MA_QUOCTICH - Mã quốc tịch FHIR path: VNCorePatient.extension[citizenship].extension[code].valueCodeableConcept.coding.code sourceBundle.entry 0..* as maQuocTichSource -> targetRow.maQuocTich "maQuocTich"; // Target field: MATINH_CU_TRU - Mã tỉnh cư trú FHIR path: VNCoreRelatedPerson.address.extension[province].valueCoding.code | VNCorePatient.address.extension[province].valueCoding.code sourceBundle.entry 0..* as maTinhCuTruSource -> targetRow.maTinhCuTru "maTinhCuTru"; // Target field: MAHUYEN_CU_TRU - Mã huyện cư trú legacy FHIR path: VNCoreRelatedPerson.address.district | VNCorePatient.address.district sourceBundle.entry 0..* as maHuyenCuTruSource -> targetRow.maHuyenCuTru "maHuyenCuTru"; // Target field: MAXA_CU_TRU - Mã xã cư trú FHIR path: VNCoreRelatedPerson.address.extension[ward].valueCoding.code | VNCorePatient.address.extension[ward].valueCoding.code sourceBundle.entry 0..* as maXaCuTruSource -> targetRow.maXaCuTru "maXaCuTru"; // 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: 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_CON - Họ tên con FHIR path: VNCorePatient.name.text sourceBundle.entry 0..* as hoTenConSource -> targetRow.hoTenCon "hoTenCon"; // Target field: GIOI_TINH_CON - Giới tính con FHIR path: VNCorePatient.gender sourceBundle.entry 0..* as gioiTinhConSource -> targetRow.gioiTinhCon "gioiTinhCon"; // Target field: SO_CON - Số con FHIR path: VNCoreObservation.valueQuantity sourceBundle.entry 0..* as soConSource -> targetRow.soCon "soCon"; // Target field: LAN_SINH - Lần sinh FHIR path: VNCoreObservation.valueInteger sourceBundle.entry 0..* as lanSinhSource -> targetRow.lanSinh "lanSinh"; // Target field: SO_CON_SONG - Số con sống FHIR path: VNCoreObservation.valueQuantity sourceBundle.entry 0..* as soConSongSource -> targetRow.soConSong "soConSong"; // Target field: CAN_NANG_CON - Cân nặng con FHIR path: VNCoreObservation.valueQuantity | VNCorePatient.extension[birthWeight].valueQuantity sourceBundle.entry 0..* as canNangConSource -> targetRow.canNangCon "canNangCon"; // Target field: NGAY_SINH_CON - Ngày sinh con FHIR path: VNCoreDocumentReference.date | content.attachment.creation | VNCorePatient.birthDate sourceBundle.entry 0..* as ngaySinhConSource -> targetRow.ngaySinhCon "ngaySinhCon"; // Target field: NOI_SINH_CON - Nơi sinh con FHIR path: VNCorePatient.extension[birthPlace].valueAddress.text | VNCoreEncounter.location.location.resolve().name sourceBundle.entry 0..* as noiSinhConSource -> targetRow.noiSinhCon "noiSinhCon"; // Target field: TINH_TRANG_CON - Tình trạng của trẻ tại thời điểm cấp Giấy chứng sinh FHIR path: VNCoreObservation.valueString | VNCoreCondition.code.text Mapping note: Ghi rõ tình trạng của trẻ tại thời điểm làm Giấy chứng sinh — các giá trị diễn giải theo QĐ 3176/QĐ-BYT: 'khỏe mạnh', 'yếu', 'dị tật' hoặc các biểu hiện liên quan đến sức khỏe khác (nếu có). Nếu trẻ bị dị dạng, dị tật thì ghi cụ thể loại dị dạng, dị tật, kể cả khuyết tật về hình thái nếu phát hiện được — dị tật bẩm sinh ánh xạ VNCoreCondition.code, narrative tổng quát ghi vào Observation.valueString. Kiểu chuỗi n ký tự. sourceBundle.entry 0..* as tinhTrangConSource -> targetRow.tinhTrangCon "tinhTrangCon"; // Target field: SINHCON_PHAUTHUAT - Sinh con phẫu thuật FHIR path: VNCoreProcedure.code | VNCoreObservation.valueBoolean sourceBundle.entry 0..* as sinhConPhauThuatSource -> targetRow.sinhConPhauThuat "sinhConPhauThuat"; // Target field: SINHCON_DUOI32TUAN - Sinh con dưới 32 tuần FHIR path: VNCoreObservation.valueBoolean sourceBundle.entry 0..* as sinhConDuoi32TuanSource -> targetRow.sinhConDuoi32Tuan "sinhConDuoi32Tuan"; // Target field: GHI_CHU - Ghi chú (bắt buộc khi sinh con phải phẫu thuật và/hoặc sinh con dưới 32 tuần tuổi) FHIR path: VNCoreDocumentReference.description | VNCoreComposition.section.text Mapping note: Theo QĐ 3176/QĐ-BYT: bắt buộc ghi khi SINHCON_PHAUTHUAT=1 hoặc SINHCON_DUOI32TUAN=1 (hoặc cả hai); nội dung phải đúng 1 trong 3 giá trị cố định: 'Sinh con phải phẫu thuật', 'Sinh con dưới 32 tuần tuổi', hoặc 'Phẫu thuật, sinh con dưới 32 tuần tuổi'. Kiểu chuỗi n ký tự. sourceBundle.entry 0..* as ghiChuSource -> targetRow.ghiChu "ghiChu"; // Target field: NGUOI_DO_DE - Người đỡ đẻ FHIR path: VNCoreComposition.author.resolve().identifier.value | VNCorePractitioner.identifier.value sourceBundle.entry 0..* as nguoiDoDeSource -> targetRow.nguoiDoDe "nguoiDoDe"; // Target field: NGUOI_GHI_PHIEU - Người ghi phiếu FHIR path: VNCoreDocumentReference.author.resolve().identifier.value | VNCorePractitioner.identifier.value sourceBundle.entry 0..* as nguoiGhiPhieuSource -> targetRow.nguoiGhiPhieu "nguoiGhiPhieu"; // 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: SO - Số chứng từ FHIR path: VNCoreDocumentReference.identifier.value | VNCoreComposition.identifier.value sourceBundle.entry 0..* as soSource -> targetRow.so "so"; // Target field: QUYEN_SO - Quyển số FHIR path: VNCoreDocumentReference.identifier.value sourceBundle.entry 0..* as quyenSoSource -> targetRow.quyenSo "quyenSo"; // Target field: MA_TTDV - Mã người đứng đầu CSKCB (hoặc người được ủy quyền) ký giấy chứng sinh, ư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ự (trước đây là mã số định danh y tế/mã số BHXH của Thủ trưởng CSKCB). sourceBundle.entry 0..* as maTtdvSource -> targetRow.maTtdv "maTtdv"; }