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

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

审计服务规范

概述

审计服务(AT-on-FHIR)交互规范定义了一个基于FHIR规范的有关审计事件的交互接口。

在交互规范中定义的交易参考了IHE的ATNA规范。

本交互规范寻求一种IHE ATNA的替代方案,简化交互接口,适用于当前流行的网络交互。

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

角色与交易

角色

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

  • 审计服务提供者: 指向提供审计事件注册服务的应用程序。这指代提供提交审计事件服务接口的应用系统。
  • 审计事件消费者: 指向作为审计事件消费者的应用程序。
  • 审计源: 指向作为审计事件提交者的应用程序。

角色与交易

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

这里有张用例图

交易如下表所示:

角色 标识 交易描述 可选性
审计源 IST-AT-001 提交审计事件 R
审计事件消费者 IST-AT-002 查询审计事件 R
审计服务提供者 IST-AT-001 提交审计事件 R
  IST-AT-002 查询审计事件 R

审计事件仅能新增,不提供对审计事件的修改和删除功能。

交易

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

提交审计事件(IST-AT-001)

本交易由审计事件提交者角色和审计服务提供者角色使用。提交审计事件(IST-AT-001)交易用于向审计服务提供者角色提交审计事件消息。

调用地址:

POST http://[ip]:[port]/[audit]/AuditEvent
请求消息

此消息使用POST方法将审计事件信息作为AuditEvent资源进行传输。

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

消息体定义参见核心审计事件结构定义

消息体示例提供了两个典型活动的参考示例:

  • 系统登录事件
  • 系统启动事件

具体格式和内容参见审计事件消息示例页面

响应消息

响应消息反馈了提交审计事件请求的处理结果,应遵循如下约束条件:

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

查询审计事件(IST-AT-002)

本交易由审计事件消费者角色和审计服务提供者角色使用。查询审计事件(IST-AT-002)交易用于向审计服务提供者角色进行有关审计事件的查询。

调用地址:

GET http://[ip]:[port]/[audit]/AuditEvent
请求消息

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

参数 参数类型 描述 对应元素
action token 审计事件活动类型 action
type token 审计事件类型(粗粒度) type
subtype token 审计事件类型(细粒度) subtype
date date 审计事件记录时间 date
outcome token 审计事件结果 outcome
source token 审计源的标识 source.observer
agent-name string 参与者名称 agent.name
响应消息

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

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

审计事件类型代码表

如下给出一些常见的审计事件类型代码:

事件类型 事件名称
110100 系统活动相关
110114 用户权限相关
rest RESTful操作

更多的类型参见Audit Event ID

事件子类型 事件名称
110120 系统启动
110121 系统停止
110122 用户登录
110123 用户登出
110136 用户角色变更
110137 用户权限变更

更多的类型参见AuditEvent SubType Codes

异常处理

在进行服务交易时如果出现异常,服务端会采用统一的方式进行异常信息的反馈,也就是返回OperationOutcome资源,由该资源记录异常处理信息。

下表给出了审计事件服务中预定义的异常编码取值:

Code Description
AuditMissingSource 消息体中缺少审计源
AuditMessageError 消息格式错误
AuditError 其它的、不明确的处理错误

异常消息示例:

<OperationOutcome xmlns="http://hl7.org/fhir">
  <id value="AuditOperationOutcomeExample01"/>
  <issue>
    <severity value="error"/>
    <code value="process"/>
    <details>
      <coding>
        <system value="http://hl7.org.cn/fhir/CodeSystem/operationoutcome-code-audit"/>
        <code value="AuditMessageError"/>
        <display value="消息格式错误"/>
      </coding>
    </details>
    <diagnostics value="审计消息格式错误"/>
  </issue>
</OperationOutcome>