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

如何用FHIR Shorthand(SUSHI)定义新FHIR复杂类型及相关疑问

关于FHIR Shorthand与复杂类型定义的问题解答

问题1:是否可通过FHIR Shorthand定义可复用的新FHIR复杂类型?若不可行,有哪些替代方案?

完全可以,FHIR Shorthand(FSH)支持通过Complex关键字直接定义自定义复杂类型,示例代码如下:

Complex MyCustomComplexType
  description "自定义的可复用复杂类型"
  id 1..1 string "唯一标识"
  measurementValue 0..1 decimal "测量数值"
  unit 0..1 CodeableConcept "计量单位"

这段FSH会生成一个kind为complex-type的StructureDefinition,可在同IG的其他Profile、资源定义中直接引用。

如果因工具版本或特殊场景无法使用FSH,替代方案包括:

  • 手动编写FHIR StructureDefinition的JSON/XML文件,直接指定kind为complex-type,并定义相应的元素结构;
  • 使用FHIR官方提供的IG Publisher工具,结合模板文件生成复杂类型定义。

问题2:既然FSH是专为FHIR Implementation Guides(IGs)设计的语言,是否仅适用于IG,无法用于编辑FHIR规范的工件?

FSH的设计初衷确实是为了简化IG的开发,但技术上并不局限于IG场景。你可以用FSH生成任何FHIR规范级别的工件(包括核心复杂类型、资源等),只要最终生成的StructureDefinition符合FHIR元数据规范即可。

不过需要注意:FHIR核心规范的官方维护流程并未使用FSH,而是采用了内部工具链。如果是要贡献到FHIR官方标准,还是需要遵循官方的提交流程;但如果是自己维护私有规范或扩展规范,完全可以用FSH来编写和管理。

问题3:FHIR IG中是否允许定义kind为"complex-types"的StructureDefinition,以便在同IG或其他IG中复用?

当然允许,这是FHIR IG中实现类型复用的标准方式之一:

  • 同IG内复用:定义好复杂类型后,在其他Profile或资源定义中直接通过类型名引用即可,FSH会自动处理引用关系;
  • 跨IG复用:在目标IG的依赖声明中添加包含该复杂类型的IG,然后在StructureDefinition中通过完整的URL引用这个复杂类型即可。

这种方式能有效减少重复定义,提升IG的一致性和可维护性。


内容的提问来源于stack exchange,提问作者Stefan Hubert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:10:32