HL7 Vietnam VN Core FHIR Implementation Guide

Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide
0.10.0 - Draft for Community Review Viet Nam cờ

Hướng dẫn triển khai FHIR cốt lõi Việt Nam — VN Core FHIR Implementation Guide - Draft for Community Review (v0.10.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Mô hình logic: Phiếu nhập hàng CSDL Dược — Logical Model

URL chính thức: http://fhir.hl7.org.vn/core/StructureDefinition/vnPharmacyStockInLm Phiên bản: 0.10.0
Computable Name: VNPharmacyStockInLM
Định danh khác: OID:2.25.161089673617632664299011809196868855799.42.221

Logical model cho payload phiếu nhập hàng gửi lên Hệ thống cơ sở dữ liệu về dược (POST /transactions/stock-in, API v1.1 mục 5.4.1). Áp dụng cho nhà thuốc/quầy thuốc (kể cả nhà thuốc bệnh viện), chuỗi nhà thuốc, cơ sở bán buôn, xuất/nhập khẩu. Xử lý bất đồng bộ: hệ thống trả transaction_id, phần mềm poll GET /transactions/stock-in/{id}/status (enum mục 6.2: accepted/processing/completed/error/rejected). Ràng buộc onboarding: cơ sở phải khai báo phiếu nhập tồn đầu kỳ (reason=opening-balance) trước khi liên thông giao dịch khác.

Usages:

  • This Logical Model is not used by any profiles in this Specification

You can also check for usages in the FHIR IG Statistics

Các dạng xem hình thức của nội dung hồ sơ

Mô tả profile, differential, snapshot và các biểu diễn liên quan.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. vnPharmacyStockInLm C 0..* Base Phiếu nhập hàng CSDL Dược — Logical Model
Constraints: vn-pharmacy-stock-in-batch-expiry-required
... transactionDate C 1..1 string transaction_date - Ngày/giờ nhập hàng (định dạng YYYY-MM-DDThh:mm:ss, múi giờ GMT+7 không ghi offset — mục 6.3.1)
Constraints: vn-pharmacy-wire-datetime-format
... reason 1..1 code reason - Loại phiếu nhập/Lý do nhập (mục 6.4.1; tối đa 20 ký tự)
... supplierId 0..1 string supplier_id - Mã định danh nhà cung cấp (bắt buộc khi reason=supplier)
... sourceWarehouseId 0..1 string source_warehouse_id - Mã kho xuất (reason=transfer-in)
... targetStoreId 0..1 string target_store_id - Mã chi nhánh nhập hàng (chuỗi nhà thuốc, reason=transfer-in)
... targetWarehouseId 0..1 string target_warehouse_id - Mã kho nhập (reason=transfer-in)
... referenceNumber 1..1 string reference_number - Số chứng từ nhập hàng
... practiceLicenseCode 0..1 string practice_license_code - Số GCN đủ điều kiện sản xuất/kinh doanh thuốc của chi nhánh (bổ sung ở v1.1; dùng khi tài khoản cơ sở chính đẩy dữ liệu hộ cơ sở thành viên chuỗi)
... note 0..1 string note - Ghi chú (tối đa 500 ký tự)
... item 1..* BackboneElement items[] - Danh sách thuốc trong phiếu nhập
.... drugId 1..1 string items[].drug_id - Mã định danh thuốc (bắt buộc — validator hệ thống trả lỗi 'Mã định danh thuốc không được để trống')
.... unitId 1..1 string items[].unit_id - Mã đơn vị tính (bắt buộc — validator hệ thống trả lỗi 'Mã đơn vị tính không được để trống')
.... quantity 1..1 integer items[].quantity - Số lượng
.... batchNo 0..1 string items[].batch_no - Số lô sản xuất
.... packagingSpecifications 0..1 string items[].packaging_specifications - Quy cách đóng gói (bổ sung ở v1.1)
.... expiryDate 0..1 date items[].expiry_date - Hạn sử dụng của lô
.... manufacturerId 0..1 string items[].manufacturer.id - Mã nhà sản xuất
.... manufacturerName 0..1 string items[].manufacturer.name - Tên nhà sản xuất (tối đa 200 ký tự)
.... manufacturerCountry 0..1 string items[].manufacturer.country - Mã quốc gia sản xuất (tối đa 5 ký tự, ISO-3166)
.... gtin 0..1 string items[].gtin - Mã GTIN theo cấp độ đóng gói
.... price 0..1 decimal items[].price - Đơn giá nhập (2 chữ số thập phân)
... transactionId 0..1 string transaction_id — Mã giao dịch do hệ thống cấp trong response (dùng để poll trạng thái xử lý)
... processingStatus 0..1 code status — Trạng thái xử lý bất đồng bộ của hệ thống (mục 6.2: accepted | processing | completed | error | rejected)

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
vn-pharmacy-stock-in-batch-expiry-required error vnPharmacyStockInLm Mỗi dòng nhập phải có cả số lô và hạn sử dụng, trừ dòng nhập tồn đầu kỳ có số lượng bằng 0. Each stock-in item SHALL carry both batch number and expiry date, except a zero-quantity opening-balance item. item.all((batchNo.exists() and expiryDate.exists()) or (%resource.reason = 'opening-balance' and quantity = 0))
vn-pharmacy-wire-datetime-format error vnPharmacyStockInLm.transactionDate Ngày giờ giao dịch phải đúng chuỗi YYYY-MM-DDThh:mm:ss, không có offset. Transaction datetime SHALL use the published offset-free YYYY-MM-DDThh:mm:ss wire format. $this.matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$')
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. vnPharmacyStockInLm C 0..* Base Phiếu nhập hàng CSDL Dược — Logical Model
Constraints: vn-pharmacy-stock-in-batch-expiry-required
... transactionDate C 1..1 string transaction_date - Ngày/giờ nhập hàng (định dạng YYYY-MM-DDThh:mm:ss, múi giờ GMT+7 không ghi offset — mục 6.3.1)
Constraints: vn-pharmacy-wire-datetime-format
... reason 1..1 code reason - Loại phiếu nhập/Lý do nhập (mục 6.4.1; tối đa 20 ký tự)
... supplierId 0..1 string supplier_id - Mã định danh nhà cung cấp (bắt buộc khi reason=supplier)
... sourceWarehouseId 0..1 string source_warehouse_id - Mã kho xuất (reason=transfer-in)
... targetStoreId 0..1 string target_store_id - Mã chi nhánh nhập hàng (chuỗi nhà thuốc, reason=transfer-in)
... targetWarehouseId 0..1 string target_warehouse_id - Mã kho nhập (reason=transfer-in)
... referenceNumber 1..1 string reference_number - Số chứng từ nhập hàng
... practiceLicenseCode 0..1 string practice_license_code - Số GCN đủ điều kiện sản xuất/kinh doanh thuốc của chi nhánh (bổ sung ở v1.1; dùng khi tài khoản cơ sở chính đẩy dữ liệu hộ cơ sở thành viên chuỗi)
... note 0..1 string note - Ghi chú (tối đa 500 ký tự)
... item 1..* BackboneElement items[] - Danh sách thuốc trong phiếu nhập
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... drugId 1..1 string items[].drug_id - Mã định danh thuốc (bắt buộc — validator hệ thống trả lỗi 'Mã định danh thuốc không được để trống')
.... unitId 1..1 string items[].unit_id - Mã đơn vị tính (bắt buộc — validator hệ thống trả lỗi 'Mã đơn vị tính không được để trống')
.... quantity 1..1 integer items[].quantity - Số lượng
.... batchNo 0..1 string items[].batch_no - Số lô sản xuất
.... packagingSpecifications 0..1 string items[].packaging_specifications - Quy cách đóng gói (bổ sung ở v1.1)
.... expiryDate 0..1 date items[].expiry_date - Hạn sử dụng của lô
.... manufacturerId 0..1 string items[].manufacturer.id - Mã nhà sản xuất
.... manufacturerName 0..1 string items[].manufacturer.name - Tên nhà sản xuất (tối đa 200 ký tự)
.... manufacturerCountry 0..1 string items[].manufacturer.country - Mã quốc gia sản xuất (tối đa 5 ký tự, ISO-3166)
.... gtin 0..1 string items[].gtin - Mã GTIN theo cấp độ đóng gói
.... price 0..1 decimal items[].price - Đơn giá nhập (2 chữ số thập phân)
... transactionId 0..1 string transaction_id — Mã giao dịch do hệ thống cấp trong response (dùng để poll trạng thái xử lý)
... processingStatus 0..1 code status — Trạng thái xử lý bất đồng bộ của hệ thống (mục 6.2: accepted | processing | completed | error | rejected)

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
vn-pharmacy-stock-in-batch-expiry-required error vnPharmacyStockInLm Mỗi dòng nhập phải có cả số lô và hạn sử dụng, trừ dòng nhập tồn đầu kỳ có số lượng bằng 0. Each stock-in item SHALL carry both batch number and expiry date, except a zero-quantity opening-balance item. item.all((batchNo.exists() and expiryDate.exists()) or (%resource.reason = 'opening-balance' and quantity = 0))
vn-pharmacy-wire-datetime-format error vnPharmacyStockInLm.transactionDate Ngày giờ giao dịch phải đúng chuỗi YYYY-MM-DDThh:mm:ss, không có offset. Transaction datetime SHALL use the published offset-free YYYY-MM-DDThh:mm:ss wire format. $this.matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$')

Summary

Mandatory: 0 element(7 nested mandatory elements)

Dạng xem Differential

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. vnPharmacyStockInLm C 0..* Base Phiếu nhập hàng CSDL Dược — Logical Model
Constraints: vn-pharmacy-stock-in-batch-expiry-required
... transactionDate C 1..1 string transaction_date - Ngày/giờ nhập hàng (định dạng YYYY-MM-DDThh:mm:ss, múi giờ GMT+7 không ghi offset — mục 6.3.1)
Constraints: vn-pharmacy-wire-datetime-format
... reason 1..1 code reason - Loại phiếu nhập/Lý do nhập (mục 6.4.1; tối đa 20 ký tự)
... supplierId 0..1 string supplier_id - Mã định danh nhà cung cấp (bắt buộc khi reason=supplier)
... sourceWarehouseId 0..1 string source_warehouse_id - Mã kho xuất (reason=transfer-in)
... targetStoreId 0..1 string target_store_id - Mã chi nhánh nhập hàng (chuỗi nhà thuốc, reason=transfer-in)
... targetWarehouseId 0..1 string target_warehouse_id - Mã kho nhập (reason=transfer-in)
... referenceNumber 1..1 string reference_number - Số chứng từ nhập hàng
... practiceLicenseCode 0..1 string practice_license_code - Số GCN đủ điều kiện sản xuất/kinh doanh thuốc của chi nhánh (bổ sung ở v1.1; dùng khi tài khoản cơ sở chính đẩy dữ liệu hộ cơ sở thành viên chuỗi)
... note 0..1 string note - Ghi chú (tối đa 500 ký tự)
... item 1..* BackboneElement items[] - Danh sách thuốc trong phiếu nhập
.... drugId 1..1 string items[].drug_id - Mã định danh thuốc (bắt buộc — validator hệ thống trả lỗi 'Mã định danh thuốc không được để trống')
.... unitId 1..1 string items[].unit_id - Mã đơn vị tính (bắt buộc — validator hệ thống trả lỗi 'Mã đơn vị tính không được để trống')
.... quantity 1..1 integer items[].quantity - Số lượng
.... batchNo 0..1 string items[].batch_no - Số lô sản xuất
.... packagingSpecifications 0..1 string items[].packaging_specifications - Quy cách đóng gói (bổ sung ở v1.1)
.... expiryDate 0..1 date items[].expiry_date - Hạn sử dụng của lô
.... manufacturerId 0..1 string items[].manufacturer.id - Mã nhà sản xuất
.... manufacturerName 0..1 string items[].manufacturer.name - Tên nhà sản xuất (tối đa 200 ký tự)
.... manufacturerCountry 0..1 string items[].manufacturer.country - Mã quốc gia sản xuất (tối đa 5 ký tự, ISO-3166)
.... gtin 0..1 string items[].gtin - Mã GTIN theo cấp độ đóng gói
.... price 0..1 decimal items[].price - Đơn giá nhập (2 chữ số thập phân)
... transactionId 0..1 string transaction_id — Mã giao dịch do hệ thống cấp trong response (dùng để poll trạng thái xử lý)
... processingStatus 0..1 code status — Trạng thái xử lý bất đồng bộ của hệ thống (mục 6.2: accepted | processing | completed | error | rejected)

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
vn-pharmacy-stock-in-batch-expiry-required error vnPharmacyStockInLm Mỗi dòng nhập phải có cả số lô và hạn sử dụng, trừ dòng nhập tồn đầu kỳ có số lượng bằng 0. Each stock-in item SHALL carry both batch number and expiry date, except a zero-quantity opening-balance item. item.all((batchNo.exists() and expiryDate.exists()) or (%resource.reason = 'opening-balance' and quantity = 0))
vn-pharmacy-wire-datetime-format error vnPharmacyStockInLm.transactionDate Ngày giờ giao dịch phải đúng chuỗi YYYY-MM-DDThh:mm:ss, không có offset. Transaction datetime SHALL use the published offset-free YYYY-MM-DDThh:mm:ss wire format. $this.matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$')

Dạng xem SnapshotView

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. vnPharmacyStockInLm C 0..* Base Phiếu nhập hàng CSDL Dược — Logical Model
Constraints: vn-pharmacy-stock-in-batch-expiry-required
... transactionDate C 1..1 string transaction_date - Ngày/giờ nhập hàng (định dạng YYYY-MM-DDThh:mm:ss, múi giờ GMT+7 không ghi offset — mục 6.3.1)
Constraints: vn-pharmacy-wire-datetime-format
... reason 1..1 code reason - Loại phiếu nhập/Lý do nhập (mục 6.4.1; tối đa 20 ký tự)
... supplierId 0..1 string supplier_id - Mã định danh nhà cung cấp (bắt buộc khi reason=supplier)
... sourceWarehouseId 0..1 string source_warehouse_id - Mã kho xuất (reason=transfer-in)
... targetStoreId 0..1 string target_store_id - Mã chi nhánh nhập hàng (chuỗi nhà thuốc, reason=transfer-in)
... targetWarehouseId 0..1 string target_warehouse_id - Mã kho nhập (reason=transfer-in)
... referenceNumber 1..1 string reference_number - Số chứng từ nhập hàng
... practiceLicenseCode 0..1 string practice_license_code - Số GCN đủ điều kiện sản xuất/kinh doanh thuốc của chi nhánh (bổ sung ở v1.1; dùng khi tài khoản cơ sở chính đẩy dữ liệu hộ cơ sở thành viên chuỗi)
... note 0..1 string note - Ghi chú (tối đa 500 ký tự)
... item 1..* BackboneElement items[] - Danh sách thuốc trong phiếu nhập
.... @id 0..1 string Unique id for inter-element referencing
.... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ 0..* Extension Extensions that cannot be ignored even if unrecognized
.... drugId 1..1 string items[].drug_id - Mã định danh thuốc (bắt buộc — validator hệ thống trả lỗi 'Mã định danh thuốc không được để trống')
.... unitId 1..1 string items[].unit_id - Mã đơn vị tính (bắt buộc — validator hệ thống trả lỗi 'Mã đơn vị tính không được để trống')
.... quantity 1..1 integer items[].quantity - Số lượng
.... batchNo 0..1 string items[].batch_no - Số lô sản xuất
.... packagingSpecifications 0..1 string items[].packaging_specifications - Quy cách đóng gói (bổ sung ở v1.1)
.... expiryDate 0..1 date items[].expiry_date - Hạn sử dụng của lô
.... manufacturerId 0..1 string items[].manufacturer.id - Mã nhà sản xuất
.... manufacturerName 0..1 string items[].manufacturer.name - Tên nhà sản xuất (tối đa 200 ký tự)
.... manufacturerCountry 0..1 string items[].manufacturer.country - Mã quốc gia sản xuất (tối đa 5 ký tự, ISO-3166)
.... gtin 0..1 string items[].gtin - Mã GTIN theo cấp độ đóng gói
.... price 0..1 decimal items[].price - Đơn giá nhập (2 chữ số thập phân)
... transactionId 0..1 string transaction_id — Mã giao dịch do hệ thống cấp trong response (dùng để poll trạng thái xử lý)
... processingStatus 0..1 code status — Trạng thái xử lý bất đồng bộ của hệ thống (mục 6.2: accepted | processing | completed | error | rejected)

doco Documentation for this format

Constraints

Id Grade Path(s) Description Expression
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
vn-pharmacy-stock-in-batch-expiry-required error vnPharmacyStockInLm Mỗi dòng nhập phải có cả số lô và hạn sử dụng, trừ dòng nhập tồn đầu kỳ có số lượng bằng 0. Each stock-in item SHALL carry both batch number and expiry date, except a zero-quantity opening-balance item. item.all((batchNo.exists() and expiryDate.exists()) or (%resource.reason = 'opening-balance' and quantity = 0))
vn-pharmacy-wire-datetime-format error vnPharmacyStockInLm.transactionDate Ngày giờ giao dịch phải đúng chuỗi YYYY-MM-DDThh:mm:ss, không có offset. Transaction datetime SHALL use the published offset-free YYYY-MM-DDThh:mm:ss wire format. $this.matches('^[0-9]{4}-[0-9]{2}-[0-9]{2}T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$')

Summary

Mandatory: 0 element(7 nested mandatory elements)

 

Biểu diễn khác của hồ sơ: CSV, Excel