You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FHIR HAPI中Observation自定义结构定义的元素组合校验问题咨询

完全可以实现该类跨元素取值组合的校验,你可以通过以下两种方式在HAPI FHIR框架下完成需求:

方案1:基于FHIR原生StructureDefinition约束实现(推荐,符合FHIR标准规范)

你可以直接在自定义的Observation StructureDefinition中添加FHIR不变量约束(invariant),通过FhirPath表达式定义编码和单位的关联校验规则:

  • 首先编写对应的FhirPath校验逻辑:当Observation.code包含指定LOINC编码时,强制要求valueQuantity的单位符合要求,示例表达式如下:
code.coding.where(system = 'http://loinc.org' and code = '76536-2').exists() implies (valueQuantity.system = 'http://unitsofmeasure.org' and valueQuantity.code = 'mm[Hg]')
  • 给该约束配置唯一标识key、错误级别(设置为error)、可读错误提示(如「平均动脉压(LOINC:76536-2)的计量单位仅允许使用mm[Hg]」)
  • HAPI默认的原生校验器会自动识别StructureDefinition中配置的invariant规则,执行资源校验时如果不符合规则会直接返回对应的错误信息。
方案2:自定义HAPI校验规则实现(适合复杂动态规则场景)

如果你的单位映射规则需要动态调整、或者涉及更复杂的判断逻辑,可以通过自定义校验拦截器实现:

  • 实现HAPI的IValidatorInterceptor接口,重写validateResource方法
  • 在方法内先判断待校验资源是否为Observation类型,提取code字段中的LOINC编码
  • 匹配到76536-2编码时,校验valueQuantity的code是否在允许的单位列表范围内
  • 不符合规则时直接将校验错误信息添加到校验结果中即可

两种方案都不需要修改HAPI核心校验逻辑,完全兼容FHIR标准,可直接覆盖你描述的场景需求。

内容的提问来源于stack exchange,提问作者Kevin Rave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:09:03