Esempio n. 1
0
        /// <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);
        }
Esempio n. 2
0
        /// <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);
        }