|
|
@@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.NumberUtil;
|
|
|
import cn.hutool.core.util.RandomUtil;
|
|
|
import cn.hutool.core.util.ReflectUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
@@ -41,6 +42,9 @@ import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
|
|
|
import thyyxxk.webserver.entity.datamodify.TYbSetModifyTime;
|
|
|
import thyyxxk.webserver.entity.datamodify.TYbSetlModifyReq;
|
|
|
import thyyxxk.webserver.entity.dictionary.CodeName;
|
|
|
+import thyyxxk.webserver.entity.drg.BaseInfo;
|
|
|
+import thyyxxk.webserver.entity.drg.DiseInfoList;
|
|
|
+import thyyxxk.webserver.entity.drg.OprtInfoList;
|
|
|
import thyyxxk.webserver.entity.login.UserInfo;
|
|
|
import thyyxxk.webserver.entity.medicalinsurance.inpatient.BatjBa4;
|
|
|
import thyyxxk.webserver.entity.medicalinsurance.inpatient.YbZyDisDiag;
|
|
|
@@ -1499,16 +1503,86 @@ public class SetlListUpldService {
|
|
|
|
|
|
zy.setPatientBldInfos(dao.shuXueXinXi(patNo, times));
|
|
|
|
|
|
- for (YbZyDisDiag item : zy.getYbZyDisDiag()) {
|
|
|
- item.setSsfz(caseFrontSheetMainService.fetchSsfz(item.getDisDiag().trim(), patNo, times).getData());
|
|
|
+ setDrgInfo(zy,setlinfoUpld.getAdmTime(),patNo,times,ledgerSn);
|
|
|
+ return ResultVoUtil.success(zy);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void setDrgInfo(ZyInactpatient zy,Date admTime,String patNo, Integer times, Integer ledgerSn) {
|
|
|
+ SiSetlinfoTemp siSetlinfoTemp = dao.getJieSuanDetail(patNo, times, ledgerSn);
|
|
|
+ BaseInfo bf = new BaseInfo();
|
|
|
+ String visitId = StrUtil.format("{}_{}_{}",patNo,times,ledgerSn);
|
|
|
+ bf.setVisitId(visitId)
|
|
|
+ .setGend(siSetlinfoTemp.getGend())
|
|
|
+ .setBrdy(DateUtil.formatDatetime(siSetlinfoTemp.getBrdy(),"yyyy-MM-dd"))
|
|
|
+ .setAge(siSetlinfoTemp.getAge()==null ? "" : String.valueOf(siSetlinfoTemp.getAge().intValue()))
|
|
|
+ .setNwbAge("")
|
|
|
+ .setNwbBirWt("")
|
|
|
+ .setNwbAdmWt("")
|
|
|
+ .setAdmTime(admTime)
|
|
|
+ .setActIptDays(siSetlinfoTemp.getActIptDays())
|
|
|
+ .setTotalFee(siSetlinfoTemp.getMedfeeSumamt())
|
|
|
+ .setCdntnPay("")
|
|
|
+ .setIllPay("");
|
|
|
+ JSONObject upload = new JSONObject();
|
|
|
+ upload.put("base_info", bf);
|
|
|
+ upload.put("dise_info_list", getDrgDisList(CollUtil.isNotEmpty(zy.getNewYbZyDisDiag()) ? zy.getNewYbZyDisDiag() : zy.getYbZyDisDiag(),visitId));
|
|
|
+ upload.put("oprt_info_list", getOprtInfoList(siSetlinfoTemp.getAuditFlag()==null ? zy.getBatjBa4() : zy.getNewBatjBa4(),visitId));
|
|
|
+ try {
|
|
|
+ log.info("drg分组传参:{}",JSON.toJSONString(upload));
|
|
|
+ JSONObject res = drgWebServices.getDrgCaseQualityControlGroup(upload);
|
|
|
+ log.info("drg分组结果:{}",JSON.toJSONString(res));
|
|
|
+ if (res.getInteger("code") == 0) {
|
|
|
+ if (res.getJSONObject("result") != null) {
|
|
|
+ JSONArray groupInfo = res.getJSONObject("result").getJSONArray("group_info");
|
|
|
+ if (groupInfo != null) {
|
|
|
+ JSONObject item = groupInfo.getJSONObject(0);
|
|
|
+ TUploadDrgGroup drgGroupInfo = new TUploadDrgGroup();
|
|
|
+ drgGroupInfo.setCode(item.getString("code"));
|
|
|
+ drgGroupInfo.setName(item.getString("name"));
|
|
|
+ drgGroupInfo.setWeight(item.getBigDecimal("weight"));
|
|
|
+ drgGroupInfo.setBl(item.getString("bl"));
|
|
|
+ drgGroupInfo.setProfit(item.getBigDecimal("profit"));
|
|
|
+ drgGroupInfo.setFeeStand(item.getBigDecimal("fee_stand"));
|
|
|
+ zy.setDrgGroupInfo(drgGroupInfo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("调用创智分组期报错", e);
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- for (YbZyDisDiag item : zy.getNewYbZyDisDiag()) {
|
|
|
- item.setSsfz(caseFrontSheetMainService.fetchSsfz(item.getDisDiag().trim(), patNo, times).getData());
|
|
|
+ private List<OprtInfoList> getOprtInfoList(List<BatjBa4> batjBa4s,String visitId) {
|
|
|
+ List<OprtInfoList> oprtInfoList =new ArrayList<>();
|
|
|
+ if(CollUtil.isEmpty(batjBa4s)) return oprtInfoList;
|
|
|
+ for (int i = 0; i < batjBa4s.size(); i++) {
|
|
|
+ OprtInfoList oprtInfo = new OprtInfoList();
|
|
|
+ oprtInfo.setSortNo(String.valueOf(i+1));
|
|
|
+ oprtInfo.setVisitId(visitId);
|
|
|
+ oprtInfo.setOprnOprtCode(batjBa4s.get(i).getSsbm());
|
|
|
+ oprtInfo.setOprnOprtName(batjBa4s.get(i).getSsmc());
|
|
|
+ oprtInfo.setOprnOprtType(i == 0 ? "1":"2");
|
|
|
+ oprtInfoList.add(oprtInfo);
|
|
|
}
|
|
|
+ return oprtInfoList;
|
|
|
+ }
|
|
|
|
|
|
- return ResultVoUtil.success(zy);
|
|
|
+ private List<DiseInfoList> getDrgDisList(List<YbZyDisDiag> ybZyDisDiagList,String visitId) {
|
|
|
+ List<DiseInfoList> diseInfoListList = new ArrayList<DiseInfoList>();
|
|
|
+ if(CollUtil.isEmpty(ybZyDisDiagList)) return diseInfoListList;
|
|
|
+ for (int i = 0; i < ybZyDisDiagList.size(); i++) {
|
|
|
+ DiseInfoList diseInfo = new DiseInfoList();
|
|
|
+ diseInfo.setMaindiagFlag(i == 0 ? "1" : "0");
|
|
|
+ diseInfo.setDiagCode(ybZyDisDiagList.get(i).getDisDiag());
|
|
|
+ diseInfo.setDiagName(ybZyDisDiagList.get(i).getDisDiagComment());
|
|
|
+ diseInfo.setVisitId(visitId);
|
|
|
+ diseInfo.setSortNo(String.valueOf(i+1));
|
|
|
+ diseInfoListList.add(diseInfo);
|
|
|
+ }
|
|
|
+ return diseInfoListList;
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* @description:取病案首页的诊断
|
|
|
* @author: lihong
|