Browse Source

互联网医院

Trick 5 năm trước cách đây
mục cha
commit
fdc5200abf

+ 21 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/doctor/dao/WlyyDoctorOnlineTimeDao.java

@ -0,0 +1,21 @@
package com.yihu.jw.hospital.doctor.dao;
import com.yihu.jw.entity.hospital.doctor.WlyyDoctorOnlineTimeDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
import java.util.List;
/**
 * Created by Trick on 2019/7/31.
 */
public interface WlyyDoctorOnlineTimeDao extends PagingAndSortingRepository<WlyyDoctorOnlineTimeDO, String>, JpaSpecificationExecutor<WlyyDoctorOnlineTimeDO> {
    @Query("from WlyyDoctorOnlineTimeDO a where a.doctor = ?1 and (a.startTime <= ?2 AND a.endTime <= ?2 )OR (a.startTime <= ?3 AND a.endTime <= ?3)")
    List<WlyyDoctorOnlineTimeDO> findWorkExistList(String doctor, Date startDate,Date endDate);
    @Query("from WlyyDoctorOnlineTimeDO a where a.doctor = ?1 and a.startTime >= ?2 AND a.startTime <= ?3 order By a.startTime ASC)")
    List<WlyyDoctorOnlineTimeDO> findWorkList(String doctor, Date startDate,Date endDate);
}

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

@ -15,6 +15,7 @@ import com.yihu.jw.entity.hospital.consult.WlyyDoctorClinicRoomDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalWaitingRoomDO;
import com.yihu.jw.entity.hospital.dict.WlyyChargeDictDO;
import com.yihu.jw.entity.hospital.doctor.WlyyDoctorOnlineTimeDO;
import com.yihu.jw.entity.hospital.doctor.WlyyDoctorWorkTimeDO;
import com.yihu.jw.entity.hospital.doctor.WlyyPatientRegisterTimeDO;
import com.yihu.jw.entity.hospital.httplog.WlyyHttpLogDO;
@ -26,6 +27,7 @@ import com.yihu.jw.hospital.dict.WlyyChargeDictDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.doctor.dao.DoctorWorkTimeDao;
import com.yihu.jw.hospital.doctor.dao.PatientRegisterTimeDao;
import com.yihu.jw.hospital.doctor.dao.WlyyDoctorOnlineTimeDao;
import com.yihu.jw.hospital.httplog.dao.WlyyHttpLogDao;
import com.yihu.jw.hospital.mapping.service.DoctorMappingService;
import com.yihu.jw.hospital.mapping.service.PatientMappingService;
@ -40,6 +42,7 @@ import com.yihu.jw.restmodel.hospital.consult.WlyyHospitalSysDictVO;
import com.yihu.jw.restmodel.hospital.doctor.WlyyDoctorWorkTimeVO;
import com.yihu.jw.restmodel.hospital.prescription.*;
import com.yihu.jw.restmodel.iot.common.UploadVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.util.common.IdCardUtil;
@ -130,6 +133,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    private BaseDoctorHospitalDao baseDoctorHospitalDao;
    @Autowired
    private PrescriptionExpressageService sfexpressService;
    @Autowired
    private WlyyDoctorOnlineTimeDao wlyyDoctorOnlineTimeDao;
    
@ -180,6 +185,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    public List<WlyyPrescriptionVO> findOriginPrescriptionList(String registerSn,String patient,String admNo,boolean demoFlag)throws Exception{
        String patNo =patientMappingService.findHisPatNoByPatient(patient);
        //BS16017(String REGISTER_SN,String realOrder,String PAT_NO,String ADM_NO,boolean demoFlag) throws Exception {
        logger.info("findOriginPrescriptionList: registerSn:"+registerSn+" patient"+patient+" patNo:"+patNo+" admNo:"+admNo);
        return entranceService.BS16017(registerSn,null,patNo,admNo,demoFlag);
    }
@ -528,6 +534,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        outpatientDO.setStatus("0");
        outpatientDO.setCreateTime(new Date());
        outpatientDO.setIdcard(patientDO.getIdcard());
        outpatientDO.setOutpatientType("1");
        outpatientDO.setCreateTime(new Date());
        WlyyOutpatientDO outpatient = outpatientDao.save(outpatientDO);
