宁夏回族自治区医疗器械唯一标识

数据接口规范

宁夏回族自治区药品监督管理局

2024年5月

目 录

医疗器械唯一标识数据接口规范	1

医疗器械唯一标识数据接口规范	1

1. 范围	1

2. 规范性引用文件	1

3. 术语和定义	1

3.1医疗器械唯一标识 unique device identifier	2

3.2 产品标识 device identifier	2

3.3 生产标识 production identifier	2

3.4 应用标识符 application identifier	2

3.5 数据接口 data interface	3

4. 缩略语	3

5. 接口方法及调用说明	3

5.1. 接口通用说明	3

5.1.1. 访问协议	3

5.1.2. 认证授权	4

5.1.3. 公共请求参数	5

5.1.4. 公共响应参数	5

5.1.5. 请求参数签名	6

5.1.6. 通用成功应答	6

5.1.7. 通用失败应答	6

5.1.8. 异常码	7

5.2. 客户端认证接口	7

5.3. 医院数据推送接口	9

5.3.1. 【接口】推送医院器械耗材出入库信息	9

5.3.2. 【接口】推送医院科室器械耗材出入库信息	11

5.3.3. 【接口】推送患者器械耗材使用消耗数据	14

5.3.4. 【接口】推送医院器械耗材收费项目信息	16

5.3.5. 【接口】推送医院记账结算信息	17

5.4. 经营企业数据推送接口	19

5.4.1. 【接口】推送经营企业耗材出入库信息	19

5.4.2. 【接口】推送经营企业资质信息	22

5.4.3. 【接口】推送经营企业销售（眼镜店）信息	24

5.4.4. 【接口】推送企业发票开票信息	25

5.5. 生产企业数据推送接口	28

5.5.1. 【接口】推送原辅料记录	28

5.5.2. 【接口】推送生产订单记录	29

5.6. 器械耗材通用数据采集	31

5.6.1. 【接口】推送器械耗材库存信息	31

5.6.2. 【接口】推送采购订单信息	33

5.7. 附录	35

5.7.1. 获取ASCII的十六进制字符串（Java代码示例）	35

5.7.2. RSA公私钥代码示例（加密、解密、签名、验签）	35

医疗器械唯一标识数据接口规范

范围

本文件规定了宁夏回族自治区医疗器械唯一标识（UDI）追溯平台与第三方（包括生产商、供应商、医疗机构）系统之间进行数据交换的接口方法和调用说明。

本文件适用于宁夏回族自治区医疗器械唯一标识（UDI）追溯平台与生产商、供应商、医疗机构各信息系统间的数据对接。

规范性引用文件

下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中，注日期的引用文件，仅该日期对应的版本适用于本文件；不注日期的引用文件，其最新版本（包括所有的修改单）适用于本文件。

GB/T 16986—2018 商品条码 应用标识符

YY/T 1681—2019 医疗器械唯一标识系统基础术语

术语和定义

YY/T 1681—2019、GB/T 16986—2018 界定的术语和定义适用于本文件。

3.1医疗器械唯一标识 unique device identifier

基于标准创建的一系列由数字、字母和/或符号组成的代码，包括产品标识和生产标识，用于对医疗器械进行唯一性识别。

注1：“唯一”一词并不意味着对单个产品进行序列化管理。

注2：可用于医疗器械产品的管理和追溯等。

[来源：YY/T 1681—2019，定义 3.1]

3.2 产品标识 device identifier

特定于某种规格型号和包装医疗器械的唯一性代码。

注：产品标识可用作对医疗器械唯一标识数据库存储信息的“访问关键字”，关联医疗器械产品信息、制造商信息、注册信息等。

[来源：YY/T 1681—2019，定义 3.2]

3.3 生产标识 production identifier

识别医疗器械生产过程相关数据的代码。

注：根据实际应用需求，生产标识可包含医疗器械序列号、生产批号、生产日期、失效日期等。

[来源：YY/T 1681—2019，定义 3.3]

3.4 应用标识符 application identifier

标识数据含义与格式的字符，由 2 位～4 位数字组成。

[来源：GB/T 16986—2018，定义 3.1]

3.5 数据接口 data interface

计算机软件系统之间传送数据、交换信息的接口，以电子文件的形式实现。

