3 Commits 34796c20b2 ... 1b02048ffe

Author SHA1 Message Date
  wangzhinan 1b02048ffe 三院优化开发 2 months ago
  wangzhinan ce0572af12 三院优化开发 2 months ago
  wangzhinan bfa52b5e91 三院优化开发 2 months ago

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

@ -30,5 +30,5 @@ public interface PrescriptionExpressageDao extends JpaRepository<WlyyPrescriptio
    List<WlyyPrescriptionExpressageDO> findByOutpatientIdAndOneSelfPick(String outpatientId);
    @Query(value = "select p.* from wlyy_prescription_expressage p where p.outpatient_id=?1 order by p.create_time desc limit 1",nativeQuery = true)
    WlyyPrescriptionExpressageDO findByPrescriptionCode(String prescriptionCode);
    WlyyPrescriptionExpressageDO findByOupatientId(String outpatientId);
}

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

@ -261,7 +261,7 @@ public class DsyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
            //病历
            JSONArray emrArray = dsyyEntranceService.selectHistoryEmrFromEntrance(patNo,registerSn);
            for (int z=0;z<emrArray.size();z++){
                JSONObject object = emrArray.getJSONObject(i);
                JSONObject object = emrArray.getJSONObject(z);
                String PATIENT = object.getString("PATIENT");
                String OPID = object.getString("OPID");
                String res = selectHistoryEmrRecord(PATIENT,OPID);
@ -368,8 +368,22 @@ public class DsyyPrescriptionService extends BaseJpaService<WlyyPrescriptionDO,
     * @return
     * @throws Exception
     */
    public JSONArray findIcd10(String pyCode) throws Exception {
        return dsyyEntranceService.findIcd10(pyCode);
    public JSONArray findIcd10(String pyCode,String flag) throws Exception {
        if (flag.equalsIgnoreCase("2")){
            String sql = "select code,name,py_code,d_code from dict_icd10 where 1=1 and flag ='"+flag+"' ";
            if (StringUtils.isNoneBlank(pyCode)){
                sql += " and (py_code like '%"+pyCode.toUpperCase()+"%' or name like '%"+pyCode+"%') ";
            }
            logger.info("sql====="+sql);
            List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
            JSONArray array = new JSONArray();
            for (Map<String,Object> map:mapList){
                array.add(map);
            }
            return array;
        }else {
            return dsyyEntranceService.findIcd10(pyCode);
        }
    }
    /**

+ 52 - 7
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -2807,7 +2807,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
     * @param diagnosisJson
     * @return
     */
    public Map<String, Object> makeDiagnosis(String outPatientId,String prescriptionId, String advice, String type, String infoJsons, String diagnosisJson, String inspectionJson, String emrJson,String hisId) throws Exception {
    public Map<String, Object> makeDiagnosis(String outPatientId,String prescriptionId, String advice, String type, String infoJsons, String diagnosisJson, String inspectionJson, String emrJson,String hisId,String diseaseCode,String diseaseName,String isDisease) throws Exception {
        Map<String, Object> result = new HashedMap();
@ -2815,6 +2815,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        WlyyOutpatientDO outpatientDO = outpatientDao.findById(outPatientId).orElse(null);
        //设置医嘱
        outpatientDO.setAdvice(advice);
        //设置特殊病种
        outpatientDO.setDiseaseCode(diseaseCode);
        outpatientDO.setDiseaseName(diseaseName);
        outpatientDO.setIsDisease(isDisease);
        //========================处方操作=============================================================
        //创建处方记录
@ -2824,6 +2829,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        if(StringUtils.isNotBlank(prescriptionId)){
            wlyyPrescriptionDO1 = prescriptionDao.findListById(prescriptionId);
            prescriptionDO =wlyyPrescriptionDO1.get(0);
            prescriptionDO.setIsDisease(isDisease);
            prescriptionDO.setDiseaseCode(diseaseCode);
            prescriptionDO.setDiseaseName(diseaseName);
        }else{
            if (StringUtils.isNotBlank(hisId)){
                prescriptionDO.setHisId(hisId);
@ -2842,6 +2850,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
            prescriptionDO.setDoctor(outpatientDO.getDoctor());
            prescriptionDO.setDoctorName(outpatientDO.getDoctorName());
            prescriptionDO.setPayStatus(0);
            prescriptionDO.setIsDisease(isDisease);
            prescriptionDO.setDiseaseCode(diseaseCode);
            prescriptionDO.setDiseaseName(diseaseName);
            if (wechatId.equalsIgnoreCase("xm_ykyy_wx")) {
                prescriptionDO.setAdmNo(outpatientDO.getAdmNo());
            }
@ -5363,6 +5374,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                if(dictDO==null||"0".equals(dictDO.getDictValue())){
                    //不发送
                    return;
                }else {
                    int i= dsyyPrescriptionService.SendSms(phone,content);
                    logger.info("phone="+phone+";content="+content+","+i);
                }
            }
            if(StringUtils.isNotBlank(phone)&&StringUtils.isNotBlank(content)){
@ -5572,9 +5586,29 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                        return;
                    }
                }
                if (wxId.equalsIgnoreCase("xm_dsyy_wx")){
                    String content = "";
                    String phone = "";
                    if ("9".equals(type)) {
                        content = "患者"+outpatientDO.getConsumerName()+"取消了图文复诊,您无需再进行相关处理。";
                    }
                    if ("16".equals(type)) {
                        content = "患者"+outpatientDO.getConsumerName()+"取消了视频复诊,您无需再进行相关处理。";
                    }
                    if ("1".equals(type)) {
                        content = "患者"+outpatientDO.getConsumerName()+"取消了图文咨询,您无需再进行相关处理。";
                    }
                    if ("17".equals(type)) {
                        content = "患者"+outpatientDO.getConsumerName()+"取消了视频咨询,您无需再进行相关处理。";
                    }
                    if ("12".equals(type)) {
                        return;
                    }
                    sendSms(doctorDO.getMobile(),content,"2");
                }
                logger.info("patientCancel诊查费支付成功推送模板消息:outpatientId="+outpatientId);
                msgUrl="/ims-wx/index.html#/returnVisit/record?outpatientId="+outpatientId;
            }else if("systemCancelRemind".equalsIgnoreCase(titelType)){
                //超过24小时未接诊,系统取消
                WlyyHospitalSysDictDO hospitalSysDictDO = hospitalSysDictDao.findById("isCloseRefund").orElse(null);
@ -5648,16 +5682,21 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                    return;
                }
            } else if ("paySuccess".equalsIgnoreCase(titelType)) {
                String title = "";
                if ("9".equals(type)) {
                    title = "图文复诊";
                    contentMsg = "您已成功发起图文复诊,请耐心等待医生接单。如长时间未接诊,建议选择其他医生";
                    first = outpatientDO.getConsumerName() + ",您好!您已成功发起图文复诊";
                }else if ("16".equals(type)) {
                    title = "视频复诊";
                    contentMsg =  "您已成功发起视频复诊,请耐心等待医生接单。如长时间未接诊,建议选择其他医生";
                    first = outpatientDO.getConsumerName() + ",您好!您已成功发起视频复诊";
                }else if ("1".equals(type)) {
                    title = "图文咨询";
                    contentMsg =  "您已成功发起图文咨询,请耐心等待医生接单。如长时间未接诊,建议选择其他医生";
                    first = outpatientDO.getConsumerName() + ",您好!您已成功发起图文咨询";
                }else if ("17".equals(type)) {
                    title = "视频咨询";
                    contentMsg = "您已成功发起视频咨询,请耐心等待医生接单。如长时间未接诊,建议选择其他医生";
                    first = outpatientDO.getConsumerName() + ",您好!您已成功发起视频咨询";
                }else {
@ -5665,6 +5704,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                }
                logger.info("paySuccess诊查费支付成功推送模板消息:outpatientId="+outpatientId);
                msgUrl="/ims-wx/index.html#/returnVisit/record?outpatientId="+outpatientId;
                if("xm_dsyy_wx".equalsIgnoreCase(wechatId)){
                    sendSms(doctorDO.getMobile(),"医生您好,患者"+outpatientDO.getPatientName()+"向您发起了"+title+",请及时前往互联网医院查看并答复。","2");
                }
            }else if ("prescriptionPayRemind".equalsIgnoreCase(titelType)) {
                //开具处方后向患者发送支付提醒
                first = outpatientDO.getConsumerName() + ",您好! 医生已为您开具处方,请及时支付。";
@ -6346,6 +6388,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                "room.patient_name AS \"name\"," +
                "outpatient.patient_name AS \"outPatientName\"," +
                "outpatient.patient AS \"outPatient\"," +
                "outpatient.card_no AS \"cardNo\"," +
                "patient.sex AS \"sex\"," +
                "patient.idcard AS \"idcard\"," +
                "patient.photo AS \"photo\"," +
@ -9073,6 +9116,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        try {
            JSONObject data = new JSONObject();
            BasePatientDO patient = basePatientDao.findById(outpatient.getPatient()).orElse(null);
            BaseDoctorDO doctor = baseDoctorDao.findById(outpatient.getDoctor()).orElse(null);
            String title = "";
            //1.在线复诊2.协同门诊
            if ("2".equals(outpatient.getOutpatientType())) {
@ -9146,9 +9190,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)) {
                    ykyyService.pushNotificationToYktPatient(patient.getYktId(), systemMessageDO.getTitle(), data.get("msg").toString());
                }
                if("xm_dsyy_wx".equalsIgnoreCase(wechatId)){
                    sendSms(patient.getMobile(),"医生您好,患者"+outpatient.getPatientName()+"向您发起了"+title+",请及时查看","2");
                }
            } else if ("1".equals(outpatient.getOutpatientType()))  {        //在线复诊
                //1.图文 2.视频
                if ("1".equals(outpatient.getType())) {
@ -9174,8 +9216,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                                wlyyHttpLogDao.save(wlyyHttpLogDO);
                            }
                        }
                    }else  if("xm_dsyy_wx".equalsIgnoreCase(wechatId)){
                        sendSms(patient.getMobile(),"医生您好,患者"+outpatient.getPatientName()+"向您发起了图文问诊,请及时查看","2");
                    }
                } else {
                    systemMessageDO.setTitle("视频复诊预约成功");
@ -12172,6 +12212,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                    if (null!=businessOrderDO){
                        businessOrders.add(businessOrderDO);
                    }
                    //物流信息
                    WlyyPrescriptionExpressageDO expressageDO = prescriptionExpressageDao.findByOupatientId(vo.getOutpatientId());
                    if (expressageDO!=null){
                        vo.setOneselfPickupFlg(expressageDO.getOneselfPickupFlg());
                    }
                }
            }

