医保接口数据库操作详细分析
1. admissRegister 方法数据库操作
1.1 t_si_log
表 - 医保接口调用日志表
操作类型:INSERT
字段名 |
数据类型 |
数据来源 |
备注 |
msgid |
String |
input.getString("msgid") |
医保接口请求消息ID |
infno |
String |
input.getString("infno") |
医保接口功能号 |
insuplc_admdvs |
String |
input.getString("insuplc_admdvs") |
医保统筹区划 |
opter |
String |
input.getString("opter") |
经办人 |
body |
String |
input.toJSONString() |
完整的请求体JSON |
result |
String |
result.toJSONString() |
完整的响应体JSON |
pat_no |
String |
p.getInpatientNo() |
住院号 |
times |
Integer |
p.getAdmissTimes() |
住院次数 |
ledger_sn |
Integer |
p.getLedgerSn() |
账页号 |
log_type |
Integer |
固定值 1 |
住院类型 |
create_datetime |
DateTime |
getdate() |
记录生成时间 |
infcode |
Integer |
result.getIntValue("infcode") |
返回结果(0成功,-1失败) |
psn_no |
String |
admMdtrtinfo.getPsnNo() |
人员编号 |
1.2 t_si_pat_info
表 - 患者医保信息表
操作类型:UPDATE(afterAdmissRegister方法)
字段名 |
数据类型 |
数据来源 |
备注 |
insuplc_admdvs |
String |
ybData.getInsuplcAdmdvs() |
医保统筹区划 |
psn_type |
String |
ybData.getPsnType() |
人员类别 |
emp_name |
String |
ybData.getEmpName() |
单位名称 |
balance |
BigDecimal |
ybData.getBalance() |
账户余额 |
mdtrt_id |
String |
output.getJSONObject("result").getString("mdtrt_id") |
就诊ID(外部接口返回) |
adm_reg_msgid |
String |
input.getString("msgid") |
入院登记消息ID |
1.3 t_si_pat_info
表 - 患者医保信息表
操作类型:UPDATE(updateResponceType方法)
字段名 |
数据类型 |
数据来源 |
备注 |
responce_type |
String |
dao.selectResponceType(admMdtrtinfo.getMedType()) |
响应类型(根据医保类型查询) |
2. obtainBasicPersonInfo 方法数据库操作
2.1 mz_patient_mi
表 - 门诊患者信息表
操作类型:SELECT
字段名 |
数据类型 |
数据来源 |
备注 |
social_no |
String |
数据库查询 |
身份证号 |
name |
String |
数据库查询 |
姓名 |
times |
Integer |
数据库查询 |
门诊次数 |
certificate_type |
String |
数据库查询 |
证件类型 |
2.2 zy_ledger_file
表 - 住院账页文件表
操作类型:SELECT
字段名 |
数据类型 |
数据来源 |
备注 |
ledger_sn |
Integer |
dao.selectMaxLedgerSn() |
最大账页号 |
2.3 a_patient_mi
表 - 患者基本信息表
操作类型:SELECT
字段名 |
数据类型 |
数据来源 |
备注 |
psn_cert_type |
String |
dao.selectPsnCertType() |
人员证件类型 |
2.4 t_si_pat_info
表 - 患者医保信息表
操作类型:UPDATE(updatePsnIdetType方法)
字段名 |
数据类型 |
数据来源 |
备注 |
psn_idet_type |
String |
psnBaseinfo.getPsnIdetType() |
人员身份类型(外部接口返回) |
操作类型:INSERT/UPDATE(insertSiZyInfoPsnNo/updateSiZyInfoPsnNo方法)
INSERT 字段及数据来源:
字段名 |
数据类型 |
数据来源 |
备注 |
pat_no |
String |
qryPsnBsInfo.getPatNo() |
住院号 |
times |
Integer |
qryPsnBsInfo.getTimes() |
住院次数 |
ledger_sn |
Integer |
qryPsnBsInfo.getLedgerSn() |
账页号 |
psn_no |
String |
psnBaseinfo.getPsnNo() |
人员编号(外部接口返回) |
psn_name |
String |
psnBaseinfo.getPsnName() |
人员姓名(外部接口返回) |
psn_cert_type |
String |
psnBaseinfo.getPsnCertType() |
人员证件类型(外部接口返回) |
certno |
String |
psnBaseinfo.getCertno() |
证件号码(外部接口返回) |
psn_idet_type |
String |
psnBaseinfo.getPsnIdetType() |
人员身份类型(外部接口返回) |
insuplc_admdvs |
String |
psnBaseinfo.getInsuplcAdmdvs() |
医保统筹区划(外部接口返回) |
psn_type |
String |
psnBaseinfo.getPsnType() |
人员类别(外部接口返回) |
emp_name |
String |
psnBaseinfo.getEmpName() |
单位名称(外部接口返回) |
balance |
BigDecimal |
psnBaseinfo.getBalance() |
账户余额(外部接口返回) |
UPDATE 字段及数据来源:
字段名 |
数据类型 |
数据来源 |
备注 |
psn_no |
String |
psnBaseinfo.getPsnNo() |
人员编号(外部接口返回) |
psn_name |
String |
psnBaseinfo.getPsnName() |
人员姓名(外部接口返回) |
psn_cert_type |
String |
psnBaseinfo.getPsnCertType() |
人员证件类型(外部接口返回) |
certno |
String |
psnBaseinfo.getCertno() |
证件号码(外部接口返回) |
psn_idet_type |
String |
psnBaseinfo.getPsnIdetType() |
人员身份类型(外部接口返回) |
insuplc_admdvs |
String |
psnBaseinfo.getInsuplcAdmdvs() |
医保统筹区划(外部接口返回) |
psn_type |
String |
psnBaseinfo.getPsnType() |
人员类别(外部接口返回) |
emp_name |
String |
psnBaseinfo.getEmpName() |
单位名称(外部接口返回) |
balance |
BigDecimal |
psnBaseinfo.getBalance() |
账户余额(外部接口返回) |
2.5 t_si_log
表 - 医保接口调用日志表
操作类型:INSERT
字段名 |
数据类型 |
数据来源 |
备注 |
msgid |
String |
input.getString("msgid") |
医保接口请求消息ID |
infno |
String |
input.getString("infno") |
医保接口功能号 |
insuplc_admdvs |
String |
input.getString("insuplc_admdvs") |
医保统筹区划 |
opter |
String |
input.getString("opter") |
经办人 |
body |
String |
input.toJSONString() |
完整的请求体JSON |
result |
String |
result.toJSONString() |
完整的响应体JSON |
pat_no |
String |
qryPsnBsInfo.getPatNo() |
住院号 |
times |
Integer |
qryPsnBsInfo.getTimes() |
住院次数 |
ledger_sn |
Integer |
qryPsnBsInfo.getLedgerSn() |
账页号 |
log_type |
Integer |
固定值 1 |
住院类型 |
create_datetime |
DateTime |
getdate() |
记录生成时间 |
infcode |
Integer |
result.getIntValue("infcode") |
返回结果(0成功,-1失败) |
psn_no |
String |
psnBaseinfo.getPsnNo() |
人员编号(外部接口返回) |
3. 外部接口数据来源详细说明
3.1 admissRegister 方法外部接口数据
接口名称:医保入院登记接口
接口功能号:SiFunction.ADMISSION_REGISTRATION
返回数据结构:
{
"infcode": 0,
"output": {
"result": {
"mdtrt_id": "就诊ID"
}
}
}
3.2 obtainBasicPersonInfo 方法外部接口数据
接口名称:医保人员基本信息查询接口
接口功能号:SiFunction.OBTAIN_BASIC_PERSON_INFO
返回数据结构:
{
"infcode": 0,
"output": {
"baseinfo": {
"psn_no": "人员编号",
"psn_name": "人员姓名",
"psn_cert_type": "人员证件类型",
"certno": "证件号码",
"psn_idet_type": "人员身份类型",
"insuplc_admdvs": "医保统筹区划",
"psn_type": "人员类别",
"emp_name": "单位名称",
"balance": "账户余额"
},
"idetinfo": [
{
"psn_idet_type": "人员身份类型"
}
]
}
}
4. 数据流向总结
4.1 数据输入来源
- 前端参数:住院号、住院次数、账页号等基础信息
- 外部医保接口:人员信息、医保状态、账户余额等医保相关数据
- 本地数据库查询:患者基础信息、医保类型等
4.2 数据输出目标
t_si_log
:记录所有医保接口调用日志
t_si_pat_info
:存储患者医保信息和状态
- 其他相关表:根据业务需要更新相关患者信息
4.3 关键数据转换
- 外部接口数据 → 本地数据库字段:将医保接口返回的数据映射到本地数据库字段
- 状态同步:确保本地数据库中的医保状态与外部医保系统保持一致
- 日志记录:完整记录所有医保接口调用过程,便于问题排查和审计