Home Applications HL7V3ToJson

HL7V3ToJson

Community Project
This project is maintained by its author and is not officially supported by InterSystems. For technical support, please contact the project developer.
0
0 reviews
0
Awards
3
Views
0
IPM installs
0
Add to bundle
Details
Releases (1)
Reviews
Issues
JSON examples, test data, and XML/JSON conversion tools for hospital integration messages based on WS/T 846-2024 and HL7 V3.

What's new in this version

Initial release: JSON examples and test data for WS/T 846-2024 hospital integration messages, with Java XML/JSON converters and Python generation scripts. Three representative JSON samples were parsed using InterSystems IRIS for Health 2026.2; this validates JSON parsing only, not an IRIS integration workflow.

HL7V3ToJson - 医院信息平台交互标准 (V3)

基于 WS/T 846-2024 国家卫生行业标准,将 HL7 V3 消息从 XML 格式转换为更简洁、易用的 JSON 格式,方便医院信息平台各系统间对接和接口测试。


目录


项目概述

本项目将《医院信息平台交互标准》(WS/T 846-2024)系列 PDF 文档中定义的 XML 消息格式,转换为结构化的 JSON 格式,包含以下两类数据:

  • json-examples/:带有字段注释的 JSON 示例,用于理解和学习消息结构
  • json-demo/:纯净测试数据,可直接用于接口开发和自动化测试

同时提供 Java 版的 JSON/XML 互转工具和 Python 数据生成脚本。

标准文档

说明:WS/T 846 系列标准共 11 个部分,其中第 1 部分为总则,第 9 部分(费用信息交互服务)尚未发布,本项目覆盖其余 9 个部分。

部分 标准编号 名称 页数
第2部分 WS/T 846.2-2024 个人信息注册、查询服务 38页
第3部分 WS/T 846.3-2024 医疗卫生机构注册、查询服务 21页
第4部分 WS/T 846.4-2024 医疗卫生人员注册、查询服务 24页
第5部分 WS/T 846.5-2024 术语注册、查询服务 18页
第6部分 WS/T 846.6-2024 文档注册、查询服务 27页
第7部分 WS/T 846.7-2024 就诊信息交互服务 128页
第8部分 WS/T 846.8-2024 医嘱信息交互服务 44页
第10部分 WS/T 846.10-2024 预约信息交互服务 66页
第11部分 WS/T 846.11-2024 状态信息交互服务 91页

前置依赖

JSON 数据使用

无依赖,直接使用任意 HTTP 客户端或编程语言解析 JSON 文件即可。

Java 转换器

依赖 版本要求 说明
JDK 11+ 编译和运行 Java 程序
org.json 20231013+ JSON 解析库(仅 HospitalXmlJsonConverter 需要)

HospitalConverter 和 SimpleConverter 无需第三方依赖,仅使用 JDK 内置库。

# 下载 org.json 依赖(仅编译 HospitalXmlJsonConverter 时需要)
curl -L -o json.jar 'https://repo1.maven.org/maven2/org/json/json/20231013/json-20231013.jar'

编译全部类