缩略语

AI：应用标识符（Application Identifier）

HTTP：超文本传输协议（HyperText Transfer Protocol）

JSON：JavaScript 对象表示法（Javascript Object Notation）

UDI：医疗器械唯一标识（Unique Device Identifier）

UDI-DI：产品标识（Unique Device Identifier-Device Identifier）

UDI-PI：生产标识（Unique Device Identifier-Production Identifier）

接口方法及调用说明

接口通用说明

访问协议

统一技术标准，采用基于HTTP协议的REST服务方式进行交互。

传输方式	支持HTTP/HTTPS传输
提交方式	POST
数据传输格式	提交和返回数据可以为JSON格式（Content-Type: application/json）
字符编码	统一采用UTF-8字符编码
签名算法	SHA256
签名要求	访问医疗器械追溯平台的请求都需要签名，以确保数据发送方为合法Client以及防止参数篡改和重放攻击。
认证授权

接口调用方在调用服务之前，必须获取接口服务提供方的访问授权，即医疗器械唯一标识追溯平台会为接入的医院和经营企业颁发client_id和client_secret以及公私钥，接入方使用client_id和client_secret进行认证获取token，接口交互时在所有请求Header中携带token信息。

一个应用可以多次重复认证，每次重复认证时，授权令牌 token 的值会被刷新，旧的值会失效。

授权令牌token在没有重新认证的情况下，永久有效。

Header参数名	Header参数值
Authorization	[REDACTED]认证流程：

认证接口：参考3章节认证接口

公共请求参数

以下公共参数需拼接在每个请求url之后或者添加到请求header，例如：http://ip:port/openapi/hos-coll/purchaseOrder?client_id=xxxnonce=xxxx&timestamp=1682435233592&op=add&sign=xxxxxxxxxxxxxxx

参数名	参数描述	类型定义	必填	说明
nonce	请求随机标识	String	是	每次请求生成一个唯一编号，全局唯一（建议采用UUID）。
sign	签名	String	是	私钥签名串（签名规则参考2.5）
client_id	客户端ID	String	是	追溯平台分配
timestamp	时间戳	Long	是	请求时间戳
op	推送数据到平台的数据采用新增或是更新策略	String	是	add：新增
update：更新
公共响应参数

参数名	参数描述	类型定义	说明
code	响应码	String	响应码，“STATUS_000”标识成功应答，其他响应码表示错误应答。
data	响应业务数据	Object	各接口请求业务参数的内容不同，实际内容以各接口接口为准；接口请求业务参数值，参数JSON的格式。
message	响应消息	String	响应提示消息
success	请求是否成功	Boolean	请求成功失败标识（业务层面）
请求参数签名

医院或经营企业在对接医疗器械唯一标识追溯平台时，平台会为每一家对接结构分配client_id（客户端ID），client_secret（客户端密钥），private_key（接入机构私钥），其中client_id、client_secret用于从追溯平台获取token，private_key用于同追溯平台交互时进行公共请求参数签名。

签名规则如下：

（1）将公共请求参数nonce、timestamp、client_id三个字段按照ASCII的十六进制字符串（Java代码参考9.1）进行降序排序之后用“&”符号拼接成待签名字符串。

例如：client_id=xxx&nonce=yyy&timestamp=zzzz

（2）将待签名字符串使用追溯平台分配的私钥进行签名，得到签名字符串sign。

（3）将sign进行UrlEncode转义特殊字符，代码如URLEncoder.encode(sign, "UTF-8")

（4）将公共请求参数nonce、client_id、timestamp、sign添加到每个请求url。

例如：http://ip:port/openapi/hos-coll/purchaseOrder?nonce=xxxx&client_id=10001&timestamp=1682435233592&op=add&sign=xxxxxxxxxxxxxxx

（5）公私钥信息参考9.2

密钥算法RSA

密钥长度：1024

签名算法：SHA1WithRSA

编码格式：PKCS8（java适用）或PKCS1（非java适用）

追溯平台颁发的密钥格式默认为：PKCS8，如果接入方系统开发语言为非java语言，则请转换为PKCS1格式后再进行签名。

通用成功应答

