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

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

Track 002 - 术语服务

应用场景

HIS系统在患者登记输入患者户籍时,需要获得适用于此数据元的值域。此值域中的允许值来自于主数据管理系统中维护的对应的值集,及其引用的代码系统。可通过主数据管理系统提供符合FHIR标准的术语服务来提供这一能力。

如果值集中的代码直接参与计算,就需要应用开发人员硬编码这些参与计算的代码;否则,应用系统就可预加载或仅在需要时实时加载这些代码。前者情况下,应用的开发人员在设计时需要访问主数据管理系统并获得最新的可用值集;后者情况下,应用系统将在运行时通过术语服务动态加载所需的值集,以便保证所用代码的时效性。

当系统运行环境存在异构系统参与并需要与其互操作,则经常需要对交换的代码进行概念映射(代码转换)。这种情况下,使用主数据管理系统事先维护好两种不同值集的代码之间的映射规则(通过概念映射)。当交互的请求方发起请求前,需要首先访问术语服务获得概念映射并完成代码转换,然后调用接收方并提交包含接收方可理解代码的请求。

系统角色及功能:

  • HIS系统:患者档案管理,患者数据上报功能;
  • 主数据管理系统(MDM):支持元数据管理并提供术语服务,支持业务系统开发人员查询元数据,支持异构系统之间的编码映射;\
  • 数据上报平台(Reporting Platform):负责提供数据上报接口及接口规范;

这里有图

本场景中,HIS系统除了用于患者档案管理,还需要和数据上报平台进行交互,以完成向上级监管机构的数据上报。此时,MDM系统需要实现维护好来自不同异构系统的值集之间的概念映射,当HIS系统需要开始数据上报时,首先访问MDM的术语服务获得所需的概念映射并完成相关代码转换,以便开始之后对数据上报平台的上报请求调用。

测试用例

某家位于北京市的医院希望其HIS系统的患者档案录入功能中,户籍所在地一项具有一套面向本市更加细分的行政区划数据,同时又能兼容全国和国外的场景。此外,这些数据可以在向监管平台上报时,根据预定义的映射规则自动完成映射。

医院希望患者的户籍所在地根据具体情况存在以下可能:

  • 患者为北京市户籍,则填写具体区一级的行政区划代码;
  • 患者不为北京市户籍,但为中国籍,则填写省一级行政区划代码;
  • 患者不为中国籍,则填写“外国籍”代码(国籍分类代码);
  • 患者户籍未知,则填写“未知”代码(HL7术语);

监管机构希望从医院上报的患者数据,其户籍所在地一项满足以下情况:

  • 存在二级及以上行政区划的,向其所属一级行政区划映射;
  • 存在外国籍或未知户籍的,则统一映射为“其它”;

为了实现该场景提出的需求,现需要以下资源实例:

  1. 主数据管理系统的术语服务中需要包含以下几种代码系统:
    • 中国行政区划代码
    • 北京市行政区划代码
    • 国籍分类代码
  2. 主数据管理系统的术语服务中需要包含以下几种值集:
    • 患者户籍值集,用于HIS系统患者档案中患者户籍使用;
    • 患者户籍上报值集,用于向数据上报平台上报患者户籍时使用;
    • 北京市行政区划值集,用于作为北京市内的区级行政区划代码映射到上报使用的北京市代码的映射源;
  3. 主数据管理系统的术语服务中需要包含以下概念映射:
    • 患者户籍值集映射到患者户籍上报值集,用于将本地系统使用的值集映射到上报平台规定的值集;

参与角色

  • 客户端:作为HIS系统,能使用FHIR术语服务
  • 服务器:作为MDM系统,能提供FHIR术语服务

测试步骤

条件:代码系统、值集、概念映射内容已存在,提供JSON或XML格式。 动作:支持针对CodeSystem、ValueSet、ConceptMap资源的查询、展示、映射等操作,以上操作要采用FHIR的术语服务提供的默认方法和操作实现,通过POSTMAN等工具验证;

查询代码系统

测试动作:客户端调用术语服务接口,发起CodeSystem资源查询中国行政区划代码、北京市行政区划代码、国籍分类代码; 前置条件:测试前,服务端已具备中国行政区划、北京市行政区划、国籍分类代码系统; 验证标准:正确返回中国行政区划代码、北京市行政区划代码、国籍分类代码内容。

查询值集

测试动作:客户端调用术语服务接口,发起ValueSet资源查询患者户籍值集、患者户籍上报值集; 前置条件:测试前,服务端已具备中国行政区划、北京市行政区划、国籍分类代码系统,患者户籍、患者户籍上报值集; 验证标准:正确返回患者户籍值集,患者户籍上报值集内容。

查询概念映射

测试动作:客户端调用术语服务接口,发起ConceptMap资源查询患者户籍值集映射到患者户籍上报值集; 前置条件:测试前,服务端已具备中国行政区划、北京市行政区划、国籍分类代码系统,患者户籍、患者户籍上报、北京市行政区划值集,患者户籍值集映射到患者户籍上报值集概念映射; 验证标准:正确返回患者户籍值集映射到患者户籍上报值集概念映射内容。

使用$lookup查找代码详情

测试动作:客户端调用术语服务接口,发起CodeSystem资源查找国籍分类代码中的native和foreign的代码详情; 前置条件:测试前,服务端已具备国籍分类代码系统; 验证标准:正确返回native和foreign的代码详情内容,包括显示名称和定义。

使用$expand展开值集

测试动作:客户端调用术语服务接口,发起ValueSet资源展开患者户籍值集中所有的允许值; 前置条件:测试前,服务端已具备中国行政区划、北京市行政区划、国籍分类代码系统,患者户籍值集, 验证标准:正确返回中国行政区划、北京市行政区划的所有代码,以及外国籍和未知的代码。

使用$translate映射值集

测试动作:客户端调用术语服务接口,发起ConceptMap资源映射患者户籍值集中北京市东城区、外国籍、未知代码到患者户籍上报值集中的对应代码; 前置条件:测试前,服务端已具备中国行政区划、北京市行政区划、国籍分类代码系统,患者户籍、患者户籍上报、北京市行政区划值集,患者户籍值集映射到患者户籍上报值集概念映射; 验证标准:北京市东城区代码被映射为北京市代码,外国籍和未知代码被映射为其它代码。