javac -cp json.jar -d out/ src/main/java/com/hospital/converter/*.java

运行

java -cp out:json.jar com.hospital.converter.HospitalXmlJsonConverter json2xml input.json output.xml

Python 脚本

依赖 版本要求 说明
Python 3.8+ 运行数据生成脚本
python3 scripts/generate_test_data.py

目录结构

HL7V3ToJson/
├── README.md                              # 项目说明(中文)
├── README_EN.md                           # 项目说明(英文)
│
├── json-examples/                         # JSON示例文件(含字段说明)
│   ├── README.md                          # 目录说明
│   ├── 字段说明.md                        # 完整字段说明文档
│   ├── 第2部分_个人信息/                   # 个人信息服务 (10个文件)
│   │   ├── 注册请求.json
│   │   ├── 注册应答成功.json
│   │   ├── 注册应答异常.json
│   │   ├── 更新请求.json
│   │   ├── 查询请求.json
│   │   ├── 查询应答成功.json
│   │   ├── 查询应答异常.json
│   │   ├── 合并请求.json
│   │   ├── 字段说明.json
│   │   └── 字段说明.md
│   ├── 第3部分_医疗机构/                   # 医疗机构服务 (8个文件)
│   │   ├── 注册请求.json
│   │   ├── 更新请求.json
│   │   ├── 查询请求.json
│   │   ├── 查询应答.json
│   │   ├── 通用应答.json
│   │   ├── 字段说明.json
│   │   ├── 字段说明.md
│   │   └── schema.json
│   ├── 第4部分_医护人员/                   # 医护人员服务 (7个文件)
│   │   ├── 注册请求.json
│   │   ├── 更新请求.json
│   │   ├── 查询请求.json
│   │   ├── 查询应答.json
│   │   ├── 通用应答.json
│   │   ├── 字段说明.json
│   │   └── 字段说明.md
│   ├── 第5部分_术语/                       # 术语服务 (7个文件)
│   │   ├── 注册请求.json
│   │   ├── 更新请求.json
│   │   ├── 查询请求.json
│   │   ├── 查询应答.json
│   │   ├── 通用应答.json
│   │   ├── 字段说明.json
│   │   └── 字段说明.md
│   ├── 第6部分_文档/                       # 文档服务 (6个文件)
│   │   ├── 注册请求.json
│   │   ├── 查询请求.json
│   │   ├── 查询应答.json
│   │   ├── 通用应答.json
│   │   ├── 字段说明.json
│   │   └── 字段说明.md
│   ├── 第7部分_就诊信息/                   # 就诊信息服务 (22个文件)
│   │   ├── 就诊卡新增请求.json
│   │   ├── 就诊卡更新请求.json
│   │   ├── 就诊卡查询请求.json
│   │   ├── 就诊卡查询应答.json
│   │   ├── 门诊挂号新增请求.json
│   │   ├── 门诊挂号更新请求.json
│   │   ├── 门诊挂号查询请求.json
│   │   ├── 门诊挂号查询应答.json
│   │   ├── 住院登记请求.json
│   │   ├── 住院更新请求.json
│   │   ├── 住院查询请求.json
│   │   ├── 住院查询应答.json
│   │   ├── 住院转科新增请求.json
│   │   ├── 住院转科更新请求.json
│   │   ├── 住院转科查询请求.json
│   │   ├── 住院转科查询应答.json
│   │   ├── 出院登记新增请求.json
│   │   ├── 出院登记更新请求.json
│   │   ├── 出院信息查询请求.json
│   │   ├── 出院信息查询应答.json
│   │   ├── 字段说明.json
│   │   └── 字段说明.md
│   ├── 第8部分_医嘱/                       # 医嘱服务 (7个文件)
│   │   ├── 开立请求.json
│   │   ├── 查询请求.json
│   │   ├── 查询应答.json
│   │   ├── 通用应答.json
│   │   ├── 字段说明.json
│   │   ├── 字段说明.md
│   │   └── schema.json
│   ├── 第10部分_预约/                      # 预约服务 (8个文件)
│   │   ├── 申请请求.json
│   │   ├── 申请应答.json
│   │   ├── 取消请求.json
│   │   ├── 取消应答.json
│   │   ├── 查询请求.json
│   │   ├── 查询应答.json
│   │   ├── 字段说明.json
│   │   └── 字段说明.md
│   └── 第11部分_状态/                      # 状态服务 (6个文件)
│       ├── 更新请求.json
│       ├── 更新应答.json
│       ├── 查询请求.json
│       ├── 查询应答.json
│       ├── 字段说明.json
│       └── 字段说明.md
│
├── json-demo/                             # 纯净测试数据(可用于接口测试)
│   ├── README.md
│   ├── 字段说明.md
│   ├── 第2部分_个人信息/                   # 8个JSON文件
│   ├── 第3部分_医疗机构/                   # 5个JSON文件
│   ├── 第4部分_医护人员/                   # 5个JSON文件
│   ├── 第5部分_术语/                       # 5个JSON文件
│   ├── 第6部分_文档/                       # 4个JSON文件
│   ├── 第7部分_就诊信息/                   # 20个JSON文件
│   ├── 第8部分_医嘱/                       # 4个JSON文件
│   ├── 第10部分_预约/                      # 6个JSON文件
│   └── 第11部分_状态/                      # 4个JSON文件
│
├── java-converter/                        # Java JSON/XML互转工具
│   ├── README.md
│   ├── converter.sh
│   └── src/main/java/com/hospital/converter/
│       ├── HospitalConverter.java         # 基础转换器(无外部依赖)
│       ├── SimpleConverter.java           # 简化转换器
│       └── HospitalXmlJsonConverter.java  # 完整转换器(需 org.json)
│
└── scripts/                               # 工具脚本
    ├── xml_to_json.py                     # XML转JSON脚本
    ├── generate_test_data.py              # 测试数据生成器
    ├── fill_values.py                     # 字段填充工具
    ├── generate_comprehensive_json.py     # 综合JSON生成器
    ├── generate_part7_json.py             # 第7部分专用生成器
    ├── extract_and_generate.py            # PDF提取与生成
    ├── analyze_pdfs.py                    # PDF分析工具
    └── add_sample_values.py               # 示例值填充

文件统计

目录 JSON文件 MD文件 说明
json-examples/ 72个 11个 含字段说明的JSON示例
json-demo/ 61个 11个 纯净测试数据
总计 133个 22个

消息类型汇总

第2部分:个人信息服务

服务 交互标识符 说明
个人信息注册 PRPA_IN201311UV02 新患者信息注册
个人信息更新 PRPA_IN201314UV02 患者信息更新
个人信息查询 PRPA_IN201305UV02 患者信息查询
个人信息合并 PRPA_IN201304UV02 重复记录合并

第3部分:医疗机构服务

服务 交互标识符 说明
机构注册 PRPM_IN401030UV01 新机构信息注册
机构更新 PRPM_IN403010UV01 机构信息更新
机构查询 PRPM_IN406010UV01 机构信息查询

第4部分:医护人员服务

服务 交互标识符 说明
人员注册 PRPM_IN301010UV01 新人员信息注册
人员更新 PRPM_IN303010UV01 人员信息更新
人员查询 PRPM_IN306010UV01 人员信息查询

第5部分:术语服务

服务 交互标识符 说明
术语注册 PRVS_IN000001UV01 新术语注册
术语更新 PRVS_IN000002UV01 术语信息更新
术语查询 PRVS_IN000003UV01 术语信息查询

第6部分:文档服务

服务 交互标识符 说明
文档注册 RCMR_IN000002UV02 医疗文档注册
文档查询 RCMR_IN000031UV01 医疗文档查询

第7部分:就诊信息服务

服务 交互标识符 说明
就诊卡信息新增 PRPA_IN201311UV02 就诊卡信息注册
就诊卡信息更新 PRPA_IN201314UV02 就诊卡信息更新
就诊卡信息查询 PRPA_IN201305UV02 就诊卡信息查询
门诊挂号信息新增 PRPA_IN400001UV 门诊挂号登记
门诊挂号信息更新 PRPA_IN400002UV 门诊挂号更新
门诊挂号信息查询 PRPA_IN900300UV 门诊挂号查询
住院就诊信息登记 PRPA_IN400001UV 住院入院登记
住院就诊信息更新 PRPA_IN400002UV 住院信息更新
住院就诊信息查询 PRPA_IN900300UV 住院信息查询
住院转科信息新增 PRPA_IN302011UV 住院转科登记
住院转科信息更新 PRPA_IN302012UV 住院转科更新
住院转科信息查询 PRPA_IN900300UV 住院转科查询
出院登记信息新增 PRPA_IN400003UV01 出院登记
出院登记信息更新 PRPA_IN400002UV 出院信息更新
出院信息查询 PRPA_IN900300UV 出院信息查询

第8部分:医嘱服务

服务 交互标识符 说明
医嘱新增 POOR_IN200901UV 医嘱信息开立
医嘱更新 POOR_IN200902UV 医嘱信息更新
医嘱查询 QUMT_IN020030UV01 医嘱信息查询

第10部分:预约服务

服务 交互标识符 说明
预约申请 POOR_IN200910UV 预约挂号申请
预约取消 POOR_IN200911UV 预约挂号取消
预约查询 QUMT_IN020050UV01 预约信息查询

第11部分:状态服务

服务 交互标识符 说明
状态更新 POOR_IN200920UV 业务状态更新
状态查询 QUMT_IN020070UV01 业务状态查询

通用字段说明

消息头 (messageHeader)

字段 类型 必填 说明
id.root string 是 固定值 2.16.156.10011.2.5.1.1
id.extension string 是 消息流水号
creationTime datetime 是 格式:yyyyMMddHHmmss
interactionId.extension string 是 服务标识代码
processingCode string 是 D-调试 / P-产品 / T-训练
acceptAckCode string 是 AL-总是 / ER-仅错误 / NE-从不

应答消息 (acknowledgement)

字段 类型 必填 说明
typeCode string 是 AA-成功 / AE-失败 / AR-拒绝
targetMessage.id.extension string 是 请求消息流水号
acknowledgementDetail.text string 是 处理结果说明

OID标识符对照表

OID 说明
2.16.156.10011.2.5.1.1 消息流水号
2.16.156.10011.2.5.1.2 消息服务标识
2.16.156.10011.2.5.1.3 系统标识
2.16.156.10011.2.5.1.4 患者编号
2.16.156.10011.1.3 身份证件号码
2.16.156.10011.1.4 医护人员工号
2.16.156.10011.1.5 医院编码
2.16.156.10011.1.10 门(急)诊号
2.16.156.10011.1.12 住院号
2.16.156.10011.1.19 居民健康卡号
2.16.156.10011.1.26 科室编码
2.16.156.10011.1.27 病区编码
2.16.156.10011.1.28 医嘱编码

使用说明

1. 查看JSON示例

# 查看医嘱开立请求示例(含字段说明)
cat json-examples/第8部分_医嘱/开立请求.json

查看纯净测试数据

cat json-demo/第8部分_医嘱/开立请求.json

2. 使用测试数据进行接口测试

# 使用curl测试接口
curl -X POST http://your-api/order/create \
  -H "Content-Type: application/json" \
  -d @json-demo/第8部分_医嘱/开立请求.json

3. 使用Java转换器

cd java-converter/src/main/java

编译(无需第三方依赖)

javac com/hospital/converter/HospitalConverter.java

JSON转XML

java com.hospital.converter.HospitalConverter json2xml input.json output.xml

XML转JSON

java com.hospital.converter.HospitalConverter xml2json input.xml output.json

4. 使用Python脚本

# 生成测试数据
python3 scripts/generate_test_data.py

版本信息

  • 标准版本: WS/T 846-2024
  • 发布日期: 2024-10-28
  • 实施日期: 2025-04-01
  • 项目状态: 已完成
Version
1.0.004 Nov, 2026
Categories
Data SetIntegration
Works with
InterSystems IRIS for Health
First published
04 Nov, 2026
Last edited
04 Nov, 2026