{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
通用失败应答

{

"message": "系统异常",

"code": "STATUS_999",

"data": null,

"respNo": "2a094b5c0708c138105884bfd4b398ae",

"success": false

}
异常码

错误码	错误描述	说明
STATUS_000	请求成功
STATUS_999	系统异常
AUTH_100	认证异常
BIS_1000	参数校验错误
AUTH_403	token过期	需要重新获取token
客户端认证接口

接口名称	客户端认证
业务说明	医疗机构对接唯一标识追溯平台时，追溯平台会为每家医疗机构颁发client_id、client_secret做为身份标识，医疗机构与追溯平台进行接口交互之前需凭client_id、client_secret向追溯平台申请token，之后每次交互都需带着该token。

如果调用接口推送数据时，追溯平台响应错误码为AUTH_403，则需重新获取token。

该接口不需要进行参数签名，也不需要携带公共请求参数!!!
实际URL	[POST] /api/oauth/client/token
输入参数
字段名	描述	必填	字段类型
clientId	客户ID	true	字符串
clientSecret	客户密钥	true	字符串
输出参数
字段名	描述	字段类型
access_token	token凭证	string
bearer_type	认证类型	string
token_type	凭证类型	string
oauth2_type	Oauth2类型	string
isExpired	过期标识	string
expiration	过期时间	string(date-time)
expires_in	过期时长	string
refresh_token	刷新token凭证	string
scope	授权范围	string
clientId	客户端ID	string
输入数据格式举例
{

"clientId": "test",

"clientSecret": "123456"

}
输出数据格式举例
{

"success": true,

"msg": "交易处理结果:数据操作成功",

"code": "STATUS_000",

"data": {

"access_token": "[REDACTED],

"bearer_type": "Bearer",

"token_type": "bearer",

"oauth2_type": "OAuth2",

"isExpired": false,

"expiration": "2023-09-12 19:49:41:594",

"expires_in": 29759,

"refresh_token": null,

"scope": [

"all"

],

"clientId": null

}

}

医院数据推送接口

【接口】推送医院器械耗材出入库信息

接口名称	推送医院器械耗材出入库信息
功能说明
实际URL	[POST] /openapi/hos-coll/deviceIOutbound
请求参数
字段名	类型	必传	描述	备注
evenCode	字符串	否	事件编号，唯一编号防止重复
hospitalCode	字符串	是	医院企业信用代码（哪家医院数据）
hospitalName	字符串	是	医院名称
shipperCompName	字符串	是	发货对象名称
shipperCompCode	字符串	是	发货对象企业信用代码
shipperCompType	字符串	是	发货企业类型：

1-生产企业

2-经营企业

3-医疗机构

4-科室
receiverCompName	字符串	是	收货对象名称
receiverCompCode	字符串	是	收货对象企业信用代码
receiverCompType	字符串	是	收货企业类型：

1-生产企业

2-经营企业

3-医疗机构

4-科室
deliveryNo	字符串	否	配送单号（若涉及配送单号）
crkNo	字符串	是	出入库单号
crkScene	字符串	是	出入库交易场景：

"HI01"：医院入库-收货入库【采购收货】

"HI02"：医院入库-红冲入库【科室退回】

"HO01"：医院出库-调拨出库【科室申请调拨】

"HO02"：医院出库-红冲出库【医院退货】
crkType	字符串	是	出入库类型：

1-入库

2-出库
crkTime	字符串	是	入库时间（yyyy-MM-dd HH:mm:ss）
deviceList	数组	是	出入库耗材清单	√代表数组元素字段
√udi	字符串	是	器械耗材UDI编码
√di	字符串	是	器械耗材DI编码
√crkNums	数字	是	出入库数量
√unitAmount	字符串	是	耗材单价
√totalAmount	字符串	是	总金额
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

"evenCode"："",

"hospitalCode": "",

"hospitalName": "",

"shipperCompName": "",

"shipperCompCode": "",

"shipperCompType": "",

"receiverCompName": "",

"receiverCompCode": "",

"receiverCompType": "",

"deliveryNo": "",

"crkNo": "",

"crkScene": "",

"crkType": "",

"crkTime": "",

"deviceList": [

{

"udi": "",

"di": "",

"crkNums": 0,

"unitAmount": "",

"totalAmount": ""

}

]

}
响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
【接口】推送医院科室器械耗材出入库信息