+ 32 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/prescription/WlyyPrescriptionDO.java

@ -285,6 +285,38 @@ public class WlyyPrescriptionDO extends UuidIdentityEntity {
    private Date disableTime;
    private String diseaseCode;
    private String diseaseName;
    private String isDisease;
    @Column(name = "disease_code")
    public String getDiseaseCode() {
        return diseaseCode;
    }
    public void setDiseaseCode(String diseaseCode) {
        this.diseaseCode = diseaseCode;
    }
    @Column(name = "disease_name")
    public String getDiseaseName() {
        return diseaseName;
    }
    public void setDiseaseName(String diseaseName) {
        this.diseaseName = diseaseName;
    }
    @Column(name = "is_disease")
    public String getIsDisease() {
        return isDisease;
    }
    public void setIsDisease(String isDisease) {
        this.isDisease = isDisease;
    }
    @Column(name = "check_time")
    public Date getCheckTime() {

+ 34 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/hospital/prescription/WlyyPrescriptionVO.java

@ -400,6 +400,40 @@ public class WlyyPrescriptionVO extends UuidIdentityVOWithOperator {
    @ApiModelProperty(value = "单据号", example = "模块1")
    private String voucherNo;
    @ApiModelProperty(value = "特殊病种编码", example = "模块1")
    private String diseaseCode;
    @ApiModelProperty(value = "特殊病种名称", example = "模块1")
    private String diseaseName;
    @ApiModelProperty(value = "是否特殊病种", example = "模块1")
    private String isDisease;
    public String getDiseaseCode() {
        return diseaseCode;
    }
    public void setDiseaseCode(String diseaseCode) {
        this.diseaseCode = diseaseCode;
    }
    public String getDiseaseName() {
        return diseaseName;
    }
    public void setDiseaseName(String diseaseName) {
        this.diseaseName = diseaseName;
    }
    public String getIsDisease() {
        return isDisease;
    }
    public void setIsDisease(String isDisease) {
        this.isDisease = isDisease;
    }
    public String getVoucherNo() {
        return voucherNo;
    }

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

@ -664,7 +664,9 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.getICD10)
    @ApiOperation(value = "获取ICD10诊断编码", notes = "获取ICD10诊断编码")
    public ListEnvelop getICD10(@ApiParam(name = "pyKey", value = "拼音关键字")
                                @RequestParam(value = "pyKey", required = false) String pyKey) throws Exception {
                                @RequestParam(value = "pyKey", required = false) String pyKey,
                                @ApiParam(name = "flag", value = "1是普通诊断2特殊病种")
                                @RequestParam(value = "flag", required = false) String flag) throws Exception {
        if (wxId.equalsIgnoreCase("xm_zsyy_wx")||demoFlag) {
            return success(prescriptionService.getICD10(pyKey));
        } else if (wxId.equalsIgnoreCase("xm_xzzx_wx")) {
@ -674,7 +676,7 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
        } else if (wxId.equalsIgnoreCase("xm_hcyy_wx")) {
            return success(hcyyPrescriptionService.selectIcd10Dict(pyKey));
        } if (wxId.equalsIgnoreCase("xm_dsyy_wx")) {
            return success(dsyyPrescriptionService.findIcd10(pyKey));
            return success(dsyyPrescriptionService.findIcd10(pyKey,flag));
        }else {
            return ListEnvelop.getError("尚未开发!");
        }
@ -790,8 +792,14 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
                                    @ApiParam(name = "hisId", value = "审方唯一标识")
                                    @RequestParam(value = "hisId", required = false) String hisId,
                                    @ApiParam(name = "orderId", value = "上门服务订单号")
                                    @RequestParam(value = "orderId", required = false) String orderId) throws Exception {
        Map<String, Object> result = prescriptionService.makeDiagnosis(outPatientId, prescriptionId, advice, type, infoJsons, diagnosisJson, inspectionJson, emrJson, hisId);
                                    @RequestParam(value = "orderId", required = false) String orderId,
                                    @ApiParam(name = "isDisease", value = "是否特殊病种1是0否")
                                        @RequestParam(value = "isDisease", required = false) String isDisease,
                                    @ApiParam(name = "diseaseCode", value = "特殊病种")
                                        @RequestParam(value = "diseaseCode", required = false) String diseaseCode,
                                    @ApiParam(name = "diseaseName", value = "特殊病种名称")
                                        @RequestParam(value = "diseaseName", required = false) String diseaseName) throws Exception {
        Map<String, Object> result = prescriptionService.makeDiagnosis(outPatientId, prescriptionId, advice, type, infoJsons, diagnosisJson, inspectionJson, emrJson, hisId,diseaseCode,diseaseName,isDisease);
        com.alibaba.fastjson.JSONObject msgObj = new com.alibaba.fastjson.JSONObject();
        List<WlyyPrescriptionDiagnosisDO> diagnosisDOs = (List<WlyyPrescriptionDiagnosisDO>) com.alibaba.fastjson.JSONArray.parseArray(diagnosisJson, WlyyPrescriptionDiagnosisDO.class);
        String zd_str = "";