package com.ltkj.web.controller.dongfanghis; import cn.hutool.core.date.DateUtil; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.hosp.dfDto.CheXiaoMzFyDto; import com.ltkj.hosp.dfDto.CreateMenZhenFyDto; import com.ltkj.hosp.domain.TjCustomer; import com.ltkj.system.service.ISysConfigService; import com.ltkj.web.wxUtils.HttpClientUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import java.io.FileInputStream; import java.io.IOException; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; /** * ClassName: DfHisApiMethodService
* Description:
* date: 2024/12/10 09:24
* * @author zjh
*/ @Component @Slf4j public class DfHisApiMethodService { @Autowired private ISysConfigService configService; private static String HIS_URL = ""; private static String CONFIG_PATH; private static String GRANT_TYPE = ""; private static String CLIENT_ID = ""; private static String CLIENT_SECRET = ""; private static String SCOP = ""; // @Autowired // private RedisTemplate redisTemplate; @Value("${config.properties}") public void setConfigPath(String configPath) { CONFIG_PATH = configPath; try { FileInputStream inputStream = new FileInputStream(CONFIG_PATH); Properties props = new Properties(); props.load(inputStream); String url = props.getProperty("df_his_api_url"); String port = props.getProperty("df_his_api_port"); GRANT_TYPE = props.getProperty("grant_type"); CLIENT_ID= props.getProperty("client_id"); CLIENT_SECRET = props.getProperty("client_secret"); SCOP = props.getProperty("scope"); HIS_URL=url+":"+port+"/OAPI/"; } catch (IOException throwables) { throwables.printStackTrace(); } } //获取token public AjaxResult getToken () { Map map = new HashMap<>(); map.put("grant_type",GRANT_TYPE); map.put("client_id",CLIENT_ID); map.put("client_secret",CLIENT_SECRET); map.put("scope",SCOP); String post = HttpClientUtils.sendPost (HIS_URL+"/oauth/token", map); return AjaxResult.success ().put ("data", post); } //建档 public AjaxResult jianDang (TjCustomer customer) { String czy = configService.selectConfigByKey("dfhisczybm"); Map map = new HashMap<> (); map.put ("jiuZhenKh", customer.getPationId ()); map.put ("kaiLeiXing","4"); map.put ("xingMing", customer.getCusName ()); Long cusSex = customer.getCusSex(); if(cusSex==0L){ map.put ("xingBie","男"); }else if(cusSex==1L){ map.put ("xingBie","女"); }else { map.put ("xingBie","未知"); } map.put ("shenFenZh", customer.getCusIdcard ()); map.put ("danWeiBh",""); map.put ("chuShengRq", DateUtil.format(customer.getCusBrithday(),"yyyy-MM-dd")); map.put ("lianXiDz", customer.getCusAddr()); map.put ("lianXiDh", customer.getCusPhone ()); map.put ("feiYongLb",""); map.put ("feiYongXz",""); map.put ("jiLuLy","3"); map.put ("caoZuoYuan",czy); map.put ("chongZhiJe",""); map.put ("yiBaoKh",""); map.put ("geRenBh",""); map.put ("yiBaoBrXx",""); map.put ("gongZuoDw",customer.getCompName()); map.put ("canBaoXzMc",""); map.put ("muLuBlLb",""); map.put ("kunNanJzDj",""); map.put ("yiLiaoLb",""); map.put ("minZuDm",""); map.put ("minZuMc",""); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/menZhenJz/jianDang", map); return AjaxResult.success ().put ("data", post); } //验证身份证是否建过档 public AjaxResult getBingRenXxByShengFenZheng (TjCustomer customer) { String czy = configService.selectConfigByKey("dfhisczybm"); Map map = new HashMap<> (); map.put ("caoZuoYuan",czy); map.put ("shenFenZh", customer.getCusIdcard ()); map.put ("danWeiBh",""); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/menZhenJz/getBingRenXxByShengFenZheng", map); return AjaxResult.success ().put ("data", post); } //病人基本信息变更 public AjaxResult saveBingRenXx (TjCustomer customer) { String czy = configService.selectConfigByKey("dfhisczybm"); Map map = new HashMap<> (); map.put ("jiuZhenKh", customer.getPationId ()); map.put ("kaiLeiXing","4"); map.put ("xingMing", customer.getCusName ()); Long cusSex = customer.getCusSex(); if(cusSex==0L){ map.put ("xingBie","男"); }else if(cusSex==1L){ map.put ("xingBie","女"); }else { map.put ("xingBie","未知"); } map.put ("shenFenZh", customer.getCusIdcard ()); map.put ("danWeiBh",""); map.put ("chuShengRq", DateUtil.format(customer.getCusBrithday(),"yyyy-MM-dd")); map.put ("lianXiDz", customer.getCusAddr()); map.put ("lianXiDh", customer.getCusPhone ()); map.put ("feiYongLb",""); map.put ("feiYongXz",""); map.put ("jiLuLy","3"); map.put ("caoZuoYuan",czy); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/menZhenJz/saveBingRenXx", map); return AjaxResult.success ().put ("data", post); } //待收费费用查询 public AjaxResult getListDaiShouFei (String bingRenId,String jiuZhenKh,String yuanQuId) { Map map = new HashMap<> (); map.put ("bingRenId",bingRenId); map.put ("jiuZhenKh",jiuZhenKh); map.put ("yuanQuId",yuanQuId); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/shouFei/getListDaiShouFei", map); return AjaxResult.success ().put ("data", post); } //待收费费用查询 public AjaxResult createMenZhenFy (CreateMenZhenFyDto dto) { String czy = configService.selectConfigByKey("dfhisczybm"); Map map = new HashMap<> (); map.put ("bingRenId",dto.getBingRenId()); map.put ("jiuZhenKh",dto.getJiuZhenKh()); map.put ("caoZuoYuan",czy); map.put ("yuanQuId",dto.getYuanQuId()); map.put ("yingYongId",dto.getYingYongId()); map.put ("kaiDanKs",dto.getKaiDanKs()); map.put ("dengJiLsh",dto.getDengJiLsh()); map.put ("shouTuiBz",dto.getShouTuiBz()); map.put ("feiYongMxList",dto.getFeiYongMxList()); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/shouFei/createMenZhenFy", map); return AjaxResult.success ().put ("data", post); } //门诊未收费费用撤销 public AjaxResult cheXiaoMzFy (CheXiaoMzFyDto dto) { Map map = new HashMap<> (); map.put ("bingRenId",dto.getBingRenId()); map.put ("jiuZhenKh",dto.getJiuZhenKh()); map.put ("feiYongIdList",dto.getFeiYongIdList()); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/shouFei/cheXiaoMzFy", map); return AjaxResult.success ().put ("data", post); } //收费/退费完成通知第三方 public AjaxResult pushZhiFuMsg (String feiYongId,int yeWuLx ) { Map map = new HashMap<> (); map.put ("feiYongId",feiYongId); map.put ("yeWuLx",yeWuLx); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/shouFei/pushZhiFuMsg", map); return AjaxResult.success ().put ("data", post); } //科室信息查询 public AjaxResult getKeShi (String yuanQuId,String keShiMc,int pageIndex,int pageSize ) { Map map = new HashMap<> (); map.put ("yuanQuId",yuanQuId); map.put ("keShiMc",keShiMc); map.put ("pageIndex",pageIndex); map.put ("pageSize",pageSize); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/zhuShuJu/getKeShi", map); return AjaxResult.success ().put ("data", post); } //医生信息查询 public AjaxResult getListYiShengZd (String yuanQuId,String keShiMc,int pageIndex,int pageSize ) { Map map = new HashMap<> (); map.put ("yuanQuId",yuanQuId); map.put ("keShiMc",keShiMc); map.put ("bianGengSj",""); map.put ("pageIndex",pageIndex); map.put ("pageSize",pageSize); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/zhuShuJu/getListYiShengZd", map); return AjaxResult.success ().put ("data", post); } //获取收费项目分页 public AjaxResult getShouFeiXm (String queryString,String bianGengSj,int pageIndex,int pageSize ) { Map map = new HashMap<> (); map.put ("queryString",queryString); map.put ("bianGengSj",bianGengSj); map.put ("pageIndex",pageIndex); map.put ("pageSize",pageSize); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/zhuShuJu/getShouFeiXm", map); return AjaxResult.success ().put ("data", post); } /** *科室信息推送 * @param xingZhiSx 组织属性 第一位1 表示 挂号 * 第二位 1表示临床 * 第三位 1表示检查 * 第四位 1 表示手术 * 第五位 1 表示治疗 * 第六位 1 表示护理 * @param queryString 模糊匹配输⼊码1、科室名称 * @param zuoFeiBz 作废标志:0 正常;1 作废 * @param yuanQuId 院区id * @param keShiIds 科室ID集合 * @param ifPlus 是否查询plus属性 * @return */ public AjaxResult getKeShiByConditions (int xingZhiSx, String queryString, int zuoFeiBz, String yuanQuId, ListkeShiIds,int ifPlus) { Map map = new HashMap<> (); map.put ("xingZhiSx",xingZhiSx); map.put ("queryString",queryString); map.put ("zuoFeiBz",zuoFeiBz); map.put ("yuanQuId",yuanQuId); map.put ("keShiIds",keShiIds); map.put ("ifPlus",ifPlus); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/zhuShuJu/getKeShiByConditions", map); return AjaxResult.success ().put ("data", post); } /** * //取样本字典 * @param queryString 样本类型名称(样本名称/样本类型id) * @param pageIndex * @param pageSize 每⻚条数(最⼤不能超过100) * @return */ public AjaxResult getYangBen (String queryString,int pageIndex,int pageSize ) { Map map = new HashMap<> (); map.put ("queryString",queryString); map.put ("pageIndex",pageIndex); map.put ("pageSize",pageSize); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/zhuShuJu/getYangBen", map); return AjaxResult.success ().put ("data", post); } /** * //病区信息推送 * @param yuanQuId 院区Id * @param keShiId 科室Id * @param pageIndex 当前⻚ * @param pageSize 每⻚条数(最⼤不能超过100) * @return */ public AjaxResult getListBingQuZd (String yuanQuId,String keShiId,int pageIndex,int pageSize ) { Map map = new HashMap<> (); map.put ("yuanQuId",yuanQuId); map.put ("keShiId",keShiId); map.put ("pageIndex",pageIndex); map.put ("pageSize",pageSize); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/zhuShuJu/getListBingQuZd", map); return AjaxResult.success ().put ("data", post); } /** * 职⼯信息 * @param bianGengSj 变更时间 * @param pageIndex 当前⻚ * @param pageSize 每⻚条数(最⼤不能超过100) * @return */ public AjaxResult getZhiGongPage (String bianGengSj,int pageIndex,int pageSize ) { Map map = new HashMap<> (); map.put ("bianGengSj",bianGengSj); map.put ("pageIndex",pageIndex); map.put ("pageSize",pageSize); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/zhuShuJu/getZhiGongPage", map); return AjaxResult.success ().put ("data", post); } /** * * @param queryString * @param bianGengSj * @param pageIndex * @param pageSize * @return */ public AjaxResult getJianChaXm (String queryString,String bianGengSj,int pageIndex,int pageSize ) { Map map = new HashMap<> (); map.put ("queryString",queryString); map.put ("bianGengSj",bianGengSj); map.put ("pageIndex",pageIndex); map.put ("pageSize",pageSize); //职业编码 String post = HttpClientUtils.sendPost (HIS_URL+"/zhuShuJu/getJianChaXm", map); return AjaxResult.success ().put ("data", post); } }