|
@ -4234,6 +4234,7 @@ public class ImService {
|
|
|
"op.doctor as \"doctor\" ," +
|
|
|
"op.source as \"source\" ," +
|
|
|
"op.card_no as \"cardNo\" ," +
|
|
|
"date_format(a.czrq,'%Y-%m-%d %H:%i:%S' ) AS \"consultTime\", "+
|
|
|
"op.medical_state as \"medicalState\" ," +
|
|
|
"bop.status as \"payStatus1\" ," +
|
|
|
"IFNULL(op.patient_cancel_value,op.doctor_cancel_value) as \"patientCancelValue\" ," +
|
|
@ -4329,6 +4330,7 @@ public class ImService {
|
|
|
sql += " and a.id = '" + id + "'";
|
|
|
}
|
|
|
sql += " ORDER BY op.create_time desc ";
|
|
|
String now = DateUtil.getStringDate();
|
|
|
List<Map<String, Object>> mapList = hibenateUtils.createSQLQuery(sql, page, pagesize);
|
|
|
for (Map<String, Object> map : mapList) {
|
|
|
if (map.get("patientIdcard") != null) {
|
|
@ -4403,10 +4405,57 @@ public class ImService {
|
|
|
map.put("icd10Name", content);
|
|
|
}
|
|
|
}
|
|
|
String statusTmp = map.get("status")+"";
|
|
|
String endTime = map.get("endTime")+"";
|
|
|
String czrq = map.get("czrq")+"";//预约时间
|
|
|
String consultTime = map.get("consultTime")+"";//接诊时间
|
|
|
String consultDuration = "-";//就诊时长
|
|
|
String waitDuration = "-";//候诊时长
|
|
|
if("3".equals(statusTmp)){
|
|
|
//已结束
|
|
|
consultDuration = getDifTime(endTime,consultTime);
|
|
|
waitDuration = getDifTime(consultTime,czrq);
|
|
|
}else if("0".equals(statusTmp)){
|
|
|
//候诊中
|
|
|
waitDuration = getDifTime(now,czrq);
|
|
|
}else if("1".equals(statusTmp)||"2".equals(statusTmp)){
|
|
|
//就诊中
|
|
|
consultDuration = getDifTime(now,consultTime);
|
|
|
waitDuration = getDifTime(now,czrq);
|
|
|
}else if("-1".equals(statusTmp)){
|
|
|
//已取消
|
|
|
waitDuration = getDifTime(endTime,czrq);
|
|
|
}
|
|
|
map.put("consultDuration",consultDuration);
|
|
|
map.put("waitDuration",waitDuration);
|
|
|
//就诊时长:
|
|
|
//已结束:结束时间-接诊时间;
|
|
|
//就诊中:管理员进入页面的时间-接诊时间;
|
|
|
//已取消、候诊中:空;
|
|
|
//
|
|
|
//候诊时长:
|
|
|
//候诊中:管理员进入页面的时间-预约时间;
|
|
|
//就诊中、已结束:接诊时间-预约时间;
|
|
|
//已取消:取消时间(endTime)-预约时间
|
|
|
}
|
|
|
return mapList;
|
|
|
}
|
|
|
|
|
|
//计算日期相差
|
|
|
public String getDifTime(String t1,String t2){
|
|
|
Date d1 = DateUtil.strToDate(t1);
|
|
|
Date d2 = DateUtil.strToDate(t2);
|
|
|
long diff = d1.getTime()-d2.getTime();
|
|
|
if(diff<=0){
|
|
|
return "00:00:00";
|
|
|
}
|
|
|
long hours = diff / 3600;
|
|
|
long remainingSeconds = diff % 3600;
|
|
|
long minutes = remainingSeconds / 60;
|
|
|
long seconds = remainingSeconds % 60;
|
|
|
return String.format("%02d:%02d:%02d", hours, minutes, seconds);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查询患者所有的咨询记录总数
|
|
|
* * @param doctor 患者标识
|