Browse Source

Merge branch '2.0' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into 2.0

LAPTOP-KB9HII50\70708 1 year ago
parent
commit
4a4678c6bf

+ 45 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/DsyyPrescriptionService.java

@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.patient.PatientMedicareCardDO;
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
@ -20,6 +21,7 @@ import com.yihu.jw.hospital.prescription.service.entrance.DsyyEntranceService;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.order.dao.BusinessOrderDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.patient.dao.BasePatientMedicareCardDao;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.utils.WebserviceUtil;
@ -45,8 +47,51 @@ public class DsyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
    private static Logger logger = LoggerFactory.getLogger(DsyyPrescriptionService.class);
    @Autowired
    private DsyyEntranceService dsyyEntranceService;
    @Autowired
    private BasePatientDao patientDao;
    @Autowired
    private BasePatientMedicareCardDao patientMedicareCardDao;
    //=============查询视图========================
    /**
     * 通过身份证获取卡号
     *
     *
     * @param patient
     * @return
     * @throws Exception
     */
    public JSONArray findCardNo(String patient) throws Exception {
        BasePatientDO patientDO = patientDao.getOne(patient);
        if (patientDO==null){
            throw new Exception("不存在该患者!");
        }
        patientMedicareCardDao.deleteByPatientId(patient);
        JSONArray array = dsyyEntranceService.findCardNo(patientDO.getIdcard());
        for (int i=0;i<array.size();i++){
            JSONObject object = array.getJSONObject(i);
            String cardType = object.getString("CARD_TYPE");
            String cardNo = object.getString("CARD_NO");
            String cardTypeName = object.getString("CARD_TYPE_NAME");
            PatientMedicareCardDO patientMedicareCardDO = new PatientMedicareCardDO();
            patientMedicareCardDO.setCode(cardNo);
            patientMedicareCardDO.setParentType("A");
            if (cardType.equalsIgnoreCase("D")){
                patientMedicareCardDO.setType("A_01");
            }else {
                patientMedicareCardDO.setType("A_03");
            }
            patientMedicareCardDO.setPatientCode(patient);
            patientMedicareCardDO.setOrgCode("350211A1002");
            patientMedicareCardDO.setCityCode("350200");
            patientMedicareCardDO.setDel("1");
            patientMedicareCardDO.setRemark(cardTypeName);
            patientMedicareCardDao.save(patientMedicareCardDO);
        }
        return array;
    }
    /**
     * 获取诊断
     *
@ -73,7 +118,6 @@ public class DsyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
    /**
     * 获取频次字典
     *
     * @param pydm
     * @return
     * @throws Exception
     */

+ 43 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/DsyyEntranceService.java

