Xin chào các bạn! Trong bài viết hôm nay, chúng ta sẽ khám phá về các Conformance Resources (Tài nguyên tuân thủ) trong FHIR R5. Đây là những tài nguyên đóng vai trò quan trọng trong việc định nghĩa cấu trúc, quy tắc và ràng buộc cho dữ liệu y tế. Ở phiên bản R5, các tài nguyên này đã được cải tiến đáng kể để hỗ trợ tốt hơn việc triển khai các hệ thống y tế số.
1. StructureDefinition: Những cải tiến trong R5
StructureDefinition là tài nguyên cốt lõi để định nghĩa cấu trúc dữ liệu trong FHIR. Nó mô tả các thuộc tính, kiểu dữ liệu và ràng buộc cho các tài nguyên và các thành phần khác.
Những cải tiến chính trong R5:
Cải thiện hỗ trợ cho các loại dữ liệu phức tạp
Trong R5, StructureDefinition đã được cải tiến để hỗ trợ tốt hơn cho các loại dữ liệu phức tạp, đặc biệt là các loại dữ liệu tổng hợp và các pattern.
Ví dụ thực tế: Định nghĩa một cấu trúc cho kết quả xét nghiệm COVID-19
R5 cải thiện khả năng xác định và áp dụng các ràng buộc phức tạp, giúp kiểm tra tính hợp lệ của dữ liệu tốt hơn.
Ví dụ thực tế: Thêm ràng buộc cho phạm vi giá trị huyết áp
{
"id": "Observation.component.value[x]",
"path": "Observation.component.value[x]",
"type": [
{
"code": "Quantity"
}
],
"constraint": [
{
"key": "bp-systolic-range",
"severity": "error",
"human": "Huyết áp tâm thu phải nằm trong khoảng 50-250 mmHg",
"expression": "($this is Quantity) and ($this.code = 'mm[Hg]') and ($this.value >= 50 and $this.value <= 250)"
}
]
}
Cải tiến định nghĩa tiêu chí slicing
Slicing là cơ chế cho phép định nghĩa các ràng buộc khác nhau cho các phần tử lặp lại. Trong R5, việc định nghĩa và sử dụng slicing trở nên dễ dàng và rõ ràng hơn.
Ví dụ thực tế: Định nghĩa các loại định danh bệnh nhân khác nhau
ValueSet xác định một tập hợp các mã từ một hoặc nhiều CodeSystem mà có thể được sử dụng trong ngữ cảnh cụ thể.
Ví dụ thực tế: Tạo ValueSet cho các kết quả xét nghiệm COVID-19
{
"resourceType": "ValueSet",
"id": "covid19-results",
"url": "http://hospital.vn/fhir/ValueSet/covid19-results",
"name": "COVID19Results",
"title": "Các kết quả xét nghiệm COVID-19",
"status": "active",
"description": "Các giá trị hợp lệ cho kết quả xét nghiệm COVID-19",
"compose": {
"include": [
{
"system": "http://hospital.vn/fhir/CodeSystem/covid19-test-codes"
},
{
"system": "http://snomed.info/sct",
"concept": [
{
"code": "260385009",
"display": "Negative"
},
{
"code": "10828004",
"display": "Positive"
}
]
}
]
}
}
Binding Strength trong R5
Binding strength (độ mạnh ràng buộc) xác định mức độ bắt buộc tuân thủ một ValueSet khi sử dụng các trường dữ liệu. R5 cải tiến độ rõ ràng và linh hoạt của binding strength.
Các mức độ binding strength:
Required (Bắt buộc): Phải sử dụng mã từ ValueSet được chỉ định.
Extensible (Mở rộng): Nên sử dụng mã từ ValueSet, nhưng có thể sử dụng mã khác nếu không tìm thấy mã phù hợp.
Preferred (Ưu tiên): Khuyến khích sử dụng mã từ ValueSet.
Example (Ví dụ): Đề xuất một số mã, nhưng không bắt buộc.
Ví dụ thực tế: Ràng buộc cho loại xét nghiệm COVID-19
Hợp nhất dữ liệu từ nhiều nguồn: Xử lý dữ liệu từ các hệ thống khác nhau sử dụng các bộ mã khác nhau.
Hỗ trợ báo cáo và phân tích: Chuyển đổi mã cho các mục đích báo cáo cụ thể.
Tương thích với các tiêu chuẩn quốc tế: Ánh xạ mã địa phương sang các bộ mã quốc tế.
Lưu giữ ngữ nghĩa dữ liệu: Đảm bảo ý nghĩa của dữ liệu được bảo toàn khi chuyển đổi.
4. Implementation Guide Resources
Implementation Guide (Hướng dẫn triển khai) là tài nguyên giúp định nghĩa cách triển khai FHIR trong một ngữ cảnh cụ thể. R5 cải tiến đáng kể các tài nguyên liên quan đến việc tạo và quản lý các hướng dẫn triển khai.
Các tài nguyên chính:
ImplementationGuide
Tài nguyên này mô tả một hướng dẫn triển khai FHIR, xác định các tài nguyên, cấu trúc, và quy tắc được sử dụng.
Ví dụ thực tế: Hướng dẫn triển khai FHIR cho hệ thống EMR Việt Nam
{
"resourceType": "ImplementationGuide",
"id": "vietnam-emr-guide",
"url": "http://health.gov.vn/fhir/ImplementationGuide/vietnam-emr",
"version": "1.0.0",
"name": "VietnamEMRGuide",
"title": "Hướng dẫn triển khai hệ thống EMR Việt Nam",
"status": "draft",
"date": "2023-06-15",
"publisher": "Bộ Y tế Việt Nam",
"description": "Hướng dẫn triển khai FHIR cho hệ thống hồ sơ y tế điện tử tại Việt Nam",
"packageId": "vietnam.gov.health.emr",
"fhirVersion": ["5.0.0"],
"definition": {
"resource": [
{
"reference": {
"reference": "StructureDefinition/vn-patient"
},
"name": "Vietnam Patient Profile",
"description": "Hồ sơ bệnh nhân Việt Nam",
"exampleBoolean": false
},
{
"reference": {
"reference": "ValueSet/vn-ethnicity"
},
"name": "Vietnam Ethnicity Codes",
"description": "Bộ mã dân tộc Việt Nam",
"exampleBoolean": false
}
],
"page": {
"nameUrl": "index.html",
"title": "Trang chủ",
"generation": "html",
"page": [
{
"nameUrl": "profiles.html",
"title": "Các hồ sơ",
"generation": "html"
},
{
"nameUrl": "extensions.html",
"title": "Các phần mở rộng",
"generation": "html"
}
]
}
}
}
Tài nguyên hỗ trợ trong R5
R5 bổ sung hoặc cải tiến các tài nguyên hỗ trợ việc xây dựng hướng dẫn triển khai:
ImplementationGuide-manifest: Quản lý các tệp và tài nguyên trong hướng dẫn triển khai
ImplementationGuide-resource: Định nghĩa cách sử dụng các tài nguyên FHIR
ImplementationGuide-page: Tổ chức trang tài liệu
Cải tiến trong R5:
Hỗ trợ tốt hơn cho tài liệu mở rộng
R5 cải thiện khả năng tạo và quản lý tài liệu trong Implementation Guide, hỗ trợ nhiều định dạng và cấu trúc hơn.
Cải thiện quản lý phụ thuộc
R5 cho phép quản lý tốt hơn các phụ thuộc giữa các Implementation Guide, cho phép kế thừa và mở rộng từ các hướng dẫn khác.
R5 cho phép mô tả chi tiết hơn các khả năng tìm kiếm, bao gồm cả các tham số tìm kiếm tùy chỉnh và hành vi.
"searchParam": [
{
"name": "fulltext",
"type": "string",
"documentation": "Tìm kiếm toàn văn trong các trường của bệnh nhân",
"extension": [
{
"url": "http://hospital.vn/fhir/StructureDefinition/search-modifier-support",
"valueCode": "contains"
}
]
},
{
"name": "program",
"definition": "http://hospital.vn/fhir/SearchParameter/patient-program",
"type": "token",
"documentation": "Tìm bệnh nhân theo chương trình y tế đã tham gia"
}
]
Ứng dụng thực tế của CapabilityStatement trong R5
CapabilityStatement trong R5 giúp bạn:
Tạo tài liệu API chi tiết: Mô tả đầy đủ các khả năng API để các nhà phát triển dễ dàng tích hợp.
Phát hiện dịch vụ tự động: Cho phép các ứng dụng tự động phát hiện và thích ứng với các khả năng của server.
Xác thực tuân thủ: Kiểm tra xem một triển khai có tuân thủ các yêu cầu về khả năng không.
Tài liệu hỗ trợ kỹ thuật: Cung cấp tài liệu kỹ thuật chi tiết cho nhóm phát triển và người dùng.
Ví dụ ứng dụng thực tế
Kịch bản: Xây dựng hệ thống EMR (Electronic Medical Record) tại Việt Nam
Giả sử bạn đang xây dựng một hệ thống EMR phù hợp với bối cảnh Việt Nam. Dưới đây là cách áp dụng các Conformance Resources:
1. Xác định cấu trúc dữ liệu phù hợp với ngữ cảnh địa phương
Sử dụng StructureDefinition để định nghĩa các tài nguyên FHIR phù hợp với quy định và luật pháp Việt Nam:
Sử dụng ImplementationGuide để tạo và quản lý hướng dẫn triển khai FHIR ở Việt Nam:
{
"resourceType": "ImplementationGuide",
"id": "vietnam-emr-guide",
"url": "http://health.gov.vn/fhir/ImplementationGuide/vietnam-emr",
"version": "1.0.0",
"name": "VietnamEMRGuide",
"title": "Hướng dẫn triển khai hệ thống EMR Việt Nam",
"status": "draft",
"description": "Hướng dẫn triển khai FHIR cho hệ thống hồ sơ y tế điện tử tại Việt Nam",
"packageId": "vietnam.gov.health.emr",
"fhirVersion": ["5.0.0"],
"definition": {
"resource": [
{
"reference": {
"reference": "StructureDefinition/vn-patient"
},
"name": "Vietnam Patient Profile",
"description": "Hồ sơ bệnh nhân Việt Nam",
"exampleBoolean": false
},
{
"reference": {
"reference": "StructureDefinition/vn-immunization"
},
"name": "Vietnam Immunization Profile",
"description": "Hồ sơ tiêm chủng Việt Nam",
"exampleBoolean": false
},
{
"reference": {
"reference": "ValueSet/vn-ethnicity"
},
"name": "Vietnam Ethnicity Codes",
"description": "Bộ mã dân tộc Việt Nam",
"exampleBoolean": false
}
],
"page": {
"nameUrl": "index.html",
"title": "Trang chủ",
"generation": "html",
"page": [
{
"nameUrl": "profiles.html",
"title": "Các hồ sơ",
"generation": "html"
},
{
"nameUrl": "extensions.html",
"title": "Các phần mở rộng",
"generation": "html"
},
{
"nameUrl": "terminology.html",
"title": "Thuật ngữ",
"generation": "html"
}
]
}
}
}
5. Mô tả khả năng của hệ thống EMR
Sử dụng CapabilityStatement để mô tả các khả năng của hệ thống EMR:
{
"resourceType": "CapabilityStatement",
"id": "vietnam-emr-capabilities",
"url": "http://health.gov.vn/fhir/CapabilityStatement/vietnam-emr",
"name": "VietnamEMRCapabilities",
"title": "Khả năng của hệ thống EMR Việt Nam",
"status": "active",
"date": "2023-06-15",
"publisher": "Bộ Y tế Việt Nam",
"description": "Mô tả khả năng FHIR của hệ thống EMR theo quy định của Việt Nam",
"kind": "requirements",
"fhirVersion": "5.0.0",
"format": ["application/fhir+json", "application/fhir+xml"],
"rest": [
{
"mode": "server",
"documentation": "API FHIR của hệ thống EMR Việt Nam",
"security": {
"cors": true,
"service": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/restful-security-service",
"code": "SMART-on-FHIR"
}
]
}
]
},
"resource": [
{
"type": "Patient",
"supportedProfile": [
"http://health.gov.vn/fhir/StructureDefinition/vn-patient"
],
"interaction": [
{ "code": "read" },
{ "code": "create" },
{ "code": "update" },
{ "code": "search-type" }
],
"searchParam": [
{
"name": "identifier",
"type": "token",
"documentation": "Tìm kiếm theo CMND/CCCD hoặc mã thẻ BHYT"
},
{
"name": "name",
"type": "string",
"documentation": "Tìm kiếm theo họ tên bệnh nhân"
}
]
},
{
"type": "Encounter",
"supportedProfile": [
"http://health.gov.vn/fhir/StructureDefinition/vn-encounter"
],
"interaction": [
{ "code": "read" },
{ "code": "create" },
{ "code": "update" },
{ "code": "search-type" }
]
},
{
"type": "MedicationRequest",
"supportedProfile": [
"http://health.gov.vn/fhir/StructureDefinition/vn-prescription"
],
"interaction": [
{ "code": "read" },
{ "code": "create" },
{ "code": "search-type" }
]
},
{
"type": "Observation",
"supportedProfile": [
"http://health.gov.vn/fhir/StructureDefinition/vn-vital-signs"
],
"interaction": [
{ "code": "read" },
{ "code": "create" },
{ "code": "search-type" }
]
},
{
"type": "Immunization",
"supportedProfile": [
"http://health.gov.vn/fhir/StructureDefinition/vn-immunization"
],
"interaction": [
{ "code": "read" },
{ "code": "create" },
{ "code": "search-type" }
]
}
]
}
]
}
Quy trình triển khai
Định nghĩa cấu trúc dữ liệu: Sử dụng StructureDefinition để tạo các hồ sơ (profiles) phù hợp.
Xây dựng bộ mã thuật ngữ: Định nghĩa các CodeSystem và ValueSet cần thiết.
Ánh xạ với tiêu chuẩn quốc tế: Tạo ConceptMap để kết nối với các hệ thống mã quốc tế.
Tạo hướng dẫn triển khai: Tổng hợp thành ImplementationGuide để hướng dẫn triển khai.
Xác định yêu cầu giao diện API: Sử dụng CapabilityStatement để mô tả khả năng API cần có.
Kết luận
Các Conformance Resources trong FHIR R5 cung cấp nền tảng vững chắc để tuân thủ, mở rộng và triển khai các hệ thống y tế số. Với những cải tiến trong R5, các tài nguyên này trở nên linh hoạt, chi tiết và mạnh mẽ hơn, giúp xây dựng các hệ thống y tế số hiệu quả và tương thích.
Khi triển khai FHIR trong bối cảnh Việt Nam, các Conformance Resources cho phép chúng ta điều chỉnh tiêu chuẩn quốc tế để phù hợp với yêu cầu địa phương, đồng thời vẫn duy trì khả năng tương tác với các hệ thống toàn cầu.
Bằng cách sử dụng hiệu quả các tài nguyên như StructureDefinition, ValueSet, CodeSystem, ConceptMap, ImplementationGuide và CapabilityStatement, chúng ta có thể xây dựng các hệ thống y tế số tuân thủ tiêu chuẩn, linh hoạt và bền vững.