关于 fhir-hl7-validator
面向 AI Agent 的医疗数据格式校验技能,可验证 FHIR、HL7 v2 和 CDA 文档。它检查结构、术语、引用及实施指南符合性,并生成含错误和修复建议的报告。
主要功能
- 01校验 FHIR R5 资源
- 02解析并校验 HL7 v2 消息
- 03校验 CDA R2 文档
- 04检查引用、基数与数据类型
- 05验证术语和值集
- 06生成多格式错误报告
适用场景
- 01检查 EHR 导出的 FHIR 资源
- 02验证实验室 HL7 消息
- 03核对 CDA 临床文档与实施指南
- 04批量审查医疗数据文件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 1mangesh1/ hipaa-guardian --skill fhir-hl7-validator安装后在 Claude Code 中输入/fhir-hl7-validator确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agent-skills.jsonmetadata.jsonREADME.md详细介绍
FHIR 与 HL7 验证器
面向 AI Agent 的医疗保健数据格式验证技能。验证 FHIR R5 资源、HL7 v2 消息和 CDA 临床文档。确保医疗保健数据交换符合 HL7 标准,并识别架构违规、缺少必填字段以及互操作性问题。
功能
- FHIR 验证 - 根据官方架构验证 FHIR R5 资源
- HL7 消息解析 - 解析并验证 HL7 v2.x 消息(ADT、ORU、OBX、RXO)
- CDA 文档验证 - 验证临床文档架构(CDA)R2 文档
- 架构合规性 - 根据 FHIR 规范和 UK Core 检查资源
- 数据类型验证 - 验证 FHIR 数据类型(Identifier、CodeableConcept、Reference 等)
- 引用解析 - 验证内部和外部引用
- 基数检查 - 确保符合必填与可选字段要求
- 术语验证 - 检查值集和编码系统(SNOMED CT、LOINC、ICD-10)
- 互操作性分析 - 识别对实施指南的遵循情况
- 错误报告 - 生成详细的验证错误报告并提供修正建议
用法
/fhir-hl7-validator [command] [target] [options]
命令
validate-fhir <file>- 验证 FHIR JSON/XML 资源validate-hl7 <file>- 验证 HL7 v2 消息validate-cda <file>- 验证 CDA 临床文档parse-fhir <file>- 解析并显示 FHIR 资源结构parse-hl7 <file>- 解析并显示 HL7 段check-references <file>- 验证所有资源引用check-terminology <file>- 验证编码系统和值集bulk-validate <directory>- 验证多个文件report <output-format>- 生成验证报告(JSON、Markdown、HTML)
选项
--version <ver>- FHIR 版本(默认:R5;也支持 4.0、3.0)--variant <name>- 实施指南(例如 uk-core、us-core)--strict- 强制执行 must-support 约束--terminology-check- 验证编码系统(启用在线查询)--output <file>- 将报告写入文件--format <type>- 输出格式:json、markdown、html、xml
工作流
调用时请遵循以下工作流:
第 1 步:识别医疗保健数据类型
询问用户指定:
- 数据格式(FHIR、HL7 v2、CDA)
- FHIR 版本或 HL7 方言
- 实施指南/配置文件(如适用)
- 数据来源(EHR、实验室系统、影像系统)
第 2 步:验证结构
检查:
- JSON/XML 格式是否正确
- 是否包含必需元素
- 是否符合数据类型要求
- 是否符合基数要求(最小/最大出现次数)
- 模式和正则表达式验证
第 3 步:语义验证
验证:
- 是否属于相应编码系统(SNOMED CT、LOINC、ICD-10 等)
- 引用是否一致(本地与外部)
- 标识符是否唯一且格式正确
- 日期/时间格式是否准确(ISO 8601)
- 数量单位是否有效
第 4 步:互操作性检查
确保符合:
- FHIR 实施指南
- US Core 或 UK Core 配置文件
- HL7 消息规范
- 临床数据交换标准
第 5 步:生成报告
提供:
- 带行号的验证错误列表
- 严重级别(错误、警告、信息)
- 修正建议
- 相关标准的参考信息
FHIR 资源示例
Patient 资源
{
"resourceType": "Patient",
"id": "example",
"identifier": [
{
"system": "http://example.org/medical-record",
"value": "12345"
}
],
"name": [
{
"use": "official",
"given": ["Jane"],
"family": "Doe"
}
],
"birthDate": "1990-01-15",
"address": [
{
"use": "home",
"line": ["123 Main St"],
"city": "Springfield",
"state": "IL",
"postalCode": "62701"
}
]
}
Observation 资源
{
"resourceType": "Observation",
"id": "example",
"status": "final",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "39156-5",
"display": "BMI"
}
]
},
"subject": {
"reference": "Patient/example"
},
"valueQuantity": {
"value": 24.5,
"unit": "kg/m2",
"system": "http://unitsofmeasure.org",
"code": "kg/m2"
}
}
HL7 v2 段示例
ADT 消息(患者入院)
MSH|^~\&|SendingApp|SendingFac|ReceivingApp|ReceivingFac|202502071350||ADT^A01|123456|P|2.5
PID^^^12345||JaneDoe||19900115|F|||123 Main St^^Springfield^IL^62701|||||||S
PV1||I|ICU^FL2^BED01|||||||||||||||||||||||||||
常见验证错误
| 错误 | 原因 | 解决方案 |
|---|---|---|
| 缺少必需元素 | 未提供标记为 cardinality: 1..1 的元素 | 添加必需元素 |
| 数据类型无效 | 值与指定类型不匹配 | 转换为正确的类型(例如,将日期转换为 YYYY-MM-DD) |
| 未知编码系统 | 代码不在指定值集中 | 使用官方编码系统中的代码(SNOMED CT、LOINC) |
| 引用失效 | 引用目标不存在 | 检查引用路径和 ID |
| 标识符格式无效 | ID 格式与模式不匹配 | 遵循特定系统的标识符格式 |
标准与实施指南
- FHIR R5 (http://hl7.org/fhir/R5/)
- HL7 v2.5.1 (http://www.hl7.org/)
- CDA R2 (https://www.hl7.org/implement/standards/cdar2/)
- US Core (http://www.hl7.org/fhir/us/core/)
- UK Core (https://digital.nhs.uk/developer/api-catalogue/fhir-uk-core)
- SNOMED CT (https://www.snomed.org/)
- LOINC (https://loinc.org/)
- ICD-10 (https://www.cdc.gov/nchs/icd/icd10cm.htm)
参考资料
- 快速医疗互操作性资源(FHIR) - R5 规范
- HL7 Version 2.5.1 - 医疗数据交换标准
- 临床文档架构 R2 - CDA 规范
- NIST SP 800-66 Rev. 2 - HIPAA 安全实施指南
- HL7 FHIR 实施指南
评论
支持 Markdown