public BulkInsertResult InsertBatchEngagePatientSystems(InsertBatchEngagePatientSystemsDataRequest request) { BulkInsertResult result = null; try { if (request.PatientIds != null && request.PatientIds.Count > 0) { var repo = Factory.GetRepository(RepositoryType.PatientSystem); List <PatientSystemData> psList = new List <PatientSystemData>(); bool status = isSystemPrimary(Constants.EngageSystemId); List <string> patientIds = request.PatientIds; patientIds.ForEach(p => { PatientSystemData ps = new PatientSystemData { DataSource = Constants.DataSource, PatientId = p, Primary = status, StatusId = (int)Status.Active, SystemId = Constants.EngageSystemId, Value = EngageId.New() }; psList.Add(ps); }); result = (BulkInsertResult)repo.InsertAll(psList.Cast <object>().ToList()); } } catch (Exception ex) { throw ex; } return(result); }
public override BulkInsertResult <string> InsertMany(IEnumerable <T> entities, InsertMode insertMode) { if (insertMode != InsertMode.db_implementation) { throw new NotImplementedException(); } var insertResult = new BulkInsertResult <string>(); var creationDate = NoSQLRepoHelper.DateTimeUtcNow(); foreach (var entity in entities) { if (AutoGeneratedEntityDate) { entity.SystemCreationDate = creationDate; } if (AutoGeneratedEntityDate) { entity.SystemLastUpdateDate = creationDate; } NoSQLRepoHelper.SetIds(entity); var entityToStore = NewtonJsonHelper.CloneJson(entity, DateTimeZoneHandling.Utc); localDb[entity.Id] = entityToStore; config.ExpireAt(entity.Id, null); insertResult[entity.Id] = InsertResult.unknown; } SaveJSONFile(); return(insertResult); }
public Import CreateImport(List <Import_RoutingNumber_DTO> entries) { log.Info($"Creating Import for {entries.Count} entries"); var transaction = unitOfWork.BeginTransaction(); try { Import latestImport = unitOfWork.Imports.GetLastestOfType((int)ImportTypes.RoutingNumbers); if (latestImport != null) { log.Info($"Set latest Import {latestImport.Id} to IsLatest = false"); latestImport.IsLatest = false; unitOfWork.Imports.Update(latestImport); unitOfWork.SaveChanges(); } log.Info($"Creating Import for {entries.Count} entries..."); Import import = new Import(); import.Name = string.Format($"RoutingNumbers - {DateTime.Now.ToString()}"); import.ImporTypeId = (int)ImportTypes.RoutingNumbers; import.IsLatest = true; unitOfWork.Imports.Add(import); unitOfWork.SaveChanges(); log.Info($"Inserting {entries.Count} entries for import {import.Id}..."); BulkInsertResult result = unitOfWork.Imports.RoutingNumberBulkInsert(import.Id, entries); import.InsertSql = result.InsertSQL; import.RollBackSql = result.RollbackSQL; unitOfWork.Imports.Update(import); unitOfWork.SaveChanges(); transaction.Commit(); log.Info($"Commit Transaction for Import {import.Id}"); return(import); } catch (Exception ex) { //TODO exception handling log.Error(ex.Message); log.Info("Fatal error occured attempting to rollback"); transaction.Rollback(); } return(null); }
public override BulkInsertResult <string> InsertMany(IEnumerable <T> entities, InsertMode insertMode) { var insertResult = new BulkInsertResult <string>(); foreach (var entity in entities) { // Create the document InsertOne(entity, insertMode); insertResult[entity.Id] = InsertResult.unknown; } return(insertResult); }
public object InsertAll(List <object> entities) { BulkInsertResult result = new BulkInsertResult(); List <string> insertedIds = new List <string>(); List <string> errorMessages = new List <string>(); try { using (PatientSystemMongoContext ctx = new PatientSystemMongoContext(ContractDBName)) { var bulk = ctx.PatientSystems.Collection.InitializeUnorderedBulkOperation(); foreach (PatientSystemData data in entities) { MEPatientSystem mePS = new MEPatientSystem(this.UserId, data.CreatedOn) { PatientId = ObjectId.Parse(data.PatientId), Value = Helper.TrimAndLimit(data.Value, 100), Status = (Status)data.StatusId, Primary = data.Primary, SystemId = ObjectId.Parse(data.SystemId), DataSource = Helper.TrimAndLimit(data.DataSource, 50), DeleteFlag = false, ExternalRecordId = data.ExternalRecordId, LastUpdatedOn = data.UpdatedOn, UpdatedBy = ParseObjectId(data.UpdatedById) }; bulk.Insert(mePS.ToBsonDocument()); insertedIds.Add(mePS.Id.ToString()); } BulkWriteResult bwr = bulk.Execute(); } // TODO: Auditing. } catch (BulkWriteException bwEx) { // Get the error messages for the ones that failed. foreach (BulkWriteError er in bwEx.WriteErrors) { errorMessages.Add(er.Message); } } catch (Exception ex) { string aseProcessID = ConfigurationManager.AppSettings.Get("ASEProcessID") ?? "0"; Helper.LogException(int.Parse(aseProcessID), ex); } result.ProcessedIds = insertedIds; result.ErrorMessages = errorMessages; return(result); }
public List <HttpObjectResponse <ToDoData> > InsertBatchPatientToDos(InsertBatchPatientToDosDataRequest request) { List <HttpObjectResponse <ToDoData> > list = null; try { if (request.PatientToDosData != null && request.PatientToDosData.Count > 0) { list = new List <HttpObjectResponse <ToDoData> >(); ISchedulingRepository repo = Factory.GetRepository(request, RepositoryType.ToDo); BulkInsertResult result = (BulkInsertResult)repo.InsertAll(request.PatientToDosData.Cast <object>().ToList()); if (result != null) { if (result.ProcessedIds != null && result.ProcessedIds.Count > 0) { // Get the ToDos that were newly inserted. List <ToDoData> insertedToDos = repo.Select(result.ProcessedIds) as List <ToDoData>; if (insertedToDos != null && insertedToDos.Count > 0) { #region DataAudit List <string> insertedPatientToDoIds = insertedToDos.Select(p => p.Id).ToList(); AuditHelper.LogDataAudit(request.UserId, MongoCollectionName.ToDo.ToString(), insertedPatientToDoIds, Common.DataAuditType.Insert, request.ContractNumber); #endregion insertedToDos.ForEach(r => { list.Add(new HttpObjectResponse <ToDoData> { Code = HttpStatusCode.Created, Body = (ToDoData) new ToDoData { Id = r.Id, ExternalRecordId = r.ExternalRecordId, PatientId = r.PatientId } }); }); } } result.ErrorMessages.ForEach(e => { list.Add(new HttpObjectResponse <ToDoData> { Code = HttpStatusCode.InternalServerError, Message = e }); }); } } } catch (Exception ex) { throw ex; } return(list); }
public override BulkInsertResult <string> InsertMany(IEnumerable <T> entities, InsertMode insertMode) { CheckOpenedConnection(); var insertResult = new BulkInsertResult <string>(); database.InBatch(() => { foreach (var entity in entities) { // Create the document InsertOne(entity, insertMode); insertResult[entity.Id] = InsertResult.unknown; } }); return(insertResult); }
public override BulkInsertResult <string> InsertMany(IEnumerable <T> entities, InsertMode insertMode) { CheckOpenedConnection(); if (insertMode != InsertMode.db_implementation) { throw new NotImplementedException(); } var insertResult = new BulkInsertResult <string>(); foreach (var entity in entities) { var insertOneResult = InsertOne(entity, insertMode); // Normally the entity id has changed insertResult[entity.Id] = insertOneResult; } return(insertResult); }
public List <HttpObjectResponse <ContactData> > InsertBatchContacts(InsertBatchContactDataRequest request) { List <HttpObjectResponse <ContactData> > list = null; try { if (request.ContactsData != null && request.ContactsData.Count > 0) { List <ContactData> contactData = request.ContactsData; //#region Get the default timeZone. //string defaultTimeZoneId = getDefaultTimeZone(request); //#endregion #region Get all the available comm modes in the lookup. List <CommModeData> commModeData = new List <CommModeData>(); List <IdNamePair> modesLookUp = getAllCommModes(request); if (modesLookUp != null && modesLookUp.Count > 0) { foreach (IdNamePair l in modesLookUp) { commModeData.Add(new CommModeData { ModeId = l.Id, OptOut = false, Preferred = false }); } } #endregion // Populate default CommModes and default timeZones to the Contact data before inserting. contactData.ForEach(c => { c.Modes = commModeData; //c.TimeZoneId = defaultTimeZoneId; }); list = new List <HttpObjectResponse <ContactData> >(); IContactRepository repo = Factory.GetRepository(request, RepositoryType.Contact); BulkInsertResult result = (BulkInsertResult)repo.InsertAll(contactData.Cast <object>().ToList()); if (result != null) { if (result.ProcessedIds != null && result.ProcessedIds.Count > 0) { // Get the Contacts that were newly inserted. List <ContactData> insertedContacts = repo.Select(result.ProcessedIds) as List <ContactData>; if (insertedContacts != null && insertedContacts.Count > 0) { #region DataAudit List <string> insertedContactIds = insertedContacts.Select(p => p.Id).ToList(); AuditHelper.LogDataAudit(request.UserId, MongoCollectionName.Contact.ToString(), insertedContactIds, Common.DataAuditType.Insert, request.ContractNumber); #endregion insertedContacts.ForEach(r => { list.Add(new HttpObjectResponse <ContactData> { Code = HttpStatusCode.Created, Body = (ContactData) new ContactData { Id = r.Id, PatientId = r.PatientId } }); }); } } result.ErrorMessages.ForEach(e => { list.Add(new HttpObjectResponse <ContactData> { Code = HttpStatusCode.InternalServerError, Message = e }); }); } } } catch (Exception ex) { throw ex; } return(list); }
public object InsertAll(List <object> entities) { BulkInsertResult result = new BulkInsertResult(); List <string> insertedIds = new List <string>(); List <string> errorMessages = new List <string>(); try { using (SchedulingMongoContext ctx = new SchedulingMongoContext(_dbName)) { var bulk = ctx.ToDos.Collection.InitializeUnorderedBulkOperation(); foreach (ToDoData t in entities) { METoDo meToDo = new METoDo(this.UserId, t.CreatedOn) { Status = (Status)t.StatusId, Priority = (Priority)t.PriorityId, Description = t.Description, Title = t.Title, LoweredTitle = t.Title != null?t.Title.ToLower() : null, DueDate = t.DueDate, StartTime = t.StartTime, Duration = t.Duration, ProgramIds = Helper.ConvertToObjectIdList(t.ProgramIds), DeleteFlag = false, LastUpdatedOn = t.UpdatedOn, ExternalRecordId = t.ExternalRecordId }; if (!string.IsNullOrEmpty(t.AssignedToId)) { meToDo.AssignedToId = ObjectId.Parse(t.AssignedToId); } if (!string.IsNullOrEmpty(t.CategoryId)) { meToDo.Category = ObjectId.Parse(t.CategoryId); } if (!string.IsNullOrEmpty(t.PatientId)) { meToDo.PatientId = ObjectId.Parse(t.PatientId); } if (!string.IsNullOrEmpty(t.SourceId)) { meToDo.SourceId = ObjectId.Parse(t.SourceId); } if (t.ClosedDate != null) { meToDo.ClosedDate = t.ClosedDate; } bulk.Insert(meToDo.ToBsonDocument()); insertedIds.Add(meToDo.Id.ToString()); } BulkWriteResult bwr = bulk.Execute(); } // TODO: Auditing. } catch (BulkWriteException bwEx) { // Get the error messages for the ones that failed. foreach (BulkWriteError er in bwEx.WriteErrors) { errorMessages.Add(er.Message); } } catch (Exception ex) { string aseProcessID = ConfigurationManager.AppSettings.Get("ASEProcessID") ?? "0"; Helper.LogException(int.Parse(aseProcessID), ex); } result.ProcessedIds = insertedIds; result.ErrorMessages = errorMessages; return(result); }
public InsertBatchPatientsDataResponse InsertBatchPatients(InsertBatchPatientsDataRequest request) { InsertBatchPatientsDataResponse response = new InsertBatchPatientsDataResponse(); if (request.PatientsData != null && request.PatientsData.Count > 0) { List <HttpObjectResponse <PatientData> > list = new List <HttpObjectResponse <PatientData> >(); IPatientRepository repo = Factory.GetRepository(request, RepositoryType.Patient); BulkInsertResult result = (BulkInsertResult)repo.InsertAll(request.PatientsData.Cast <object>().ToList()); if (result != null) { if (result.ProcessedIds != null && result.ProcessedIds.Count > 0) { // Get the patients that were newly inserted. List <PatientData> insertedPatients = repo.Select(result.ProcessedIds); if (insertedPatients != null && insertedPatients.Count > 0) { List <string> insertedPatientIds = insertedPatients.Select(p => p.Id).ToList(); #region DataAudit for Patients AuditHelper.LogDataAudit(request.UserId, MongoCollectionName.Patient.ToString(), insertedPatientIds, Common.DataAuditType.Insert, request.ContractNumber); #endregion #region BulkInsert CohortPatientView List <CohortPatientViewData> cpvList = getMECohortPatientView(insertedPatients); IPatientRepository cpvRepo = Factory.GetRepository(request, RepositoryType.CohortPatientView); cpvRepo.InsertAll(cpvList.Cast <object>().ToList()); #endregion #region BulkInsert EngagePatientSystems. List <string> processedPatientSystemIds = insertBatchEngagePatientSystem(insertedPatientIds, request); List <PatientSystemData> insertedPatientSystems = getPatientSystems(processedPatientSystemIds, request); #region DataAudit for EngagePatientSystems List <string> insertedPatientSystemIds = insertedPatientSystems.Select(p => p.Id).ToList(); AuditHelper.LogDataAudit(request.UserId, MongoCollectionName.PatientSystem.ToString(), insertedPatientSystemIds, Common.DataAuditType.Insert, request.ContractNumber); #endregion insertedPatients.ForEach(r => { string engageValue = string.Empty; var x = insertedPatientSystems.Where(s => s.PatientId == r.Id).FirstOrDefault(); if (x != null) { engageValue = x.Value; } list.Add(new HttpObjectResponse <PatientData> { Code = HttpStatusCode.Created, Body = (PatientData) new PatientData { Id = r.Id, ExternalRecordId = r.ExternalRecordId, EngagePatientSystemValue = engageValue } }); }); #endregion } } result.ErrorMessages.ForEach(e => { list.Add(new HttpObjectResponse <PatientData> { Code = HttpStatusCode.InternalServerError, Message = e }); }); } response.Responses = list; } return(response); }
public object InsertAll(List <object> entities) { BulkInsertResult result = new BulkInsertResult(); List <string> insertedIds = new List <string>(); List <string> errorMessages = new List <string>(); try { using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName)) { var bulk = ctx.PatientNotes.Collection.InitializeUnorderedBulkOperation(); foreach (PatientNoteData data in entities) { MEPatientNote meN = new MEPatientNote(this.UserId, data.CreatedOn) { PatientId = ObjectId.Parse(data.PatientId), Text = data.Text, ProgramIds = Helper.ConvertToObjectIdList(data.ProgramIds), ValidatedIdentity = data.ValidatedIdentity, ContactedOn = data.ContactedOn, Type = ObjectId.Parse(data.TypeId), DeleteFlag = false, DataSource = Helper.TrimAndLimit(data.DataSource, 50), LastUpdatedOn = data.UpdatedOn, ExternalRecordId = data.ExternalRecordId, Duration = data.Duration }; if (!string.IsNullOrEmpty(data.MethodId)) { meN.MethodId = ObjectId.Parse(data.MethodId); } if (!string.IsNullOrEmpty(data.OutcomeId)) { meN.OutcomeId = ObjectId.Parse(data.OutcomeId); } if (!string.IsNullOrEmpty(data.WhoId)) { meN.WhoId = ObjectId.Parse(data.WhoId); } if (!string.IsNullOrEmpty(data.SourceId)) { meN.SourceId = ObjectId.Parse(data.SourceId); } bulk.Insert(meN.ToBsonDocument()); insertedIds.Add(meN.Id.ToString()); } BulkWriteResult bwr = bulk.Execute(); } // TODO: Auditing. } catch (BulkWriteException bwEx) { // Get the error messages for the ones that failed. foreach (BulkWriteError er in bwEx.WriteErrors) { errorMessages.Add(er.Message); } } catch (Exception ex) { string aseProcessID = ConfigurationManager.AppSettings.Get("ASEProcessID") ?? "0"; Helper.LogException(int.Parse(aseProcessID), ex); } result.ProcessedIds = insertedIds; result.ErrorMessages = errorMessages; return(result); }