Exemplo n.º 1
0
        public CenterStatisticsInfo GetCenterStatisticsDD(DateTime beginTime, DateTime endTime)
        {
            string selfCenterID = UserOperateContext.Current.Session_UsrInfo.P_Department.DispatchSubCenterID;
            if (selfCenterID != null && selfCenterID != "")
            {
                DataTable tableall = GetStatisticsDD(beginTime, endTime);

                //在表里循环遍历,当某一行的CenterID跟session 中获取的selfCenterID 相等时,将那一行的数据取出,赋给Model,Return
                CenterStatisticsInfo ACinfo = new CenterStatisticsInfo();
                int STaskTimes = 0; int SFirstAidTimes = 0; int STransTimes = 0; int a = 0; int SGoHomeTimes = 0; int SDays = 0; int STaskTimesEveryDay = 0;
                int SAvgSendTime = 0; int SAvgArriveTime = 0; int SAvgLocalAidTime = 0; int SAvgTransTime = 0; int SAvgHospitalTransTime = 0;
                int SAvgReactTime = 0; int SAvgTurnTime = 0;
                foreach (DataRow dr in tableall.Rows)
                {
                    if (Convert.ToString(dr["center"]) == selfCenterID)
                    {
                        a = a + 1;
                        STaskTimes += Convert.ToInt32(dr["SendCarTimes"]);
                        SFirstAidTimes += Convert.ToInt32(dr["FirstAidTimes"]);
                        STransTimes += Convert.ToInt32(dr["TransTimes"]);
                        SGoHomeTimes += Convert.ToInt32(dr["GoHomeTimes"]);
                        SDays += Convert.ToInt32(dr["Days"]);
                        STaskTimesEveryDay += Convert.ToInt32(dr["AvgDaySendCarTimes"]);
                        SAvgSendTime += Convert.ToInt32(dr["AvgSendCarTime"]);
                        SAvgArriveTime += Convert.ToInt32(dr["AvgArrivingSceneTime"]);
                        SAvgLocalAidTime += Convert.ToInt32(dr["AvgSceneRescueTime"]);
                        SAvgTransTime += Convert.ToInt32(dr["AvgTransportTime"]);
                        SAvgHospitalTransTime += Convert.ToInt32(dr["AvgHospitalDeliveryTime"]);
                        SAvgReactTime += Convert.ToInt32(dr["AvgResponseTime"]);
                        SAvgTurnTime += Convert.ToInt32(dr["AvgRevolveTime"]);

                        ACinfo.CenterName = DBConvert.ConvertStringToString(dr["tcName"]);
                    }
                }
                if (a != 0)
                {
                    ACinfo.CTaskTimes = Convert.ToString(STaskTimes);
                    ACinfo.CFirstAidTimes = Convert.ToString(SFirstAidTimes);
                    ACinfo.CTransTimes = Convert.ToString(STransTimes);
                    ACinfo.CGoHomeTimes = Convert.ToString(SGoHomeTimes);
                    ACinfo.CDays = Convert.ToString(SDays);
                    ACinfo.CTaskTimesEveryDay = Convert.ToString(STaskTimesEveryDay / a);
                    ACinfo.CAvgSendTime = Convert.ToString(SAvgSendTime / a);
                    ACinfo.CAvgArriveTime = Convert.ToString(SAvgArriveTime / a);
                    ACinfo.CAvgLocalAidTime = Convert.ToString(SAvgLocalAidTime / a);
                    ACinfo.CAvgTransTime = Convert.ToString(SAvgTransTime / a);
                    ACinfo.CAvgHospitalTransTime = Convert.ToString(SAvgHospitalTransTime / a);
                    ACinfo.CAvgReactTime = Convert.ToString(SAvgReactTime / a);
                    ACinfo.CAvgTurnTime = Convert.ToString(SAvgTurnTime / a);

                    return ACinfo;
                }
                else {
                    return new CenterStatisticsInfo();
                }
            }
            else return new CenterStatisticsInfo();
        }
