Beispiel #1
0
        public List <App.Hours.Models.ScrubOverviewItem> GetScrubOverviewItems(DateTime startDate, DateTime endDate)
        {
            var data = new Data.Services.CaseService().GetCaseTimeScrubOverviewItems(startDate, endDate);

            var items = new List <App.Hours.Models.ScrubOverviewItem>();

            foreach (var dataItem in data)
            {
                var item = new App.Hours.Models.ScrubOverviewItem();
                item.ID                 = dataItem.ID;
                item.FirstName          = dataItem.FirstName;
                item.LastName           = dataItem.LastName;
                item.ActiveProviders    = dataItem.ActiveProviders;
                item.ProvidersFinalized = dataItem.ProvidersFinalized;
                item.ProvidersWithHours = dataItem.ProvidersWithHours;
                item.ScrubbedRecords    = dataItem.ScrubbedRecords;
                item.UnscrubbedRecords  = dataItem.UnscrubbedRecords;
                item.CommittedRecords   = dataItem.CommitedRecords;
                item.BilledRecords      = dataItem.BilledRecords;
                item.PaidRecords        = dataItem.PaidRecords;
                item.TotalPayable       = dataItem.TotalPayable;
                item.TotalBillable      = dataItem.TotalBillable;
                item.BCBABillable       = dataItem.BCBABillable;
                item.AideBillable       = dataItem.AideBillable;
                item.BCBAPercent        = dataItem.BCBAPercent;

                items.Add(item);
            }

            return(items);
        }
        public AddParentContactLogVM CreateParentContactLogVM(int caseId)
        {
            var caseService   = new Data.Services.CaseService();
            var relationships = caseService.GetGuardianRelationships();

            var model = new AddParentContactLogVM
            {
                CaseId        = caseId,
                Relationships = relationships
            };

            return(model);
        }
        public IEnumerable <CaseHoursListItemVM> GetProviderHours(int providerID, DateTime selectedDate)
        {
            var hours = new Data.Services.CaseService()
                        .GetCaseHoursByProvider(providerID, selectedDate)
                        .Where(
                x => (
                    x.Status == AuthorizationHoursStatus.FinalizedByProvider ||
                    x.Status == AuthorizationHoursStatus.ScrubbedByAdmin ||
                    x.Status == AuthorizationHoursStatus.ProcessedComplete
                    ) &&
                (x.Date >= selectedDate) &&
                (x.Date < selectedDate.AddMonths(1))
                )
                        .OrderBy(x => x.Case.Patient.FirstName)
                        .ThenBy(x => x.Case.Patient.LastName)
                        .ThenBy(x => x.Date)
                        .ThenBy(x => x.TimeIn)
                        .ToList();
            var items = hours.Select(hour => new CaseHoursListItemVM
            {
                AuthCode        = hour.Authorization?.Code,
                Billable        = hour.BillableHours,
                CaseAuthID      = hour.Authorization?.ID,
                Date            = hour.Date,
                Hours           = hour.HoursTotal,
                HoursID         = hour.ID.Value,
                Notes           = hour.Notes,
                Payable         = hour.PayableHours,
                PatientName     = hour.Case.Patient.CommonName,
                StatusCode      = GetTimeBillStatusCodeDisplay(hour.Status),
                StatusID        = hour.Status,
                Service         = hour.Service,
                TimeIn          = hour.TimeIn,
                TimeOut         = hour.TimeOut,
                Paid            = hour.PayableRef == null ? false : true,
                Billed          = hour.BillingRef == null ? false : true,
                HasCatalystData = hour.HasCatalystData,
                CaseAuth        = hour.Authorization != null ? new TimeBillGridAuthItemVM
                {
                    ID   = hour.Authorization.CaseAuthorizationID,
                    Code = hour.Authorization.Code
                } : null
            });

            return(items);
        }
