|
@ -251,6 +251,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 获取居民就诊记录接口
|
|
|
*
|
|
|
* @param patient
|
|
|
* @param startTime
|
|
|
* @param endTime
|
|
@ -258,35 +259,36 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public List<WlyyOutpatientVO> findOutpatientList(String patient, String startTime, String endTime, boolean demoFlag)throws Exception{
|
|
|
logger.info("findOutpatientList patient:"+patient);
|
|
|
String patNo =patientMappingService.findHisPatNoByPatient(patient);
|
|
|
if(StringUtils.isBlank(patNo)){
|
|
|
public List<WlyyOutpatientVO> findOutpatientList(String patient, String startTime, String endTime, boolean demoFlag) throws Exception {
|
|
|
logger.info("findOutpatientList patient:" + patient);
|
|
|
String patNo = patientMappingService.findHisPatNoByPatient(patient);
|
|
|
if (StringUtils.isBlank(patNo)) {
|
|
|
return null;
|
|
|
}
|
|
|
logger.info("findOutpatientList patNo "+patNo);
|
|
|
return entranceService.BS30025(patNo,null,startTime,endTime,demoFlag);
|
|
|
logger.info("findOutpatientList patNo " + patNo);
|
|
|
return entranceService.BS30025(patNo, null, startTime, endTime, demoFlag);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询单条门诊记录
|
|
|
*
|
|
|
* @param patient
|
|
|
* @param conNo
|
|
|
* @return
|
|
|
*/
|
|
|
public WlyyOutpatientVO findOutpatientInfo(String patient,String conNo)throws Exception{
|
|
|
logger.info("findOutpatientList patient:"+patient);
|
|
|
String patNo =patientMappingService.findHisPatNoByPatient(patient);
|
|
|
if(StringUtils.isBlank(patNo)){
|
|
|
public WlyyOutpatientVO findOutpatientInfo(String patient, String conNo) throws Exception {
|
|
|
logger.info("findOutpatientList patient:" + patient);
|
|
|
String patNo = patientMappingService.findHisPatNoByPatient(patient);
|
|
|
if (StringUtils.isBlank(patNo)) {
|
|
|
return null;
|
|
|
}
|
|
|
logger.info("findOutpatientList patNo:"+patNo);
|
|
|
List<WlyyOutpatientVO> list = entranceService.BS30025(patNo,conNo,null,null,demoFlag);
|
|
|
logger.info("findOutpatientList patNo:" + patNo);
|
|
|
List<WlyyOutpatientVO> list = entranceService.BS30025(patNo, conNo, null, null, demoFlag);
|
|
|
|
|
|
if(list!=null&&list.size()>0){
|
|
|
if (list != null && list.size() > 0) {
|
|
|
WlyyOutpatientVO outpatientVO = list.get(0);
|
|
|
BasePatientDO patientDO = basePatientDao.findById(patient);
|
|
|
outpatientVO.setSex(patientDO.getSex()+"");
|
|
|
outpatientVO.setSex(patientDO.getSex() + "");
|
|
|
outpatientVO.setBirthday(patientDO.getBirthday());
|
|
|
return outpatientVO;
|
|
|
}
|
|
@ -296,18 +298,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
/**
|
|
|
*
|
|
|
*/
|
|
|
public List<WlyyPrescriptionVO> findOriginPrescriptionList(String registerSn,String patient,String realOrder,String admNo,boolean demoFlag)throws Exception{
|
|
|
String patNo =patientMappingService.findHisPatNoByPatient(patient);
|
|
|
if(StringUtils.isBlank(patNo)){
|
|
|
public List<WlyyPrescriptionVO> findOriginPrescriptionList(String registerSn, String patient, String realOrder, String admNo, boolean demoFlag) throws Exception {
|
|
|
String patNo = patientMappingService.findHisPatNoByPatient(patient);
|
|
|
if (StringUtils.isBlank(patNo)) {
|
|
|
return null;
|
|
|
}
|
|
|
//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+" realOrder:"+realOrder+" admNo:"+admNo);
|
|
|
return entranceService.BS16017(registerSn,realOrder,patNo,admNo,demoFlag);
|
|
|
logger.info("findOriginPrescriptionList: registerSn:" + registerSn + " patient" + patient + " patNo:" + patNo + " realOrder:" + realOrder + " admNo:" + admNo);
|
|
|
return entranceService.BS16017(registerSn, realOrder, patNo, admNo, demoFlag);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取单条处方记录
|
|
|
*
|
|
|
* @param registerSn
|
|
|
* @param patient
|
|
|
* @param admNo
|
|
@ -316,13 +319,13 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public WlyyPrescriptionVO findOriginPrescription(String registerSn, String patient, String admNo, String realOrder, boolean demoFlag)throws Exception{
|
|
|
String patNo =patientMappingService.findHisPatNoByPatient(patient);
|
|
|
if(StringUtils.isBlank(patNo)){
|
|
|
public WlyyPrescriptionVO findOriginPrescription(String registerSn, String patient, String admNo, String realOrder, boolean demoFlag) throws Exception {
|
|
|
String patNo = patientMappingService.findHisPatNoByPatient(patient);
|
|
|
if (StringUtils.isBlank(patNo)) {
|
|
|
return null;
|
|
|
}
|
|
|
List<WlyyPrescriptionVO> rs = entranceService.BS16017(registerSn,realOrder,patNo,admNo,demoFlag);
|
|
|
if(rs!=null&&rs.size()>0){
|
|
|
List<WlyyPrescriptionVO> rs = entranceService.BS16017(registerSn, realOrder, patNo, admNo, demoFlag);
|
|
|
if (rs != null && rs.size() > 0) {
|
|
|
return rs.get(0);
|
|
|
}
|
|
|
return null;
|
|
@ -330,32 +333,33 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 获取复诊记录列表
|
|
|
*
|
|
|
* @param patient
|
|
|
* @param status
|
|
|
* @param page
|
|
|
* @param size
|
|
|
* @return
|
|
|
*/
|
|
|
public MixEnvelop findReOutpatientList(String patient,Integer status,String startTime,String endTime,Integer page,Integer size){
|
|
|
public MixEnvelop findReOutpatientList(String patient, Integer status, String startTime, String endTime, Integer page, Integer size) {
|
|
|
String totalSql = "SELECT " +
|
|
|
" COUNT(1) AS \"total\" " +
|
|
|
" FROM " +
|
|
|
" wlyy_outpatient o " +
|
|
|
" WHERE " +
|
|
|
" o.patient =:patient AND o.outpatient_type != '2' ";
|
|
|
Map<String,Object> totalParams = new HashedMap();
|
|
|
totalParams.put("patient",patient);
|
|
|
if(status!=null){
|
|
|
totalSql += " AND o.status =:status ";
|
|
|
totalParams.put("status",status);
|
|
|
Map<String, Object> totalParams = new HashedMap();
|
|
|
totalParams.put("patient", patient);
|
|
|
if (status != null) {
|
|
|
totalSql += " AND o.status =:status ";
|
|
|
totalParams.put("status", status);
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(startTime)){
|
|
|
if (StringUtils.isNotBlank(startTime)) {
|
|
|
totalSql += " AND o.create_time >=:createTime ";
|
|
|
totalParams.put("createTime",DateUtil.strToDateLong(startTime+" 00:00:00"));
|
|
|
totalParams.put("createTime", DateUtil.strToDateLong(startTime + " 00:00:00"));
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(endTime)){
|
|
|
if (StringUtils.isNotBlank(endTime)) {
|
|
|
totalSql += " AND o.create_time <=:endTime ";
|
|
|
totalParams.put("endTime",DateUtil.strToDateLong(endTime+" 23:59:59"));
|
|
|
totalParams.put("endTime", DateUtil.strToDateLong(endTime + " 23:59:59"));
|
|
|
|
|
|
}
|
|
|
/* totalParams.add(patient);
|
|
@ -371,18 +375,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
totalSql += " AND create_time <= ? ";
|
|
|
totalParams.add(DateUtil.strToDateLong(endTime+" 23:59:59"));
|
|
|
}*/
|
|
|
List<Map<String, Object>> rstotal = hibenateUtils.createSQLQuery(totalSql,totalParams);
|
|
|
List<Map<String, Object>> rstotal = hibenateUtils.createSQLQuery(totalSql, totalParams);
|
|
|
Long count = 0L;
|
|
|
if (rstotal != null && rstotal.size() > 0) {
|
|
|
count = Long.parseLong(rstotal.get(0).get("total").toString()) ;
|
|
|
count = Long.parseLong(rstotal.get(0).get("total").toString());
|
|
|
}
|
|
|
String condition = "";
|
|
|
if("xm_ykyy_wx".equals(wechatId)){
|
|
|
condition= "to_char(o.register_date ,'yyyy-MM-dd hh24:mi:ss' ) AS \"registerDate\"," ;
|
|
|
}else{
|
|
|
condition= "date_format(o.register_date ,'%Y-%m-%d %H:%i:%S' ) AS registerDate," ;
|
|
|
if ("xm_ykyy_wx".equals(wechatId)) {
|
|
|
condition = "to_char(o.register_date ,'yyyy-MM-dd hh24:mi:ss' ) AS \"registerDate\",";
|
|
|
} else {
|
|
|
condition = "date_format(o.register_date ,'%Y-%m-%d %H:%i:%S' ) AS registerDate,";
|
|
|
}
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
" o.id AS \"id\", " +
|
|
|
" o.adm_no AS \"admNo\", " +
|
|
|
" o.origin_adm_no AS \"originAdmNo\", " +
|
|
@ -409,105 +413,106 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" o.con_date AS \"conDate\", " +
|
|
|
" o.description AS \"description\", " +
|
|
|
" o.disease_img AS \"diseaseImg\", ";
|
|
|
if("xm_ykyy_wx".equals(wechatId)){
|
|
|
sql= sql +"to_char(o.create_time ,'yyyy-MM-dd hh24:mi:ss' ) AS \"createTime\"," ;
|
|
|
}else{
|
|
|
sql= sql + "date_format(o.create_time ,'%Y-%m-%d %H:%i:%S' ) AS createTime," ;
|
|
|
}
|
|
|
sql= sql+ " o.status AS \"status\"," +
|
|
|
condition+
|
|
|
/* " o.register_date AS \"registerDate\"," +*/
|
|
|
if ("xm_ykyy_wx".equals(wechatId)) {
|
|
|
sql = sql + "to_char(o.create_time ,'yyyy-MM-dd hh24:mi:ss' ) AS \"createTime\",";
|
|
|
} else {
|
|
|
sql = sql + "date_format(o.create_time ,'%Y-%m-%d %H:%i:%S' ) AS createTime,";
|
|
|
}
|
|
|
sql = sql + " o.status AS \"status\"," +
|
|
|
condition +
|
|
|
/* " o.register_date AS \"registerDate\"," +*/
|
|
|
" o.evaluate_status AS \"evaluateStatus\"," +
|
|
|
" o.pay_status as \"payStatus\" "+
|
|
|
" o.pay_status as \"payStatus\" " +
|
|
|
" FROM " +
|
|
|
" wlyy_outpatient o " +
|
|
|
" WHERE " +
|
|
|
" o.patient =:patient ";
|
|
|
Map<String,Object> params = new HashedMap();
|
|
|
params.put("patient",patient);
|
|
|
if(status!=null){
|
|
|
sql += " AND o.status =:status ";
|
|
|
params.put("status",status);
|
|
|
Map<String, Object> params = new HashedMap();
|
|
|
params.put("patient", patient);
|
|
|
if (status != null) {
|
|
|
sql += " AND o.status =:status ";
|
|
|
params.put("status", status);
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(startTime)){
|
|
|
if (StringUtils.isNotBlank(startTime)) {
|
|
|
sql += " AND o.create_time >=:createTime ";
|
|
|
params.put("createTime",DateUtil.strToDateLong(startTime+" 00:00:00"));
|
|
|
params.put("createTime", DateUtil.strToDateLong(startTime + " 00:00:00"));
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(endTime)){
|
|
|
if (StringUtils.isNotBlank(endTime)) {
|
|
|
sql += " AND o.create_time <=:endTime ";
|
|
|
params.put("endTime",DateUtil.strToDateLong(endTime+" 23:59:59"));
|
|
|
params.put("endTime", DateUtil.strToDateLong(endTime + " 23:59:59"));
|
|
|
|
|
|
}
|
|
|
sql += " AND o.outpatient_type != '2' ORDER BY o.create_time DESC ";
|
|
|
List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,params,page,size);
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, params, page, size);
|
|
|
|
|
|
return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, count);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取单条复诊记录信息
|
|
|
*
|
|
|
* @param outpatientId
|
|
|
* @return
|
|
|
*/
|
|
|
public com.alibaba.fastjson.JSONObject findReOutpatientInfo(String outpatientId,String prescriptionId,String wxId) throws Exception {
|
|
|
public com.alibaba.fastjson.JSONObject findReOutpatientInfo(String outpatientId, String prescriptionId, String wxId) throws Exception {
|
|
|
com.alibaba.fastjson.JSONObject rs = new com.alibaba.fastjson.JSONObject();
|
|
|
|
|
|
//复诊信息
|
|
|
WlyyOutpatientDO outpatientDO = outpatientDao.findOne(outpatientId);
|
|
|
rs.put("outpatient",convertToModel(outpatientDO,WlyyOutpatientVO.class));
|
|
|
rs.put("doctorCancelType",outpatientDO.getDoctorCancelType());
|
|
|
rs.put("doctorCancelValue",outpatientDO.getDoctorCancelValue());
|
|
|
rs.put("doctorCancelRemark",outpatientDO.getDoctorCancelRemark());
|
|
|
rs.put("payStatus",outpatientDO.getPayStatus());
|
|
|
rs.put("patientCancelType",outpatientDO.getPatientCancelType());
|
|
|
rs.put("patientCancelValue",outpatientDO.getPatientCancelValue());
|
|
|
rs.put("patientCancelRemark",outpatientDO.getPatientCancelRemark());
|
|
|
rs.put("operator",userAgent.getUID());
|
|
|
rs.put("outpatient", convertToModel(outpatientDO, WlyyOutpatientVO.class));
|
|
|
rs.put("doctorCancelType", outpatientDO.getDoctorCancelType());
|
|
|
rs.put("doctorCancelValue", outpatientDO.getDoctorCancelValue());
|
|
|
rs.put("doctorCancelRemark", outpatientDO.getDoctorCancelRemark());
|
|
|
rs.put("payStatus", outpatientDO.getPayStatus());
|
|
|
rs.put("patientCancelType", outpatientDO.getPatientCancelType());
|
|
|
rs.put("patientCancelValue", outpatientDO.getPatientCancelValue());
|
|
|
rs.put("patientCancelRemark", outpatientDO.getPatientCancelRemark());
|
|
|
rs.put("operator", userAgent.getUID());
|
|
|
//居民详情
|
|
|
BasePatientDO basePatientDO = basePatientDao.findById(outpatientDO.getPatient());
|
|
|
rs.put("patientName",basePatientDO.getName());
|
|
|
rs.put("photo",basePatientDO.getPhoto());
|
|
|
rs.put("patientId",basePatientDO.getId());
|
|
|
rs.put("idCard",basePatientDO.getIdcard());
|
|
|
rs.put("patientName", basePatientDO.getName());
|
|
|
rs.put("photo", basePatientDO.getPhoto());
|
|
|
rs.put("patientId", basePatientDO.getId());
|
|
|
rs.put("idCard", basePatientDO.getIdcard());
|
|
|
rs.put("sex", basePatientDO.getSex());
|
|
|
PatientMedicareCardDO cardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel(PatientMedicareCardDO.Type.MedicareCard.getType(),outpatientDO.getPatient(),"1");
|
|
|
rs.put("ssc",cardDO);
|
|
|
rs.put("age",IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
|
|
|
rs.put("address",basePatientDO.getAddress());
|
|
|
rs.put("mobile",basePatientDO.getMobile());
|
|
|
rs.put("birthday",DateUtil.dateToStr(basePatientDO.getBirthday(),"yyyy-MM-dd"));
|
|
|
PatientMedicareCardDO cardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel(PatientMedicareCardDO.Type.MedicareCard.getType(), outpatientDO.getPatient(), "1");
|
|
|
rs.put("ssc", cardDO);
|
|
|
rs.put("age", IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
|
|
|
rs.put("address", basePatientDO.getAddress());
|
|
|
rs.put("mobile", basePatientDO.getMobile());
|
|
|
rs.put("birthday", DateUtil.dateToStr(basePatientDO.getBirthday(), "yyyy-MM-dd"));
|
|
|
|
|
|
Long time = new Date().getTime()-outpatientDO.getCreateTime().getTime();
|
|
|
rs.put("time",time);
|
|
|
Long time = new Date().getTime() - outpatientDO.getCreateTime().getTime();
|
|
|
rs.put("time", time);
|
|
|
|
|
|
//获取处方信息
|
|
|
List<WlyyPrescriptionDO> prescriptionDOs = null;
|
|
|
if(StringUtils.isNotBlank(prescriptionId)){
|
|
|
if (StringUtils.isNotBlank(prescriptionId)) {
|
|
|
prescriptionDOs = prescriptionDao.findById(prescriptionId);
|
|
|
}else{
|
|
|
} else {
|
|
|
prescriptionDOs = prescriptionDao.findByOutpatientId(outpatientId);
|
|
|
}
|
|
|
List<WlyyPrescriptionVO> prescriptionVOs = new ArrayList<>();
|
|
|
if(prescriptionDOs!=null&&prescriptionDOs.size()>0){
|
|
|
convertToModels(prescriptionDOs,prescriptionVOs,WlyyPrescriptionVO.class);
|
|
|
for(WlyyPrescriptionVO vo:prescriptionVOs){
|
|
|
if (prescriptionDOs != null && prescriptionDOs.size() > 0) {
|
|
|
convertToModels(prescriptionDOs, prescriptionVOs, WlyyPrescriptionVO.class);
|
|
|
for (WlyyPrescriptionVO vo : prescriptionVOs) {
|
|
|
|
|
|
//疾病信息
|
|
|
vo.setDiagnosisVOs(findDiagnosisById(vo.getId()));
|
|
|
|
|
|
//药品信息
|
|
|
List<WlyyPrescriptionInfoVO> infoVOs = new ArrayList<>();
|
|
|
vo.setInfoVOs(convertToModels(prescriptionInfoDao.findByPrescriptionId(vo.getId(),1),infoVOs,WlyyPrescriptionInfoVO.class));
|
|
|
vo.setInfoVOs(convertToModels(prescriptionInfoDao.findByPrescriptionId(vo.getId(), 1), infoVOs, WlyyPrescriptionInfoVO.class));
|
|
|
|
|
|
//检查检验信息
|
|
|
List<WlyyInspectionVO> inspectionVOs = new ArrayList<>();
|
|
|
vo.setInspectionVOs(convertToModels(wlyyInspectionDao.findByPrescriptionId(vo.getId(),1),inspectionVOs,WlyyInspectionVO.class));
|
|
|
vo.setInspectionVOs(convertToModels(wlyyInspectionDao.findByPrescriptionId(vo.getId(), 1), inspectionVOs, WlyyInspectionVO.class));
|
|
|
|
|
|
if (wxId.equalsIgnoreCase("xm_zsyy_wx")){
|
|
|
if (wxId.equalsIgnoreCase("xm_zsyy_wx")) {
|
|
|
WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO1 = prescriptionEmrDao.findEmrByPrescriptionId(vo.getId());
|
|
|
if (wlyyPrescriptionEmrDO1!=null){
|
|
|
if (wlyyPrescriptionEmrDO1 != null) {
|
|
|
vo.setWlyyPrescriptionEmrDO(wlyyPrescriptionEmrDO1);
|
|
|
}else {
|
|
|
} else {
|
|
|
WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO = readOutPatientXml(outpatientDO.getOriginRegisterNo());
|
|
|
//电子病历
|
|
|
vo.setWlyyPrescriptionEmrDO(wlyyPrescriptionEmrDO);
|
|
@ -516,34 +521,34 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
}
|
|
|
}
|
|
|
rs.put("prescriptions",prescriptionVOs);
|
|
|
rs.put("prescriptions", prescriptionVOs);
|
|
|
|
|
|
//物流信息
|
|
|
List<WlyyPrescriptionExpressageDO> expressageDOs = prescriptionExpressageDao.findByOutpatientId(outpatientId);
|
|
|
if(expressageDOs!=null&&expressageDOs.size()>0){
|
|
|
rs.put("expressage",convertToModel(expressageDOs.get(0), WlyyPrescriptionExpressageVO.class));
|
|
|
}else{
|
|
|
rs.put("expressage",null);
|
|
|
if (expressageDOs != null && expressageDOs.size() > 0) {
|
|
|
rs.put("expressage", convertToModel(expressageDOs.get(0), WlyyPrescriptionExpressageVO.class));
|
|
|
} else {
|
|
|
rs.put("expressage", null);
|
|
|
}
|
|
|
|
|
|
if (!wechatId.equalsIgnoreCase("xm_ykyy_wx")){
|
|
|
if (!wechatId.equalsIgnoreCase("xm_ykyy_wx")) {
|
|
|
//物流配送新
|
|
|
List<WlyyPrescriptionExpressageLogDO> expressageLogDOs = prescriptionExpressageLogDao.queryByOutpatientIdOrderByCreateTimeDesc(outpatientId);
|
|
|
List<WlyyPrescriptionExpressageLogDO> expressageLogDOs = prescriptionExpressageLogDao.queryByOutpatientIdOrderByCreateTimeDesc(outpatientId);
|
|
|
List<WlyyPrescriptionExpressageLogVO> expressageLogVOs = new ArrayList<>();
|
|
|
if(expressageLogDOs!=null&&expressageLogDOs.size()>0){
|
|
|
rs.put("expressageLogs",convertToModels(expressageLogDOs,expressageLogVOs, WlyyPrescriptionExpressageLogVO.class));
|
|
|
}else{
|
|
|
rs.put("expressageLogs",null);
|
|
|
if (expressageLogDOs != null && expressageLogDOs.size() > 0) {
|
|
|
rs.put("expressageLogs", convertToModels(expressageLogDOs, expressageLogVOs, WlyyPrescriptionExpressageLogVO.class));
|
|
|
} else {
|
|
|
rs.put("expressageLogs", null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//预约记录
|
|
|
List<WlyyPatientRegisterTimeDO> timeDOs = patientRegisterTimeDao.findByOutpatientId(outpatientId);
|
|
|
if(timeDOs!=null&&timeDOs.size()>0){
|
|
|
rs.put("register",timeDOs.get(0));
|
|
|
}else{
|
|
|
rs.put("register",null);
|
|
|
if (timeDOs != null && timeDOs.size() > 0) {
|
|
|
rs.put("register", timeDOs.get(0));
|
|
|
} else {
|
|
|
rs.put("register", null);
|
|
|
}
|
|
|
|
|
|
return rs;
|
|
@ -552,6 +557,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 查询历史
|
|
|
*
|
|
|
* @param patient
|
|
|
* @param status
|
|
|
* @param startTime
|
|
@ -560,32 +566,32 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
* @param size
|
|
|
* @return
|
|
|
*/
|
|
|
public MixEnvelop findPrescriptionList(String patient, String status,String startTime, String endTime, Integer page, Integer size,String wxId){
|
|
|
public MixEnvelop findPrescriptionList(String patient, String status, String startTime, String endTime, Integer page, Integer size, String wxId) {
|
|
|
|
|
|
String totalSql ="SELECT " +
|
|
|
String totalSql = "SELECT " +
|
|
|
" count(1) AS \"total\" " +
|
|
|
" FROM " +
|
|
|
" wlyy_prescription p ";
|
|
|
totalSql += " WHERE 1=1 ";
|
|
|
if(StringUtils.isNotBlank(patient)){
|
|
|
totalSql+=" AND p.patient_code ='"+patient+"'";
|
|
|
if (StringUtils.isNotBlank(patient)) {
|
|
|
totalSql += " AND p.patient_code ='" + patient + "'";
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(status)){
|
|
|
totalSql+=" AND p.status IN ("+status+")";
|
|
|
if (StringUtils.isNotBlank(status)) {
|
|
|
totalSql += " AND p.status IN (" + status + ")";
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(startTime)){
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
totalSql +=" and create_time >= to_date('"+startTime+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
totalSql += " AND create_time >='"+startTime+" 00:00:00'";
|
|
|
if (StringUtils.isNotBlank(startTime)) {
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
totalSql += " and create_time >= to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
totalSql += " AND create_time >='" + startTime + " 00:00:00'";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(endTime)){
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
totalSql +=" and create_time <= to_date('"+startTime+" 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
totalSql += " AND create_time <='"+endTime+" 23:59:59'";
|
|
|
if (StringUtils.isNotBlank(endTime)) {
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
totalSql += " and create_time <= to_date('" + startTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
totalSql += " AND create_time <='" + endTime + " 23:59:59'";
|
|
|
}
|
|
|
|
|
|
}
|
|
@ -596,7 +602,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
count = Long.parseLong(rstotal.get(0).get("total").toString());
|
|
|
}
|
|
|
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
" p.id as \"id\", " +
|
|
|
" p.real_order AS \"realOrder\"," +
|
|
|
" p.origin_real_order AS \"originRealOrder\"," +
|
|
@ -642,82 +648,82 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" FROM " +
|
|
|
" wlyy_prescription p " +
|
|
|
" WHERE 1=1 ";
|
|
|
if(StringUtils.isNotBlank(patient)){
|
|
|
sql+=" AND p.patient_code ='"+patient+"'";
|
|
|
if (StringUtils.isNotBlank(patient)) {
|
|
|
sql += " AND p.patient_code ='" + patient + "'";
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(status)){
|
|
|
sql+=" AND p.status IN ("+status+")";
|
|
|
if (StringUtils.isNotBlank(status)) {
|
|
|
sql += " AND p.status IN (" + status + ")";
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(startTime)){
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sql +=" and create_time >= to_date('"+startTime+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
sql += " AND create_time >='"+startTime+" 00:00:00'";
|
|
|
if (StringUtils.isNotBlank(startTime)) {
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sql += " and create_time >= to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sql += " AND create_time >='" + startTime + " 00:00:00'";
|
|
|
}
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(endTime)){
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sql +=" and create_time <= to_date('"+startTime+" 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
sql += " AND create_time <='"+endTime+" 23:59:59'";
|
|
|
if (StringUtils.isNotBlank(endTime)) {
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sql += " and create_time <= to_date('" + startTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sql += " AND create_time <='" + endTime + " 23:59:59'";
|
|
|
}
|
|
|
}
|
|
|
sql += " LIMIT " + (page - 1) * size + "," + size + "";
|
|
|
List<WlyyPrescriptionVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WlyyPrescriptionVO.class));
|
|
|
|
|
|
//设置病种,药品
|
|
|
if(list!=null&&list.size()>0){
|
|
|
for(WlyyPrescriptionVO vo:list){
|
|
|
if (list != null && list.size() > 0) {
|
|
|
for (WlyyPrescriptionVO vo : list) {
|
|
|
vo.setDiagnosisVOs(findDiagnosisById(vo.getId()));
|
|
|
List<WlyyPrescriptionInfoVO> infoVOs = new ArrayList<>();
|
|
|
vo.setInfoVOs(convertToModels(prescriptionInfoDao.findByPrescriptionId(vo.getId(),1),infoVOs,WlyyPrescriptionInfoVO.class));
|
|
|
vo.setInfoVOs(convertToModels(prescriptionInfoDao.findByPrescriptionId(vo.getId(), 1), infoVOs, WlyyPrescriptionInfoVO.class));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, count);
|
|
|
}
|
|
|
|
|
|
public List<WlyyPrescriptionDiagnosisVO> findDiagnosisById(String id){
|
|
|
List<WlyyPrescriptionDiagnosisDO> list = prescriptionDiagnosisDao.findByPrescriptionId(id,1);
|
|
|
public List<WlyyPrescriptionDiagnosisVO> findDiagnosisById(String id) {
|
|
|
List<WlyyPrescriptionDiagnosisDO> list = prescriptionDiagnosisDao.findByPrescriptionId(id, 1);
|
|
|
List<WlyyPrescriptionDiagnosisVO> rs = new ArrayList<>();
|
|
|
if(list!=null&&list.size()>0){
|
|
|
return convertToModels(list,rs,WlyyPrescriptionDiagnosisVO.class);
|
|
|
if (list != null && list.size() > 0) {
|
|
|
return convertToModels(list, rs, WlyyPrescriptionDiagnosisVO.class);
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public WlyyPrescriptionDO findPrescriptionDo(String prescriptionId){
|
|
|
public WlyyPrescriptionDO findPrescriptionDo(String prescriptionId) {
|
|
|
return prescriptionDao.findOne(prescriptionId);
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> findPrescriptionInfo(String prescriptionId){
|
|
|
public Map<String, Object> findPrescriptionInfo(String prescriptionId) {
|
|
|
//续方信息
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
rs.put("prescription",convertToModel(wlyyPrescriptionDO,WlyyPrescriptionVO.class));
|
|
|
rs.put("prescription", convertToModel(wlyyPrescriptionDO, WlyyPrescriptionVO.class));
|
|
|
|
|
|
//居民详情
|
|
|
BasePatientDO basePatientDO = basePatientDao.findById(wlyyPrescriptionDO.getPatientCode());
|
|
|
rs.put("patientName",basePatientDO.getName());
|
|
|
rs.put("patientId",basePatientDO.getId());
|
|
|
rs.put("idCard",basePatientDO.getIdcard());
|
|
|
rs.put("patientName", basePatientDO.getName());
|
|
|
rs.put("patientId", basePatientDO.getId());
|
|
|
rs.put("idCard", basePatientDO.getIdcard());
|
|
|
rs.put("sex", basePatientDO.getSex());
|
|
|
PatientMedicareCardDO cardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel(PatientMedicareCardDO.Type.MedicareCard.getType(),wlyyPrescriptionDO.getPatientCode(),"1");
|
|
|
rs.put("ssc",cardDO);
|
|
|
rs.put("age",IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
|
|
|
PatientMedicareCardDO cardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel(PatientMedicareCardDO.Type.MedicareCard.getType(), wlyyPrescriptionDO.getPatientCode(), "1");
|
|
|
rs.put("ssc", cardDO);
|
|
|
rs.put("age", IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
|
|
|
|
|
|
//诊断信息
|
|
|
rs.put("diagnosis",findDiagnosisById(wlyyPrescriptionDO.getId()));
|
|
|
rs.put("diagnosis", findDiagnosisById(wlyyPrescriptionDO.getId()));
|
|
|
|
|
|
//药品信息
|
|
|
rs.put("infos",prescriptionInfoDao.findByPrescriptionId(wlyyPrescriptionDO.getId(),1));
|
|
|
rs.put("infos", prescriptionInfoDao.findByPrescriptionId(wlyyPrescriptionDO.getId(), 1));
|
|
|
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public Boolean checkPrescription(String patient){
|
|
|
public Boolean checkPrescription(String patient) {
|
|
|
List<WlyyPrescriptionDO> list = prescriptionDao.findByPatientCode(patient);
|
|
|
if(list!=null&&list.size()>0){
|
|
|
if (list != null && list.size() > 0) {
|
|
|
return false;
|
|
|
}
|
|
|
return true;
|
|
@ -726,15 +732,16 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 发起图文和视频复诊
|
|
|
*
|
|
|
* @param outpatientJson
|
|
|
* @param expressageJson
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public WlyyOutpatientDO appointmentRevisit(String outpatientJson,String expressageJson,String registerJson,String chargeType)throws Exception{
|
|
|
public WlyyOutpatientDO appointmentRevisit(String outpatientJson, String expressageJson, String registerJson, String chargeType) throws Exception {
|
|
|
|
|
|
//1.保存就诊实体
|
|
|
WlyyOutpatientDO outpatientDO = objectMapper.readValue(outpatientJson,WlyyOutpatientDO.class);
|
|
|
WlyyOutpatientDO outpatientDO = objectMapper.readValue(outpatientJson, WlyyOutpatientDO.class);
|
|
|
BasePatientDO patientDO = basePatientDao.findById(outpatientDO.getPatient());
|
|
|
BaseDoctorDO doctorDO = baseDoctorDao.findById(outpatientDO.getDoctor());
|
|
|
|
|
@ -746,48 +753,47 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
outpatientDO.setCreateTime(new Date());
|
|
|
|
|
|
|
|
|
if(outpatientDO.getRegisterDate()==null){
|
|
|
if (outpatientDO.getRegisterDate() == null) {
|
|
|
outpatientDO.setRegisterDate(new Date());
|
|
|
}
|
|
|
|
|
|
WlyyOutpatientDO outpatient = outpatientDao.save(outpatientDO);
|
|
|
Double price = 0.0;
|
|
|
if(doctorDO!=null&&StringUtils.isNoneBlank(doctorDO.getFee())){
|
|
|
if (doctorDO != null && StringUtils.isNoneBlank(doctorDO.getFee())) {
|
|
|
price = Double.parseDouble(doctorDO.getFee());
|
|
|
}
|
|
|
if(price==0.0){
|
|
|
if (price == 0.0) {
|
|
|
outpatientDO.setPayStatus(1);
|
|
|
}else {
|
|
|
} else {
|
|
|
outpatientDO.setPayStatus(0);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
businessOrderService.recharge(outpatient.getId(),"复诊-诊查费","2","复诊-诊查费",patientDO.getId(),patientDO.getName(),outpatient.getDoctor(),price);
|
|
|
businessOrderService.recharge(outpatient.getId(), "复诊-诊查费", "2", "复诊-诊查费", patientDO.getId(), patientDO.getName(), outpatient.getDoctor(), price);
|
|
|
|
|
|
WlyyPatientRegisterTimeDO registerTimeDO = null;
|
|
|
|
|
|
try {
|
|
|
//如果是视频预约咨询
|
|
|
if(StringUtils.isNotBlank(registerJson)){
|
|
|
registerTimeDO = objectMapper.readValue(registerJson,WlyyPatientRegisterTimeDO.class);
|
|
|
if (StringUtils.isNotBlank(registerJson)) {
|
|
|
registerTimeDO = objectMapper.readValue(registerJson, WlyyPatientRegisterTimeDO.class);
|
|
|
registerTimeDO.setOutpatientId(outpatient.getId());
|
|
|
registerTimeDO.setCreateTime(new Date());
|
|
|
patientRegisterTimeDao.save(registerTimeDO);
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
} catch (Exception e) {
|
|
|
throw new RuntimeException("号源已经被预约,请选择其他号源");
|
|
|
}
|
|
|
|
|
|
//2.物流信息
|
|
|
WlyyPrescriptionExpressageDO expressageDO = objectMapper.readValue(expressageJson,WlyyPrescriptionExpressageDO.class);
|
|
|
WlyyPrescriptionExpressageDO expressageDO = objectMapper.readValue(expressageJson, WlyyPrescriptionExpressageDO.class);
|
|
|
expressageDO.setDel(1);
|
|
|
expressageDO.setCreateTime(new Date());
|
|
|
expressageDO.setOutpatientId(outpatient.getId());
|
|
|
prescriptionExpressageDao.save(expressageDO);
|
|
|
|
|
|
//3.创建候诊室
|
|
|
createRoom(outpatient,chargeType);
|
|
|
createRoom(outpatient, chargeType);
|
|
|
|
|
|
return outpatient;
|
|
|
}
|
|
@ -795,10 +801,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 创建候诊室
|
|
|
*
|
|
|
* @param outpatientDO
|
|
|
* @return
|
|
|
*/
|
|
|
public Boolean createRoom(WlyyOutpatientDO outpatientDO,String chargeType){
|
|
|
public Boolean createRoom(WlyyOutpatientDO outpatientDO, String chargeType) {
|
|
|
|
|
|
WlyyHospitalWaitingRoomDO waitingRoom = new WlyyHospitalWaitingRoomDO();
|
|
|
|
|
@ -808,7 +815,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
waitingRoom.setHospitalName(outpatientDO.getHospitalName());
|
|
|
|
|
|
//是否是有协同门诊医生
|
|
|
if(StringUtils.isNotBlank(outpatientDO.getGeneralDoctor())){
|
|
|
if (StringUtils.isNotBlank(outpatientDO.getGeneralDoctor())) {
|
|
|
waitingRoom.setGeneralDoctor(outpatientDO.getGeneralDoctor());
|
|
|
waitingRoom.setGeneralDoctorName(outpatientDO.getGeneralDoctorName());
|
|
|
}
|
|
@ -818,18 +825,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
waitingRoom.setReservationTime(outpatientDO.getRegisterDate());
|
|
|
waitingRoom.setVisitStatus(0);
|
|
|
//设置复诊类型
|
|
|
waitingRoom.setReservationType(StringUtils.isNotBlank(outpatientDO.getOutpatientType())?Integer.parseInt(outpatientDO.getOutpatientType()):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())){
|
|
|
if (StringUtils.isNotBlank(outpatientDO.getDoctor())) {
|
|
|
waitingRoom.setDoctor(outpatientDO.getDoctor());
|
|
|
waitingRoom.setDoctorName(outpatientDO.getDoctorName());
|
|
|
}
|
|
|
waitingRoom.setOutpatientId(outpatientDO.getId());
|
|
|
waitingRoom.setCreateTime(new Date());
|
|
|
|
|
|
if(StringUtils.isNotBlank(chargeType)){
|
|
|
if (StringUtils.isNotBlank(chargeType)) {
|
|
|
waitingRoom.setChargeType(chargeType);
|
|
|
}
|
|
|
|
|
@ -839,7 +846,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}
|
|
|
|
|
|
|
|
|
public Boolean cancelPrescription(String prescriptionId){
|
|
|
public Boolean cancelPrescription(String prescriptionId) {
|
|
|
WlyyPrescriptionDO prescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
prescriptionDO.setStatus(-2);
|
|
|
return true;
|
|
@ -847,18 +854,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
|
|
|
/**
|
|
|
*@param admNo 门诊唯一号
|
|
|
* @param admNo 门诊唯一号
|
|
|
* @param realOrder 处方号
|
|
|
* @param status 处方状态 1审方失败,2审核完成,3结算完成
|
|
|
* @param status 处方状态 1审方失败,2审核完成,3结算完成
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String,Object> updatePrescriptionByHisStatu(String admNo,String realOrder,String status)throws Exception {
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
public Map<String, Object> updatePrescriptionByHisStatu(String admNo, String realOrder, String status) throws Exception {
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
|
|
|
String sql = "";
|
|
|
//status 处方流程状态 ,13 开方失败/调整中,20 诊断完成/开方成功/待支付,已完成:100 已完成
|
|
|
//pay_status`:处方结算状态,0为未结算,1为结算成功,默认为0',
|
|
|
String outPatientSql="";
|
|
|
String outPatientSql = "";
|
|
|
if ("1".equals(status)) {
|
|
|
sql = "UPDATE base.wlyy_prescription p SET p.status='13' WHERE p.adm_no='" + admNo + "' AND p.real_order='" + realOrder + "' ";
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findByRealOrder(realOrder);
|
|
@ -868,7 +875,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
//开方成功时候,先用处方号获取本地处方状态是否为开方失败,如果是则需要更新本地的处方
|
|
|
sql = "UPDATE base.wlyy_prescription p SET p.status='20' WHERE p.adm_no='" + admNo + "' AND p.real_order='" + realOrder + "' ";
|
|
|
//变更门诊状态
|
|
|
outPatientSql="UPDATE base.wlyy_outpatient p SET p.`status`='2' WHERE p.adm_no='" + admNo + "'";
|
|
|
outPatientSql = "UPDATE base.wlyy_outpatient p SET p.`status`='2' WHERE p.adm_no='" + admNo + "'";
|
|
|
jdbcTemplate.execute(outPatientSql);
|
|
|
jdbcTemplate.execute(sql);
|
|
|
|
|
@ -882,7 +889,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
wlyyPrescriptionDO.setPayStatus(1);
|
|
|
wlyyPrescriptionDO.setStatus(100);
|
|
|
|
|
|
prescriptionLogService.addPrescriptionLog(wlyyPrescriptionDO.getId(),100,2,outpatientDO.getDoctor(),outpatientDO.getDoctorName(),"",new Date());
|
|
|
prescriptionLogService.addPrescriptionLog(wlyyPrescriptionDO.getId(), 100, 2, outpatientDO.getDoctor(), outpatientDO.getDoctorName(), "", new Date());
|
|
|
prescriptionDao.save(wlyyPrescriptionDO);
|
|
|
|
|
|
} else {
|
|
@ -890,30 +897,30 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
wlyyPrescriptionDO.setPayStatus(1);
|
|
|
wlyyPrescriptionDO.setStatus(32);
|
|
|
|
|
|
try{
|
|
|
WlyyPrescriptionVO vo = findOriginPrescription(outpatientDO.getRegisterNo(),outpatientDO.getPatient(),admNo,realOrder,demoFlag);
|
|
|
try {
|
|
|
WlyyPrescriptionVO vo = findOriginPrescription(outpatientDO.getRegisterNo(), outpatientDO.getPatient(), admNo, realOrder, demoFlag);
|
|
|
wlyyPrescriptionDO.setDispUser(vo.getDispUser());
|
|
|
wlyyPrescriptionDO.setDispUserName(vo.getDispUserName());
|
|
|
wlyyPrescriptionDO.setDispDate(new Date());
|
|
|
prescriptionLogService.addPrescriptionLog(wlyyPrescriptionDO.getId(),32,2,vo.getDispUser(),vo.getDispUserName(),"",new Date());
|
|
|
}catch (Exception e){
|
|
|
logger.error("获取处方信息异常"+e.toString());
|
|
|
prescriptionLogService.addPrescriptionLog(wlyyPrescriptionDO.getId(), 32, 2, vo.getDispUser(), vo.getDispUserName(), "", new Date());
|
|
|
} catch (Exception e) {
|
|
|
logger.error("获取处方信息异常" + e.toString());
|
|
|
}
|
|
|
prescriptionDao.save(wlyyPrescriptionDO);
|
|
|
}
|
|
|
//发送取药系统消息
|
|
|
SystemMessageDO systemMessageDO = sendPatientGetDrugMes(outpatientDO,wlyyPrescriptionDO);
|
|
|
SystemMessageDO systemMessageDO = sendPatientGetDrugMes(outpatientDO, wlyyPrescriptionDO);
|
|
|
|
|
|
rs.put("mes",systemMessageDO);
|
|
|
rs.put("mes", systemMessageDO);
|
|
|
}
|
|
|
|
|
|
rs.put("flag",true);
|
|
|
rs.put("flag", true);
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public SystemMessageDO sendPatientGetDrugMes(WlyyOutpatientDO outpatient,WlyyPrescriptionDO prescriptionDO){
|
|
|
public SystemMessageDO sendPatientGetDrugMes(WlyyOutpatientDO outpatient, WlyyPrescriptionDO prescriptionDO) {
|
|
|
SystemMessageDO systemMessageDO = new SystemMessageDO();
|
|
|
try{
|
|
|
try {
|
|
|
|
|
|
systemMessageDO.setTitle("患者取药");
|
|
|
systemMessageDO.setType("7");
|
|
@ -925,37 +932,38 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
systemMessageDO.setRelationCode(outpatient.getId());
|
|
|
|
|
|
JSONObject data = new JSONObject();
|
|
|
data.put("name",outpatient.getPatientName());
|
|
|
data.put("age",IdCardUtil.getAgeForIdcard(outpatient.getIdcard()));
|
|
|
data.put("gender",IdCardUtil.getSexForIdcard_new(outpatient.getIdcard()));
|
|
|
data.put("recipeType",prescriptionDO.getDispensaryType());
|
|
|
data.put("message","患者已完成取药");
|
|
|
data.put("name", outpatient.getPatientName());
|
|
|
data.put("age", IdCardUtil.getAgeForIdcard(outpatient.getIdcard()));
|
|
|
data.put("gender", IdCardUtil.getSexForIdcard_new(outpatient.getIdcard()));
|
|
|
data.put("recipeType", prescriptionDO.getDispensaryType());
|
|
|
data.put("message", "患者已完成取药");
|
|
|
|
|
|
systemMessageDO.setData(data.toString());
|
|
|
|
|
|
systemMessageService.saveMessage(systemMessageDO);
|
|
|
|
|
|
}catch (Exception e){
|
|
|
logger.error("sendPatientGetDrugMes :"+e.toString());
|
|
|
} catch (Exception e) {
|
|
|
logger.error("sendPatientGetDrugMes :" + e.toString());
|
|
|
}
|
|
|
return systemMessageDO;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取卡记录
|
|
|
*
|
|
|
* @param patient
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public JSONArray findPatientCard(String patient)throws Exception{
|
|
|
public JSONArray findPatientCard(String patient) throws Exception {
|
|
|
BasePatientDO patientDO = basePatientDao.findById(patient);
|
|
|
JSONArray res = entranceService.BS15018(patientDO.getIdcard(),null,demoFlag);
|
|
|
JSONArray res = entranceService.BS15018(patientDO.getIdcard(), null, demoFlag);
|
|
|
JSONArray rs = new JSONArray();
|
|
|
if(res !=null){
|
|
|
for (int i =0;i<res.size();i++){
|
|
|
if (res != null) {
|
|
|
for (int i = 0; i < res.size(); i++) {
|
|
|
JSONObject card = res.getJSONObject(i);
|
|
|
String cardStat = card.getString("CARD_STAT");
|
|
|
if("激活".equals(cardStat)){
|
|
|
if ("激活".equals(cardStat)) {
|
|
|
rs.add(card);
|
|
|
}
|
|
|
}
|
|
@ -964,53 +972,54 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}
|
|
|
|
|
|
|
|
|
public Map<String,Object> checkOutpatient(String patient)throws Exception{
|
|
|
public Map<String, Object> checkOutpatient(String patient) throws Exception {
|
|
|
//-1卡余额不足,,-2 存在未结束的诊断热 1成功
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
//1.余额判断改到前端判断
|
|
|
//net.sf.json.JSONObject json = entranceService.qutpatientBalance(cardNo,demoFlag);
|
|
|
|
|
|
//2.判断是否有未结束的
|
|
|
List<WlyyOutpatientDO> list = outpatientDao.findByPatientList(patient);
|
|
|
if(list!=null&&list.size()>0){
|
|
|
rs.put("outpatient",list.get(0));
|
|
|
rs.put("code",-2);
|
|
|
rs.put("mes","存在未结束的诊断");
|
|
|
if (list != null && list.size() > 0) {
|
|
|
rs.put("outpatient", list.get(0));
|
|
|
rs.put("code", -2);
|
|
|
rs.put("mes", "存在未结束的诊断");
|
|
|
return rs;
|
|
|
}
|
|
|
rs.put("code",1);
|
|
|
rs.put("mes","验证通过");
|
|
|
rs.put("code", 1);
|
|
|
rs.put("mes", "验证通过");
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取所有医院列表
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
public List<BaseOrgVO> findAllHospital(Integer level,String keyWord){
|
|
|
public List<BaseOrgVO> findAllHospital(Integer level, String keyWord) {
|
|
|
|
|
|
if (StringUtils.isNoneEmpty(keyWord)) {
|
|
|
keyWord = "%" + keyWord + "%";
|
|
|
|
|
|
if(level!=null){
|
|
|
List<BaseOrgDO> list = baseOrgDao.findByLevelAndName(level,"1",keyWord);
|
|
|
if (level != null) {
|
|
|
List<BaseOrgDO> list = baseOrgDao.findByLevelAndName(level, "1", keyWord);
|
|
|
List<BaseOrgVO> rs = new ArrayList<>();
|
|
|
return convertToModels(list,rs,BaseOrgVO.class);
|
|
|
}else {
|
|
|
List<BaseOrgDO> list = baseOrgDao.findByDelAndName("1",keyWord);
|
|
|
return convertToModels(list, rs, BaseOrgVO.class);
|
|
|
} else {
|
|
|
List<BaseOrgDO> list = baseOrgDao.findByDelAndName("1", keyWord);
|
|
|
List<BaseOrgVO> rs = new ArrayList<>();
|
|
|
return convertToModels(list,rs,BaseOrgVO.class);
|
|
|
return convertToModels(list, rs, BaseOrgVO.class);
|
|
|
}
|
|
|
}else{
|
|
|
} else {
|
|
|
|
|
|
if(level!=null){
|
|
|
List<BaseOrgDO> list = baseOrgDao.findByLevelAndDel(level,"1");
|
|
|
if (level != null) {
|
|
|
List<BaseOrgDO> list = baseOrgDao.findByLevelAndDel(level, "1");
|
|
|
List<BaseOrgVO> rs = new ArrayList<>();
|
|
|
return convertToModels(list,rs,BaseOrgVO.class);
|
|
|
}else {
|
|
|
return convertToModels(list, rs, BaseOrgVO.class);
|
|
|
} else {
|
|
|
List<BaseOrgDO> list = baseOrgDao.findByDel("1");
|
|
|
List<BaseOrgVO> rs = new ArrayList<>();
|
|
|
return convertToModels(list,rs,BaseOrgVO.class);
|
|
|
return convertToModels(list, rs, BaseOrgVO.class);
|
|
|
}
|
|
|
}
|
|
|
|
|
@ -1044,9 +1053,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取医生列表.
|
|
|
*
|
|
@ -1054,8 +1060,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
* @param dept
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> findDoctorByHospitalAndDept(String orgCode,String dept,String chargeType,String doctorCode,String outpatientType,String startDate,String endDate,String key,String consultStatus){
|
|
|
String sql ="SELECT " +
|
|
|
public List<Map<String, Object>> findDoctorByHospitalAndDept(String orgCode, String dept, String chargeType, String doctorCode, String outpatientType, String startDate, String endDate, String key, String consultStatus) {
|
|
|
String sql = "SELECT " +
|
|
|
" d.id AS \"id\", " +
|
|
|
" d.photo AS \"photo\", " +
|
|
|
" d.name AS \"name\", " +
|
|
@ -1071,7 +1077,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
|
|
|
" WHERE " +
|
|
|
" 1=1";
|
|
|
Map<String,Object> params = new HashedMap();
|
|
|
Map<String, Object> params = new HashedMap();
|
|
|
if (StringUtils.isNotBlank(dept)) {
|
|
|
sql += " AND h.dept_code = '" + dept + "'";
|
|
|
}
|
|
@ -1113,14 +1119,14 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" AND t.start_time >=:startDate" +
|
|
|
" AND t.start_time <=:endDate" +
|
|
|
" )";
|
|
|
params.put("startDate",DateUtil.stringToDate(startDate,"yyyy-MM-ss HH:mm:ss"));
|
|
|
params.put("endDate",DateUtil.stringToDate(endDate,"yyyy-MM-ss HH:mm:ss"));
|
|
|
params.put("startDate", DateUtil.stringToDate(startDate, "yyyy-MM-ss HH:mm:ss"));
|
|
|
params.put("endDate", DateUtil.stringToDate(endDate, "yyyy-MM-ss HH:mm:ss"));
|
|
|
|
|
|
}
|
|
|
|
|
|
logger.info("findDoctorByHospitalAndDept sql:" + sql);
|
|
|
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql,params);
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, params);
|
|
|
|
|
|
if (list != null && list.size() > 0 && StringUtils.isNotBlank(doctorCode)) {
|
|
|
//排序
|
|
@ -1151,7 +1157,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
|
|
|
" WHERE " +
|
|
|
" 1=1 ";
|
|
|
Map<String,Object> params = new HashedMap();
|
|
|
Map<String, Object> params = new HashedMap();
|
|
|
if (StringUtils.isNotBlank(dept)) {
|
|
|
totalSql += " AND h.dept_code = '" + dept + "'";
|
|
|
}
|
|
@ -1159,9 +1165,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
totalSql += " AND h.org_code = '" + orgCode + "'";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(chargeType)) {
|
|
|
if ("all".equalsIgnoreCase(chargeType)){
|
|
|
if ("all".equalsIgnoreCase(chargeType)) {
|
|
|
|
|
|
}else {
|
|
|
} else {
|
|
|
totalSql += " AND d.charge_type ='" + chargeType + "'";
|
|
|
}
|
|
|
} else {
|
|
@ -1202,10 +1208,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" AND t.start_time >=:startDate" +
|
|
|
" AND t.start_time <=:endDate" +
|
|
|
" )";
|
|
|
params.put("startDate",DateUtil.stringToDate(startDate,"yyyy-MM-ss HH:mm:ss"));
|
|
|
params.put("endDate",DateUtil.stringToDate(endDate,"yyyy-MM-ss HH:mm:ss"));
|
|
|
params.put("startDate", DateUtil.stringToDate(startDate, "yyyy-MM-ss HH:mm:ss"));
|
|
|
params.put("endDate", DateUtil.stringToDate(endDate, "yyyy-MM-ss HH:mm:ss"));
|
|
|
}
|
|
|
List<Map<String, Object>> rstotal = hibenateUtils.createSQLQuery(totalSql,params);
|
|
|
List<Map<String, Object>> rstotal = hibenateUtils.createSQLQuery(totalSql, params);
|
|
|
|
|
|
Long count = 0L;
|
|
|
if (rstotal != null && rstotal.size() > 0) {
|
|
@ -1238,9 +1244,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNotBlank(chargeType)) {
|
|
|
if ("all".equalsIgnoreCase(chargeType)){
|
|
|
if ("all".equalsIgnoreCase(chargeType)) {
|
|
|
|
|
|
}else {
|
|
|
} else {
|
|
|
sql += " AND d.charge_type ='" + chargeType + "'";
|
|
|
}
|
|
|
} else {
|
|
@ -1285,8 +1291,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" )";
|
|
|
}
|
|
|
sql += " AND d.del='1' AND d.outpatient_type is not null ";
|
|
|
logger.info("withwork sql:" +sql);
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql,params,page,size);
|
|
|
logger.info("withwork sql:" + sql);
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, params, page, size);
|
|
|
if (list != null && list.size() > 0) {
|
|
|
//获取排班
|
|
|
for (Map<String, Object> doctor : list) {
|
|
@ -1314,22 +1320,22 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
if (list != null && list.size() > 0) {
|
|
|
WlyyHospitalWorkRuleDO rule = list.get(0);
|
|
|
|
|
|
String openTimeString = DateUtil.dateToStr(new Date(), "yyyy-MM-dd")+ " " + rule.getMaxDayOpenTime() + ":00";
|
|
|
logger.info("today openTimeString :"+openTimeString);
|
|
|
String openTimeString = DateUtil.dateToStr(new Date(), "yyyy-MM-dd") + " " + rule.getMaxDayOpenTime() + ":00";
|
|
|
logger.info("today openTimeString :" + openTimeString);
|
|
|
Date openTime = DateUtil.strToDate(openTimeString, "yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
Integer openDay = rule.getMaxDay();
|
|
|
if (openTime.before(new Date())) {
|
|
|
openDay = openDay - 1;
|
|
|
}
|
|
|
Date preDate = DateUtil.getPreDays(new Date(), openDay);
|
|
|
String maxDateString = DateUtil.dateToStr(preDate,"yyyy-MM-dd")+" 23:59:59";
|
|
|
logger.info("maxDateString :"+maxDateString);
|
|
|
Date preDate = DateUtil.getPreDays(new Date(), openDay);
|
|
|
String maxDateString = DateUtil.dateToStr(preDate, "yyyy-MM-dd") + " 23:59:59";
|
|
|
logger.info("maxDateString :" + maxDateString);
|
|
|
|
|
|
Date endDate = DateUtil.stringToDate(maxDateString, "yyyy-MM-dd HH:mm:ss");
|
|
|
List<WlyyDoctorWorkTimeVO> timeVOs = new ArrayList<>();
|
|
|
List<WlyyDoctorWorkTimeDO> timeDOs = doctorWorkTimeDao.findDoctorWorkTime(doctor, new Date(), endDate);
|
|
|
if(timeDOs!=null&&timeDOs.size()>0){
|
|
|
if (timeDOs != null && timeDOs.size() > 0) {
|
|
|
convertToModels(timeDOs, timeVOs, WlyyDoctorWorkTimeVO.class);
|
|
|
if (timeVOs != null && timeVOs.size() > 0) {
|
|
|
for (WlyyDoctorWorkTimeVO timeVO : timeVOs) {
|
|
@ -1354,7 +1360,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
* @param size
|
|
|
* @return
|
|
|
*/
|
|
|
public MixEnvelop findDoctorWithMouthWork(String orgCode, String dept, String chargeType, String date, String nameKey,String iswork, Integer page, Integer size) {
|
|
|
public MixEnvelop findDoctorWithMouthWork(String orgCode, String dept, String chargeType, String date, String nameKey, String iswork, Integer page, Integer size) {
|
|
|
|
|
|
String totalSql = "SELECT " +
|
|
|
" count(1) AS \"total\" " +
|
|
@ -1383,24 +1389,24 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
totalSql += " AND d.name like '%" + nameKey + "%' ";
|
|
|
}
|
|
|
//过滤排班
|
|
|
if(StringUtils.isNotBlank(iswork)){
|
|
|
if("1".equals(iswork)){
|
|
|
totalSql +=" AND d.id IN ( " +
|
|
|
if (StringUtils.isNotBlank(iswork)) {
|
|
|
if ("1".equals(iswork)) {
|
|
|
totalSql += " AND d.id IN ( " +
|
|
|
" SELECT DISTINCT " +
|
|
|
" t.doctor " +
|
|
|
" FROM " +
|
|
|
" wlyy_doctor_work_time t " +
|
|
|
" WHERE " +
|
|
|
" t.work_date LIKE '%"+date+"%' " +
|
|
|
" t.work_date LIKE '%" + date + "%' " +
|
|
|
" )";
|
|
|
}else{
|
|
|
totalSql +=" AND d.id NOT IN ( " +
|
|
|
} else {
|
|
|
totalSql += " AND d.id NOT IN ( " +
|
|
|
" SELECT DISTINCT " +
|
|
|
" t.doctor " +
|
|
|
" FROM " +
|
|
|
" wlyy_doctor_work_time t " +
|
|
|
" WHERE " +
|
|
|
" t.work_date LIKE '%"+date+"%' " +
|
|
|
" t.work_date LIKE '%" + date + "%' " +
|
|
|
" )";
|
|
|
}
|
|
|
|
|
@ -1447,30 +1453,30 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
sql += " AND d.name like '%" + nameKey + "%' ";
|
|
|
}
|
|
|
//过滤排班
|
|
|
if(StringUtils.isNotBlank(iswork)){
|
|
|
if("1".equals(iswork)){
|
|
|
sql +=" AND d.id IN ( " +
|
|
|
if (StringUtils.isNotBlank(iswork)) {
|
|
|
if ("1".equals(iswork)) {
|
|
|
sql += " AND d.id IN ( " +
|
|
|
" SELECT DISTINCT " +
|
|
|
" t.doctor " +
|
|
|
" FROM " +
|
|
|
" wlyy_doctor_work_time t " +
|
|
|
" WHERE " +
|
|
|
" t.work_date LIKE '%"+date+"%' " +
|
|
|
" t.work_date LIKE '%" + date + "%' " +
|
|
|
" )";
|
|
|
}else{
|
|
|
sql +=" AND d.id NOT IN ( " +
|
|
|
} else {
|
|
|
sql += " AND d.id NOT IN ( " +
|
|
|
" SELECT DISTINCT " +
|
|
|
" t.doctor " +
|
|
|
" FROM " +
|
|
|
" wlyy_doctor_work_time t " +
|
|
|
" WHERE " +
|
|
|
" t.work_date LIKE '%"+date+"%' " +
|
|
|
" t.work_date LIKE '%" + date + "%' " +
|
|
|
" )";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql,page,size);
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, page, size);
|
|
|
if (list != null && list.size() > 0) {
|
|
|
//获取排班
|
|
|
for (Map<String, Object> doctor : list) {
|
|
@ -1798,6 +1804,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
public JSONArray getICD10(String pyKey) throws Exception {
|
|
|
return entranceService.MS25001(pyKey, demoFlag);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取药品
|
|
|
*
|
|
@ -1927,7 +1934,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
* @param diagnosisJson
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String, Object> makeDiagnosis(String outPatientId, String advice, String type, String infoJsons, String diagnosisJson, String inspectionJson,String emrJson) throws Exception {
|
|
|
public Map<String, Object> makeDiagnosis(String outPatientId, String advice, String type, String infoJsons, String diagnosisJson, String inspectionJson, String emrJson) throws Exception {
|
|
|
|
|
|
Map<String, Object> result = new HashedMap();
|
|
|
|
|
@ -1955,7 +1962,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
prescriptionDO.setDoctor(outpatientDO.getDoctor());
|
|
|
prescriptionDO.setDoctorName(outpatientDO.getDoctorName());
|
|
|
prescriptionDO.setPayStatus(0);
|
|
|
if (wechatId.equalsIgnoreCase("xm_ykyy_wx")){
|
|
|
if (wechatId.equalsIgnoreCase("xm_ykyy_wx")) {
|
|
|
prescriptionDO.setAdmNo(outpatientDO.getAdmNo());
|
|
|
}
|
|
|
WlyyPrescriptionDO prescription = prescriptionDao.save(prescriptionDO);
|
|
@ -1967,7 +1974,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
//============================下诊断==============================================================
|
|
|
//删除之前诊断
|
|
|
List<WlyyPrescriptionDiagnosisDO> ds = prescriptionDiagnosisDao.findByPrescriptionId(prescription.getId(),1);
|
|
|
List<WlyyPrescriptionDiagnosisDO> ds = prescriptionDiagnosisDao.findByPrescriptionId(prescription.getId(), 1);
|
|
|
if (ds != null && ds.size() > 0) {
|
|
|
prescriptionDiagnosisDao.deleteByPrescriptionId(prescription.getId());
|
|
|
}
|
|
@ -1999,7 +2006,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
//=====================电子病历=================================================start
|
|
|
prescriptionEmrDao.deleteByPrescriptionId(prescription.getId());
|
|
|
if (StringUtils.isNotBlank(emrJson)) {
|
|
|
WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO = com.alibaba.fastjson.JSONObject.parseObject(emrJson,WlyyPrescriptionEmrDO.class);
|
|
|
WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO = com.alibaba.fastjson.JSONObject.parseObject(emrJson, WlyyPrescriptionEmrDO.class);
|
|
|
wlyyPrescriptionEmrDO.setDel(1);
|
|
|
wlyyPrescriptionEmrDO.setPrescriptionId(prescription.getId());
|
|
|
prescriptionEmrDao.save(wlyyPrescriptionEmrDO);
|
|
@ -2007,13 +2014,13 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
//=====================电子病历=================================================end
|
|
|
//=====================保存日志 start=========================================================
|
|
|
List<WlyyPrescriptionCheckDO> prescriptionCheckDOS = prescriptionCheckDao.findByStatus(prescription.getId(),5);
|
|
|
if (prescriptionCheckDOS==null || prescriptionCheckDOS.size() ==0){
|
|
|
savePrescriptionCheck(prescription.getDoctor(),"开具处方",5,prescription.getId());
|
|
|
List<WlyyPrescriptionCheckDO> prescriptionCheckDOS = prescriptionCheckDao.findByStatus(prescription.getId(), 5);
|
|
|
if (prescriptionCheckDOS == null || prescriptionCheckDOS.size() == 0) {
|
|
|
savePrescriptionCheck(prescription.getDoctor(), "开具处方", 5, prescription.getId());
|
|
|
}
|
|
|
|
|
|
if (prescriptionDOs != null && prescriptionDOs.size() > 0) {
|
|
|
savePrescriptionCheck(prescription.getDoctor(),"处方修改",3,prescription.getId());
|
|
|
savePrescriptionCheck(prescription.getDoctor(), "处方修改", 3, prescription.getId());
|
|
|
}
|
|
|
|
|
|
//=====================保存日志 end=========================================================
|
|
@ -2027,10 +2034,9 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//===================药品操作======================================================
|
|
|
// 删除原有药品信息
|
|
|
List<WlyyPrescriptionInfoDO> oldInfos = prescriptionInfoDao.findByPrescriptionId(prescription.getId(),1);
|
|
|
List<WlyyPrescriptionInfoDO> oldInfos = prescriptionInfoDao.findByPrescriptionId(prescription.getId(), 1);
|
|
|
if (oldInfos != null && oldInfos.size() > 0) {
|
|
|
prescriptionInfoDao.deleteByPrescriptionId(prescription.getId());
|
|
|
}
|
|
@ -2051,7 +2057,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
prescriptionInfoDao.save(infoDOs);
|
|
|
logger.info("123");
|
|
|
Double price = getInfoFee(infoDOs);
|
|
|
logger.info("12312313213"+price);
|
|
|
logger.info("12312313213" + price);
|
|
|
//计算药品费用
|
|
|
prescription.setDrugFee(price);
|
|
|
}
|
|
@ -2090,7 +2096,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
prescription.setPrescribeTime(new Date());
|
|
|
//保存费用
|
|
|
prescriptionDao.save(prescription);
|
|
|
if (wechatId.equalsIgnoreCase("xm_ykyy_wx")){
|
|
|
if (wechatId.equalsIgnoreCase("xm_ykyy_wx")) {
|
|
|
outpatientDO.setStatus("2");
|
|
|
outpatientDao.save(outpatientDO);
|
|
|
//先下单
|
|
@ -2098,19 +2104,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
//同步his
|
|
|
ykyyEntranceService.findByRealOrder(prescription.getId());
|
|
|
List<WlyyPrescriptionDO> prescriptionDOList = prescriptionDao.findById(prescription.getId());
|
|
|
if(prescriptionDOList!=null&&prescriptionDOList.size()!=0){
|
|
|
if (prescriptionDOList != null && prescriptionDOList.size() != 0) {
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDOList.get(0);
|
|
|
BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outpatientDO.getId());
|
|
|
logger.info("cfsb",wlyyPrescriptionDO.getRealOrder());
|
|
|
ykyyService.updateDrugorderInfo(businessOrderDO.getOrderNo(),wlyyPrescriptionDO.getOrderId(),wlyyPrescriptionDO.getRealOrder());
|
|
|
logger.info("cfsb", wlyyPrescriptionDO.getRealOrder());
|
|
|
ykyyService.updateDrugorderInfo(businessOrderDO.getOrderNo(), wlyyPrescriptionDO.getOrderId(), wlyyPrescriptionDO.getRealOrder());
|
|
|
}
|
|
|
|
|
|
result.put("code", 1);
|
|
|
result.put("mes", "诊断完成");
|
|
|
return result;
|
|
|
}else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")){
|
|
|
} else if (wechatId.equalsIgnoreCase("xm_zsyy_wx")) {
|
|
|
Double price = prescription.getDrugFee();
|
|
|
businessOrderService.recharge(prescription.getId(),"处方收费","4","处方收费",prescription.getPatientCode(),prescription.getPatientName(),prescription.getDoctor(),price);
|
|
|
businessOrderService.recharge(prescription.getId(), "处方收费", "4", "处方收费", prescription.getPatientCode(), prescription.getPatientName(), prescription.getDoctor(), price);
|
|
|
//上传his开方
|
|
|
//sendHisDiagnosis(jsonData, outpatientDO, prescription)
|
|
|
//zsSynHis(prescription.getId());
|
|
@ -2118,7 +2124,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
result1.put("code", 1);
|
|
|
result1.put("mes", "开方提交成功");
|
|
|
return result1;
|
|
|
}else {
|
|
|
} else {
|
|
|
result.put("code", 1);
|
|
|
result.put("mes", "诊断完成");
|
|
|
return result;
|
|
@ -2137,8 +2143,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 计算药品费用
|
|
|
*
|
|
@ -2151,19 +2155,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
if (infoDOs != null && infoDOs.size() > 0) {
|
|
|
|
|
|
for (WlyyPrescriptionInfoDO info : infoDOs) {
|
|
|
logger.error("getInfoFee===========Quantity:" +info.getQuantity());
|
|
|
/* Integer quantity = Integer.parseInt(info.getQuantity());*/
|
|
|
logger.error("getInfoFee===========PackRetprice:" +info.getPackRetprice());
|
|
|
/* fee += info.getPackRetprice() * quantity;*/
|
|
|
logger.error("getInfoFee===========:" +fee);
|
|
|
logger.error("getInfoFee===========Quantity:" + info.getQuantity());
|
|
|
/* Integer quantity = Integer.parseInt(info.getQuantity());*/
|
|
|
logger.error("getInfoFee===========PackRetprice:" + info.getPackRetprice());
|
|
|
/* fee += info.getPackRetprice() * quantity;*/
|
|
|
logger.error("getInfoFee===========:" + fee);
|
|
|
BigDecimal total = new BigDecimal(0);
|
|
|
BigDecimal quantity = new BigDecimal(info.getQuantity());
|
|
|
BigDecimal price = new BigDecimal(info.getPackRetprice());
|
|
|
total = total.add(quantity.multiply(price));
|
|
|
Double f1 = total.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
fee+=f1;
|
|
|
fee += f1;
|
|
|
}
|
|
|
logger.error("getInfoFee===========:" +fee);
|
|
|
logger.error("getInfoFee===========:" + fee);
|
|
|
}
|
|
|
return fee;
|
|
|
}
|
|
@ -2187,7 +2191,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
BigDecimal price = new BigDecimal(ins.getQuantity());
|
|
|
total = total.add(quantity.multiply(price));
|
|
|
Double f1 = total.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
|
|
|
fee+=f1;
|
|
|
fee += f1;
|
|
|
}
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
@ -2283,7 +2287,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
outpatientDao.save(outpatientDO);
|
|
|
|
|
|
result.put("code", 1);
|
|
|
result.put("voucherNo",voucherNo);
|
|
|
result.put("voucherNo", voucherNo);
|
|
|
result.put("mes", "开方提交成功");
|
|
|
|
|
|
return result;
|
|
@ -2441,7 +2445,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
* @param size
|
|
|
* @return
|
|
|
*/
|
|
|
public MixEnvelop findExpressageList(String status, String oneselfPickupFlg, String nameKey, String startTime, String endTime, Integer page, Integer size,String wxId) {
|
|
|
public MixEnvelop findExpressageList(String status, String oneselfPickupFlg, String nameKey, String startTime, String endTime, Integer page, Integer size, String wxId) {
|
|
|
String totalSql = "SELECT " +
|
|
|
" COUNT(1) AS total " +
|
|
|
" FROM " +
|
|
@ -2460,17 +2464,17 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
totalSql += " AND e.name like '%" + nameKey + "%'";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(startTime)) {
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
totalSql +=" and e.create_time >= to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
totalSql += " and e.create_time >= to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
totalSql += " AND e.create_time >='" + startTime + " 00:00:00'";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(endTime)) {
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
totalSql +=" and e.create_time <= to_date('" + endTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
totalSql += " and e.create_time <= to_date('" + endTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
totalSql += " AND e.create_time <='" + endTime + " 23:59:59'";
|
|
|
}
|
|
|
|
|
@ -2479,15 +2483,15 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
Long count = 0L;
|
|
|
if (rstotal != null && rstotal.size() > 0) {
|
|
|
count = Long.parseLong(rstotal.get(0).get("total").toString()) ;
|
|
|
count = Long.parseLong(rstotal.get(0).get("total").toString());
|
|
|
}
|
|
|
String sql = "SELECT " ;
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sql =sql+ "to_char(e.create_time,'YYYY-MM-DD hh24:mi:ss') AS \"createTime\",";
|
|
|
}else{
|
|
|
sql =sql+ "date_format(e.create_time,'%Y-%m-%d %H:%i:%S' ) AS \"createTime\",";
|
|
|
String sql = "SELECT ";
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sql = sql + "to_char(e.create_time,'YYYY-MM-DD hh24:mi:ss') AS \"createTime\",";
|
|
|
} else {
|
|
|
sql = sql + "date_format(e.create_time,'%Y-%m-%d %H:%i:%S' ) AS \"createTime\",";
|
|
|
}
|
|
|
sql=sql+" e.name as \"name\", " +
|
|
|
sql = sql + " e.name as \"name\", " +
|
|
|
" e.oneself_pickup_flg AS \"oneselfPickupFlg\", " +
|
|
|
" o.id AS \"outpatientId\", " +
|
|
|
" o.icd10_name AS \"icd10Name\", " +
|
|
@ -2510,27 +2514,27 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
sql += " AND e.name like '%" + nameKey + "%'";
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(startTime)) {
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sql +=" and e.create_time >= to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sql += " and e.create_time >= to_date('" + startTime + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sql += " AND e.create_time >='" + startTime + " 00:00:00'";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
if (StringUtils.isNotBlank(endTime)) {
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sql +=" and e.create_time <= to_date('" + endTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sql += " and e.create_time <= to_date('" + endTime + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sql += " AND e.create_time <='" + endTime + " 23:59:59'";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
/* sql += " LIMIT " + (page - 1) * size + "," + size + "";*/
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql,page,size);
|
|
|
for (Map<String,Object> map:list){
|
|
|
if (map.get("prescriptionId")!=null){
|
|
|
List<WlyyPrescriptionInfoDO> wlyyPrescriptionInfoDOS = prescriptionInfoDao.findByPrescriptionId(map.get("prescriptionId").toString(),1);
|
|
|
map.put("info",wlyyPrescriptionInfoDOS);
|
|
|
/* sql += " LIMIT " + (page - 1) * size + "," + size + "";*/
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, page, size);
|
|
|
for (Map<String, Object> map : list) {
|
|
|
if (map.get("prescriptionId") != null) {
|
|
|
List<WlyyPrescriptionInfoDO> wlyyPrescriptionInfoDOS = prescriptionInfoDao.findByPrescriptionId(map.get("prescriptionId").toString(), 1);
|
|
|
map.put("info", wlyyPrescriptionInfoDOS);
|
|
|
}
|
|
|
}
|
|
|
|
|
@ -2767,58 +2771,59 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 新排班号源详情
|
|
|
*
|
|
|
* @param id
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> findWorkTimeInfo(String id){
|
|
|
public List<Map<String, Object>> findWorkTimeInfo(String id) {
|
|
|
WlyyDoctorWorkTimeDO timeDO = doctorWorkTimeDao.findOne(id);
|
|
|
|
|
|
Long ss = timeDO.getEndTime().getTime()-timeDO.getStartTime().getTime();
|
|
|
Long s = ss/timeDO.getSourceNumber();
|
|
|
Long ss = timeDO.getEndTime().getTime() - timeDO.getStartTime().getTime();
|
|
|
Long s = ss / timeDO.getSourceNumber();
|
|
|
|
|
|
Calendar sc = Calendar.getInstance();
|
|
|
sc.setTime(timeDO.getStartTime());
|
|
|
|
|
|
List<Map<String,Object>> rs = new ArrayList<>();
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
|
|
|
//1.根据当前时间,去取已过时间的号源
|
|
|
while (sc.getTime().before(timeDO.getEndTime())){
|
|
|
if(new Date().before(sc.getTime())){
|
|
|
while (sc.getTime().before(timeDO.getEndTime())) {
|
|
|
if (new Date().before(sc.getTime())) {
|
|
|
break;
|
|
|
}
|
|
|
//加上时间间隔
|
|
|
Date temp =new Date();
|
|
|
temp.setTime(sc.getTime().getTime()+s);
|
|
|
Date temp = new Date();
|
|
|
temp.setTime(sc.getTime().getTime() + s);
|
|
|
sc.setTime(temp);
|
|
|
}
|
|
|
|
|
|
List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByDoctorAndWorkId(timeDO.getDoctor(),id);
|
|
|
List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByDoctorAndWorkId(timeDO.getDoctor(), id);
|
|
|
|
|
|
//2.根据时间间隔拆分号源
|
|
|
while (sc.getTime().before(timeDO.getEndTime())){
|
|
|
while (sc.getTime().before(timeDO.getEndTime())) {
|
|
|
|
|
|
Map<String,Object> t = new HashedMap();
|
|
|
t.put("startTime",DateUtil.dateToStr(sc.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
Map<String, Object> t = new HashedMap();
|
|
|
t.put("startTime", DateUtil.dateToStr(sc.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
//加上时间间隔
|
|
|
Date temp =new Date();
|
|
|
temp.setTime(sc.getTime().getTime()+s);
|
|
|
Date temp = new Date();
|
|
|
temp.setTime(sc.getTime().getTime() + s);
|
|
|
sc.setTime(temp);
|
|
|
//如果结束时间大于排班时间则不再拆分号源
|
|
|
if(sc.getTime().after(timeDO.getEndTime())){
|
|
|
if (sc.getTime().after(timeDO.getEndTime())) {
|
|
|
break;
|
|
|
}
|
|
|
t.put("endTime",DateUtil.dateToStr(sc.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
t.put("endTime", DateUtil.dateToStr(sc.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
|
//如果号源被预约了,标记为true
|
|
|
Boolean registered = false;
|
|
|
if(registerTimeDOs!=null&®isterTimeDOs.size()>0){
|
|
|
for(WlyyPatientRegisterTimeDO registerTimeDO : registerTimeDOs){
|
|
|
if(t.get("startTime").equals(DateUtil.dateToStr(registerTimeDO.getStartTime(),"yyyy-MM-dd HH:mm:ss"))){
|
|
|
if (registerTimeDOs != null && registerTimeDOs.size() > 0) {
|
|
|
for (WlyyPatientRegisterTimeDO registerTimeDO : registerTimeDOs) {
|
|
|
if (t.get("startTime").equals(DateUtil.dateToStr(registerTimeDO.getStartTime(), "yyyy-MM-dd HH:mm:ss"))) {
|
|
|
registered = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
t.put("registered",registered);
|
|
|
t.put("registered", registered);
|
|
|
rs.add(t);
|
|
|
}
|
|
|
|
|
@ -2827,62 +2832,63 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 计算号源数目
|
|
|
*
|
|
|
* @param id
|
|
|
* @return
|
|
|
*/
|
|
|
public Integer findWorkTimeInfoCout(String id){
|
|
|
public Integer findWorkTimeInfoCout(String id) {
|
|
|
WlyyDoctorWorkTimeDO timeDO = doctorWorkTimeDao.findOne(id);
|
|
|
|
|
|
if(timeDO.getSourceNumber()==null||timeDO.getStartTime()==null||timeDO.getEndTime()==null){
|
|
|
if (timeDO.getSourceNumber() == null || timeDO.getStartTime() == null || timeDO.getEndTime() == null) {
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
Long ss = timeDO.getEndTime().getTime()-timeDO.getStartTime().getTime();
|
|
|
Long s = ss/timeDO.getSourceNumber();
|
|
|
Long ss = timeDO.getEndTime().getTime() - timeDO.getStartTime().getTime();
|
|
|
Long s = ss / timeDO.getSourceNumber();
|
|
|
|
|
|
Calendar sc = Calendar.getInstance();
|
|
|
sc.setTime(timeDO.getStartTime());
|
|
|
|
|
|
List<Map<String,Object>> rs = new ArrayList<>();
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
|
|
|
//1.根据当前时间,去取已过时间的号源
|
|
|
while (sc.getTime().before(timeDO.getEndTime())){
|
|
|
if(new Date().before(sc.getTime())){
|
|
|
while (sc.getTime().before(timeDO.getEndTime())) {
|
|
|
if (new Date().before(sc.getTime())) {
|
|
|
break;
|
|
|
}
|
|
|
//加上时间间隔
|
|
|
Date temp =new Date();
|
|
|
temp.setTime(sc.getTime().getTime()+s);
|
|
|
Date temp = new Date();
|
|
|
temp.setTime(sc.getTime().getTime() + s);
|
|
|
sc.setTime(temp);
|
|
|
}
|
|
|
|
|
|
List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByDoctorAndWorkId(timeDO.getDoctor(),id);
|
|
|
List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByDoctorAndWorkId(timeDO.getDoctor(), id);
|
|
|
|
|
|
//2.根据时间间隔拆分号源
|
|
|
while (sc.getTime().before(timeDO.getEndTime())){
|
|
|
while (sc.getTime().before(timeDO.getEndTime())) {
|
|
|
|
|
|
Map<String,Object> t = new HashedMap();
|
|
|
t.put("startTime",DateUtil.dateToStr(sc.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
Map<String, Object> t = new HashedMap();
|
|
|
t.put("startTime", DateUtil.dateToStr(sc.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
//加上时间间隔
|
|
|
Date temp =new Date();
|
|
|
temp.setTime(sc.getTime().getTime()+s);
|
|
|
Date temp = new Date();
|
|
|
temp.setTime(sc.getTime().getTime() + s);
|
|
|
sc.setTime(temp);
|
|
|
//如果结束时间大于排班时间则不再拆分号源
|
|
|
if(sc.getTime().after(timeDO.getEndTime())){
|
|
|
if (sc.getTime().after(timeDO.getEndTime())) {
|
|
|
break;
|
|
|
}
|
|
|
t.put("endTime",DateUtil.dateToStr(sc.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
t.put("endTime", DateUtil.dateToStr(sc.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
|
//如果号源被预约了,标记为true
|
|
|
Boolean registered = false;
|
|
|
if(registerTimeDOs!=null&®isterTimeDOs.size()>0){
|
|
|
for(WlyyPatientRegisterTimeDO registerTimeDO : registerTimeDOs){
|
|
|
if(t.get("startTime").equals(DateUtil.dateToStr(registerTimeDO.getStartTime(),"yyyy-MM-dd HH:mm:ss"))){
|
|
|
if (registerTimeDOs != null && registerTimeDOs.size() > 0) {
|
|
|
for (WlyyPatientRegisterTimeDO registerTimeDO : registerTimeDOs) {
|
|
|
if (t.get("startTime").equals(DateUtil.dateToStr(registerTimeDO.getStartTime(), "yyyy-MM-dd HH:mm:ss"))) {
|
|
|
registered = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
if(!registered){
|
|
|
if (!registered) {
|
|
|
rs.add(t);
|
|
|
}
|
|
|
}
|
|
@ -2890,95 +2896,95 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}
|
|
|
|
|
|
@Deprecated
|
|
|
public List<Map<String,Object>> findWorkTimeInfoOld(String id){
|
|
|
public List<Map<String, Object>> findWorkTimeInfoOld(String id) {
|
|
|
WlyyDoctorWorkTimeDO timeDO = doctorWorkTimeDao.findOne(id);
|
|
|
Calendar sc = Calendar.getInstance();
|
|
|
sc.setTime(timeDO.getStartTime());
|
|
|
|
|
|
List<Map<String,Object>> rs = new ArrayList<>();
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
|
|
|
//1.根据当前时间,去取已过时间的号源
|
|
|
while (sc.getTime().before(timeDO.getEndTime())){
|
|
|
if(new Date().before(sc.getTime())){
|
|
|
while (sc.getTime().before(timeDO.getEndTime())) {
|
|
|
if (new Date().before(sc.getTime())) {
|
|
|
break;
|
|
|
}
|
|
|
//加上时间间隔
|
|
|
sc.add(Calendar.MINUTE,timeDO.getTimeInterval());
|
|
|
sc.add(Calendar.MINUTE, timeDO.getTimeInterval());
|
|
|
}
|
|
|
|
|
|
List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByDoctorAndWorkId(timeDO.getDoctor(),id);
|
|
|
List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByDoctorAndWorkId(timeDO.getDoctor(), id);
|
|
|
|
|
|
//2.根据时间间隔拆分号源
|
|
|
while (sc.getTime().before(timeDO.getEndTime())){
|
|
|
while (sc.getTime().before(timeDO.getEndTime())) {
|
|
|
|
|
|
Map<String,Object> t = new HashedMap();
|
|
|
t.put("startTime",DateUtil.dateToStr(sc.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
Map<String, Object> t = new HashedMap();
|
|
|
t.put("startTime", DateUtil.dateToStr(sc.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
//加上时间间隔
|
|
|
sc.add(Calendar.MINUTE,timeDO.getTimeInterval());
|
|
|
sc.add(Calendar.MINUTE, timeDO.getTimeInterval());
|
|
|
//如果结束时间大于排班时间则不再拆分号源
|
|
|
if(sc.getTime().after(timeDO.getEndTime())){
|
|
|
if (sc.getTime().after(timeDO.getEndTime())) {
|
|
|
break;
|
|
|
}
|
|
|
t.put("endTime",DateUtil.dateToStr(sc.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
t.put("endTime", DateUtil.dateToStr(sc.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
|
//如果号源被预约了,标记为true
|
|
|
Boolean registered = false;
|
|
|
if(registerTimeDOs!=null&®isterTimeDOs.size()>0){
|
|
|
for(WlyyPatientRegisterTimeDO registerTimeDO : registerTimeDOs){
|
|
|
if(t.get("startTime").equals(DateUtil.dateToStr(registerTimeDO.getStartTime(),"yyyy-MM-dd HH:mm:ss"))){
|
|
|
if (registerTimeDOs != null && registerTimeDOs.size() > 0) {
|
|
|
for (WlyyPatientRegisterTimeDO registerTimeDO : registerTimeDOs) {
|
|
|
if (t.get("startTime").equals(DateUtil.dateToStr(registerTimeDO.getStartTime(), "yyyy-MM-dd HH:mm:ss"))) {
|
|
|
registered = true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
t.put("registered",registered);
|
|
|
t.put("registered", registered);
|
|
|
rs.add(t);
|
|
|
}
|
|
|
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public Integer findWorkTimeCount(String id){
|
|
|
public Integer findWorkTimeCount(String id) {
|
|
|
WlyyDoctorWorkTimeDO timeDO = doctorWorkTimeDao.findOne(id);
|
|
|
Calendar sc = Calendar.getInstance();
|
|
|
sc.setTime(timeDO.getStartTime());
|
|
|
|
|
|
List<Map<String,Object>> rs = new ArrayList<>();
|
|
|
List<Map<String, Object>> rs = new ArrayList<>();
|
|
|
|
|
|
//1.根据当前时间,去取已过时间的号源
|
|
|
while (sc.getTime().before(timeDO.getEndTime())){
|
|
|
if(new Date().before(sc.getTime())){
|
|
|
while (sc.getTime().before(timeDO.getEndTime())) {
|
|
|
if (new Date().before(sc.getTime())) {
|
|
|
break;
|
|
|
}
|
|
|
//加上时间间隔
|
|
|
sc.add(Calendar.MINUTE,timeDO.getTimeInterval());
|
|
|
sc.add(Calendar.MINUTE, timeDO.getTimeInterval());
|
|
|
}
|
|
|
|
|
|
List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByDoctorAndWorkId(timeDO.getDoctor(),id);
|
|
|
List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByDoctorAndWorkId(timeDO.getDoctor(), id);
|
|
|
|
|
|
//2.根据时间间隔拆分号源
|
|
|
while (sc.getTime().before(timeDO.getEndTime())){
|
|
|
while (sc.getTime().before(timeDO.getEndTime())) {
|
|
|
|
|
|
Map<String,Object> t = new HashedMap();
|
|
|
t.put("startTime",DateUtil.dateToStr(sc.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
Map<String, Object> t = new HashedMap();
|
|
|
t.put("startTime", DateUtil.dateToStr(sc.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
//加上时间间隔
|
|
|
sc.add(Calendar.MINUTE,timeDO.getTimeInterval());
|
|
|
sc.add(Calendar.MINUTE, timeDO.getTimeInterval());
|
|
|
|
|
|
if(sc.getTime().after(timeDO.getEndTime())){
|
|
|
if (sc.getTime().after(timeDO.getEndTime())) {
|
|
|
break;
|
|
|
}
|
|
|
t.put("endTime",DateUtil.dateToStr(sc.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
t.put("endTime", DateUtil.dateToStr(sc.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
|
if(registerTimeDOs!=null&®isterTimeDOs.size()>0){
|
|
|
if (registerTimeDOs != null && registerTimeDOs.size() > 0) {
|
|
|
Boolean registered = false;
|
|
|
for(WlyyPatientRegisterTimeDO registerTimeDO : registerTimeDOs){
|
|
|
if(t.get("startTime").equals(DateUtil.dateToStr(registerTimeDO.getStartTime(),"yyyy-MM-dd HH:mm:ss"))){
|
|
|
for (WlyyPatientRegisterTimeDO registerTimeDO : registerTimeDOs) {
|
|
|
if (t.get("startTime").equals(DateUtil.dateToStr(registerTimeDO.getStartTime(), "yyyy-MM-dd HH:mm:ss"))) {
|
|
|
registered = true;
|
|
|
}
|
|
|
}
|
|
|
if(!registered){
|
|
|
if (!registered) {
|
|
|
rs.add(t);
|
|
|
}
|
|
|
}else {
|
|
|
} else {
|
|
|
rs.add(t);
|
|
|
}
|
|
|
}
|
|
@ -2986,50 +2992,50 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
return rs.size();
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> findDoctorInfo(String doctor,String withWork){
|
|
|
public Map<String, Object> findDoctorInfo(String doctor, String withWork) {
|
|
|
BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
|
|
|
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
if(doctorDO!=null){
|
|
|
rs.put("doctor",doctor);
|
|
|
rs.put("doctorSex",doctorDO.getSex());
|
|
|
if(StringUtils.isNoneBlank(doctorDO.getIdcard())){
|
|
|
rs.put("doctorAge",IdCardUtil.getAgeForIdcard(doctorDO.getIdcard()));
|
|
|
}else{
|
|
|
rs.put("doctorAge","");
|
|
|
}
|
|
|
rs.put("doctor",doctorDO.getName());
|
|
|
rs.put("doctorMobile",doctorDO.getMobile());
|
|
|
rs.put("fee",doctorDO.getFee());
|
|
|
rs.put("jobTitleCode",doctorDO.getJobTitleCode());
|
|
|
rs.put("jobTitleName",doctorDO.getJobTitleName());
|
|
|
rs.put("chargeType",doctorDO.getChargeType());
|
|
|
rs.put("photo",doctorDO.getPhoto());
|
|
|
rs.put("consultStatus",doctorDO.getConsultStatus());
|
|
|
rs.put("outpatientType",doctorDO.getOutpatientType());
|
|
|
rs.put("expertise",doctorDO.getExpertise());
|
|
|
rs.put("introduce",doctorDO.getIntroduce());
|
|
|
rs.put("consultStatus",doctorDO.getConsultStatus());// 咨询在线状态
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
if (doctorDO != null) {
|
|
|
rs.put("doctor", doctor);
|
|
|
rs.put("doctorSex", doctorDO.getSex());
|
|
|
if (StringUtils.isNoneBlank(doctorDO.getIdcard())) {
|
|
|
rs.put("doctorAge", IdCardUtil.getAgeForIdcard(doctorDO.getIdcard()));
|
|
|
} else {
|
|
|
rs.put("doctorAge", "");
|
|
|
}
|
|
|
rs.put("doctor", doctorDO.getName());
|
|
|
rs.put("doctorMobile", doctorDO.getMobile());
|
|
|
rs.put("fee", doctorDO.getFee());
|
|
|
rs.put("jobTitleCode", doctorDO.getJobTitleCode());
|
|
|
rs.put("jobTitleName", doctorDO.getJobTitleName());
|
|
|
rs.put("chargeType", doctorDO.getChargeType());
|
|
|
rs.put("photo", doctorDO.getPhoto());
|
|
|
rs.put("consultStatus", doctorDO.getConsultStatus());
|
|
|
rs.put("outpatientType", doctorDO.getOutpatientType());
|
|
|
rs.put("expertise", doctorDO.getExpertise());
|
|
|
rs.put("introduce", doctorDO.getIntroduce());
|
|
|
rs.put("consultStatus", doctorDO.getConsultStatus());// 咨询在线状态
|
|
|
|
|
|
//机构科室信息
|
|
|
List<BaseDoctorHospitalDO> hospitalDOs = baseDoctorHospitalDao.findByDoctorCode(doctorDO.getId());
|
|
|
if(hospitalDOs!=null&&hospitalDOs.size()>0){
|
|
|
rs.put("hospital",hospitalDOs.get(0));
|
|
|
List<BaseDoctorHospitalDO> hospitalDOs = baseDoctorHospitalDao.findByDoctorCode(doctorDO.getId());
|
|
|
if (hospitalDOs != null && hospitalDOs.size() > 0) {
|
|
|
rs.put("hospital", hospitalDOs.get(0));
|
|
|
BaseOrgDO org = baseOrgDao.findByCode(hospitalDOs.get(0).getOrgCode());
|
|
|
rs.put("winNo",org.getWinNo());
|
|
|
rs.put("deptName",hospitalDOs.get(0).getDeptName());
|
|
|
rs.put("dept",hospitalDOs.get(0).getDeptCode());
|
|
|
rs.put("winNo", org.getWinNo());
|
|
|
rs.put("deptName", hospitalDOs.get(0).getDeptName());
|
|
|
rs.put("dept", hospitalDOs.get(0).getDeptCode());
|
|
|
|
|
|
if(StringUtils.isNotBlank(withWork)&&"1".equals(withWork)){
|
|
|
List<WlyyDoctorWorkTimeVO> times = findDoctorWorkTime(doctor,hospitalDOs.get(0).getOrgCode());
|
|
|
rs.put("workTime",times);
|
|
|
if (StringUtils.isNotBlank(withWork) && "1".equals(withWork)) {
|
|
|
List<WlyyDoctorWorkTimeVO> times = findDoctorWorkTime(doctor, hospitalDOs.get(0).getOrgCode());
|
|
|
rs.put("workTime", times);
|
|
|
}
|
|
|
}else{
|
|
|
rs.put("hospital",null);
|
|
|
rs.put("winNo",null);
|
|
|
rs.put("deptName",null);
|
|
|
rs.put("dept",null);
|
|
|
rs.put("workTime",null);
|
|
|
} else {
|
|
|
rs.put("hospital", null);
|
|
|
rs.put("winNo", null);
|
|
|
rs.put("deptName", null);
|
|
|
rs.put("dept", null);
|
|
|
rs.put("workTime", null);
|
|
|
}
|
|
|
|
|
|
|
|
@ -3041,27 +3047,27 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" base_doctor_role r " +
|
|
|
" JOIN base_doctor_role_dict t ON t.code = r.role_code " +
|
|
|
" WHERE " +
|
|
|
" r.doctor_code = '"+doctor+"'";
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
" r.doctor_code = '" + doctor + "'";
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
if(list!=null&&list.size()>0){
|
|
|
rs.put("roles",list);
|
|
|
}else{
|
|
|
rs.put("roles",null);
|
|
|
if (list != null && list.size() > 0) {
|
|
|
rs.put("roles", list);
|
|
|
} else {
|
|
|
rs.put("roles", null);
|
|
|
}
|
|
|
//医生预约量
|
|
|
List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByDoctor(doctor);
|
|
|
if(registerTimeDOs!=null&®isterTimeDOs.size()>0){
|
|
|
rs.put("registerCount",registerTimeDOs.size());
|
|
|
}else{
|
|
|
rs.put("registerCount",0);
|
|
|
List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByDoctor(doctor);
|
|
|
if (registerTimeDOs != null && registerTimeDOs.size() > 0) {
|
|
|
rs.put("registerCount", registerTimeDOs.size());
|
|
|
} else {
|
|
|
rs.put("registerCount", 0);
|
|
|
}
|
|
|
//医生问诊量
|
|
|
List<WlyyOutpatientDO> wlyyOutpatientDOs = outpatientDao.findByDoctorList(doctor);
|
|
|
if(wlyyOutpatientDOs!=null&&wlyyOutpatientDOs.size()>0){
|
|
|
rs.put("outpatientCount",wlyyOutpatientDOs.size());
|
|
|
}else{
|
|
|
rs.put("outpatientCount",0);
|
|
|
if (wlyyOutpatientDOs != null && wlyyOutpatientDOs.size() > 0) {
|
|
|
rs.put("outpatientCount", wlyyOutpatientDOs.size());
|
|
|
} else {
|
|
|
rs.put("outpatientCount", 0);
|
|
|
}
|
|
|
//
|
|
|
// //协同门诊量
|
|
@ -3069,21 +3075,21 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
// rs.put("coordinationCout",coordinationCout);
|
|
|
//医生关注
|
|
|
List<BaseDoctorPatientFollowDO> doctorPatientFollowDOS = baseOrgPatientDao.findByDoctor(doctor);
|
|
|
if (doctorPatientFollowDOS!=null&&doctorPatientFollowDOS.size()>0){
|
|
|
rs.put("attention","1");
|
|
|
}else {
|
|
|
rs.put("attention","0");
|
|
|
if (doctorPatientFollowDOS != null && doctorPatientFollowDOS.size() > 0) {
|
|
|
rs.put("attention", "1");
|
|
|
} else {
|
|
|
rs.put("attention", "0");
|
|
|
}
|
|
|
|
|
|
|
|
|
//专家咨询
|
|
|
String zjCountsql = "SELECT id AS \"id\" FROM wlyy_consult_team WHERE doctor='"+doctor+"' AND (type=1 OR type=15)";
|
|
|
List<Map<String,Object>> zjList = jdbcTemplate.queryForList(zjCountsql);
|
|
|
String zjCountsql = "SELECT id AS \"id\" FROM wlyy_consult_team WHERE doctor='" + doctor + "' AND (type=1 OR type=15)";
|
|
|
List<Map<String, Object>> zjList = jdbcTemplate.queryForList(zjCountsql);
|
|
|
|
|
|
if(zjList!=null&&zjList.size()>0){
|
|
|
rs.put("zjCount",zjList.size());
|
|
|
}else{
|
|
|
rs.put("zjCount",0);
|
|
|
if (zjList != null && zjList.size() > 0) {
|
|
|
rs.put("zjCount", zjList.size());
|
|
|
} else {
|
|
|
rs.put("zjCount", 0);
|
|
|
}
|
|
|
|
|
|
//查询医生各项评价平均分
|
|
@ -3093,24 +3099,24 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"FROM base_evaluate a,base_evaluate_score b " +
|
|
|
"WHERE " +
|
|
|
"a.relation_code=b.id " +
|
|
|
"AND b.doctor='"+doctor+"' " +
|
|
|
"AND b.doctor='" + doctor + "' " +
|
|
|
"GROUP BY a.score_type ORDER BY a.score_type ASC ";
|
|
|
List<Map<String,Object>> listscore = jdbcTemplate.queryForList(sqlscore);
|
|
|
List<Map<String, Object>> listscore = jdbcTemplate.queryForList(sqlscore);
|
|
|
|
|
|
Double doctorScore = new Double("0");
|
|
|
|
|
|
if(listscore!=null&&listscore.size()>0){
|
|
|
for(Map<String,Object> _listscore :listscore){
|
|
|
if (listscore != null && listscore.size() > 0) {
|
|
|
for (Map<String, Object> _listscore : listscore) {
|
|
|
doctorScore += Double.parseDouble(_listscore.get("score").toString());
|
|
|
}
|
|
|
}
|
|
|
doctorScore = doctorScore/3;
|
|
|
rs.put("doctorScore",doctorScore);
|
|
|
doctorScore = doctorScore / 3;
|
|
|
rs.put("doctorScore", doctorScore);
|
|
|
|
|
|
if(listscore!=null&&listscore.size()>0){
|
|
|
rs.put("scoreDoctor",listscore);
|
|
|
}else{
|
|
|
rs.put("scoreDoctor",null);
|
|
|
if (listscore != null && listscore.size() > 0) {
|
|
|
rs.put("scoreDoctor", listscore);
|
|
|
} else {
|
|
|
rs.put("scoreDoctor", null);
|
|
|
}
|
|
|
|
|
|
//查询评价明细
|
|
@ -3128,91 +3134,91 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"FROM " +
|
|
|
"base_evaluate a " +
|
|
|
"LEFT JOIN base_evaluate_score b ON b.id=a.relation_code " +
|
|
|
"LEFT JOIN wlyy_consult_team c ON c.consult=b.relation_code AND c.doctor='"+doctor+"' " +
|
|
|
"WHERE a.relation_code=b.id AND b.doctor='"+doctor+"' ";
|
|
|
List<Map<String,Object>> scoreList = jdbcTemplate.queryForList(sqlScoreList);
|
|
|
"LEFT JOIN wlyy_consult_team c ON c.consult=b.relation_code AND c.doctor='" + doctor + "' " +
|
|
|
"WHERE a.relation_code=b.id AND b.doctor='" + doctor + "' ";
|
|
|
List<Map<String, Object>> scoreList = jdbcTemplate.queryForList(sqlScoreList);
|
|
|
|
|
|
if(scoreList!=null&&scoreList.size()>0){
|
|
|
if (scoreList != null && scoreList.size() > 0) {
|
|
|
|
|
|
// Set<String> datelist = new HashSet<>();
|
|
|
|
|
|
HashMap<String,List<Map<String,Object>>> waitinglist = new HashMap<>();
|
|
|
HashMap<String, List<Map<String, Object>>> waitinglist = new HashMap<>();
|
|
|
|
|
|
if(scoreList!=null&&scoreList.size()>0){
|
|
|
for(Map<String,Object> scorepatient :scoreList){
|
|
|
String id = (String)scorepatient.get("id");
|
|
|
if (scoreList != null && scoreList.size() > 0) {
|
|
|
for (Map<String, Object> scorepatient : scoreList) {
|
|
|
String id = (String) scorepatient.get("id");
|
|
|
|
|
|
if(id == null){
|
|
|
if (id == null) {
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
if(waitinglist.keySet().contains(id)){
|
|
|
if (waitinglist.keySet().contains(id)) {
|
|
|
waitinglist.get(id).add(scorepatient);
|
|
|
}else{
|
|
|
List<Map<String,Object>> _cu = new ArrayList<>();
|
|
|
} else {
|
|
|
List<Map<String, Object>> _cu = new ArrayList<>();
|
|
|
_cu.add(scorepatient);
|
|
|
waitinglist.put(id,_cu);
|
|
|
waitinglist.put(id, _cu);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
rs.put("scoreList",waitinglist);
|
|
|
}else{
|
|
|
rs.put("scoreList",null);
|
|
|
rs.put("scoreList", waitinglist);
|
|
|
} else {
|
|
|
rs.put("scoreList", null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> findDoctorBaseInfo(String doctor){
|
|
|
public Map<String, Object> findDoctorBaseInfo(String doctor) {
|
|
|
BaseDoctorDO doctorDO = baseDoctorDao.findById(doctor);
|
|
|
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
if(doctorDO!=null){
|
|
|
rs.put("doctor",doctor);
|
|
|
rs.put("doctor",doctorDO.getName());
|
|
|
rs.put("jobTitleCode",doctorDO.getJobTitleCode());
|
|
|
rs.put("jobTitleName",doctorDO.getJobTitleName());
|
|
|
rs.put("chargeType",doctorDO.getChargeType());
|
|
|
rs.put("photo",doctorDO.getPhoto());
|
|
|
rs.put("consultStatus",doctorDO.getConsultStatus());
|
|
|
rs.put("outpatientType",doctorDO.getOutpatientType());
|
|
|
rs.put("expertise",doctorDO.getExpertise());
|
|
|
rs.put("introduce",doctorDO.getIntroduce());
|
|
|
rs.put("townCode",doctorDO.getTownCode());
|
|
|
rs.put("townName",doctorDO.getTownName());
|
|
|
rs.put("consultStatus",doctorDO.getConsultStatus());// 咨询在线状态
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
if (doctorDO != null) {
|
|
|
rs.put("doctor", doctor);
|
|
|
rs.put("doctor", doctorDO.getName());
|
|
|
rs.put("jobTitleCode", doctorDO.getJobTitleCode());
|
|
|
rs.put("jobTitleName", doctorDO.getJobTitleName());
|
|
|
rs.put("chargeType", doctorDO.getChargeType());
|
|
|
rs.put("photo", doctorDO.getPhoto());
|
|
|
rs.put("consultStatus", doctorDO.getConsultStatus());
|
|
|
rs.put("outpatientType", doctorDO.getOutpatientType());
|
|
|
rs.put("expertise", doctorDO.getExpertise());
|
|
|
rs.put("introduce", doctorDO.getIntroduce());
|
|
|
rs.put("townCode", doctorDO.getTownCode());
|
|
|
rs.put("townName", doctorDO.getTownName());
|
|
|
rs.put("consultStatus", doctorDO.getConsultStatus());// 咨询在线状态
|
|
|
|
|
|
//机构科室信息
|
|
|
List<BaseDoctorHospitalDO> hospitalDOs = baseDoctorHospitalDao.findByDoctorCode(doctorDO.getId());
|
|
|
List<BaseDoctorHospitalDO> hospitalDOs = baseDoctorHospitalDao.findByDoctorCode(doctorDO.getId());
|
|
|
List<BaseDoctorHospitalDO> hospitalDOList = new ArrayList<>();
|
|
|
for (BaseDoctorHospitalDO doctorHospitalDO:hospitalDOs){
|
|
|
for (BaseDoctorHospitalDO doctorHospitalDO : hospitalDOs) {
|
|
|
String orgCode = doctorHospitalDO.getOrgCode();
|
|
|
BaseOrgDO org = baseOrgDao.findByCode(orgCode);
|
|
|
if (org!=null){
|
|
|
if (org != null) {
|
|
|
doctorHospitalDO.setWinNo(org.getWinNo());
|
|
|
doctorHospitalDO.setHisId(org.getHisId());
|
|
|
hospitalDOList.add(doctorHospitalDO);
|
|
|
}
|
|
|
}
|
|
|
if(hospitalDOList!=null&&hospitalDOList.size()>0){
|
|
|
rs.put("hospital",hospitalDOList.get(0));
|
|
|
if (hospitalDOList != null && hospitalDOList.size() > 0) {
|
|
|
rs.put("hospital", hospitalDOList.get(0));
|
|
|
BaseOrgDO org = baseOrgDao.findByCode(hospitalDOList.get(0).getOrgCode());
|
|
|
if(org!=null){
|
|
|
rs.put("winNo",org.getWinNo());
|
|
|
rs.put("deptName",hospitalDOList.get(0).getDeptName());
|
|
|
rs.put("deptCode",hospitalDOList.get(0).getDeptCode());
|
|
|
if (org != null) {
|
|
|
rs.put("winNo", org.getWinNo());
|
|
|
rs.put("deptName", hospitalDOList.get(0).getDeptName());
|
|
|
rs.put("deptCode", hospitalDOList.get(0).getDeptCode());
|
|
|
}
|
|
|
}else{
|
|
|
rs.put("hospital",null);
|
|
|
rs.put("winNo",null);
|
|
|
rs.put("deptName",null);
|
|
|
rs.put("deptCode",null);
|
|
|
} else {
|
|
|
rs.put("hospital", null);
|
|
|
rs.put("winNo", null);
|
|
|
rs.put("deptName", null);
|
|
|
rs.put("deptCode", null);
|
|
|
}
|
|
|
|
|
|
|
|
|
//多科室兼容
|
|
|
rs.put("hospitalList",hospitalDOList);
|
|
|
rs.put("hospitalList", hospitalDOList);
|
|
|
|
|
|
|
|
|
//医生角色
|
|
@ -3223,20 +3229,20 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" base_doctor_role r " +
|
|
|
" JOIN base_doctor_role_dict t ON t.code = r.role_code " +
|
|
|
" WHERE " +
|
|
|
" r.doctor_code = '"+doctor+"'";
|
|
|
" r.doctor_code = '" + doctor + "'";
|
|
|
logger.info(sql);
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
if(list!=null&&list.size()>0){
|
|
|
rs.put("roles",list);
|
|
|
}else{
|
|
|
rs.put("roles",null);
|
|
|
if (list != null && list.size() > 0) {
|
|
|
rs.put("roles", list);
|
|
|
} else {
|
|
|
rs.put("roles", null);
|
|
|
}
|
|
|
|
|
|
WlyyHospitalSysDictDO wlyyHospitalSysDictDO = wlyyHospitalSysDictDao.findById("pwOverDue");
|
|
|
if (wlyyHospitalSysDictDO.getPyCode().equalsIgnoreCase("open")){
|
|
|
if (wlyyHospitalSysDictDO.getPyCode().equalsIgnoreCase("open")) {
|
|
|
//密码过期
|
|
|
rs.put("authPw",baseDoctorService.findDoctorPwlimitDate(doctor));
|
|
|
rs.put("authPw", baseDoctorService.findDoctorPwlimitDate(doctor));
|
|
|
}
|
|
|
|
|
|
}
|
|
@ -3246,25 +3252,26 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 居民取消复诊或者医生拒绝接诊
|
|
|
*
|
|
|
* @param outPatientId
|
|
|
* @param cancelType
|
|
|
* @param cancelValue
|
|
|
* @param cancelRemark
|
|
|
* @param operator 1居民 2医生
|
|
|
* @param operator 1居民 2医生
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String,Object> cancelOutPatient(String outPatientId,String cancelType,String cancelValue,String cancelRemark,Integer operator,String wxId) {
|
|
|
public Map<String, Object> cancelOutPatient(String outPatientId, String cancelType, String cancelValue, String cancelRemark, Integer operator, String wxId) {
|
|
|
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
//判断医生是否接诊
|
|
|
List<WlyyHospitalWaitingRoomDO> roomDOs =hospitalWaitingRoomDao.findByOutpatientId(outPatientId);
|
|
|
if(roomDOs!=null&&roomDOs.size()>0){
|
|
|
for(WlyyHospitalWaitingRoomDO roomDO:roomDOs){
|
|
|
if(roomDO.getVisitStatus()==2){
|
|
|
rs.put("code",-1);
|
|
|
rs.put("mes","医生已经接诊,无法取消");
|
|
|
List<WlyyHospitalWaitingRoomDO> roomDOs = hospitalWaitingRoomDao.findByOutpatientId(outPatientId);
|
|
|
if (roomDOs != null && roomDOs.size() > 0) {
|
|
|
for (WlyyHospitalWaitingRoomDO roomDO : roomDOs) {
|
|
|
if (roomDO.getVisitStatus() == 2) {
|
|
|
rs.put("code", -1);
|
|
|
rs.put("mes", "医生已经接诊,无法取消");
|
|
|
return rs;
|
|
|
}else{
|
|
|
} else {
|
|
|
roomDO.setVisitStatus(-1);
|
|
|
hospitalWaitingRoomDao.save(roomDO);
|
|
|
}
|
|
@ -3275,13 +3282,13 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
WlyyOutpatientDO wlyyOutpatientDO = outpatientDao.findOne(outPatientId);
|
|
|
wlyyOutpatientDO.setStatus("-1");
|
|
|
String description = null;
|
|
|
if (1 == operator){
|
|
|
if (1 == operator) {
|
|
|
//居民取消
|
|
|
wlyyOutpatientDO.setPatientCancelRemark(cancelRemark);
|
|
|
wlyyOutpatientDO.setPatientCancelType(cancelType);
|
|
|
wlyyOutpatientDO.setPatientCancelValue(cancelValue);
|
|
|
description = "居民取消";
|
|
|
}else{
|
|
|
} else {
|
|
|
//医生拒绝接诊
|
|
|
wlyyOutpatientDO.setDoctorCancelRemark(cancelRemark);
|
|
|
wlyyOutpatientDO.setDoctorCancelType(cancelType);
|
|
@ -3301,22 +3308,22 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
|
|
|
try {
|
|
|
data.put("name",wlyyOutpatientDO.getPatientName());
|
|
|
data.put("age",IdCardUtil.getAgeForIdcard(wlyyOutpatientDO.getIdcard()));
|
|
|
data.put("gender",IdCardUtil.getSexForIdcard(wlyyOutpatientDO.getIdcard()));
|
|
|
data.put("question",wlyyOutpatientDO.getIcd10Name());
|
|
|
String msg="";
|
|
|
if ("1".equalsIgnoreCase(wlyyOutpatientDO.getType())){
|
|
|
data.put("type","9");
|
|
|
msg+=wlyyOutpatientDO.getPatientName()+",您好! 您有一个图文复诊已被医生取消,取消原因:"+cancelValue+"。取消说明:"+cancelRemark+"。";
|
|
|
sendWxTemplateMsg(wechatId,wlyyOutpatientDO,"9");
|
|
|
data.put("name", wlyyOutpatientDO.getPatientName());
|
|
|
data.put("age", IdCardUtil.getAgeForIdcard(wlyyOutpatientDO.getIdcard()));
|
|
|
data.put("gender", IdCardUtil.getSexForIdcard(wlyyOutpatientDO.getIdcard()));
|
|
|
data.put("question", wlyyOutpatientDO.getIcd10Name());
|
|
|
String msg = "";
|
|
|
if ("1".equalsIgnoreCase(wlyyOutpatientDO.getType())) {
|
|
|
data.put("type", "9");
|
|
|
msg += wlyyOutpatientDO.getPatientName() + ",您好! 您有一个图文复诊已被医生取消,取消原因:" + cancelValue + "。取消说明:" + cancelRemark + "。";
|
|
|
sendWxTemplateMsg(wechatId, wlyyOutpatientDO.getId(), "9", "doctorRefuse", null);
|
|
|
}
|
|
|
if ("2".equalsIgnoreCase(wlyyOutpatientDO.getType())){
|
|
|
data.put("type","16");
|
|
|
msg+=wlyyOutpatientDO.getPatientName()+",您好! 您有一个视频复诊已被医生取消,取消原因:"+cancelValue+"。取消说明:"+cancelRemark+"。";
|
|
|
sendWxTemplateMsg(wechatId,wlyyOutpatientDO,"16");
|
|
|
if ("2".equalsIgnoreCase(wlyyOutpatientDO.getType())) {
|
|
|
data.put("type", "16");
|
|
|
msg += wlyyOutpatientDO.getPatientName() + ",您好! 您有一个视频复诊已被医生取消,取消原因:" + cancelValue + "。取消说明:" + cancelRemark + "。";
|
|
|
sendWxTemplateMsg(wechatId, wlyyOutpatientDO.getId(), "16", "doctorRefuse", null);
|
|
|
}
|
|
|
data.put("msg",msg);
|
|
|
data.put("msg", msg);
|
|
|
messageDO.setData(data.toString());
|
|
|
systemMessageService.saveMessage(messageDO);
|
|
|
} catch (Exception e) {
|
|
@ -3324,8 +3331,8 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}
|
|
|
//推送消息到眼科通
|
|
|
BasePatientDO patient = basePatientDao.findById(wlyyOutpatientDO.getPatient());
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wxId)){
|
|
|
ykyyService.pushNotificationToYktPatient(patient.getYktId(),messageDO.getTitle(),data.get("msg").toString());
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wxId)) {
|
|
|
ykyyService.pushNotificationToYktPatient(patient.getYktId(), messageDO.getTitle(), data.get("msg").toString());
|
|
|
}
|
|
|
|
|
|
}
|
|
@ -3334,72 +3341,209 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
//删除门诊号源
|
|
|
List<WlyyPatientRegisterTimeDO> list = patientRegisterTimeDao.findByOutpatientId(wlyyOutpatientDO.getId());
|
|
|
if(list!=null&&list.size()>0){
|
|
|
if (list != null && list.size() > 0) {
|
|
|
patientRegisterTimeDao.delete(list);
|
|
|
}
|
|
|
BusinessOrderDO businessOrderDO = businessOrderDao.selectByRelationCode(outPatientId);
|
|
|
try {
|
|
|
if (wxId.equalsIgnoreCase("xm_ykyy_wx")){
|
|
|
businessOrderService.orderRefund(wxId,wlyyOutpatientDO.getPatient(),businessOrderDO.getOrderNo(),businessOrderDO.getPayPrice(),description);
|
|
|
}else if (wxId.equalsIgnoreCase("xm_zsyy_wx")){
|
|
|
businessOrderService.ylzOrderRefund(wxId,wlyyOutpatientDO.getPatient(),businessOrderDO.getOrderNo(),businessOrderDO.getPayPrice(),description);
|
|
|
if (wxId.equalsIgnoreCase("xm_ykyy_wx")) {
|
|
|
businessOrderService.orderRefund(wxId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
|
|
|
} else if (wxId.equalsIgnoreCase("xm_zsyy_wx")) {
|
|
|
businessOrderService.ylzOrderRefund(wxId, wlyyOutpatientDO.getPatient(), businessOrderDO.getOrderNo(), businessOrderDO.getPayPrice(), description);
|
|
|
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
rs.put("code",1);
|
|
|
rs.put("mes","取消成功");
|
|
|
return rs;
|
|
|
rs.put("code", 1);
|
|
|
rs.put("mes", "取消成功");
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送微信模板消息 本地无法测试消息是否发送成功
|
|
|
* @param wxId
|
|
|
* @param outpatientDO
|
|
|
* @param outpatientId
|
|
|
* @param type
|
|
|
* @param titelType
|
|
|
* @param remindMsg
|
|
|
*/
|
|
|
public void sendWxTemplateMsg(String wxId,WlyyOutpatientDO outpatientDO,String type){
|
|
|
BaseDoctorDO doctorDO = baseDoctorDao.findById(outpatientDO.getDoctor());
|
|
|
String typeMsg="";
|
|
|
String first="";
|
|
|
if ("9".equals(type)){
|
|
|
typeMsg="通知内容:您的图文复诊订单已被医生取消,您可重新发起。由于订单取消将不做扣费处理";
|
|
|
first=outpatientDO.getPatientName() + ",您好!您的图文复诊已取消";
|
|
|
|
|
|
}
|
|
|
if ("16".equals(type)){
|
|
|
typeMsg="通知内容:您的视频复诊订单已被医生取消,您可重新发起。由于订单取消将不做扣费处理";
|
|
|
first=outpatientDO.getPatientName() + ",您好!您的视频复诊已取消";
|
|
|
}
|
|
|
public void sendWxTemplateMsg(String wxId, String outpatientId, String type, String titelType, String remindMsg) {
|
|
|
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wxId)){
|
|
|
WlyyOutpatientDO outpatientDO = outpatientDao.findById(outpatientId);
|
|
|
BaseDoctorDO doctorDO = baseDoctorDao.findById(outpatientDO.getDoctor());
|
|
|
BasePatientDO patientDO = basePatientDao.findById(outpatientDO.getPatient());
|
|
|
String contentMsg = "";
|
|
|
String first = "";
|
|
|
String remark = "";
|
|
|
if ("doctorRefuseRemind".equalsIgnoreCase(titelType)) {
|
|
|
if ("9".equals(type)) {
|
|
|
contentMsg = "通知内容:您的图文复诊订单已被医生取消,您可重新发起。由于订单取消将不做扣费处理";
|
|
|
first = outpatientDO.getPatientName() + ",您好!您的图文复诊已取消";
|
|
|
|
|
|
}
|
|
|
if ("16".equals(type)) {
|
|
|
contentMsg = "通知内容:您的视频复诊订单已被医生取消,您可重新发起。由于订单取消将不做扣费处理";
|
|
|
first = outpatientDO.getPatientName() + ",您好!您的视频复诊已取消";
|
|
|
}
|
|
|
|
|
|
} else if ("payRemind".equalsIgnoreCase(titelType)) {
|
|
|
if ("9".equals(type)) {
|
|
|
contentMsg = "通知内容:您有一个图文复诊订单待支付,点击完成支付,如您已支付请忽略本条信息";
|
|
|
first = outpatientDO.getPatientName() + ",您好!您有一个图文复诊订单待支付,请及时支付。";
|
|
|
|
|
|
} else if ("16".equals(type)) {
|
|
|
contentMsg = "通知内容:您有一个视频复诊订单待支付,点击完成支付,如您已支付请忽略本条信息";
|
|
|
first = outpatientDO.getPatientName() + ",您好!您有一个视频复诊订单待支付,请及时支付。";
|
|
|
} else if ("1".equals(type)) {
|
|
|
contentMsg = "通知内容:您有一个图文咨询订单待支付,点击完成支付,如您已支付请忽略本条信息";
|
|
|
first = outpatientDO.getPatientName() + ",您好!您有一个图文咨询订单待支付,请及时支付。";
|
|
|
} else if ("17".equals(type)) {
|
|
|
contentMsg = "通知内容:您有一个视频咨询订单待支付,点击完成支付,如您已支付请忽略本条信息";
|
|
|
first = outpatientDO.getPatientName() + ",您好!您有一个视频咨询订单待支付,请及时支付。";
|
|
|
}
|
|
|
} else if ("prescriptionPayRemind".equalsIgnoreCase(titelType)) {
|
|
|
first = outpatientDO.getPatientName() + ",您好! 医生已为您开具处方,请及时支付。";
|
|
|
contentMsg = "通知内容:医生已为您开具处方,请及时支付。";
|
|
|
remark = "备注:点击完成支付,如您已支付请忽略本条信息";
|
|
|
} else if ("msgRemind".equalsIgnoreCase(titelType)) {
|
|
|
first = outpatientDO.getPatientName() + ",您好!";
|
|
|
contentMsg = "通知内容:" + remindMsg;
|
|
|
remark = "备注:请您尽快回复";
|
|
|
} else if ("outpatientMsgRemind".equalsIgnoreCase(titelType)) {
|
|
|
first = doctorDO.getName() + doctorDO.getJobTitleName() + "医生已向您发起视频通话邀请,请点击详情进入视频诊室。";
|
|
|
if ("16".equals(type)) {
|
|
|
contentMsg = "通知内容:您的视频复诊已开始,错过将重新排队";
|
|
|
remark = "备注:点击消息进入视频诊室接听视频通话,开始视频咨询。";
|
|
|
} else if ("17".equals(type)) {
|
|
|
contentMsg = "通知内容:您的视频咨询已开始,错过将重新排队";
|
|
|
remark = "备注:点击消息进入视频诊室接听视频通话,开始视频复诊。";
|
|
|
}
|
|
|
|
|
|
} else if ("videoOrderRemind".equalsIgnoreCase(titelType)) {
|
|
|
|
|
|
if ("16".equals(type)) {
|
|
|
first = "您的视频复诊已预约成功。";
|
|
|
contentMsg = "通知内容:预计" + outpatientDO.getDoctorName() + "医生将于" + outpatientDO.getRegisterDate() + " 与您进行视频复诊。请留意微信公众号消息。";
|
|
|
} else if ("17".equals(type)) {
|
|
|
first = "您的视频咨询已预约成功。";
|
|
|
contentMsg = "通知内容:预计" + outpatientDO.getDoctorName() + "医生将于" + outpatientDO.getRegisterDate() + " 与您进行视频咨询。请留意微信公众号消息。";
|
|
|
}
|
|
|
|
|
|
remark = "备注:咨询开始时,医生将邀请您进行视频通话,请您关注消息提醒,及时接受医生视频邀请。";
|
|
|
} else if ("evaluateRemind".equalsIgnoreCase(titelType)) {
|
|
|
first = outpatientDO.getPatientName() + ",您好!您有1条专家咨询已结束,请及时对咨询医生进行评价。";
|
|
|
contentMsg = "通知内容:请对" + outpatientDO.getDoctorName() + "医生的服务进行评价";
|
|
|
}
|
|
|
|
|
|
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wxId)) {
|
|
|
|
|
|
List<BasePatientWechatDo> ps = basePatientWechatDao.findByWechatIdAndPatientId(wxId, outpatientDO.getPatient());
|
|
|
if(ps.isEmpty()){
|
|
|
logger.info("该用户"+outpatientDO.getPatientName()+"没有openid,无法推送模版消息,用户ID:"+outpatientDO.getPatient()+"wechatId:"+wxId);
|
|
|
if (ps.isEmpty()) {
|
|
|
logger.info("该用户" + outpatientDO.getPatientName() + "没有openid,无法推送模版消息,用户ID:" + outpatientDO.getPatient() + "wechatId:" + wxId);
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
ps.stream().forEach(one->{
|
|
|
WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId,"template_doctor_notice","ysqxjz",1);
|
|
|
WxTemplateConfigDO newConfig = new WxTemplateConfigDO();
|
|
|
BeanUtils.copyProperties(config,newConfig);
|
|
|
newConfig.setFirst(config.getFirst().replace("key1",outpatientDO.getPatientName()));
|
|
|
if ("9".equals(type)){
|
|
|
newConfig.setFirst(newConfig.getFirst().replace("key2","图文复诊"));
|
|
|
String scene = "";
|
|
|
WxTemplateConfigDO newConfig = new WxTemplateConfigDO();
|
|
|
if ("doctorRefuseRemind".equalsIgnoreCase(titelType)) {
|
|
|
scene = "ysqxjz";
|
|
|
WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId, "template_doctor_notice", scene, 1);
|
|
|
BeanUtils.copyProperties(config, newConfig);
|
|
|
newConfig.setFirst(config.getFirst().replace("key1", outpatientDO.getPatientName()));
|
|
|
if ("9".equals(type)) {
|
|
|
newConfig.setFirst(newConfig.getFirst().replace("key2", "图文复诊"));
|
|
|
} else if ("16".equals(type)) {
|
|
|
newConfig.setFirst(newConfig.getFirst().replace("key2", "视频复诊"));
|
|
|
}
|
|
|
if ("16".equals(type)){
|
|
|
newConfig.setFirst(newConfig.getFirst().replace("key2","视频复诊"));
|
|
|
newConfig.setKeyword1(config.getKeyword1() + outpatientDO.getHospitalName());
|
|
|
newConfig.setKeyword2(config.getKeyword2() + outpatientDO.getDoctorName());
|
|
|
newConfig.setKeyword3(config.getKeyword3() + doctorDO.getFee());
|
|
|
|
|
|
} else if ("payRemind".equalsIgnoreCase(titelType)) {
|
|
|
scene = "zxzfts";
|
|
|
WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId, "template_pay_notice", scene, 1);
|
|
|
|
|
|
BeanUtils.copyProperties(config, newConfig);
|
|
|
newConfig.setFirst(config.getFirst().replace("key1", outpatientDO.getPatientName()));
|
|
|
if ("9".equals(type)) {
|
|
|
newConfig.setFirst(newConfig.getFirst().replace("key2", "图文复诊"));
|
|
|
newConfig.setKeyword1(config.getKeyword1() + "图文复诊支付");
|
|
|
} else if ("16".equals(type)) {
|
|
|
newConfig.setFirst(newConfig.getFirst().replace("key2", "视频复诊"));
|
|
|
newConfig.setKeyword1(config.getKeyword1() + "视频复诊支付");
|
|
|
} else if ("1".equals(type)) {
|
|
|
newConfig.setFirst(newConfig.getFirst().replace("key2", "图文咨询"));
|
|
|
newConfig.setKeyword1(config.getKeyword1() + "图文咨询支付");
|
|
|
} else if ("17".equals(type)) {
|
|
|
newConfig.setFirst(newConfig.getFirst().replace("key2", "视频咨询"));
|
|
|
newConfig.setKeyword1(config.getKeyword1() + "视频咨询支付");
|
|
|
}
|
|
|
newConfig.setUrl(config.getUrl()+""+outpatientDO.getId());
|
|
|
newConfig.setKeyword1(config.getKeyword1()+outpatientDO.getHospitalName());
|
|
|
newConfig.setKeyword2(config.getKeyword2()+outpatientDO.getDoctorName());
|
|
|
newConfig.setKeyword3(config.getKeyword3()+doctorDO.getFee());
|
|
|
WxAccessTokenDO wxAccessTokenDO = wxAccessTokenService.getWxAccessTokenById(wechatId);
|
|
|
logger.info("=======setUrl========"+newConfig.getUrl());
|
|
|
weixinMessagePushUtils.putWxMsg(wxAccessTokenDO.getAccessToken(),one.getOpenid(),newConfig);
|
|
|
|
|
|
newConfig.setKeyword2(config.getKeyword2() + outpatientDO.getHospitalName());
|
|
|
newConfig.setKeyword3(config.getKeyword3() + outpatientDO.getDoctorName());
|
|
|
|
|
|
} else if ("prescriptionPayRemind".equalsIgnoreCase(titelType)) {
|
|
|
scene = "cfzfts";
|
|
|
WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId, "template_prescription_pay_notice", scene, 1);
|
|
|
|
|
|
BeanUtils.copyProperties(config, newConfig);
|
|
|
newConfig.setFirst(config.getFirst().replace("key1", outpatientDO.getPatientName()));
|
|
|
newConfig.setKeyword1(config.getKeyword1() + "处方支付");
|
|
|
newConfig.setKeyword2(config.getKeyword2() + outpatientDO.getHospitalName());
|
|
|
newConfig.setKeyword3(config.getKeyword3() + outpatientDO.getDoctorName());
|
|
|
} else if ("msgRemind".equalsIgnoreCase(titelType)) {
|
|
|
scene = "zxxxtx";
|
|
|
WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId, "template_msg_notice", scene, 1);
|
|
|
BeanUtils.copyProperties(config, newConfig);
|
|
|
newConfig.setFirst(config.getFirst().replace("key1", outpatientDO.getPatientName()));
|
|
|
newConfig.setKeyword1(config.getKeyword1() + remindMsg);
|
|
|
newConfig.setKeyword2(config.getKeyword2() + DateUtil.getStringDate());
|
|
|
} else if ("outpatientMsgRemind".equalsIgnoreCase(titelType)) {
|
|
|
scene = "mzxxtx";
|
|
|
WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId, "template_outpatient_msg_notice", scene, 1);
|
|
|
BeanUtils.copyProperties(config, newConfig);
|
|
|
|
|
|
newConfig.setFirst(config.getFirst().replace("key1", outpatientDO.getPatientName()));
|
|
|
newConfig.setFirst(config.getFirst().replace("key2", doctorDO.getJobTitleName()));
|
|
|
newConfig.setKeyword1(config.getKeyword1() + outpatientDO.getDoctorName());
|
|
|
newConfig.setKeyword2(config.getKeyword2() + outpatientDO.getAdmDate());
|
|
|
newConfig.setKeyword3(config.getKeyword3() + outpatientDO.getDeptName());
|
|
|
newConfig.setKeyword4(config.getKeyword4() + outpatientDO.getIcd10Name());
|
|
|
if ("16".equals(type)) {
|
|
|
newConfig.setRemark(config.getRemark().replaceFirst("key1", "视频复诊"));
|
|
|
} else if ("17".equals(type)) {
|
|
|
newConfig.setRemark(config.getRemark().replaceFirst("key1", "视频咨询"));
|
|
|
}
|
|
|
} else if ("videoOrderRemind".equalsIgnoreCase(titelType)) {
|
|
|
scene = "spwzyytx";
|
|
|
WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId, "template_video_notice", scene, 1);
|
|
|
BeanUtils.copyProperties(config, newConfig);
|
|
|
if ("16".equals(type)) {
|
|
|
newConfig.setFirst(config.getFirst().replaceFirst("key1", "视频复诊"));
|
|
|
} else if ("17".equals(type)) {
|
|
|
newConfig.setFirst(config.getFirst().replaceFirst("key1", "视频咨询"));
|
|
|
}
|
|
|
newConfig.setKeyword1(config.getKeyword1() + outpatientDO.getPatientName());
|
|
|
newConfig.setKeyword2(config.getKeyword2() + outpatientDO.getDeptName());
|
|
|
newConfig.setKeyword3(config.getKeyword3() + outpatientDO.getDoctorName());
|
|
|
newConfig.setKeyword4(config.getKeyword4() + outpatientDO.getRegisterDate());
|
|
|
newConfig.setKeyword5(config.getKeyword5() + generalDoctorWaitingNumber(doctorDO.getId(), wxId, outpatientId));
|
|
|
} else if ("evaluateRemind".equalsIgnoreCase(titelType)) {
|
|
|
scene = "fwqjtx";
|
|
|
WxTemplateConfigDO config = wxTemplateConfigDao.findByWechatIdAndTemplateNameAndSceneAndStatus(wechatId, "template_evaluate_notice", scene, 1);
|
|
|
BeanUtils.copyProperties(config, newConfig);
|
|
|
newConfig.setFirst(config.getFirst().replaceFirst("key1", outpatientDO.getPatientName()));
|
|
|
newConfig.setKeyword1(config.getKeyword1() + outpatientDO.getHospitalName());
|
|
|
newConfig.setKeyword2(config.getKeyword2() + outpatientDO.getDoctorName());
|
|
|
}
|
|
|
|
|
|
//发起微信消息模板推送
|
|
|
newConfig.setUrl(newConfig.getUrl() + "" + outpatientDO.getId());
|
|
|
logger.info("=======setUrl========" + newConfig.getUrl());
|
|
|
WxAccessTokenDO wxAccessTokenDO = wxAccessTokenService.getWxAccessTokenById(wechatId);
|
|
|
|
|
|
for (BasePatientWechatDo one : ps) {
|
|
|
weixinMessagePushUtils.putWxMsg(wxAccessTokenDO.getAccessToken(), one.getOpenid(), newConfig);
|
|
|
//保存发送模板记录,
|
|
|
WxPushLogDO wxPushLogDO = new WxPushLogDO();
|
|
|
wxPushLogDO.setCreateTime(new Date());
|
|
@ -3407,49 +3551,54 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
wxPushLogDO.setReceiver(outpatientDO.getPatient());
|
|
|
wxPushLogDO.setWechatId(wechatId);
|
|
|
wxPushLogDO.setReceiverName(outpatientDO.getPatientName());
|
|
|
wxPushLogDO.setScene("ysqxjz");
|
|
|
wxPushLogDO.setScene(scene);
|
|
|
wxPushLogDao.save(wxPushLogDO);
|
|
|
}
|
|
|
|
|
|
} else if ("xm_xzzx_wx".equalsIgnoreCase(wxId)) {
|
|
|
|
|
|
String MsgUrl = "https://www.xmheart.com/ims-wx/index.html#/returnVisit/record?outpatientId=" + outpatientDO.getPatient();
|
|
|
|
|
|
});
|
|
|
}else if("xm_xzzx_wx".equalsIgnoreCase(wxId)) {
|
|
|
String MsgUrl="https://www.xmheart.com/ims-wx/index.html#/returnVisit/record?outpatientId="+outpatientDO.getPatient();
|
|
|
String responseMsg = xzzxEntranceService.sendXCXMes(wxId,
|
|
|
doctorDO.getId(),
|
|
|
doctorDO.getIdcard(),
|
|
|
patientDO.getId(),
|
|
|
patientDO.getIdcard(),
|
|
|
first,
|
|
|
"通知时间:" + DateUtil.getStringDate(),
|
|
|
typeMsg,
|
|
|
contentMsg,
|
|
|
remark,
|
|
|
MsgUrl,
|
|
|
"wx53f6bb4ac081d840");
|
|
|
logger.info("XZZX_Msg="+responseMsg);
|
|
|
}else if ("xm_zsyy_wx".equalsIgnoreCase(wxId)){
|
|
|
String MsgUrl="https://hlwyy.xmzsh.com/ims-wx/index.html#/returnVisit/record?outpatientId="+outpatientDO.getPatient();
|
|
|
String responseMsg = entranceService.ehospitalNotice(doctorDO.getName(),
|
|
|
doctorDO.getIdcard(),
|
|
|
doctorDO.getMobile(),
|
|
|
logger.info("XZZX_Msg_" + titelType + "=" + responseMsg);
|
|
|
|
|
|
} else if ("xm_zsyy_wx".equalsIgnoreCase(wxId)) {
|
|
|
String MsgUrl = "https://hlwyy.xmzsh.com/ims-wx/index.html#/returnVisit/record?outpatientId=" + outpatientDO.getPatient();
|
|
|
String responseMsg = entranceService.ehospitalNotice(patientDO.getName(),
|
|
|
patientDO.getIdcard(),
|
|
|
patientDO.getMobile(),
|
|
|
first,
|
|
|
MsgUrl,
|
|
|
"通知时间:" + DateUtil.getStringDate(),
|
|
|
typeMsg
|
|
|
contentMsg,
|
|
|
remark
|
|
|
);
|
|
|
logger.info("ZSYY_Msg="+responseMsg);
|
|
|
logger.info("ZSYY_Msg" + titelType + "=" + responseMsg);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<WlyyHospitalSysDictDO> findCancelReasonList(){
|
|
|
|
|
|
public List<WlyyHospitalSysDictDO> findCancelReasonList() {
|
|
|
return sysDictDao.findByDictName("PatientCancel");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 獲取快速咨詢時間
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> findFastRegisterDate(){
|
|
|
public List<Map<String, Object>> findFastRegisterDate() {
|
|
|
int days = 7;
|
|
|
String AMStartTime ="8:00";
|
|
|
String AMEndTime ="12:00";
|
|
|
String PMStartTime ="14:00";
|
|
|
String PMEndTime ="17:00";
|
|
|
String AMStartTime = "8:00";
|
|
|
String AMEndTime = "12:00";
|
|
|
String PMStartTime = "14:00";
|
|
|
String PMEndTime = "17:00";
|
|
|
|
|
|
//设置上午过号时间
|
|
|
Calendar scTime = Calendar.getInstance();
|
|
@ -3458,45 +3607,45 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
Calendar ecTime = Calendar.getInstance();
|
|
|
ecTime.setTime(new Date());
|
|
|
|
|
|
List<Map<String,Object>> times = new ArrayList<>();
|
|
|
for(int i=0;i<days;i++){
|
|
|
List<Map<String, Object>> times = new ArrayList<>();
|
|
|
for (int i = 0; i < days; i++) {
|
|
|
//設置上午時段
|
|
|
Map<String,Object> time = new HashedMap();
|
|
|
time.put("timeType","1");
|
|
|
time.put("date",DateUtil.dateToStr(scTime.getTime(),"yyyy-MM-dd"));
|
|
|
time.put("weekDay",scTime.get(Calendar.DAY_OF_WEEK));
|
|
|
Map<String, Object> time = new HashedMap();
|
|
|
time.put("timeType", "1");
|
|
|
time.put("date", DateUtil.dateToStr(scTime.getTime(), "yyyy-MM-dd"));
|
|
|
time.put("weekDay", scTime.get(Calendar.DAY_OF_WEEK));
|
|
|
|
|
|
String ts[] = AMStartTime.split(":");
|
|
|
scTime.set(scTime.get(Calendar.YEAR),scTime.get(Calendar.MONTH),scTime.get(Calendar.DAY_OF_MONTH),Integer.parseInt(ts[0]),Integer.parseInt(ts[1]),00);
|
|
|
time.put("startTime",DateUtil.dateToStr(scTime.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
scTime.set(scTime.get(Calendar.YEAR), scTime.get(Calendar.MONTH), scTime.get(Calendar.DAY_OF_MONTH), Integer.parseInt(ts[0]), Integer.parseInt(ts[1]), 00);
|
|
|
time.put("startTime", DateUtil.dateToStr(scTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
|
String ts2[] = AMEndTime.split(":");
|
|
|
scTime.set(scTime.get(Calendar.YEAR),scTime.get(Calendar.MONTH),scTime.get(Calendar.DAY_OF_MONTH),Integer.parseInt(ts2[0]),Integer.parseInt(ts2[1]),00);
|
|
|
time.put("endTime",DateUtil.dateToStr(scTime.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
scTime.set(scTime.get(Calendar.YEAR), scTime.get(Calendar.MONTH), scTime.get(Calendar.DAY_OF_MONTH), Integer.parseInt(ts2[0]), Integer.parseInt(ts2[1]), 00);
|
|
|
time.put("endTime", DateUtil.dateToStr(scTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
times.add(time);
|
|
|
|
|
|
//設置下午時段
|
|
|
Map<String,Object> time2 = new HashedMap();
|
|
|
time2.put("timeType","2");
|
|
|
time2.put("date",DateUtil.dateToStr(scTime.getTime(),"yyyy-MM-dd"));
|
|
|
time2.put("weekDay",scTime.get(Calendar.DAY_OF_WEEK));
|
|
|
Map<String, Object> time2 = new HashedMap();
|
|
|
time2.put("timeType", "2");
|
|
|
time2.put("date", DateUtil.dateToStr(scTime.getTime(), "yyyy-MM-dd"));
|
|
|
time2.put("weekDay", scTime.get(Calendar.DAY_OF_WEEK));
|
|
|
|
|
|
String pts[] = PMStartTime.split(":");
|
|
|
scTime.set(scTime.get(Calendar.YEAR),scTime.get(Calendar.MONTH),scTime.get(Calendar.DAY_OF_MONTH),Integer.parseInt(pts[0]),Integer.parseInt(pts[1]),00);
|
|
|
time2.put("startTime",DateUtil.dateToStr(scTime.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
scTime.set(scTime.get(Calendar.YEAR), scTime.get(Calendar.MONTH), scTime.get(Calendar.DAY_OF_MONTH), Integer.parseInt(pts[0]), Integer.parseInt(pts[1]), 00);
|
|
|
time2.put("startTime", DateUtil.dateToStr(scTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
|
String pts2[] = PMEndTime.split(":");
|
|
|
scTime.set(scTime.get(Calendar.YEAR),scTime.get(Calendar.MONTH),scTime.get(Calendar.DAY_OF_MONTH),Integer.parseInt(pts2[0]),Integer.parseInt(pts2[1]),00);
|
|
|
time2.put("endTime",DateUtil.dateToStr(scTime.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
scTime.set(scTime.get(Calendar.YEAR), scTime.get(Calendar.MONTH), scTime.get(Calendar.DAY_OF_MONTH), Integer.parseInt(pts2[0]), Integer.parseInt(pts2[1]), 00);
|
|
|
time2.put("endTime", DateUtil.dateToStr(scTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
times.add(time2);
|
|
|
//生成下一天
|
|
|
scTime.add(Calendar.DAY_OF_MONTH,1);
|
|
|
scTime.add(Calendar.DAY_OF_MONTH, 1);
|
|
|
}
|
|
|
|
|
|
if(DateUtil.strToDate(DateUtil.getTimeShort(),DateUtil.HH_MM).after(DateUtil.strToDate(AMEndTime,DateUtil.HH_MM))) {
|
|
|
if (DateUtil.strToDate(DateUtil.getTimeShort(), DateUtil.HH_MM).after(DateUtil.strToDate(AMEndTime, DateUtil.HH_MM))) {
|
|
|
times.remove(0);
|
|
|
}
|
|
|
if(DateUtil.strToDate(DateUtil.getTimeShort(),DateUtil.HH_MM).after(DateUtil.strToDate(PMEndTime,DateUtil.HH_MM))) {
|
|
|
if (DateUtil.strToDate(DateUtil.getTimeShort(), DateUtil.HH_MM).after(DateUtil.strToDate(PMEndTime, DateUtil.HH_MM))) {
|
|
|
times.remove(0);
|
|
|
}
|
|
|
return times;
|
|
@ -3504,15 +3653,16 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 医生可接单列表(图文复诊、视频复诊、协同门诊)
|
|
|
*
|
|
|
* @param doctor
|
|
|
* @param type 1:图文诊室,2:视频诊室(视频复诊、协同门诊)
|
|
|
* @param type 1:图文诊室,2:视频诊室(视频复诊、协同门诊)
|
|
|
* @return
|
|
|
* @query_status 0:图文复诊候诊 1:图文复诊抢单列表
|
|
|
* @dept 部门
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> findWaitingRoomOutpatientByDoctor(String doctor, Integer type,Integer query_status,String dept) {
|
|
|
public List<Map<String, Object>> findWaitingRoomOutpatientByDoctor(String doctor, Integer type, Integer query_status, String dept) {
|
|
|
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
"room.outpatient_id AS \"id\"," +
|
|
|
"room.patient_id AS \"patient_id\"," +
|
|
|
"room.patient_name AS \"name\"," +
|
|
@ -3521,11 +3671,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"patient.photo AS \"photo\"," +
|
|
|
"outpatient.mobile AS \"mobile\"," +
|
|
|
"patient.birthday AS \"birthday\"," +
|
|
|
"room.consult_type AS \"consult_type\"," ;
|
|
|
if("xm_ykyy_wx".equals(wechatId)){
|
|
|
sql += "to_char(room.reservation_time ,'yyyy-MM-dd hh24:mi:ss' ) AS \"timedate_format\"," ;
|
|
|
}else{
|
|
|
sql += "date_format(room.reservation_time ,'%Y-%m-%d %H:%i:%S' ) AS timedate_format," ;
|
|
|
"room.consult_type AS \"consult_type\",";
|
|
|
if ("xm_ykyy_wx".equals(wechatId)) {
|
|
|
sql += "to_char(room.reservation_time ,'yyyy-MM-dd hh24:mi:ss' ) AS \"timedate_format\",";
|
|
|
} else {
|
|
|
sql += "date_format(room.reservation_time ,'%Y-%m-%d %H:%i:%S' ) AS timedate_format,";
|
|
|
}
|
|
|
sql += "outpatient.disease_img AS \"disease_img\"," +
|
|
|
"outpatient.description AS \"description\"," +
|
|
@ -3541,48 +3691,47 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"AND outpatient.pay_status = 1 " +
|
|
|
"AND outpatient.status = 0 ";
|
|
|
//视频复诊,协同门诊 医生抢单
|
|
|
if(type == 2 ){
|
|
|
sql += "AND room.doctor IS NULL ";
|
|
|
}else{
|
|
|
if (type == 2) {
|
|
|
sql += "AND room.doctor IS NULL ";
|
|
|
} else {
|
|
|
//图文复诊候诊列表
|
|
|
if(0 == query_status){
|
|
|
sql += "AND room.doctor='"+doctor+"' ";
|
|
|
}else{
|
|
|
if (0 == query_status) {
|
|
|
sql += "AND room.doctor='" + doctor + "' ";
|
|
|
} else {
|
|
|
//图文复诊医生抢单列表
|
|
|
sql += "AND room.doctor IS NULL ";
|
|
|
sql += "AND room.doctor IS NULL ";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//协同门诊
|
|
|
if(3 == type){
|
|
|
if (3 == type) {
|
|
|
sql += " AND room.reservation_type=2 ";
|
|
|
}else{
|
|
|
} else {
|
|
|
//在线复诊
|
|
|
sql += " AND room.reservation_type=1 AND room.consult_type="+type ;
|
|
|
sql += " AND room.reservation_type=1 AND room.consult_type=" + type;
|
|
|
}
|
|
|
|
|
|
if(StringUtils.isNoneBlank(dept)){
|
|
|
sql += " AND outpatient.dept='"+dept+"' ";
|
|
|
if (StringUtils.isNoneBlank(dept)) {
|
|
|
sql += " AND outpatient.dept='" + dept + "' ";
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
if(list!=null&&list.size()>0){
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
if (list != null && list.size() > 0) {
|
|
|
//根据身份证计算年龄
|
|
|
for(Map<String,Object> outpatient :list){
|
|
|
String idcard = (String)outpatient.get("idcard");
|
|
|
outpatient.put("age",DateUtil.getAgeForIdcard(idcard));
|
|
|
for (Map<String, Object> outpatient : list) {
|
|
|
String idcard = (String) outpatient.get("idcard");
|
|
|
outpatient.put("age", DateUtil.getAgeForIdcard(idcard));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> findWaitingRoomPatient(String dept, Integer type) {
|
|
|
public List<Map<String, Object>> findWaitingRoomPatient(String dept, Integer type) {
|
|
|
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
"patient.id AS \"id\"," +
|
|
|
"patient.name AS \"name\"," +
|
|
|
"patient.sex AS \"sex\"," +
|
|
@ -3596,27 +3745,27 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"base_patient patient " +
|
|
|
"WHERE waitingroom.consult_type=2 AND doctor IS NOT NULL ";
|
|
|
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
if(list!=null&&list.size()>0){
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
if (list != null && list.size() > 0) {
|
|
|
//根据身份证计算年龄
|
|
|
for(Map<String,Object> roompatient :list){
|
|
|
String idcard = (String)roompatient.get("idcard");
|
|
|
roompatient.put("age",DateUtil.getAgeForIdcard(idcard));
|
|
|
for (Map<String, Object> roompatient : list) {
|
|
|
String idcard = (String) roompatient.get("idcard");
|
|
|
roompatient.put("age", DateUtil.getAgeForIdcard(idcard));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public JSONObject findWaitingRoomStatusCount(String dept,String wxId) {
|
|
|
public JSONObject findWaitingRoomStatusCount(String dept, String wxId) {
|
|
|
|
|
|
String totalSql = "SELECT count(id) AS \"total\" FROM wlyy_hospital_waiting_room WHERE visit_status=1 ";
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
totalSql +=" and reservation_time >= to_date('"+DateUtil.dateToStrShort(new Date())+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
totalSql +=" and reservation_time <= to_date('"+DateUtil.dateToStrShort(new Date())+" 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
totalSql += " AND reservation_time >='"+DateUtil.dateToStrShort(new Date())+" 00:00:00'";
|
|
|
totalSql += " AND reservation_time <='"+DateUtil.dateToStrShort(new Date())+" 23:59:59'";
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
totalSql += " and reservation_time >= to_date('" + DateUtil.dateToStrShort(new Date()) + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
totalSql += " and reservation_time <= to_date('" + DateUtil.dateToStrShort(new Date()) + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
totalSql += " AND reservation_time >='" + DateUtil.dateToStrShort(new Date()) + " 00:00:00'";
|
|
|
totalSql += " AND reservation_time <='" + DateUtil.dateToStrShort(new Date()) + " 23:59:59'";
|
|
|
}
|
|
|
List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(totalSql);
|
|
|
Long count = 0L;
|
|
@ -3625,100 +3774,100 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}
|
|
|
|
|
|
JSONObject result = new JSONObject();
|
|
|
result.put("waiting_count",count);
|
|
|
result.put("outpatient_count",count);
|
|
|
result.put("waiting_count_difference",count);
|
|
|
result.put("outpatient_count_difference",count);
|
|
|
result.put("yesterday_waiting_count",count);
|
|
|
result.put("waiting_count", count);
|
|
|
result.put("outpatient_count", count);
|
|
|
result.put("waiting_count_difference", count);
|
|
|
result.put("outpatient_count_difference", count);
|
|
|
result.put("yesterday_waiting_count", count);
|
|
|
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
public List<JSONObject> findClinicRoomList(String dept,String date,String consult_status,String wxId) {
|
|
|
if(StringUtils.isBlank(date)){
|
|
|
public List<JSONObject> findClinicRoomList(String dept, String date, String consult_status, String wxId) {
|
|
|
if (StringUtils.isBlank(date)) {
|
|
|
date = DateUtil.getStringDateShort();
|
|
|
}
|
|
|
|
|
|
//获取今天的排班列表
|
|
|
String doctorsql ="SELECT doctor AS \"doctor\",doctor_name as \"doctor_name\",dept as \"dept\",dept_name as \"dept_name\" FROM wlyy_doctor_work_time WHERE work_date='"+date+"'";
|
|
|
String doctorsql = "SELECT doctor AS \"doctor\",doctor_name as \"doctor_name\",dept as \"dept\",dept_name as \"dept_name\" FROM wlyy_doctor_work_time WHERE work_date='" + date + "'";
|
|
|
|
|
|
if(StringUtils.isNoneBlank(dept)){
|
|
|
doctorsql = doctorsql + " and dept = '"+dept+"' ";
|
|
|
if (StringUtils.isNoneBlank(dept)) {
|
|
|
doctorsql = doctorsql + " and dept = '" + dept + "' ";
|
|
|
}
|
|
|
doctorsql = doctorsql+ " GROUP BY doctor,doctor_name,dept,dept_name";
|
|
|
doctorsql = doctorsql + " GROUP BY doctor,doctor_name,dept,dept_name";
|
|
|
|
|
|
List<Map<String,Object>> doctorlist = jdbcTemplate.queryForList(doctorsql);
|
|
|
List<Map<String, Object>> doctorlist = jdbcTemplate.queryForList(doctorsql);
|
|
|
|
|
|
HashMap<String ,JSONObject> result = new HashMap<>();
|
|
|
HashMap<String, JSONObject> result = new HashMap<>();
|
|
|
|
|
|
for (int i = 0; i < doctorlist.size(); i++) {
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("id",(String)doctorlist.get(0).get("doctor"));
|
|
|
jsonObject.put("id", (String) doctorlist.get(0).get("doctor"));
|
|
|
|
|
|
if(StringUtils.isNoneBlank((String)doctorlist.get(0).get("doctor_name"))){
|
|
|
jsonObject.put("doctor_name",(String)doctorlist.get(0).get("doctor_name"));
|
|
|
jsonObject.put("dept_name",(String)doctorlist.get(0).get("dept_name"));
|
|
|
jsonObject.put("dept_code",(String)doctorlist.get(0).get("dept"));
|
|
|
}else{
|
|
|
jsonObject.put("doctor_name","");
|
|
|
jsonObject.put("dept_name","");
|
|
|
jsonObject.put("dept_code","");
|
|
|
if (StringUtils.isNoneBlank((String) doctorlist.get(0).get("doctor_name"))) {
|
|
|
jsonObject.put("doctor_name", (String) doctorlist.get(0).get("doctor_name"));
|
|
|
jsonObject.put("dept_name", (String) doctorlist.get(0).get("dept_name"));
|
|
|
jsonObject.put("dept_code", (String) doctorlist.get(0).get("dept"));
|
|
|
} else {
|
|
|
jsonObject.put("doctor_name", "");
|
|
|
jsonObject.put("dept_name", "");
|
|
|
jsonObject.put("dept_code", "");
|
|
|
}
|
|
|
jsonObject.put("visit_status",1);
|
|
|
jsonObject.put("waiting_count",0);
|
|
|
jsonObject.put("patient_name","");
|
|
|
jsonObject.put("time_cost",0);
|
|
|
jsonObject.put("visit_status", 1);
|
|
|
jsonObject.put("waiting_count", 0);
|
|
|
jsonObject.put("patient_name", "");
|
|
|
jsonObject.put("time_cost", 0);
|
|
|
|
|
|
result.put((String)doctorlist.get(0).get("doctor"),jsonObject);
|
|
|
result.put((String) doctorlist.get(0).get("doctor"), jsonObject);
|
|
|
}
|
|
|
|
|
|
//获取预约了今天的候诊居民
|
|
|
String waitingSql ="SELECT count(op.id) AS \"waitCount\"," +
|
|
|
String waitingSql = "SELECT count(op.id) AS \"waitCount\"," +
|
|
|
"room.doctor AS \"doctor\", " +
|
|
|
"room.doctor_name AS \"doctorName\" " +
|
|
|
"FROM wlyy_outpatient op,wlyy_hospital_waiting_room room " +
|
|
|
"WHERE op.status=0 AND room.outpatient_id=op.id AND room.consult_type=2 " +
|
|
|
"AND room.doctor IS NOT NULL ";
|
|
|
if(StringUtils.isNoneBlank(dept)){
|
|
|
waitingSql = waitingSql + " and op.dept = '"+dept+"' ";
|
|
|
if (StringUtils.isNoneBlank(dept)) {
|
|
|
waitingSql = waitingSql + " and op.dept = '" + dept + "' ";
|
|
|
}
|
|
|
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
waitingSql +=" AND room.reservation_time >= to_date('"+date+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
waitingSql +=" AND room.reservation_time <= to_date('"+date+" 23:59:59','YYYY-MM-DD HH24:MI:SS') GROUP BY room.doctor,room.doctor_name";
|
|
|
}else {
|
|
|
waitingSql = waitingSql + "AND room.reservation_time>='"+date+" 00:00:00' AND room.reservation_time<='"+date+" 23:59:59' GROUP BY room.doctor,room.doctor_name; ";
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
waitingSql += " AND room.reservation_time >= to_date('" + date + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
waitingSql += " AND room.reservation_time <= to_date('" + date + " 23:59:59','YYYY-MM-DD HH24:MI:SS') GROUP BY room.doctor,room.doctor_name";
|
|
|
} else {
|
|
|
waitingSql = waitingSql + "AND room.reservation_time>='" + date + " 00:00:00' AND room.reservation_time<='" + date + " 23:59:59' GROUP BY room.doctor,room.doctor_name; ";
|
|
|
}
|
|
|
|
|
|
List<Map<String,Object>> waitinglist = jdbcTemplate.queryForList(waitingSql);
|
|
|
if(waitinglist!=null&&waitinglist.size()>0){
|
|
|
List<Map<String, Object>> waitinglist = jdbcTemplate.queryForList(waitingSql);
|
|
|
if (waitinglist != null && waitinglist.size() > 0) {
|
|
|
//根据身份证计算年龄
|
|
|
for(Map<String,Object> waitObj :waitinglist){
|
|
|
for (Map<String, Object> waitObj : waitinglist) {
|
|
|
String doctor = (String) waitObj.get("doctor");
|
|
|
if(StringUtils.isNoneBlank(doctor)){
|
|
|
Long waitCount = Long.parseLong(waitObj.get("waitCount").toString()) ;
|
|
|
if(result.keySet().contains(doctor)){
|
|
|
result.get(doctor).put("waiting_count",waitCount);
|
|
|
}else{
|
|
|
if (StringUtils.isNoneBlank(doctor)) {
|
|
|
Long waitCount = Long.parseLong(waitObj.get("waitCount").toString());
|
|
|
if (result.keySet().contains(doctor)) {
|
|
|
result.get(doctor).put("waiting_count", waitCount);
|
|
|
} else {
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("id",doctor);
|
|
|
jsonObject.put("visit_status",1);
|
|
|
jsonObject.put("waiting_count",waitCount);
|
|
|
if(StringUtils.isNoneBlank((String)waitObj.get("doctorName"))){
|
|
|
jsonObject.put("doctor_name",(String)waitObj.get("doctorName"));
|
|
|
}else{
|
|
|
jsonObject.put("doctor_name","");
|
|
|
jsonObject.put("id", doctor);
|
|
|
jsonObject.put("visit_status", 1);
|
|
|
jsonObject.put("waiting_count", waitCount);
|
|
|
if (StringUtils.isNoneBlank((String) waitObj.get("doctorName"))) {
|
|
|
jsonObject.put("doctor_name", (String) waitObj.get("doctorName"));
|
|
|
} else {
|
|
|
jsonObject.put("doctor_name", "");
|
|
|
}
|
|
|
jsonObject.put("patient_name","");
|
|
|
jsonObject.put("time_cost",0);
|
|
|
result.put(doctor,jsonObject);
|
|
|
jsonObject.put("patient_name", "");
|
|
|
jsonObject.put("time_cost", 0);
|
|
|
result.put(doctor, jsonObject);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//获取进行中的居民
|
|
|
String onlineSql ="SELECT " +
|
|
|
String onlineSql = "SELECT " +
|
|
|
"room.outpatient_id AS \"id\"," +
|
|
|
"room.patient_id AS \"patient_id\"," +
|
|
|
"room.patient_name AS \"patient_name\"," +
|
|
@ -3727,12 +3876,12 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"patient.photo AS \"photo\"," +
|
|
|
"patient.birthday AS \"birthday\"," +
|
|
|
"room.consult_type AS \"consult_type\",";
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
onlineSql = onlineSql + "to_char(room.reservation_time,'YYYY-MM-DD hh24:mi:ss') AS \"time\",ceil((sysdate-to_date(to_char(room.reservation_time,'YYYY-MM-DD hh24:mi:ss'),'YYYY-MM-DD hh24:mi:ss'))* 24 * 60) AS \"time_cost\",";
|
|
|
}else{
|
|
|
} else {
|
|
|
onlineSql = onlineSql + "date_format(room.reservation_time,'%Y-%m-%d %H:%i:%S' ) AS \"time\",TIMESTAMPDIFF(MINUTE, room.reservation_time,NOW()) AS \"time_cost\",";
|
|
|
}
|
|
|
onlineSql=onlineSql+"room.doctor AS \"doctor\", " +
|
|
|
onlineSql = onlineSql + "room.doctor AS \"doctor\", " +
|
|
|
"room.doctor_name AS \"doctorName\" " +
|
|
|
"FROM " +
|
|
|
"wlyy_hospital_waiting_room room," +
|
|
@ -3745,63 +3894,63 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"AND consult.relation_code=outpatient.id " +
|
|
|
"AND consult.status=0 " +
|
|
|
"AND room.consult_type=2 ";
|
|
|
if(StringUtils.isNoneBlank(dept)){
|
|
|
onlineSql = onlineSql + " and outpatient.dept = '"+dept+"' ";
|
|
|
if (StringUtils.isNoneBlank(dept)) {
|
|
|
onlineSql = onlineSql + " and outpatient.dept = '" + dept + "' ";
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
onlineSql = onlineSql+ "AND room.reservation_time>='"+date+" 00:00:00' AND room.reservation_time<='"+date+" 23:59:59' GROUP BY room.doctor";
|
|
|
*/
|
|
|
if("xm_ykyy_wx".equalsIgnoreCase(wxId)){
|
|
|
onlineSql +=" AND room.reservation_time >= to_date('"+date+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
onlineSql +=" AND room.reservation_time <= to_date('"+date+" 23:59:59','YYYY-MM-DD HH24:MI:SS') ";
|
|
|
}else {
|
|
|
onlineSql = onlineSql+ "AND room.reservation_time>='"+date+" 00:00:00' AND room.reservation_time<='"+date+" 23:59:59' ";
|
|
|
}
|
|
|
List<Map<String,Object>> onlinelist = jdbcTemplate.queryForList(onlineSql);
|
|
|
if(onlinelist!=null&&onlinelist.size()>0){
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wxId)) {
|
|
|
onlineSql += " AND room.reservation_time >= to_date('" + date + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
onlineSql += " AND room.reservation_time <= to_date('" + date + " 23:59:59','YYYY-MM-DD HH24:MI:SS') ";
|
|
|
} else {
|
|
|
onlineSql = onlineSql + "AND room.reservation_time>='" + date + " 00:00:00' AND room.reservation_time<='" + date + " 23:59:59' ";
|
|
|
}
|
|
|
List<Map<String, Object>> onlinelist = jdbcTemplate.queryForList(onlineSql);
|
|
|
if (onlinelist != null && onlinelist.size() > 0) {
|
|
|
//根据身份证计算年龄
|
|
|
List<String> doctors = new ArrayList<>();
|
|
|
List<Map<String,Object>> onlines = new ArrayList<>();
|
|
|
for (Map<String,Object> onlineObj :onlinelist){
|
|
|
List<Map<String, Object>> onlines = new ArrayList<>();
|
|
|
for (Map<String, Object> onlineObj : onlinelist) {
|
|
|
String doctor = (String) onlineObj.get("doctor");
|
|
|
if (doctors!=null&&doctors.size()!=0){
|
|
|
if (!doctors.contains(doctor)){
|
|
|
if (doctors != null && doctors.size() != 0) {
|
|
|
if (!doctors.contains(doctor)) {
|
|
|
doctors.add(doctor);
|
|
|
onlines.add(onlineObj);
|
|
|
}
|
|
|
}else {
|
|
|
} else {
|
|
|
doctors.add(doctor);
|
|
|
onlines.add(onlineObj);
|
|
|
}
|
|
|
}
|
|
|
for(Map<String,Object> onlineObj :onlines){
|
|
|
for (Map<String, Object> onlineObj : onlines) {
|
|
|
String doctor = (String) onlineObj.get("doctor");
|
|
|
if(StringUtils.isNoneBlank(doctor)){
|
|
|
if(result.keySet().contains(doctor)){
|
|
|
result.get(doctor).put("visit_status",2);
|
|
|
result.get(doctor).put("patient_name",(String) onlineObj.get("patient_name"));
|
|
|
result.get(doctor).put("time_cost",Long.parseLong(onlineObj.get("time_cost").toString()));
|
|
|
}else{
|
|
|
if (StringUtils.isNoneBlank(doctor)) {
|
|
|
if (result.keySet().contains(doctor)) {
|
|
|
result.get(doctor).put("visit_status", 2);
|
|
|
result.get(doctor).put("patient_name", (String) onlineObj.get("patient_name"));
|
|
|
result.get(doctor).put("time_cost", Long.parseLong(onlineObj.get("time_cost").toString()));
|
|
|
} else {
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
jsonObject.put("id",doctor);
|
|
|
jsonObject.put("id", doctor);
|
|
|
|
|
|
if(StringUtils.isNoneBlank((String) onlineObj.get("doctorName"))){
|
|
|
jsonObject.put("doctor_name",(String) onlineObj.get("doctorName"));
|
|
|
}else{
|
|
|
jsonObject.put("doctor_name","");
|
|
|
if (StringUtils.isNoneBlank((String) onlineObj.get("doctorName"))) {
|
|
|
jsonObject.put("doctor_name", (String) onlineObj.get("doctorName"));
|
|
|
} else {
|
|
|
jsonObject.put("doctor_name", "");
|
|
|
}
|
|
|
jsonObject.put("visit_status",2);
|
|
|
jsonObject.put("waiting_count",0);
|
|
|
jsonObject.put("patient_name",(String) onlineObj.get("patient_name"));
|
|
|
jsonObject.put("time_cost",Long.parseLong(onlineObj.get("time_cost").toString()));
|
|
|
result.put(doctor,jsonObject);
|
|
|
jsonObject.put("visit_status", 2);
|
|
|
jsonObject.put("waiting_count", 0);
|
|
|
jsonObject.put("patient_name", (String) onlineObj.get("patient_name"));
|
|
|
jsonObject.put("time_cost", Long.parseLong(onlineObj.get("time_cost").toString()));
|
|
|
result.put(doctor, jsonObject);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
List<JSONObject> finalresult = new ArrayList<>();
|
|
|
List<JSONObject> finalresult = new ArrayList<>();
|
|
|
|
|
|
for (JSONObject jsonObject : result.values()) {
|
|
|
|
|
@ -3810,30 +3959,31 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
//接诊中:在线状态=在线 and 接诊状态=接诊中
|
|
|
|
|
|
//过滤空闲或者接诊中的居民
|
|
|
if(StringUtils.isBlank(consult_status)){
|
|
|
if (StringUtils.isBlank(consult_status)) {
|
|
|
finalresult.add(jsonObject);
|
|
|
}else{
|
|
|
if("0".equals(consult_status)){
|
|
|
} else {
|
|
|
if ("0".equals(consult_status)) {
|
|
|
//只显示在线
|
|
|
}else if("1".equals(consult_status) && "1".equals(jsonObject.getString("visit_status"))){
|
|
|
} else if ("1".equals(consult_status) && "1".equals(jsonObject.getString("visit_status"))) {
|
|
|
//空闲
|
|
|
finalresult.add(jsonObject);
|
|
|
}else if("2".equals(consult_status) && "2".equals(jsonObject.getString("visit_status"))){
|
|
|
} else if ("2".equals(consult_status) && "2".equals(jsonObject.getString("visit_status"))) {
|
|
|
//接诊
|
|
|
finalresult.add(jsonObject);
|
|
|
}else{}
|
|
|
} else {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
Integer room_no = 1;
|
|
|
for(JSONObject jsonObject :finalresult){
|
|
|
for (JSONObject jsonObject : finalresult) {
|
|
|
String roomname = "";
|
|
|
if(room_no < 10){
|
|
|
roomname = "0"+room_no+"诊室";
|
|
|
}else{
|
|
|
roomname = room_no+"诊室";
|
|
|
if (room_no < 10) {
|
|
|
roomname = "0" + room_no + "诊室";
|
|
|
} else {
|
|
|
roomname = room_no + "诊室";
|
|
|
}
|
|
|
jsonObject.put("room_name",roomname);
|
|
|
room_no ++;
|
|
|
jsonObject.put("room_name", roomname);
|
|
|
room_no++;
|
|
|
}
|
|
|
|
|
|
return finalresult;
|
|
@ -3845,29 +3995,30 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 获取快速咨询时间分段
|
|
|
*
|
|
|
* @param startTime
|
|
|
* @param endTime
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> findByTimeSlot(String startTime,String endTime){
|
|
|
public List<Map<String, Object>> findByTimeSlot(String startTime, String endTime) {
|
|
|
int interval = 30;
|
|
|
List<Map<String,Object>> times = new ArrayList<>();
|
|
|
List<Map<String, Object>> times = new ArrayList<>();
|
|
|
//设置上午过号时间
|
|
|
Calendar scTime = Calendar.getInstance();
|
|
|
scTime.setTime(DateUtil.stringToDate(startTime,"yyyy-MM-dd HH:mm:ss"));
|
|
|
scTime.setTime(DateUtil.stringToDate(startTime, "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
|
Calendar ecTime = Calendar.getInstance();
|
|
|
ecTime.setTime(DateUtil.stringToDate(endTime,"yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
|
while (scTime.getTime().before(ecTime.getTime())){
|
|
|
if(new Date().before(scTime.getTime())){
|
|
|
Map<String,Object> time = new HashedMap();
|
|
|
time.put("startTime",DateUtil.dateToStr(scTime.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
scTime.add(Calendar.MINUTE,interval);
|
|
|
time.put("endTime",DateUtil.dateToStr(scTime.getTime(),"yyyy-MM-dd HH:mm:ss"));
|
|
|
ecTime.setTime(DateUtil.stringToDate(endTime, "yyyy-MM-dd HH:mm:ss"));
|
|
|
|
|
|
while (scTime.getTime().before(ecTime.getTime())) {
|
|
|
if (new Date().before(scTime.getTime())) {
|
|
|
Map<String, Object> time = new HashedMap();
|
|
|
time.put("startTime", DateUtil.dateToStr(scTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
scTime.add(Calendar.MINUTE, interval);
|
|
|
time.put("endTime", DateUtil.dateToStr(scTime.getTime(), "yyyy-MM-dd HH:mm:ss"));
|
|
|
times.add(time);
|
|
|
}else{
|
|
|
scTime.add(Calendar.MINUTE,interval);
|
|
|
} else {
|
|
|
scTime.add(Calendar.MINUTE, interval);
|
|
|
}
|
|
|
}
|
|
|
return times;
|
|
@ -3875,9 +4026,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 根据疾病名称,热门部门查询医生
|
|
|
* @param orgCode 机构码
|
|
|
* @param dept 部门CODE
|
|
|
* @param diseaseKey 疾病名称
|
|
|
*
|
|
|
* @param orgCode 机构码
|
|
|
* @param dept 部门CODE
|
|
|
* @param diseaseKey 疾病名称
|
|
|
* @param jobTitleNameKey
|
|
|
* @param outpatientType
|
|
|
* @param keyName
|
|
@ -3885,10 +4037,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
* @param consutlSort
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> findDoctorByHospitalAndDiseaseAndDept(String iswork,String patientid,String orgCode, String dept,
|
|
|
String diseaseKey, String doctorNameKey,
|
|
|
String jobTitleNameKey, String outpatientType,
|
|
|
String keyName, String workingTime, String consultStatus,String chargType,String consutlSort,String isAttention,Integer page,Integer pagesize) {
|
|
|
public List<Map<String, Object>> findDoctorByHospitalAndDiseaseAndDept(String iswork, String patientid, String orgCode, String dept,
|
|
|
String diseaseKey, String doctorNameKey,
|
|
|
String jobTitleNameKey, String outpatientType,
|
|
|
String keyName, String workingTime, String consultStatus, String chargType, String consutlSort, String isAttention, Integer page, Integer pagesize) {
|
|
|
|
|
|
/* if(page >=1){
|
|
|
page --;
|
|
@ -3898,7 +4050,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
pagesize = 10;
|
|
|
}*/
|
|
|
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
" d.id AS \"id\", " +
|
|
|
" d.photo AS \"photo\", " +
|
|
|
" d.name AS \"name\", " +
|
|
@ -3913,50 +4065,50 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" a.total AS \"consultTotal\"," +
|
|
|
" h.org_name AS \"orgName\"," +
|
|
|
" h.org_code AS \"orgCode\"," +
|
|
|
" follow.id AS \"followid\" "+
|
|
|
" follow.id AS \"followid\" " +
|
|
|
" FROM " +
|
|
|
" base_doctor d " +
|
|
|
" JOIN base_doctor_hospital h ON h.doctor_code = d.id "+
|
|
|
" JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
|
|
|
" Left join ( select count(id) as total,doctor from wlyy_outpatient where status = 2 GROUP BY doctor ) a on a.doctor = d.id ";
|
|
|
|
|
|
if ("1".equalsIgnoreCase(isAttention)){
|
|
|
sql+=" join base_doctor_patient_follow follow on follow.doctor = d.id and follow.patient ='"+patientid+"' ";
|
|
|
if ("1".equalsIgnoreCase(isAttention)) {
|
|
|
sql += " join base_doctor_patient_follow follow on follow.doctor = d.id and follow.patient ='" + patientid + "' ";
|
|
|
}
|
|
|
if ("0".equalsIgnoreCase(isAttention)) {
|
|
|
sql += " join base_doctor_patient_follow follow on follow.doctor = d.id and follow.patient !='" + patientid + "' ";
|
|
|
}
|
|
|
if (StringUtils.isEmpty(isAttention)){
|
|
|
sql+=" LEFT JOIN base_doctor_patient_follow follow ON follow.patient='"+patientid+"' AND follow.doctor = d.id ";
|
|
|
if (StringUtils.isEmpty(isAttention)) {
|
|
|
sql += " LEFT JOIN base_doctor_patient_follow follow ON follow.patient='" + patientid + "' AND follow.doctor = d.id ";
|
|
|
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(diseaseKey)){
|
|
|
sql+=" left join wlyy_doctor_special_disease sp on d.id = sp.doctor_code ";
|
|
|
if (StringUtils.isNotBlank(diseaseKey)) {
|
|
|
sql += " left join wlyy_doctor_special_disease sp on d.id = sp.doctor_code ";
|
|
|
}
|
|
|
|
|
|
if(StringUtils.isNotBlank(workingTime)){
|
|
|
sql+=" JOIN wlyy_doctor_work_time wk on wk.doctor = d.id ";
|
|
|
if (StringUtils.isNotBlank(workingTime)) {
|
|
|
sql += " JOIN wlyy_doctor_work_time wk on wk.doctor = d.id ";
|
|
|
}
|
|
|
|
|
|
sql += " WHERE 1=1 ";
|
|
|
sql += " WHERE 1=1 ";
|
|
|
|
|
|
Map<String, Object> params = new HashedMap();
|
|
|
|
|
|
if(StringUtils.isBlank(chargType)){
|
|
|
sql +=" AND d.charge_type is not null ";
|
|
|
if (StringUtils.isBlank(chargType)) {
|
|
|
sql += " AND d.charge_type is not null ";
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(chargType)){
|
|
|
if("all".equals(chargType)){
|
|
|
if (StringUtils.isNotBlank(chargType)) {
|
|
|
if ("all".equals(chargType)) {
|
|
|
//不过滤
|
|
|
}else{
|
|
|
sql+=" AND d.charge_type = :chargType";
|
|
|
params.put("chargType",chargType);
|
|
|
} else {
|
|
|
sql += " AND d.charge_type = :chargType";
|
|
|
params.put("chargType", chargType);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if(StringUtils.isNotBlank(iswork)&&"1".equals(iswork)){
|
|
|
logger.info("iswork:"+iswork);
|
|
|
if (StringUtils.isNotBlank(iswork) && "1".equals(iswork)) {
|
|
|
logger.info("iswork:" + iswork);
|
|
|
Date date = new Date();
|
|
|
sql+=" AND (" +
|
|
|
sql += " AND (" +
|
|
|
" EXISTS ( " +
|
|
|
" SELECT " +
|
|
|
" 1 " +
|
|
@ -3965,84 +4117,85 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" WHERE " +
|
|
|
" t.doctor = d.id " +
|
|
|
" AND t.start_time <=:startTime" +
|
|
|
" AND t.end_time >=:endTime"+
|
|
|
" AND t.end_time >=:endTime" +
|
|
|
" ) OR " +
|
|
|
" d.consult_status = '1') ";
|
|
|
params.put("startTime",date);
|
|
|
params.put("endTime",date);
|
|
|
params.put("startTime", date);
|
|
|
params.put("endTime", date);
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(orgCode)){
|
|
|
if (StringUtils.isNotBlank(orgCode)) {
|
|
|
sql += " AND h.org_code = :orgCode";
|
|
|
params.put("orgCode",orgCode);
|
|
|
params.put("orgCode", orgCode);
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(diseaseKey)){
|
|
|
sql+=" AND sp.disease_name like :diseaseKey";
|
|
|
params.put("diseaseKey","%"+diseaseKey+"%");
|
|
|
if (StringUtils.isNotBlank(diseaseKey)) {
|
|
|
sql += " AND sp.disease_name like :diseaseKey";
|
|
|
params.put("diseaseKey", "%" + diseaseKey + "%");
|
|
|
}
|
|
|
|
|
|
if(StringUtils.isNotBlank(doctorNameKey)){
|
|
|
sql+=" AND d.name like :doctorNameKey";
|
|
|
params.put("doctorNameKey","%"+doctorNameKey+"%");
|
|
|
if (StringUtils.isNotBlank(doctorNameKey)) {
|
|
|
sql += " AND d.name like :doctorNameKey";
|
|
|
params.put("doctorNameKey", "%" + doctorNameKey + "%");
|
|
|
}
|
|
|
|
|
|
if(StringUtils.isNotBlank(dept)){
|
|
|
sql+=" AND h.dept_code = :dept ";
|
|
|
params.put("dept",dept);
|
|
|
if (StringUtils.isNotBlank(dept)) {
|
|
|
sql += " AND h.dept_code = :dept ";
|
|
|
params.put("dept", dept);
|
|
|
|
|
|
}
|
|
|
|
|
|
if(StringUtils.isNotBlank(jobTitleNameKey)){
|
|
|
sql+=" AND d.job_title_name = :jobTitleNameKey ";
|
|
|
params.put("jobTitleNameKey",jobTitleNameKey);
|
|
|
if (StringUtils.isNotBlank(jobTitleNameKey)) {
|
|
|
sql += " AND d.job_title_name = :jobTitleNameKey ";
|
|
|
params.put("jobTitleNameKey", jobTitleNameKey);
|
|
|
}
|
|
|
|
|
|
if(StringUtils.isNotBlank(outpatientType)){
|
|
|
if(outpatientType.contains("or")){
|
|
|
if (StringUtils.isNotBlank(outpatientType)) {
|
|
|
if (outpatientType.contains("or")) {
|
|
|
String[] outpatientTypeArray = outpatientType.split("or");
|
|
|
sql+= " AND ( ";
|
|
|
sql += " AND ( ";
|
|
|
|
|
|
for (int i = 0; i < outpatientTypeArray.length; i++) {
|
|
|
sql +=" d.outpatient_type like'%"+outpatientTypeArray[i]+"%'";
|
|
|
if(i != outpatientTypeArray.length -1){
|
|
|
sql += " d.outpatient_type like'%" + outpatientTypeArray[i] + "%'";
|
|
|
if (i != outpatientTypeArray.length - 1) {
|
|
|
sql += " or ";
|
|
|
}
|
|
|
}
|
|
|
sql+= " ) ";
|
|
|
}else{
|
|
|
sql+= " AND d.outpatient_type like'%"+outpatientType+"%'";
|
|
|
sql += " ) ";
|
|
|
} else {
|
|
|
sql += " AND d.outpatient_type like'%" + outpatientType + "%'";
|
|
|
}
|
|
|
}else{
|
|
|
sql+=" AND d.outpatient_type is not null ";
|
|
|
} else {
|
|
|
sql += " AND d.outpatient_type is not null ";
|
|
|
}
|
|
|
|
|
|
if(StringUtils.isNotBlank(keyName)){
|
|
|
sql+=" AND (h.dept_name like '%"+keyName+"%' or d.name like '%"+keyName+"%' or d.expertise like '%"+keyName+"%' )";
|
|
|
if (StringUtils.isNotBlank(keyName)) {
|
|
|
sql += " AND (h.dept_name like '%" + keyName + "%' or d.name like '%" + keyName + "%' or d.expertise like '%" + keyName + "%' )";
|
|
|
}
|
|
|
|
|
|
if(StringUtils.isNotBlank(workingTime)){
|
|
|
sql+=" AND wk.work_date = :workingTime ";
|
|
|
params.put("workingTime",workingTime);
|
|
|
if (StringUtils.isNotBlank(workingTime)) {
|
|
|
sql += " AND wk.work_date = :workingTime ";
|
|
|
params.put("workingTime", workingTime);
|
|
|
}
|
|
|
|
|
|
|
|
|
if(StringUtils.isNotBlank(consultStatus)){
|
|
|
sql+=" AND d.consult_status = :consultStatus ";
|
|
|
params.put("consultStatus",consultStatus);
|
|
|
if (StringUtils.isNotBlank(consultStatus)) {
|
|
|
sql += " AND d.consult_status = :consultStatus ";
|
|
|
params.put("consultStatus", consultStatus);
|
|
|
|
|
|
}
|
|
|
|
|
|
sql += " and d.del='1' order by a.total "+ consutlSort;
|
|
|
sql += " and d.del='1' order by a.total " + consutlSort;
|
|
|
|
|
|
List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,params,page,pagesize);
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, params, page, pagesize);
|
|
|
|
|
|
logger.info("findDoctorByHospitalAndDiseaseAndDept end:"+DateUtil.dateToStr(new Date(),"yyyy-MM-dd HH:mm:ss:SSS"));
|
|
|
logger.info("sql:"+sql);
|
|
|
logger.info("findDoctorByHospitalAndDiseaseAndDept end:" + DateUtil.dateToStr(new Date(), "yyyy-MM-dd HH:mm:ss:SSS"));
|
|
|
logger.info("sql:" + sql);
|
|
|
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取常见疾病、热门部门、医生拒绝接诊原因 字典
|
|
|
*
|
|
|
* @param dictName 字典名称
|
|
|
* @return
|
|
|
*/
|
|
@ -4057,22 +4210,24 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 查询排班规则
|
|
|
*
|
|
|
* @return
|
|
|
*/
|
|
|
public List<WlyyHospitalSysDictVO> findWorkRule(String dictName,String hospital){
|
|
|
List<WlyyHospitalSysDictDO> list = sysDictDao.findByHospitalAndDictNameOrderBySortAsc(hospital,dictName);
|
|
|
public List<WlyyHospitalSysDictVO> findWorkRule(String dictName, String hospital) {
|
|
|
List<WlyyHospitalSysDictDO> list = sysDictDao.findByHospitalAndDictNameOrderBySortAsc(hospital, dictName);
|
|
|
List<WlyyHospitalSysDictVO> vos = new ArrayList<>();
|
|
|
return convertToModels(list,vos,WlyyHospitalSysDictVO.class);
|
|
|
return convertToModels(list, vos, WlyyHospitalSysDictVO.class);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 保存排班规则
|
|
|
*
|
|
|
* @param workRoleJsons
|
|
|
* @return
|
|
|
*/
|
|
|
public Boolean updateWorkRule(String workRoleJsons){
|
|
|
public Boolean updateWorkRule(String workRoleJsons) {
|
|
|
List<WlyyHospitalSysDictDO> sysDicts = (List<WlyyHospitalSysDictDO>) com.alibaba.fastjson.JSONArray.parseArray(workRoleJsons, WlyyHospitalSysDictDO.class);
|
|
|
List<WlyyHospitalSysDictDO> list = sysDictDao.findByHospitalAndDictNameOrderBySortAsc(sysDicts.get(0).getHospital(),sysDicts.get(0).getDictName());
|
|
|
List<WlyyHospitalSysDictDO> list = sysDictDao.findByHospitalAndDictNameOrderBySortAsc(sysDicts.get(0).getHospital(), sysDicts.get(0).getDictName());
|
|
|
sysDictDao.delete(list);
|
|
|
sysDictDao.save(sysDicts);
|
|
|
return true;
|
|
@ -4085,19 +4240,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public Boolean saveDoctorWorkTimeJson(String type,String codes,String workTimeJson,String date)throws Exception{
|
|
|
public Boolean saveDoctorWorkTimeJson(String type, String codes, String workTimeJson, String date) throws Exception {
|
|
|
|
|
|
com.alibaba.fastjson.JSONArray works = JSON.parseArray(workTimeJson);
|
|
|
List<WlyyDoctorWorkTimeDO> wlyyDoctorWorkTimeDOs = new ArrayList<>();
|
|
|
for(int i=0;i<works.size();i++){
|
|
|
com.alibaba.fastjson.JSONObject work = (com.alibaba.fastjson.JSONObject)works.get(i);
|
|
|
WlyyDoctorWorkTimeDO timeDO = objectMapper.readValue(work.toJSONString(),WlyyDoctorWorkTimeDO.class);
|
|
|
for (int i = 0; i < works.size(); i++) {
|
|
|
com.alibaba.fastjson.JSONObject work = (com.alibaba.fastjson.JSONObject) works.get(i);
|
|
|
WlyyDoctorWorkTimeDO timeDO = objectMapper.readValue(work.toJSONString(), WlyyDoctorWorkTimeDO.class);
|
|
|
wlyyDoctorWorkTimeDOs.add(timeDO);
|
|
|
}
|
|
|
|
|
|
//全院医生
|
|
|
if("1".equals(type)){
|
|
|
String sql ="SELECT " +
|
|
|
if ("1".equals(type)) {
|
|
|
String sql = "SELECT " +
|
|
|
" DISTINCT " +
|
|
|
" d.id AS \"id\", " +
|
|
|
" d.name AS \"name\", " +
|
|
@ -4107,14 +4262,14 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" base_doctor d " +
|
|
|
" JOIN base_doctor_hospital h ON d.id= h.doctor_code " +
|
|
|
" WHERE " +
|
|
|
" h.org_code ='"+codes+"'";
|
|
|
List<Map<String,Object>> doctors = jdbcTemplate.queryForList(sql);
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOs =makeDoctorWorkTimeDOList(doctors,wlyyDoctorWorkTimeDOs);
|
|
|
saveDoctorWorkTime(workTimeDOs,date,doctors);
|
|
|
" h.org_code ='" + codes + "'";
|
|
|
List<Map<String, Object>> doctors = jdbcTemplate.queryForList(sql);
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOs = makeDoctorWorkTimeDOList(doctors, wlyyDoctorWorkTimeDOs);
|
|
|
saveDoctorWorkTime(workTimeDOs, date, doctors);
|
|
|
//科室
|
|
|
}else if("2".equals(type)){
|
|
|
} else if ("2".equals(type)) {
|
|
|
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
" DISTINCT " +
|
|
|
" d.id AS \"id\", " +
|
|
|
" d.name AS \"name\", " +
|
|
@ -4124,13 +4279,13 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" base_doctor d " +
|
|
|
" JOIN base_doctor_hospital h ON d.id= h.doctor_code " +
|
|
|
" WHERE " +
|
|
|
" h.dept_code in ("+sqlCode(codes)+")";
|
|
|
List<Map<String,Object>> doctors = jdbcTemplate.queryForList(sql);
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOs =makeDoctorWorkTimeDOList(doctors,wlyyDoctorWorkTimeDOs);
|
|
|
saveDoctorWorkTime(workTimeDOs,date,doctors);
|
|
|
" h.dept_code in (" + sqlCode(codes) + ")";
|
|
|
List<Map<String, Object>> doctors = jdbcTemplate.queryForList(sql);
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOs = makeDoctorWorkTimeDOList(doctors, wlyyDoctorWorkTimeDOs);
|
|
|
saveDoctorWorkTime(workTimeDOs, date, doctors);
|
|
|
//医生批量
|
|
|
}else if("3".equals(type)){
|
|
|
String sql ="SELECT " +
|
|
|
} else if ("3".equals(type)) {
|
|
|
String sql = "SELECT " +
|
|
|
" DISTINCT " +
|
|
|
" d.id AS \"id\", " +
|
|
|
" d.name AS \"name\", " +
|
|
@ -4140,10 +4295,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" base_doctor d " +
|
|
|
" JOIN base_doctor_hospital h ON d.id= h.doctor_code " +
|
|
|
" WHERE " +
|
|
|
" d.id in ("+sqlCode(codes)+")";
|
|
|
List<Map<String,Object>> doctors = jdbcTemplate.queryForList(sql);
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOs =makeDoctorWorkTimeDOList(doctors,wlyyDoctorWorkTimeDOs);
|
|
|
saveDoctorWorkTime(workTimeDOs,date,doctors);
|
|
|
" d.id in (" + sqlCode(codes) + ")";
|
|
|
List<Map<String, Object>> doctors = jdbcTemplate.queryForList(sql);
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOs = makeDoctorWorkTimeDOList(doctors, wlyyDoctorWorkTimeDOs);
|
|
|
saveDoctorWorkTime(workTimeDOs, date, doctors);
|
|
|
}
|
|
|
|
|
|
return true;
|
|
@ -4151,23 +4306,24 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 医生自主保存排班
|
|
|
*
|
|
|
* @param codes
|
|
|
* @param workTimeJson
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public Boolean doctorSaveWorkTimeJson(String codes,String workTimeJson,String date)throws Exception{
|
|
|
public Boolean doctorSaveWorkTimeJson(String codes, String workTimeJson, String date) throws Exception {
|
|
|
|
|
|
com.alibaba.fastjson.JSONArray works = JSON.parseArray(workTimeJson);
|
|
|
List<WlyyDoctorWorkTimeDO> wlyyDoctorWorkTimeDOs = new ArrayList<>();
|
|
|
for(int i=0;i<works.size();i++){
|
|
|
com.alibaba.fastjson.JSONObject work = (com.alibaba.fastjson.JSONObject)works.get(i);
|
|
|
WlyyDoctorWorkTimeDO timeDO = objectMapper.readValue(work.toJSONString(),WlyyDoctorWorkTimeDO.class);
|
|
|
for (int i = 0; i < works.size(); i++) {
|
|
|
com.alibaba.fastjson.JSONObject work = (com.alibaba.fastjson.JSONObject) works.get(i);
|
|
|
WlyyDoctorWorkTimeDO timeDO = objectMapper.readValue(work.toJSONString(), WlyyDoctorWorkTimeDO.class);
|
|
|
wlyyDoctorWorkTimeDOs.add(timeDO);
|
|
|
}
|
|
|
|
|
|
//医生自主排班
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
" DISTINCT " +
|
|
|
" d.id AS \"id\", " +
|
|
|
" d.name AS \"name\", " +
|
|
@ -4177,10 +4333,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" base_doctor d " +
|
|
|
" JOIN base_doctor_hospital h ON d.id= h.doctor_code " +
|
|
|
" WHERE " +
|
|
|
" d.id in ("+sqlCode(codes)+")";
|
|
|
List<Map<String,Object>> doctors = jdbcTemplate.queryForList(sql);
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOs =makeDoctorWorkTimeDOList(doctors,wlyyDoctorWorkTimeDOs);
|
|
|
return doctorSaveWorkTime(workTimeDOs,date,doctors);
|
|
|
" d.id in (" + sqlCode(codes) + ")";
|
|
|
List<Map<String, Object>> doctors = jdbcTemplate.queryForList(sql);
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOs = makeDoctorWorkTimeDOList(doctors, wlyyDoctorWorkTimeDOs);
|
|
|
return doctorSaveWorkTime(workTimeDOs);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -4191,18 +4347,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public Boolean doctorUpdateWorkTimeJson(String workTimeJson,String codes)throws Exception{
|
|
|
public Boolean doctorUpdateWorkTimeJson(String workTimeJson, String codes) throws Exception {
|
|
|
|
|
|
com.alibaba.fastjson.JSONArray works = JSON.parseArray(workTimeJson);
|
|
|
List<WlyyDoctorWorkTimeDO> wlyyDoctorWorkTimeDOs = new ArrayList<>();
|
|
|
for(int i=0;i<works.size();i++){
|
|
|
com.alibaba.fastjson.JSONObject work = (com.alibaba.fastjson.JSONObject)works.get(i);
|
|
|
WlyyDoctorWorkTimeDO timeDO = objectMapper.readValue(work.toJSONString(),WlyyDoctorWorkTimeDO.class);
|
|
|
for (int i = 0; i < works.size(); i++) {
|
|
|
com.alibaba.fastjson.JSONObject work = (com.alibaba.fastjson.JSONObject) works.get(i);
|
|
|
WlyyDoctorWorkTimeDO timeDO = objectMapper.readValue(work.toJSONString(), WlyyDoctorWorkTimeDO.class);
|
|
|
wlyyDoctorWorkTimeDOs.add(timeDO);
|
|
|
}
|
|
|
|
|
|
//医生自主排班
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
" DISTINCT " +
|
|
|
" d.id AS \"id\", " +
|
|
|
" d.name AS \"name\", " +
|
|
@ -4212,18 +4368,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" base_doctor d " +
|
|
|
" JOIN base_doctor_hospital h ON d.id= h.doctor_code " +
|
|
|
" WHERE " +
|
|
|
" d.id in ("+sqlCode(codes)+")";
|
|
|
List<Map<String,Object>> doctors = jdbcTemplate.queryForList(sql);
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOs =makeDoctorWorkTimeDOList(doctors,wlyyDoctorWorkTimeDOs);
|
|
|
for (WlyyDoctorWorkTimeDO workTimeDO:workTimeDOs){
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOList = doctorWorkTimeDao.findDoctorWorkTimeByDate(workTimeDO.getDoctor(),workTimeDO.getStartTime(),workTimeDO.getEndTime());
|
|
|
if (workTimeDOList!=null&&workTimeDOList.size()!=0){
|
|
|
throw new Exception("您选择的时间与“开始时间-结束时间”的医院排班/自己排班冲突,请重新选择!");
|
|
|
}else {
|
|
|
doctorWorkTimeDao.save(workTimeDO);
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
|
" d.id in (" + sqlCode(codes) + ")";
|
|
|
List<Map<String, Object>> doctors = jdbcTemplate.queryForList(sql);
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOs = makeDoctorWorkTimeDOList(doctors, wlyyDoctorWorkTimeDOs);
|
|
|
|
|
|
return doctorSaveWorkTime(workTimeDOs);
|
|
|
}
|
|
|
|
|
|
|
|
@ -4234,34 +4383,34 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public Boolean deleteWorkTime(String code)throws Exception{
|
|
|
public Boolean deleteWorkTime(String code) throws Exception {
|
|
|
doctorWorkTimeDao.delete(code);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
public String sqlCode(String codes){
|
|
|
public String sqlCode(String codes) {
|
|
|
String code[] = codes.split(",");
|
|
|
String rs = "";
|
|
|
for(String c:code){
|
|
|
rs+="'"+c+"',";
|
|
|
for (String c : code) {
|
|
|
rs += "'" + c + "',";
|
|
|
}
|
|
|
rs = rs.substring(0,rs.length()-1);
|
|
|
rs = rs.substring(0, rs.length() - 1);
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public List<WlyyDoctorWorkTimeDO> makeDoctorWorkTimeDOList(List<Map<String,Object>> doctors,List<WlyyDoctorWorkTimeDO> wlyyDoctorWorkTimeDOs){
|
|
|
public List<WlyyDoctorWorkTimeDO> makeDoctorWorkTimeDOList(List<Map<String, Object>> doctors, List<WlyyDoctorWorkTimeDO> wlyyDoctorWorkTimeDOs) {
|
|
|
List<WlyyDoctorWorkTimeDO> rs = new ArrayList<>();
|
|
|
if(doctors!=null&&doctors.size()>0){
|
|
|
if (doctors != null && doctors.size() > 0) {
|
|
|
//构建医生排班
|
|
|
for(Map<String,Object> doctor:doctors){
|
|
|
for(WlyyDoctorWorkTimeDO time:wlyyDoctorWorkTimeDOs){
|
|
|
for (Map<String, Object> doctor : doctors) {
|
|
|
for (WlyyDoctorWorkTimeDO time : wlyyDoctorWorkTimeDOs) {
|
|
|
WlyyDoctorWorkTimeDO t = new WlyyDoctorWorkTimeDO();
|
|
|
t.setDoctor((String)doctor.get("id"));
|
|
|
t.setDoctorName((String)doctor.get("name"));
|
|
|
t.setDoctor((String) doctor.get("id"));
|
|
|
t.setDoctorName((String) doctor.get("name"));
|
|
|
// t.setDept((String)doctor.get("dept_code"));
|
|
|
// t.setDeptName((String)doctor.get("dept_name"));
|
|
|
t.setHospital((String)doctor.get("org_code"));
|
|
|
t.setHospitalName((String)doctor.get("org_name"));
|
|
|
t.setHospital((String) doctor.get("org_code"));
|
|
|
t.setHospitalName((String) doctor.get("org_name"));
|
|
|
t.setCreateTime(new Date());
|
|
|
|
|
|
t.setType(time.getType());
|
|
@ -4276,7 +4425,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
t.setId(time.getId());
|
|
|
rs.add(t);
|
|
|
}
|
|
|
logger.info(rs.size()+"");
|
|
|
logger.info(rs.size() + "");
|
|
|
}
|
|
|
}
|
|
|
return rs;
|
|
@ -4284,33 +4433,34 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 批量更新医生多月份排班数据
|
|
|
*
|
|
|
* @param workTimeDOs
|
|
|
* @return
|
|
|
*/
|
|
|
public Boolean saveDoctorWorkTime(List<WlyyDoctorWorkTimeDO> workTimeDOs,String date,List<Map<String,Object>> doctors){
|
|
|
public Boolean saveDoctorWorkTime(List<WlyyDoctorWorkTimeDO> workTimeDOs, String date, List<Map<String, Object>> doctors) {
|
|
|
|
|
|
if(workTimeDOs!=null&&workTimeDOs.size()>0){
|
|
|
if (workTimeDOs != null && workTimeDOs.size() > 0) {
|
|
|
//按月按医生分组标记排班数据
|
|
|
List<String> workMonths = new ArrayList<>();
|
|
|
|
|
|
for(WlyyDoctorWorkTimeDO time : workTimeDOs){
|
|
|
for (WlyyDoctorWorkTimeDO time : workTimeDOs) {
|
|
|
//医生工作月份
|
|
|
String workMonth = time.getDoctor()+","+time.getDate().substring(0,7);
|
|
|
String workMonth = time.getDoctor() + "," + time.getDate().substring(0, 7);
|
|
|
//判断是否是首次插入医生月份数据,如果是首次,则删除该医生当前月份排班数据数据
|
|
|
if(!workMonths.contains(workMonth)){
|
|
|
if (!workMonths.contains(workMonth)) {
|
|
|
workMonths.add(workMonth);
|
|
|
List<WlyyDoctorWorkTimeDO> oldTimes = doctorWorkTimeDao.findDoctorWorkTimeByMonth(time.getDoctor(),"%"+time.getDate().substring(0,7)+"%");
|
|
|
List<WlyyDoctorWorkTimeDO> oldTimes = doctorWorkTimeDao.findDoctorWorkTimeByMonth(time.getDoctor(), "%" + time.getDate().substring(0, 7) + "%");
|
|
|
doctorWorkTimeDao.delete(oldTimes);
|
|
|
}
|
|
|
}
|
|
|
doctorWorkTimeDao.save(workTimeDOs);
|
|
|
}else{
|
|
|
} else {
|
|
|
//如果排班数据为空,删除医生月份下排班数据
|
|
|
if(StringUtils.isNotBlank(date)){
|
|
|
if (StringUtils.isNotBlank(date)) {
|
|
|
String d[] = date.split(",");
|
|
|
for(String dt:d){
|
|
|
for(Map<String,Object> doc:doctors){
|
|
|
List<WlyyDoctorWorkTimeDO> oldTimes = doctorWorkTimeDao.findDoctorWorkTimeByMonth((String)doc.get("id"),"%"+dt+"%");
|
|
|
for (String dt : d) {
|
|
|
for (Map<String, Object> doc : doctors) {
|
|
|
List<WlyyDoctorWorkTimeDO> oldTimes = doctorWorkTimeDao.findDoctorWorkTimeByMonth((String) doc.get("id"), "%" + dt + "%");
|
|
|
doctorWorkTimeDao.delete(oldTimes);
|
|
|
}
|
|
|
}
|
|
@ -4322,168 +4472,197 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 更新医生
|
|
|
*
|
|
|
* @param workTimeDOs
|
|
|
* @return
|
|
|
*/
|
|
|
public boolean doctorSaveWorkTime(List<WlyyDoctorWorkTimeDO> workTimeDOs,String date,List<Map<String,Object>> doctors) throws Exception {
|
|
|
for (WlyyDoctorWorkTimeDO workTimeDO:workTimeDOs){
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOList = doctorWorkTimeDao.findDoctorWorkTimeByDate(workTimeDO.getDoctor(),workTimeDO.getStartTime(),workTimeDO.getEndTime());
|
|
|
if (workTimeDOList!=null&&workTimeDOList.size()!=0){
|
|
|
throw new Exception("您选择的时间与“开始时间-结束时间”的医院排班/自己排班冲突,请重新选择!");
|
|
|
}else {
|
|
|
doctorWorkTimeDao.save(workTimeDO);
|
|
|
public boolean doctorSaveWorkTime(List<WlyyDoctorWorkTimeDO> workTimeDOs) throws Exception {
|
|
|
|
|
|
|
|
|
for (WlyyDoctorWorkTimeDO workTimeDO : workTimeDOs) {
|
|
|
|
|
|
if (workTimeDO.getStartTime().before(DateUtil.getNowDate()) || workTimeDO.getEndTime().before(DateUtil.getNowDate())) {
|
|
|
throw new Exception("您选择的时间小于系统时间,请重新选择!");
|
|
|
}
|
|
|
String dateShort = DateUtil.dateToStrShort(workTimeDO.getStartTime());
|
|
|
// StringBuilder sql=new StringBuilder("SELECT * FROM wlyy_doctor_work_time c WHERE ");
|
|
|
// sql.append(" c.start_time >= '"+dateShort+" 00:00:00 '").append(" and c.end_time <= '").append(dateShort+" 59:59:59 '");
|
|
|
// sql.append(" AND c.doctor= '").append(workTimeDO.getDoctor());
|
|
|
// sql.append("' order by c.start_time asc");
|
|
|
// logger.info("sql="+sql.toString());
|
|
|
// List<WlyyDoctorWorkTimeDO> workTimeDOList = jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper<>(WlyyDoctorWorkTimeDO.class));
|
|
|
List<WlyyDoctorWorkTimeDO> workTimeDOList = doctorWorkTimeDao.findDoctorWorkTimeByTime(workTimeDO.getDoctor(), DateUtil.stringToDate(dateShort + " 00:00:00", "yyyy-MM-dd HH:mm:ss"), DateUtil.stringToDate(dateShort + " 23:59:59", "yyyy-MM-dd HH:mm:ss"));
|
|
|
for (WlyyDoctorWorkTimeDO one : workTimeDOList) {
|
|
|
if (one.getId().equalsIgnoreCase(workTimeDO.getId())) {
|
|
|
continue;
|
|
|
}
|
|
|
try {
|
|
|
//与医院与自己排班比较 是否冲突 第一组最后时间小于等于第二组最前时间 || 第一组最前时间大于等于第二组最后时间
|
|
|
if (one.getEndTime().before(workTimeDO.getStartTime()) || one.getStartTime().after(workTimeDO.getEndTime())) {
|
|
|
|
|
|
} else {
|
|
|
throw new Exception("您选择的时间与“开始时间-结束时间”的医院排班/自己排班冲突,请重新选择!");
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
doctorWorkTimeDao.save(workTimeDO);
|
|
|
|
|
|
}
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 查询某个医生某个月份排班记录
|
|
|
*
|
|
|
* @param doctor
|
|
|
* @param date
|
|
|
* @return
|
|
|
*/
|
|
|
public List<WlyyDoctorWorkTimeVO> findDoctorWorkTimeByMonth(String doctor,String date,String startDate,String endDate){
|
|
|
public List<WlyyDoctorWorkTimeVO> findDoctorWorkTimeByMonth(String doctor, String date, String startDate, String endDate) {
|
|
|
|
|
|
if(StringUtils.isNotBlank(date)){
|
|
|
List<WlyyDoctorWorkTimeDO> times = doctorWorkTimeDao.findDoctorWorkTimeByMonth(doctor,"%"+date+"%");
|
|
|
if (StringUtils.isNotBlank(date)) {
|
|
|
List<WlyyDoctorWorkTimeDO> times = doctorWorkTimeDao.findDoctorWorkTimeByMonth(doctor, "%" + date + "%");
|
|
|
List<WlyyDoctorWorkTimeVO> timeVOs = new ArrayList<>();
|
|
|
return convertToModels(times,timeVOs,WlyyDoctorWorkTimeVO.class);
|
|
|
}else{
|
|
|
List<WlyyDoctorWorkTimeDO> times = doctorWorkTimeDao.findDoctorWorkTimeByTime(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"));
|
|
|
return convertToModels(times, timeVOs, WlyyDoctorWorkTimeVO.class);
|
|
|
} else {
|
|
|
List<WlyyDoctorWorkTimeDO> times = doctorWorkTimeDao.findDoctorWorkTimeByTime(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"));
|
|
|
List<WlyyDoctorWorkTimeVO> timeVOs = new ArrayList<>();
|
|
|
return convertToModels(times,timeVOs,WlyyDoctorWorkTimeVO.class);
|
|
|
return convertToModels(times, timeVOs, WlyyDoctorWorkTimeVO.class);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> findPatientInfo(String patient){
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
public Map<String, Object> findPatientInfo(String patient) {
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
BasePatientDO basePatientDO = basePatientDao.findById(patient);
|
|
|
PatientMedicareCardDO patientMedicareCardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01",patient,"1");
|
|
|
rs.put("id",patient);
|
|
|
rs.put("name",basePatientDO.getName());
|
|
|
rs.put("sex",basePatientDO.getSex());
|
|
|
rs.put("provinceCode",basePatientDO.getProvinceCode());
|
|
|
rs.put("provinceName",basePatientDO.getProvinceName());
|
|
|
rs.put("cityCode",basePatientDO.getCityCode());
|
|
|
rs.put("cityName",basePatientDO.getCityName());
|
|
|
rs.put("townCode",basePatientDO.getTownCode());
|
|
|
rs.put("townName",basePatientDO.getTownName());
|
|
|
rs.put("idcard",basePatientDO.getIdcard());
|
|
|
rs.put("age",IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
|
|
|
rs.put("mobile",basePatientDO.getMobile());
|
|
|
rs.put("photo",basePatientDO.getPhoto());
|
|
|
rs.put("address",basePatientDO.getAddress());
|
|
|
if (patientMedicareCardDO!=null){
|
|
|
rs.put("ssc",patientMedicareCardDO.getCode());
|
|
|
}else {
|
|
|
rs.put("ssc","");
|
|
|
PatientMedicareCardDO patientMedicareCardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01", patient, "1");
|
|
|
rs.put("id", patient);
|
|
|
rs.put("name", basePatientDO.getName());
|
|
|
rs.put("sex", basePatientDO.getSex());
|
|
|
rs.put("provinceCode", basePatientDO.getProvinceCode());
|
|
|
rs.put("provinceName", basePatientDO.getProvinceName());
|
|
|
rs.put("cityCode", basePatientDO.getCityCode());
|
|
|
rs.put("cityName", basePatientDO.getCityName());
|
|
|
rs.put("townCode", basePatientDO.getTownCode());
|
|
|
rs.put("townName", basePatientDO.getTownName());
|
|
|
rs.put("idcard", basePatientDO.getIdcard());
|
|
|
rs.put("age", IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
|
|
|
rs.put("mobile", basePatientDO.getMobile());
|
|
|
rs.put("photo", basePatientDO.getPhoto());
|
|
|
rs.put("address", basePatientDO.getAddress());
|
|
|
if (patientMedicareCardDO != null) {
|
|
|
rs.put("ssc", patientMedicareCardDO.getCode());
|
|
|
} else {
|
|
|
rs.put("ssc", "");
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
|
|
|
public Map<String,Object> updatePatientInfo(String patient,String name,String idcard,String ssc,Integer sex,String townCode,String townName,String committeeCode,String committeeName,String address,String photo,String mobile,String province,String provinceName,String city,String cityName){
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
public Map<String, Object> updatePatientInfo(String patient, String name, String idcard, String ssc, Integer sex, String townCode, String townName, String committeeCode, String committeeName, String address, String photo, String mobile, String province, String provinceName, String city, String cityName) {
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
BasePatientDO basePatientDO = basePatientDao.findById(patient);
|
|
|
PatientMedicareCardDO patientMedicareCardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01",patient,"1");
|
|
|
if (StringUtils.isNoneBlank(name)){
|
|
|
PatientMedicareCardDO patientMedicareCardDO = basePatientMedicareCardDao.findByTypeAndPatientCodeAndDel("A_01", patient, "1");
|
|
|
if (StringUtils.isNoneBlank(name)) {
|
|
|
basePatientDO.setName(name);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(idcard)){
|
|
|
if (StringUtils.isNoneBlank(idcard)) {
|
|
|
basePatientDO.setIdcard(idcard);
|
|
|
}
|
|
|
if (sex!=null){
|
|
|
if (sex != null) {
|
|
|
basePatientDO.setSex(sex);
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNoneBlank(province)){
|
|
|
if (StringUtils.isNoneBlank(province)) {
|
|
|
basePatientDO.setProvinceCode(province);
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNoneBlank(provinceName)){
|
|
|
if (StringUtils.isNoneBlank(provinceName)) {
|
|
|
basePatientDO.setProvinceName(provinceName);
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNoneBlank(city)){
|
|
|
if (StringUtils.isNoneBlank(city)) {
|
|
|
basePatientDO.setCityCode(city);
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNoneBlank(cityName)){
|
|
|
if (StringUtils.isNoneBlank(cityName)) {
|
|
|
basePatientDO.setCityName(cityName);
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNoneBlank(townCode)){
|
|
|
if (StringUtils.isNoneBlank(townCode)) {
|
|
|
basePatientDO.setTownCode(townCode);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(townName)){
|
|
|
if (StringUtils.isNoneBlank(townName)) {
|
|
|
basePatientDO.setTownName(townName);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(committeeCode)){
|
|
|
if (StringUtils.isNoneBlank(committeeCode)) {
|
|
|
basePatientDO.setCommitteeCode(committeeCode);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(committeeName)){
|
|
|
if (StringUtils.isNoneBlank(committeeName)) {
|
|
|
basePatientDO.setCommitteeName(committeeName);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(address)){
|
|
|
if (StringUtils.isNoneBlank(address)) {
|
|
|
basePatientDO.setAddress(address);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(photo)){
|
|
|
if (StringUtils.isNoneBlank(photo)) {
|
|
|
basePatientDO.setPhoto(photo);
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNoneBlank(mobile)){
|
|
|
if (StringUtils.isNoneBlank(mobile)) {
|
|
|
basePatientDO.setMobile(mobile);
|
|
|
}
|
|
|
basePatientDO = basePatientDao.save(basePatientDO);
|
|
|
if (patientMedicareCardDO!=null){
|
|
|
if (patientMedicareCardDO != null) {
|
|
|
patientMedicareCardDO.setCode(ssc);
|
|
|
patientMedicareCardDO=basePatientMedicareCardDao.save(patientMedicareCardDO);
|
|
|
}else {
|
|
|
patientMedicareCardDO = basePatientMedicareCardDao.save(patientMedicareCardDO);
|
|
|
} else {
|
|
|
patientMedicareCardDO = new PatientMedicareCardDO();
|
|
|
patientMedicareCardDO.setCode(ssc);
|
|
|
patientMedicareCardDO.setType("A_01");
|
|
|
patientMedicareCardDO.setParentType("A");
|
|
|
patientMedicareCardDO.setDel("1");
|
|
|
patientMedicareCardDO.setPatientCode(patient);
|
|
|
patientMedicareCardDO=basePatientMedicareCardDao.save(patientMedicareCardDO);
|
|
|
}
|
|
|
rs.put("id",patient);
|
|
|
rs.put("name",basePatientDO.getName());
|
|
|
rs.put("sex",basePatientDO.getSex());
|
|
|
rs.put("provinceCode",basePatientDO.getProvinceCode());
|
|
|
rs.put("provinceName",basePatientDO.getProvinceName());
|
|
|
rs.put("cityCode",basePatientDO.getCityCode());
|
|
|
rs.put("cityName",basePatientDO.getCityName());
|
|
|
rs.put("townCode",basePatientDO.getTownCode());
|
|
|
rs.put("townName",basePatientDO.getTownName());
|
|
|
rs.put("idcard",basePatientDO.getIdcard());
|
|
|
rs.put("age",IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
|
|
|
rs.put("mobile",basePatientDO.getMobile());
|
|
|
rs.put("photo",basePatientDO.getPhoto());
|
|
|
rs.put("address",basePatientDO.getAddress());
|
|
|
if (patientMedicareCardDO!=null){
|
|
|
rs.put("ssc",patientMedicareCardDO.getCode());
|
|
|
}else {
|
|
|
rs.put("ssc","");
|
|
|
patientMedicareCardDO = basePatientMedicareCardDao.save(patientMedicareCardDO);
|
|
|
}
|
|
|
rs.put("id", patient);
|
|
|
rs.put("name", basePatientDO.getName());
|
|
|
rs.put("sex", basePatientDO.getSex());
|
|
|
rs.put("provinceCode", basePatientDO.getProvinceCode());
|
|
|
rs.put("provinceName", basePatientDO.getProvinceName());
|
|
|
rs.put("cityCode", basePatientDO.getCityCode());
|
|
|
rs.put("cityName", basePatientDO.getCityName());
|
|
|
rs.put("townCode", basePatientDO.getTownCode());
|
|
|
rs.put("townName", basePatientDO.getTownName());
|
|
|
rs.put("idcard", basePatientDO.getIdcard());
|
|
|
rs.put("age", IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
|
|
|
rs.put("mobile", basePatientDO.getMobile());
|
|
|
rs.put("photo", basePatientDO.getPhoto());
|
|
|
rs.put("address", basePatientDO.getAddress());
|
|
|
if (patientMedicareCardDO != null) {
|
|
|
rs.put("ssc", patientMedicareCardDO.getCode());
|
|
|
} else {
|
|
|
rs.put("ssc", "");
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> getPatientInfoMap(BasePatientDO basePatientDO){
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
rs.put("id",basePatientDO.getId());
|
|
|
rs.put("name",basePatientDO.getName());
|
|
|
rs.put("sex",basePatientDO.getSex());
|
|
|
rs.put("provinceCode",basePatientDO.getProvinceCode());
|
|
|
rs.put("provinceName",basePatientDO.getProvinceName());
|
|
|
rs.put("cityCode",basePatientDO.getCityCode());
|
|
|
rs.put("cityName",basePatientDO.getCityName());
|
|
|
rs.put("townCode",basePatientDO.getTownCode());
|
|
|
rs.put("townName",basePatientDO.getTownName());
|
|
|
rs.put("idcard",basePatientDO.getIdcard());
|
|
|
rs.put("age",IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
|
|
|
rs.put("mobile",basePatientDO.getMobile());
|
|
|
public Map<String, Object> getPatientInfoMap(BasePatientDO basePatientDO) {
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
rs.put("id", basePatientDO.getId());
|
|
|
rs.put("name", basePatientDO.getName());
|
|
|
rs.put("sex", basePatientDO.getSex());
|
|
|
rs.put("provinceCode", basePatientDO.getProvinceCode());
|
|
|
rs.put("provinceName", basePatientDO.getProvinceName());
|
|
|
rs.put("cityCode", basePatientDO.getCityCode());
|
|
|
rs.put("cityName", basePatientDO.getCityName());
|
|
|
rs.put("townCode", basePatientDO.getTownCode());
|
|
|
rs.put("townName", basePatientDO.getTownName());
|
|
|
rs.put("idcard", basePatientDO.getIdcard());
|
|
|
rs.put("age", IdCardUtil.getAgeForIdcard(basePatientDO.getIdcard()));
|
|
|
rs.put("mobile", basePatientDO.getMobile());
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
@ -4491,18 +4670,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
@Autowired
|
|
|
private FileUploadService fileUploadService;
|
|
|
|
|
|
public Map<String,Object> test() throws Exception{
|
|
|
public Map<String, Object> test() throws Exception {
|
|
|
entranceService.MS02014(false);
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
public String test2(String no) throws Exception{
|
|
|
public String test2(String no) throws Exception {
|
|
|
TransRequest e = new TransRequest();
|
|
|
e.setMethod("ehc.ehealthcard.auth.query");
|
|
|
e.setApp_id("1BQA48ETK000A718A8C000001FFAA482");
|
|
|
e.setTerm_id("35020010001");
|
|
|
e.setVersion("X.M.0.1");
|
|
|
e.setTimestamp(DateUtil.dateToStr(new Date(),"yyyyMMddHHmmss"));
|
|
|
e.setTimestamp(DateUtil.dateToStr(new Date(), "yyyyMMddHHmmss"));
|
|
|
e.setSign_type("MD5");
|
|
|
e.setEnc_type("AES");
|
|
|
com.alibaba.fastjson.JSONObject bizContent = new com.alibaba.fastjson.JSONObject();
|
|
@ -4516,21 +4695,21 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取正在进行中的视频复诊/协同门诊
|
|
|
*
|
|
|
* @param doctor
|
|
|
* @param general_doctor
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> getVideoPrescriptionByDoctor(String doctor,String general_doctor,String wxId) {
|
|
|
public List<Map<String, Object>> getVideoPrescriptionByDoctor(String doctor, String general_doctor, String wxId) {
|
|
|
String condition = "";
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
condition+= "to_char(room.reservation_time,'YYYY-MM-DD hh24:mi:ss') AS \"time\",";
|
|
|
}else{
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
condition += "to_char(room.reservation_time,'YYYY-MM-DD hh24:mi:ss') AS \"time\",";
|
|
|
} else {
|
|
|
condition += "date_format(room.reservation_time ,'%Y-%m-%d %H:%i:%S' ) AS \"time\",";
|
|
|
}
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
"room.outpatient_id AS \"id\"," +
|
|
|
"room.patient_id AS \"patient_id\"," +
|
|
|
"room.patient_name AS \"name\"," +
|
|
@ -4539,7 +4718,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"patient.photo AS \"photo\"," +
|
|
|
"patient.birthday AS \"birthday\"," +
|
|
|
"patient.mobile AS \"mobile\"," +
|
|
|
"room.consult_type AS \"consult_type\"," +condition +
|
|
|
"room.consult_type AS \"consult_type\"," + condition +
|
|
|
"room.reservation_type AS \"reservation_type\"," +
|
|
|
"outpatient.disease_img AS \"disease_img\"," +
|
|
|
"outpatient.description AS \"description\"," +
|
|
@ -4556,48 +4735,49 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"AND consult.relation_code=outpatient.id " +
|
|
|
"AND outpatient.pay_status=1 " +
|
|
|
"AND consult.status = 0 ";
|
|
|
if(StringUtils.isNoneBlank(doctor)){
|
|
|
sql = sql +"AND room.doctor='"+doctor+"' " +
|
|
|
if (StringUtils.isNoneBlank(doctor)) {
|
|
|
sql = sql + "AND room.doctor='" + doctor + "' " +
|
|
|
"AND room.consult_type= 2";
|
|
|
}else if(StringUtils.isNoneBlank(general_doctor)){
|
|
|
sql = sql +"AND room.general_doctor='"+general_doctor+"' " +
|
|
|
} else if (StringUtils.isNoneBlank(general_doctor)) {
|
|
|
sql = sql + "AND room.general_doctor='" + general_doctor + "' " +
|
|
|
"AND room.consult_type= 2";
|
|
|
}else{}
|
|
|
} else {
|
|
|
}
|
|
|
|
|
|
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
if(list!=null&&list.size()>0){
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
if (list != null && list.size() > 0) {
|
|
|
//根据身份证计算年龄
|
|
|
for(Map<String,Object> outpatient :list){
|
|
|
String idcard = (String)outpatient.get("idcard");
|
|
|
String patient_id = (String)outpatient.get("patient_id");
|
|
|
outpatient.put("age",DateUtil.getAgeForIdcard(idcard));
|
|
|
|
|
|
String outpatient_id = (String)outpatient.get("id");
|
|
|
|
|
|
String isAlert = redisTemplate.opsForValue().get("patient_alert_"+patient_id);
|
|
|
if(StringUtils.isBlank(isAlert)){
|
|
|
outpatient.put("alert_tag",0);//已提醒
|
|
|
}else{
|
|
|
outpatient.put("alert_tag",1);//未提醒
|
|
|
for (Map<String, Object> outpatient : list) {
|
|
|
String idcard = (String) outpatient.get("idcard");
|
|
|
String patient_id = (String) outpatient.get("patient_id");
|
|
|
outpatient.put("age", DateUtil.getAgeForIdcard(idcard));
|
|
|
|
|
|
String outpatient_id = (String) outpatient.get("id");
|
|
|
|
|
|
String isAlert = redisTemplate.opsForValue().get("patient_alert_" + patient_id);
|
|
|
if (StringUtils.isBlank(isAlert)) {
|
|
|
outpatient.put("alert_tag", 0);//已提醒
|
|
|
} else {
|
|
|
outpatient.put("alert_tag", 1);//未提醒
|
|
|
}
|
|
|
outpatient.put("online_tag",1);//未提醒
|
|
|
outpatient.put("online_tag", 1);//未提醒
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public String generalDoctorWaitingNumber(String doctor,String wxId,String outpatientId){
|
|
|
public String generalDoctorWaitingNumber(String doctor, String wxId, String outpatientId) {
|
|
|
String condition = "";
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
condition+= "to_char(room.reservation_time,'YYYY-MM-DD hh24:mi:ss') AS \"time\",";
|
|
|
condition+= "to_char(room.reservation_time,'YYYY-MM-DD') AS \"group_date\",";
|
|
|
}else{
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
condition += "to_char(room.reservation_time,'YYYY-MM-DD hh24:mi:ss') AS \"time\",";
|
|
|
condition += "to_char(room.reservation_time,'YYYY-MM-DD') AS \"group_date\",";
|
|
|
} else {
|
|
|
condition += "date_format(room.reservation_time ,'%Y-%m-%d %H:%i:%S' ) AS \"time\",";
|
|
|
condition += "date_format(room.reservation_time ,'%Y-%m-%d' ) AS \"group_date\",";
|
|
|
}
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
"room.outpatient_id AS \"id\"," +
|
|
|
"room.patient_id AS \"patient_id\"," +
|
|
|
"room.patient_name AS \"name\"," +
|
|
@ -4607,7 +4787,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"patient.birthday AS \"birthday\"," +
|
|
|
"patient.mobile AS \"mobile\"," +
|
|
|
"outpatient.mobile AS \"outpatient_mobile\"," +
|
|
|
"room.consult_type AS \"consult_type\"," +condition+
|
|
|
"room.consult_type AS \"consult_type\"," + condition +
|
|
|
"room.reservation_type AS \"reservation_type\"," +
|
|
|
"outpatient.disease_img AS \"disease_img\"," +
|
|
|
"outpatient.description AS \"description\"," +
|
|
@ -4622,40 +4802,40 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"AND room.outpatient_id=outpatient.id " +
|
|
|
"AND outpatient.status = 0 " +
|
|
|
"AND outpatient.pay_status = 1 " +
|
|
|
"AND room.doctor='"+doctor+"' " +
|
|
|
"AND room.doctor='" + doctor + "' " +
|
|
|
"AND room.reservation_time is not null " +
|
|
|
"AND room.consult_type= 2 ";/* +
|
|
|
"AND room.reservation_time >= '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' order by room.reservation_time ASC ";
|
|
|
// "AND room.reservation_time>='"+DateUtil.getStringDate("yyyy-MM-dd")+" 00:00:00"+"' ";*/
|
|
|
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sql+=" AND room.reservation_time >= to_date('"+DateUtil.dateToStrShort(new Date())+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
sql +=" AND room.reservation_time >= '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' ";
|
|
|
}
|
|
|
sql+=" order by room.reservation_time ASC ";
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
Integer waitCount =1;
|
|
|
for (Map<String,Object> map:list){
|
|
|
if (!map.get("id").toString().equalsIgnoreCase(outpatientId)){
|
|
|
waitCount+=1;
|
|
|
}else{
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sql += " AND room.reservation_time >= to_date('" + DateUtil.dateToStrShort(new Date()) + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sql += " AND room.reservation_time >= '" + DateUtil.dateToStrShort(new Date()) + " 00:00:00' ";
|
|
|
}
|
|
|
sql += " order by room.reservation_time ASC ";
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
Integer waitCount = 1;
|
|
|
for (Map<String, Object> map : list) {
|
|
|
if (!map.get("id").toString().equalsIgnoreCase(outpatientId)) {
|
|
|
waitCount += 1;
|
|
|
} else {
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
return waitCount.toString();
|
|
|
}
|
|
|
|
|
|
public com.alibaba.fastjson.JSONArray getWaitingForVisitVideoPrescriptionByDoctor(String doctor,String wxId) {
|
|
|
public com.alibaba.fastjson.JSONArray getWaitingForVisitVideoPrescriptionByDoctor(String doctor, String wxId) {
|
|
|
String condition = "";
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
condition+= "to_char(room.reservation_time,'YYYY-MM-DD hh24:mi:ss') AS \"time\",";
|
|
|
condition+= "to_char(room.reservation_time,'YYYY-MM-DD') AS \"group_date\",";
|
|
|
}else{
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
condition += "to_char(room.reservation_time,'YYYY-MM-DD hh24:mi:ss') AS \"time\",";
|
|
|
condition += "to_char(room.reservation_time,'YYYY-MM-DD') AS \"group_date\",";
|
|
|
} else {
|
|
|
condition += "date_format(room.reservation_time ,'%Y-%m-%d %H:%i:%S' ) AS \"time\",";
|
|
|
condition += "date_format(room.reservation_time ,'%Y-%m-%d' ) AS \"group_date\",";
|
|
|
}
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
"room.outpatient_id AS \"id\"," +
|
|
|
"room.patient_id AS \"patient_id\"," +
|
|
|
"room.patient_name AS \"name\"," +
|
|
@ -4665,7 +4845,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"patient.birthday AS \"birthday\"," +
|
|
|
"patient.mobile AS \"mobile\"," +
|
|
|
"outpatient.mobile AS \"outpatient_mobile\"," +
|
|
|
"room.consult_type AS \"consult_type\"," +condition+
|
|
|
"room.consult_type AS \"consult_type\"," + condition +
|
|
|
"room.reservation_type AS \"reservation_type\"," +
|
|
|
"outpatient.disease_img AS \"disease_img\"," +
|
|
|
"outpatient.description AS \"description\"," +
|
|
@ -4680,61 +4860,61 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"AND room.outpatient_id=outpatient.id " +
|
|
|
"AND outpatient.status = 0 " +
|
|
|
"AND outpatient.pay_status = 1 " +
|
|
|
"AND room.doctor='"+doctor+"' " +
|
|
|
"AND room.doctor='" + doctor + "' " +
|
|
|
"AND room.reservation_time is not null " +
|
|
|
"AND room.consult_type= 2 ";/* +
|
|
|
"AND room.reservation_time >= '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' order by room.reservation_time ASC ";
|
|
|
// "AND room.reservation_time>='"+DateUtil.getStringDate("yyyy-MM-dd")+" 00:00:00"+"' ";*/
|
|
|
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sql+=" AND room.reservation_time >= to_date('"+DateUtil.dateToStrShort(new Date())+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
sql +=" AND room.reservation_time >= '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' ";
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sql += " AND room.reservation_time >= to_date('" + DateUtil.dateToStrShort(new Date()) + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sql += " AND room.reservation_time >= '" + DateUtil.dateToStrShort(new Date()) + " 00:00:00' ";
|
|
|
}
|
|
|
sql+=" order by room.reservation_time ASC ";
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
sql += " order by room.reservation_time ASC ";
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
Set<String> datelist = new HashSet<>();
|
|
|
|
|
|
HashMap<String,List<Map<String,Object>>> waitinglist = new HashMap<>();
|
|
|
HashMap<String, List<Map<String, Object>>> waitinglist = new HashMap<>();
|
|
|
|
|
|
if(list!=null&&list.size()>0){
|
|
|
if (list != null && list.size() > 0) {
|
|
|
//根据身份证计算年龄
|
|
|
for(Map<String,Object> outpatient :list){
|
|
|
String idcard = (String)outpatient.get("idcard");
|
|
|
String patient_id = (String)outpatient.get("patient_id");
|
|
|
outpatient.put("age",DateUtil.getAgeForIdcard(idcard));
|
|
|
for (Map<String, Object> outpatient : list) {
|
|
|
String idcard = (String) outpatient.get("idcard");
|
|
|
String patient_id = (String) outpatient.get("patient_id");
|
|
|
outpatient.put("age", DateUtil.getAgeForIdcard(idcard));
|
|
|
|
|
|
String group_date = (String)outpatient.get("group_date");
|
|
|
String group_date = (String) outpatient.get("group_date");
|
|
|
|
|
|
if(waitinglist.keySet().contains(group_date)){
|
|
|
if (waitinglist.keySet().contains(group_date)) {
|
|
|
waitinglist.get(group_date).add(outpatient);
|
|
|
}else{
|
|
|
List<Map<String,Object>> _cu = new ArrayList<>();
|
|
|
} else {
|
|
|
List<Map<String, Object>> _cu = new ArrayList<>();
|
|
|
_cu.add(outpatient);
|
|
|
waitinglist.put(group_date,_cu);
|
|
|
waitinglist.put(group_date, _cu);
|
|
|
}
|
|
|
|
|
|
//全科医生来源
|
|
|
outpatient.put("general_doctor_info","");//全科医生名字
|
|
|
outpatient.put("general_doctor_hospital","");//全科医生社区
|
|
|
String isAlert = redisTemplate.opsForValue().get("patient_alert_"+patient_id);
|
|
|
if(StringUtils.isBlank(isAlert)){
|
|
|
outpatient.put("alert_tag",0);//已提醒
|
|
|
}else{
|
|
|
outpatient.put("alert_tag",1);//未提醒
|
|
|
outpatient.put("general_doctor_info", "");//全科医生名字
|
|
|
outpatient.put("general_doctor_hospital", "");//全科医生社区
|
|
|
String isAlert = redisTemplate.opsForValue().get("patient_alert_" + patient_id);
|
|
|
if (StringUtils.isBlank(isAlert)) {
|
|
|
outpatient.put("alert_tag", 0);//已提醒
|
|
|
} else {
|
|
|
outpatient.put("alert_tag", 1);//未提醒
|
|
|
}
|
|
|
|
|
|
outpatient.put("online_tag",1);//在线状态
|
|
|
outpatient.put("online_tag", 1);//在线状态
|
|
|
|
|
|
String outpatient_mobile = (String)outpatient.get("outpatient_mobile");
|
|
|
if(StringUtils.isNoneBlank(outpatient_mobile)){
|
|
|
outpatient.put("mobile",outpatient_mobile);//复诊有手机号,传递复诊手机号
|
|
|
String outpatient_mobile = (String) outpatient.get("outpatient_mobile");
|
|
|
if (StringUtils.isNoneBlank(outpatient_mobile)) {
|
|
|
outpatient.put("mobile", outpatient_mobile);//复诊有手机号,传递复诊手机号
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
Collection<String> keyset= waitinglist.keySet();
|
|
|
Collection<String> keyset = waitinglist.keySet();
|
|
|
List<String> _list = new ArrayList<String>(keyset);
|
|
|
|
|
|
//对key键值按字典升序排序
|
|
@ -4744,12 +4924,12 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
for (int i = 0; i < _list.size(); i++) {
|
|
|
com.alibaba.fastjson.JSONObject object = new com.alibaba.fastjson.JSONObject();
|
|
|
if(_list.get(i).equals(DateUtil.getStringDateShort())){
|
|
|
object.put("day","today");
|
|
|
}else{
|
|
|
object.put("day",_list.get(i));
|
|
|
if (_list.get(i).equals(DateUtil.getStringDateShort())) {
|
|
|
object.put("day", "today");
|
|
|
} else {
|
|
|
object.put("day", _list.get(i));
|
|
|
}
|
|
|
object.put("data",waitinglist.get(_list.get(i)));
|
|
|
object.put("data", waitinglist.get(_list.get(i)));
|
|
|
result.add(object);
|
|
|
}
|
|
|
return result;
|
|
@ -4757,14 +4937,15 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 医生抢单(视频)
|
|
|
*
|
|
|
* @param outpatientCode
|
|
|
* @param doctor
|
|
|
*/
|
|
|
public void pickVideoPrescripitonWaitingPeople(String outpatientCode, String doctor) throws Exception{
|
|
|
public void pickVideoPrescripitonWaitingPeople(String outpatientCode, String doctor) throws Exception {
|
|
|
BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(doctor);
|
|
|
List<WlyyHospitalWaitingRoomDO> roomDOs =hospitalWaitingRoomDao.findByOutpatientId(outpatientCode);
|
|
|
if(roomDOs!=null&&roomDOs.size()>0){
|
|
|
for(WlyyHospitalWaitingRoomDO roomDO:roomDOs){
|
|
|
List<WlyyHospitalWaitingRoomDO> roomDOs = hospitalWaitingRoomDao.findByOutpatientId(outpatientCode);
|
|
|
if (roomDOs != null && roomDOs.size() > 0) {
|
|
|
for (WlyyHospitalWaitingRoomDO roomDO : roomDOs) {
|
|
|
roomDO.setDoctor(doctor);
|
|
|
roomDO.setDoctorName(baseDoctorDO.getName());
|
|
|
hospitalWaitingRoomDao.save(roomDO);
|
|
@ -4779,14 +4960,15 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 复诊视频咨询人数, 协同门诊人数
|
|
|
*
|
|
|
* @param doctor
|
|
|
* @param outpatient_type 1复诊 2协同
|
|
|
* @return
|
|
|
*/
|
|
|
public Long doctorIndexConsultCount(String doctor,String outpatient_type) {
|
|
|
public Long doctorIndexConsultCount(String doctor, String outpatient_type) {
|
|
|
|
|
|
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
"count(room.outpatient_id) AS total " +
|
|
|
"FROM " +
|
|
|
"wlyy_hospital_waiting_room room," +
|
|
@ -4798,18 +4980,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"AND room.outpatient_id=outpatient.id " +
|
|
|
"AND consult.relation_code=outpatient.id " +
|
|
|
"AND consult.status = 0 " +
|
|
|
"AND outpatient_type.doctor='"+outpatient_type+"'" +
|
|
|
"AND room.doctor='"+doctor+"' ";
|
|
|
if("1".equals(outpatient_type)){
|
|
|
"AND outpatient_type.doctor='" + outpatient_type + "'" +
|
|
|
"AND room.doctor='" + doctor + "' ";
|
|
|
if ("1".equals(outpatient_type)) {
|
|
|
sql = sql + " AND room.consult_type= 2 ";
|
|
|
}else if("2".equals(outpatient_type)){
|
|
|
}else{}
|
|
|
} else if ("2".equals(outpatient_type)) {
|
|
|
} else {
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
Long videoOnlineCount = 0l;
|
|
|
if (rstotal != null && rstotal.size() > 0) {
|
|
|
videoOnlineCount = Long.parseLong(rstotal.get(0).get("total").toString()) ;
|
|
|
videoOnlineCount = Long.parseLong(rstotal.get(0).get("total").toString());
|
|
|
}
|
|
|
|
|
|
return videoOnlineCount;
|
|
@ -4819,37 +5002,38 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 根据门诊唯一号,处方号,到顺丰下单,下单成功返回面单信息
|
|
|
* @param admNo 门诊唯一号
|
|
|
*
|
|
|
* @param admNo 门诊唯一号
|
|
|
* @param realOrder 处方号
|
|
|
* @return
|
|
|
*/
|
|
|
public Object getSFExpressInfo(String admNo,String realOrder,String wxId)throws Exception {
|
|
|
public Object getSFExpressInfo(String admNo, String realOrder, String wxId) throws Exception {
|
|
|
|
|
|
//根据门诊唯一号取就诊记录
|
|
|
// List<WlyyOutpatientDO> wlyyOutpatientDOs = outpatientDao.findByAdmNo(admNo);
|
|
|
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDOS = prescriptionDao.findByAdmNoAndRealOrder(admNo,realOrder);
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDOS = prescriptionDao.findByAdmNoAndRealOrder(admNo, realOrder);
|
|
|
|
|
|
Object result = "";
|
|
|
|
|
|
System.out.println("获取顺丰物流面单信息:wlyyPrescriptionDOS != null="+wlyyPrescriptionDOS != null);
|
|
|
if(wlyyPrescriptionDOS != null){
|
|
|
List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("outpatientId",wlyyPrescriptionDOS.getOutpatientId());
|
|
|
System.out.println("获取顺丰物流面单信息:wlyyPrescriptionDOS != null=" + wlyyPrescriptionDOS != null);
|
|
|
if (wlyyPrescriptionDOS != null) {
|
|
|
List<WlyyPrescriptionExpressageDO> expressageDOList = sfexpressService.findByField("outpatientId", wlyyPrescriptionDOS.getOutpatientId());
|
|
|
WlyyPrescriptionExpressageDO sfexpress_obj = null;
|
|
|
System.out.println("获取顺丰物流面单信息:CollectionUtils.isEmpty(expressageDOList)="+CollectionUtils.isEmpty(expressageDOList));
|
|
|
if(CollectionUtils.isEmpty(expressageDOList)){
|
|
|
System.out.println("获取顺丰物流面单信息:CollectionUtils.isEmpty(expressageDOList)=" + CollectionUtils.isEmpty(expressageDOList));
|
|
|
if (CollectionUtils.isEmpty(expressageDOList)) {
|
|
|
throw new Exception("顺丰快递下单失败,未找到该处方的派送地址!");
|
|
|
}else{
|
|
|
} else {
|
|
|
System.out.println("获取顺丰物流面单信息:1");
|
|
|
sfexpress_obj = expressageDOList.get(0);
|
|
|
System.out.println("获取顺丰物流面单信息:2");
|
|
|
BasePatientDO basePatientDO = basePatientDao.findById(wlyyPrescriptionDOS.getPatientCode());
|
|
|
//如果该处方的快递单号已生成,则说明已经下单成功,不需要重复下单,直接返回面单信息
|
|
|
System.out.println("获取顺丰物流面单信息:3");
|
|
|
if(org.apache.commons.lang.StringUtils.isNotBlank(sfexpress_obj.getMailno())){
|
|
|
if (org.apache.commons.lang.StringUtils.isNotBlank(sfexpress_obj.getMailno())) {
|
|
|
//处方已下单成功
|
|
|
System.out.println("获取顺丰物流面单信息:4");
|
|
|
}else{
|
|
|
} else {
|
|
|
//如果该处方的快递单号未生成,则继续下单
|
|
|
//根据业务订单号判断是否已经下单成功
|
|
|
//--2020.05.20--顺丰V2.0接口已不提供查询接口,直接单下单--START
|
|
@ -4873,19 +5057,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
}
|
|
|
|
|
|
if(sfexpress_obj != null && StringUtils.isNoneBlank(sfexpress_obj.getMailno())){
|
|
|
if (sfexpress_obj != null && StringUtils.isNoneBlank(sfexpress_obj.getMailno())) {
|
|
|
System.out.println("获取顺丰物流面单信息:7");
|
|
|
com.alibaba.fastjson.JSONObject sfJsonObject = new com.alibaba.fastjson.JSONObject();
|
|
|
|
|
|
sfJsonObject.put("mailno", sfexpress_obj.getMailno());
|
|
|
sfJsonObject.put("mailtype", "标准快递");
|
|
|
sfJsonObject.put("destcode", "592");
|
|
|
if(wxId.equalsIgnoreCase("xm_zsyy_wx")){
|
|
|
if (wxId.equalsIgnoreCase("xm_zsyy_wx")) {
|
|
|
sfJsonObject.put("j_name", "厦门大学附属中山医院");
|
|
|
sfJsonObject.put("j_phone", "4003008888");
|
|
|
sfJsonObject.put("j_townName", "思明区");
|
|
|
sfJsonObject.put("j_address", "湖滨南路201-209号");
|
|
|
}else if (wxId.equalsIgnoreCase("xm_ykyy_wx")){
|
|
|
} else if (wxId.equalsIgnoreCase("xm_ykyy_wx")) {
|
|
|
sfJsonObject.put("j_name", "厦门大学附属中山医院");
|
|
|
sfJsonObject.put("j_phone", "4003008888");
|
|
|
sfJsonObject.put("j_townName", "思明区");
|
|
@ -4899,11 +5083,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
sfJsonObject.put("d_cityName", sfexpress_obj.getCityName());
|
|
|
sfJsonObject.put("d_townName", sfexpress_obj.getTownName());
|
|
|
sfJsonObject.put("d_address", sfexpress_obj.getAddress());
|
|
|
sfJsonObject.put("d_phone",sfexpress_obj.getMobile());
|
|
|
sfJsonObject.put("express_type",11);
|
|
|
sfJsonObject.put("pay_method",2);
|
|
|
sfJsonObject.put("receive_time","");
|
|
|
sfJsonObject.put("dispensaryType",2);
|
|
|
sfJsonObject.put("d_phone", sfexpress_obj.getMobile());
|
|
|
sfJsonObject.put("express_type", 11);
|
|
|
sfJsonObject.put("pay_method", 2);
|
|
|
sfJsonObject.put("receive_time", "");
|
|
|
sfJsonObject.put("dispensaryType", 2);
|
|
|
result = sfJsonObject;
|
|
|
System.out.println("获取顺丰物流面单信息:8");
|
|
|
}
|
|
@ -4915,13 +5099,14 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 根据类型获取候诊居民数量
|
|
|
*
|
|
|
* @param doctor
|
|
|
* @param outpatient_type 1复诊 2协同
|
|
|
* @param type 1图文 2视频
|
|
|
* @param type 1图文 2视频
|
|
|
* @return
|
|
|
*/
|
|
|
public Long getWaitVideoCount(String doctor,String type,String outpatient_type,String wxId) {
|
|
|
String sql ="SELECT " +
|
|
|
public Long getWaitVideoCount(String doctor, String type, String outpatient_type, String wxId) {
|
|
|
String sql = "SELECT " +
|
|
|
"count(outpatient.id) AS \"total\" " +
|
|
|
"FROM " +
|
|
|
"wlyy_outpatient outpatient," +
|
|
@ -4929,24 +5114,24 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"WHERE " +
|
|
|
"outpatient.patient=patient.id " +
|
|
|
"AND outpatient.status in (0,1) " +
|
|
|
"AND outpatient.doctor='"+doctor+"' " +
|
|
|
"AND outpatient.doctor='" + doctor + "' " +
|
|
|
"AND outpatient.pay_status = 1 " +
|
|
|
"AND outpatient.outpatient_type= '"+outpatient_type+"' ";
|
|
|
if("1".equals(outpatient_type)){//复诊
|
|
|
sql = sql + " AND outpatient.type= '"+type+"' ";
|
|
|
if("2".equals(type)){//视频复诊才需要判断时间,
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sql +=" AND outpatient.register_date is not null and outpatient.register_date >= to_date('"+DateUtil.dateToStrShort(new Date())+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
sql = sql + " AND outpatient.register_date is not null AND outpatient.register_date >= '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' ";
|
|
|
"AND outpatient.outpatient_type= '" + outpatient_type + "' ";
|
|
|
if ("1".equals(outpatient_type)) {//复诊
|
|
|
sql = sql + " AND outpatient.type= '" + type + "' ";
|
|
|
if ("2".equals(type)) {//视频复诊才需要判断时间,
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sql += " AND outpatient.register_date is not null and outpatient.register_date >= to_date('" + DateUtil.dateToStrShort(new Date()) + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sql = sql + " AND outpatient.register_date is not null AND outpatient.register_date >= '" + DateUtil.dateToStrShort(new Date()) + " 00:00:00' ";
|
|
|
}
|
|
|
}
|
|
|
}else if("2".equals(outpatient_type)){
|
|
|
} else if ("2".equals(outpatient_type)) {
|
|
|
//协同门诊也需要判断时间
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sql +=" AND outpatient.register_date is not null and outpatient.register_date >= to_date('"+DateUtil.dateToStrShort(new Date())+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
sql = sql + " AND outpatient.register_date is not null AND outpatient.register_date >= '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' ";
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sql += " AND outpatient.register_date is not null and outpatient.register_date >= to_date('" + DateUtil.dateToStrShort(new Date()) + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sql = sql + " AND outpatient.register_date is not null AND outpatient.register_date >= '" + DateUtil.dateToStrShort(new Date()) + " 00:00:00' ";
|
|
|
}
|
|
|
}
|
|
|
List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(sql);
|
|
@ -4961,15 +5146,16 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 保存在线排班
|
|
|
*
|
|
|
* @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);
|
|
|
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("保存成功");
|
|
@ -4977,36 +5163,39 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 删除在线排班
|
|
|
*
|
|
|
* @param id
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public Envelop delDoctorOnlineWork(String id)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"));
|
|
|
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,String chargeType)throws Exception{
|
|
|
public WlyyOutpatientDO cooperativeOutpatient(String outpatientJson, String registerJson, String chargeType) throws Exception {
|
|
|
|
|
|
//1.保存就诊实体
|
|
|
WlyyOutpatientDO outpatientDO = objectMapper.readValue(outpatientJson,WlyyOutpatientDO.class);
|
|
|
WlyyOutpatientDO outpatientDO = objectMapper.readValue(outpatientJson, WlyyOutpatientDO.class);
|
|
|
BasePatientDO patientDO = basePatientDao.findById(outpatientDO.getPatient());
|
|
|
|
|
|
outpatientDO.setMjz("mz");
|
|
@ -5016,7 +5205,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
outpatientDO.setOutpatientType("2");
|
|
|
outpatientDO.setCreateTime(new Date());
|
|
|
|
|
|
if(outpatientDO.getRegisterDate()==null){
|
|
|
if (outpatientDO.getRegisterDate() == null) {
|
|
|
outpatientDO.setRegisterDate(new Date());
|
|
|
}
|
|
|
|
|
@ -5026,48 +5215,49 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
try {
|
|
|
//如果是视频预约咨询
|
|
|
if(StringUtils.isNotBlank(registerJson)){
|
|
|
registerTimeDO = objectMapper.readValue(registerJson,WlyyPatientRegisterTimeDO.class);
|
|
|
if (StringUtils.isNotBlank(registerJson)) {
|
|
|
registerTimeDO = objectMapper.readValue(registerJson, WlyyPatientRegisterTimeDO.class);
|
|
|
registerTimeDO.setOutpatientId(outpatient.getId());
|
|
|
registerTimeDO.setCreateTime(new Date());
|
|
|
patientRegisterTimeDao.save(registerTimeDO);
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
} catch (Exception e) {
|
|
|
throw new RuntimeException("号源已经被预约,请选择其他号源");
|
|
|
}
|
|
|
|
|
|
//3.创建候诊室
|
|
|
createRoom(outpatient,chargeType);
|
|
|
createRoom(outpatient, chargeType);
|
|
|
|
|
|
return outpatient;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 发送新增门诊信息
|
|
|
*
|
|
|
* @param outpatient
|
|
|
* @return
|
|
|
*/
|
|
|
public SystemMessageDO sendOutPatientMes(WlyyOutpatientDO outpatient){
|
|
|
public SystemMessageDO sendOutPatientMes(WlyyOutpatientDO outpatient) {
|
|
|
SystemMessageDO systemMessageDO = new SystemMessageDO();
|
|
|
String msg="";
|
|
|
String msg = "";
|
|
|
JSONObject data = new JSONObject();
|
|
|
try{
|
|
|
try {
|
|
|
//1.在线复诊2.协同门诊
|
|
|
if("2".equals(outpatient.getOutpatientType())){
|
|
|
if ("2".equals(outpatient.getOutpatientType())) {
|
|
|
systemMessageDO.setTitle("协同门诊");
|
|
|
systemMessageDO.setType("3");
|
|
|
}else{
|
|
|
} else {
|
|
|
//1.图文 2.视频
|
|
|
if("1".equals(outpatient.getType())){
|
|
|
if ("1".equals(outpatient.getType())) {
|
|
|
systemMessageDO.setTitle("图文复诊");
|
|
|
systemMessageDO.setType("1");
|
|
|
saveInquirySystemMessage(outpatient);
|
|
|
}else {
|
|
|
} else {
|
|
|
systemMessageDO.setTitle("视频复诊预约成功");
|
|
|
systemMessageDO.setType("2");
|
|
|
saveInquirySystemMessage(outpatient);
|
|
|
msg="您的视频复诊已预约成功。\n" +
|
|
|
"预计"+outpatient.getDoctorName()+"医生将于"+outpatient.getRegisterDate()+" 与您进行视频咨询。请留意系统消息或微信公众号消息。咨询开始时,医生将邀请您进行视频通话,请您关注消息提醒,及时接受医生视频邀请。";
|
|
|
msg = "您的视频复诊已预约成功。\n" +
|
|
|
"预计" + outpatient.getDoctorName() + "医生将于" + outpatient.getRegisterDate() + " 与您进行视频咨询。请留意系统消息或微信公众号消息。咨询开始时,医生将邀请您进行视频通话,请您关注消息提醒,及时接受医生视频邀请。";
|
|
|
systemMessageDO.setReceiver(outpatient.getDoctor());
|
|
|
systemMessageDO.setReceiverName(outpatient.getDoctorName());
|
|
|
systemMessageDO.setRelationCode(outpatient.getId());
|
|
@ -5076,39 +5266,39 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
systemMessageDO.setRelationCode(outpatient.getId());
|
|
|
|
|
|
|
|
|
data.put("name",outpatient.getPatientName());
|
|
|
data.put("age",IdCardUtil.getAgeForIdcard(outpatient.getIdcard()));
|
|
|
data.put("gender",IdCardUtil.getSexForIdcard_new(outpatient.getIdcard()));
|
|
|
data.put("question",outpatient.getDescription());
|
|
|
data.put("msg",msg);
|
|
|
data.put("name", outpatient.getPatientName());
|
|
|
data.put("age", IdCardUtil.getAgeForIdcard(outpatient.getIdcard()));
|
|
|
data.put("gender", IdCardUtil.getSexForIdcard_new(outpatient.getIdcard()));
|
|
|
data.put("question", outpatient.getDescription());
|
|
|
data.put("msg", msg);
|
|
|
systemMessageDO.setData(data.toString());
|
|
|
|
|
|
systemMessageService.saveMessage(systemMessageDO);
|
|
|
sendWxTemplateMsg(wechatId, outpatient.getId(), "17", "videoOrderRemind", null);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
BasePatientDO patient = basePatientDao.findById(outpatient.getPatient());
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)){
|
|
|
ykyyService.pushNotificationToYktPatient(patient.getYktId(),systemMessageDO.getTitle(),data.get("msg").toString());
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)) {
|
|
|
ykyyService.pushNotificationToYktPatient(patient.getYktId(), systemMessageDO.getTitle(), data.get("msg").toString());
|
|
|
}
|
|
|
|
|
|
}catch (Exception e){
|
|
|
logger.error("sendOutPatientMes :"+e.toString());
|
|
|
} catch (Exception e) {
|
|
|
logger.error("sendOutPatientMes :" + e.toString());
|
|
|
return null;
|
|
|
}
|
|
|
return systemMessageDO;
|
|
|
}
|
|
|
|
|
|
public void saveInquirySystemMessage(WlyyOutpatientDO outpatient){
|
|
|
public void saveInquirySystemMessage(WlyyOutpatientDO outpatient) {
|
|
|
SystemMessageDO systemMessageDO = new SystemMessageDO();
|
|
|
String msg="";
|
|
|
String type="";
|
|
|
if("1".equals(outpatient.getType())){
|
|
|
type="9";
|
|
|
msg=outpatient.getPatientName()+",您好!您有一个图文复诊订单待支付,请及时支付。点击完成支付,如您已支付请忽略本条信息。";
|
|
|
}else {
|
|
|
type="16";
|
|
|
msg=outpatient.getPatientName()+",您好!您有一个视频复诊订单待支付,请及时支付。点击完成支付,如您已支付请忽略本条信息。";
|
|
|
String msg = "";
|
|
|
String type = "";
|
|
|
if ("1".equals(outpatient.getType())) {
|
|
|
type = "9";
|
|
|
msg = outpatient.getPatientName() + ",您好!您有一个图文复诊订单待支付,请及时支付。点击完成支付,如您已支付请忽略本条信息。";
|
|
|
} else {
|
|
|
type = "16";
|
|
|
msg = outpatient.getPatientName() + ",您好!您有一个视频复诊订单待支付,请及时支付。点击完成支付,如您已支付请忽略本条信息。";
|
|
|
}
|
|
|
|
|
|
systemMessageDO.setTitle("支付提醒");
|
|
@ -5121,37 +5311,39 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
JSONObject data = new JSONObject();
|
|
|
try {
|
|
|
data.put("name",outpatient.getPatientName());
|
|
|
data.put("age",IdCardUtil.getAgeForIdcard(outpatient.getIdcard()));
|
|
|
data.put("gender",IdCardUtil.getSexForIdcard_new(outpatient.getIdcard()));
|
|
|
data.put("question",outpatient.getDescription());
|
|
|
data.put("msg",msg);
|
|
|
data.put("type",type);
|
|
|
data.put("name", outpatient.getPatientName());
|
|
|
data.put("age", IdCardUtil.getAgeForIdcard(outpatient.getIdcard()));
|
|
|
data.put("gender", IdCardUtil.getSexForIdcard_new(outpatient.getIdcard()));
|
|
|
data.put("question", outpatient.getDescription());
|
|
|
data.put("msg", msg);
|
|
|
data.put("type", type);
|
|
|
systemMessageDO.setData(data.toString());
|
|
|
systemMessageService.saveMessage(systemMessageDO);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
BasePatientDO patient = basePatientDao.findById(outpatient.getPatient());
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)){
|
|
|
ykyyService.pushNotificationToYktPatient(patient.getYktId(),systemMessageDO.getTitle(),data.get("msg").toString());
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)) {
|
|
|
ykyyService.pushNotificationToYktPatient(patient.getYktId(), systemMessageDO.getTitle(), data.get("msg").toString());
|
|
|
}
|
|
|
sendWxTemplateMsg(wechatId, outpatient.getId(), type, "payRemind", null);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 指定门诊医生医生
|
|
|
*
|
|
|
* @param outpatientJson
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public WlyyOutpatientDO saveOutpatientDoctor(String outpatientJson,String registerJson,String chargeType)throws Exception{
|
|
|
public WlyyOutpatientDO saveOutpatientDoctor(String outpatientJson, String registerJson, String chargeType) throws Exception {
|
|
|
|
|
|
//1.保存就诊实体
|
|
|
WlyyOutpatientDO outpatientDO = objectMapper.readValue(outpatientJson,WlyyOutpatientDO.class);
|
|
|
WlyyOutpatientDO outpatientDO = objectMapper.readValue(outpatientJson, WlyyOutpatientDO.class);
|
|
|
|
|
|
WlyyOutpatientDO one = outpatientDao.findOne(outpatientDO.getId());
|
|
|
if(StringUtils.isNotBlank(one.getDoctor())){
|
|
|
if (StringUtils.isNotBlank(one.getDoctor())) {
|
|
|
throw new RuntimeException("已有医生接诊");
|
|
|
}
|
|
|
one.setDoctor(outpatientDO.getDoctor());
|
|
@ -5166,27 +5358,27 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
try {
|
|
|
//如果是视频预约咨询
|
|
|
if(StringUtils.isNotBlank(registerJson)){
|
|
|
if (StringUtils.isNotBlank(registerJson)) {
|
|
|
//删除预约记录
|
|
|
List<WlyyPatientRegisterTimeDO> registerTimeDOs = patientRegisterTimeDao.findByOutpatientId(outpatientDO.getId());
|
|
|
if(registerTimeDOs!=null&®isterTimeDOs.size()>0){
|
|
|
if (registerTimeDOs != null && registerTimeDOs.size() > 0) {
|
|
|
patientRegisterTimeDao.delete(registerTimeDOs);
|
|
|
}
|
|
|
|
|
|
registerTimeDO = objectMapper.readValue(registerJson,WlyyPatientRegisterTimeDO.class);
|
|
|
registerTimeDO = objectMapper.readValue(registerJson, WlyyPatientRegisterTimeDO.class);
|
|
|
registerTimeDO.setOutpatientId(outpatient.getId());
|
|
|
registerTimeDO.setCreateTime(new Date());
|
|
|
patientRegisterTimeDao.save(registerTimeDO);
|
|
|
}
|
|
|
}catch (Exception e){
|
|
|
} catch (Exception e) {
|
|
|
throw new RuntimeException("号源已经被预约,请选择其他号源");
|
|
|
}
|
|
|
|
|
|
//更新候诊室
|
|
|
List<WlyyHospitalWaitingRoomDO> roomDOs = hospitalWaitingRoomDao.findByOutpatientId(outpatientDO.getId());
|
|
|
|
|
|
if(roomDOs!=null&&roomDOs.size()>0){
|
|
|
for(WlyyHospitalWaitingRoomDO room:roomDOs){
|
|
|
if (roomDOs != null && roomDOs.size() > 0) {
|
|
|
for (WlyyHospitalWaitingRoomDO room : roomDOs) {
|
|
|
room.setDept(outpatientDO.getDept());
|
|
|
room.setDeptName(outpatientDO.getDeptName());
|
|
|
room.setDoctor(outpatientDO.getDoctor());
|
|
@ -5201,12 +5393,13 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 验证电子健康卡授权
|
|
|
*
|
|
|
* @param authorizeNo
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String,Object> checkOauthQRCode(String authorizeNo){
|
|
|
public Map<String, Object> checkOauthQRCode(String authorizeNo) {
|
|
|
|
|
|
Map<String,Object> rsMap = new HashedMap();
|
|
|
Map<String, Object> rsMap = new HashedMap();
|
|
|
OauthYlzConfigDO oauthYlzConfigDO = oauthYlzConfigDao.findOne("ylz_config");
|
|
|
try {
|
|
|
TransRequest e = new TransRequest();
|
|
@ -5214,7 +5407,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
e.setApp_id(oauthYlzConfigDO.getAppId());
|
|
|
e.setTerm_id(oauthYlzConfigDO.getTermId());
|
|
|
e.setVersion(oauthYlzConfigDO.getVersion());
|
|
|
e.setTimestamp(DateUtil.dateToStr(new Date(),"yyyyMMddHHmmss"));
|
|
|
e.setTimestamp(DateUtil.dateToStr(new Date(), "yyyyMMddHHmmss"));
|
|
|
e.setSign_type(oauthYlzConfigDO.getSignType());
|
|
|
e.setEnc_type(oauthYlzConfigDO.getEncType());
|
|
|
com.alibaba.fastjson.JSONObject bizContent = new com.alibaba.fastjson.JSONObject();
|
|
@ -5225,23 +5418,23 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
TransResponse re = ehcHandler.execute(e);
|
|
|
String rs = com.alibaba.fastjson.JSONObject.toJSONString(re);
|
|
|
com.alibaba.fastjson.JSONObject json = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject.parse(rs);
|
|
|
logger.info("checkOauthQRCode:"+rs);
|
|
|
logger.info("checkOauthQRCode:" + rs);
|
|
|
String ret_code = json.getString("ret_code");
|
|
|
if("0000".equals(ret_code)){
|
|
|
logger.info("biz_content: "+json.getString("biz_content"));
|
|
|
if ("0000".equals(ret_code)) {
|
|
|
logger.info("biz_content: " + json.getString("biz_content"));
|
|
|
String strBiz = json.getString("biz_content");
|
|
|
com.alibaba.fastjson.JSONObject biz = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject.parse(strBiz);
|
|
|
// com.alibaba.fastjson.JSONObject biz = json.getJSONObject("biz_content");
|
|
|
String auth_status = biz.getString("auth_status");
|
|
|
if("succ".equals(auth_status)){
|
|
|
String auth_status = biz.getString("auth_status");
|
|
|
if ("succ".equals(auth_status)) {
|
|
|
String idcard = biz.getString("id_no");
|
|
|
BasePatientDO patientDO = basePatientDao.findByIdcardAndDel(idcard,"1");
|
|
|
if(patientDO == null){
|
|
|
BasePatientDO patientDO = basePatientDao.findByIdcardAndDel(idcard, "1");
|
|
|
if (patientDO == null) {
|
|
|
BasePatientDO patient = new BasePatientDO();
|
|
|
|
|
|
String salt = UUID.randomUUID().toString().substring(0,5);
|
|
|
String salt = UUID.randomUUID().toString().substring(0, 5);
|
|
|
String mobile = biz.getString("mobile_phone");
|
|
|
String pw = mobile.substring(mobile.length()-6);
|
|
|
String pw = mobile.substring(mobile.length() - 6);
|
|
|
|
|
|
patient.setIdcard(idcard);
|
|
|
patient.setName(biz.getString("user_name"));
|
|
@ -5253,79 +5446,80 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
patient.setLocked(0);
|
|
|
patient.setCreateTime(new Date());
|
|
|
patient.setUpdateTime(new Date());
|
|
|
patient.setBirthday(DateUtil.strToDate(biz.getString("birthday"),"yyyyMMdd"));
|
|
|
patient.setBirthday(DateUtil.strToDate(biz.getString("birthday"), "yyyyMMdd"));
|
|
|
|
|
|
basePatientDao.save(patient);
|
|
|
rsMap.put("sCode",auth_status);
|
|
|
rsMap.put("sMes","success");
|
|
|
rsMap.put("patient",getPatientInfoMap(patient));
|
|
|
rsMap.put("sCode", auth_status);
|
|
|
rsMap.put("sMes", "success");
|
|
|
rsMap.put("patient", getPatientInfoMap(patient));
|
|
|
return rsMap;
|
|
|
}else{
|
|
|
rsMap.put("sCode",auth_status);
|
|
|
rsMap.put("sMes","success");
|
|
|
rsMap.put("patient",getPatientInfoMap(patientDO));
|
|
|
} else {
|
|
|
rsMap.put("sCode", auth_status);
|
|
|
rsMap.put("sMes", "success");
|
|
|
rsMap.put("patient", getPatientInfoMap(patientDO));
|
|
|
return rsMap;
|
|
|
}
|
|
|
}else if("ing".equals(auth_status)){
|
|
|
rsMap.put("sCode",auth_status);
|
|
|
rsMap.put("sMes","正在授权");
|
|
|
} else if ("ing".equals(auth_status)) {
|
|
|
rsMap.put("sCode", auth_status);
|
|
|
rsMap.put("sMes", "正在授权");
|
|
|
return rsMap;
|
|
|
}else if("fail".equals(auth_status)){
|
|
|
rsMap.put("sCode",auth_status);
|
|
|
rsMap.put("sMes","授权失败");
|
|
|
} else if ("fail".equals(auth_status)) {
|
|
|
rsMap.put("sCode", auth_status);
|
|
|
rsMap.put("sMes", "授权失败");
|
|
|
return rsMap;
|
|
|
}else if("cancel".equals(auth_status)){
|
|
|
rsMap.put("sCode",auth_status);
|
|
|
rsMap.put("sMes","取消授权");
|
|
|
} else if ("cancel".equals(auth_status)) {
|
|
|
rsMap.put("sCode", auth_status);
|
|
|
rsMap.put("sMes", "取消授权");
|
|
|
return rsMap;
|
|
|
}
|
|
|
}
|
|
|
rsMap.put("sCode","err");
|
|
|
rsMap.put("sMes","请求失败");
|
|
|
rsMap.put("sCode", "err");
|
|
|
rsMap.put("sMes", "请求失败");
|
|
|
return rsMap;
|
|
|
|
|
|
}catch (Exception e){
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
rsMap.put("sCode","err");
|
|
|
rsMap.put("sMes","请求失败");
|
|
|
rsMap.put("sCode", "err");
|
|
|
rsMap.put("sMes", "请求失败");
|
|
|
return rsMap;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询协同门诊记录
|
|
|
*
|
|
|
* @param generalDoctor
|
|
|
* @param startDate
|
|
|
* @param endDate
|
|
|
* @param status
|
|
|
* @return
|
|
|
*/
|
|
|
public Envelop findByGeneralDoctor(String generalDoctor,String startDate,String endDate,String status,String sort,Integer page,Integer size,String wxId){
|
|
|
public Envelop findByGeneralDoctor(String generalDoctor, String startDate, String endDate, String status, String sort, Integer page, Integer size, String wxId) {
|
|
|
|
|
|
String sqlTotal ="SELECT " +
|
|
|
" count(1) AS total "+
|
|
|
String sqlTotal = "SELECT " +
|
|
|
" count(1) AS total " +
|
|
|
" FROM " +
|
|
|
" wlyy_outpatient o " +
|
|
|
" WHERE " +
|
|
|
" o.general_doctor = '"+generalDoctor+"'";
|
|
|
if(StringUtils.isNotBlank(startDate)){
|
|
|
" o.general_doctor = '" + generalDoctor + "'";
|
|
|
if (StringUtils.isNotBlank(startDate)) {
|
|
|
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sqlTotal +=" and o.register_date >= to_date('"+startDate+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
sqlTotal += " AND o.register_date >='"+startDate+" 00:00:00' ";
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sqlTotal += " and o.register_date >= to_date('" + startDate + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sqlTotal += " AND o.register_date >='" + startDate + " 00:00:00' ";
|
|
|
}
|
|
|
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(endDate)){
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sqlTotal +=" and o.register_date <= to_date('"+endDate+" 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
sqlTotal += " AND o.register_date <='"+endDate+" 23:59:59' ";
|
|
|
if (StringUtils.isNotBlank(endDate)) {
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sqlTotal += " and o.register_date <= to_date('" + endDate + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sqlTotal += " AND o.register_date <='" + endDate + " 23:59:59' ";
|
|
|
}
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(status)){
|
|
|
sqlTotal += " AND o.status ='"+status+"'";
|
|
|
if (StringUtils.isNotBlank(status)) {
|
|
|
sqlTotal += " AND o.status ='" + status + "'";
|
|
|
}
|
|
|
|
|
|
List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(sqlTotal);
|
|
@ -5334,7 +5528,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
if (rstotal != null && rstotal.size() > 0) {
|
|
|
total = Long.parseLong(rstotal.get(0).get("total").toString());
|
|
|
}
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
" o.id AS \"id\", " +
|
|
|
" o.adm_no AS \"admNo\", " +
|
|
|
" o.origin_adm_no AS \"originAdmNo\", " +
|
|
@ -5358,7 +5552,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" o.idcard AS \"idcard\", " +
|
|
|
" o.card_no AS \"cardNo\", " +
|
|
|
" o.mjz AS \"mjz\", " +
|
|
|
" o.icd10 AS \"icd10\", "+
|
|
|
" o.icd10 AS \"icd10\", " +
|
|
|
" o.icd10_name AS \"icd10Name\", " +
|
|
|
" o.advice AS \"advice\", " +
|
|
|
" o.adm_date AS \"admDate\", " +
|
|
@ -5375,65 +5569,66 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" FROM " +
|
|
|
" wlyy_outpatient o " +
|
|
|
" WHERE " +
|
|
|
" o.general_doctor = '"+generalDoctor+"'";
|
|
|
if(StringUtils.isNotBlank(startDate)){
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sql +=" and o.register_date >= to_date('"+startDate+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
sql += " AND o.register_date >='"+startDate+" 00:00:00' ";
|
|
|
" o.general_doctor = '" + generalDoctor + "'";
|
|
|
if (StringUtils.isNotBlank(startDate)) {
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sql += " and o.register_date >= to_date('" + startDate + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sql += " AND o.register_date >='" + startDate + " 00:00:00' ";
|
|
|
}
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(endDate)){
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
sql +=" and o.register_date <= to_date('"+endDate+" 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
sql += " AND o.register_date <='"+endDate+" 23:59:59' ";
|
|
|
if (StringUtils.isNotBlank(endDate)) {
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sql += " and o.register_date <= to_date('" + endDate + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sql += " AND o.register_date <='" + endDate + " 23:59:59' ";
|
|
|
}
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(status)){
|
|
|
sql+=" AND o.status ='"+status+"'";
|
|
|
if (StringUtils.isNotBlank(status)) {
|
|
|
sql += " AND o.status ='" + status + "'";
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(sort)){
|
|
|
sql += " ORDER BY o.register_date "+sort;
|
|
|
}else{
|
|
|
if (StringUtils.isNotBlank(sort)) {
|
|
|
sql += " ORDER BY o.register_date " + sort;
|
|
|
} else {
|
|
|
sql += " ORDER BY o.register_date ASC ";
|
|
|
}
|
|
|
|
|
|
List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,size);
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, page, size);
|
|
|
//List<WlyyOutpatientDO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WlyyOutpatientDO.class));
|
|
|
return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, total);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 全科医生首页协同门诊统计列表.
|
|
|
*
|
|
|
* @param generalDoctor
|
|
|
* @return
|
|
|
*/
|
|
|
public Map<String,Object> findGeneralDoctorInfo(String generalDoctor){
|
|
|
public Map<String, Object> findGeneralDoctorInfo(String generalDoctor) {
|
|
|
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
Date startTime = DateUtil.strToDate(DateUtil.dateToStr(new Date(),"yyyy-MM-dd")+" 00:00:00","yyyy-MM-dd HH:mm:ss");
|
|
|
Date endTime = DateUtil.strToDate(DateUtil.dateToStr(new Date(),"yyyy-MM-dd")+" 23:59:59","yyyy-MM-dd HH:mm:ss");
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
Date startTime = DateUtil.strToDate(DateUtil.dateToStr(new Date(), "yyyy-MM-dd") + " 00:00:00", "yyyy-MM-dd HH:mm:ss");
|
|
|
Date endTime = DateUtil.strToDate(DateUtil.dateToStr(new Date(), "yyyy-MM-dd") + " 23:59:59", "yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
//今天协同门诊列表
|
|
|
List<WlyyOutpatientDO> todayList = outpatientDao.findByGeneralDoctor(generalDoctor,startTime,endTime,"0");
|
|
|
List<WlyyOutpatientDO> todayList = outpatientDao.findByGeneralDoctor(generalDoctor, startTime, endTime, "0");
|
|
|
|
|
|
rs.put("todayList",todayList);
|
|
|
rs.put("todayList", todayList);
|
|
|
|
|
|
List<WlyyOutpatientDO> todayBeginList = outpatientDao.findByGeneralDoctor(generalDoctor,startTime,endTime,"1");
|
|
|
List<WlyyOutpatientDO> todayBeginList = outpatientDao.findByGeneralDoctor(generalDoctor, startTime, endTime, "1");
|
|
|
|
|
|
rs.put("todayBeginList",todayBeginList);
|
|
|
rs.put("todayBeginList", todayBeginList);
|
|
|
|
|
|
Calendar tomorrowTime = Calendar.getInstance();
|
|
|
tomorrowTime.setTime(startTime);
|
|
|
tomorrowTime.add(Calendar.DATE,1);
|
|
|
tomorrowTime.add(Calendar.DATE, 1);
|
|
|
|
|
|
Calendar tomorrowEndtime = Calendar.getInstance();
|
|
|
tomorrowEndtime.setTime(endTime);
|
|
|
tomorrowEndtime.add(Calendar.DATE,1);
|
|
|
tomorrowEndtime.add(Calendar.DATE, 1);
|
|
|
//明天协同门诊列表
|
|
|
List<WlyyOutpatientDO> tomorrowList = outpatientDao.findByGeneralDoctor(generalDoctor,tomorrowTime.getTime(),tomorrowEndtime.getTime(),"0");
|
|
|
rs.put("tomorrowList",tomorrowList);
|
|
|
List<WlyyOutpatientDO> tomorrowList = outpatientDao.findByGeneralDoctor(generalDoctor, tomorrowTime.getTime(), tomorrowEndtime.getTime(), "0");
|
|
|
rs.put("tomorrowList", tomorrowList);
|
|
|
|
|
|
//统计科预约医生
|
|
|
String sql = "SELECT " +
|
|
@ -5452,10 +5647,10 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
doctorTotal = (Long) rstotal.get(0).get("total");
|
|
|
}
|
|
|
|
|
|
rs.put("doctorTotal",doctorTotal);
|
|
|
rs.put("doctorTotal", doctorTotal);
|
|
|
|
|
|
//统计在线医生
|
|
|
String onlineSql="SELECT " +
|
|
|
String onlineSql = "SELECT " +
|
|
|
" COUNT(1) AS \"total\" " +
|
|
|
" FROM " +
|
|
|
" base_doctor d " +
|
|
@ -5472,22 +5667,20 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
onlineTotal = Long.parseLong(oltotal.get(0).get("total").toString());
|
|
|
}
|
|
|
|
|
|
rs.put("onlineTotal",onlineTotal);
|
|
|
rs.put("onlineTotal", onlineTotal);
|
|
|
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 查询医生所有可抢单的数量
|
|
|
*
|
|
|
* @param doctor
|
|
|
* @param dept
|
|
|
* @return
|
|
|
*/
|
|
|
public com.alibaba.fastjson.JSONObject findWaitingRoomOutpatientNumberByDoctor(String doctor,String dept) {
|
|
|
public com.alibaba.fastjson.JSONObject findWaitingRoomOutpatientNumberByDoctor(String doctor, String dept) {
|
|
|
|
|
|
com.alibaba.fastjson.JSONObject object = new com.alibaba.fastjson.JSONObject();
|
|
|
|
|
@ -5500,7 +5693,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"wlyy_outpatient outpatient " +
|
|
|
"WHERE " +
|
|
|
" room.outpatient_id=outpatient.id " +
|
|
|
"AND outpatient.status = 0 AND room.doctor IS NULL AND outpatient.dept='"+dept+"' ";
|
|
|
"AND outpatient.status = 0 AND room.doctor IS NULL AND outpatient.dept='" + dept + "' ";
|
|
|
|
|
|
List<Map<String, Object>> alltotal = jdbcTemplate.queryForList(sqlAll);
|
|
|
|
|
@ -5509,7 +5702,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
totalsqlAll = Long.parseLong(alltotal.get(0).get("total").toString());
|
|
|
}
|
|
|
|
|
|
object.put("all",totalsqlAll);
|
|
|
object.put("all", totalsqlAll);
|
|
|
|
|
|
//图文复诊
|
|
|
String imgAll = "SELECT " +
|
|
@ -5519,7 +5712,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"wlyy_outpatient outpatient " +
|
|
|
"WHERE " +
|
|
|
" room.outpatient_id=outpatient.id " +
|
|
|
"AND outpatient.status = 0 AND room.doctor IS NULL AND room.reservation_type=1 AND room.consult_type=1 AND outpatient.dept='"+dept+"' ";
|
|
|
"AND outpatient.status = 0 AND room.doctor IS NULL AND room.reservation_type=1 AND room.consult_type=1 AND outpatient.dept='" + dept + "' ";
|
|
|
|
|
|
List<Map<String, Object>> imgtotal = jdbcTemplate.queryForList(imgAll);
|
|
|
|
|
@ -5528,7 +5721,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
twCount = Long.parseLong(imgtotal.get(0).get("total").toString());
|
|
|
}
|
|
|
|
|
|
object.put("twCount",twCount);
|
|
|
object.put("twCount", twCount);
|
|
|
|
|
|
//视频复诊
|
|
|
String spsql = "SELECT " +
|
|
@ -5538,7 +5731,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"wlyy_outpatient outpatient " +
|
|
|
"WHERE " +
|
|
|
" room.outpatient_id=outpatient.id " +
|
|
|
"AND outpatient.status = 0 AND room.doctor IS NULL AND room.reservation_type=1 AND room.consult_type=2 AND outpatient.dept='"+dept+"' ";
|
|
|
"AND outpatient.status = 0 AND room.doctor IS NULL AND room.reservation_type=1 AND room.consult_type=2 AND outpatient.dept='" + dept + "' ";
|
|
|
|
|
|
List<Map<String, Object>> sptotal = jdbcTemplate.queryForList(spsql);
|
|
|
|
|
@ -5547,7 +5740,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
spcount = Long.parseLong(sptotal.get(0).get("total").toString());
|
|
|
}
|
|
|
|
|
|
object.put("spCount",spcount);
|
|
|
object.put("spCount", spcount);
|
|
|
|
|
|
|
|
|
//协同门诊
|
|
@ -5558,7 +5751,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"wlyy_outpatient outpatient " +
|
|
|
"WHERE " +
|
|
|
" room.outpatient_id=outpatient.id " +
|
|
|
"AND outpatient.status = 0 AND room.doctor IS NULL AND room.reservation_type=2 AND outpatient.dept='"+dept+"' ";
|
|
|
"AND outpatient.status = 0 AND room.doctor IS NULL AND room.reservation_type=2 AND outpatient.dept='" + dept + "' ";
|
|
|
|
|
|
List<Map<String, Object>> xttotal = jdbcTemplate.queryForList(xtsql);
|
|
|
|
|
@ -5567,23 +5760,23 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
xtcount = Long.parseLong(xttotal.get(0).get("total").toString());
|
|
|
}
|
|
|
|
|
|
object.put("xtCount",xtcount);
|
|
|
object.put("xtCount", xtcount);
|
|
|
|
|
|
|
|
|
return object;
|
|
|
}
|
|
|
|
|
|
public Map<String,Object> refuseOutpatientByDoctor(String outPatientId, String cancelType, String cancelValue, String cancelRemark) {
|
|
|
Map<String,Object> rs = new HashedMap();
|
|
|
public Map<String, Object> refuseOutpatientByDoctor(String outPatientId, String cancelType, String cancelValue, String cancelRemark) {
|
|
|
Map<String, Object> rs = new HashedMap();
|
|
|
//判断医生是否接诊
|
|
|
List<WlyyHospitalWaitingRoomDO> roomDOs =hospitalWaitingRoomDao.findByOutpatientId(outPatientId);
|
|
|
if(roomDOs!=null&&roomDOs.size()>0){
|
|
|
for(WlyyHospitalWaitingRoomDO roomDO:roomDOs){
|
|
|
if(roomDO.getVisitStatus()==2){
|
|
|
rs.put("code",-1);
|
|
|
rs.put("mes","医生已经接诊,无法取消");
|
|
|
List<WlyyHospitalWaitingRoomDO> roomDOs = hospitalWaitingRoomDao.findByOutpatientId(outPatientId);
|
|
|
if (roomDOs != null && roomDOs.size() > 0) {
|
|
|
for (WlyyHospitalWaitingRoomDO roomDO : roomDOs) {
|
|
|
if (roomDO.getVisitStatus() == 2) {
|
|
|
rs.put("code", -1);
|
|
|
rs.put("mes", "医生已经接诊,无法取消");
|
|
|
return rs;
|
|
|
}else{
|
|
|
} else {
|
|
|
roomDO.setVisitStatus(-1);
|
|
|
hospitalWaitingRoomDao.save(roomDO);
|
|
|
}
|
|
@ -5600,111 +5793,115 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
//删除门诊号源
|
|
|
List<WlyyPatientRegisterTimeDO> list = patientRegisterTimeDao.findByOutpatientId(wlyyOutpatientDO.getId());
|
|
|
if(list!=null&&list.size()>0){
|
|
|
if (list != null && list.size() > 0) {
|
|
|
patientRegisterTimeDao.delete(list);
|
|
|
}
|
|
|
|
|
|
rs.put("code",1);
|
|
|
rs.put("mes","取消成功");
|
|
|
return rs;
|
|
|
rs.put("code", 1);
|
|
|
rs.put("mes", "取消成功");
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取居民当日就诊列表
|
|
|
*
|
|
|
* @param patient
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> getTodayOutpatinetList(String patient,String wxId) {
|
|
|
public List<Map<String, Object>> getTodayOutpatinetList(String patient, String wxId) {
|
|
|
|
|
|
String condition = "";
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
condition = "to_char(p.register_date,'YYYY-MM-DD hh24:mi:ss') AS \"time\",";
|
|
|
}else{
|
|
|
condition ="date_format(p.register_date,'%Y-%m-%d %H:%i:%S' ) AS \"time\",";
|
|
|
} else {
|
|
|
condition = "date_format(p.register_date,'%Y-%m-%d %H:%i:%S' ) AS \"time\",";
|
|
|
}
|
|
|
|
|
|
String sql ="SELECT "+condition+"d.NAME as \"doctorName\",d.job_title_name as \"job_title_name\",d.photo AS \"photo\",p.id as \"outpatientid\" FROM wlyy_outpatient p,base_doctor d " +
|
|
|
"WHERE p.patient='"+patient+"' AND p.doctor=d.id AND p.status=0 ";
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
String sql = "SELECT " + condition + "d.NAME as \"doctorName\",d.job_title_name as \"job_title_name\",d.photo AS \"photo\",p.id as \"outpatientid\" FROM wlyy_outpatient p,base_doctor d " +
|
|
|
"WHERE p.patient='" + patient + "' AND p.doctor=d.id AND p.status=0 ";
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
|
|
|
sql +=" AND p.register_date >= to_date('"+DateUtil.dateToStrShort(new Date())+" 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
sql +=" AND p.register_date <= to_date('"+DateUtil.dateToStrShort(new Date())+" 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
}else {
|
|
|
sql +=" BETWEEN '"+DateUtil.dateToStrShort(new Date())+" 00:00:00' AND '"+DateUtil.dateToStrShort(new Date())+" 23:59:59' ";
|
|
|
sql += " AND p.register_date >= to_date('" + DateUtil.dateToStrShort(new Date()) + " 00:00:00','YYYY-MM-DD HH24:MI:SS')";
|
|
|
sql += " AND p.register_date <= to_date('" + DateUtil.dateToStrShort(new Date()) + " 23:59:59','YYYY-MM-DD HH24:MI:SS')";
|
|
|
} else {
|
|
|
sql += " BETWEEN '" + DateUtil.dateToStrShort(new Date()) + " 00:00:00' AND '" + DateUtil.dateToStrShort(new Date()) + " 23:59:59' ";
|
|
|
}
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取doctormappingcode
|
|
|
*
|
|
|
* @param doctor
|
|
|
* @param orgCode
|
|
|
* @return
|
|
|
*/
|
|
|
public DoctorMappingDO getDoctorMapping(String doctor,String orgCode){
|
|
|
return doctorMappingService.findMappingCode(doctor,orgCode);
|
|
|
public DoctorMappingDO getDoctorMapping(String doctor, String orgCode) {
|
|
|
return doctorMappingService.findMappingCode(doctor, orgCode);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取医生简介
|
|
|
*
|
|
|
* @param doctorCode
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public net.sf.json.JSON getDoctorIntroduction(String doctorCode) throws Exception {
|
|
|
DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(doctorCode,"350211A1002");
|
|
|
if(doctorMappingDO==null){
|
|
|
DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(doctorCode, "350211A1002");
|
|
|
if (doctorMappingDO == null) {
|
|
|
throw new RuntimeException("未找到医生映射信息");
|
|
|
}
|
|
|
return entranceService.BS16010(doctorMappingDO.getMappingCode(),demoFlag);
|
|
|
return entranceService.BS16010(doctorMappingDO.getMappingCode(), demoFlag);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
*
|
|
|
* @param name
|
|
|
* @param hospital
|
|
|
* @return
|
|
|
*/
|
|
|
public List<WlyyHospitalSysDictDO> findByDict(String name,String hospital){
|
|
|
return sysDictDao.findByHospitalAndDictNameOrderBySortAsc(hospital,name);
|
|
|
public List<WlyyHospitalSysDictDO> findByDict(String name, String hospital) {
|
|
|
return sysDictDao.findByHospitalAndDictNameOrderBySortAsc(hospital, name);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 建立档案
|
|
|
*
|
|
|
* @param json
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public net.sf.json.JSONObject setRecord(String json,String type)throws Exception{
|
|
|
public net.sf.json.JSONObject setRecord(String json, String type) throws Exception {
|
|
|
net.sf.json.JSONObject rs = new JSONObject();
|
|
|
ArchiveVO archiveVO = objectMapper.readValue(json,ArchiveVO.class);
|
|
|
if(archiveVO!=null){
|
|
|
if(StringUtils.isBlank(archiveVO.getBrnl00())){
|
|
|
archiveVO.setBrnl00(IdCardUtil.getAgeForIdcard(archiveVO.getSfzhao())+"");
|
|
|
ArchiveVO archiveVO = objectMapper.readValue(json, ArchiveVO.class);
|
|
|
if (archiveVO != null) {
|
|
|
if (StringUtils.isBlank(archiveVO.getBrnl00())) {
|
|
|
archiveVO.setBrnl00(IdCardUtil.getAgeForIdcard(archiveVO.getSfzhao()) + "");
|
|
|
}
|
|
|
if(StringUtils.isBlank(archiveVO.getCsrq00())){
|
|
|
archiveVO.setCsrq00(DateUtil.dateToStr(IdCardUtil.getBirthdayForIdcard(archiveVO.getSfzhao()),"yyyyMMdd"));
|
|
|
if (StringUtils.isBlank(archiveVO.getCsrq00())) {
|
|
|
archiveVO.setCsrq00(DateUtil.dateToStr(IdCardUtil.getBirthdayForIdcard(archiveVO.getSfzhao()), "yyyyMMdd"));
|
|
|
}
|
|
|
//1为需要同步建档
|
|
|
if("1".equals(type)){
|
|
|
rs = entranceService.BS16018(archiveVO,demoFlag);
|
|
|
if ("1".equals(type)) {
|
|
|
rs = entranceService.BS16018(archiveVO, demoFlag);
|
|
|
}
|
|
|
//保存互联网医院居民账户
|
|
|
BasePatientDO patientDO = savePatient(archiveVO);
|
|
|
rs.put("patient",patientDO.getId());
|
|
|
rs.put("patient", patientDO.getId());
|
|
|
}
|
|
|
return rs;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 存储居民
|
|
|
*
|
|
|
* @param archiveVO
|
|
|
* @return
|
|
|
*/
|
|
|
public BasePatientDO savePatient(ArchiveVO archiveVO)throws Exception{
|
|
|
BasePatientDO patientDO = basePatientDao.findByIdcardAndDel(archiveVO.getSfzhao(),"1");
|
|
|
if(patientDO == null) {
|
|
|
public BasePatientDO savePatient(ArchiveVO archiveVO) throws Exception {
|
|
|
BasePatientDO patientDO = basePatientDao.findByIdcardAndDel(archiveVO.getSfzhao(), "1");
|
|
|
if (patientDO == null) {
|
|
|
BasePatientDO patient = new BasePatientDO();
|
|
|
|
|
|
String salt = UUID.randomUUID().toString().substring(0, 5);
|
|
@ -5730,25 +5927,26 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 获取HIIS居民档案信息
|
|
|
*
|
|
|
* @param idcard
|
|
|
* @param patient
|
|
|
* @param admitNum
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public JSONArray findPatientRecord(String idcard,String patient,String admitNum,String ybcard)throws Exception{
|
|
|
public JSONArray findPatientRecord(String idcard, String patient, String admitNum, String ybcard) throws Exception {
|
|
|
String patientId = null;
|
|
|
if(StringUtils.isNotBlank(patient)){
|
|
|
if (StringUtils.isNotBlank(patient)) {
|
|
|
patientId = patientMappingService.findHisPatNoByPatient(patient);
|
|
|
}
|
|
|
return entranceService.BS10008(idcard,patientId,admitNum,ybcard,demoFlag);
|
|
|
return entranceService.BS10008(idcard, patientId, admitNum, ybcard, demoFlag);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查找未配送处方订单
|
|
|
*/
|
|
|
public List<WlyyPrescriptionVO> findUndeliveredList(){
|
|
|
String sql ="SELECT " +
|
|
|
public List<WlyyPrescriptionVO> findUndeliveredList() {
|
|
|
String sql = "SELECT " +
|
|
|
" p.id AS \"id\", " +
|
|
|
" p.real_order AS \"realOrder\"," +
|
|
|
" p.origin_real_order AS \"originRealOrder\"," +
|
|
@ -5795,7 +5993,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" wlyy_prescription p " +
|
|
|
" WHERE status = 60 or status = 50 ";
|
|
|
List<WlyyPrescriptionVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WlyyPrescriptionVO.class));
|
|
|
if(list!=null){
|
|
|
if (list != null) {
|
|
|
return list;
|
|
|
}
|
|
|
return new ArrayList<>();
|
|
@ -5803,73 +6001,74 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 获取医生信息
|
|
|
*
|
|
|
* @param hospital
|
|
|
* @param name
|
|
|
* @return
|
|
|
*/
|
|
|
public List<Map<String,Object>> findDoctorByName(String hospital, String name,String chargeType){
|
|
|
String sql ="SELECT " +
|
|
|
public List<Map<String, Object>> findDoctorByName(String hospital, String name, String chargeType) {
|
|
|
String sql = "SELECT " +
|
|
|
" d.id AS \"id\", " +
|
|
|
" d.name AS \"name\"" +
|
|
|
" FROM " +
|
|
|
" base_doctor d ";
|
|
|
if(StringUtils.isNotBlank(hospital)){
|
|
|
sql +=" JOIN base_doctor_hospital h ON h.doctor_code = d.id";
|
|
|
if (StringUtils.isNotBlank(hospital)) {
|
|
|
sql += " JOIN base_doctor_hospital h ON h.doctor_code = d.id";
|
|
|
}
|
|
|
sql +=" JOIN base_doctor_role r ON r.doctor_code = d.id ";
|
|
|
sql +=" WHERE " +
|
|
|
" d. NAME LIKE '%"+name+"%'";
|
|
|
if(StringUtils.isNotBlank(hospital)){
|
|
|
sql +=" AND h.org_code ='"+hospital+"'";
|
|
|
sql += " JOIN base_doctor_role r ON r.doctor_code = d.id ";
|
|
|
sql += " WHERE " +
|
|
|
" d. NAME LIKE '%" + name + "%'";
|
|
|
if (StringUtils.isNotBlank(hospital)) {
|
|
|
sql += " AND h.org_code ='" + hospital + "'";
|
|
|
}
|
|
|
|
|
|
if(StringUtils.isNotBlank(chargeType)){
|
|
|
if("all".equals(chargeType)){
|
|
|
if (StringUtils.isNotBlank(chargeType)) {
|
|
|
if ("all".equals(chargeType)) {
|
|
|
//查询全部号源
|
|
|
}else{
|
|
|
sql+=" AND d.charge_type ='"+chargeType+"'";
|
|
|
} else {
|
|
|
sql += " AND d.charge_type ='" + chargeType + "'";
|
|
|
}
|
|
|
}else{
|
|
|
sql+=" AND d.charge_type is not null ";
|
|
|
} else {
|
|
|
sql += " AND d.charge_type is not null ";
|
|
|
}
|
|
|
|
|
|
sql += " AND r.role_code ='specialist'";
|
|
|
|
|
|
logger.info("findDoctorByName :"+sql);
|
|
|
logger.info("findDoctorByName :" + sql);
|
|
|
|
|
|
List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql);
|
|
|
if(list!=null&&list.size()>0){
|
|
|
for(int i=0;i<list.size();i++){
|
|
|
Map<String,Object> d = list.get(i);
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql);
|
|
|
if (list != null && list.size() > 0) {
|
|
|
for (int i = 0; i < list.size(); i++) {
|
|
|
Map<String, Object> d = list.get(i);
|
|
|
List<BaseDoctorHospitalDO> depts = baseDoctorHospitalDao.findByDoctorCode(d.get("id").toString());
|
|
|
d.put("depts",depts);
|
|
|
d.put("depts", depts);
|
|
|
}
|
|
|
}
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public void followOrgByPatient(String patientid, String doctorid, String type) {
|
|
|
List<BaseDoctorPatientFollowDO> list =baseOrgPatientDao.findByDoctorAndPatient(doctorid,patientid);
|
|
|
if("1".equals(type)){//关注
|
|
|
if(list.isEmpty()){
|
|
|
List<BaseDoctorPatientFollowDO> list = baseOrgPatientDao.findByDoctorAndPatient(doctorid, patientid);
|
|
|
if ("1".equals(type)) {//关注
|
|
|
if (list.isEmpty()) {
|
|
|
BaseDoctorPatientFollowDO baseOrgPatientFollowDO = new BaseDoctorPatientFollowDO();
|
|
|
baseOrgPatientFollowDO.setDoctor(doctorid);
|
|
|
baseOrgPatientFollowDO.setPatient(patientid);
|
|
|
baseOrgPatientDao.save(baseOrgPatientFollowDO);
|
|
|
}
|
|
|
}
|
|
|
if("0".equals(type)){//取消关注
|
|
|
if(!list.isEmpty()){
|
|
|
for (BaseDoctorPatientFollowDO baseOrgPatientFollowDO:list){
|
|
|
if ("0".equals(type)) {//取消关注
|
|
|
if (!list.isEmpty()) {
|
|
|
for (BaseDoctorPatientFollowDO baseOrgPatientFollowDO : list) {
|
|
|
baseOrgPatientDao.delete(baseOrgPatientFollowDO.getId());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> findDeptByKeyWord(String keyWord,Integer page,Integer pagesize) {
|
|
|
public List<Map<String, Object>> findDeptByKeyWord(String keyWord, Integer page, Integer pagesize) {
|
|
|
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
"dept.code AS \"deptCode\"," +
|
|
|
"dept.name AS \"deptName\"," +
|
|
|
"org.CODE AS \"orgCode\", " +
|
|
@ -5880,21 +6079,21 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"WHERE org.CODE=dept.org_code " +
|
|
|
"AND org.del=1 ";
|
|
|
|
|
|
if(StringUtils.isNoneBlank(keyWord)){
|
|
|
sql = sql + "AND dept.NAME LIKE '%"+keyWord+"%' ";
|
|
|
if (StringUtils.isNoneBlank(keyWord)) {
|
|
|
sql = sql + "AND dept.NAME LIKE '%" + keyWord + "%' ";
|
|
|
}
|
|
|
List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql,page,pagesize);
|
|
|
logger.info("sql:"+sql);
|
|
|
List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql, page, pagesize);
|
|
|
logger.info("sql:" + sql);
|
|
|
return list;
|
|
|
}
|
|
|
|
|
|
public List<Map<String,Object>> findDeptWithDoctorWorkTime(String hospital,String keyWord,Integer page,Integer pagesize ){
|
|
|
public List<Map<String, Object>> findDeptWithDoctorWorkTime(String hospital, String keyWord, Integer page, Integer pagesize) {
|
|
|
|
|
|
String now = DateUtil.dateToStr(new Date(),"yyyy-MM-dd");
|
|
|
String now = DateUtil.dateToStr(new Date(), "yyyy-MM-dd");
|
|
|
// Date startDate = DateUtil.stringToDate(now+" 00:00:00","yyyy-MM-dd HH:mm:ss");
|
|
|
// Date endDate = DateUtil.stringToDate(now+" 23:59:59","yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
String sql ="SELECT " +
|
|
|
String sql = "SELECT " +
|
|
|
" DISTINCT " +
|
|
|
" h.dept_code AS \"deptCode\", " +
|
|
|
" h.dept_name AS \"deptName\"," +
|
|
@ -5916,25 +6115,24 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
" ) OR d.consult_status ='1') " +
|
|
|
" AND h.dept_code IS NOT NULL " +
|
|
|
" AND h.dept_code !=''";
|
|
|
Map<String,Object> params = new HashedMap();
|
|
|
params.put("startTime",new Date());
|
|
|
params.put("endDate",new Date());
|
|
|
if(StringUtils.isNotBlank(hospital)){
|
|
|
sql +=" AND h.org_code =:hospital";
|
|
|
params.put("hospital",hospital);
|
|
|
Map<String, Object> params = new HashedMap();
|
|
|
params.put("startTime", new Date());
|
|
|
params.put("endDate", new Date());
|
|
|
if (StringUtils.isNotBlank(hospital)) {
|
|
|
sql += " AND h.org_code =:hospital";
|
|
|
params.put("hospital", hospital);
|
|
|
}
|
|
|
if(StringUtils.isNotBlank(keyWord)){
|
|
|
sql +=" AND h.dept_name like:keyWord";
|
|
|
params.put("keyWord","%"+keyWord+"%");
|
|
|
if (StringUtils.isNotBlank(keyWord)) {
|
|
|
sql += " AND h.dept_name like:keyWord";
|
|
|
params.put("keyWord", "%" + keyWord + "%");
|
|
|
}
|
|
|
logger.info(sql);
|
|
|
return hibenateUtils.createSQLQuery(sql,params,page,pagesize);
|
|
|
return hibenateUtils.createSQLQuery(sql, params, page, pagesize);
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public List<Map<String,Object>> selectByCondition(String hospital, String dept, String checkStatus, String startTime, String endTime, String nameInfo, Integer page, Integer pagesize, String wxId){
|
|
|
List<Map<String,Object>> maps = new ArrayList<>();
|
|
|
public List<Map<String, Object>> selectByCondition(String hospital, String dept, String checkStatus, String startTime, String endTime, String nameInfo, Integer page, Integer pagesize, String wxId) {
|
|
|
List<Map<String, Object>> maps = new ArrayList<>();
|
|
|
String sql = "SELECT\n" +
|
|
|
"\tp.doctor as \"doctor\",\n" +
|
|
|
"\tp.id as \"id\",\n" +
|
|
@ -5947,12 +6145,12 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"\tp.patient_name as \"patientName\",\n" +
|
|
|
"\tp.idcard as \"idcard\",\n" +
|
|
|
"\tp.ssc as \"ssc\",\n";
|
|
|
if("xm_ykyy_wx".equals(wxId)){
|
|
|
if ("xm_ykyy_wx".equals(wxId)) {
|
|
|
sql = sql + "to_char(p.create_time,'YYYY-MM-DD hh24:mi:ss') AS \"createTime\",";
|
|
|
}else{
|
|
|
} else {
|
|
|
sql = sql + "date_format(p.create_time,'%Y-%m-%d %H:%i:%S' ) AS \"createTime\",";
|
|
|
}
|
|
|
sql +="\tp.status as \"status\",\n" +
|
|
|
sql += "\tp.status as \"status\",\n" +
|
|
|
"\tp.check_status as \"checkStatus\",\n" +
|
|
|
"\tp.check_reason as \"checkReason\",\n" +
|
|
|
"\tp.pay_type as \"payType\"\n" +
|
|
@ -5960,99 +6158,101 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"\twlyy_prescription P\n" +
|
|
|
"WHERE\n" +
|
|
|
"\t1 = 1 ";
|
|
|
Map<String,Object> params = new HashedMap();
|
|
|
if (StringUtils.isNoneBlank(hospital)){
|
|
|
sql +=" and p.hospital =:hospital";
|
|
|
params.put("hospital",hospital);
|
|
|
Map<String, Object> params = new HashedMap();
|
|
|
if (StringUtils.isNoneBlank(hospital)) {
|
|
|
sql += " and p.hospital =:hospital";
|
|
|
params.put("hospital", hospital);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(dept)){
|
|
|
sql +=" and p.dept =:dept";
|
|
|
params.put("dept",dept);
|
|
|
if (StringUtils.isNoneBlank(dept)) {
|
|
|
sql += " and p.dept =:dept";
|
|
|
params.put("dept", dept);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(checkStatus)){
|
|
|
sql +=" and p.check_status =:checkStatus";
|
|
|
params.put("checkStatus",checkStatus);
|
|
|
if (StringUtils.isNoneBlank(checkStatus)) {
|
|
|
sql += " and p.check_status =:checkStatus";
|
|
|
params.put("checkStatus", checkStatus);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(startTime)){
|
|
|
sql +=" and p.create_time >=:startTime";
|
|
|
params.put("startTime",DateUtil.stringToDate(startTime,"yyyy-MM-dd HH:mm:ss"));
|
|
|
if (StringUtils.isNoneBlank(startTime)) {
|
|
|
sql += " and p.create_time >=:startTime";
|
|
|
params.put("startTime", DateUtil.stringToDate(startTime, "yyyy-MM-dd HH:mm:ss"));
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNoneBlank(endTime)){
|
|
|
sql +=" and p.create_time <=:endTime";
|
|
|
params.put("endTime",DateUtil.stringToDate(endTime,"yyyy-MM-dd HH:mm:ss"));
|
|
|
if (StringUtils.isNoneBlank(endTime)) {
|
|
|
sql += " and p.create_time <=:endTime";
|
|
|
params.put("endTime", DateUtil.stringToDate(endTime, "yyyy-MM-dd HH:mm:ss"));
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNoneBlank(nameInfo)){
|
|
|
sql +=" and (p.patient_name like '%"+nameInfo+"%' or p.doctor_name like '%"+nameInfo+"%')";
|
|
|
if (StringUtils.isNoneBlank(nameInfo)) {
|
|
|
sql += " and (p.patient_name like '%" + nameInfo + "%' or p.doctor_name like '%" + nameInfo + "%')";
|
|
|
}
|
|
|
sql +=" order by p.create_time desc";
|
|
|
List<Map<String,Object>> mapList = hibenateUtils.createSQLQuery(sql,params,page,pagesize);
|
|
|
sql += " order by p.create_time desc";
|
|
|
List<Map<String, Object>> mapList = hibenateUtils.createSQLQuery(sql, params, page, pagesize);
|
|
|
String sqlTotal = "select COUNT(1) AS \"total\" from wlyy_prescription p where 1=1 ";
|
|
|
Map<String,Object> params1 = new HashedMap();
|
|
|
if (StringUtils.isNoneBlank(hospital)){
|
|
|
sqlTotal +=" and p.hospital =:hospital";
|
|
|
params1.put("hospital",hospital);
|
|
|
Map<String, Object> params1 = new HashedMap();
|
|
|
if (StringUtils.isNoneBlank(hospital)) {
|
|
|
sqlTotal += " and p.hospital =:hospital";
|
|
|
params1.put("hospital", hospital);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(dept)){
|
|
|
sqlTotal +=" and p.dept =:dept";
|
|
|
params1.put("dept",dept);
|
|
|
if (StringUtils.isNoneBlank(dept)) {
|
|
|
sqlTotal += " and p.dept =:dept";
|
|
|
params1.put("dept", dept);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(checkStatus)){
|
|
|
sqlTotal +=" and p.check_status =:checkStatus";
|
|
|
params1.put("checkStatus",checkStatus);
|
|
|
if (StringUtils.isNoneBlank(checkStatus)) {
|
|
|
sqlTotal += " and p.check_status =:checkStatus";
|
|
|
params1.put("checkStatus", checkStatus);
|
|
|
}
|
|
|
if (StringUtils.isNoneBlank(startTime)){
|
|
|
sqlTotal +=" and p.create_time >=:startTime";
|
|
|
params1.put("startTime",DateUtil.stringToDate(startTime,"yyyy-MM-dd HH:mm:ss"));
|
|
|
if (StringUtils.isNoneBlank(startTime)) {
|
|
|
sqlTotal += " and p.create_time >=:startTime";
|
|
|
params1.put("startTime", DateUtil.stringToDate(startTime, "yyyy-MM-dd HH:mm:ss"));
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNoneBlank(endTime)){
|
|
|
sqlTotal +=" and p.create_time <=:endTime";
|
|
|
params1.put("endTime",DateUtil.stringToDate(endTime,"yyyy-MM-dd HH:mm:ss"));
|
|
|
if (StringUtils.isNoneBlank(endTime)) {
|
|
|
sqlTotal += " and p.create_time <=:endTime";
|
|
|
params1.put("endTime", DateUtil.stringToDate(endTime, "yyyy-MM-dd HH:mm:ss"));
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNoneBlank(nameInfo)){
|
|
|
sqlTotal +=" and (p.patient_name like '%"+nameInfo+"%' or p.doctor_name like '%"+nameInfo+"%')";
|
|
|
if (StringUtils.isNoneBlank(nameInfo)) {
|
|
|
sqlTotal += " and (p.patient_name like '%" + nameInfo + "%' or p.doctor_name like '%" + nameInfo + "%')";
|
|
|
}
|
|
|
Long count = 0L;
|
|
|
List<Map<String,Object>> total = hibenateUtils.createSQLQuery(sqlTotal,params1);
|
|
|
if(total!=null){
|
|
|
List<Map<String, Object>> total = hibenateUtils.createSQLQuery(sqlTotal, params1);
|
|
|
if (total != null) {
|
|
|
//mysql 与 Oracle 聚合函数返回类型不一致,需要判断装换
|
|
|
count = hibenateUtils.objTransformLong(total.get(0).get("total"));
|
|
|
}
|
|
|
Map<String,Object> map = new HashedMap();
|
|
|
map.put("count",count);
|
|
|
map.put("list",mapList);
|
|
|
Map<String, Object> map = new HashedMap();
|
|
|
map.put("count", count);
|
|
|
map.put("list", mapList);
|
|
|
maps.add(map);
|
|
|
return maps;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 修改处方状态
|
|
|
*
|
|
|
* @param prescriptionId
|
|
|
* @param status
|
|
|
*/
|
|
|
public void updateStatus(String prescriptionId,Integer status){
|
|
|
public void updateStatus(String prescriptionId, Integer status) {
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
prescriptionDao.updateStatus(prescriptionId,status,new Date());
|
|
|
prescriptionLogService.addPrescriptionLog(prescriptionId,status,1,wlyyPrescriptionDO.getPatientCode(),wlyyPrescriptionDO.getPatientName(),null,new Date());
|
|
|
prescriptionDao.updateStatus(prescriptionId, status, new Date());
|
|
|
prescriptionLogService.addPrescriptionLog(prescriptionId, status, 1, wlyyPrescriptionDO.getPatientCode(), wlyyPrescriptionDO.getPatientName(), null, new Date());
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 更改订单号
|
|
|
* 更改订单号
|
|
|
*
|
|
|
* @param id
|
|
|
* @param mailNo
|
|
|
*/
|
|
|
public void updateMailNoById(String id,String mailNo){
|
|
|
prescriptionExpressageDao.updateMailNoById(id,mailNo);
|
|
|
public void updateMailNoById(String id, String mailNo) {
|
|
|
prescriptionExpressageDao.updateMailNoById(id, mailNo);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 审方
|
|
|
*
|
|
|
* @param operate
|
|
|
* @param operateName
|
|
|
* @param reason
|
|
@ -6060,7 +6260,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
* @param prescriptionId
|
|
|
* @return
|
|
|
*/
|
|
|
public WlyyPrescriptionCheckDO saveCheck(String operate,String operateName,String reason,Integer status,String prescriptionId,String wxId){
|
|
|
public WlyyPrescriptionCheckDO saveCheck(String operate, String operateName, String reason, Integer status, String prescriptionId, String wxId) {
|
|
|
WlyyPrescriptionCheckDO prescriptionCheckDO = new WlyyPrescriptionCheckDO();
|
|
|
prescriptionCheckDO.setCreateTime(new Date());
|
|
|
prescriptionCheckDO.setOperate(operate);
|
|
@ -6073,66 +6273,66 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
prescriptionCheckDO.setPrescriptionId(prescriptionId);
|
|
|
prescriptionCheckDO = prescriptionCheckDao.save(prescriptionCheckDO);
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
if (status==2){
|
|
|
if (status == 2) {
|
|
|
/*prescriptionDao.updateCheckStatus(prescriptionId,2,reason,20);*/
|
|
|
logger.info("开始====="+wlyyPrescriptionDO.getCheckStatus());
|
|
|
logger.info("开始=====" + wlyyPrescriptionDO.getCheckStatus());
|
|
|
WlyyOutpatientDO outpatientDO = outpatientDao.findById(wlyyPrescriptionDO.getOutpatientId());
|
|
|
if (wxId.equalsIgnoreCase("xm_zsyy_wx")){
|
|
|
if (wxId.equalsIgnoreCase("xm_zsyy_wx")) {
|
|
|
try {
|
|
|
List<WlyyPrescriptionInfoDO> infoDOS = prescriptionInfoDao.findByPrescriptionId(prescriptionId,1);
|
|
|
List<WlyyInspectionDO> inspectionDOS = wlyyInspectionDao.findByPrescriptionId(prescriptionId,1);
|
|
|
List<WlyyPrescriptionInfoDO> infoDOS = prescriptionInfoDao.findByPrescriptionId(prescriptionId, 1);
|
|
|
List<WlyyInspectionDO> inspectionDOS = wlyyInspectionDao.findByPrescriptionId(prescriptionId, 1);
|
|
|
DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(outpatientDO.getDoctor(), outpatientDO.getHospital());
|
|
|
|
|
|
//his处方拼接开方条件
|
|
|
com.alibaba.fastjson.JSONArray jsonData = new com.alibaba.fastjson.JSONArray();
|
|
|
for (WlyyPrescriptionInfoDO info:infoDOS){
|
|
|
for (WlyyPrescriptionInfoDO info : infoDOS) {
|
|
|
//设置his药品查询条件
|
|
|
setInfoJsonParam(jsonData, doctorMappingDO, outpatientDO, wlyyPrescriptionDO, info, outpatientDO.getIcd10());
|
|
|
}
|
|
|
for (WlyyInspectionDO ins:inspectionDOS){
|
|
|
for (WlyyInspectionDO ins : inspectionDOS) {
|
|
|
//设置his药品查询条件
|
|
|
setInspectionParam(jsonData, doctorMappingDO, outpatientDO, wlyyPrescriptionDO, ins, outpatientDO.getIcd10());
|
|
|
}
|
|
|
Map<String,Object> map = sendHisDiagnosis(jsonData, outpatientDO, wlyyPrescriptionDO);
|
|
|
Map<String, Object> map = sendHisDiagnosis(jsonData, outpatientDO, wlyyPrescriptionDO);
|
|
|
//同步电子病历
|
|
|
WlyyPrescriptionEmrDO prescriptionEmrDO = prescriptionEmrDao.findEmrByPrescriptionId(prescriptionId);
|
|
|
if (prescriptionEmrDO!=null){
|
|
|
if (prescriptionEmrDO != null) {
|
|
|
String doctorId = doctorMappingDO.getMappingCode();
|
|
|
String doctorName =doctorMappingDO.getDoctorName();
|
|
|
writeOutPatient(outpatientDO.getRegisterNo(),prescriptionEmrDO.getComplaint(),prescriptionEmrDO.getMedicalHistory(),prescriptionEmrDO.getPastHistory(),prescriptionEmrDO.getPhysicalExamination(),prescriptionEmrDO.getAssistExamination(),doctorId,doctorName);
|
|
|
String doctorName = doctorMappingDO.getDoctorName();
|
|
|
writeOutPatient(outpatientDO.getRegisterNo(), prescriptionEmrDO.getComplaint(), prescriptionEmrDO.getMedicalHistory(), prescriptionEmrDO.getPastHistory(), prescriptionEmrDO.getPhysicalExamination(), prescriptionEmrDO.getAssistExamination(), doctorId, doctorName);
|
|
|
}
|
|
|
if (map.get("code").toString().equalsIgnoreCase("1")){
|
|
|
if (map.get("code").toString().equalsIgnoreCase("1")) {
|
|
|
// * @param applyDepaName @param applyDoctorName
|
|
|
WlyyPrescriptionDO prescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
String patientCode = prescriptionDO.getPatientCode();
|
|
|
String realerOrder = prescriptionDO.getRealOrder();
|
|
|
String free = prescriptionDO.getDrugFee()+"";
|
|
|
String recipeTime = DateUtil.dateToStr(prescriptionDO.getCreateTime(),"yyyyMMddHHmmss");
|
|
|
String free = prescriptionDO.getDrugFee() + "";
|
|
|
String recipeTime = DateUtil.dateToStr(prescriptionDO.getCreateTime(), "yyyyMMddHHmmss");
|
|
|
List<BaseDoctorHospitalDO> doctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(prescriptionDO.getDoctor());
|
|
|
String applyDepaName = null;
|
|
|
if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
|
|
|
if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) {
|
|
|
applyDepaName = doctorHospitalDOS.get(0).getDeptName();
|
|
|
}
|
|
|
String voucherNo = map.get("voucherNo")+"";
|
|
|
String voucherNo = map.get("voucherNo") + "";
|
|
|
String applyDoctorName = prescriptionDO.getDoctorName();
|
|
|
BasePatientDO patientDO = basePatientDao.findById(patientCode);
|
|
|
String userName = null;
|
|
|
String idcard = null;
|
|
|
if (patientDO!=null){
|
|
|
if (patientDO != null) {
|
|
|
userName = patientDO.getName();
|
|
|
idcard = patientDO.getIdcard();
|
|
|
}
|
|
|
PatientMappingDO patientMappingDO = patientMappingDao.findByPatient(patientCode);
|
|
|
String userNo = null;
|
|
|
if (patientMappingDO!=null){
|
|
|
if (patientMappingDO != null) {
|
|
|
userNo = patientMappingDO.getMappingCode();
|
|
|
}
|
|
|
String cardNo = null;
|
|
|
if (StringUtils.isNoneBlank(outpatientDO.getCardNo())){
|
|
|
if (StringUtils.isNoneBlank(outpatientDO.getCardNo())) {
|
|
|
cardNo = outpatientDO.getCardNo();
|
|
|
}
|
|
|
logger.info("cardNo:"+cardNo);
|
|
|
ylzPayService.msgPush("01",cardNo,"01",patientDO.getMobile(),"00",userNo,userName,idcard,voucherNo,applyDepaName,applyDoctorName,recipeTime,free,"1");
|
|
|
logger.info("cardNo:" + cardNo);
|
|
|
ylzPayService.msgPush("01", cardNo, "01", patientDO.getMobile(), "00", userNo, userName, idcard, voucherNo, applyDepaName, applyDoctorName, recipeTime, free, "1");
|
|
|
}
|
|
|
//sendHisDiagnosis(jsonData, outpatientDO, wlyyPrescriptionDO);
|
|
|
|
|
@ -6141,7 +6341,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}
|
|
|
|
|
|
}
|
|
|
prescriptionLogService.addPrescriptionLog(prescriptionId,20,2,operate,operateName,reason,new Date());
|
|
|
prescriptionLogService.addPrescriptionLog(prescriptionId, 20, 2, operate, operateName, reason, new Date());
|
|
|
wlyyPrescriptionDO.setCheckStatus(2);
|
|
|
wlyyPrescriptionDO.setCheckReason(reason);
|
|
|
wlyyPrescriptionDO.setStatus(20);
|
|
@ -6154,17 +6354,17 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
messageDO.setTitle("处方支付提醒");
|
|
|
messageDO.setSender(outpatientDO.getDoctor());
|
|
|
messageDO.setSenderName(outpatientDO.getDoctorName());
|
|
|
messageDO.setRelationCode(outpatientDO.getId()+","+wlyyPrescriptionDO.getId());
|
|
|
messageDO.setRelationCode(outpatientDO.getId() + "," + wlyyPrescriptionDO.getId());
|
|
|
messageDO.setReceiver(outpatientDO.getPatient());
|
|
|
messageDO.setReceiverName(outpatientDO.getPatientName());
|
|
|
JSONObject data = new JSONObject();
|
|
|
try {
|
|
|
data.put("name",outpatientDO.getPatientName());
|
|
|
data.put("name", outpatientDO.getPatientName());
|
|
|
data.put("age", IdCardUtil.getAgeForIdcard(outpatientDO.getIdcard()));
|
|
|
data.put("gender",IdCardUtil.getSexForIdcard_new(outpatientDO.getIdcard()));
|
|
|
data.put("question","");
|
|
|
String msg=outpatientDO.getPatientName()+",您好!医生已为您开具处方,请及时支付。如您已支付请忽略本条信息。";
|
|
|
data.put("msg",msg);
|
|
|
data.put("gender", IdCardUtil.getSexForIdcard_new(outpatientDO.getIdcard()));
|
|
|
data.put("question", "");
|
|
|
String msg = outpatientDO.getPatientName() + ",您好!医生已为您开具处方,请及时支付。如您已支付请忽略本条信息。";
|
|
|
data.put("msg", msg);
|
|
|
messageDO.setData(data.toString());
|
|
|
systemMessageService.saveMessage(messageDO);
|
|
|
|
|
@ -6172,19 +6372,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
BasePatientDO patient = basePatientDao.findById(outpatientDO.getPatient());
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wxId)){
|
|
|
ykyyService.pushNotificationToYktPatient(patient.getYktId(),messageDO.getTitle(),data.get("msg").toString());
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wxId)) {
|
|
|
ykyyService.pushNotificationToYktPatient(patient.getYktId(), messageDO.getTitle(), data.get("msg").toString());
|
|
|
}
|
|
|
|
|
|
}else{
|
|
|
sendWxTemplateMsg(wxId, outpatientDO.getId(), "", "prescriptionPayRemind", null);
|
|
|
} else {
|
|
|
wlyyPrescriptionDO.setId(prescriptionId);
|
|
|
wlyyPrescriptionDO.setCheckStatus(status);
|
|
|
wlyyPrescriptionDO.setCheckReason(reason);
|
|
|
wlyyPrescriptionDO.setStatus(11);
|
|
|
}
|
|
|
prescriptionDao.save(wlyyPrescriptionDO);
|
|
|
if (status==2||status==1){
|
|
|
sendCheckMessage(status,wlyyPrescriptionDO,operate,operateName);
|
|
|
if (status == 2 || status == 1) {
|
|
|
sendCheckMessage(status, wlyyPrescriptionDO, operate, operateName);
|
|
|
}
|
|
|
|
|
|
|
|
@ -6192,21 +6392,20 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public WlyyPrescriptionCheckDO savePrescriptionCheck(String operate,String reason,Integer status,String prescriptionId){
|
|
|
public WlyyPrescriptionCheckDO savePrescriptionCheck(String operate, String reason, Integer status, String prescriptionId) {
|
|
|
String dept = null;
|
|
|
String deptName = null;
|
|
|
String job = null;
|
|
|
String jobName = null;
|
|
|
BaseDoctorDO doctorDO = baseDoctorDao.findById(operate);
|
|
|
String operateName = null;
|
|
|
if (doctorDO!=null){
|
|
|
if (doctorDO != null) {
|
|
|
operateName = doctorDO.getName();
|
|
|
job = doctorDO.getJobTitleCode();
|
|
|
jobName = doctorDO.getJobTitleName();
|
|
|
}
|
|
|
List<BaseDoctorHospitalDO> doctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(operate);
|
|
|
if (doctorHospitalDOS!=null&&doctorHospitalDOS.size()!=0){
|
|
|
if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) {
|
|
|
BaseDoctorHospitalDO doctorHospitalDO = doctorHospitalDOS.get(0);
|
|
|
dept = doctorHospitalDO.getDeptCode();
|
|
|
deptName = doctorHospitalDO.getDeptName();
|
|
@ -6227,19 +6426,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
prescriptionCheckDO.setPrescriptionId(prescriptionId);
|
|
|
prescriptionCheckDO = prescriptionCheckDao.save(prescriptionCheckDO);
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
if (status==3){
|
|
|
if (status == 3) {
|
|
|
wlyyPrescriptionDO.setStatus(10);
|
|
|
wlyyPrescriptionDO.setCheckStatus(0);
|
|
|
wlyyPrescriptionDO.setCheckReason("未审核");
|
|
|
wlyyPrescriptionDO.setDealStatus(1);
|
|
|
wlyyPrescriptionDO.setDealReason(reason);
|
|
|
}else if (status==4){
|
|
|
} else if (status == 4) {
|
|
|
wlyyPrescriptionDO.setStatus(10);
|
|
|
wlyyPrescriptionDO.setCheckStatus(0);
|
|
|
wlyyPrescriptionDO.setCheckReason("未审核");
|
|
|
wlyyPrescriptionDO.setDealStatus(2);
|
|
|
wlyyPrescriptionDO.setDealReason(reason);
|
|
|
}else if (status==5){
|
|
|
} else if (status == 5) {
|
|
|
wlyyPrescriptionDO.setCheckStatus(0);
|
|
|
wlyyPrescriptionDO.setCheckReason("未审核");
|
|
|
}
|
|
@ -6250,25 +6449,27 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 查询审批记录
|
|
|
*
|
|
|
* @param prescriptionId
|
|
|
* @return
|
|
|
*/
|
|
|
public List<WlyyPrescriptionCheckDO> findPrescriptionCheck(String prescriptionId){
|
|
|
return prescriptionCheckDao.findByPrescriptionId(prescriptionId);
|
|
|
public List<WlyyPrescriptionCheckDO> findPrescriptionCheck(String prescriptionId) {
|
|
|
return prescriptionCheckDao.findByPrescriptionId(prescriptionId);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 发送处方审核消息
|
|
|
*
|
|
|
* @param status
|
|
|
* @param prescriptionDO
|
|
|
* @param operate
|
|
|
* @param operateName
|
|
|
* @return
|
|
|
*/
|
|
|
public SystemMessageDO sendCheckMessage(Integer status,WlyyPrescriptionDO prescriptionDO,String operate,String operateName){
|
|
|
public SystemMessageDO sendCheckMessage(Integer status, WlyyPrescriptionDO prescriptionDO, String operate, String operateName) {
|
|
|
SystemMessageDO systemMessageDO = new SystemMessageDO();
|
|
|
try{
|
|
|
try {
|
|
|
|
|
|
systemMessageDO.setReceiver(prescriptionDO.getDoctor());
|
|
|
systemMessageDO.setReceiverName(prescriptionDO.getDoctorName());
|
|
@ -6278,21 +6479,21 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
JSONObject data = new JSONObject();
|
|
|
Integer age = 0;
|
|
|
String gender = "";
|
|
|
if (StringUtils.isNoneBlank(prescriptionDO.getIdcard())){
|
|
|
if (StringUtils.isNoneBlank(prescriptionDO.getIdcard())) {
|
|
|
age = IdCardUtil.getAgeForIdcard(prescriptionDO.getIdcard());
|
|
|
gender=IdCardUtil.getSexForIdcard(prescriptionDO.getIdcard());
|
|
|
gender = IdCardUtil.getSexForIdcard(prescriptionDO.getIdcard());
|
|
|
}
|
|
|
BasePatientDO patientDO = basePatientDao.findById(prescriptionDO.getPatientCode());
|
|
|
data.put("name",prescriptionDO.getPatientName());
|
|
|
data.put("age",age);
|
|
|
data.put("gender",gender);
|
|
|
data.put("outpatientId",prescriptionDO.getOutpatientId());
|
|
|
data.put("prescriptionId",prescriptionDO.getId());
|
|
|
if (status==2){
|
|
|
data.put("name", prescriptionDO.getPatientName());
|
|
|
data.put("age", age);
|
|
|
data.put("gender", gender);
|
|
|
data.put("outpatientId", prescriptionDO.getOutpatientId());
|
|
|
data.put("prescriptionId", prescriptionDO.getId());
|
|
|
if (status == 2) {
|
|
|
systemMessageDO.setType("9");
|
|
|
systemMessageDO.setTitle("审方通过");
|
|
|
data.put("message","审方通过");
|
|
|
data.put("message","您为"+prescriptionDO.getPatientName()+"("+age+"岁 "+gender+")开具的处方已审核通过。");
|
|
|
data.put("message", "审方通过");
|
|
|
data.put("message", "您为" + prescriptionDO.getPatientName() + "(" + age + "岁 " + gender + ")开具的处方已审核通过。");
|
|
|
/**
|
|
|
* * @param userName 推送人姓名
|
|
|
* @param idCard 推送人身份证
|
|
@ -6314,16 +6515,16 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
title = patientDO.getName()+",您好!医生已为您开具处方,请及时支付";
|
|
|
}
|
|
|
entranceService.ehospitalNotice(prescriptionDO.getPatientName())*/
|
|
|
} else if (status==1) {
|
|
|
} else if (status == 1) {
|
|
|
systemMessageDO.setType("8");
|
|
|
systemMessageDO.setTitle("审方退回");
|
|
|
data.put("message","审方退回");
|
|
|
data.put("message","您为"+prescriptionDO.getPatientName()+"("+age+"岁 "+gender+")开具的处方被审方退回,请尽快处理");
|
|
|
data.put("message", "审方退回");
|
|
|
data.put("message", "您为" + prescriptionDO.getPatientName() + "(" + age + "岁 " + gender + ")开具的处方被审方退回,请尽快处理");
|
|
|
}
|
|
|
systemMessageDO.setData(data.toString());
|
|
|
systemMessageService.saveMessage(systemMessageDO);
|
|
|
}catch (Exception e){
|
|
|
logger.error("sendPatientGetDrugMes :"+e.toString());
|
|
|
} catch (Exception e) {
|
|
|
logger.error("sendPatientGetDrugMes :" + e.toString());
|
|
|
}
|
|
|
return systemMessageDO;
|
|
|
}
|
|
@ -6331,85 +6532,82 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 查询单条处方记录
|
|
|
*
|
|
|
* @param prescriptionId
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public WlyyPrescriptionVO selectByPrescriptionId(String prescriptionId) throws Exception {
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDO= prescriptionDao.findOne(prescriptionId);
|
|
|
if (wlyyPrescriptionDO!=null){
|
|
|
WlyyPrescriptionDO wlyyPrescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
if (wlyyPrescriptionDO != null) {
|
|
|
com.alibaba.fastjson.JSONObject objectString = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject.toJSON(wlyyPrescriptionDO);
|
|
|
WlyyPrescriptionVO prescriptionVO = com.alibaba.fastjson.JSONObject.toJavaObject(objectString,WlyyPrescriptionVO.class);
|
|
|
List<WlyyPrescriptionInfoDO> wlyyPrescriptionInfoDOS = prescriptionInfoDao.findByPrescriptionId(prescriptionId,1);
|
|
|
WlyyPrescriptionVO prescriptionVO = com.alibaba.fastjson.JSONObject.toJavaObject(objectString, WlyyPrescriptionVO.class);
|
|
|
List<WlyyPrescriptionInfoDO> wlyyPrescriptionInfoDOS = prescriptionInfoDao.findByPrescriptionId(prescriptionId, 1);
|
|
|
List<WlyyPrescriptionInfoVO> wlyyPrescriptionInfoVOS = new ArrayList<>();
|
|
|
for (WlyyPrescriptionInfoDO wlyyPrescriptionInfoDO:wlyyPrescriptionInfoDOS){
|
|
|
for (WlyyPrescriptionInfoDO wlyyPrescriptionInfoDO : wlyyPrescriptionInfoDOS) {
|
|
|
com.alibaba.fastjson.JSONObject object = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject.toJSON(wlyyPrescriptionInfoDO);
|
|
|
logger.info("wlyyPrescriptionInfoDO参数入参"+object.toJSONString());
|
|
|
WlyyPrescriptionInfoVO prescriptionInfoVO = com.alibaba.fastjson.JSONObject.toJavaObject(object,WlyyPrescriptionInfoVO.class);
|
|
|
logger.info("wlyyPrescriptionInfoDO参数入参" + object.toJSONString());
|
|
|
WlyyPrescriptionInfoVO prescriptionInfoVO = com.alibaba.fastjson.JSONObject.toJavaObject(object, WlyyPrescriptionInfoVO.class);
|
|
|
wlyyPrescriptionInfoVOS.add(prescriptionInfoVO);
|
|
|
}
|
|
|
prescriptionVO.setInfoVOs(wlyyPrescriptionInfoVOS);
|
|
|
List<WlyyPrescriptionDiagnosisDO> wlyyPrescriptionDiagnosisDOS = prescriptionDiagnosisDao.findByPrescriptionId(prescriptionId,1);
|
|
|
List<WlyyPrescriptionDiagnosisDO> wlyyPrescriptionDiagnosisDOS = prescriptionDiagnosisDao.findByPrescriptionId(prescriptionId, 1);
|
|
|
List<WlyyPrescriptionDiagnosisVO> wlyyPrescriptionDiagnosisVOS = new ArrayList<>();
|
|
|
for (WlyyPrescriptionDiagnosisDO prescriptionDiagnosisDO:wlyyPrescriptionDiagnosisDOS){
|
|
|
for (WlyyPrescriptionDiagnosisDO prescriptionDiagnosisDO : wlyyPrescriptionDiagnosisDOS) {
|
|
|
com.alibaba.fastjson.JSONObject object = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject.toJSON(prescriptionDiagnosisDO);
|
|
|
logger.info("prescriptionDiagnosisDO参数入参"+object.toJSONString());
|
|
|
WlyyPrescriptionDiagnosisVO prescriptionDiagnosisVO = com.alibaba.fastjson.JSONObject.toJavaObject(object,WlyyPrescriptionDiagnosisVO.class);
|
|
|
logger.info("prescriptionDiagnosisDO参数入参" + object.toJSONString());
|
|
|
WlyyPrescriptionDiagnosisVO prescriptionDiagnosisVO = com.alibaba.fastjson.JSONObject.toJavaObject(object, WlyyPrescriptionDiagnosisVO.class);
|
|
|
wlyyPrescriptionDiagnosisVOS.add(prescriptionDiagnosisVO);
|
|
|
}
|
|
|
prescriptionVO.setDiagnosisVOs(wlyyPrescriptionDiagnosisVOS);
|
|
|
|
|
|
List<WlyyInspectionDO> inspectionDOS = wlyyInspectionDao.findByPrescriptionId(prescriptionId,1);
|
|
|
List<WlyyInspectionDO> inspectionDOS = wlyyInspectionDao.findByPrescriptionId(prescriptionId, 1);
|
|
|
List<WlyyInspectionVO> inspectionVOList = new ArrayList<>();
|
|
|
for (WlyyInspectionDO inspectionDO:inspectionDOS){
|
|
|
for (WlyyInspectionDO inspectionDO : inspectionDOS) {
|
|
|
com.alibaba.fastjson.JSONObject object = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject.toJSON(inspectionDO);
|
|
|
logger.info("prescriptionDiagnosisDO参数入参"+object.toJSONString());
|
|
|
WlyyInspectionVO inspectionVO = com.alibaba.fastjson.JSONObject.toJavaObject(object,WlyyInspectionVO.class);
|
|
|
logger.info("prescriptionDiagnosisDO参数入参" + object.toJSONString());
|
|
|
WlyyInspectionVO inspectionVO = com.alibaba.fastjson.JSONObject.toJavaObject(object, WlyyInspectionVO.class);
|
|
|
inspectionVOList.add(inspectionVO);
|
|
|
}
|
|
|
prescriptionVO.setInspectionVOs(inspectionVOList);
|
|
|
prescriptionVO.setAge(StringUtils.isNoneBlank(wlyyPrescriptionDO.getIdcard())?IdCardUtil.getAgeForIdcard(wlyyPrescriptionDO.getIdcard())+"":null);
|
|
|
prescriptionVO.setSex(StringUtils.isNoneBlank(wlyyPrescriptionDO.getIdcard())?IdCardUtil.getSexForIdcard_new(wlyyPrescriptionDO.getIdcard()):null);
|
|
|
prescriptionVO.setAge(StringUtils.isNoneBlank(wlyyPrescriptionDO.getIdcard()) ? IdCardUtil.getAgeForIdcard(wlyyPrescriptionDO.getIdcard()) + "" : null);
|
|
|
prescriptionVO.setSex(StringUtils.isNoneBlank(wlyyPrescriptionDO.getIdcard()) ? IdCardUtil.getSexForIdcard_new(wlyyPrescriptionDO.getIdcard()) : null);
|
|
|
return prescriptionVO;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void deleteById(Integer flag,String id){
|
|
|
if (flag ==1){
|
|
|
public void deleteById(Integer flag, String id) {
|
|
|
if (flag == 1) {
|
|
|
//药品
|
|
|
prescriptionInfoDao.deleteById(id);
|
|
|
}else if (flag==2){
|
|
|
} else if (flag == 2) {
|
|
|
//诊断
|
|
|
prescriptionDiagnosisDao.deleteById(id);
|
|
|
}else if (flag==3){
|
|
|
} else if (flag == 3) {
|
|
|
//检查检验
|
|
|
wlyyInspectionDao.deleteById(id);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void zsSynHis(String prescriptionId){
|
|
|
public void zsSynHis(String prescriptionId) {
|
|
|
try {
|
|
|
WlyyPrescriptionDO prescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
List<WlyyPrescriptionInfoDO> infoDOS = prescriptionInfoDao.findByPrescriptionId(prescriptionId,1);
|
|
|
List<WlyyInspectionDO> inspectionDOS = wlyyInspectionDao.findByPrescriptionId(prescriptionId,1);
|
|
|
List<WlyyPrescriptionInfoDO> infoDOS = prescriptionInfoDao.findByPrescriptionId(prescriptionId, 1);
|
|
|
List<WlyyInspectionDO> inspectionDOS = wlyyInspectionDao.findByPrescriptionId(prescriptionId, 1);
|
|
|
WlyyOutpatientDO outpatientDO = outpatientDao.findById(prescriptionDO.getOutpatientId());
|
|
|
DoctorMappingDO doctorMappingDO = doctorMappingService.findMappingCode(outpatientDO.getDoctor(), outpatientDO.getHospital());
|
|
|
|
|
|
//his处方拼接开方条件
|
|
|
com.alibaba.fastjson.JSONArray jsonData = new com.alibaba.fastjson.JSONArray();
|
|
|
for (WlyyPrescriptionInfoDO info:infoDOS){
|
|
|
for (WlyyPrescriptionInfoDO info : infoDOS) {
|
|
|
//设置his药品查询条件
|
|
|
setInfoJsonParam(jsonData, doctorMappingDO, outpatientDO, prescriptionDO, info, outpatientDO.getIcd10());
|
|
|
}
|
|
|
|
|
|
for (WlyyInspectionDO ins:inspectionDOS){
|
|
|
for (WlyyInspectionDO ins : inspectionDOS) {
|
|
|
//设置his药品查询条件
|
|
|
setInspectionParam(jsonData, doctorMappingDO, outpatientDO, prescriptionDO, ins, outpatientDO.getIcd10());
|
|
|
}
|
|
@ -6422,10 +6620,11 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 创建电子病历
|
|
|
*
|
|
|
* @param wlyyPrescriptionEmrDO
|
|
|
* @return
|
|
|
*/
|
|
|
public WlyyPrescriptionEmrDO saveEmr(WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO){
|
|
|
public WlyyPrescriptionEmrDO saveEmr(WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO) {
|
|
|
wlyyPrescriptionEmrDO.setCreateTime(new Date());
|
|
|
wlyyPrescriptionEmrDO.setUpdateTime(new Date());
|
|
|
wlyyPrescriptionEmrDO.setDel(1);
|
|
@ -6435,20 +6634,22 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 查询电子病历
|
|
|
*
|
|
|
* @param prescriptionId
|
|
|
* @return
|
|
|
*/
|
|
|
public List<WlyyPrescriptionEmrDO> findByPrescriptionId(String prescriptionId){
|
|
|
public List<WlyyPrescriptionEmrDO> findByPrescriptionId(String prescriptionId) {
|
|
|
return prescriptionEmrDao.findByPrescriptionId(prescriptionId);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 保存排班规则
|
|
|
*
|
|
|
* @param advicesJson
|
|
|
* @return
|
|
|
*/
|
|
|
public Boolean sendOutPatientSuggest(String advicesJson){
|
|
|
public Boolean sendOutPatientSuggest(String advicesJson) {
|
|
|
List<WlyyConsultAdvice> advices = (List<WlyyConsultAdvice>) com.alibaba.fastjson.JSONArray.parseArray(advicesJson, WlyyConsultAdvice.class);
|
|
|
wlyyConsultAdviceDao.save(advices);
|
|
|
return true;
|
|
@ -6456,6 +6657,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 获取咨询建议
|
|
|
*
|
|
|
* @param consultcode
|
|
|
* @return
|
|
|
*/
|
|
@ -6466,6 +6668,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 电子病历html
|
|
|
*
|
|
|
* @param registerSn
|
|
|
* @return
|
|
|
* @throws Exception
|
|
@ -6473,19 +6676,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
public String readOutPatient(String registerSn) throws Exception {
|
|
|
String url = "";
|
|
|
WlyyHospitalSysDictDO wlyyHospitalSysDictDO = hospitalSysDictDao.findById("HAI_TAI_URL");
|
|
|
if (wlyyHospitalSysDictDO!=null){
|
|
|
if (wlyyHospitalSysDictDO != null) {
|
|
|
url = wlyyHospitalSysDictDO.getDictCode();
|
|
|
}
|
|
|
String xmlStr = "<?xml version=\"1.0\" encoding=\"GBK\"?>\n" +
|
|
|
"<HtRequest>\n";
|
|
|
xmlStr+="<REGISTER_SN>"+registerSn+"</REGISTER_SN>";
|
|
|
String reqTime = DateUtil.dateToStr(new Date(),"yyyyMMddHHmmssSSS");
|
|
|
xmlStr+="<REQ_TIME>"+reqTime+"</REQ_TIME>";
|
|
|
xmlStr+="</HtRequest>";
|
|
|
xmlStr += "<REGISTER_SN>" + registerSn + "</REGISTER_SN>";
|
|
|
String reqTime = DateUtil.dateToStr(new Date(), "yyyyMMddHHmmssSSS");
|
|
|
xmlStr += "<REQ_TIME>" + reqTime + "</REQ_TIME>";
|
|
|
xmlStr += "</HtRequest>";
|
|
|
String returnValue = "";
|
|
|
Map<String, String> params = new HashedMap();
|
|
|
params.put("type","readOutPatient");
|
|
|
params.put("xmlStr",xmlStr);
|
|
|
params.put("type", "readOutPatient");
|
|
|
params.put("xmlStr", xmlStr);
|
|
|
returnValue = com.yihu.jw.utils.WebserviceUtil.post(url,
|
|
|
"http://business.htemr.haitaiinc.com",
|
|
|
"manageOutRegister",
|
|
@ -6494,7 +6697,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
logger.info("调用电子病历查询接口请求成功,返回值xmlstr:" + returnValue);
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
net.sf.json.JSON json = xmlSerializer.read(returnValue);
|
|
|
logger.info("返回json"+json);
|
|
|
logger.info("返回json" + json);
|
|
|
|
|
|
return json.toString();
|
|
|
}
|
|
@ -6502,6 +6705,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 电子病历xml
|
|
|
*
|
|
|
* @param registerSn
|
|
|
* @return
|
|
|
* @throws Exception
|
|
@ -6510,20 +6714,20 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
WlyyPrescriptionEmrDO wlyyPrescriptionEmrDO = new WlyyPrescriptionEmrDO();
|
|
|
String url = "";
|
|
|
WlyyHospitalSysDictDO wlyyHospitalSysDictDO = hospitalSysDictDao.findById("HAI_TAI_URL");
|
|
|
if (wlyyHospitalSysDictDO!=null){
|
|
|
if (wlyyHospitalSysDictDO != null) {
|
|
|
url = wlyyHospitalSysDictDO.getDictCode();
|
|
|
}
|
|
|
String xmlStr = "<?xml version=\"1.0\" encoding=\"GBK\"?>\n" +
|
|
|
"<HtRequest>\n";
|
|
|
xmlStr+="<REGISTER_SN>"+registerSn+"</REGISTER_SN>";
|
|
|
xmlStr+="<SEARCH_IDS>CHIEF_COMPLAINT,HPI,ELAPSEMHIS,BODYCHECK,ASSISTANTCHECK</SEARCH_IDS>";
|
|
|
String reqTime = DateUtil.dateToStr(new Date(),"yyyyMMddHHmmss");
|
|
|
xmlStr+="<REQ_TIME>"+reqTime+"</REQ_TIME>";
|
|
|
xmlStr+="</HtRequest>";
|
|
|
xmlStr += "<REGISTER_SN>" + registerSn + "</REGISTER_SN>";
|
|
|
xmlStr += "<SEARCH_IDS>CHIEF_COMPLAINT,HPI,ELAPSEMHIS,BODYCHECK,ASSISTANTCHECK</SEARCH_IDS>";
|
|
|
String reqTime = DateUtil.dateToStr(new Date(), "yyyyMMddHHmmss");
|
|
|
xmlStr += "<REQ_TIME>" + reqTime + "</REQ_TIME>";
|
|
|
xmlStr += "</HtRequest>";
|
|
|
String returnValue = "";
|
|
|
Map<String, String> params = new HashedMap();
|
|
|
params.put("type","readOutPatientDetail");
|
|
|
params.put("xmlStr",xmlStr);
|
|
|
params.put("type", "readOutPatientDetail");
|
|
|
params.put("xmlStr", xmlStr);
|
|
|
returnValue = com.yihu.jw.utils.WebserviceUtil.post(url,
|
|
|
"http://business.htemr.haitaiinc.com",
|
|
|
"manageOutRegister",
|
|
@ -6532,7 +6736,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
logger.info("调用电子病历查询接口请求成功,返回值xmlstr:" + returnValue);
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
net.sf.json.JSON json = xmlSerializer.read(returnValue);
|
|
|
logger.info("返回json"+json);
|
|
|
logger.info("返回json" + json);
|
|
|
com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(json.toString());
|
|
|
wlyyPrescriptionEmrDO.setComplaint(object.getString("CHIEF_COMPLAINT"));
|
|
|
wlyyPrescriptionEmrDO.setMedicalHistory(object.getString("HPI"));
|
|
@ -6542,32 +6746,32 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
return wlyyPrescriptionEmrDO;
|
|
|
}
|
|
|
|
|
|
public String writeOutPatient(String registerSn,String chiefComplaint,String hpi,String elapsemhis,String bodycheck,String assistanTcheck,String doctorId,String doctorName) throws Exception {
|
|
|
public String writeOutPatient(String registerSn, String chiefComplaint, String hpi, String elapsemhis, String bodycheck, String assistanTcheck, String doctorId, String doctorName) throws Exception {
|
|
|
String url = "";
|
|
|
WlyyHospitalSysDictDO wlyyHospitalSysDictDO = hospitalSysDictDao.findById("HAI_TAI_URL");
|
|
|
if (wlyyHospitalSysDictDO!=null){
|
|
|
if (wlyyHospitalSysDictDO != null) {
|
|
|
url = wlyyHospitalSysDictDO.getDictCode();
|
|
|
}
|
|
|
String xmlStr = "<?xml version=\"1.0\" encoding=\"GBK\"?>\n" +
|
|
|
"<HtRequest>\n";
|
|
|
xmlStr+="<REGISTER_SN>"+registerSn+"</REGISTER_SN>";
|
|
|
String reqTime = DateUtil.dateToStr(new Date(),"yyyyMMddHHmmss");
|
|
|
xmlStr+="<REQ_TIME>"+reqTime+"</REQ_TIME>";
|
|
|
xmlStr+="<TREAT_DOCTOR_ID>"+doctorId+"</TREAT_DOCTOR_ID>";
|
|
|
xmlStr+="<TREAT_DOCTOR_NAME>"+doctorName+"</TREAT_DOCTOR_NAME>";
|
|
|
xmlStr+="<IS_SGIN>Y</IS_SGIN>";
|
|
|
xmlStr+="<OUTPATIENT_INFO>";
|
|
|
xmlStr+="<CHIEF_COMPLAINT>"+chiefComplaint+"</CHIEF_COMPLAINT>";
|
|
|
xmlStr+="<HPI>"+hpi+"</HPI>";
|
|
|
xmlStr+="<ELAPSEMHIS>"+elapsemhis+"</ELAPSEMHIS>";
|
|
|
xmlStr+="<BODYCHECK>"+bodycheck+"</BODYCHECK>";
|
|
|
xmlStr+="<ASSISTANTCHECK>"+assistanTcheck+"</ASSISTANTCHECK>";
|
|
|
xmlStr+="</OUTPATIENT_INFO>";
|
|
|
xmlStr+="</HtRequest>";
|
|
|
xmlStr += "<REGISTER_SN>" + registerSn + "</REGISTER_SN>";
|
|
|
String reqTime = DateUtil.dateToStr(new Date(), "yyyyMMddHHmmss");
|
|
|
xmlStr += "<REQ_TIME>" + reqTime + "</REQ_TIME>";
|
|
|
xmlStr += "<TREAT_DOCTOR_ID>" + doctorId + "</TREAT_DOCTOR_ID>";
|
|
|
xmlStr += "<TREAT_DOCTOR_NAME>" + doctorName + "</TREAT_DOCTOR_NAME>";
|
|
|
xmlStr += "<IS_SGIN>Y</IS_SGIN>";
|
|
|
xmlStr += "<OUTPATIENT_INFO>";
|
|
|
xmlStr += "<CHIEF_COMPLAINT>" + chiefComplaint + "</CHIEF_COMPLAINT>";
|
|
|
xmlStr += "<HPI>" + hpi + "</HPI>";
|
|
|
xmlStr += "<ELAPSEMHIS>" + elapsemhis + "</ELAPSEMHIS>";
|
|
|
xmlStr += "<BODYCHECK>" + bodycheck + "</BODYCHECK>";
|
|
|
xmlStr += "<ASSISTANTCHECK>" + assistanTcheck + "</ASSISTANTCHECK>";
|
|
|
xmlStr += "</OUTPATIENT_INFO>";
|
|
|
xmlStr += "</HtRequest>";
|
|
|
String returnValue = "";
|
|
|
Map<String, String> params = new HashedMap();
|
|
|
params.put("type","writeOutPatient");
|
|
|
params.put("xmlStr",xmlStr);
|
|
|
params.put("type", "writeOutPatient");
|
|
|
params.put("xmlStr", xmlStr);
|
|
|
returnValue = com.yihu.jw.utils.WebserviceUtil.post(url,
|
|
|
"http://business.htemr.haitaiinc.com",
|
|
|
"manageOutRegister",
|
|
@ -6576,15 +6780,12 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
logger.info("调用电子病历写入接口请求成功,返回值xmlstr:" + returnValue);
|
|
|
XMLSerializer xmlSerializer = new XMLSerializer();
|
|
|
net.sf.json.JSON json = xmlSerializer.read(returnValue);
|
|
|
logger.info("返回json"+json);
|
|
|
logger.info("返回json" + json);
|
|
|
|
|
|
return json.toString();
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 关注医生
|
|
|
* @param doctorId
|
|
@ -6785,48 +6986,49 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
|
|
|
/**
|
|
|
* 查询患者所有处方信息
|
|
|
*
|
|
|
* @param page
|
|
|
* @param size
|
|
|
* @return
|
|
|
*/
|
|
|
public PageEnvelop findPatientAllPrescription(String keyName,String status,Integer page, Integer size) {
|
|
|
public PageEnvelop findPatientAllPrescription(String keyName, String status, Integer page, Integer size) {
|
|
|
String uid = userAgent.getUID();
|
|
|
StringBuffer sql = new StringBuffer(" SELECT b.*, c.oneself_pickup_flg,f.job_title_code,f.job_title_name FROM (SELECT a.* FROM wlyy_prescription a WHERE a.patient_code = '");
|
|
|
StringBuffer countSql = new StringBuffer("select COUNT(b.id) count FROM (SELECT a.* FROM wlyy_prescription a WHERE a.patient_code = '");
|
|
|
sql.append(uid).append("') b LEFT JOIN wlyy_prescription_info d ON b.id = d.prescription_id LEFT JOIN wlyy_prescription_expressage c ON c.outpatient_id = b.outpatient_id LEFT JOIN base_doctor f ON b.doctor=f.id ");
|
|
|
countSql.append(uid).append("') b LEFT JOIN wlyy_prescription_info d ON b.id = d.prescription_id LEFT JOIN wlyy_prescription_expressage c ON c.outpatient_id = b.outpatient_id LEFT JOIN base_doctor f ON b.doctor=f.id ");
|
|
|
|
|
|
if (StringUtils.isNotEmpty(status)){
|
|
|
status= status.substring(1, status.length() - 1);
|
|
|
if (StringUtils.isNotEmpty(status)) {
|
|
|
status = status.substring(1, status.length() - 1);
|
|
|
sql.append(" where b.status IN(").append(status).append(")");
|
|
|
countSql.append(" where b.status IN(").append(status).append(")");
|
|
|
}else {
|
|
|
} else {
|
|
|
sql.append(" where b.status IN(20,21,30,31,32,100,101)");
|
|
|
countSql.append(" where b.status IN(20,21,30,31,32,100,101) ");
|
|
|
}
|
|
|
|
|
|
if (StringUtils.isNotEmpty(keyName)){
|
|
|
if (StringUtils.isNotEmpty(keyName)) {
|
|
|
sql.append(" and (" +
|
|
|
" b.doctor_name LIKE '%"+keyName+"%' " +
|
|
|
" OR b.dept_name LIKE'%"+keyName+"%' " +
|
|
|
" OR b.hospital_name LIKE '%"+keyName+"%' " +
|
|
|
" OR d.drug_name LIKE '%"+keyName+"%' " +
|
|
|
" OR b.real_order LIKE '%"+keyName+"%' " +
|
|
|
" b.doctor_name LIKE '%" + keyName + "%' " +
|
|
|
" OR b.dept_name LIKE'%" + keyName + "%' " +
|
|
|
" OR b.hospital_name LIKE '%" + keyName + "%' " +
|
|
|
" OR d.drug_name LIKE '%" + keyName + "%' " +
|
|
|
" OR b.real_order LIKE '%" + keyName + "%' " +
|
|
|
")");
|
|
|
countSql.append(" and (" +
|
|
|
" b.doctor_name LIKE '%"+keyName+"%' " +
|
|
|
" OR b.dept_name LIKE'%"+keyName+"%' " +
|
|
|
" OR b.hospital_name LIKE '%"+keyName+"%' " +
|
|
|
" OR d.drug_name LIKE '%"+keyName+"%' " +
|
|
|
" OR b.real_order LIKE '%"+keyName+"%' " +
|
|
|
" b.doctor_name LIKE '%" + keyName + "%' " +
|
|
|
" OR b.dept_name LIKE'%" + keyName + "%' " +
|
|
|
" OR b.hospital_name LIKE '%" + keyName + "%' " +
|
|
|
" OR d.drug_name LIKE '%" + keyName + "%' " +
|
|
|
" OR b.real_order LIKE '%" + keyName + "%' " +
|
|
|
")");
|
|
|
}
|
|
|
|
|
|
sql.append(" order by b.prescribe_time DESC ");
|
|
|
|
|
|
List<WlyyPrescriptionVO> list=null;
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)){
|
|
|
String oracleSql="SELECT\n" +
|
|
|
List<WlyyPrescriptionVO> list = null;
|
|
|
if ("xm_ykyy_wx".equalsIgnoreCase(wechatId)) {
|
|
|
String oracleSql = "SELECT\n" +
|
|
|
"\t*\n" +
|
|
|
"FROM\n" +
|
|
|
"\t(\n" +
|
|
@ -6835,42 +7037,42 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"\t\tFROM\n" +
|
|
|
"\t\t\t(";
|
|
|
|
|
|
oracleSql+=sql.toString();
|
|
|
oracleSql += sql.toString();
|
|
|
|
|
|
oracleSql+="\t\t\t) A\n" +
|
|
|
oracleSql += "\t\t\t) A\n" +
|
|
|
"\t\tWHERE\n" +
|
|
|
" ROWNUM <="+page*size +
|
|
|
" ROWNUM <=" + page * size +
|
|
|
"\t) \n" +
|
|
|
"WHERE\n" +
|
|
|
"\tROWNUM >= "+(page-1)*size;
|
|
|
logger.info("oracleSql="+oracleSql);
|
|
|
"\tROWNUM >= " + (page - 1) * size;
|
|
|
logger.info("oracleSql=" + oracleSql);
|
|
|
list = jdbcTemplate.query(oracleSql, new BeanPropertyRowMapper<>(WlyyPrescriptionVO.class));
|
|
|
}else {
|
|
|
} else {
|
|
|
// sql+=" LIMIT " + (page - 1) * size + "," + size + "";
|
|
|
sql.append(" limit ").append((page-1)*size).append(",").append(size);
|
|
|
sql.append(" limit ").append((page - 1) * size).append(",").append(size);
|
|
|
list = jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper<>(WlyyPrescriptionVO.class));
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// List<WlyyPrescriptionVO> list = jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper<>(WlyyPrescriptionVO.class));
|
|
|
List<Map<String, Object>> mapList = jdbcTemplate.queryForList(countSql.toString());
|
|
|
long count = Long.parseLong(mapList.get(0).get("count").toString());
|
|
|
logger.info("sql="+sql.toString());
|
|
|
logger.info("countSql="+countSql.toString());
|
|
|
return PageEnvelop.getSuccessListWithPage(IotRequestMapping.Common.message_success_find, list,page,size,count);
|
|
|
logger.info("sql=" + sql.toString());
|
|
|
logger.info("countSql=" + countSql.toString());
|
|
|
return PageEnvelop.getSuccessListWithPage(IotRequestMapping.Common.message_success_find, list, page, size, count);
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 查询取药地址
|
|
|
*
|
|
|
* @param outpatientId
|
|
|
* @param longitude
|
|
|
* @param dimension
|
|
|
* @return
|
|
|
*/
|
|
|
public MixEnvelop findDrugAddress(String outpatientId, String longitude, String dimension) {
|
|
|
String sql="SELECT\n" +
|
|
|
String sql = "SELECT\n" +
|
|
|
"\ta.*\n" +
|
|
|
"FROM\n" +
|
|
|
"\tbase_org a\n" +
|
|
@ -6880,90 +7082,101 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
|
|
|
"\tFROM\n" +
|
|
|
"\t\twlyy_prescription_expressage c\n" +
|
|
|
"\tWHERE\n" +
|
|
|
" c.outpatient_id = '"+outpatientId+"'" +
|
|
|
" c.outpatient_id = '" + outpatientId + "'" +
|
|
|
" ) d ON a.`code` = d.hospital_code";
|
|
|
BaseOrgDO baseOrgDO = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(BaseOrgDO.class)).get(0);
|
|
|
Map<String, String> rs = new HashMap<>();
|
|
|
rs.put("hospital",baseOrgDO.getName());
|
|
|
rs.put("address",baseOrgDO.getAddress());
|
|
|
rs.put("hospital", baseOrgDO.getName());
|
|
|
rs.put("address", baseOrgDO.getAddress());
|
|
|
String distance = LatitudeUtils.getDistance(longitude, dimension, baseOrgDO.getLongitude(), baseOrgDO.getLatitude());
|
|
|
rs.put("distance",distance);
|
|
|
rs.put("longitude",baseOrgDO.getLongitude());
|
|
|
rs.put("dimension",baseOrgDO.getLatitude());
|
|
|
return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find,rs);
|
|
|
rs.put("distance", distance);
|
|
|
rs.put("longitude", baseOrgDO.getLongitude());
|
|
|
rs.put("dimension", baseOrgDO.getLatitude());
|
|
|
return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find, rs);
|
|
|
}
|
|
|
|
|
|
|
|
|
public MixEnvelop selectByUrl(String oupatientId,String prescriptionId,String wxId) throws Exception {
|
|
|
public MixEnvelop selectByUrl(String oupatientId, String prescriptionId, String wxId) throws Exception {
|
|
|
WxWechatDO wxWechatDO = wechatDao.findById(wxId);
|
|
|
if (wxWechatDO==null){
|
|
|
if (wxWechatDO == null) {
|
|
|
throw new Exception("微信配置不存在!");
|
|
|
}
|
|
|
WlyyPrescriptionDO prescriptionDO = prescriptionDao.findOne(prescriptionId);
|
|
|
if (prescriptionDO==null){
|
|
|
if (prescriptionDO == null) {
|
|
|
throw new Exception("处方不存在!");
|
|
|
}
|
|
|
List<BasePatientWechatDo> patientWechatDos =patientWechatDao.findByWechatIdAndPatientId(wxId,prescriptionDO.getPatientCode());
|
|
|
if (patientWechatDos==null||patientWechatDos.size()==0){
|
|
|
List<BasePatientWechatDo> patientWechatDos = patientWechatDao.findByWechatIdAndPatientId(wxId, prescriptionDO.getPatientCode());
|
|
|
if (patientWechatDos == null || patientWechatDos.size() == 0) {
|
|
|
throw new Exception("openid不存在!");
|
|
|
}
|
|
|
BasePatientWechatDo patientWechatDo = patientWechatDos.get(0);
|
|
|
|
|
|
WlyyOutpatientDO wlyyOutpatientDO = outpatientDao.findById(oupatientId);
|
|
|
String idcard=null;
|
|
|
if (wlyyOutpatientDO!=null){
|
|
|
idcard=wlyyOutpatientDO.getCardNo();
|
|
|
String idcard = null;
|
|
|
if (wlyyOutpatientDO != null) {
|
|
|
idcard = wlyyOutpatientDO.getCardNo();
|
|
|
}
|
|
|
if (!StringUtils.isNoneBlank(idcard)){
|
|
|
if (!StringUtils.isNoneBlank(idcard)) {
|
|
|
throw new Exception("就诊卡不存在!");
|
|
|
}
|
|
|
String url = ylzPayService.createSicardPayUrl(wxWechatDO.getAppOriginId(),patientWechatDo.getOpenid(),idcard,"WX");
|
|
|
String url = ylzPayService.createSicardPayUrl(wxWechatDO.getAppOriginId(), patientWechatDo.getOpenid(), idcard, "WX");
|
|
|
com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(url);
|
|
|
return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find,object);
|
|
|
return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find, object);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 获取居民openId
|
|
|
*
|
|
|
* @param patientCode
|
|
|
* @return
|
|
|
*/
|
|
|
public MixEnvelop findPatientOpenId(String patientCode) {
|
|
|
List<BasePatientWechatDo> basePatientWechatDo = patientWechatDao.findByWechatIdAndPatientId(wechatId, patientCode);
|
|
|
if (basePatientWechatDo.isEmpty()){
|
|
|
return MixEnvelop.getSuccess("居民openID不存在",null);
|
|
|
if (basePatientWechatDo.isEmpty()) {
|
|
|
return MixEnvelop.getSuccess("居民openID不存在", null);
|
|
|
}
|
|
|
String openid = basePatientWechatDo.get(0).getOpenid();
|
|
|
if (StringUtils.isEmpty(openid)){
|
|
|
return MixEnvelop.getSuccess("居民openID不存在",null);
|
|
|
if (StringUtils.isEmpty(openid)) {
|
|
|
return MixEnvelop.getSuccess("居民openID不存在", null);
|
|
|
}
|
|
|
return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find,openid);
|
|
|
return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find, openid);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询科室简介
|
|
|
*
|
|
|
* @param orgCode
|
|
|
* @param deptCode
|
|
|
* @return
|
|
|
*/
|
|
|
public MixEnvelop findDeptDesc(String orgCode, String deptCode) {
|
|
|
DictDeptDescDO deptDescDO = dictDeptDescDao.findByDeptCodeAndOrgCode(deptCode, orgCode);
|
|
|
if (deptDescDO!=null){
|
|
|
return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find,deptDescDO);
|
|
|
}else {
|
|
|
if (deptDescDO != null) {
|
|
|
return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find, deptDescDO);
|
|
|
} else {
|
|
|
return MixEnvelop.getError("无该科室简介");
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询机构科室
|
|
|
*
|
|
|
* @param orgCode
|
|
|
* @return
|
|
|
*/
|
|
|
public MixEnvelop findDeptByOrgCode(String orgCode) {
|
|
|
List<DictDeptDescDO> deptDescDOList = dictDeptDescDao.findByOrgCode(orgCode);
|
|
|
if (deptDescDOList==null || deptDescDOList.size()==0){
|
|
|
public MixEnvelop findDeptByOrgCode(String orgCode, String keyName) {
|
|
|
List<DictDeptDescDO> deptDescDOList = new ArrayList<DictDeptDescDO>();
|
|
|
if (StringUtils.isEmpty(keyName)) {
|
|
|
deptDescDOList = dictDeptDescDao.findByOrgCode(orgCode);
|
|
|
} else {
|
|
|
deptDescDOList = dictDeptDescDao.findByOrgCode(orgCode, keyName);
|
|
|
}
|
|
|
deptDescDOList.forEach(one -> {
|
|
|
one.setDeptDescription(null);
|
|
|
});
|
|
|
if (deptDescDOList == null || deptDescDOList.size() == 0) {
|
|
|
return MixEnvelop.getError("无科室信息");
|
|
|
}
|
|
|
return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find,deptDescDOList);
|
|
|
return MixEnvelop.getSuccess(IotRequestMapping.Common.message_success_find, deptDescDOList);
|
|
|
}
|
|
|
}
|