Exemplo n.º 2
0
        public CenterStatisticsInfo GetCenterStatisticsGL2(DateTime beginTime, DateTime endTime, string ret1)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append(@" select

                         除去拒绝治疗病历数=sum(case when mpr.IFRefuseTreatment<>'拒绝治疗' then 1 else 0 end),
                         sum(case when mpr.CPRIFSuccess ='ROSC' then 1 else 0 end ) as ROSC数,
                         count(*) as 病历数
                         into #temp
                           from M_PatientRecord  mpr
                            where mpr.MedicalRecordGenerationTime >= '" + beginTime + "' and mpr.MedicalRecordGenerationTime <='" + endTime + "' ");
            WhereClauseUtility.AddInSelectQuery("mpr.OutStationCode", ret1, sb);

            sb.Append(@" select isnull(sum(有救治措施除去只有搬运和护送),0) as 有救治措施除去只有搬运和护送
                    into #temp1
                        from( select  distinct mprm.TaskCode,
                       有救治措施除去只有搬运和护送= (case when mprm.RescueMeasureCode in(229,231,282,296,317,318,320,322,325,329,332,333,334,335,338,341,342,344,351,352,353
                        ,397,398,399,400,402,404,405,406,407,408,410,418,419,420,422,436,449,450,489,490)
                        then 1 else 0 end)
                        from M_PatientRecordMeasure mprm
                        inner join M_PatientRecord mpr on mpr.TaskCode = mprm.TaskCode and mpr.PatientOrder = mprm.PatientOrder

                         where mpr.MedicalRecordGenerationTime >= '" + beginTime + "' and mpr.MedicalRecordGenerationTime <='" + endTime + "' ");
            WhereClauseUtility.AddInSelectQuery("mpr.OutStationCode", ret1, sb);

            sb.Append(@"  ) t

                            select isnull(sum(静脉开通数),0) as 静脉开通数
                         into #temp2
                            from
                        (select  distinct mprm.TaskCode,(case when mprm.RescueMeasureCode in(329,422,436) then 1 else 0 end) as 静脉开通数
                        from M_PatientRecordMeasure mprm
                        inner join M_PatientRecord mpr on mpr.TaskCode = mprm.TaskCode and mpr.PatientOrder = mprm.PatientOrder
                        where mpr.MedicalRecordGenerationTime >= '" + beginTime + "' and mpr.MedicalRecordGenerationTime <='" + endTime + "' ");

            WhereClauseUtility.AddInSelectQuery("mpr.OutStationCode", ret1, sb);
            sb.Append(@"  ) t1
                    select isnull(sum(心肺复苏数),0) as 心肺复苏数
                        into #temp3
                        from
                        (select  distinct mprm.TaskCode,(case when mprm.RescueMeasureCode in (341,397,449,450) then 1 else 0 end) as  心肺复苏数
                        from M_PatientRecordMeasure mprm
                        inner join M_PatientRecord mpr on mpr.TaskCode = mprm.TaskCode and mpr.PatientOrder = mprm.PatientOrder
                        where mpr.MedicalRecordGenerationTime >= '" + beginTime + "' and mpr.MedicalRecordGenerationTime <='" + endTime + "' ");

            WhereClauseUtility.AddInSelectQuery("mpr.OutStationCode", ret1, sb);

            sb.Append(@"  ) t2
            select 除去拒绝治疗病历数,ROSC数,病历数,有救治措施除去只有搬运和护送,静脉开通数,心肺复苏数
            from  #temp,#temp1,#temp2,#temp3

                     drop table #temp1
                    drop table #temp2
                    drop table #temp3
                    drop table #temp  ");

            using (SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.MainConnectionString, CommandType.Text, sb.ToString(), null))
            {
                CenterStatisticsInfo AEinfo = new CenterStatisticsInfo();
                if (dr.Read())
                {
                    AEinfo.CPRNumberExceptRefuseTreatment = DBConvert.ConvertStringToString(dr["除去拒绝治疗病历数"]);
                    AEinfo.CDisposeNumber = DBConvert.ConvertStringToString(dr["有救治措施除去只有搬运和护送"]);
                    AEinfo.CVeinNumber = DBConvert.ConvertStringToString(dr["静脉开通数"]);
                    AEinfo.CROSCNumber = DBConvert.ConvertStringToString(dr["ROSC数"]);
                    AEinfo.CCPRNumber = DBConvert.ConvertStringToString(dr["心肺复苏数"]);
                    AEinfo.CPRNumber = DBConvert.ConvertStringToString(dr["病历数"]);
                }
                return AEinfo;
            }
        }
Exemplo n.º 3
0
        public CenterStatisticsInfo GetCenterStatisticsGL1(DateTime beginTime, DateTime endTime)
        {
            string selfCenterID = UserOperateContext.Current.Session_UsrInfo.P_Department.DispatchSubCenterID;

            if (selfCenterID != null && selfCenterID != "")
            {
                //根据分中心编码获取分站编码(string)
                List<CheckModelExt> lm = m_DAL.GetStationCodeByCenter(selfCenterID);

                string ret = "";
                for (int i = 0; i < lm.Count; i++)
                {
                    ret += lm[i].ID.ToString() + ',';
                }
                ret = ret.TrimEnd(',');

                CenterStatisticsInfo ACinfo = new CenterStatisticsInfo();
                int PKilometer = 0; int PChargeCarFee = 0; int PChargeWaitFee = 0; int PChargeAidFee = 0; int PCharge = 0;
                DataTable tableall = GetStatisticsCharge(beginTime, endTime);
                foreach (DataRow dr in tableall.Rows)
                {
                    if (ret.Contains(Convert.ToString(dr["OutStationCode"])))
                    {
                        PKilometer += Convert.ToInt32(dr["收费公里数"]);
                        PChargeCarFee += Convert.ToInt32(dr["车费"]);
                        PChargeWaitFee += Convert.ToInt32(dr["等候费"]);
                        PChargeAidFee += Convert.ToInt32(dr["治疗费"]);
                        PCharge += Convert.ToInt32(dr["收费金额"]);
                    }
                }
                ACinfo.CKilometer = Convert.ToString(PKilometer);
                ACinfo.CChargeCarFee = Convert.ToString(PChargeCarFee);
                ACinfo.CChargeWaitFee = Convert.ToString(PChargeWaitFee);
                ACinfo.CChargeAidFee = Convert.ToString(PChargeAidFee);
                ACinfo.CCharge = Convert.ToString(PCharge);
                return ACinfo;

            }
            else return new CenterStatisticsInfo();
        }