Beispiel #4
0
        public static System.Collections.IEnumerable GetAppointments(int caseID, int providerID)
        {
            var cutoffDate = GetCurrentHoursHistoryCutoff();
            var caseHours  = new Data.Services.CaseService().GetCaseHoursByCaseByProvider(caseID, providerID, cutoffDate)
                             .Where(m => m.Status != Domain.Cases.AuthorizationHoursStatus.PreCheckedOnApp)
                             .ToList();
            // return appointments
            var appts = AppointmentDTO.MapFromDomainAppointments(caseHours).ToList();

            // only map catalyst hours if we're an Aide
            // (BCBA notes handling is not yet implemented)
            if (AppService.Current.CurrentProvider.ProviderTypeID == (int)Domain2.Providers.ProviderTypeIDs.Aide)
            {
                var catalystHours = new App.Hours.HoursService().GetCatalystPreloads(caseID, providerID, cutoffDate);
                appts.AddRange(AppointmentDTO.MapFromCatalystPreloadEntries(catalystHours));
            }
            return(appts);
        }
        public List <ParentContactLogListItemVM> LoadParentContactLogVM(int caseId)
        {
            var caseService   = new Data.Services.CaseService();
            var relationships = caseService.GetGuardianRelationships().ToDictionary(k => k.ID, v => v.Name);

            var log = Context.StaffingLogParentContactLog
                      .Where(l => l.StaffingLogID == caseId)
                      .OrderByDescending(l => l.ContactDate)
                      .ToList()
                      .Select(l => new ParentContactLogListItemVM
            {
                ContactDate     = l.ContactDate,
                Notes           = l.Notes,
                ContactedPerson = relationships[l.GuardianRelationshipID] +
                                  (!string.IsNullOrWhiteSpace(l.ContactedPersonName)
                                          ? " (" + l.ContactedPersonName + ")"
                                          : ""),
                ContactMethod = l.ContactMethodType.ToString() + " (" + l.ContactMethodValue + ")"
            })
                      .ToList();

            return(log);
        }
Beispiel #6
0
        public static List <Domain.Cases.Service> GetServices(int?providerTypeID, bool returnSSG = false)
        {
            var caseService = new Data.Services.CaseService();

            List <Domain.Cases.Service> services;

            if (providerTypeID.HasValue)
            {
                services = caseService.GetServicesByProviderType(providerTypeID.Value);
            }
            else
            {
                services = caseService.GetServices();
            }

            if (returnSSG)
            {
                return(services);
            }
            else
            {
                return(services.Where(x => x.Code != "SSG").ToList());
            }
        }
        public StaffingLogVM CreateStaffingLogVM(int caseId, StaffingLog staffingLog)
        {
            StaffingLogVM model   = null;
            var           patient = Context.Patients.SingleOrDefault(m => m.Cases.Any(c => c.ID == caseId));

            if (patient != null)
            {
                var @case                 = Context.Cases.SingleOrDefault(m => m.ID == caseId);
                var zipInfoRepository     = new ZipInfoRepository();
                var caseService           = new Data.Services.CaseService();
                var guardianRelationships = caseService.GetGuardianRelationships();
                model = new StaffingLogVM
                {
                    PatientID   = patient.ID,
                    CaseID      = caseId,
                    FirstName   = patient.FirstName,
                    LastName    = patient.LastName,
                    DateOfBirth = patient.DateOfBirth,
                    Email       = patient.Email,
                    Phone       = patient.Phone,
                    Address1    = patient.Address1,
                    Address2    = patient.Address2,
                    City        = patient.City,
                    State       = patient.State,
                    Zip         = patient.Zip,
                    County      = zipInfoRepository.GetCounty(patient.Zip),
                    Guardians   = new List <GuardianInfoVM> {
                        new GuardianInfoVM {
                            FirstName    = patient.GuardianFirstName,
                            LastName     = patient.GuardianLastName,
                            Relationship = GetGuardianRelationship(patient.GuardianRelationshipID, guardianRelationships),
                            Email        = patient.GuardianEmail,
                            CellPhone    = patient.GuardianCellPhone,
                            HomePhone    = patient.GuardianHomePhone,
                            WorkPhone    = patient.GuardianWorkPhone,
                            Notes        = patient.GuardianNotes
                        },
                        new GuardianInfoVM            {
                            FirstName    = patient.Guardian2FirstName,
                            LastName     = patient.Guardian2LastName,
                            Relationship = GetGuardianRelationship(patient.Guardian2RelationshipID, guardianRelationships),
                            Email        = patient.Guardian2Email,
                            CellPhone    = patient.Guardian2CellPhone,
                            HomePhone    = patient.Guardian2HomePhone,
                            WorkPhone    = patient.Guardian2WorkPhone,
                            Notes        = patient.Guardian2Notes
                        },
                        new GuardianInfoVM
                        {
                            FirstName    = patient.Guardian3FirstName,
                            LastName     = patient.Guardian3LastName,
                            Relationship = GetGuardianRelationship(patient.Guardian3RelationshipID, guardianRelationships),
                            Email        = patient.Guardian3Email,
                            CellPhone    = patient.Guardian3CellPhone,
                            HomePhone    = patient.Guardian3HomePhone,
                            WorkPhone    = patient.Guardian3WorkPhone,
                            Notes        = patient.Guardian3Notes
                        }
                    },
                    FunctioningLevel = @case.FunctioningLevel?.Name,
                    Notes            = patient.Notes,
                    CaseProviders    = Context.CaseProviders
                                       .Where(m => m.CaseID == caseId)
                                       .ToList()
                                       .Select(m => new CaseProviderVM
                    {
                        ProviderID        = m.Provider.ID,
                        ProviderLastName  = m.Provider.LastName,
                        ProviderFirstName = m.Provider.FirstName,
                        ProviderType      = m.Provider.GetProviderTypeFullCode(),
                        IsBCBA            = m.Provider.IsBCBA,
                        IsActive          = CaseIsActive(DateTime.Now, m.StartDate, m.EndDate)
                    })
                                       .OrderByDescending(m => m.IsActive)
                                       .ThenByDescending(m => m.IsBCBA)
                                       .ThenBy(m => m.ProviderLastName)
                                       .ThenBy(m => m.ProviderFirstName),
                    SystemSpecialAttentionNeeds = Context.SpecialAttentionNeeds
                                                  .Where(n => n.Active)
                                                  .Select(n => new SpecialAttentionNeedVM
                    {
                        ID   = n.ID,
                        Code = n.Code,
                        Name = n.Name
                    })
                                                  .ToList(),
                    SpecialAttentionNeedIDs = staffingLog.SpecialAttentionNeeds != null?staffingLog.SpecialAttentionNeeds.Select(n => n.ID).ToList() : new List <int>(),
                                                  ParentalRestaffRequest   = staffingLog.ParentalRestaffRequest,
                                                  HoursOfABATherapy        = staffingLog.HoursOfABATherapy,
                                                  AidesRespondingNo        = staffingLog.AidesRespondingNo,
                                                  AidesRespondingMaybe     = staffingLog.AidesRespondingMaybe,
                                                  ScheduleRequest          = ScheduleRequestVM.FromInt(staffingLog.ScheduleRequest),
                                                  DateWentToRestaff        = staffingLog.DateWentToRestaff,
                                                  ProviderGenderPreference = string.IsNullOrEmpty(staffingLog.ProviderGenderPreference) ? '0' : staffingLog.ProviderGenderPreference[0]
                };
            }
            return(model);
        }
 public AutoPopulateHoursRepository()
 {
     caseService      = new Data.Services.CaseService();
     connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["CoreConnection"].ConnectionString;
 }
 public HomeRepository(Data.V2.CoreContext context)
 {
     caseService      = new Data.Services.CaseService();
     connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["CoreConnection"].ConnectionString;
     _context         = context;
 }