接口名称	推送医院科室器械耗材出入库信息
功能说明
实际URL	[POST] /openapi/hos-coll/dptDeviceIObound
请求参数
字段名	类型	必传	描述	备注
evenCode	字符串	否	事件编号，唯一编号防止重复
hospitalCode	字符串	是	医院企业信用代码（哪家医院数据）
hospitalName	字符串	是	医院名称
departCode	字符串	否	科室编码
departName	字符串	是	科室名称
shipperCompName	字符串	是	发货对象名称
shipperCompCode	字符串	否	发货对象企业信用代码
shipperCompType	字符串	是	发货企业类型：

3-医疗机构

4-科室

5-人
receiverCompName	字符串	是	收货对象名称
receiverCompCode	字符串	否	收货对象企业信用代码
receiverCompType	字符串	是	收货企业类型：

3-医疗机构

4-科室

5-人
crkNo	字符串	是	出入库单号
crkTime	字符串	是	出入库时间
crkType	字符串	是	出入库类型：

1-入库

2-出库
deliveryNo	字符串	否	调拨单号或配送单号
crkScene	字符串	是	出入库场景：

"DI01"：科室入库-科室申请调拨

"DI02"：科室入库-红冲

"DO12"：科室出库-患者使用

"DO13"：科室出库-退货中心库
deviceList	数组	是	出入库耗材清单	√代表数组元素字段
√udi	字符串	是	器械耗材UDI编码
√di	字符串	是	器械耗材DI编码
√crkNums	数字	是	出入库数量
√unitAmount	字符串	否	耗材单价
√totalAmount	字符串	否	总金额
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

"evenCode": "",

"hospitalCode": "",

"hospitalName": "",

"departCode": "",

"departName": "",

"shipperCompName": "",

"shipperCompCode": "",

"shipperCompType": "",

"receiverCompName": "",

"receiverCompCode": "",

"receiverCompType": "",

"crkNo": "",

"crkTime": "",

"crkType": "",

"crkScene": "",

"deviceList": [

{

"udi": "",

"di": "",

"crkNums": 0,

"unitAmount": "",

"totalAmount": ""

}

]

}
响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
【接口】推送患者器械耗材使用消耗数据

接口名称	推送患者器械耗材使用消耗数据
功能说明
实际URL	[POST] /openapi/hos-coll/dptPatientUsed
请求参数
字段名	类型	必传	描述	备注
evenCode	字符串	否	事件编号，唯一编号防止重复
patientName	字符串	是	患者姓名
idCard	字符串	否	身份证
opEmHpExNo	字符串	否	病案号
jzNo	字符串	否	就诊卡号
hospitalName	字符串	是	医疗机构名称
hospitalCode	字符串	是	医疗机构信用代码
departName	字符串	是	使用科室名称
departCode	字符串	否	科室编码
useTime	字符串	是	使用时间
useType	字符串	是	业务类型：

1-患者使用

2-患者退货（红冲）
deviceList	数组	是	患者使用耗材清单	√代表数组元素字段
√udi	字符串	是	器械耗材UDI编码
√di	字符串	是	器械耗材DI编码
sftscp	字符串	否	是否特殊产品	Y/N
√deviceCode	字符串	否	耗材代码（医院耗材代码）
√useNums	数字	是	使用数量
√unitAmount	字符串	否	耗材单价
√totalAmount	字符串	否	总金额
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

"evenCode": "",

"patientName": "",

"idCard": "",

"opEmHpExNo": "",

"hospitalName": "",

"hospitalCode": "",

"departName": "",

"departCode": "",

"useTime": "",

"useType": "",

"sftscp": "",

"jzNo": "",

"deviceList": [

{

"udi": "",

"di": "",

"deviceCode": "",

"useNums": 0,

"unitAmount": "",

"totalAmount": ""

}

]

}
响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
【接口】推送医院器械耗材收费项目信息

接口名称	推送医院器械耗材收费项目信息
功能说明
实际URL	[POST] /openapi/hos-coll/deviceChargeProject
请求参数
字段名	类型	必传	描述	备注
hospitalName	字符串	是	医疗机构名称
hospitalCode	字符串	是	医疗机构企业信用代码
chargeCode	字符串	是	收费项目代码
chargeName	字符串	是	收费项目名称
deviceCode	字符串	否	耗材代码
ybflbm	字符串	否	医保分类编码
di	字符串	否	器械耗材DI编码
adultPrice	字符串	是	病人价格（成人）
childrenPrice	字符串	是	病人价格（儿童）
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

