HL7中国FHIR Connectathon测试实施指南
2024.5.5 - release
本指南适用于HL7中国的FHIR Connectathon测试。
医疗保健领域的许多组织对表单填报功能非常感兴趣。本实施指南提供了有关在医疗保健领域如何定义和完成问卷的指导,包括表单定义、填报、提取等能力。
表单填报服务交互规范定义了一个基于FHIR规范的有关问卷调查的交互接口。
在交互规范中定义的交易参考了HL7的SDC规范。
本规范基于FHIR R5版本进行设计。
在本文档中包括如下角色:
Questionnaire
和QuestionnaireResponse
的存储Questionnaire
和QuestionnaireResponse
的用户界面,允许用户填写表单并提交答案。QuestionnaireResponse
中提取数据到其它资源中。下图描述了角色以及角色之间的交易服务:
交易如下表所示:
角色 | 标识 | 交易描述 | 可选性 |
---|---|---|---|
表单存储库 | IST-FRM-001 | 提交调查问卷 | R |
表单存储库 | IST-FRM-002 | 更新调查问卷 | R |
表单存储库 | IST-FRM-003 | 查询调查问卷 | R |
表单存储库 | IST-FRM-004 | 读取调查问卷 | R |
表单存储库 | IST-FRM-005 | 提交调查问卷应答 | R |
表单存储库 | IST-FRM-006 | 查询调查问卷应答 | R |
表单存储库 | IST-FRM-007 | 提取观察数据 | R |
表单设计器 | IST-FRM-001 | 提交调查问卷 | R |
表单设计器 | IST-FRM-002 | 更新调查问卷 | R |
表单设计器 | IST-FRM-003 | 查询调查问卷 | R |
表单设计器 | IST-FRM-004 | 读取调查问卷 | R |
表单填充器 | IST-FRM-003 | 查询调查问卷 | R |
表单填充器 | IST-FRM-004 | 读取调查问卷 | R |
表单填充器 | IST-FRM-005 | 提交调查问卷应答 | R |
表单提取器 | IST-FRM-006 | 查询调查问卷应答 | R |
表单提取器 | IST-FRM-007 | 提取观察数据 | R |
在本交互规范的当前版本定义了如下7个交易:
本交易由表单设计器
角色和表单存储库
角色使用。提交问卷调查(IST-FRM-001)交易用于向表单存储库
角色提交问卷调查的内容。
调用地址:
POST http://[ip]:[port]/[form]/Questionnaire
此消息使用POST
方法将问卷调查的内容作为Questionnaire
资源进行传输。
请求消息体的Content-Type
应为application/fhir+json
或 application/fhir+xml
。
消息体定义参见问卷调查的结构说明。
这里提供了一个参考示例,具体格式和内容参见新冠病毒感染状况问卷调查资源示例页面。
响应消息反馈了提交调查问卷请求的处理结果,应遵循如下约束条件:
201 Create
标识整个请求处理成功。400
和500
标识整个请求处理失败;OperationOutcome
资源。具体内容参见后面的异常处理
章节。本交易由表单设计器
角色和表单存储库
角色使用。更新调查问卷(IST-FRM-002)交易用于向表单存储库
角色发起更新指定调查问卷的请求。
调用地址:
PUT http://[ip]:[port]/[form]/Questionnaire/[id]
此消息使用PUT
方法将问卷调查的内容作为Questionnaire
资源进行传输。
请求消息体的Content-Type
应为application/fhir+json
或 application/fhir+xml
。
消息体定义参见调查问卷的结构说明。
这里提供了一个参考示例,具体格式和内容参见新冠病毒感染状况问卷调查资源示例页面。
响应消息应返回符合查询条件的资源结果集,应遵循如下约束条件:
200 OK
标识整个请求处理成功。400
和500
标识整个请求处理失败;OperationOutcome
资源。具体内容参见后面的异常处理
章节。本交易由表单设计器
、表单填充器
角色和表单存储库
角色使用。查询问卷调查(IST-FRM-003)交易用于向表单存储库
角色进行有关调查问卷的查询。
调用地址:
GET http://[ip]:[port]/[form]/Questionnaire?[param=value]
查询参数表示为一系列的name-value对,这些name-value对表示查询的筛选器,在本规范中需支持:
Parameter | Type | Description | Element |
---|---|---|---|
status | token | 调查问卷的状态 | status |
title | string | 调查问卷的标题 | title |
date | date | 调查问卷的发布时间 | date |
响应消息应返回符合查询条件的资源结果集,应遵循如下约束条件:
200 OK
标识整个请求处理成功。Bundle
资源,其中包含零到多个Questionnaire
资源。
处理失败:OperationOutcome
资源。具体内容参见后面的“异常处理”章节。本交易由表单设计器
、表单填充器
角色和表单存储库
角色使用。读取问卷调查(IST-FRM-004)交易用于向表单存储库
角色发起获取指定调查问卷的请求。
调用地址:
GET http://[ip]:[port]/[form]/Questionnaire/[id]
此服务请求使用GET
方法针对指定的调查问卷进行获取操作。
请求消息体为空。
正常情况下,响应消息应返回指定的调查问卷,应遵循如下条件:
200 OK
标请求处理成功。Questionnaire
资源。
如果处理失败:OperationOutcome
资源。具体内容参见后面的“异常处理”章节。本交易由表单填充器
角色和表单存储库
角色使用。提交调查问卷应答(IST-FRM-005)交易用于向表单存储库
角色提交填报完毕的调查问卷应答。
调用地址:
POST http://[ip]:[port]/[form]/QuestionnaireResponse
此消息使用POST
方法将调查问卷应答的内容作为QuestionnaireResponse
资源进行传输。
请求消息体的Content-Type
应为application/fhir+json
或 application/fhir+xml
。
消息体内容应为QuestionnaireResponse
资源,定义参见调查问卷应答的结构说明。
这里提供了一个参考示例,与前面的新冠病毒感染状况调查问卷相呼应。参见新冠病毒感染状况调查问卷应答资源示例页面。
响应消息反馈了提交调查问卷应答请求的处理结果,应遵循如下约束条件:
201 Create
标识请求处理成功。400
和500
标识整个请求处理失败;OperationOutcome
资源。具体内容参见后面的异常处理
章节。本交易由表单提取器
角色和表单存储库
角色使用。查询调查问卷应答(IST-FRM-006)交易用于向表单存储库
角色进行有关调查问卷应答的查询。
调用地址:
GET http://[ip]:[port]/[form]/QuestionnaireResponse
此服务请求使用GET
方法进行查询操作。
请求消息体为空。
查询参数表示为一系列的name-value对,这些name-value对表示查询的筛选器,在本规范中最少需支持:
Parameter | Type | Description | Element |
---|---|---|---|
questionnaire | token | 调查问卷 | questionnaire |
status | token | 状态 | type |
authored | date | 调查问卷填写时间 | date |
响应消息应返回符合查询条件的资源结果集,应遵循如下约束条件:
200 OK
标识整个请求处理成功。Bundle
资源,其中包含零到多个QuestionnaireResponse
资源。
处理失败:OperationOutcome
资源。具体内容参见后面的“异常处理”章节。本交易由表单提取器
角色和表单存储库
角色使用。提取观察数据(IST-FRM-007)交易用于向表单存储库
角色发起提取数据的请求。
此操作为满足业务需求而自定义的操作。操作的定义参见问卷调查提取数据的结构说明。
调用地址:
GET http://[ip]:[port]/[form]/QuestionnaireResponse/[id]/$extract
此服务请求使用GET
方法针对指定的调查问卷应答进行数据提取操作。
请求消息体为空。
响应消息应按照调查问卷条目中提取标记返回资源结果,应遵循如下条件:
200 OK
标识整个请求处理成功。Bundle
资源,其中包含多个Observation
资源。Observation
资源。
处理失败:OperationOutcome
资源。具体内容参见后面的“异常处理”章节。在进行服务交易时如果出现异常,服务端会采用统一的方式进行异常信息的反馈,也就是返回OperationOutcome
资源,由该资源记录异常处理信息。
下表给出了表单填报服务中预定义的异常编码取值:
Code | Description |
---|---|
QueryParamError | 查询参数不正确 |
MissExtractFlag | 数据提取时在调查问卷定义中不存在数据提取标记 |
FormError | 其它的、不明确的处理错误 |
异常消息示例:
<OperationOutcome xmlns="http://hl7.org/fhir">
<id value="OperationOutcomeExample01"/>
<issue>
<severity value="error"/>
<code value="process"/>
<details>
<coding>
<system value="http://hl7.org.cn/fhir/CodeSystem/operationoutcome-form-code"/>
<code value="QueryParamError"/>
<display value="查询参数不正确"/>
</coding>
</details>
<diagnostics value="不支持的查询参数:[name]"/>
</issue>
</OperationOutcome>