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.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);
}
//3.9科室信息推送
// 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);
// }
}