医保接口数据库操作详细分析.md 8.5 KB

医保接口数据库操作详细分析

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 数据输入来源

  1. 前端参数:住院号、住院次数、账页号等基础信息
  2. 外部医保接口:人员信息、医保状态、账户余额等医保相关数据
  3. 本地数据库查询:患者基础信息、医保类型等

4.2 数据输出目标

  1. t_si_log:记录所有医保接口调用日志
  2. t_si_pat_info:存储患者医保信息和状态
  3. 其他相关表:根据业务需要更新相关患者信息

4.3 关键数据转换

  1. 外部接口数据 → 本地数据库字段:将医保接口返回的数据映射到本地数据库字段
  2. 状态同步:确保本地数据库中的医保状态与外部医保系统保持一致
  3. 日志记录:完整记录所有医保接口调用过程,便于问题排查和审计