"hospitalName": "",

"hospitalCode": "",

"chargeCode": "",

"chargeName": "",

"deviceCode": "",

"ybflbm": "",

"di": "",

"adultPrice": "",

"childrenPrice": ""

}
响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
【接口】推送医院记账结算信息

接口名称	推送医院记账结算信息
功能说明
实际URL	[POST] /openapi/hos-coll/settlement
请求参数
字段名	类型	必传	描述	备注
billingNo	字符串	是	记账单号
settlementCompName	字符串	是	结算企业名称
settlementCompCode	字符串	是	结算企业信用代码
hospitalName	字符串	是	医疗机构名称
hospitalCode	字符串	是	医疗机构代码
settlementTotalAmount	字符串	是	结算总金额
billingTime	字符串	是	记账单创建时间(yyyy-MM-dd HH:mm:ss)
deviceList	数组	是	出入库耗材清单	√代表数组元素字段
√di	字符串	是	器械耗材DI编码
√nums	数字	是	耗材数量
√unitAmount	字符串	是	耗材单价
√totalAmount	字符串	是	耗材记账总金额
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

"billingNo": "",

"settlementCompName": "",

"settlementCompCode": "",

"hospitalName": "",

"hospitalCode": "",

"settlementTotalAmount": "",

"billingTime": "",

"deviceList": [

{

"di": "",

"nums": 0,

"unitAmount": "",

"totalAmount": ""

}

]

}
响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
经营企业数据推送接口

【接口】推送经营企业耗材出入库信息

接口名称	推送经营企业器械耗材出入库信息
功能说明
实际URL	[POST] /openapi/vendor-coll/deviceIOnbound
请求参数
字段名	类型	必传	描述	备注
evenCode	字符串	否	事件编号，唯一编号防止重复
vendorCode	字符串	是	经营企业信用代码
vendorName	字符串	是	经营企业名称
shipperCompName	字符串	是	发货对象名称
shipperCompCode	字符串	是	发货对象企业信用代码
shipperCompType	字符串	是	发货企业类型：

1-生产企业

2-经营企业

3-医疗机构
receiverCompName	字符串	是	收货对象名称
receiverCompCode	字符串	是	收货对象企业信用代码
receiverCompType	字符串	是	收货企业类型：

1-生产企业

2-经营企业

3-医疗机构
deliveryNo	字符串	否	配送单号（若涉及配送单号）
crkNo	字符串	是	出入库单号
fhdzbm	字符串	否	发货地址编码
fhdz	字符串	否	发货地址
shdzbm	字符串	否	收货地址编码
shdz	字符串	否	收货地址
psgsmc	字符串	否	配送或物流公司名称
psgsxydm	字符串	否	配送或物流公司的统一社会信用代码
yshj	字符串	否	运输环境
crkScene	字符串	是	"VI01"：经营企业入库-厂商发货

（场景：经营企业向上游进行采购，经营企业产生入库，包含经营企业采购手工入库）

(场景：经营企业向上游进行采购经营或直接在系统中手工入库，经营企业产生入库)

"VI02"：经营企业入库-红冲【医院回退】

（场景：医院面向经营企业退货，经营企业产生入库）

"VI03"：经营企业入库-红冲【经营企业】

（场景：经营企业A退货经营企业B，经营企业B产生入库）

"VI04"：经营企业入库-红冲【眼镜实体店】

（场景：眼镜店A退货眼镜店B，眼镜店B产生入库）

"VI05"：经营企业入库-红冲【用户退货】

（场景：用户购买退货眼镜店，眼镜店产生入库）

"VO01"：经营企业出库-配送【医疗机构】

（场景：经营企业面向医疗机构销售配送，经营企业产生出库）

"VO02"：经营企业出库-配送【经营企业】

（场景：经营企业A面向经营企业B销售，经营企业A产生出库）

"VO03"：经营企业出库-配送【眼镜实体店】

