|
@ -17,6 +17,7 @@ import com.yihu.jw.restmodel.web.ObjEnvelop;
|
|
|
import com.yihu.jw.rm.specialist.SpecialistMapping;
|
|
|
import com.yihu.jw.util.common.IdCardUtil;
|
|
|
import com.yihu.jw.util.date.DateUtil;
|
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.json.JSONArray;
|
|
|
import org.json.JSONObject;
|
|
@ -98,7 +99,7 @@ public class RehabilitationManageService {
|
|
|
condition += " and execute_time>='"+todayStart+"' and execute_time<='"+todayEnd+"'";
|
|
|
}
|
|
|
finalSql =" select DISTINCT b.* from (select DISTINCT plan_id from wlyy_specialist.wlyy_rehabilitation_plan_detail where 1=1 "+condition+") a " +
|
|
|
" LEFT JOIN ("+sql+") b on a.plan_id=b.id ";
|
|
|
" right JOIN ("+sql+") b on a.plan_id=b.id ";
|
|
|
// if(todaybacklog!=null&&todaybacklog==1){
|
|
|
// finalSql = " select DISTINCT b.* from (select DISTINCT plan_id from wlyy_specialist.wlyy_rehabilitation_plan_detail where execute_time>='"+todayStart+"' and execute_time<='"+todayEnd+"') a "+
|
|
|
// "LEFT JOIN ("+sql+") b on a.plan_id=b.id";
|
|
@ -117,11 +118,11 @@ public class RehabilitationManageService {
|
|
|
|
|
|
for(Map<String,Object> one:patientRehabilitationPlanDOList){
|
|
|
Map<String,Object> resultMap = new HashMap<>();
|
|
|
Integer age = IdCardUtil.getAgeForIdcard(one.get("idcard")+"");
|
|
|
String sex = IdCardUtil.getSexForIdcard_new(one.get("idcard")+"");
|
|
|
resultMap.put("age",age);
|
|
|
// Integer age = IdCardUtil.getAgeForIdcard(one.get("idcard")+"");
|
|
|
// String sex = IdCardUtil.getSexForIdcard_new(one.get("idcard")+"");
|
|
|
// resultMap.put("age",age);
|
|
|
resultMap.put("hospitalName",one.get("hospital_name"));
|
|
|
resultMap.put("sex","1".equals(sex)?"男":("2".equals(sex)?"女":"未知"));
|
|
|
// resultMap.put("sex","1".equals(sex)?"男":("2".equals(sex)?"女":"未知"));
|
|
|
resultMap.put("patientName",one.get("name"));
|
|
|
resultMap.put("patientCode",one.get("patient"));
|
|
|
resultMap.put("id",one.get("id"));
|
|
@ -285,9 +286,9 @@ public class RehabilitationManageService {
|
|
|
Map<String,Object> signFamilyMap = signFamilyList.get(0);
|
|
|
resultMap.put("signFamilyAdminTeamName",signFamilyMap.get("teamName"));
|
|
|
resultMap.put("familyHospitalName",signFamilyMap.get("hospital_name"));//家庭医生所在医院
|
|
|
Integer familyUnfinishCount = rehabilitationDetailDao.unfinishItemByDoctor(signFamilyMap.get("doctor").toString(),signFamilyMap.get("doctor_health").toString(),patientCode,1);
|
|
|
Integer familyFinishCount = rehabilitationDetailDao.findItemByDoctor(signFamilyMap.get("doctor").toString(),signFamilyMap.get("doctor_health").toString(),patientCode);
|
|
|
Integer familyServiceCount = rehabilitationDetailDao.completeServiceByDoctor(signFamilyMap.get("doctor").toString(),signFamilyMap.get("doctor_health").toString(),patientCode,1);
|
|
|
Integer familyUnfinishCount = rehabilitationDetailDao.unfinishItemByDoctor(signFamilyMap.get("doctor")+"",signFamilyMap.get("doctor_health")+"",patientCode,1);
|
|
|
Integer familyFinishCount = rehabilitationDetailDao.findItemByDoctor(signFamilyMap.get("doctor")+"",signFamilyMap.get("doctor_health")+"",patientCode);
|
|
|
Integer familyServiceCount = rehabilitationDetailDao.completeServiceByDoctor(signFamilyMap.get("doctor")+"",signFamilyMap.get("doctor_health")+"",patientCode,1);
|
|
|
resultMap.put("signFamilyFinishItemCount",familyFinishCount-familyUnfinishCount);//完成项目
|
|
|
resultMap.put("signFamilyServiceRecordCount",familyServiceCount);//服务次数
|
|
|
|
|
@ -481,7 +482,7 @@ public class RehabilitationManageService {
|
|
|
String sql = " select d.*,DATE_FORMAT(d.execute_time,'%Y/%m/%d %H:%i') as executeTime ,i.content,i.title from wlyy_specialist.wlyy_rehabilitation_plan_detail d " +
|
|
|
" LEFT JOIN wlyy_specialist.wlyy_hospital_service_item h on d.hospital_service_item_id = h.id "+
|
|
|
" LEFT JOIN wlyy_service_item i on i.id = h.service_item_id " +
|
|
|
" where d.execute_time>='"+executeStartTime+"' and d.execute_time<='"+executeEndTime+"' and d.plan_id='"+planId+"' " ;
|
|
|
" where d.execute_time>='"+executeStartTime+"' and d.execute_time<='"+executeEndTime+"' and d.plan_id='"+planId+"' order by d.execute_time desc" ;
|
|
|
if(searchTask!=null){
|
|
|
if(searchTask==1){
|
|
|
sql+="and d.doctor='"+doctorCode+"' ";
|
|
@ -554,6 +555,7 @@ public class RehabilitationManageService {
|
|
|
map.put("doctorName",one2.getDoctorName());
|
|
|
map.put("adminTeamName",one2.getAdminTeamName());
|
|
|
map.put("content",one2.getContent());
|
|
|
map.put("contentType",one2.getContentType());
|
|
|
map.put("createTime",DateUtil.dateToStr(one2.getCreateTime(),"MM-dd HH:mm"));
|
|
|
messageMapList.add(map);
|
|
|
}
|
|
@ -626,6 +628,7 @@ public class RehabilitationManageService {
|
|
|
map.put("doctorName",one2.getDoctorName());
|
|
|
map.put("adminTeamName",one2.getAdminTeamName());
|
|
|
map.put("content",one2.getContent());
|
|
|
map.put("contentType",one2.getContentType());
|
|
|
map.put("createTime",DateUtil.dateToStr(one2.getCreateTime(),"MM-dd HH:mm"));
|
|
|
messageMapList.add(map);
|
|
|
}
|
|
@ -684,27 +687,32 @@ public class RehabilitationManageService {
|
|
|
//服务医生
|
|
|
//完成项目=全部的服务项目-未完成的服务项目
|
|
|
List<Map<String,Object>> serviceDoctorList = new ArrayList<>();
|
|
|
Map<String,Object> generalDoctorMap = new HashMap<>();
|
|
|
generalDoctorMap.put("type","全科医生");
|
|
|
generalDoctorMap.put("doctorName",generalDoctorName);
|
|
|
generalDoctorMap.put("doctorCode",generalDoctor);
|
|
|
Integer generalUnfinishCount = rehabilitationDetailDao.unfinishItemByDoctor(generalDoctor,patientCode,1);
|
|
|
Integer generalFinishCount = rehabilitationDetailDao.findItemByDoctor(generalDoctor,patientCode);
|
|
|
Integer generalServiceCount = rehabilitationDetailDao.completeServiceByDoctor(generalDoctor,patientCode,1);
|
|
|
generalDoctorMap.put("finishedItem",generalFinishCount-generalUnfinishCount);
|
|
|
generalDoctorMap.put("serviceCount",generalServiceCount);
|
|
|
serviceDoctorList.add(generalDoctorMap);
|
|
|
if(StringUtils.isNotEmpty(generalDoctor)){
|
|
|
|
|
|
Map<String,Object> healthDoctorMap = new HashMap<>();
|
|
|
healthDoctorMap.put("type","健管师");
|
|
|
healthDoctorMap.put("doctorName",healthDoctorName);
|
|
|
healthDoctorMap.put("doctorCode",healthDoctor);
|
|
|
Integer healthUnfinishCount = rehabilitationDetailDao.unfinishItemByDoctor(healthDoctor,patientCode,1);
|
|
|
Integer healthFinishCount = rehabilitationDetailDao.findItemByDoctor(healthDoctor,patientCode);
|
|
|
Integer healthServiceCount = rehabilitationDetailDao.completeServiceByDoctor(healthDoctor,patientCode,1);
|
|
|
healthDoctorMap.put("finishedItem",healthFinishCount-healthUnfinishCount);
|
|
|
healthDoctorMap.put("serviceCount",healthServiceCount);
|
|
|
serviceDoctorList.add(healthDoctorMap);
|
|
|
Map<String,Object> generalDoctorMap = new HashMap<>();
|
|
|
generalDoctorMap.put("type","全科医生");
|
|
|
generalDoctorMap.put("doctorName",generalDoctorName);
|
|
|
generalDoctorMap.put("doctorCode",generalDoctor);
|
|
|
Integer generalUnfinishCount = rehabilitationDetailDao.unfinishItemByDoctor(generalDoctor,patientCode,1);
|
|
|
Integer generalFinishCount = rehabilitationDetailDao.findItemByDoctor(generalDoctor,patientCode);
|
|
|
Integer generalServiceCount = rehabilitationDetailDao.completeServiceByDoctor(generalDoctor,patientCode,1);
|
|
|
generalDoctorMap.put("finishedItem",generalFinishCount-generalUnfinishCount);
|
|
|
generalDoctorMap.put("serviceCount",generalServiceCount);
|
|
|
serviceDoctorList.add(generalDoctorMap);
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(healthDoctor)){
|
|
|
|
|
|
Map<String,Object> healthDoctorMap = new HashMap<>();
|
|
|
healthDoctorMap.put("type","健管师");
|
|
|
healthDoctorMap.put("doctorName",healthDoctorName);
|
|
|
healthDoctorMap.put("doctorCode",healthDoctor);
|
|
|
Integer healthUnfinishCount = rehabilitationDetailDao.unfinishItemByDoctor(healthDoctor,patientCode,1);
|
|
|
Integer healthFinishCount = rehabilitationDetailDao.findItemByDoctor(healthDoctor,patientCode);
|
|
|
Integer healthServiceCount = rehabilitationDetailDao.completeServiceByDoctor(healthDoctor,patientCode,1);
|
|
|
healthDoctorMap.put("finishedItem",healthFinishCount-healthUnfinishCount);
|
|
|
healthDoctorMap.put("serviceCount",healthServiceCount);
|
|
|
serviceDoctorList.add(healthDoctorMap);
|
|
|
}
|
|
|
|
|
|
String specialistRelationSql = "select * from wlyy_specialist.wlyy_specialist_patient_relation where patient='"+patientCode+"' and sign_status='1' and status='1'";
|
|
|
List<Map<String,Object>> specialistRelationList = jdbcTemplate.queryForList(specialistRelationSql);
|
|
@ -905,16 +913,16 @@ public class RehabilitationManageService {
|
|
|
* @param doctorType 1、专科医生,2、家庭医生
|
|
|
*/
|
|
|
@Transactional
|
|
|
public Envelop saveGuidanceMessage(String messageId,String doctor,Integer doctorType,String content,String planDetailId) throws Exception{
|
|
|
public Envelop saveGuidanceMessage(String messageId,String doctor,Integer doctorType,String content,String planDetailId,Integer contentType) throws Exception{
|
|
|
|
|
|
List<Map<String,Object>> patientList = rehabilitationDetailDao.findPatientById(planDetailId);
|
|
|
String patient = patientList.size()>0?patientList.get(0).get("patient")+"":"";
|
|
|
List<String> patientList = rehabilitationDetailDao.findPatientById(planDetailId);
|
|
|
String patient = patientList.size()>0?patientList.get(0):"";
|
|
|
GuidanceMessageLogDO guidanceMessageLogDO = new GuidanceMessageLogDO();
|
|
|
guidanceMessageLogDO.setMessageId(messageId);
|
|
|
guidanceMessageLogDO.setPlanDetailId(planDetailId);
|
|
|
guidanceMessageLogDO.setContent(content);
|
|
|
guidanceMessageLogDO.setDoctor(doctor);
|
|
|
|
|
|
guidanceMessageLogDO.setContentType(contentType);
|
|
|
guidanceMessageLogDO.setDoctorType(doctorType);
|
|
|
Integer adminTeamCode = null;
|
|
|
String doctorName = null;
|
|
@ -968,27 +976,33 @@ public class RehabilitationManageService {
|
|
|
//服务医生
|
|
|
//完成项目=全部的服务项目-未完成的服务项目
|
|
|
List<Map<String,Object>> serviceDoctorList = new ArrayList<>();
|
|
|
Map<String,Object> generalDoctorMap = new HashMap<>();
|
|
|
generalDoctorMap.put("type","全科医生");
|
|
|
generalDoctorMap.put("doctorName",generalDoctorName);
|
|
|
generalDoctorMap.put("doctorCode",generalDoctor);
|
|
|
Integer generalUnfinishCount = rehabilitationDetailDao.unfinishItemByDoctor(generalDoctor,patientCode,1);
|
|
|
Integer generalFinishCount = rehabilitationDetailDao.findItemByDoctor(generalDoctor,patientCode);
|
|
|
Integer generalServiceCount = rehabilitationDetailDao.completeServiceByDoctor(generalDoctor,patientCode,1);
|
|
|
generalDoctorMap.put("finishedItem",generalFinishCount-generalUnfinishCount);
|
|
|
generalDoctorMap.put("serviceCount",generalServiceCount);
|
|
|
serviceDoctorList.add(generalDoctorMap);
|
|
|
if(StringUtils.isNotEmpty(generalDoctor)){
|
|
|
|
|
|
Map<String,Object> healthDoctorMap = new HashMap<>();
|
|
|
healthDoctorMap.put("type","健管师");
|
|
|
healthDoctorMap.put("doctorName",healthDoctorName);
|
|
|
healthDoctorMap.put("doctorCode",healthDoctor);
|
|
|
Integer healthUnfinishCount = rehabilitationDetailDao.unfinishItemByDoctor(healthDoctor,patientCode,1);
|
|
|
Integer healthFinishCount = rehabilitationDetailDao.findItemByDoctor(healthDoctor,patientCode);
|
|
|
Integer healthServiceCount = rehabilitationDetailDao.completeServiceByDoctor(healthDoctor,patientCode,1);
|
|
|
healthDoctorMap.put("finishedItem",healthFinishCount-healthUnfinishCount);
|
|
|
healthDoctorMap.put("serviceCount",healthServiceCount);
|
|
|
serviceDoctorList.add(healthDoctorMap);
|
|
|
Map<String,Object> generalDoctorMap = new HashMap<>();
|
|
|
generalDoctorMap.put("type","全科医生");
|
|
|
generalDoctorMap.put("doctorName",generalDoctorName);
|
|
|
generalDoctorMap.put("doctorCode",generalDoctor);
|
|
|
Integer generalUnfinishCount = rehabilitationDetailDao.unfinishItemByDoctor(generalDoctor,patientCode,1);
|
|
|
Integer generalFinishCount = rehabilitationDetailDao.findItemByDoctor(generalDoctor,patientCode);
|
|
|
Integer generalServiceCount = rehabilitationDetailDao.completeServiceByDoctor(generalDoctor,patientCode,1);
|
|
|
generalDoctorMap.put("finishedItem",generalFinishCount-generalUnfinishCount);
|
|
|
generalDoctorMap.put("serviceCount",generalServiceCount);
|
|
|
serviceDoctorList.add(generalDoctorMap);
|
|
|
}
|
|
|
|
|
|
if(StringUtils.isNotEmpty(healthDoctor)){
|
|
|
|
|
|
Map<String,Object> healthDoctorMap = new HashMap<>();
|
|
|
healthDoctorMap.put("type","健管师");
|
|
|
healthDoctorMap.put("doctorName",healthDoctorName);
|
|
|
healthDoctorMap.put("doctorCode",healthDoctor);
|
|
|
Integer healthUnfinishCount = rehabilitationDetailDao.unfinishItemByDoctor(healthDoctor,patientCode,1);
|
|
|
Integer healthFinishCount = rehabilitationDetailDao.findItemByDoctor(healthDoctor,patientCode);
|
|
|
Integer healthServiceCount = rehabilitationDetailDao.completeServiceByDoctor(healthDoctor,patientCode,1);
|
|
|
healthDoctorMap.put("finishedItem",healthFinishCount-healthUnfinishCount);
|
|
|
healthDoctorMap.put("serviceCount",healthServiceCount);
|
|
|
serviceDoctorList.add(healthDoctorMap);
|
|
|
}
|
|
|
|
|
|
String specialistRelationSql = "select * from wlyy_specialist.wlyy_specialist_patient_relation where patient='"+patientCode+"' and sign_status='1' and status='1'";
|
|
|
List<Map<String,Object>> specialistRelationList = jdbcTemplate.queryForList(specialistRelationSql);
|
|
@ -1049,13 +1063,32 @@ public class RehabilitationManageService {
|
|
|
* @param planDeatilId
|
|
|
* @return
|
|
|
*/
|
|
|
public int updateNodeAndRelationRecordImg(String node,String image,String planDeatilId){
|
|
|
int i = 0;
|
|
|
i = rehabilitationDetailDao.updateStatusById(1,planDeatilId);
|
|
|
int j = 0;
|
|
|
j = rehabilitationOperateRecordsDao.updateNodeAndRelationRecordImg(node,image,planDeatilId);
|
|
|
int result = i+j;
|
|
|
return result;
|
|
|
public Map<String,Object> updateNodeAndRelationRecordImg(String node,String image,String planDeatilId)throws Exception{
|
|
|
Map<String,Object> resultMap = new HashedMap();
|
|
|
int i = rehabilitationDetailDao.updateStatusById(1,planDeatilId);
|
|
|
int j = rehabilitationOperateRecordsDao.updateNodeAndRelationRecordImg(node,image,planDeatilId);
|
|
|
String sql ="SELECT" +
|
|
|
" i.service_item_id," +
|
|
|
" r.doctor_code," +
|
|
|
" r.patient_code" +
|
|
|
" FROM" +
|
|
|
" wlyy_rehabilitation_plan_detail pd" +
|
|
|
" LEFT JOIN wlyy_hospital_service_item i ON pd.hospital_service_item_id = i.id" +
|
|
|
" LEFT JOIN wlyy_rehabilitation_operate_records r ON pd.id = r.rehabilitation_detail_id" +
|
|
|
" WHERE" +
|
|
|
" pd.id = '"+planDeatilId+"'";
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
if (list!=null && list.size()>0){
|
|
|
resultMap = list.get(0);
|
|
|
}
|
|
|
String itemSql ="SELECT evaluation,title FROM `wlyy_service_item` WHERE id='"+String.valueOf(resultMap.get("service_item_id"))+"'";
|
|
|
List<Map<String,Object>> itemList = jdbcTemplate.queryForList(itemSql);
|
|
|
if (itemList!=null && itemList.size()>0){
|
|
|
resultMap.put("evaluation",itemList.get(0).get("evaluation"));
|
|
|
resultMap.put("title",itemList.get(0).get("title"));
|
|
|
}
|
|
|
resultMap.put("count",i+j);
|
|
|
return resultMap;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@ -1071,4 +1104,19 @@ public class RehabilitationManageService {
|
|
|
}
|
|
|
return Envelop.getError("更新失败!");
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 计划总进度
|
|
|
* @param planId
|
|
|
* @return
|
|
|
*/
|
|
|
public ObjEnvelop planSchedule(String planId){
|
|
|
Map<String,Object> resultMap = new HashMap<>();
|
|
|
Integer allCount = rehabilitationDetailDao.findAllByPlanId(planId);//计划总服务项目数
|
|
|
Integer finishedCount = rehabilitationDetailDao.findByStatusAndPlanId(1,planId);
|
|
|
resultMap.put("allCount",allCount);
|
|
|
resultMap.put("finishedCount",finishedCount);
|
|
|
resultMap.put("healthyCondition","康复期");
|
|
|
return ObjEnvelop.getSuccess(SpecialistMapping.api_success,resultMap);
|
|
|
}
|
|
|
}
|