private void SyncReadyForCoding(PostEvaluationEditModel model) { var ehrReadyforCoding = new EhrReadyforCodingViewModel { EventId = model.EventId, HfCustomerId = model.CustomerId, ReadyForCoding = true, Message = model.Message }; _newResultFlowStateService.RunTaskReadyForCodingForVisit(ehrReadyforCoding, model.OrganizationRoleUserId, "SetAllResultsforPostEvaluationEdit"); }
public void PollForSync() { try { _logger.Info("Syncing results ready for coding......"); var results = _eventCustomerResultRepository.GetResultsNpVerified((int)NewTestResultStateNumber.NpSigned, true, _settings.ResultFlowChangeDate); if (results.IsNullOrEmpty()) { _logger.Info("No results found for sync."); return; } _logger.Info("Total records : " + results.Count()); foreach (var result in results) { try { _logger.Info(string.Format("EventID : {0} and CustomerID : {1}", result.EventId, result.CustomerId)); var syncModel = new EhrReadyforCodingViewModel { EventId = result.EventId, HfCustomerId = result.CustomerId, ReadyForCoding = true, Message = string.Empty }; _newResultFlowStateService.SyncReadyForCodingForVisit(syncModel, result.DataRecorderMetaData.DataRecorderModifier.Id, "SaveCustomerResultAfterEvaluation"); } catch (Exception ex) { _logger.Error(string.Format("Error syncing to HRA for EventID : {0} and CustomerID : {1}", result.EventId, result.CustomerId)); _logger.Error(ex); } } _logger.Info("Result sync completed."); } catch (Exception ex) { _logger.Error("Error getting data for sync.", ex); } }
public bool SyncReadyForCodingForVisit(EhrReadyforCodingViewModel readyforCodingModel, long orgRoleId, string callingMethod) { try { _logger.Info("calling method " + callingMethod + " from Hra. eventId: " + readyforCodingModel.EventId + " customerId: " + readyforCodingModel.HfCustomerId); var model = new EhrToggleReadyForCodingSyncModel { OrganizationName = _organizationName, AuthToken = DateTime.UtcNow.ToLongTimeString().Encrypt(), ReadyForCodingModel = readyforCodingModel }; var isSynced = false; if (_syncWithHra) { isSynced = _medicareApiService.PostAnonymous <bool>(_medicareApiUrl + MedicareApiUrl.ToggleReadyForCodingForVisit, model); } else { _logger.Info("Sync with HRA is Off"); } _logger.Info("completed calling method " + callingMethod + " eventId: " + readyforCodingModel.EventId + " customerId: " + readyforCodingModel.HfCustomerId + " returned value from Hra : " + isSynced); if (isSynced) { _logger.Info("Sync Success for calling method " + callingMethod + " eventId: " + readyforCodingModel.EventId + " customerId: " + readyforCodingModel.HfCustomerId); _testResultService.SetResultstoState(model.ReadyForCodingModel.EventId, model.ReadyForCodingModel.HfCustomerId, (int)NewTestResultStateNumber.NpSigned, false, orgRoleId); } _logger.Info("completed calling method " + callingMethod + " eventId: " + readyforCodingModel.EventId + " customerId: " + readyforCodingModel.HfCustomerId); return(isSynced); } catch (Exception ex) { _logger.Error("error for calling method " + callingMethod + " eventId: " + readyforCodingModel.EventId + " customerid: " + readyforCodingModel.HfCustomerId); _logger.Error("ex " + ex.Message); _logger.Error("ex " + ex.StackTrace); } return(false); }
public static void SkipEvaluationfornotContainingReviewableTest(long eventId, long customerId, bool isNewResultFlow) { try { //Call API for mark can not be audited now. var eventCustomerResultRepository = IoC.Resolve <IEventCustomerResultRepository>(); var eventCustomer = eventCustomerResultRepository.GetByCustomerIdAndEventId(customerId, eventId); var currentSession = IoC.Resolve <ISessionContext>().UserSession; var defaultPhysician = IoC.Resolve <IPhysicianRepository>().GetDefaultPhysicianforEvent(eventId); var orgRoleId = currentSession.CurrentOrganizationRole.OrganizationRoleUserId; IoC.Resolve <IPhysicianEvaluationRepository>().SaveCustomerforReviewSkip(eventCustomer.Id, defaultPhysician, orgRoleId, false); var account = IoC.Resolve <ICorporateAccountRepository>().GetbyEventId(eventId); var isEawvTestPurchased = IoC.Resolve <TestResultService>().IsTestPurchasedByCustomer(eventCustomer.Id, (long)TestType.eAWV); var isEawvTestNotPerformed = IoC.Resolve <ITestNotPerformedRepository>().IsTestNotPerformed(eventCustomer.Id, (long)TestType.eAWV); var testResultRepository = new TestResultRepository(); var eventRepository = IoC.Resolve <IEventRepository>(); var theEvent = eventRepository.GetById(eventId); var orderId = IoC.Resolve <IOrderRepository>().GetOrderIdByEventIdCustomerId(eventId, customerId); var isEntrybyHip = IoC.Resolve <IEventTestRepository>().GetTestsForOrder(orderId).Any(et => et.ResultEntryTypeId.HasValue == false || et.ResultEntryTypeId.Value == (long)ResultEntryType.Hip); var questionnaireType = QuestionnaireType.None; if (account != null && theEvent != null) { var accountHraChatQuestionnaireHistoryServices = IoC.Resolve <IAccountHraChatQuestionnaireHistoryServices>(); questionnaireType = accountHraChatQuestionnaireHistoryServices.QuestionnaireTypeByAccountIdandEventDate(account.Id, theEvent.EventDate); } if (isNewResultFlow) { var testResultService = IoC.Resolve <ITestResultService>(); if (!isEntrybyHip) { testResultService.SetResultstoState(eventCustomer.EventId, eventCustomer.CustomerId, (int)NewTestResultStateNumber.ArtifactSynced, false, orgRoleId); } else { if (account == null || account.IsHealthPlan == false || isEawvTestNotPerformed || questionnaireType != QuestionnaireType.HraQuestionnaire) { testResultService.SetResultstoState(eventCustomer.EventId, eventCustomer.CustomerId, (int)NewTestResultStateNumber.ArtifactSynced, false, orgRoleId); } else { testResultService.SetResultstoState(eventCustomer.EventId, eventCustomer.CustomerId, (int)NewTestResultStateNumber.NpSigned, false, orgRoleId); } } } else { testResultRepository.UpdateStateforSkipEvaluation(eventCustomer.Id, null); eventCustomerResultRepository.SetEventCustomerResultState(eventId, customerId); } if (isNewResultFlow && account != null && account.IsHealthPlan && (questionnaireType == QuestionnaireType.HraQuestionnaire) && isEawvTestPurchased && !isEawvTestNotPerformed) { var service = IoC.Resolve <INewResultFlowStateService>(); var model = new EhrReadyforCodingViewModel { EventId = eventId, HfCustomerId = customerId, ReadyForCoding = true }; service.RunTaskReadyForCodingForVisit(model, currentSession.CurrentOrganizationRole.OrganizationRoleUserId, "SkipEvaluationfornotContainingReviewableTest"); } } catch (Exception ex) { IoC.Resolve <ILogManager>().GetLogger <Global>().Error("Some Exception occurred while recording for Skip Evaluation for Not containing re-viewable test(s)! Message:" + ex.Message + "\n\t " + ex.StackTrace); } }
public bool RunTaskReadyForCodingForVisit(EhrReadyforCodingViewModel model, long orgId, string callingMethod) { Task.Run(() => SyncReadyForCodingForVisit(model, orgId, callingMethod)); return(true); }