public void GetServiceLineGroupDetails(IServiceGroupDetailsViewmodel vm) { GetDiagDetails(vm); GetProcedureDetails(vm); }
private void GetProcedureDetails(IServiceGroupDetailsViewmodel vm) { Stopwatch sw = new Stopwatch(); sw.Start(); try { using (var connection = GetConnection()) { //Setup the SQL command object SqlCommand cmd = new SqlCommand("IRM.spServiceLineExplorerGetProcedureDetails", connection); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@GroupID", vm.Idx); //Add date range params cmd.Parameters.AddWithValue("@StartDate", vm.StartDate); cmd.Parameters.AddWithValue("@EndDate", vm.EndDate); var EncounterTypesfilterTempTable = BuildFilterParameter(vm.EncounterTypesList, vm.EncounterTypesIDlist); var ClientOrganizationfilterTempTable = BuildFilterParameter(vm.OrganizationList, vm.ClientOrganizationIDList); SqlParameter tvparam = cmd.Parameters.AddWithValue("@EncounterTypeFilterList", EncounterTypesfilterTempTable); tvparam.SqlDbType = SqlDbType.Structured; tvparam = cmd.Parameters.AddWithValue("@ClientOrganizationFilterList", ClientOrganizationfilterTempTable); tvparam.SqlDbType = SqlDbType.Structured; // execute query, consume results, etc. here using (SqlDataReader reader = cmd.ExecuteReader()) { vm.ProcedureDetailsResults.Clear(); while (reader.Read()) { string ID = reader.FieldToString("ProcedureCode"); string description = reader.FieldToString("Description"); int totalEncounters = reader.FieldToInt("Encounters"); decimal totalCharged = reader.FieldToDecimal("Charged"); decimal totalPayments = reader.FieldToDecimal("Payments"); decimal totalCost = reader.FieldToDecimal("TotalCost"); decimal Profit = reader.FieldToDecimal("Profit"); var values = new ServiceLineExplorerResults() { Idx = ID, Description = description, TotalCount = totalEncounters, TotalCharged = totalCharged, Totalpayments = totalPayments, TotalCost = totalCost, TotalProfit = Profit }; vm.ProcedureDetailsResults.Add(values); } } } } finally { sw.Stop(); LoggerHelper.RecordTiming(System.Reflection.MethodBase.GetCurrentMethod().Name, sw, log); log.DebugFormat("{0} rows returned.", vm.ProcedureDetailsResults.Count); } }