FHIR v4中如何在Task资源纳入评估点优化问卷任务分组排序?
FHIR v4 Task资源评估点优化方案
1. 标准化纳入评估点到Task资源并支持查询
FHIR v4没有原生字段专门存储评估点,但可以通过**自定义扩展(Extension)**实现标准化,且支持便捷查询:
- 定义一个结构化扩展,指定专属URL(比如
http://your-org.com/fhir/StructureDefinition/task-assessment-timepoint),扩展内部包含两个核心元素:code:用编码标识评估点(如T0、T1),建议绑定自定义的CodeSystem或ValueSet,保证编码一致性display:评估点的友好名称(如“入院时”、“两周随访”)
- 将该扩展嵌入Task资源的
extension数组,示例结构如下:
{ "resourceType": "Task", "extension": [ { "url": "http://your-org.com/fhir/StructureDefinition/task-assessment-timepoint", "valueCodeableConcept": { "coding": [ { "system": "http://your-org.com/fhir/CodeSystem/assessment-timepoints", "code": "T0", "display": "入院时" } ] } } ], // 其他Task字段... }
- 查询时直接通过扩展参数过滤,比如:
- 筛选所有T0评估点的任务:
Task?extension=http://your-org.com/fhir/StructureDefinition/task-assessment-timepoint&extension:code=T0 - 也可通过
_filter参数实现更复杂的条件查询
- 筛选所有T0评估点的任务:
如果评估点与任务计划执行时间强关联,可结合Task.occurrencePeriod或Task.occurrenceTiming字段,但该字段用于存储实际时间范围,评估点作为业务标记,使用扩展更精准。
2. 存储评估点可选列表的最佳实践
用ValueSet资源管理评估点可选列表是FHIR的标准做法:
- 先定义
CodeSystem,录入所有评估点的编码、显示名称及描述:
{ "resourceType": "CodeSystem", "url": "http://your-org.com/fhir/CodeSystem/assessment-timepoints", "content": "complete", "concept": [ { "code": "T0", "display": "入院时", "definition": "患者入院当日完成的评估" }, { "code": "T1", "display": "两周随访", "definition": "患者出院后14天完成的随访评估" } ] }
- 再创建
ValueSet引用上述CodeSystem,纳入所有可用评估点:
{ "resourceType": "ValueSet", "url": "http://your-org.com/fhir/ValueSet/assessment-timepoints", "compose": { "include": [ { "system": "http://your-org.com/fhir/CodeSystem/assessment-timepoints" } ] } }
- 这样用户创建Task时,可直接从该ValueSet中选择评估点,同时Task的扩展可绑定此ValueSet做校验,确保输入的评估点均为预定义的合法值。
若评估点需复杂属性(如时间偏移规则),可在CodeSystem的concept.property中添加自定义属性(比如offsetDays存储T1对应的14天偏移量),方便系统自动计算任务执行时间。
内容的提问来源于stack exchange,提问作者KimHafr
相关产品推荐
相关产品推荐