Beispiel #10
0
        public List <ValidationItemVM> GetValidationItems(DateTime period, bool fullRefresh)
        {
            if (!fullRefresh)
            {
                var cachedItems = getValidationItemsFromCache(period);
                if (cachedItems != null)
                {
                    return(cachedItems);
                }
            }

            var items       = new List <ValidationItemVM>();
            var caseService = new Data.Services.CaseService();
            var validator   = new DomainServices.Hours.CrossHoursValidation(caseService, period);

            validator.Validate();

            int i = 0;

            foreach (var err in validator.Errors)
            {
                var item = new App.Hours.Models.ValidationItemVM();

                var coreContext = new Data.Models.CoreEntityModel();

                var sourcePatient  = coreContext.Cases.Find(err.MatchedOn.CaseID.Value).Patient;
                var sourceProvider = coreContext.Providers.Find(err.MatchedOn.ProviderID);

                item.GridID = i;
                i++;
                item.SourceCaseID      = err.MatchedOn.CaseID.Value;
                item.SourceDate        = err.MatchedOn.Date;
                item.SourceHoursID     = err.MatchedOn.ID.Value;
                item.SourcePatientName = sourcePatient.PatientFirstName + " " + sourcePatient.PatientLastName;

                item.SourceProviderID   = err.MatchedOn.ProviderID;
                item.SourceProviderName = sourceProvider.ProviderFirstName + " " + sourceProvider.ProviderLastName;
                item.SourceServiceCode  = err.MatchedOn.ServiceCode;
                item.SourceTimeIn       = err.MatchedOn.TimeIn;
                item.SourceTimeOut      = err.MatchedOn.TimeOut;

                item.TypeValue = err.ErrorType;

                if (err.MatchedTo != null && err.MatchedTo.Count > 0)
                {
                    var m = err.MatchedTo[0];

                    var patient  = coreContext.Cases.Find(m.CaseID.Value).Patient;
                    var provider = coreContext.Providers.Find(m.ProviderID);

                    item.PartnerCaseID       = m.CaseID.Value;
                    item.PartnerDate         = m.Date;
                    item.PartnerHoursID      = m.ID.Value;
                    item.PartnerPatientName  = patient.PatientFirstName + " " + patient.PatientLastName;
                    item.PartnerProviderID   = m.ProviderID;
                    item.PartnerProviderName = provider.ProviderFirstName + " " + provider.ProviderLastName;
                    item.PartnerServiceCode  = m.ServiceCode;
                    item.PartnerTimeIn       = m.TimeIn;
                    item.PartnerTimeOut      = m.TimeOut;
                }

                items.Add(item);
            }

            setValidateItemsCache(items, period);

            return(items);
        }