@ -559,6 +566,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        return outpatient;
    }
    /**
     * 创建候诊室
     * @param outpatientDO
@ -573,11 +581,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        waitingRoom.setHospital(outpatientDO.getHospital());
        waitingRoom.setHospitalName(outpatientDO.getHospitalName());
        //是否是有协同门诊医生
        if(StringUtils.isNotBlank(outpatientDO.getDoctor())){
            waitingRoom.setGeneralDoctor(outpatientDO.getGeneralDoctor());
            waitingRoom.setGeneralDoctorName(outpatientDO.getGeneralDoctorName());
        }
        waitingRoom.setPatientId(outpatientDO.getPatient());
        waitingRoom.setPatientName(outpatientDO.getPatientName());
        waitingRoom.setReservationTime(outpatientDO.getRegisterDate());
        waitingRoom.setVisitStatus(0);
        waitingRoom.setReservationType(1);
        //设置复诊类型
        waitingRoom.setReservationType(StringUtils.isNotBlank(outpatientDO.getOutpatientType())?Integer.parseInt(outpatientDO.getOutpatientType()):1);
        waitingRoom.setSort(0);
        waitingRoom.setConsultType(Integer.parseInt(outpatientDO.getType()));
        if(StringUtils.isNotBlank(outpatientDO.getDoctor())){
@ -2753,4 +2769,83 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
    
        return waitVideoCount;
    }
    /**
     * 保存在线排班
     * @param onlineWorkJson
     * @return
     * @throws Exception
     */
    public Envelop saveDoctorOnlineWork(String onlineWorkJson)throws Exception{
        WlyyDoctorOnlineTimeDO timeDO = objectMapper.readValue(onlineWorkJson,WlyyDoctorOnlineTimeDO.class);
        List<WlyyDoctorOnlineTimeDO> list = wlyyDoctorOnlineTimeDao.findWorkExistList(timeDO.getDoctor(),timeDO.getStartTime(),timeDO.getEndTime());
        if(list!=null&&list.size()>0){
            return Envelop.getError("排班已存在",-1);
        }
        timeDO.setCreateTime(new Date());
        return Envelop.getSuccess("保存成功");
    }
    /**
     * 删除在线排班
     * @param id
     * @return
     * @throws Exception
     */
    public Envelop delDoctorOnlineWork(String id)throws Exception{
        wlyyDoctorOnlineTimeDao.delete(id);
        return Envelop.getSuccess("删除成功");
    }
    /**
     * 查询医生在线排班
     * @param doctor
     * @param startDate
     * @param endDate
     * @return
     */
    public List<WlyyDoctorOnlineTimeDO> findDoctorOnlineWorkList(String doctor,String startDate,String endDate){
        return wlyyDoctorOnlineTimeDao.findWorkList(doctor,DateUtil.stringToDate(startDate+" 00:00:00","yyyy-MM-dd HH:mm:ss"),DateUtil.stringToDate(endDate+" 23:59:59","yyyy-MM-dd HH:mm:ss"));
    }
    /**
     * 发起图文和视频复诊
     * @param outpatientJson
     * @return
     * @throws Exception
     */
    public WlyyOutpatientDO cooperativeOutpatient(String outpatientJson,String registerJson)throws Exception{
        //1.保存就诊实体
        WlyyOutpatientDO outpatientDO = objectMapper.readValue(outpatientJson,WlyyOutpatientDO.class);
        BasePatientDO patientDO = basePatientDao.findById(outpatientDO.getPatient());
        outpatientDO.setMjz("mz");
        outpatientDO.setStatus("0");
        outpatientDO.setCreateTime(new Date());
        outpatientDO.setIdcard(patientDO.getIdcard());
        outpatientDO.setOutpatientType("2");
        outpatientDO.setCreateTime(new Date());
        WlyyOutpatientDO outpatient = outpatientDao.save(outpatientDO);
        WlyyPatientRegisterTimeDO registerTimeDO = null;
        try {
            //如果是视频预约咨询
            if(StringUtils.isNotBlank(registerJson)){
                registerTimeDO = objectMapper.readValue(registerJson,WlyyPatientRegisterTimeDO.class);
                registerTimeDO.setOutpatientId(outpatient.getId());
                registerTimeDO.setCreateTime(new Date());
                patientRegisterTimeDao.save(registerTimeDO);
            }
        }catch (Exception e){
            throw new RuntimeException("号源已经被预约,请选择其他号源");
        }
        //3.创建候诊室
        createRoom(outpatient);
        return outpatient;
    }
}

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

