/// <summary> /// 以时间来分组获取各科室各阶段的就诊时长 /// 跨年按年,跨天按天,跨月按月 /// </summary> /// <param name="sTime"></param> /// <param name="eTime"></param> /// /// <param name="depts"></param> /// <param name="hospitalDistrict"></param> public List <DeptAverageTreatmentTime> GetDeptTreatmentAverageTimeGroupByTime(DateTime sTime, DateTime eTime, Int32[] depts, params string[] hospitalDistrict) { var hd = String.Join(",", hospitalDistrict); var dp = String.Join(",", depts); var detpAvgTreatment = new List <DeptAverageTreatmentTime>(); var command = GetCommandGroupByTime(sTime, eTime, depts, hospitalDistrict); var queryCommand = db.GetSqlStringCommand(command); using (var reader = db.ExecuteReader(queryCommand)) { while (reader.Read()) { var att = new DeptAverageTreatmentTime(); att.StaticsTime = reader.GetString(0); att.SpecialistId = reader.GetInt32(1); att.SpecialistName = specialists[att.SpecialistId]; att.Appointment = StringHandler.GetDoubleByString(reader.IsDBNull(2) ? "0" : reader.GetString(2), 1); att.AwaitingDiagnosis = StringHandler.GetDoubleByString(reader.IsDBNull(3) ? "0" : reader.GetString(3), 1); att.Diagnosis = StringHandler.GetDoubleByString(reader.IsDBNull(4) ? "0" : reader.GetString(4), 1); att.PayFees = StringHandler.GetDoubleByString(reader.IsDBNull(5) ? "0" : reader.GetString(5), 1); att.MedicineReceiving = StringHandler.GetDoubleByString(reader.IsDBNull(6) ? "0" : reader.GetString(6), 1); detpAvgTreatment.Add(att); } } return(detpAvgTreatment); }
/// <summary> /// 按时间,科室获得门诊就医时长的表格(按科室分组) /// </summary> /// <param name="sTime"></param> /// <param name="eTime"></param> /// <param name="depts">专科ID</param> /// <param name="hospitalDistrict"></param> /// <returns></returns> public List <DeptAverageTreatmentTime> GetDeptTreatmentAverageTime(DateTime sTime, DateTime eTime, Int32[] depts, params string[] hospitalDistrict) { var hd = String.Join(",", hospitalDistrict); var dp = String.Join(",", depts); var detpAvgTreatment = new List <DeptAverageTreatmentTime>(); var command = "SELECT ZKID,TO_CHAR(AVG(YYSC)) AS YYSC,TO_CHAR(AVG(HZSC)) AS HZSC,TO_CHAR(AVG(JZSC)) AS JZSC,TO_CHAR(AVG(JFSC)) AS JFSC,TO_CHAR(AVG(QYSC)) AS QYSC FROM YZCX_MZJZGCXX " + " WHERE TJRQ>=TO_DATE('" + sTime.ToString("yyyy-MM-dd HH:mm:ss") + "','YYYY-MM-DD HH24:MI:SS') " + " AND TJRQ<=TO_DATE('" + eTime.ToString("yyyy-MM-dd HH:mm:ss") + "','YYYY-MM-DD HH24:MI:SS') AND ZKID IN (" + dp + ") AND YQDM IN (" + hd + ")" + " GROUP BY ZKID ORDER BY ZKID"; var queryCommand = db.GetSqlStringCommand(command); using (var reader = db.ExecuteReader(queryCommand)) { while (reader.Read()) { var att = new DeptAverageTreatmentTime(); att.SpecialistId = reader.GetInt32(0); att.SpecialistName = specialists[att.SpecialistId]; att.Appointment = StringHandler.GetDoubleByString(reader.IsDBNull(1)?"0":reader.GetString(1), 1); att.AwaitingDiagnosis = StringHandler.GetDoubleByString(reader.IsDBNull(2) ? "0" : reader.GetString(2), 1); att.Diagnosis = StringHandler.GetDoubleByString(reader.IsDBNull(3) ? "0" : reader.GetString(3), 1); att.PayFees = StringHandler.GetDoubleByString(reader.IsDBNull(4) ? "0" : reader.GetString(4), 1); att.MedicineReceiving = StringHandler.GetDoubleByString(reader.IsDBNull(5) ? "0" : reader.GetString(5), 1); detpAvgTreatment.Add(att); } } return(detpAvgTreatment); }