用以初始化动态库,加载使用动态库调用其它函数必须首先调用初始化函数。
long WINAPI Init(char* pInitInfo, char* pErrMsg);
0
表示成功非0
表示失败输入参数 pInitInfo [格式JSON]
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 是否必填 | 备注 |
---|---|---|---|---|---|---|
1 | IP | 服务端IP地址 | 字符 | 100 | Y | 医疗保障平台提供的服务端IP地址 |
2 | PORT | 服务端端口 | 数值 | - | Y | 医疗保障平台提供的服务端端口 |
3 | TIMEOUT | 超时 | 数值 | - | Y | 单位秒,访问服务端超时时间 |
4 | LOG_PATH | 动态库日志目录 | 字符 | 100 | Y | 动态库日志生成所在目录: 1、目录不能超过三级 2、目录必须是英文字符,不能含有空格字符 3、目录有写权限 |
5 | EC_URL | 电子凭证中台URL | 字符 | 1024 | Y | 电子凭证中台URL 例如:https://fuwu-test.nhsa.gov.cn/localcfc/api/hsecfc/localQrCodeQuery |
6 | CARD_PASSTYPE | 社保卡验证密码方式 | 字符 | 2 | Y | 1:验证卡pin,2:验证数据库密码 |
7 | API_NAME | CSB的_api_name | 字符 | - | Y | [version1.1]:例如api-powersi-test-pri |
8 | API_VERSION | CSB的_api_version | 字符 | - | Y | [version1.1]:例如:1.0.0 |
9 | ACCESS_KEY | CSB的_api_access_key | 字符 | - | Y | [version1.1]:例如:043a6d5927 |
10 | SECRETKEY | CSB的secretKey | 字符 | - | Y | [version1.1]:例如:ZugfjXENyvGIQYdB+hFB+s9JL0A= |
11 | ORG_ID | 定点编号 | 字符 | - | Y | [version1.1] |
12 | EXT | JSON对象字符串 | 字符 | - | - | [version1.1]:预留 |
13 | AREA_CODE | 定点所属行政区划代码 | 字符 | - | Y | [version1.2]:例如:例如南京的医院320100 |
示例:
{
"IP": "192.168.100.100",
"PORT": 8080,
"TIMEOUT": 120,
"LOG_PATH": "C:\\log\\",
"CARD_PASSTYPE": "1",
"EC_URL": "https://fuwu-test.nhsa.gov.cn/localcfc/api/hsecfc/localQrCodeQuery",
"API_NAME": "api-powersi-test-pri",
"API_VERSION": "1.0.0",
"ACCESS_KEY": "043a6d5927174ab5a7681b193b9fe0e3",
"SECRETKEY": "ZugfjXENyvGIQYdB+hFB+s9JL0A="
}
输出参数 pErrMsg
驱动卡机读卡,返回卡内的基本信息。
long WINAPI ReadCardBas(char* pCardInfo, char* pBusiCardInfo);
0
表示成功非0
表示失败输出参数 pCardInfo 当函数执行失败时候返回错误信息,成功时,该输出参数为读出的社保卡基本信息各数据项,依次为:发卡地区行政区划代码(卡识别码前6位)、社会保障号码、卡号、卡识别码、姓名、卡复位信息(仅取历史字节)、规范版本、发卡日期、卡有效期、终端机编号、终端设备号。各数据项之间以"|"分割,且最后一个数据项以"|"结尾。
例如:639900|111111198101011110|X00000019|639900D15600000500BF7C7A48FB4966|张三|00814E43238697159900BF7C7A|1.00|20101001|20201001|410100813475|终端设备号|
与[人社信息函[2016]38号-关于印发社会保障卡读写终端接口规范的通知20160720(终稿).doc]读基本信息一致。
对应pCardInfo内存分配长度,建议2048,不能小于2048。
输出参数 pBusiCardInfo 函数执行成功时候,返回业务卡串信息,后续需要卡串的医保业务,请使用此卡串信息。
对应pBusiCardInfo内存分配长度,建议8192,不能小于8192。
校验社保卡PIN码,在输入6次错误密码以后,社保卡自动锁定。
验证规则:
long WINAPI VerifyPIN(char *pOutBuff);
0
表示成功非0
表示失败输出参数 pOutBuff
修改社保卡PIN码,需要原密码验证通过后,并保证新密码和确认新密码输入一致才能修改成功。
使用规则:
long WINAPI ChangePIN(char *pOutBuff);
0
表示成功非0
表示失败输出参数 pOutBuff
驱动卡机读取二代身份证,返回身份证信息。
long WINAPI ReadSFZ(char* pPath, char* pOutBuff, char* pOutBusiBuff);
0
表示成功非0
表示失败输入参数 pPath 照片存放的目录,传入空则不生成照片。
输出参数 pOutBuff 当函数执行失败时错误信息,成功时,该输出参数为读出的身份证信息,身份证号码|姓名|性别|民族|出生日期(YYYYMMDD)|住址|签发机关|有效期起始日期(YYYYMMDD)|有效期截止日期(YYYYMMDD)|。
对应pOutBuff内存分配长度,建议1024,不能小于1024。
输出参数 pOutBusiBuff 函数执行成功时候,返回业务身份证信息,后续需要身份证的医保业务,请使用此身份证信息。
对应pOutBusiBuff内存分配长度,建议8192,不能小于8192。
电子凭证二维码解码
long WINAPI EcQuery(char* pInData, char* pOutData);
0
表示成功非0
表示失败输入参数 pInData [格式JSON]
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 是否必填 | 备注 |
---|---|---|---|---|---|---|
1 | data | 解码入参 | 字符 | 4096 | Y | 详细格式见下表 |
2 | transType | 交易类型编码 | 字符 | - | Y | 固定值【ec.query】 |
3 | orgId | 定点编号 | 字符 | 40 | Y | 定点编号 |
[data]说明:
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 是否必填 | 备注 |
---|---|---|---|---|---|---|
1 | orgId | 定点编号 | 字符 | 40 | Y | 定点编号 |
2 | businessType | 用码业务类型 | 字符 | - | Y | 二级代码见附录,例如:01101 |
3 | operatorId | 收款员编号 | 字符 | 64 | Y | - |
4 | operatorName | 收款员姓名 | 字符 | 64 | Y | - |
5 | officeId | 医保科室编号 | 字符 | 20 | Y | - |
6 | officeName | 科室名称 | 字符 | 30 | Y | - |
示例:
{
"data": {
"businessType": "01101",
"officeId": "32760",
"officeName": "消化内科",
"operatorId": "test001",
"operatorName": "超级管理员",
"orgId": "35020319001"
},
"orgId": "35020319001",
"transType": "ec.query"
}
输出参数 pOutData [格式JSON]
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 备注 |
---|---|---|---|---|---|
1 | data | 解码出参 | 字符 | 4096 | 详细格式见下表 |
2 | code | 中台相应码 | 数值 | - | 0成功,其它值失败 |
3 | message | 错误信息 | 字符 | 1024 | 错误信息 |
[data]说明:
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 备注 |
---|---|---|---|---|---|
1 | idNo | 身份证号 | 字符 | 64 | - |
2 | userName | 姓名 | 字符 | 64 | - |
3 | idType | 证件类型 | 字符 | - | 二级代码见附录 |
4 | ecToken | 令牌 | 字符 | 40 | - |
5 | insuOrg | 参保地区编码 | 字符 | 6 | - |
6 | ecIndexNo | 电子凭证索引号 | 字符 | 32 | - |
7 | gender | 性别 | 字符 | 2 | - |
8 | birthday | 出生日期 | 字符 | 10 | - |
9 | nationality | 国籍 | 字符 | 32 | - |
10 | 邮箱 | 字符 | 100 | - | |
11 | extra | 扩展参数 | 字符 | 4096 | 预留 |
示例:
{
"data": {
"extra": "",
"idNo": "533222199909090123",
"idType": "01",
"ecToken": "ADBHJRS5I01E0F3438C00000B959FA88",
"insuOrg": "430000",
"userName": "张三",
"ecIndexNo": "",
"gender": "",
"birthday": "",
"nationality": "",
"email": ""
},
"code": 0,
"message": "处理成功"
}
对应pOutData内存分配长度,建议8192。
电子社保卡二维码解码。
long WINAPI EcCardQuery(char* pOutBuff);
0
表示成功非0
表示失败输出参数 pOutBuff 当函数执行失败时错误信息,成功时,返回客户端ID信息。
对应pOutBuff内存分配长度,建议8192。
出参参数 pOutData [格式JSON]
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 备注 |
---|---|---|---|---|---|
1 | data | 解码出参 | 字符 | 4096 | 详细格式见下表 |
2 | code | 中台相应码 | 数值 | - | 0成功,其它值失败 |
3 | message | 错误信息 | 字符 | 1024 | 错误信息 |
[data]说明:
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 备注 |
---|---|---|---|---|---|
1 | si_no | 社会保障号码 | 字符 | 20 | - |
2 | si_card_no | 人员识别号 | 字符 | 12 | - |
3 | si_card_issue_area | 社保卡发卡地区行政区划代码 | 字符 | 6 | - |
4 | name | 姓名 | 字符 | 50 | - |
5 | gender | 性别 | 字符 | 1 | - |
6 | id_type | 证件类型 | 字符 | 3 | 二级代码见附录 |
7 | id_no | 证件号码 | 字符 | 20 | - |
8 | ecCardToken | 证件号码 | 字符 | 2048 | 电子社保卡Token,后续交易请与证据号码一起使用 |
四合一,操作员选择就医者的就医方式。社保卡、电子凭证、电子社保卡、身份证。
long WINAPI GetPersonInfo(char* pInData, char* pOutData);
0
表示成功非0
表示失败输入参数 pInData [格式JSON]
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 是否必填 | 备注 |
---|---|---|---|---|---|---|
1 | data | 解码入参 | 字符 | 4096 | Y | 详细格式见下表 |
2 | transType | 交易类型编码 | 字符 | - | Y | 固定值【ec.query】 |
3 | orgId | 定点编号 | 字符 | 40 | Y | 定点编号 |
[data]说明:
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 是否必填 | 备注 |
---|---|---|---|---|---|---|
1 | orgId | 定点编号 | 字符 | 40 | Y | 定点编号 |
2 | businessType | 用码业务类型 | 字符 | - | Y | 二级代码见附录,例如:01101 |
3 | operatorId | 收款员编号 | 字符 | 64 | Y | - |
4 | operatorName | 收款员姓名 | 字符 | 64 | Y | - |
5 | officeId | 医保科室编号 | 字符 | 20 | Y | - |
6 | officeName | 科室名称 | 字符 | 30 | Y | - |
示例:
{
"data": {
"businessType": "01101",
"officeId": "32760",
"officeName": "消化内科",
"operatorId": "test001",
"operatorName": "超级管理员",
"orgId": "35020319001"
},
"orgId": "35020319001",
"transType": "ec.query"
}
输出参数 pOutData [格式JSON]
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 备注 |
---|---|---|---|---|---|
1 | data | 解码出参 | 字符 | 4096 | 详细格式见下表 |
2 | code | 中台相应码 | 数值 | - | 0成功,其它值失败 |
3 | message | 错误信息 | 字符 | 1024 | 错误信息 |
社保卡
[data]说明:
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 是否必填 | 备注 |
---|---|---|---|---|---|---|
1 | CardInfo | 卡串 | 字符 | - | Y | 社保卡38号文基本信息卡串 |
2 | BusiCardInfo | 业务卡串信息 | 字符 | - | Y | 业务卡串信息,后续需要卡串的医保业务,请使用此卡串信息 |
示例:
{
"code": 0,
"message": "",
"data": {
"CardInfo": "639900|111111198101011110|X00000019|639900D15600000500BF7C7A48FB4966|测试姓名|00814E43238697159900BF7C7A|3.00|20101001|20201001|410100813475|ID000000001|",
"BusiCardInfo": "yzs/nK8iqWWuYOrXxqRyz6FVEnDMvWCrRo26+VXLwtPrk64fYFfsnXV36PaGWIGehTv6aCJ3rCrtgXwUy+Tvo8rvOLuMVUS+pfN6pADNRFqLMP1rgRs3VGF30+kdE6ShRfE7sVubOqJWfnfwO+ZASHMiKYvyALJqnONvbZeAYksb04hFn5AyMJSnKLmMqdKJXJS7woYsj7MstQn1Zsa+EabZCxnS+mYdD9j2UJ6yhvI="
}
}
电子凭证
[data]说明:
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 备注 |
---|---|---|---|---|---|
1 | idNo | 身份证号 | 字符 | 64 | - |
2 | userName | 姓名 | 字符 | 64 | - |
3 | idType | 证件类型 | 字符 | - | 二级代码见附录 |
4 | ecToken | 令牌 | 字符 | 40 | - |
5 | insuOrg | 参保地区编码 | 字符 | 6 | - |
6 | ecIndexNo | 电子凭证索引号 | 字符 | 32 | - |
7 | gender | 性别 | 字符 | 2 | - |
8 | birthday | 出生日期 | 字符 | 10 | - |
9 | nationality | 国籍 | 字符 | 32 | - |
10 | 邮箱 | 字符 | 100 | - | |
11 | extra | 扩展参数 | 字符 | 4096 | 预留 |
示例:
{
"data": {
"extra": "",
"idNo": "533222199909090123",
"idType": "01",
"ecToken": "ADBHJRS5I01E0F3438C00000B959FA88",
"insuOrg": "430000",
"userName": "张三",
"ecIndexNo": "",
"gender": "",
"birthday": "",
"nationality": "",
"email": ""
},
"code": 0,
"message": "处理成功"
}
电子社保卡
[data]说明:
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 备注 |
---|---|---|---|---|---|
1 | si_no | 社会保障号码 | 字符 | 20 | - |
2 | si_card_no | 人员识别号 | 字符 | 12 | - |
3 | si_card_issue_area | 社保卡发卡地区行政区划代码 | 字符 | 6 | - |
4 | name | 姓名 | 字符 | 50 | - |
5 | gender | 性别 | 字符 | 1 | - |
6 | id_type | 证件类型 | 字符 | 3 | 二级代码见附录 |
7 | id_no | 证件号码 | 字符 | 20 | - |
8 | ecCardToken | 证件号码 | 字符 | 2048 | 电子社保卡Token,后续交易请与证据号码一起使用 |
身份证
[data]说明:
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 是否必填 | 备注 |
---|---|---|---|---|---|---|
1 | SFZInfo | 身份证信息 | 字符 | - | Y | 身份证号码|姓名|性别|民族|出生日期(YYYYMMDD)|住址|签发机关|有效期起始日期(YYYYMMDD)|有效期截止日期(YYYYMMDD)| |
2 | BusiSFZInfo | 业务身份证信息 | 字符 | - | Y | 业务卡串信息,后续需要卡串的医保业务,请使用此卡串信息 |
示例:
{
"code": 0,
"message": "",
"data": {
"SFZInfo": "210100199001016666|测试姓名|男|汉|19900101|沈阳市和平区|沈阳市和平区派出所|20000101|20990101|",
"BusiSFZInfo": "gYo+fXGkReYPUNY0gg/l0x7FnDO4L4GDQRbtA5AyDK6RXdXcTqrl7oNIBYrKzomnFpLrCD4IsjXSnR2S0fNzoKCKHXfUzyV1jNafXRglDiuf959rEKwGeTB8tlCJ5WE5Icrj0PF73h4BnjNNTGBAJ0ZVHll3cPmrOSrHhYlrXk0="
}
}
动态库每日做一次签到,每天只需要调用一次。
int WINAPI DailySinIn(char* pInData, char* pOutData);
0
表示成功非0
表示失败输入参数 pInData [格式JSON]
序号 | 数据元标识 | 数据元名称 | 类型 | 长度 | 是否必填 | 备注 |
---|---|---|---|---|---|---|
1 | IP | 服务端IP地址 | 字符 | 100 | Y | 医疗保障平台提供的服务端IP地址 |
2 | PORT | 服务端端口 | 数值 | - | Y | 医疗保障平台提供的服务端端口 |
3 | TIMEOUT | 超时 | 数值 | - | Y | 单位秒,访问服务端超时时间 |
4 | LOG_PATH | 动态库日志目录 | 字符 | 100 | Y | 动态库日志生成所在目录: 4、目录不能超过三级 5、目录必须是英文字符,不能含有空格字符 6、目录有写权限 |
5 | EC_URL | 电子凭证中台URL | 字符 | 1024 | Y | 电子凭证中台URL 例如:https://fuwu-test.nhsa.gov.cn/localcfc/api/hsecfc/localQrCodeQuery |
6 | CARD_PASSTYPE | 社保卡验证密码方式 | 字符 | 2 | Y | 1:验证卡pin,2:验证数据库密码 |
7 | API_NAME | CSB的_api_name | 字符 | - | Y | [version1.1]:例如api-powersi-test-pri |
8 | API_VERSION | CSB的_api_version | 字符 | - | Y | [version1.1]:例如:1.0.0 |
9 | ACCESS_KEY | CSB的_api_access_key | 字符 | - | Y | [version1.1]:例如:043a6d5927 |
10 | SECRETKEY | CSB的secretKey | 字符 | - | Y | [version1.1]:例如:ZugfjXENyvGIQYdB+hFB+s9JL0A= |
11 | ORG_ID | 定点编号 | 字符 | - | Y | [version1.1] |
12 | EXT | JSON对象字符串 | 字符 | - | - | [version1.1]:预留 |
13 | AREA_CODE | 定点所属行政区划代码 | 字符 | - | Y | [version1.2]:例如:例如南京的定点医院,320100 |
输出参数 pOutBuff
无锡药店结算交易通过调用此函数实现,动态库的输入输出参数是GBK编码格式。
int WINAPI Busi(char* pInData, char* pOutData);
0
表示成功非0
表示失败入参:pInData JSON格式字符串,见【2102】【2102A】的入参格式
示例:
{
"insuplc_admdvs": "320299",
"enctype": "",
"dev_no": "",
"inf_time": "2021-07-23 14:17:46",
"hssToken": "",
"msgid": "H32040200089202107231417469348",
"infver": "V1.0",
"signtype": "",
"opter": "Z",
"input": {
"druginfo": {
"dise_codg": "bydise_setl_list_code",
"medfee_sumamt": 100,
"psn_no": "32020000000000001000083994",
"mdtrt_cert_type": "02",
"med_type": "4101",
"begntime": "2021-07-23",
"mdtrt_cert_no": "320202195706243039",
"dise_name": "",
"insutype": "310",
"expContent": "",
"acct_used_flag": "0"
},
"drugdetail": [
{
"bilg_dr_codg": "",
"sin_dos_dscr": "",
"med_list_codg": "XA02BCP025B003020102068",
"det_item_fee_sumamt": "100",
"cnt": "1",
"pric": "100",
"used_frqu_dscr": "",
"feedetl_sn": "SPH00000001",
"prd_days": "",
"tcmdrug_used_way": "",
"rxno": "",
"medins_list_codg": "SPH00006217",
"bilg_dr_name": "",
"rx_circ_flag": "0",
"medc_way_dscr": "",
"fee_ocur_time": "2021-07-23"
}
]
},
"fixmedins_code": "P32020200466",
"cainfo": "",
"opter_name": "Z",
"dev_safe_info": "",
"infno": "2102",
"mdtrtarea_admvs": "320299",
"opter_type": "01",
"fixmedins_name": "大药房",
"sign_no": "220046",
"recer_sys_code": "MBS_LOCAL",
"fixmedins_soft_fcty": "测试",
"info": ""
}
出参:pOutData
第一级代码 | 第一级名称 | 第二级代码 | 第二级名称 | 第二级说明 |
---|---|---|---|---|
01 | 医院 | 101 | 挂号 | 替代社保卡(预约挂号,现场挂号,取号候诊) |
102 | 住院建档 | 替代身份证、社保卡 | ||
103 | 入院登记 | 替代社保卡 | ||
104 | 缴纳预缴金 | 替代住院押金卡 | ||
201 | 问诊 | 替代挂号条、社保卡 | ||
202 | 预约检查 | 替代检查凭条、社保卡 | ||
203 | 检查 | 替代检查凭条、社保卡 | ||
204 | 治疗 | 替代挂号条、社保卡 | ||
301 | 结算 | 替代社保卡(门诊结算,出院结算) | ||
302 | 取药 | 替代取药凭条、社保卡(门诊取药,出院带药) | ||
303 | 取报告 | 替代取报告凭条 | ||
304 | 打印票据和清单 | 替代挂号条、社保卡(打印收费清单,票据清单,结算单,异地就医结算单) | ||
305 | 病历材料复印 | 替代身份证、社保卡(门诊和住院各类材料复印) | ||
02 | 药店 | 121 | 药店购药 | 替代社保卡 |
122 | 下载外购处方 | 替代社保卡、身份证 |
证件代码 | 证件说明 |
---|---|
01 | 居民身份证(户口簿) |
02 | 中国人民解放军军官证 |
03 | 中国人民武装警察警官证 |
04 | 香港特区护照/港澳居民来往内地通行证 |
05 | 澳门特区护照/港澳居民来往内地通行证 |
06 | 台湾居民来往大陆通行证 |
07 | 外国人永久居留证 |
08 | 外国人护照 |
11 | 外国人就业证 |
12 | 外国专家证 |
13 | 外国人常驻记者证 |
14 | 台港澳人员就业证 |
15 | 回国(来华)定居专家证 |
16 | 出生医学证明 |
17 | 港澳台居民居住证 |
99 | 其他身份证件 |
驱动卡机读卡,返回卡内的基本信息和处方信息。
long WINAPI ReadCardBasRx(char* pInput, char* pCardInfo, char* pRxInfo);
0
表示成功非0
表示失败输入参数 pInput 定点机构登记人姓名|定点机构登记人证件类型|定点机构登记人证件号码|医疗机构编码|代办人姓名|代办人身份证类型|代办人身份证类型|收费端电脑IP|CaInfo|his软件开发商|
输出参数 pCardInfo 当函数执行失败时候返回错误信息,成功时,该输出参数为读出的社保卡基本信息各数据项,依次为:发卡地区行政区划代码(卡识别码前6位)、社会保障号码、卡号、卡识别码、姓名、卡复位信息(仅取历史字节)、规范版本、发卡日期、卡有效期、终端机编号、终端设备号。各数据项之间以"|"分割,且最后一个数据项以"|"结尾。
示例:
639900|111111198101011110|X00000019|639900D15600000500BF7C7A48FB4966|张三|00814E43238697159900BF7C7A|1.00|20101001|20201001|410100813475|终端设备号|
与[人社信息函[2016]38号-关于印发社会保障卡读写终端接口规范的通知20160720(终稿).doc]读基本信息一致。
对应pCardInfo内存分配长度,建议2048,不能小于2048。
输出参数 pRxInfo 处方登记流水号|处方过期时间|
对应pRxInfo内存分配长度,建议1024,不能小于256。
驱动卡机读取二代身份证,返回身份证信息和处方信息。
long WINAPI ReadSFZRx(char* pInput, char* pPath, char* pOutBuff, char* pRxInfo);
0
表示成功非0
表示失败输入参数 pInput 定点机构登记人姓名|定点机构登记人证件类型|定点机构登记人证件号码|医疗机构编码|代办人姓名|代办人身份证类型|代办人身份证类型|收费端电脑IP|CaInfo|his软件开发商|
输入参数 pPath 照片存放的目录,传入空则不生成照片。
输出参数 pOutBuff 当函数执行失败时错误信息,成功时,该输出参数为读出的身份证信息,身份证号码|姓名|性别|民族|出生日期(YYYYMMDD)|住址|签发机关|有效期起始日期(YYYYMMDD)|有效期截止日期(YYYYMMDD)|。
对应pOutBuff内存分配长度,建议1024,不能小于1024。
输出参数 pRxInfo 处方登记流水号|处方过期时间|
对应pRxInfo内存分配长度,建议1024,不能小于256。