Ver código fonte

代码修改

huangwenjie 7 anos atrás
pai
commit
961db9fede

+ 74 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/followup/FollowupMapping.java

@ -0,0 +1,74 @@
package com.yihu.wlyy.entity.followup;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.sql.Timestamp;
/**
 * 随访记录映射表
 * @author huangwenjie
 * @date 2017/10/23 14:02
 */
@Entity
@Table(name = "wlyy_followup_mapping")
public class FollowupMapping extends IdEntity {
	private String code;
	private Integer followupId;
	private Integer needUpload;
	private Timestamp createTime;
	private Timestamp updateTime;
	
	@Basic
	@Column(name = "code")
	public String getCode() {
		return code;
	}
	
	public void setCode(String code) {
		this.code = code;
	}
	
	@Basic
	@Column(name = "followup_id")
	public Integer getFollowupId() {
		return followupId;
	}
	
	public void setFollowupId(Integer followupId) {
		this.followupId = followupId;
	}
	
	@Basic
	@Column(name = "need_upload")
	public Integer getNeedUpload() {
		return needUpload;
	}
	
	public void setNeedUpload(Integer needUpload) {
		this.needUpload = needUpload;
	}
	
	@Basic
	@Column(name = "create_time")
	public Timestamp getCreateTime() {
		return createTime;
	}
	
	public void setCreateTime(Timestamp createTime) {
		this.createTime = createTime;
	}
	
	@Basic
	@Column(name = "update_time")
	public Timestamp getUpdateTime() {
		return updateTime;
	}
	
	public void setUpdateTime(Timestamp updateTime) {
		this.updateTime = updateTime;
	}
}

+ 23 - 0
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/controller/SignController.java

@ -154,6 +154,29 @@ public class SignController {
            }
        }
    }
    
    @RequestMapping(value = "uploadEhrSickChroDaysFollowUpRecord",method = RequestMethod.POST)
    @ApiOperation("查询家庭医生服务日常随访信息接口")
    public Result uploadEhrSickChroDaysFollowUpRecord(
            @ApiParam(name="OPERATOR",value="操作员代码",defaultValue = "")
            @RequestParam(value="OPERATOR",required = true) String OPERATOR,
            @ApiParam(name="data",value="Json格式字符串",defaultValue = "")
            @RequestParam(value="data",required = true) String data){
        try {
            String response = signZYService.uploadEhrSickChroDaysFollowUpRecord(OPERATOR,data);
            return Result.success("上传成功!",response);
        } catch (Exception ex) {
            ex.printStackTrace();
            if(ex instanceof ApiException)
            {
                ApiException apiEx = (ApiException) ex;
                return Result.error(apiEx.errorCode(),ex.getMessage());
            }
            else{
                return Result.error(ex.getMessage());
            }
        }
    }

+ 12 - 0
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/SignZYService.java

@ -161,4 +161,16 @@ public class SignZYService {
        String response = zysoftService.getEhrChroDaysFollowUpInfoRecordByIdcard(identity_card_no,hospitalMapping[0],hospitalMapping[1]);
        return response;
    }
    
    /**
     * 上传家庭医生服务日常随访信息
     * @param operator
     * @param data
     * @return
     */
	public String uploadEhrSickChroDaysFollowUpRecord(String operator, String data) throws Exception{
        String[] hospitalMapping = getHospitalMapping(null); //获取机构映射
        String response = zysoftService.uploadEhrSickChroDaysFollowUpRecord(operator,data,hospitalMapping[0],hospitalMapping[1]);
        return response;
	}
}

+ 18 - 0
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/ZysoftService.java

@ -854,4 +854,22 @@ public class ZysoftService {
    
        return response;
    }
    /**
     * 上传家庭医生服务日常随访信息
     * @param operator
     * @param data
     * @return
     */
	public String uploadEhrSickChroDaysFollowUpRecord(String operator, String data, String hospital,String licence) throws Exception{
        Map<String,String> header = new HashMap<>();
        header.put("ORGCODE",hospital);
        header.put("LICENCE",licence);
        header.put("OPERATOR",operator);
        
        com.alibaba.fastjson.JSONObject json = JSON.parseObject(data);
        
        String response = postSecond("getEhrChroDaysFollowUpInfoRecord","查询家庭医生服务日常随访信息接口",json,header);
        
        return response;
	}
}