@ -436,6 +436,49 @@ public class DsyyEntranceService {
        return "success";
    }
    /**
     * 获取患者卡列表
     *
     *
     * @param idcard
     * @throws Exception
     */
    public JSONArray findCardNo(String idcard) throws Exception {
        String sql ="SELECT\n" +
                "\tPAT_NO AS \"PAT_NO\",\n" +
                "\tSICK_ID AS \"SICK_ID\",\n" +
                "\tCARD_NO AS \"CARD_NO\",\n" +
                "\tCARD_STAT AS \"CARD_STAT\",\n" +
                "\tOP_DATE AS \"OP_DATE\",\n" +
                "\tCARD_TYPE AS \"CARD_TYPE\",\n" +
                "\tXM AS \"XM\",\n" +
                "\tXB AS \"XB\",\n" +
                "\tLXDH AS \"LXDH\",\n" +
                "\tZJHM AS \"ZJHM\",\n" +
                "\tZHYE AS \"ZHYE\" \n" +
                "FROM\n" +
                "\tzhiydba.v_internet_patient_card_info \n" +
                "WHERE\n" +
                " 1=1 ";
        JSONArray array = new JSONArray();
        if (StringUtils.isNoneBlank(idcard)){
            sql +=" and ZJHM = '"+idcard+"' ";
        }
        Map<String,Object> params = new HashedMap();
        params.put("sql",sql);
        logger.info("cardNo:"+sql);
        HttpResponse response = HttpUtils.doGet(url,params);
        String content = response.getContent();
        logger.info("response:"+content);
        JSONObject rs = JSON.parseObject(content);
        Integer status = rs.getInteger("status");
        if (status==200){
            array = rs.getJSONArray("detailModelList");
        }
        return array;
    }
    /**
     * 获取icd10诊断
     *

+ 1 - 1
business/base-service/src/main/java/com/yihu/jw/wechat/service/WechatInfoService.java

@ -79,7 +79,7 @@ public class WechatInfoService {
            WxWechatDO wxWechat = null;
            
            //中山医院互联网医院
            if("xm_zsyy_wx".equals(wxId) || "xm_xzzx_wx".equals(wxId) || "xm_ykyy_wx".equals(wxId)||"xm_hcyy_wx".equals(wxId)){
            if("xm_zsyy_wx".equals(wxId) || "xm_xzzx_wx".equals(wxId) || "xm_ykyy_wx".equals(wxId)||"xm_hcyy_wx".equals(wxId)||"xm_dsyy_wx".equals(wxId)){
                jsapiTickets = wxAccessTokenService.findJsapiTicket(wxId);
            }else{
                wxWechat = wxAccessTokenService.getWxInfo(wxId);

File diff suppressed because it is too large
+ 5 - 2
business/base-service/src/main/java/com/yihu/jw/wlyy/wlyyhttp/WlyyHttpService.java


+ 93 - 50
business/es-service/src/main/java/com/yihu/jw/es/service/StatisticsEsService.java

@ -6344,17 +6344,23 @@ public class StatisticsEsService {
    public JSONObject getDrugAndExaminationFeeList(ScreenQvo qvo) throws Exception {
        System.out.println("getDrugAndExaminationFeeList获取:诊查费(21) + 处方费(3)");
        if (qvo.getFlag() == 1) {
            //本月
            qvo.setStartDate(DateUtil.getFirstMonthDay());
            qvo.setEndDate(DateUtil.getLastMonthDay());
            if (StringUtils.isBlank(qvo.getStartDate())) {
                //本月
                qvo.setStartDate(DateUtil.getFirstMonthDay());
                qvo.setEndDate(DateUtil.getLastMonthDay());
            }
        } else if (qvo.getFlag() == 2) {
            //近半年
            qvo.setStartDate(DateUtil.getMonthDate(new Date(), -6));
            qvo.setEndDate(DateUtil.getStringDateShort());
            if (StringUtils.isBlank(qvo.getStartDate())) {
                //近半年
                qvo.setStartDate(DateUtil.getMonthDate(new Date(), -6));
                qvo.setEndDate(DateUtil.getStringDateShort());
            }
        } else if (qvo.getFlag() == 3) {
            //全年
            qvo.setStartDate(DateUtil.getCurrentYearStartTime());
            qvo.setEndDate(DateUtil.getCurrentYearEndTime());
            if (StringUtils.isBlank(qvo.getStartDate())) {
                //全年
                qvo.setStartDate(DateUtil.getCurrentYearStartTime());
                qvo.setEndDate(DateUtil.getCurrentYearEndTime());
            }
        }
        System.out.println("赋值时间-参数:" + JSON.toJSONString(qvo));
        HashMap<String, String> map = new HashMap<>();
@ -6397,17 +6403,23 @@ public class StatisticsEsService {
    public JSONObject getDeptOrDoctorVolumeList(ScreenQvo qvo) throws Exception {
        JSONObject result = new JSONObject();
        if (qvo.getFlag() == 1) {
            //本月
            qvo.setStartDate(DateUtil.getFirstMonthDay());
            qvo.setEndDate(DateUtil.getLastMonthDay());
            if (StringUtils.isBlank(qvo.getStartDate())) {
                //本月
                qvo.setStartDate(DateUtil.getFirstMonthDay());
                qvo.setEndDate(DateUtil.getLastMonthDay());
            }
        } else if (qvo.getFlag() == 2) {
            //近半年
            qvo.setStartDate(DateUtil.getMonthDate(new Date(), -6));
            qvo.setEndDate(DateUtil.getStringDateShort());
            if (StringUtils.isBlank(qvo.getStartDate())) {
                //近半年
                qvo.setStartDate(DateUtil.getMonthDate(new Date(), -6));
                qvo.setEndDate(DateUtil.getStringDateShort());
            }
        } else if (qvo.getFlag() == 3) {
            //全年
            qvo.setStartDate(DateUtil.getCurrentYearStartTime());
            qvo.setEndDate(DateUtil.getCurrentYearEndTime());
            if (StringUtils.isBlank(qvo.getStartDate())) {
                //全年
                qvo.setStartDate(DateUtil.getCurrentYearStartTime());
                qvo.setEndDate(DateUtil.getCurrentYearEndTime());
            }
        }
        //查科室
        if ("4".equals(String.valueOf(qvo.getLevel()))) {
@ -6498,23 +6510,30 @@ public class StatisticsEsService {
            //数据转换
            List<Map<String, Object>> list = mergeAndSortLists(listOfLists, "2");
            //过滤科室和医生
            if (StringUtils.isNotBlank(qvo.getDeptCode()) || StringUtils.isNotBlank(qvo.getDeptName())) {
            if (StringUtils.isNotBlank(qvo.getDeptCode()) || StringUtils.isNotBlank(qvo.getDoctorName())) {
                List<Map<String, Object>> filterDoctortList = new ArrayList<>();
                if (StringUtils.isNotBlank(qvo.getDeptCode()) && StringUtils.isNotBlank(qvo.getDoctorName())) {
                    //科室
                    for (Map<String, Object> map : list) {
                        if (qvo.getDeptCode().equals(map.get("deptCode").toString())) {
                            filterDoctortList.add(map);
                            //医生
                            if (map.get("doctorName").toString().contains(qvo.getDoctorName())) {
                                filterDoctortList.add(map);
                            }
                        }
                    }
                    //医生
                    for (Map<String, Object> map : filterDoctortList) {
                        if (map.get("doctorName").toString().contains(qvo.getDoctorName())) {
                }
                if (StringUtils.isNotBlank(qvo.getDeptCode()) && StringUtils.isBlank(qvo.getDoctorName())) {
                    //科室
                    for (Map<String, Object> map : list) {
                        if (qvo.getDeptCode().equals(map.get("deptCode").toString())) {
                            filterDoctortList.add(map);
                        }
                    }
                }
                if (StringUtils.isBlank(qvo.getDeptCode()) && StringUtils.isNotBlank(qvo.getDoctorName())) {
                    //医生
                    for (Map<String, Object> map : list) {
                        if (map.get("doctorName").toString().contains(qvo.getDoctorName())) {
                            filterDoctortList.add(map);
@ -6523,9 +6542,10 @@ public class StatisticsEsService {
                }
                result.put("resultList", filterDoctortList);
                result.put("resultListSize", filterDoctortList.size());
            } else {
                result.put("resultList", list);
                result.put("resultListSize", list.size());
            }
            result.put("resultList", list);
            result.put("resultListSize", list.size());
        }
        return result;
    }
@ -7368,8 +7388,8 @@ public class StatisticsEsService {
            return todayFree;
        }, execute);
        CompletableFuture.allOf(future01, future02, future03, future04).get();
        SaveModel model01 = future01.get();
        SaveModel model02 = future02.get();
        SaveModel model01 = future01.get();//处方费
        SaveModel model02 = future02.get(); //检查费
        SaveModel monthModel = future03.get();
        String todayFree = future04.get();
        long checkFree = 0;
@ -7383,8 +7403,8 @@ public class StatisticsEsService {
        }
        allCount = prescriptionFee + checkFree;
        resultMap.put("checkFree", checkFree);//处方费
        resultMap.put("prescriptionFee", prescriptionFee);//检查费
        resultMap.put("checkFree", checkFree);//检查费
        resultMap.put("prescriptionFee", prescriptionFee);//处方费
        resultMap.put("allCount", allCount);//总费用
        if (allCount == 0) {
            resultMap.put("avgFree", 0);
@ -7452,43 +7472,48 @@ public class StatisticsEsService {
    public List<Map<String, Object>> getPatientBehavior() throws ExecutionException, InterruptedException {
        String sql01 = "SELECT q.*,CONCAT('患者',q.patientName,'发起了',q.title)'description' FROM (\n" +
                "	SELECT\n" +
                "		patient_name 'patientName',\n" +
                "	  b.id 'patientId',	a.patient_name 'patientName',	b.idcard,	b.ssc,b.mobile,\n" +
                "		b.birthday,TIMESTAMPDIFF(YEAR, b.birthday, CURDATE()) AS age,	b.address,\n" +
                "		CASE \n" +
                "			WHEN outpatient_type='1' THEN '在线复诊'\n" +
                "			WHEN outpatient_type='2' THEN '协同门诊'\n" +
                "			WHEN outpatient_type='3' AND type='1' THEN '图文咨询'\n" +
                "			WHEN outpatient_type='3' AND type='2' THEN '视频咨询'\n" +
                "			WHEN a.outpatient_type='1' THEN '在线复诊'\n" +
                "			WHEN a.outpatient_type='2' THEN '协同门诊'\n" +
                "			WHEN a.outpatient_type='3' AND a.type='1' THEN '图文咨询'\n" +
                "			WHEN a.outpatient_type='3' AND a.type='2' THEN '视频咨询'\n" +
                "		END 'title',\n" +
                "		DATE_FORMAT(create_time, '%Y-%m-%d %H:%i:%S') 'createTime'\n" +
                "		DATE_FORMAT(a.create_time, '%Y-%m-%d %H:%i:%S') 'createTime'\n" +
                "	FROM\n" +
                "		wlyy_outpatient \n" +
                "		wlyy_outpatient a INNER JOIN base_patient b ON a.patient=b.id\n" +
                "	WHERE\n" +
                "		1 = 1 \n" +
                "		AND pay_status IN ( '1', '2' )\n" +
                "		ORDER BY create_time DESC LIMIT 5\n" +
                "		AND a.pay_status IN ( '1', '2' )\n" +
                "		ORDER BY a.create_time DESC LIMIT 5\n" +
                ")q";
        String sql02 = "SELECT q.*,CONCAT('患者',q.patientName,'购药成功了')'description' FROM (\n" +
                "	SELECT\n" +
                "	patient_name 'patientName',\n" +
                "	b.id 'patientId',	a.patient_name 'patientName',	b.idcard,	b.ssc,b.mobile,\n" +
                "	b.birthday,TIMESTAMPDIFF(YEAR, b.birthday, CURDATE()) AS age,	b.address,\n" +
                "  CASE \n" +
                "	 WHEN `status`='30' THEN '购药成功'\n" +
                "	END 'title',\n" +
                "	DATE_FORMAT( create_time, '%Y-%m-%d %H:%i:%S' ) 'createTime' \n" +
                "	DATE_FORMAT( a.create_time, '%Y-%m-%d %H:%i:%S' ) 'createTime' \n" +
                "FROM\n" +
                "	wlyy_prescription \n" +
                "	wlyy_prescription a INNER JOIN base_patient b ON a.patient_code=b.id\n" +
                "WHERE\n" +
                "	`status` = '30' ORDER BY create_time DESC LIMIT 5\n" +
                ")q";
                "	a.`status` = '30' ORDER BY a.create_time DESC LIMIT 5\n" +
                ")q;";
        String sql03 = "SELECT q.*,CONCAT('患者',q.patientName,'出院转',q.title,'诊后管理') 'description' FROM (\n" +
                "	SELECT\n" +
                "	`name` 'patientName',disease_name 'title',DATE_FORMAT( create_time, '%Y-%m-%d %H:%i:%S' ) 'createTime'  \n" +
                "	b.id 'patientId',	a.`name` 'patientName',	b.idcard,	b.ssc,b.mobile,\n" +
                "	b.birthday,TIMESTAMPDIFF(YEAR, b.birthday, CURDATE()) AS age,	b.address,\n" +
                "	\n" +
                "	a.disease_name 'title',DATE_FORMAT( a.create_time, '%Y-%m-%d %H:%i:%S' ) 'createTime'  \n" +
                "FROM\n" +
                "	wlyy_patient_rehabilitation_plan \n" +
                "	wlyy_patient_rehabilitation_plan a INNER JOIN base_patient b ON a.patient=b.id\n" +
                "ORDER BY\n" +
                "	create_time DESC \n" +
                "	a.create_time DESC \n" +
                "	LIMIT 5\n" +
                ")q";
        CompletableFuture<List<Map<String, Object>>> future01 = CompletableFuture.supplyAsync(() -> {
@ -7725,10 +7750,10 @@ public class StatisticsEsService {
     * 查询用户基本信息
     */
    public Map<String, Object> getPatientInfo(ScreenQvo qvo) {
        String sql="SELECT id 'patientId',`name` 'patientName',idcard,ssc,birthday,  TIMESTAMPDIFF(YEAR, birthday, CURDATE()) AS age ,mobile,address,phone \n" +
                "FROM base_patient WHERE idcard='"+qvo.getIdcard()+"' AND del='1'";
        String sql = "SELECT id 'patientId',`name` 'patientName',idcard,ssc,birthday,  TIMESTAMPDIFF(YEAR, birthday, CURDATE()) AS age ,mobile,address,phone \n" +
                "FROM base_patient WHERE idcard='" + qvo.getIdcard() + "' AND del='1'";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        if (!list.isEmpty()){
        if (!list.isEmpty()) {
            return list.get(0);
        }
        return null;
@ -7748,10 +7773,28 @@ public class StatisticsEsService {
     * 调用i健康就诊情况
     */
    public JSONObject getEventByIjk(ScreenQvo qvo) {
        String param = "?&idcard=" + qvo.getIdcard() + "ssc=" + qvo.getSsc() + "&type=1&page=1&pageSize=100";
        String param = "?idcard=" + qvo.getIdcard() + "ssc=" + qvo.getSsc() + "&type=1&page=1&pageSize=100";
        JSONObject re = wlyyHttpService.sendWlyyMesGet("getEventList", param);
        return re;
    }
    /**
     * 获取i健康的健康设备
     */
    public JSONObject getHealthDeviceByIjk(ScreenQvo qvo) {
        String param = "?idcard=" + qvo.getIdcard();
        JSONObject re = wlyyHttpService.sendWlyyMesGet("healthDevice", param);
        return re;
    }
    /**
     * 获取i健康的患者的健康指标数据
     */
    public JSONObject getHealthChart(ScreenQvo qvo) {
        String param = "?idcard=" + qvo.getIdcard() + "&type=" + qvo.getType() + "&gi_type="+qvo.getIndex() + "&time=" + qvo.getTime() + "&begin=" + qvo.getStartDate() + "&end=" + qvo.getEndDate();
        JSONObject re = wlyyHttpService.sendWlyyMesGet("chart", param);
        return re;
    }
}

+ 9 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/statistics/ScreenQvo.java

@ -34,6 +34,15 @@ public class ScreenQvo {
    private String type;//类型
    private String idcard;
    private String ssc;//社保卡号
    private String time;//时间(一周,一月,半年)
    public String getTime() {
        return time;
    }
    public void setTime(String time) {
        this.time = time;
    }
    public String getIdcard() {
        return idcard;

+ 1 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

@ -446,7 +446,7 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
                }
                return success(jsonArray);
            } else if ("xm_tasy_wx".equalsIgnoreCase(wxId)) {
                return success(tasyNatService.findPatientCard(patient));
                return success(dsyyPrescriptionService.findCardNo(patient));
            }else if ("xm_mlwyy_wx".equalsIgnoreCase(wxId)){
                return success(mlwyyPrescriptionService.findPatientCardList(patient));
            } else {

+ 33 - 2
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/statistics/EsStatisticsEndpoint.java

@ -1581,7 +1581,6 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    @ApiOperation(value = "患者复诊诊断排行")
    public Envelop getReExaminationRanking() {
        try {
            List<Map<String, Object>> result = statisticsEsService.getReExaminationRanking();
            return success(result);
        } catch (Exception e) {
@ -1681,9 +1680,10 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
    /**
     * 调用i健康就诊情况
     * 参数:strJson={"idcard":"330102193601190910","ssc":"123456"}
     */
    @GetMapping(value = "/getEventByIjk")
    @ApiOperation(value = "获取居民家庭成员关系信息列表")
    @ApiOperation(value = "调用i健康就诊情况")
    public Envelop getEventByIjk(@RequestParam(required = true) String strJson) {
        try {
            ScreenQvo qvo = JSON.parseObject(strJson, ScreenQvo.class);
@ -1695,8 +1695,39 @@ public class EsStatisticsEndpoint extends EnvelopRestEndpoint {
        }
    }
    /**
     * 获取i健康的健康设备
     * 参数:strJson={"idcard":"330102193601190910"}
     */
    @GetMapping(value = "/getHealthDeviceByIjk")
    @ApiOperation(value = "获取i健康的健康设备")
    public Envelop getHealthDeviceByIjk(@RequestParam(required = true) String strJson) {
        try {
            ScreenQvo qvo = JSON.parseObject(strJson, ScreenQvo.class);
            JSONObject result = statisticsEsService.getHealthDeviceByIjk(qvo);
            return success(result);
        } catch (Exception e) {
            e.printStackTrace();
            return failed("系统繁忙");
        }
    }
    /**
     * 获取i健康的患者的健康指标数据
     */
    @GetMapping(value = "/getHealthChart")
    @ApiOperation(value = "获取i健康的患者的健康指标数据")
    public Envelop getHealthChart(@RequestParam(required = true) String strJson) {
        try {
            ScreenQvo qvo = JSON.parseObject(strJson, ScreenQvo.class);
            JSONObject result = statisticsEsService.getHealthChart(qvo);
            return success(result);
        } catch (Exception e) {
            e.printStackTrace();
            return failed("系统繁忙");
        }
    }
}