Ejemplo n.º 1
0
 public void SetUp()
 {
     DependencyRegistrar.RegisterDependencies();
     IoC.Resolve <IAutoMapperBootstrapper>().Bootstrap();
     _eventMetricService = IoC.Resolve <IEventMetricsService>();
     _dailyPatientRecapReportPollingAgent = IoC.Resolve <IDailyPatientRecapReportPollingAgent>();
 }
Ejemplo n.º 2
0
        public ReportingService(ILogManager logManager, ITestPerformedReportPollingAgent testPerformedReportPollingAgent, ISettings settings, IDailyPatientRecapReportPollingAgent dailyPatientRecapReportPollingAgent,
                                IBcbsMiTestPerformedReportPollingAgent bcbsMiTestPerformedReportPolling, IBcbsMiIncorrectPhoneExportPollingAgent bcbsMiIncorrectPhoneExportPollingAgent,
                                IBcbsMiPcpResultMailedReportPollingAgent bcbsMiPcpResultMailedReportPollingAgent,
                                IBcbsMemberResultMailedReportPollingAgent bcbsMemberResultMailedReportPollingAgent, IWellCarePcpSummaryLogReportPollingAgent wellCarePcpSummaryLogReportPollingAgent,
                                IWellCarePcpSummaryLogEasyChoiceReportPollingAgent wellCarePcpSummaryLogEasyChoiceReportPollingAgent, IAnthemHomeVisitRequestedCustomerExportPollingAgent anthemHomeVisitRequestedExport,
                                IAnthemIncorrectPhoneNumberPollingAgent anthemIncorrectPhoneNumberExport, IHealthPlanGiftCertificateReportPollingAgent healthPlanGiftCertificateReportPollingAgent,
                                //IHourlyAppointmentBookedReportPollingAgent hourlyAppointmentBookedReportPollingAgent,
                                //IHourlyOutreachCallReportPollingAgent hourlyOutreachCallReportPollingAgent,
                                IDailyVolumeReportPollingAgent dailyVolumeReportPollingAgent,
                                IEventScheduleReportPollingAgent eventScheduleReportPollingAgent, IMailRoundCustomersReportPollingAgent mailRoundCustomersReportPollingAgent,
                                IBiWeeklyMicroAlbuminFobtPollingAgent biWeeklyMicroAlbuminFobtPollingAgent, INonTargetableReportPollingAgent nonTargetableReportPollingAgent, IPotentialPcpChangePollingAgent potentialPcpChangePollingAgent,
                                IHousecallOutreachCallReportPollingAgent housecallOutreachCallReportPollingAgent, IHouseCallHafResultExportPollingAgent houseCallHafResultExportPollingAgent, IWellmedMemberStatusReportPollingAgent wellmedMemberStatusReportPollingAgent,
                                IUniversalMemberPollingAgent universalMemberPollingAgent, IUniversalProviderPollingAgent universalProviderPollingAgent, ISendConsentDataPollingAgent sendConsentDataPollingAgent, IGmsExcludedCustomerPollingAgent gmsExcludedCustomerPollingAgent)
        {
            InitializeComponent();

            _pollThreadTestPerformedReportPolling = new IntervalWorkThread(testPerformedReportPollingAgent.PollForTestPerformedReports);
            _timerTestPerformedReportPolling      = new Timer(x => _pollThreadTestPerformedReportPolling.Trigger(), new object(), GetDueTime(settings.TestPerformReportScheduleTime), new TimeSpan(0, settings.TestPerformReportInterval, 0, 0));

            _pollThreaDailyPatientRecapReportPollingAgent = new IntervalWorkThread(dailyPatientRecapReportPollingAgent.PollForDailyPatientRecapReport);
            _timerDailyPatientRecapReportPollingAgent     = new Timer(x => _pollThreaDailyPatientRecapReportPollingAgent.Trigger(), new object(), GetDueTime(settings.DailyPatientRecapReportScheduleTime), new TimeSpan(0, settings.DailyPatientRecapReportInterval, 0, 0));


            _pollThreadBcbsMiServiceReportPollingAgent = new IntervalWorkThread(bcbsMiTestPerformedReportPolling.PollforCustomTestPerformedReport);
            _timerBcbsMiServiceReportPollingAgent      = new Timer(x => _pollThreadBcbsMiServiceReportPollingAgent.Trigger(), new object(), GetDueTime(settings.BcbsMiServiceReportScheduleTime), new TimeSpan(0, settings.BcbsMiServiceReportIntervalHours, 0, 0));

            //Bcbs Mi Incorrect Phone Export
            _pollThreadBcbsMiIncorrectPhoneExport = new IntervalWorkThread(bcbsMiIncorrectPhoneExportPollingAgent.PollForExport);
            _timerBcbsMiIncorrectPhoneExport      = new Timer(x => _pollThreadBcbsMiIncorrectPhoneExport.Trigger(), new object(), GetDueTime(settings.IncorrectPhoneExportDownloadTime), new TimeSpan(1, 0, 0, 0));

            //Bcbs Mi Home Visit Request Export
            //_pollThreadBcbsMiHomeVisitRequestExport = new IntervalWorkThread(bcbsMiHomeVisitRequestExportPollingAgent.PollForExport);
            //_timerBcbsMiHomeVisitRequestExport = new Timer(x => _pollThreadBcbsMiHomeVisitRequestExport.Trigger(), new object(), GetDueTime(settings.HomeVisitExportDownloadTime), new TimeSpan(1, 0, 0, 0));

            //Bcbs Mi Pcp Result Mailed Report Export
            _pollThreadBcbsMiPcpResultMailedReportExport  = new IntervalWorkThread(bcbsMiPcpResultMailedReportPollingAgent.PollForPcpReultMailedReportExport);
            _timerBcbsMiBcbsMiPcpResultMailedReportExport = new Timer(x => _pollThreadBcbsMiPcpResultMailedReportExport.Trigger(), new object(), GetDueTime(settings.BcbsMiPcpResultMailedReportScheduleTime), new TimeSpan(0, settings.BcbsMiPcpResultMailedReportIntervalHours, 0, 0));


            //Bcbs Mi Member Result Mailed Report Export
            _pollThreadBcbsMiMemberResultMailedReportExport  = new IntervalWorkThread(bcbsMemberResultMailedReportPollingAgent.PollforMemberResultMailedReport);
            _timerBcbsMiBcbsMiMemberResultMailedReportExport = new Timer(x => _pollThreadBcbsMiMemberResultMailedReportExport.Trigger(), new object(), GetDueTime(settings.BcbsMiMemberResultMailedReportScheduleTime), new TimeSpan(0, settings.BcbsMiMemberResultMailedReportIntervalHours, 0, 0));


            //WellCare Pcp Summary Log Report Export
            _pollThreadWellCarePcpSummaryLogReportExport = new IntervalWorkThread(wellCarePcpSummaryLogReportPollingAgent.PollForPcpLogSummaryReportExport);
            _timerWellCarePcpSummaryLogReportExport      = new Timer(x => _pollThreadWellCarePcpSummaryLogReportExport.Trigger(), new object(), GetDueTime(settings.WellCarePcpSummaryLogReportScheduleTime), new TimeSpan(0, settings.WellCarePcpSummaryLogReportIntervalHours, 0, 0));

            //WellCare Pcp Summary Log Easy Choice Report Export
            _pollThreadWellCarePcpSummaryLogEasyChoiceReportExport = new IntervalWorkThread(wellCarePcpSummaryLogEasyChoiceReportPollingAgent.PollForPcpLogSummaryReportExport);
            _timerWellCarePcpSummaryLogEasyChoiceReportExport      = new Timer(x => _pollThreadWellCarePcpSummaryLogEasyChoiceReportExport.Trigger(), new object(), GetDueTime(settings.WellCarePcpSummaryLogReportScheduleTime), new TimeSpan(0, settings.WellCarePcpSummaryLogReportIntervalHours, 0, 0));

            //WellCare Pcp Summary Log Easy Choice Report Export
            _pollThreadHealthPlanGiftCertificateReportExport = new IntervalWorkThread(healthPlanGiftCertificateReportPollingAgent.PollForReportGeneration);
            _timerHealthPlanGiftCertificateReportExport      = new Timer(x => _pollThreadHealthPlanGiftCertificateReportExport.Trigger(), new object(), GetDueTime(settings.GiftCertificateReportScheduleTime), new TimeSpan(1, 0, 0, 0));

            //Anthem Home Visit Report Export
            _pollThreadAnthemHomeVisitReportExport = new IntervalWorkThread(anthemHomeVisitRequestedExport.PollForCustomerExport);
            _timerAnthemHomeVisitReportExport      = new Timer(x => _pollThreadAnthemHomeVisitReportExport.Trigger(), new object(), GetDueTime(settings.HealthPlanHomeVisitRequestedExportScheduleTime), new TimeSpan(0, settings.HealthPlanCustomerListExportScheduleInterval, 0, 0));


            //Anthem Incorrect Phone Number Report Export
            _pollThreadAnthemIncorrectPhoneNumberReportExport = new IntervalWorkThread(anthemIncorrectPhoneNumberExport.PollForCustomerExport);
            _timerAnthemIncorrectPhoneNumberReportExport      = new Timer(x => _pollThreadAnthemIncorrectPhoneNumberReportExport.Trigger(), new object(), GetDueTime(settings.HealthPlanIncorrectPhoneExportScheduleTime), new TimeSpan(0, settings.HealthPlanCustomerListExportScheduleInterval, 0, 0));

            //Hourly Appointment Booked Report Export
            //_pollThreadHourlyAppointmentBookedReportExport = new IntervalWorkThread(hourlyAppointmentBookedReportPollingAgent.PollForHourlyReport);
            //_timerHourlyAppointmentBookedReportExport = new Timer(x => _pollThreadHourlyAppointmentBookedReportExport.Trigger(), new object(), GetDueTimeMinute(settings.HourlyAppointmentBookedScheduleTime), new TimeSpan(0, 0, settings.HourlyAppointmentBookedIntervalHours, 0));

            //Hourly Outreach Call Report Export
            //_pollThreadHourlyOutreachCallReportExport = new IntervalWorkThread(hourlyOutreachCallReportPollingAgent.PollForHourlyOutreachCallReport);
            //_timerHourlyOutreachCallReportExport = new Timer(x => _pollThreadHourlyOutreachCallReportExport.Trigger(), new object(), GetDueTimeMinute(settings.HourlyOutreachCallReportScheduleTime), new TimeSpan(0, 0, settings.HourlyOutreachCallReportIntervalHours, 0));


            _pollThreadDailyVolumeReportExport = new IntervalWorkThread(dailyVolumeReportPollingAgent.PollForDailyVolumeReport);
            _timerDailyVolumeReportExport      = new Timer(x => _pollThreadDailyVolumeReportExport.Trigger(), new object(), GetDueTimeMinute(settings.DailyVolumeReportScheduleTime), new TimeSpan(0, settings.DailyVolumeReportIntervalInHour, 0, 0));

            //GMS Event List Report Export
            //_pollThreadGmsEventListExport = new IntervalWorkThread(eventListGmsPollingAgent.PollForEventList);
            //_timerGmsEventListExport = new Timer(x => _pollThreadGmsEventListExport.Trigger(), new object(), GetDueTimeMinute(settings.GmsEventReportScheduleTime), new TimeSpan(0, 0, settings.GmsEventReportIntervalMinutes, 0));

            //GMS Customer List Report Export
            //_pollThreadGmsCustomerListExport = new IntervalWorkThread(gmsCallQueueCustomerReportPollingAgent.PollForReportGeneration);
            //_timerGmsCustomerListExport = new Timer(x => _pollThreadGmsCustomerListExport.Trigger(), new object(), GetDueTime(settings.GmsCustomerReportScheduleTime), new TimeSpan(0, settings.GmsCustomerReportIntervalHours, 0, 0));

            //Event Schedule Report Export
            _pollThreadEventScheduleReportExport = new IntervalWorkThread(eventScheduleReportPollingAgent.PollForEventScheduleReort);
            _timerEventScheduleReportExport      = new Timer(x => _pollThreadEventScheduleReportExport.Trigger(), new object(), GetDueTime(settings.EventScheduleAccountScheduleTime), new TimeSpan(0, settings.EventScheduleAccountInterval, 0, 0));

            //Matrix Report Export
            _pollThreadMailRoundCustomersReport = new IntervalWorkThread(mailRoundCustomersReportPollingAgent.PollMailRoundCustomersReport);
            _timerMailRoundCustomersReport      = new Timer(x => _pollThreadMailRoundCustomersReport.Trigger(), new object(), GetDueTime(settings.MailRoundCustomersReportScheduleTime), new TimeSpan(0, settings.MailRoundCustomersReportIntervalHours, 0, 0));

            //GMS Call Parsing
            //_pollThreadGmsCallParsing = new IntervalWorkThread(gmsCallParserPollingAgent.PollForCallParsing);
            //_timerGmsCallParsing = new Timer(x => _pollThreadGmsCallParsing.Trigger(), new object(), GetDueTime(settings.GmsDialerFileParsingScheduleTime), new TimeSpan(0, settings.GmsDialerFileParsingIntervalHours, 0, 0));

            //BiWeekly MicroAlbumin and Fobt Report WELLMED
            _pollThreadBiWeeklyMicroAlbuminFobtReport = new IntervalWorkThread(biWeeklyMicroAlbuminFobtPollingAgent.PollForBiWeeklyMicroAlbuminFobt);
            _timerBiWeeklyMicroAlbuminFobt            = new Timer(x => _pollThreadBiWeeklyMicroAlbuminFobtReport.Trigger(), new object(), GetDueTime(settings.BiWeeklyMicroAlbuminFobtScheduleTime), new TimeSpan(0, settings.BiWeeklyMicroAlbuminFobtIntervalHours, 0, 0));

            //Non Targetable Report WELLMED
            _pollThreadNonTargetableReport = new IntervalWorkThread(nonTargetableReportPollingAgent.PollForNonTargetableCustomer);
            _timerNonTargetable            = new Timer(x => _pollThreadNonTargetableReport.Trigger(), new object(), GetDueTime(settings.NonTargetableReportScheduleTime), new TimeSpan(0, settings.NonTargetableReportIntervalHours, 0, 0));

            //Potential Pcp Change Report WELLMED
            _pollThreadPotentialPcpChangeReport = new IntervalWorkThread(potentialPcpChangePollingAgent.PollForPotentialPcpChange);
            _timerPotentialPcpChange            = new Timer(x => _pollThreadPotentialPcpChangeReport.Trigger(), new object(), GetDueTime(settings.PcpChangeReportScheduleTime), new TimeSpan(0, settings.PcpChangeReportIntervalHours, 0, 0));

            //Housecall outreach report
            _pollThreadHousecallOutreachReport = new IntervalWorkThread(housecallOutreachCallReportPollingAgent.PollForOutreachReport);
            _timerHousecallOutreachReport      = new Timer(x => _pollThreadHousecallOutreachReport.Trigger(), new object(), GetDueTime(settings.HousecallOutreachReportExportScheduleTime), new TimeSpan(0, settings.HousecallOutreachReportExportScheduleInterval, 0, 0));

            //HouseCall HAF Result Export
            _pollThreadHouseCallHafResultExport = new IntervalWorkThread(houseCallHafResultExportPollingAgent.PollForResultExport);
            _timerHouseCallHafResultExport      = new Timer(s => _pollThreadHouseCallHafResultExport.Trigger(), new object(), GetDueTime(settings.HousecallHafResultReportDownloadTime),
                                                            new TimeSpan(0, settings.HousecallHafResultReportDownloadInterval, 0, 0));

            //Wellmed Member Status Report
            _pollThreadWellmedMemberStatusReport = new IntervalWorkThread(wellmedMemberStatusReportPollingAgent.PollForMemberStatusReport);
            _timerWellmedMemberStatusReport      = new Timer(s => _pollThreadWellmedMemberStatusReport.Trigger(), new object(), GetDueTime(settings.WellmedMemberStatusReportScheduleTime),
                                                             new TimeSpan(0, settings.WellmedMemberStatusReportScheduleInterval, 0, 0));

            //Universal Member Report
            _pollThreadUniversalMemberReport = new IntervalWorkThread(universalMemberPollingAgent.PollforUniversalMembers);
            _timerUniversalMemberReport      = new Timer(x => _pollThreadUniversalMemberReport.Trigger(), new object(), GetDueTime(settings.UniversalMemberReportScheduleTime), new TimeSpan(0, settings.UniversalMemberReportInterval, 0, 0));

            //Universal Provider Report
            _pollThreadUniversalProviderReport = new IntervalWorkThread(universalProviderPollingAgent.PollforUniversalProviders);
            _timerUniversalProviderReport      = new Timer(x => _pollThreadUniversalProviderReport.Trigger(), new object(), GetDueTime(settings.UniversalProviderReportScheduleTime), new TimeSpan(0, settings.UniversalProviderReportInterval, 0, 0));

            //Customer Consent Data Report
            _pollThreadCustomerConsentDataReport = new IntervalWorkThread(sendConsentDataPollingAgent.PollForSendConsentData);
            _timerCustomerConsentDataReport      = new Timer(x => _pollThreadCustomerConsentDataReport.Trigger(), new object(), GetDueTime(settings.CustomerConsentDataReportScheduleTime), new TimeSpan(0, settings.CustomerConsentDataReportInterval, 0, 0));

            //_pollThreadGmsExcludedCustomerReport = new IntervalWorkThread(gmsExcludedCustomerPollingAgent.PollForReport);
            //_timerGmsExcludedCustomeReport = new Timer(s => _pollThreadGmsExcludedCustomerReport.Trigger(), new object(), GetDueTime(settings.GmsExcludeCustomerReportDownloadTime), new TimeSpan(0, settings.GmsExcludeReportDownloadCustomerIntervalInHours, 0, 0));

            _logger = logManager.GetLogger("Reporting Service");
        }