@ -348,6 +348,8 @@ public class EntranceService {
    public List<WlyyPrescriptionVO>  BS16017(String REGISTER_SN,String realOrder,String PAT_NO,String ADM_NO,boolean demoFlag) throws Exception {
        String fid=BS16017;
        String resp = "";
        logger.info("BS16017: REGISTER_SN:"+REGISTER_SN+" realOrder"+realOrder+" PAT_NO:"+PAT_NO+" ADM_NO:"+ADM_NO);
        if (demoFlag) {
            resp = getJosnFileResullt(fid);
        } else {
@ -373,6 +375,8 @@ public class EntranceService {
            //查询信息结束
            sbs.append("<startNum>1</startNum></MsgInfo></ESBEntry>");
            resp = MqSdkUtil.putReqAndGetRespByQueryStr(sbs.toString(), fid);
            logger.info("resp "+resp);
            resp = MqSdkUtil.xml2jsonArrayRootRow(resp);
        }
        return convertWlyyPrescriptionVOInBodyRow(resp);

+ 88 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/doctor/WlyyDoctorOnlineTimeDO.java

@ -0,0 +1,88 @@
package com.yihu.jw.entity.hospital.doctor;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by Trick on 2019/7/31.
 */
@Entity
@Table(name = "wlyy_doctor_online_time")
public class WlyyDoctorOnlineTimeDO extends UuidIdentityEntity {
    private String doctor;//医生ID',
    private String doctorName;//医生姓名',
    private Date startTime;//开始时间',
    private Date endTime;//结束时间',
    private String type;//1 上午,2.中午,3.下午,4.晚上',
    private String date;//日期',
    private String remark;//备注',
    private Date createTime;//创建时间',
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    public Date getStartTime() {
        return startTime;
    }
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    public Date getEndTime() {
        return endTime;
    }
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
}

+ 20 - 34
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -200,7 +200,26 @@ public class BaseHospitalRequestMapping {
        /**
         * 获取居民基础信息
         */
        public static final String findPatientInfo ="/findPatientInfo";
        public static final String findPatientInfo = "/findPatientInfo";
        /**
         * 保存医生在线排班
         */
        public static final String saveDoctorOnlineWork = "/saveDoctorOnlineWork";
        /**
         * 删除医生在线排班
         */
        public static final String delDoctorOnlineWork = "/delDoctorOnlineWork";
        /**
         *查询医生在线排班列表
         */
        public static final String findDoctorOnlineWorkList = "/findDoctorOnlineWorkList";
        /**
         * 发起协同门诊
         */
        public static final String cooperativeOutpatient = "/cooperativeOutpatient";
        //=================end=======================================
@ -226,44 +245,11 @@ public class BaseHospitalRequestMapping {
         */
        public static final String checkPrescription = "/checkPrescription";
        /**
         * 获取医生及号员信息
         */
        public static final String findDoctorList = "/findDoctorList";
        /**
         * 进入候诊室
         */
        public static final String enterWaitingRoom = "/enterWaitingRoom";
        /**
         * 进入诊疗室
         */
        public static final String enterConsultingRoom = "/enterConsultingRoom";
        /**
         * 居民取消续方
         */
        public static final String cancelPrescription ="/cancelPrescription";
        /**
         * 支付续方
         */
        public static final String payOrder = "/payOrder";
        /**
         * 转物流
         */
        public static final String switchExpress ="/switchExpress";
        /**
         * 评价医生
         */
        public static final String evaluateDoctor = "/evaluateDoctor";
        //确认收货
        public static final String confirmReceipt ="/confirmReceipt";
        //医生下诊断
        public static final String diagnose ="/diagnose";
    }

+ 4 - 0
gateway/ag-basic/pom.xml

@ -57,6 +57,10 @@
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.retry</groupId>
            <artifactId>spring-retry</artifactId>
        </dependency>
        <!--<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>

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

@ -492,6 +492,41 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
        return success(prescriptionService.findPatientInfo(patient));
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.saveDoctorOnlineWork)
    @ApiOperation(value = "保存在线排班", notes = "保存在线排班")
    public Envelop saveDoctorOnlineWork(@ApiParam(name = "onlineWorkJson", value = "保存在线排班json")
                                        @RequestParam(value = "onlineWorkJson", required = true)String onlineWorkJson)throws Exception {
        return prescriptionService.saveDoctorOnlineWork(onlineWorkJson);
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.delDoctorOnlineWork)
    @ApiOperation(value = "删除在线排班", notes = "删除在线排班")
    public Envelop delDoctorOnlineWork(@ApiParam(name = "id", value = "保存在线排班ID")
                                       @RequestParam(value = "id", required = true)String id)throws Exception {
        return prescriptionService.delDoctorOnlineWork(id);
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.findDoctorOnlineWorkList)
    @ApiOperation(value = "查询医生在线排班", notes = "查询医生在线排班")
    public ListEnvelop findDoctorOnlineWorkList(@ApiParam(name = "doctor", value = "医生code")
                                                @RequestParam(value = "doctor", required = true)String doctor,
                                                @ApiParam(name = "startDate", value = "开始时间,YYYY-MM-dd")
                                                @RequestParam(value = "startDate", required = true)String startDate,
                                                @ApiParam(name = "endDate", value = "结束时间,YYYY-MM-dd")
                                                @RequestParam(value = "endDate", required = true)String endDate)throws Exception {
        return success(prescriptionService.findDoctorOnlineWorkList(doctor,startDate,endDate));
    }
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.cooperativeOutpatient)
    @ApiOperation(value = "发起图文和视频复诊", notes = "发起图文和视频复诊")
    public ObjEnvelop cooperativeOutpatient(@ApiParam(name = "outpatientJson", value = "复诊实体json")
                                            @RequestParam(value = "outpatientJson", required = true)String outpatientJson,
                                            @ApiParam(name = "registerJson", value = "预约实体json")
                                            @RequestParam(value = "registerJson", required = false)String registerJson)throws Exception {
        return success(prescriptionService.cooperativeOutpatient(outpatientJson,registerJson));
    }
    //===========