Browse Source

区域互联网医院

Trick 5 years ago
parent
commit
aabcdb4337

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

@ -50,6 +50,7 @@ import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.StringUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.jw.wlyy.wlyyhttp.WlyyHttpService;
import com.yihu.mysql.query.BaseJpaService;
@ -80,7 +81,7 @@ import java.lang.Boolean;
import java.util.*;
/**
 * Created by Trick on 2019/5/17
 * Created by Trick on 2019/5/17.
 */
@Service
@Transactional
@ -4332,14 +4333,27 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
       return entranceService.BS10008(idcard,patientId,admitNum,ybcard,demoFlag);
    }
    public List<Map<String,Object>> findDoctorByName(String name){
    /**
     * 获取医生信息
     * @param hospital
     * @param name
     * @return
     */
    public List<Map<String,Object>> findDoctorByName(String hospital, String name){
        String sql ="SELECT " +
                " d.id AS \"id\", " +
                " d.`name` AS \"name\"" +
                " FROM " +
                " base_doctor d " +
                " WHERE " +
                " base_doctor d ";
        if(StringUtils.isNotBlank(hospital)){
            sql +=" JOIN base_doctor_hospital h ON h.doctor_code = d.id";
        }
            sql +=" WHERE " +
                " d. NAME LIKE '%"+name+"%'";
        if(StringUtils.isNotBlank(hospital)){
            sql +=" AND h.org_code ='"+hospital+"'";
        }
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql);
        if(list!=null&&list.size()>0){
            for(int i=0;i<list.size();i++){

+ 71 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/entrance/YkyyEntranceService.java

@ -1,24 +1,94 @@
package com.yihu.jw.hospital.prescription.service.entrance;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.dict.dao.DictHospitalDeptDao;
import com.yihu.jw.entity.base.dict.DictHospitalDeptDO;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.utils.network.HttpResponse;
import com.yihu.utils.network.HttpUtils;
import javafx.scene.DepthTest;
import org.apache.commons.collections.map.HashedMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * 眼科医院专用service
 * Created by Trick on 2020/1/19.
 */
@Service
@Transactional
public class YkyyEntranceService {
    private static Logger logger = LoggerFactory.getLogger(YkyyEntranceService.class);
    private final static String url="http://192.168.20.55:10023/ykyy/createSQLQuery";
    private final static String orgCode ="350211A5004";
    @Autowired
    private DictHospitalDeptDao hospitalDeptDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    public List<Map<String, Object>> createSQLQuery(String sql, Map<String, Object> params, Integer page, Integer size){
        return hibenateUtils.createSQLQuery( sql,  params,  page,  size);
        return hibenateUtils.createSQLQuery(sql,params,page,size);
    }
    /**
     * 同步科室信息
     * @return
     * @throws Exception
     */
    public String updateYkyyDept()throws Exception{
        String sql ="select code AS \"code\",name as \"name\",consultdeptflag as \"consultDeptFlag\" from V_HLW_KSXX";
        Map<String,Object> params = new HashedMap();
        params.put("sql",sql);
        HttpResponse response = HttpUtils.doGet(url,params);
        String content = response.getContent();
        logger.info(content);
        JSONObject rs = JSON.parseObject(content);
        Integer status = rs.getInteger("status");
        if(status!=null&&status == 200){
            JSONArray array = rs.getJSONArray("detailModelList");
            logger.info("dept size:"+array.size());
            if(array!=null&&array.size()>0){
                for(int i=0;i<array.size();i++){
                    JSONObject deptjson = array.getJSONObject(i);
                    String code = deptjson.getString("code");
                    List<DictHospitalDeptDO> list = hospitalDeptDao.findByOrgCodeAndCode(orgCode,code);
                    if(list!=null&&list.size()>0){
                        DictHospitalDeptDO deptDO = list.get(0);
                        deptDO.setName(deptjson.getString("name"));
                        deptDO.setConsultDeptFlag(deptjson.getString("consultdeptflag"));
                        hospitalDeptDao.save(deptDO);
                    }else {
                        //新增
                        DictHospitalDeptDO deptDO = new DictHospitalDeptDO();
                        deptDO.setOrgCode(orgCode);
                        deptDO.setCode(code);
                        deptDO.setName(deptjson.getString("name"));
                        deptDO.setConsultDeptFlag(deptjson.getString("consultdeptflag"));
                        deptDO.setCreateTime(new Date());
                        hospitalDeptDao.save(deptDO);
                    }
                }
            }
        }
        return "success";
    }
}

File diff suppressed because it is too large
+ 1828 - 0
business/base-service/src/main/java/com/yihu/jw/internet/service/ykyy/YkyyInternetService.java


+ 22 - 4
business/base-service/src/main/java/com/yihu/jw/utils/ImgUtils.java

@ -2,10 +2,7 @@ package com.yihu.jw.utils;
import sun.misc.BASE64Encoder;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.*;
import java.net.URL;
/**
@ -62,4 +59,25 @@ public class ImgUtils {
        //转化方法2
//        return new String(Base64.encodeBase64(data));
    }
    public static String getImageStr(String imgFile) {
        //将图片文件转化为字节数组字符串,并对其进行Base64编码处理
        InputStream in = null;
        byte[] data = null;
        //读取图片字节数组
        try
        {
            in = new FileInputStream(imgFile);
            data = new byte[in.available()];
            in.read(data);
            in.close();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        //对字节数组Base64编码
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);//返回Base64编码过的字节数组字符串
    }
}

+ 7 - 0
gateway/ag-basic/src/main/resources/bootstrap.yml

@ -75,4 +75,11 @@ spring:
  cloud:
    config:
      uri: ${wlyy.pring.config.uri:http://192.168.120.210:1221}
      label: ${wlyy.spring.config.label:master}
---
spring:
  profiles: xmjwlocal
  cloud:
    config:
      uri: ${wlyy.pring.config.uri:http://10.95.22.193:1221}
      label: ${wlyy.spring.config.label:master}

+ 7 - 0
server/svr-authentication/src/main/resources/bootstrap.yml

@ -69,4 +69,11 @@ spring:
  cloud:
    config:
      uri: ${wlyy.pring.config.uri:http://192.168.120.210:1221}
      label: ${wlyy.spring.config.label:master}
---
spring:
  profiles: xmjwlocal
  cloud:
    config:
      uri: ${wlyy.pring.config.uri:http://10.95.22.193:1221}
      label: ${wlyy.spring.config.label:master}

+ 7 - 0
svr/svr-internet-hospital-job/pom.xml

@ -146,6 +146,13 @@
            <version>2.4.4</version>
        </dependency>
        <!--oracle驱动-->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3</version>
        </dependency>
    </dependencies>
    <build>

+ 22 - 82
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/event/ApplicationEvent.java

@ -28,97 +28,37 @@ public class ApplicationEvent implements ApplicationListener<ContextRefreshedEve
    public void onApplicationEvent(ContextRefreshedEvent ContextRefreshedEvent) {
        try {
            //互联网医院处方状态更新job
            if (!quartzHelper.isExistJob("prescriptionStatus_update_job")) {
                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("prescriptionStatus_update_job");
                quartzHelper.addJob(PrescriptionStatusUpdateJob.class, trigger, "prescriptionStatus_update_job", new HashMap<String, Object>());
                logger.info("prescriptionStatus_update_job  job success");
            } else {
                logger.info("prescriptionStatus_update_job  job exist");
            }
            //门诊过期
            if (!quartzHelper.isExistJob("prescription_overdue_job")) {
                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("prescription_overdue_job");
                quartzHelper.addJob(PrescriptionOverdueJob.class, trigger, "prescription_overdue_job", new HashMap<String, Object>());
                logger.info("prescription_overdue_job  job success");
            } else {
                logger.info("prescription_overdue_job  job exist");
            }
            //互联网医院 监管平台上报
            if (!quartzHelper.isExistJob("data_upload_job")) {
                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("data_upload_job");
                quartzHelper.addJob(DataUploadJob.class, trigger, "data_upload_job", new HashMap<String, Object>());
                logger.info("data_upload_job  job success");
            } else {
                logger.info("data_upload_job  job exist");
            }
            //2.5 网上预约挂号上传
//            if (!quartzHelper.isExistJob("data_upload_25_job")) {
//                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("data_upload_25_job");
//                quartzHelper.addJob(DataUpload25Job.class, trigger, "data_upload_25_job", new HashMap<String, Object>());
//                logger.info("data_upload_25_job  job success");
//            } else {
//                logger.info("data_upload_25_job  job exist");
//            }
//
//            //2.6 网上医技预约上传开始
//            if (!quartzHelper.isExistJob("data_upload_26_job")) {
//                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("data_upload_26_job");
//                quartzHelper.addJob(DataUpload26Job.class, trigger, "data_upload_26_job", new HashMap<String, Object>());
//                logger.info("data_upload_26_job  job success");
//            } else {
//                logger.info("data_upload_26_job  job exist");
//            }
//
//            //2.7 医生评价信息开始
//            if (!quartzHelper.isExistJob("data_upload_27_job")) {
//                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("data_upload_27_job");
//                quartzHelper.addJob(DataUpload27Job.class, trigger, "data_upload_27_job", new HashMap<String, Object>());
//                logger.info("data_upload_27_job  job success");
//=================中山医院发布启动======================================================
//            //互联网医院处方状态更新job
//            if (!quartzHelper.isExistJob("prescriptionStatus_update_job")) {
//                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("prescriptionStatus_update_job");
//                quartzHelper.addJob(PrescriptionStatusUpdateJob.class, trigger, "prescriptionStatus_update_job", new HashMap<String, Object>());
//                logger.info("prescriptionStatus_update_job  job success");
//            } else {
//                logger.info("data_upload_27_job  job exist");
//                logger.info("prescriptionStatus_update_job  job exist");
//            }
//
//            //2.8 网络咨询服务信息开始
//            if (!quartzHelper.isExistJob("data_upload_28_job")) {
//                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("data_upload_28_job");
//                quartzHelper.addJob(DataUpload28Job.class, trigger, "data_upload_28_job", new HashMap<String, Object>());
//                logger.info("data_upload_28_job  job success");
//            //门诊过期
//            if (!quartzHelper.isExistJob("prescription_overdue_job")) {
//                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("prescription_overdue_job");
//                quartzHelper.addJob(PrescriptionOverdueJob.class, trigger, "prescription_overdue_job", new HashMap<String, Object>());
//                logger.info("prescription_overdue_job  job success");
//            } else {
//                logger.info("data_upload_28_job  job exist");
//                logger.info("prescription_overdue_job  job exist");
//            }
//
//            //2.9 网络诊疗服务信息
//            if (!quartzHelper.isExistJob("data_upload_29_job")) {
//                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("data_upload_29_job");
//                quartzHelper.addJob(DataUpload29Job.class, trigger, "data_upload_29_job", new HashMap<String, Object>());
//                logger.info("data_upload_29_job  job success");
//            } else {
//                logger.info("data_upload_29_job  job exist");
//            }
//
//            //2.10 电子处方表
//            if (!quartzHelper.isExistJob("data_upload_210_job")) {
//                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("data_upload_210_job");
//                quartzHelper.addJob(DataUpload210Job.class, trigger, "data_upload_210_job", new HashMap<String, Object>());
//                logger.info("data_upload_210_job  job success");
//            //互联网医院 监管平台上报
//            if (!quartzHelper.isExistJob("data_upload_job")) {
//                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("data_upload_job");
//                quartzHelper.addJob(DataUploadJob.class, trigger, "data_upload_job", new HashMap<String, Object>());
//                logger.info("data_upload_job  job success");
//            } else {
//                logger.info("data_upload_210_job  job exist");
//            }
//
//            //2.11 电子处方_药品明细表
//            if (!quartzHelper.isExistJob("data_upload_211_job")) {
//                String trigger = SystemConf.getInstance().getSystemProperties().getProperty("data_upload_211_job");
//                quartzHelper.addJob(DataUpload211Job.class, trigger, "data_upload_211_job", new HashMap<String, Object>());
//                logger.info("data_upload_211_job  job success");
//            } else {
//                logger.info("data_upload_211_job  job exist");
//                logger.info("data_upload_job  job exist");
//            }
//=================中山医院发布启动======================================================
        } catch (Exception e) {
            logger.info("followup_plan_remind job start failed");

+ 26 - 0
svr/svr-internet-hospital-job/src/main/java/com/yihu/jw/web/quota/JobController.java

@ -4,6 +4,7 @@ import com.yihu.jw.entity.hospital.prescription.WlyyOutpatientDO;
import com.yihu.jw.im.service.ImService;
import com.yihu.jw.internet.service.DataGeneratorService;
import com.yihu.jw.internet.service.InternetService;
import com.yihu.jw.internet.service.ykyy.YkyyInternetService;
import com.yihu.jw.job.DataUploadJob;
import com.yihu.jw.job.PrescriptionOverdueJob;
import com.yihu.jw.job.PrescriptionStatusUpdateJob;
@ -48,6 +49,9 @@ public class JobController extends BaseController {
    @Autowired
    private DataGeneratorService dataGeneratorService;
    @Autowired
    private YkyyInternetService ykyyInternetService;
    @Autowired
    public JobController(JobService jobService, QuartzHelper quartzHelper) {
        this.jobService = jobService;
@ -388,4 +392,26 @@ public class JobController extends BaseController {
            return error(-1, "数据已经删除");
        }
    }
    @RequestMapping(value = "/ykyyUpload", method = RequestMethod.GET)
    @ApiOperation("上传")
    public String ykyyUpload(String id) {
        try {
            switch(id){
                case "2.2" :
                    ykyyInternetService.upNsOrganBas();
                    break; //可选
                case "2.3" :
                    //语句
                    break; //可选
                default : //可选
                    //语句
            }
            return write(200, "数据已经删除");
        } catch (Exception e) {
            error(e);
            return error(-1, "数据已经删除");
        }
    }
}

+ 37 - 0
svr/svr-internet-hospital-job/src/main/resources/application.yml

@ -100,6 +100,41 @@ im:
  data_base_name: im_internet_hospital
fastDFS:
  fastdfs_file_url: http://172.26.0.110:8888/
wlyy:
  url: http://www.xmtyw.cn/wlyytest/
---
spring:
  profiles: jwOracleProd
  datasource:
    driver-class-name: oracle.jdbc.driver.OracleDriver
    url: jdbc:oracle:thin:@172.26.0.141:1521:helowin
    username: normal
    password: normal
  jpa:
    properties:
      hibernate:
        dialect: org.hibernate.dialect.Oracle10gDialect
        show_sql: true
    database: oracle
hlwyyEntrance:
  url: http://172.16.1.42:10023
# mq 是否获取his数据,flag代表获取演示数据,false代表获取his真实数据
demo:
  flag: false
hospital:
  url: https://wx.xmzsh.com
  mqUser: JKZL
  mqPwd: 123456
  SourceSysCode: S60
  TargetSysCode: S01
im:
  im_list_get: http://172.26.0.105:3000/
  data_base_name: im_internet_hospital
fastDFS:
  fastdfs_file_url: http://172.26.0.110:8888/
wlyy:
  url: http://www.xmtyw.cn/wlyytest/
---
spring:
  profiles: jwprod
@ -124,3 +159,5 @@ im:
  data_base_name: im
fastDFS:
  fastdfs_file_url: http://192.0.33.26:8888/
wlyy:
  url: http://www.xmtyw.cn/wlyytest/

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

@ -934,9 +934,11 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = BaseHospitalRequestMapping.Prescription.findDoctorByName)
    @ApiOperation(value = "获取医生信息")
    public ListEnvelop findDoctorByName(@ApiParam(name = "name", value = "医生名称")
    public ListEnvelop findDoctorByName(@ApiParam(name = "hospital", value = "医院code")
                                        @RequestParam(value = "hospital",required = false)String hospital,
                                        @ApiParam(name = "name", value = "医生名称")
                                        @RequestParam(value = "name",required = false)String name) {
        return success(prescriptionService.findDoctorByName(name));
        return success(prescriptionService.findDoctorByName(hospital,name));
    }