1、石林县人民医院智能导诊参数调整

2、住院结算日志调整,读取金额逻辑区分于门诊缴费。
debug
王绍全 3 weeks ago
parent ca612d869c
commit 7b5b6da1d6
  1. 33
      src/main/java/com/ynxbd/common/service/MedicalService.java
  2. 41
      src/main/resources/copy/healthcard/石林县人民医院-hc-config.xml
  3. 4
      src/main/resources/hc-config.xml
  4. 1
      src/main/resources/webservice-copy.xml

@ -167,7 +167,7 @@ public class MedicalService {
String ordStas = result.getDataMapString("OrdStas"); //
BigDecimal deposit = result.getDataMapBigDecimal("Deposit"); // 住院押金(医保6202返回)
log.info("[医保-住院结算]HIS费用上传明细接口返回 payAuthNo={}, payOrdId={}, payToken={}, mdtrtId={}, chrgBchno={}, userIdYBZF={}", payAuthNo, payOrdId, payToken, mdTrtId, chrgBchno, mdUserId);
log.info("[医保-住院结算]HIS费用上传明细接口返回-授权信息 payAuthNo={}, payOrdId={}, payToken={}, mdtrtId={}, chrgBchno={}, userIdYBZF={}", payAuthNo, payOrdId, payToken, mdTrtId, chrgBchno, mdUserId);
if (payOrdId == null || payToken == null || mdTrtId == null || chrgBchno == null) {
throw new ServiceException("[医保]费用明细上传参数缺失");
}
@ -181,32 +181,33 @@ public class MedicalService {
medicalInfo.setMdUserId(mdUserId);
BigDecimal totalFee = result.getDataMapBigDecimal("FeeSumamt"); // 订单总金额医保返回
BigDecimal cashFee = result.getDataMapBigDecimal("OwnPayAmt"); // 现金支付(医保6202返回)
BigDecimal hifpFee = result.getDataMapBigDecimal("FundPay"); // 统筹金额[基金金额]
BigDecimal hisOwnPayAmt = result.getDataMapBigDecimal("OwnPayAmt"); // 现金支付(医保6202返回)
BigDecimal hisPsnAcctPay = result.getDataMapBigDecimal("PsnAcctPay"); // 个人账户支出(医保6202返回)
log.info("[医保-住院结算]HIS费用上传明细接口返回2 payOrdId={}, hifpFee={}, hisOwnPayAmt={}, hisPsnAcctPay={}",
payOrdId, hifpFee, hisOwnPayAmt, hisPsnAcctPay);
BigDecimal acctPay = result.getDataMapBigDecimal("PsnAcctPay"); // 个人账户支出(医保6202返回)
log.info("[医保-住院结算]HIS费用上传明细接口返回-费用明细 payOrdId={}, totalFee={}, cashFee={}, hifpFee={}, acctPay={}",
payOrdId, totalFee, cashFee, hifpFee, acctPay);
String extData = result.getDataMapString("ExtData");
log.info("[医保-住院结算]扩展数据 extData={}", extData);
if (extData == null || totalFee == null) {
throw new ServiceException("[上传明细失败]响应参数缺失 extData is null");
if (totalFee == null) {
throw new ServiceException("[上传明细失败]订单总金额为空");
}
if (ObjectUtils.isEmpty(extData)) {
throw new ServiceException("[上传明细失败]响应参数ExtData缺失");
}
JSONObject extDataJson = JsonHelper.parseObject(extData);
JSONObject preSetl = extDataJson.getJSONObject("preSetl");
medicalInfo.setMedFeeSumAmt(new BigDecimal(preSetl.getString("medfee_sumamt"))); // 医保金额
medicalInfo.setCashFee(new BigDecimal(preSetl.getString("psn_cash_pay"))); // 现金支付
BigDecimal acctPay = new BigDecimal(preSetl.getString("acct_pay")); // 个人账户支付
// BigDecimal hifpPay = new BigDecimal(preSetl.getString("hifp_pay"));
medicalInfo.setAcctFee(acctPay); // 个人账户支付
medicalInfo.setHifpFee(hifpFee); // 统筹支付金额
medicalInfo.setTotalFee(totalFee); // 医保订单总金额
medicalInfo.setCashFee(cashFee); // 现金部分
medicalInfo.setHifpFee(hifpFee); // 统筹支付金额
medicalInfo.setAcctFee(acctPay); // 个人账户支付
medicalInfo.setInsuranceFee(acctPay.add(hifpFee)); // (个账 + 统筹)
medicalInfo.setInsuranceFee(acctPay.add(hifpFee)); // 医保支付(个账 + 统筹)
log.info("[医保-住院结算]结算完成返回数据 medicalFee={}", medicalInfo);
log.info("[医保-住院结算]结算完成返回数据 medicalFee={}", JsonHelper.toJsonString(medicalInfo));
return medicalInfo;
}
@ -299,7 +300,7 @@ public class MedicalService {
String medicalCardId = order.getMedicalCardId();
log.info("[医保][{}]下单 hasDBOrder={}, payOpenId={}, msgOpenId={}, patientId={}, treatNum={}, outTradeNo={}, payOrdId={}, payAuthNo={}, totalFee={}, acctFee={}, hifpFee={}, cashFee={}, idCardNo={}, realName={}, familyType={}, familyName={}, medicalCardId={}, medicalCardInstId={}",
serverEnum.NAME, hasDBOrder, payOpenId, msgOpenId, order.getPatientId(), order.getTreatNum(), outTradeNo, payOrdId, payAuthNo, totalFee, order.getAcctFee(), order.getHifpFee(), order.getPayMoney(), ParamHelper.hideIdCardNo(order.getIdCardNo()), order.getPatientName(), familyType, familyName, medicalCardId,medicalCardInstId);
serverEnum.NAME, hasDBOrder, payOpenId, msgOpenId, order.getPatientId(), order.getTreatNum(), outTradeNo, payOrdId, payAuthNo, totalFee, order.getAcctFee(), order.getHifpFee(), order.getPayMoney(), ParamHelper.hideIdCardNo(order.getIdCardNo()), order.getPatientName(), familyType, familyName, medicalCardId, medicalCardInstId);
if (ObjectUtils.isEmpty(payOpenId)) {
payOpenId = msgOpenId;

@ -1,5 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<config>
<!-- 属性名重复时,只读取第一次出现的值 -->
<health_card name="电子健康卡">
<is_enable name="是否启用-[def:false]">true</is_enable>
<is_upload_data name="是否上传数据-[医院等级不够配置:false][def:true]">true</is_upload_data>
<is_log_report name="是否打印上报数据日志-[def:false]">false</is_log_report>
<is_face_url name="是否传递人脸识别链接-[def:true]">true</is_face_url>
<!-- 微信开放平台调用参数 -->
<h_hosp_id name="医院ID-[医院等级未到达时配置:32064]">32091</h_hosp_id>
<h_app_id>e4a05c13301f2f6a8b07b3de872dfe2d</h_app_id>
<h_app_secret>e5322dfd9bfab939851319812c30f9f1</h_app_secret>
<!-- 万达卡管平台调用参数 -->
<card_app_id>5a4a6eacbe1040d8a91c76608aefb943</card_app_id>
<card_public_key>mfkwewyhkozizj0caqyikozizj0daqcdqgaepc6p0omuruc5lq7cwdu18ca4cgmqbtjpwdyrglo4wbal9/m3dv4oywez7fbgtnkkgj/kfojvze6sc/dka+ddca==</card_public_key>
<card_private_key>4e181412b5874b22ba113ea3a907e244</card_private_key>
<card_url>http://220.164.109.105:19211/internet</card_url>
<!-- mini-app -->
<h_mini_hosp_id name="医共体小程序医院ID"></h_mini_hosp_id>
<h_mini_app_id name="医共体小程序appID"></h_mini_app_id>
<!-- 用于授权的公众号app_id[不是本院 & 医院等级不够 & 新版电子健康卡 & 医共体]-[优先级大于wx配置文件中的appId] -->
<h_auth_app_id></h_auth_app_id>
</health_card>
<report name="报告解读">
<is_dev></is_dev>
<partner_id></partner_id>
@ -7,16 +29,19 @@
</report>
<ai_guidance name="智能导诊">
<!-- 是否开启 -->
<is_enable>true</is_enable>
<!-- 是否为分时段挂号(默认true) -->
<is_split_time_reg>false</is_split_time_reg>
<!-- 合作方ID -->
<is_enable name="是否开启">true</is_enable>
<is_debug mame="是否开启调试">true</is_debug>
<is_dev mame="是否为测试环境">true</is_dev>
<is_split_time_reg name="是否为分时段挂号[def:true]">false</is_split_time_reg>
<!-- AI版:电子健康卡AppId(管理>开发商接入) | 旧版:合作方ID(腾讯提供)-->
<partner_id>100000637</partner_id>
<!-- 密钥token -->
<token>3431de05cbf9d0ffdbc064a352835981</token>
<!-- AI版:电子健康卡AppSecret(管理>开发商接入) | 旧版:Token(腾讯提供)-->
<partner_secret>3431de05cbf9d0ffdbc064a352835981</partner_secret>
<!-- 测试密钥token -->
<dev_token>3431de05cbf9d0ffdbc064a352835981</dev_token>
<dev_partner_secret name="测试token">3431de05cbf9d0ffdbc064a352835981</dev_partner_secret>
<branch_id></branch_id>
<hosp_id name="医院ID">800002592</hosp_id>
<hosp_name name="医院名称">石林彝族自治县人民医院</hosp_name>

@ -36,9 +36,7 @@
<is_enable name="是否开启">true</is_enable>
<is_debug mame="是否开启调试">true</is_debug>
<is_dev mame="是否为测试环境">true</is_dev>
<!-- 是否为分时段挂号(默认true) -->
<is_split_time_reg>true</is_split_time_reg>
<is_split_time_reg name="是否为分时段挂号[def:true]">true</is_split_time_reg>
<!-- AI版:电子健康卡AppId(管理>开发商接入) | 旧版:合作方ID(腾讯提供)-->
<partner_id>34edf7cd14e646ae9c1bbca791b7b685</partner_id>

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?> <config> <his> <!-- 开关配置 --> <is_ali_mer name="HIS是否开启支付宝分开对账-[def:false]">false</is_ali_mer> <is_log_resp name="是否强制打印响应xml数据-[def:false]">false</is_log_resp> <is_push_msg name="是否传递openid给His推送消息-[def:false]">false</is_push_msg> <!-- 医保 --> <wx_med_url name="[微信医保]">127.0.0.1:8888</wx_med_url> <ali_med_url name="[支付宝医保]">127.0.0.1:8888</ali_med_url> <!-- HIS --> <dev_url name="[测试环境]">200.200.200.60:7777</dev_url> <url name="[正式环境]">200.200.200.60:7777</url> </his> </config>
Loading…
Cancel
Save