3 Commits 34796c20b2 ... 1b02048ffe

Tác giả SHA1 Thông báo Ngày
  wangzhinan 1b02048ffe 三院优化开发 11 tháng trước cách đây
  wangzhinan ce0572af12 三院优化开发 11 tháng trước cách đây
  wangzhinan bfa52b5e91 三院优化开发 11 tháng trước cách đây

+ 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 = "";