HL7中国FHIR Connectathon测试实施指南
2024.5.5 - release
本指南适用于HL7中国的FHIR Connectathon测试。
审计服务(AT-on-FHIR)交互规范定义了一个基于FHIR规范的有关审计事件的交互接口。
在交互规范中定义的交易参考了IHE的ATNA规范。
本交互规范寻求一种IHE ATNA的替代方案,简化交互接口,适用于当前流行的网络交互。
本规范基于FHIR R5版本进行设计。
在本文档中包括如下角色:
提交审计事件
服务接口的应用系统。下图描述了角色以及角色之间的交易服务:
交易如下表所示:
角色 | 标识 | 交易描述 | 可选性 |
---|---|---|---|
审计源 | IST-AT-001 | 提交审计事件 | R |
审计事件消费者 | IST-AT-002 | 查询审计事件 | R |
审计服务提供者 | IST-AT-001 | 提交审计事件 | R |
IST-AT-002 | 查询审计事件 | R |
审计事件仅能新增,不提供对审计事件的修改和删除功能。
在本交互规范的当前版本定义了如下2个交易:
本交易由审计事件提交者角色和审计服务提供者角色使用。提交审计事件(IST-AT-001)交易用于向审计服务提供者角色提交审计事件消息。
调用地址:
POST http://[ip]:[port]/[audit]/AuditEvent
此消息使用POST
方法将审计事件信息作为AuditEvent
资源进行传输。
请求消息体的Content-Type
应为application/fhir+json
或 application/fhir+xml
。
消息体定义参见核心审计事件结构定义。
消息体示例提供了两个典型活动的参考示例:
具体格式和内容参见审计事件消息示例页面。
响应消息反馈了提交审计事件请求的处理结果,应遵循如下约束条件:
200 OK
标识整个请求处理成功。400
和500
标识整个请求处理失败;OperationOutcome
资源。具体内容参见后面的异常处理
章节。本交易由审计事件消费者角色和审计服务提供者角色使用。查询审计事件(IST-AT-002)交易用于向审计服务提供者角色进行有关审计事件的查询。
调用地址:
GET http://[ip]:[port]/[audit]/AuditEvent
查询参数表示为一系列的name-value对,这些name-value对表示查询的筛选器,在本规范中需支持:
参数 | 参数类型 | 描述 | 对应元素 |
---|---|---|---|
action | token | 审计事件活动类型 | action |
category | token | 审计事件类型(粗粒度) | category |
code | token | 审计事件类型(细粒度) | code |
date | date | 审计事件记录时间 | recorded |
outcome | token | 审计事件结果 | outcome.code |
source | reference | 审计源的标识 | source.observer |
agent | reference | 参与者 | agent.who |
响应消息应返回符合查询条件的资源结果集,应遵循如下约束条件:
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>