+ 0 - 1
patient-co-service/wlyy_sign/src/main/java/com/yihu/wlyy/sign/common/thread/UploadRenewThread.java

@ -1,7 +1,6 @@
package com.yihu.wlyy.sign.common.thread;
import com.yihu.wlyy.sign.common.util.DateUtil;
import com.yihu.wlyy.sign.common.util.SpringContextHolder;
import com.yihu.wlyy.sign.service.SignRenewZYService;
import com.yihu.wlyy.sign.service.SystemDictService;

+ 3 - 3
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/FollowUpSynJob.java

@ -10,12 +10,12 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
/**
 * 居民随访记录
 * 居民随访记录同步JOB
 * @author huangwenjie
 * @date 2017/10/19 15:02
 */
public class FollowUpSynJob implements Job {
	private static final Logger logger = LoggerFactory.getLogger(OldPeoplePhysicalExaminationSynJob.class);
	private static final Logger logger = LoggerFactory.getLogger(FollowUpSynJob.class);
	
	@Autowired
	private JwPrescriptionService jwPrescriptionService;
@ -29,7 +29,7 @@ public class FollowUpSynJob implements Job {
			String startdate = DateUtil.getNextDay(DateUtil.getStringDateShort(),-1) + " 00:00:00";
			String enddate = DateUtil.getNextDay(DateUtil.getStringDateShort(),-1) + " 23:59:59";
			
			//根据起止时间查询家签慢病患者定标情况,并同步到本地数据库
			//根据起止时间查询家签居民随访记录,并同步到本地数据库
			jwPrescriptionService.getFollowUpByTime(startdate,enddate);
			
			logger.info("END========居民随访记录同步JOB");

+ 32 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/job/FollowUpUploadJob.java

@ -0,0 +1,32 @@
package com.yihu.wlyy.job;
import com.yihu.wlyy.service.third.jw.JwPrescriptionService;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
/**
 * 居民随访记录上传(上传到基卫)JOB
 * @author huangwenjie
 * @date 2017/10/23 11:20
 */
public class FollowUpUploadJob implements Job {
	private static final Logger logger = LoggerFactory.getLogger(FollowUpUploadJob.class);
	@Autowired
	private JwPrescriptionService jwPrescriptionService;
	@Override
	public void execute(JobExecutionContext context) throws JobExecutionException {
		logger.info("START=====上传居民随访记录JOB");
		try {
			//上传居民随访记录到基卫
			jwPrescriptionService.uploadFollowUpRecordToJW();
			logger.info("END========上传居民随访记录JOB");
		}catch (Exception e){
			e.printStackTrace();
			logger.info("END===ERROE===上传居民随访记录JOB,message:"+e.getMessage());
		}
	}
}

+ 17 - 0
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/repository/followup/FollowUpMappingDao.java

@ -0,0 +1,17 @@
package com.yihu.wlyy.repository.followup;
import com.yihu.wlyy.entity.followup.FollowupMapping;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * 随访记录映射表
 * @author huangwenjie
 * @date 2017/10/23 14:05
 */
public interface FollowUpMappingDao extends PagingAndSortingRepository<FollowupMapping, Long>, JpaSpecificationExecutor<FollowupMapping> {
	
	List<FollowupMapping> findByNeedUpload(Integer needupload);
}

+ 6 - 12
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/third/jw/JwPrescriptionService.java

@ -411,7 +411,6 @@ public class JwPrescriptionService {
    
        logger.info("查询居民随访记录,开始时间"+startdate+",结束时间:"+enddate);
    
    
        String url = jwUrl + "/third/sign/getEhrChroDaysFollowUpInfoRecord";
        List<NameValuePair> params = new ArrayList<>();
        params.add(new BasicNameValuePair("TIME_START", startdate));//开始时间
@ -431,7 +430,6 @@ public class JwPrescriptionService {
                if(1 == jwCode){
                    JSONArray dataArray = jwData.getJSONArray("DATA");
                    for (int i = 0; i < dataArray.size(); i++) {
    
                        Followup followup = new Followup();
                    
                        JSONObject json = dataArray.getJSONObject(i);
@ -457,7 +455,6 @@ public class JwPrescriptionService {
                        }
                        followup.setDataFrom(dataFrom);
                        
                        
                        String followupDate = json.getString("THIS_FOLLOWUP_VISIT_DATE");//随访时间:此次随访时间
                        followup.setFollowupDate(DateUtil.strToDate(followupDate));
                        String followupPlanDate = "";//随访计划时间
@ -473,17 +470,14 @@ public class JwPrescriptionService {
                        //医院映射
                        HospitalMapping hm = hospitalMappingDao.getCodeByMapping(orgCode, "1");
                        if (hm == null) {
    
                            logger.info("no mapping hospital:" + orgCode);
                            continue;
//                            throw new Exception("no mapping hospital:" + orgCode);
                        }
                        //医生映射
                        Doctor doctor = doctorDao.findMappingDoctor(jwdoctorCode, orgCode);
                        if (doctor == null) {
                            logger.info("no mapping hospital:" + orgCode + ",familyDoctor:" + jwdoctorCode);
                            continue;
//                            throw new Exception("no mapping hospital:" + orgCode + ",familyDoctor:" + jwdoctorCode);
                        }
                        
                        String doctorCode = doctor.getCode();//医生CODE
@ -627,7 +621,6 @@ public class JwPrescriptionService {
                        followupContent8.put("HEALTH_EDUCATE",json.getString("HEALTH_EDUCATE"));//健康教育【CHRO_HEALTH_EDUCATE_DICT】 V19
                        followupContent8.put("EDUCATE_CONTENT",json.getString("EDUCATE_CONTENT"));//健康教育内容 V20
    
    
                        //转诊
                        followupContent9.put("DRUG_ADVERSE_MARK",json.getString("DRUG_ADVERSE_MARK"));//药物不良反应【0.无;1.有;】
                        followupContent9.put("ADR_REMARK",json.getString("ADR_REMARK"));//药物不良反应【内容】
@ -636,22 +629,17 @@ public class JwPrescriptionService {
                        followupContent9.put("REFUSE_REFERRAL",json.getString("REFUSE_REFERRAL"));//患者拒绝转诊【0 否 1 是】
                        followupContent9.put("REFUSE_REFERRAL_WHY",json.getString("REFUSE_REFERRAL_WHY"));//患者拒绝转诊内容
    
    
                        //多余字段
                        followupContent10.put("ARCHIVE_ID",json.getString("ARCHIVE_ID"));//档案ID
                        followupContent10.put("CHECK_FEE_TYPE",json.getString("CHECK_FEE_TYPE"));//检测费用类型
                        followupContent10.put("FAMILY_FOLLOWUP_ID",json.getString("FAMILY_FOLLOWUP_ID"));//随访细表外键随访ID
                        
    
                        DefaultTransactionDefinition def = new DefaultTransactionDefinition();
                        def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); // 事物隔离级别,开启新事务
                        TransactionStatus transactionStatus = transactionManager.getTransaction(def); // 获得事务状态
                        try {
    
                            followup = followUpDao.save(followup);
                            
                            Long followupId = followup.getId();
                            
                            //删除原有记录
                            followupContentDao.deleteByFollowupId(followup.getId());
                            //组装数据
@ -813,4 +801,10 @@ public class JwPrescriptionService {
            throw new Exception("同步随访信息报错请求失败,无数据返回!");
        }
    }
    
    /**
     *上传居民随访记录到基卫
     */
    public void uploadFollowUpRecordToJW() {
    }
}

+ 12 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/jw/ZyDictService.java

@ -193,7 +193,7 @@ public class ZyDictService {
     * @param name
     * @return
     */
    public List<Map<String, Object>> findDictByDoctorAndName(String doctor,String name){
    public List<Map<String, Object>> findDictByDoctorAndName(String doctor,String name,String isinsulin){
        String sql = "SELECT  yp.physic_code drugCode, " +
                " yp.physic_name drugName, " +
                " yp.physic_spec drugFormat, " +
@ -255,6 +255,17 @@ public class ZyDictService {
                " AND com2.`code` = yp.quantity_unit " +
                " AND com3.`code` = yp.pack_unit " +
                " AND class.class_code = yp.subject_class";
        if(StringUtils.isNoneBlank(isinsulin)){
            
            String insulin = "胰岛素";
            
            if("1".equals(isinsulin)){
                sql+= " AND yp.physic_name not like '%"+insulin+"%' and yp.subject_class no like '%010%'";
            }
            if("2".equals(isinsulin)){
                sql+= " AND yp.physic_name like '%"+insulin+"%' and yp.subject_class like '%010%'";
            }
        }
//        subjectClass
//        drugNumUnit":"224","drugNumUnitName":"支",
//        physicDoseUnit":"224","physicDoseUnitName":"支",

+ 29 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/prescription/PrescriptionInfoController.java

@ -67,6 +67,31 @@ public class PrescriptionInfoController extends BaseController {
            return error(-1, "查询失败!");
        }
    }
    
    /**
     * 获取长处方信息列表
     * @param type
     * @return
     */
    @RequestMapping(value = "/getPrescriptionInfos" , method = RequestMethod.GET)
    @ResponseBody
    @ApiOperation(value = "获取长处方信息列表")
    public String getPrescriptionInfos(@RequestParam(required = true)@ApiParam(name="type",value="1:查询处方;2我的续方;3:续方记录")String type,
                                       @RequestParam(required = false)@ApiParam(name="isRenewal",value="处方是否可续方:1.是;2.无过滤")String isRenewal,
                                       @RequestParam(required = false)@ApiParam(name="recipeNo",value="医嘱号,第一次获取上一方时传入0,第二次获取上一方时传入第一次返回的医嘱号,以此类推")String recipeNo,
                                       @RequestParam(required = false)@ApiParam(name="startDate",value="开始时间")String startDate,
                                       @RequestParam(required = false)@ApiParam(name="endDate",value="结束时间")String endDate,
                                       @RequestParam(required = false,defaultValue = "0")@ApiParam(name="diagnosisCode",value="所有诊断(0 全部 1高血压 2糖尿病)")String diagnosisCode,
                                       @RequestParam(required = false)@ApiParam(name="page",value="起始页")Integer page,
                                       @RequestParam(required = false)@ApiParam(name="size",value="每页记录数")Integer size,
                                       @RequestParam(required = true)@ApiParam(name="patientCode",value="居民CODE")String patientCode){
        try {
            return write(200, "查询成功!", "data", prescriptionInfoService.getPrescriptionInfos(type,recipeNo,diagnosisCode,startDate,endDate,patientCode,isRenewal,page,size));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败!");
        }
    }
    @RequestMapping(value = "/getPrescriptionFilter", method = RequestMethod.GET)
    @ApiOperation(value = "获取过滤规则信息列表")
@ -170,10 +195,12 @@ public class PrescriptionInfoController extends BaseController {
    @RequestMapping(value = "/findDictByName", method = RequestMethod.GET)
    @ApiOperation(value = "药品列表")
    public String findDictByName(@ApiParam(name = "name", value = "药品名称(中文或拼音首字母查询)", defaultValue = "胰岛素")
                                 @RequestParam(value = "name", required = false) String name) {
                                 @RequestParam(value = "name", required = false) String name,
                                 @ApiParam(name = "isinsulin", value = "是否过滤胰岛素:1非胰岛素,2胰岛素", defaultValue = "")
                                 @RequestParam(value = "isinsulin", required = false) String isinsulin) {
        try {
//            return write(200, "操作成功!", "data",zyDictService.findDictByDoctorAndName("e3b3bfb3644011e69616fa163e424525",name));
            return write(200, "操作成功!", "data", zyDictService.findDictByDoctorAndName(getUID(), name));
            return write(200, "操作成功!", "data", zyDictService.findDictByDoctorAndName(getUID(), name,isinsulin));
        } catch (Exception e) {
            error(e);
            return error(-1, "查询失败!");