HL7中国FHIR Connectathon测试实施指南
2024.5.5 - release

本指南适用于HL7中国的FHIR Connectathon测试。

预约挂号服务规范

概述

预约服务交互规范定义了一个基于FHIR规范的有关预约挂号的交互接口。

本规范基于FHIR R5版本进行设计。

角色与交易

角色

在本文档中包括如下角色:

  • 服务请求者: 提供对资源ScheduleSlotAppointment的存储
  • 预约服务提供者: 用于生成和编辑表单定义的工具
  • 排班服务提供者: 用于生成和编辑表单定义的工具

角色与交易

下图描述了角色以及角色之间的交易服务:

这里有张用例图

交易如下表所示:

角色 标识 交易描述 可选性
排班服务提供者 IST-APP-001 查询排班信息 R
预约服务提供者 IST-APP-002 新增预约信息 R
预约服务提供者 IST-APP-003 查询预约信息 R
服务请求者 IST-APP-001 查询排班信息 R
服务请求者 IST-APP-002 新增预约信息 R
服务请求者 IST-APP-003 查询预约信息 R

交易

在本交互规范的当前版本定义了如下7个交易:

查询排班信息(IST-APP-001)

本交易由服务请求者角色和排班服务提供者角色使用。查询排班信息(IST-APP-001)交易用于向排班服务提供者角色进行有关排班信息的查询。

调用地址:

GET http://[ip]:[port]/[emr]/Slot?[param=value]
请求消息

查询参数表示为一系列的name-value对,这些name-value对表示查询的筛选器,在本规范中需支持:

Parameter Type Description Element
status token 排班信息的状态 status
start date 排班的开始时间 start
schedule.actor.name string 医生的姓名 Schedule.actor
响应消息

响应消息应返回符合查询条件的资源结果集,应遵循如下约束条件:

  • 使用状态码200 OK标识整个请求处理成功。
  • 返回Bundle资源,其中包含零到多个SlotSchedule(由Slot关联)资源。 处理失败:
  • 如果执行失败,则应返回OperationOutcome资源。具体内容参见后面的“异常处理”章节。

新增预约信息(IST-APP-002)

本交易由服务请求者角色和预约服务提供者角色使用。新增预约信息(IST-APP-002)交易用于向预约服务提供者角色提交预约信息。

调用地址:

POST http://[ip]:[port]/[appointment]/Appointment/$book
请求消息

此消息使用POST方法以操作的方式将预约信息内容作为Appointment资源进行传输。

请求消息体的Content-Type应为application/fhir+jsonapplication/fhir+xml

消息体定义参见预约信息的结构说明

这里提供了一个参考示例,具体格式和内容参见预约信息资源示例页面

响应消息

响应消息反馈了新增预约信息请求的处理结果,应遵循如下约束条件:

  • 使用状态码201 Create标识整个请求处理成功。
  • 无响应消息体。

处理失败:

  • 使用状态码400500标识整个请求处理失败;
  • 如果执行失败,则应返回OperationOutcome资源。具体内容参见后面的异常处理章节。

查询预约信息(IST-APP-003)

本交易由服务请求者角色和预约服务提供者角色使用。查询预约信息(IST-APP-003)交易用于向预约服务提供者角色进行有关排班信息的查询。

调用地址:

GET http://[ip]:[port]/[appointment]/Appointment?[param=value]
请求消息

查询参数表示为一系列的name-value对,这些name-value对表示查询的筛选器,在本规范中需至少支持:

Parameter Type Description Element
status token 预约信息的状态 status
subject.name string 预约患者姓名 subject
响应消息

响应消息应返回符合查询条件的资源结果集,应遵循如下约束条件:

  • 使用状态码200 OK标识整个请求处理成功。
  • 返回Bundle资源,其中包含零到多个Appointment资源。

处理失败:

  • 如果执行失败,则应返回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>