（场景：眼镜店A面向眼镜店B销售，眼镜店A产生出库）

"VO04"：经营企业出库-红冲【回退厂商】

（场景：经营企业A退货生产企业（经营企业），经营企业A产生出库）

"VO05"：经营企业出库-消耗【眼镜实体店】

（场景：眼镜实体店面向用户销售，眼镜店产生出库）
crkType	字符串	是	出入库类型：

1-入库

2-出库
crkTime	字符串	是	入库时间
deviceList	数组	是	出入库耗材清单	√代表数组元素字段
√udi	字符串	是	器械耗材UDI编码
√di	字符串	是	器械耗材DI编码
sftscp	字符串	否	是否特殊产品	Y/N
√crkNums	数字	是	出入库数量
√unitAmount	字符串	否	耗材单价
√totalAmount	字符串	否	总金额
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

"evenCode": "",

"vendorCode": "",

"vendorName": "",

"shipperCompName": "",

"shipperCompCode": "",

"shipperCompType": "",

"receiverCompName": "",

"receiverCompCode": "",

"fhdzbm": "",

"fhdz": "",

"shdzbm": "",

"shdz": "",

"psgsmc": "",

"psgsxydm": "",

"yshj": "",

"receiverCompType": "",

"deliveryNo": "",

"crkNo": "",

"crkScene": "",

"crkType": "",

"crkTime": "",

"deviceList": [

{

"udi": "",

"di": "",

"crkNums": 0,

"unitAmount": "",

"totalAmount": ""

}

]

}
响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
【接口】推送经营企业资质信息

接口名称	推送经营企业资质信息
功能说明
实际URL	[POST] /openapi/vendor-coll/qualification
请求参数
字段名	类型	必传	描述	备注
enterpriseName	字符串	是	企业名称
enterpriseCode	字符串	是	企业信用代码
enterpriseType	字符串	是	企业类型：

1-生产

2-供应商
qualificationNo	字符串	是	资质编号
qualificationName	字符串	是	资质名称
qualificationType	字符串	是	资质类型
from	字符串	是	有效开始时间[yyyy-MM-dd HH:mm:ss]
to	字符串	是	有效结束时间[yyyy-MM-dd HH:mm:ss]
permanent	字符串	是	资质是否长期有效	1：长期有效

0：非长期有效
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

"enterpriseName": "",

"enterpriseCode": "",

"enterpriseType": "",

"qualificationNo": "",

"qualificationName": "",

"qualificationType": "",

"permanent": "",

"from": "",

"to": ""

}
响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
【接口】推送经营企业销售（眼镜店）信息

接口名称	推送经营企业销售（眼镜店）信息
功能说明
实际URL	[POST] /openapi/vendor-coll/patientUsed
请求参数
字段名	类型	必传	描述	备注
evenCode	字符串	否	事件编号，唯一编号防止重复
enterpriseName	字符串	是	企业名称
enterpriseCode	字符串	是	企业信用代码
idCard	字符串	是	身份证
patientName	字符串	是	患者姓名
mobile	字符串	是	手机号
udi	字符串	是	UDI编码
di	字符串	是	DI编码
useTime	字符串	是	使用时间（yyyy-MM-dd HH:mm:ss）
useNums	字符串	是	使用数量
opEmHpExNo	字符串	是	门诊/急诊/住院/体检编号，病案号
useType	字符串	是	业务类型：

1-患者使用

2-患者退货（红冲）
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

" evenCode": "",

"enterpriseName": "",

"enterpriseCode": "",

"idCard": "",

"patientName": "",

"mobile": "",

"udi": "",

"di": "",

"useTime": "",

"useNums": 0,

"useType": "",

"opEmHpExNo": ""

}
响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
【接口】推送企业发票开票信息

接口名称	推送企业发票开票信息
功能说明
实际URL	[POST] /openapi/vendor-coll/invoice
请求参数
字段名	类型	必传	描述	备注
salerName	字符串	否	销售方名称
salerCode	字符串	是	销售方纳税人识别号
buyerName	字符串	否	购买方名称
buyerCode	字符串	是	购买方纳税人识别号
deliveryNo	字符串	否	配送单号（若涉及配送单号）
invoiceNumber	字符串	是	税务发票号
invoiceCode	字符串	否	税务发票代码
productAmount	字符串	是	总金额
taxTotalAmount	字符串	否	总税额
prodTaxAmount	字符串	否	价税合计
taxType	字符串	否	发票类型：

