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

如何在FHIR Questionnaire中实现个性化问题文本?是否存在其他方案?

FHIR Questionnaire个性化文本的替代技术方案

通常FHIR Questionnaire的问题文本是静态的(比如PHQ-9问卷),但针对诊所的非标准化表单,为提升用户体验需要对问题文本做个性化处理——比如家长为儿科受抚养人填写入院表时,把通用问题改成“请告知我们John的身高”。除了你提到的两种方案,还有以下几种可行的技术方案:

1. 利用FHIR原生的variable元素结合FHIRPath表达式

FHIR规范里的Questionnaire.item自带variable字段,可以直接定义变量和对应的FHIRPath表达式,从关联的上下文资源(比如Patient、RelatedPerson)中动态提取数据。

  • 示例:
    • Questionnaire.item.text: "请告知我们{patientName}的身高"
    • Questionnaire.item.variable: 定义变量patientName,对应表达式为%patient.name.first().given.first() + ' ' + %patient.name.first().family
  • 优势:无需自定义扩展,完全遵循FHIR原生规范,只要消费者支持FHIRPath就能解析,适合基于FHIR生态的系统复用。

2. 渲染层动态替换文本

保持Questionnaire本身的静态性,把个性化逻辑放在前端或渲染服务层。当需要展示问卷时,渲染端根据Questionnaire文本中的标记(比如{dependent_name}),从当前上下文的FHIR资源(比如已加载的Patient信息)中提取对应字段,实时替换后再展示给用户。

  • 优势:不修改Questionnaire资源结构,问卷本身保持高度复用性,个性化逻辑集中在渲染侧,适合多系统共享同一基础问卷的场景。

3. 用FHIR Library封装模板逻辑

创建独立的FHIR Library资源,把所有文本替换的规则、变量映射用FHIR Expression定义好,然后让Questionnaire通过relatedArtifact字段引用这个Library。

  • 示例:
    • Library中定义表达式:$dependentName = %relatedPerson.name.first().given.first()
    • Questionnaire.item.text: "请告知我们{$dependentName}的身高"
    • Questionnaire.relatedArtifact: 指向该Library资源
  • 优势:模板逻辑与问卷本体解耦,同一个Library可以被多个问卷复用,消费者通过解析Library获取替换规则,符合FHIR的模块化设计思路。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 02:40:07