public object FindByExternalRecordId(string externalRecordId) { PatientNoteData data = null; try { using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName)) { List <IMongoQuery> queries = new List <IMongoQuery>(); queries.Add(Query.EQ(MEPatientNote.ExternalRecordIdProperty, externalRecordId)); queries.Add(Query.EQ(MEPatientNote.DeleteFlagProperty, false)); queries.Add(Query.EQ(MEPatientNote.TTLDateProperty, BsonNull.Value)); IMongoQuery mQuery = Query.And(queries); MEPatientNote mePN = ctx.PatientNotes.Collection.Find(mQuery).FirstOrDefault(); if (mePN != null) { data = new PatientNoteData { Id = mePN.Id.ToString(), }; } } return(data); } catch (Exception) { throw; } }
public object Insert(object newEntity) { InsertPatientNoteDataRequest request = (InsertPatientNoteDataRequest)newEntity; PatientNoteData noteData = request.PatientNote; string noteId = string.Empty; MEPatientNote meN = null; try { if (noteData != null) { meN = new MEPatientNote(this.UserId, noteData.CreatedOn) { PatientId = ObjectId.Parse(noteData.PatientId), Text = noteData.Text, ProgramIds = Helper.ConvertToObjectIdList(noteData.ProgramIds), ValidatedIdentity = noteData.ValidatedIdentity, ContactedOn = noteData.ContactedOn, Type = ObjectId.Parse(noteData.TypeId), DeleteFlag = false, DataSource = Helper.TrimAndLimit(noteData.DataSource, 50), LastUpdatedOn = noteData.UpdatedOn, ExternalRecordId = noteData.ExternalRecordId, Duration = noteData.Duration, }; if (!string.IsNullOrEmpty(noteData.MethodId)) { meN.MethodId = ObjectId.Parse(noteData.MethodId); } if (!string.IsNullOrEmpty(noteData.OutcomeId)) { meN.OutcomeId = ObjectId.Parse(noteData.OutcomeId); } if (!string.IsNullOrEmpty(noteData.WhoId)) { meN.WhoId = ObjectId.Parse(noteData.WhoId); } if (!string.IsNullOrEmpty(noteData.SourceId)) { meN.SourceId = ObjectId.Parse(noteData.SourceId); } using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName)) { ctx.PatientNotes.Collection.Insert(meN); AuditHelper.LogDataAudit(this.UserId, MongoCollectionName.PatientNote.ToString(), meN.Id.ToString(), Common.DataAuditType.Insert, request.ContractNumber); noteId = meN.Id.ToString(); } } return(noteId); } catch (Exception) { throw; } }
public object FindByID(string entityID) { PatientNoteData noteData = null; try { using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName)) { List <IMongoQuery> queries = new List <IMongoQuery>(); queries.Add(Query.EQ(MEPatientNote.IdProperty, ObjectId.Parse(entityID))); queries.Add(Query.EQ(MEPatientNote.DeleteFlagProperty, false)); IMongoQuery mQuery = Query.And(queries); MEPatientNote meN = ctx.PatientNotes.Collection.Find(mQuery).FirstOrDefault(); if (meN != null) { noteData = new PatientNoteData { Id = meN.Id.ToString(), PatientId = meN.PatientId.ToString(), Text = meN.Text, ProgramIds = Helper.ConvertToStringList(meN.ProgramIds), CreatedOn = meN.RecordCreatedOn, CreatedById = meN.RecordCreatedBy.ToString(), TypeId = meN.Type.ToString(), MethodId = (meN.MethodId == null) ? null : meN.MethodId.ToString(), OutcomeId = (meN.OutcomeId == null) ? null : meN.OutcomeId.ToString(), WhoId = (meN.WhoId == null) ? null : meN.WhoId.ToString(), SourceId = (meN.SourceId == null) ? null : meN.SourceId.ToString(), Duration = meN.Duration, ValidatedIdentity = meN.ValidatedIdentity, ContactedOn = meN.ContactedOn, UpdatedById = (meN.UpdatedBy == null) ? null : meN.UpdatedBy.ToString(), UpdatedOn = meN.LastUpdatedOn, DataSource = meN.DataSource, ExternalRecordId = meN.ExternalRecordId }; } } return(noteData); } catch (Exception) { throw; } }
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); }