0-增普

1-增专

2-电子发票
invoiceType	字符串	否	发票种类：

0-蓝字发票

1-红字发票
invoiceTime	字符串	是	开票时间（yyyy-MM-dd HH:mm:ss）
invoiceDetails	数组	否	开票明细清单	√代表数组元素字段
√invoiceLineNum	字符串	否	发票行号
√deviceName	字符串	否	医疗器械耗材名称
√spec	字符串	否	规格型号
√unit	字符串	否	单位
√nums	数字	否	数量
√unitAmount	字符串	否	单价
√totalAmount	字符串	否	金额
√taxRate	字符串	否	税率
√taxAmount	字符串	否	税额
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

"salerName": "",

"salerCode": "",

"buyerName": "",

"buyerCode": "",

"invoiceNumber": "",

"invoiceCode": "",

"productAmount": "",

"taxAmount": "",

"prodTaxAmount": "",

"taxType": "",

"invoiceType": "",

"invoiceTime": "",

"invoiceDetails": [

{

"invoiceLineNum": "",

"deviceName": "",

"spec": "",

"unit": "",

"nums": 0,

"unitAmount": "",

"totalAmount": "",

"taxRate": "",

"taxAmount": ""

}

]

}
响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}

生产企业数据推送接口

【接口】推送原辅料记录

接口名称	推送生产企业原辅料记录
功能说明
实际URL	[POST] /openapi/produce-coll/material
请求参数
字段名	类型	必传	描述	备注
event_id	字符串	是	唯一标识，用于验证是否重复提交
timestamp	字符串	是	时间戳

格式为 YYYYMMddHHmmssSSS

时区为 GMT+8

例如：20190821164206080
qymc	字符串	是	当前上传的企业名称
tyshxydm	字符串	是	当前企业的统一社会信用代码

测试环境：95105368TS1SMQL7O4
mac	字符串	是	当前上传数据信息的计算机的Mac地址
yflmc	字符串	是	原辅料名称
gysmc	字符串	是	器械耗材名称
cd	字符串	是	供应商名称
jyy	字符串	是	检验员
ysrq	时间	是	验收日期

格式 yyyy-MM-dd

时区为 GMT+8
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

"event_id": "事件编号",

"qymc": "企业名称",

"tyshxydm": "统一社会行用代码",

"timestamp": "时间戳",

"mac": "计算机Mac地址",

"yflmc": "原辅料名称",

"gysmc": "供应商名称",

"cd": "产地",

"jyy": "检验员",

"ysrq": "验收日期"

}

响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
【接口】推送生产订单记录

接口名称	推送生产企业生产订单记录
功能说明
实际URL	[POST] /openapi/produce-coll/order
请求参数
字段名	类型	必传	描述	备注
event_id	字符串	是	唯一标识，用于验证是否重复提交
timestamp	字符串	是	时间戳

格式为 YYYYMMddHHmmssSSS

时区为 GMT+8

例如：20190821164206080
qymc	字符串	是	当前上传的企业名称
tyshxydm	字符串	是	当前企业的统一社会信用代码

测试环境：95105368TS1SMQL7O4
mac	字符串	是	当前上传数据信息的计算机的Mac地址
cpmc	字符串	是	产品名称
gysmc	字符串	是	规格型号
scxkzh	字符串	是	生产许可证号
zczh	字符串	是	注册证号
scpc	字符串	是	生产批次
scrq	时间	是	生产日期

格式 yyyy-MM-dd

时区为 GMT+8
yxq	时间	是	有效期

格式 yyyy-MM-dd

时区为 GMT+8
ddh	字符串	是	订单号
scsl	字符串	是	生产数量
mjjl	字符串	是	灭菌记录
jyjl	字符串	是	检验记录
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

"event_id": "事件编号",

"qymc": "企业名称",

"tyshxydm": "统一社会行用代码",

"timestamp": "时间戳",

"mac": "计算机Mac地址",

"cpmc":"产品名称",

"ggxh":"规格型号",

"scxkzh":"生产许可证号",

"zczh":"注册证号",

"scpc":"生产批次",

"scrq":"生产日期",

"yxq":"有效期",

"ddh":"订单号",

"scsl":"生产数量",

"mjjl":"灭菌记录",

"jyjl":"检验记录"

}

响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
器械耗材通用数据采集

【接口】推送器械耗材库存信息

接口名称	推送医院器械耗材库存信息
功能说明
实际URL	[POST] /openapi/common-coll/inventory
请求参数
字段名	类型	必传	描述	备注
enterpriseName	字符串	是	企业名称
enterpriseCode	字符串	是	企业信用代码
enterpriseType	字符串	是	企业类型：

1-生产企业

2-经营企业

3-医疗机构

4-眼镜店
countTime	字符串	是	统计时间（yyyy-MM-dd HH:mm:ss）
di	字符串	是	器械耗材DI编码
sftscp
否	是否特殊产品
deviceName	字符串	是	器械耗材名称
spec	字符串	是	规格型号
scph	字符串	否	生产批号（按生产批号维度统计库存）
scrq	字符串	否	生产日期格式yyyy-MM-dd（生产批号对应的生产日期）
sxrq	字符串	否	失效期yyyy-MM-dd格式（生产批号对应的失效期）
special	字符串	是	是否特殊产品Y/N
inventoryNums	数字	是	产品库存数量
warehouseName	字符串	是	仓库名称
warehouseLocation	字符串	是	仓库位置
ckqubm
否	仓库所在区域编码
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

"sftscp": "",

"ckqubm": "",

"enterpriseName": "",

"enterpriseCode": "",

"enterpriseType": "",

"countTime": "",

"di": "",

"deviceName": "",

"spec": "",

"scph": "",

"scrq": "",

"sxrq": "",

"special": "",

"inventoryNums": 0,

"warehouseName": "",

"warehouseLocation": ""

}
响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
【接口】推送采购订单信息

接口名称	推送医院采购订单信息
功能说明
实际URL	[POST] /openapi/common-coll/purchaseOrder
请求参数
字段名	类型	必传	描述	备注
purchaseNo	字符串	是	采购单号
purchaseTime	字符串	是	采购时间，格式（yyyy-MM-dd HH:mm:ss）	2023-11-22 12:00:00
orderTotalAmount	字符串	是	采购订单总金额	50.06
supplyCompName	字符串	是	供货企业名称
supplyCompCode	字符串	是	供货企业信用代码
supplyCompType	字符串	是	供货企业类型：

1-生产企业

2-经营企业

3-医疗机构
purchaseCompName	字符串	是	采购企业名称
purchaseCompCode	字符串	是	采购企业信用代码
purchaseCompType	字符串	是	采购企业类型：

1-生产企业

2-经营企业

3-医疗机构	医院固定传3
deviceList	数组	是	采购器械耗材清单	√代表数组元素字段
√di	字符串	是	器械耗材DI编码
√nums	数字	是	采购器械耗材数量	10
√unitAmount	字符串	是	采购单价	20.50
√totalAmount	字符串	是	采购总金额	205.00
结果响应
字段名	类型	必传	描述	备注
通用成功应答	Json
参考2.6
请求数据示例
{

"purchaseNo": "",

"purchaseTime": "",

"orderTotalAmount": "",

"supplyCompName": "",

"supplyCompCode": "",

"supplyCompType": "",

"purchaseCompName": "",

"purchaseCompCode": "",

"purchaseCompType": "",

"deviceList": [

{

"di": "",

"nums": 0,

"unitAmount": "",

"totalAmount": ""

}

]

}
响应数据示例
{

"message": "请求成功",

"code": "STATUS_000",

"data": null,

"respNo": "5a6f34073b6ded819d0df2b8ec978df3",

"success": true

}
附录

获取ASCII的十六进制字符串（Java代码示例）

RSA公私钥代码示例（加密、解密、签名、验签）

密钥算法RSA

密钥长度：1024

密钥FORMAT格式：PKCS8（java适用）PKCS1(非java适用)

签名算法：SHA1WithRSA

追溯平台颁发的密钥格式默认为：PKCS8，如果接入方系统开发语言为非java语言，则请转换为PKCS1格式后再进行签名。

JAVA代码示例请查看代码文件：