Exemplo n.º 1
0
        public void UndoDelete(object entity)
        {
            try
            {
                if (entity != null)
                {
                    using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName))
                    {
                        string id = entity.ToString();
                        var    q  = MB.Query <MEPatientUtilization> .EQ(b => b.Id, ObjectId.Parse(id));

                        var uv = new List <MB.UpdateBuilder>();
                        uv.Add(MB.Update.Set(MEPatientUtilization.TTLDateProperty, BsonNull.Value));
                        uv.Add(MB.Update.Set(MEPatientUtilization.DeleteFlagProperty, false));
                        uv.Add(MB.Update.Set(MEPatientUtilization.LastUpdatedOnProperty, DateTime.UtcNow));
                        uv.Add(MB.Update.Set(MEPatientUtilization.UpdatedByProperty, ObjectId.Parse(this.UserId)));
                        IMongoUpdate update = MB.Update.Combine(uv);
                        ctx.PatientUtilizations.Collection.Update(q, update);

                        AuditHelper.LogDataAudit(this.UserId,
                                                 MongoCollectionName.PatientUtilization.ToString(),
                                                 id,
                                                 DataAuditType.UndoDelete,
                                                 ContractDBName);
                    }
                }
            }
            catch (Exception) { throw; }
        }
Exemplo n.º 2
0
        public void RemoveProgram(object entity, List <string> updatedProgramIds)
        {
            RemoveProgramInPatientNotesDataRequest request = (RemoveProgramInPatientNotesDataRequest)entity;

            try
            {
                List <ObjectId> ids = updatedProgramIds.ConvertAll(r => ObjectId.Parse(r));
                using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName))
                {
                    var q = MB.Query <MEPatientNote> .EQ(b => b.Id, ObjectId.Parse(request.NoteId));

                    var uv = new List <MB.UpdateBuilder>();
                    uv.Add(MB.Update.SetWrapped <List <ObjectId> >(MEPatientNote.ProgramProperty, ids));
                    uv.Add(MB.Update.Set(MEPatientNote.LastUpdatedOnProperty, DateTime.UtcNow));
                    uv.Add(MB.Update.Set(MEPatientNote.UpdatedByProperty, ObjectId.Parse(this.UserId)));

                    IMongoUpdate update = MB.Update.Combine(uv);
                    ctx.PatientNotes.Collection.Update(q, update);

                    AuditHelper.LogDataAudit(this.UserId,
                                             MongoCollectionName.PatientUtilization.ToString(),
                                             request.NoteId.ToString(),
                                             DataAuditType.Update,
                                             request.ContractNumber);
                }
            }
            catch (Exception) { throw; }
        }
Exemplo n.º 3
0
        public void UndoDelete(object entity)
        {
            UndoDeletePatientNotesDataRequest request = (UndoDeletePatientNotesDataRequest)entity;

            try
            {
                using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName))
                {
                    var q = MB.Query <MEPatientNote> .EQ(b => b.Id, ObjectId.Parse(request.PatientNoteId));

                    var uv = new List <MB.UpdateBuilder>();
                    uv.Add(MB.Update.Set(MEPatientNote.TTLDateProperty, BsonNull.Value));
                    uv.Add(MB.Update.Set(MEPatientNote.DeleteFlagProperty, false));
                    uv.Add(MB.Update.Set(MEPatientNote.LastUpdatedOnProperty, DateTime.UtcNow));
                    uv.Add(MB.Update.Set(MEPatientNote.UpdatedByProperty, ObjectId.Parse(this.UserId)));

                    IMongoUpdate update = MB.Update.Combine(uv);
                    ctx.PatientNotes.Collection.Update(q, update);

                    AuditHelper.LogDataAudit(this.UserId,
                                             MongoCollectionName.PatientNote.ToString(),
                                             request.PatientNoteId.ToString(),
                                             Common.DataAuditType.UndoDelete,
                                             request.ContractNumber);
                }
            }
            catch (Exception) { throw; }
        }
Exemplo n.º 4
0
        public IEnumerable <object> FindByPatientId(object request)
        {
            List <PatientUtilizationData> utilDataList = null;

            try
            {
                if (request != null)
                {
                    using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName))
                    {
                        List <IMongoQuery> queries = new List <IMongoQuery>();
                        queries.Add(MB.Query.EQ(MEPatientUtilization.PatientIdProperty, ObjectId.Parse(request.ToString())));
                        queries.Add(MB.Query.EQ(MEPatientUtilization.DeleteFlagProperty, false));

                        IMongoQuery mQuery = MB.Query.And(queries);
                        List <MEPatientUtilization> meUtils = null;

                        meUtils = ctx.PatientUtilizations.Collection.Find(mQuery).ToList();

                        if (meUtils != null && meUtils.Count > 0)
                        {
                            utilDataList = meUtils.Select(MapPatientUtilizationData).ToList();
                        }
                    }
                }
                return(utilDataList);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 5
0
        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; }
        }
Exemplo n.º 6
0
        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; }
        }
Exemplo n.º 7
0
        public IEnumerable <object> FindByPatientId(object request)
        {
            List <PatientNoteData>        noteDataList = null;
            GetAllPatientNotesDataRequest dataRequest  = (GetAllPatientNotesDataRequest)request;

            try
            {
                using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName))
                {
                    List <IMongoQuery> queries = new List <IMongoQuery>();
                    queries.Add(Query.EQ(MEPatientNote.PatientIdProperty, ObjectId.Parse(dataRequest.PatientId)));
                    queries.Add(Query.EQ(MEPatientNote.DeleteFlagProperty, false));
                    IMongoQuery          mQuery  = Query.And(queries);
                    List <MEPatientNote> meNotes = null;
                    //if (dataRequest.Count > 0)
                    //{
                    //    meNotes = ctx.PatientNotes.Collection.Find(mQuery).OrderByDescending(o => o.RecordCreatedOn).Take(dataRequest.Count).ToList();
                    //}
                    //else
                    //{
                    meNotes = ctx.PatientNotes.Collection.Find(mQuery).ToList();
                    //}
                    if (meNotes != null && meNotes.Count > 0)
                    {
                        noteDataList = new List <PatientNoteData>();
                        foreach (MEPatientNote meN in meNotes)
                        {
                            noteDataList.Add(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(noteDataList);
            }
            catch (Exception) { throw; }
        }
Exemplo n.º 8
0
        public IEnumerable <object> Select(List <string> ids)
        {
            List <PatientNoteData> dataList = null;

            try
            {
                using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName))
                {
                    List <IMongoQuery> queries = new List <IMongoQuery>();
                    queries.Add(Query.In(MEPatientNote.IdProperty, new BsonArray(Helper.ConvertToObjectIdList(ids))));
                    queries.Add(Query.EQ(MEPatientNote.DeleteFlagProperty, false));
                    queries.Add(Query.EQ(MEPatientNote.TTLDateProperty, BsonNull.Value));
                    IMongoQuery          mQuery  = Query.And(queries);
                    List <MEPatientNote> meNotes = ctx.PatientNotes.Collection.Find(mQuery).ToList();
                    if (meNotes != null && meNotes.Count > 0)
                    {
                        dataList = new List <PatientNoteData>();
                        foreach (MEPatientNote meN in meNotes)
                        {
                            dataList.Add(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(dataList as IEnumerable <object>);
            }
            catch (Exception) { throw; }
        }
Exemplo n.º 9
0
        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; }
        }
Exemplo n.º 10
0
        public object FindByID(string entityID)
        {
            PatientUtilizationData utilData = null;

            try
            {
                using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName))
                {
                    List <IMongoQuery> queries = new List <IMongoQuery>();
                    queries.Add(MB.Query.EQ(MEPatientUtilization.IdProperty, ObjectId.Parse(entityID)));
                    queries.Add(MB.Query.EQ(MEPatientUtilization.DeleteFlagProperty, false));
                    IMongoQuery          mQuery = MB.Query.And(queries);
                    MEPatientUtilization meN    = ctx.PatientUtilizations.Collection.Find(mQuery).FirstOrDefault();
                    if (meN != null)
                    {
                        utilData = MapPatientUtilizationData(meN);
                    }
                }
                return(utilData);
            }
            catch (Exception) { throw; }
        }
Exemplo n.º 11
0
        public IEnumerable <object> FindNotesWithAProgramId(string entityId)
        {
            List <PatientNoteData> noteDataList = null;

            try
            {
                using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName))
                {
                    List <IMongoQuery> queries = new List <IMongoQuery>();
                    queries.Add(MB.Query.In(MEPatientNote.ProgramProperty, new List <BsonValue> {
                        BsonValue.Create(ObjectId.Parse(entityId))
                    }));
                    queries.Add(MB.Query.EQ(MEPatientNote.DeleteFlagProperty, false));
                    IMongoQuery          mQuery  = MB.Query.And(queries);
                    List <MEPatientNote> meNotes = ctx.PatientNotes.Collection.Find(mQuery).ToList();
                    if (meNotes != null && meNotes.Count > 0)
                    {
                        noteDataList = new List <PatientNoteData>();
                        foreach (MEPatientNote meN in meNotes)
                        {
                            PatientNoteData data = 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()
                            };
                            noteDataList.Add(data);
                        }
                    }
                }
                return(noteDataList);
            }
            catch (Exception ex) { throw ex; }
        }
Exemplo n.º 12
0
        public object Update(object entity)
        {
            PatientUtilizationData pn = entity as PatientUtilizationData;

            try
            {
                PatientUtilizationData result;
                using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName))
                {
                    var q = MB.Query <MEPatientUtilization> .EQ(b => b.Id, ObjectId.Parse(pn.Id));

                    var uv = new List <MB.UpdateBuilder>();
                    uv.Add(MB.Update.Set(MEPatientUtilization.UpdatedByProperty, ObjectId.Parse(this.UserId)));
                    uv.Add(MB.Update.Set(MEPatientUtilization.LastUpdatedOnProperty, DateTime.UtcNow));

                    uv.Add(MB.Update.Set(MEPatientUtilization.AdmittedProperty, pn.Admitted));
                    if (pn.OtherType != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.OtherTypeProperty, Trim(pn.OtherType, 100)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.OtherTypeProperty, BsonNull.Value));
                    }

                    if (pn.OtherLocation != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.OtherLocationProperty, Trim(pn.OtherLocation, 100)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.OtherLocationProperty, BsonNull.Value));
                    }

                    if (pn.Reason != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.ReasonProperty, Trim(pn.Reason, 5000)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.ReasonProperty, BsonNull.Value));
                    }

                    if (pn.OtherDisposition != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.OtherDispositionProperty, Trim(pn.OtherDisposition, 100)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.OtherDispositionProperty, BsonNull.Value));
                    }

                    if (pn.DataSource != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.DataSourceProperty, Trim(pn.DataSource, 50)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.DataSourceProperty, BsonNull.Value));
                    }

                    if (pn.AdmitDate != null && !pn.AdmitDate.Equals(new DateTime()))
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.AdmitDateProperty, pn.AdmitDate));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.AdmitDateProperty, BsonNull.Value));
                    }

                    if (pn.DischargeDate != null && !pn.DischargeDate.Equals(new DateTime()))
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.DischargeDateProperty, pn.DischargeDate));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.DischargeDateProperty, BsonNull.Value));
                    }

                    if (!string.IsNullOrEmpty(pn.PatientId))
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.PatientIdProperty, ObjectId.Parse(pn.PatientId)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.PatientIdProperty, BsonNull.Value));
                    }

                    if (!string.IsNullOrEmpty(pn.VisitTypeId))
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.VisitTypeProperty, ObjectId.Parse(pn.VisitTypeId)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.VisitTypeProperty, BsonNull.Value));
                    }

                    if (!string.IsNullOrEmpty(pn.LocationId))
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.LocationProperty, ObjectId.Parse(pn.LocationId)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.LocationProperty, BsonNull.Value));
                    }

                    if (!string.IsNullOrEmpty(pn.DispositionId))
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.DispositionProperty, ObjectId.Parse(pn.DispositionId)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.DispositionProperty, BsonNull.Value));
                    }

                    if (!string.IsNullOrEmpty(pn.SourceId))
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.SourceIdProperty, ObjectId.Parse(pn.SourceId)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.SourceIdProperty, BsonNull.Value));
                    }

                    if (!string.IsNullOrEmpty(pn.TypeId))
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.NoteTypeProperty, ObjectId.Parse(pn.TypeId)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.NoteTypeProperty, BsonNull.Value));
                    }

                    if (pn.ProgramIds != null && pn.ProgramIds.Count > 0)
                    {
                        uv.Add(MB.Update.SetWrapped <List <ObjectId> >(MEPatientUtilization.ProgramsProperty,
                                                                       Helper.ConvertToObjectIdList(pn.ProgramIds)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientUtilization.ProgramsProperty, BsonNull.Value));
                    }


                    IMongoUpdate update = MB.Update.Combine(uv);
                    ctx.PatientUtilizations.Collection.Update(q, update);

                    AuditHelper.LogDataAudit(this.UserId,
                                             MongoCollectionName.PatientUtilization.ToString(),
                                             pn.Id,
                                             DataAuditType.Update,
                                             ContractDBName);

                    result = FindByID(pn.Id) as PatientUtilizationData;
                }
                return(result as object);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 13
0
        public object Update(object entity)
        {
            bool result = false;
            UpdatePatientNoteDataRequest request = (UpdatePatientNoteDataRequest)entity;
            PatientNoteData pn = request.PatientNoteData;

            try
            {
                using (PatientNoteMongoContext ctx = new PatientNoteMongoContext(ContractDBName))
                {
                    var q = MB.Query <MEPatientNote> .EQ(b => b.Id, ObjectId.Parse(pn.Id));

                    var uv = new List <MB.UpdateBuilder>();
                    uv.Add(MB.Update.Set(MEPatientNote.UpdatedByProperty, ObjectId.Parse(this.UserId)));
                    uv.Add(MB.Update.Set(MEPatientNote.VersionProperty, request.Version));
                    uv.Add(MB.Update.Set(MEPatientNote.LastUpdatedOnProperty, System.DateTime.UtcNow));
                    if (pn.PatientId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.PatientIdProperty, ObjectId.Parse(pn.PatientId)));
                    }
                    if (pn.Text != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.TextProperty, pn.Text));
                    }
                    if (pn.TypeId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.NoteTypeProperty, ObjectId.Parse(pn.TypeId)));
                    }
                    if (pn.ProgramIds != null && pn.ProgramIds.Count > 0)
                    {
                        uv.Add(MB.Update.SetWrapped <List <ObjectId> >(MEPatientNote.ProgramProperty, Helper.ConvertToObjectIdList(pn.ProgramIds)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.ProgramProperty, BsonNull.Value));
                    }
                    if (pn.MethodId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.MethodIdProperty, ObjectId.Parse(pn.MethodId)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.MethodIdProperty, BsonNull.Value));
                    }
                    if (pn.WhoId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.WhoIdProperty, pn.WhoId));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.WhoIdProperty, BsonNull.Value));
                    }
                    if (pn.SourceId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.SourceIdProperty, pn.SourceId));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.SourceIdProperty, BsonNull.Value));
                    }
                    if (pn.OutcomeId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.OutcomeIdProperty, pn.OutcomeId));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.OutcomeIdProperty, BsonNull.Value));
                    }
                    if (pn.Duration != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.DurationProperty, pn.Duration));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.DurationProperty, BsonNull.Value));
                    }
                    uv.Add(MB.Update.Set(MEPatientNote.ValidatedIdentityProperty, pn.ValidatedIdentity));
                    if (pn.ContactedOn != null && !pn.ContactedOn.Equals(new DateTime()))
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.ContactedOnProperty, pn.ContactedOn));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.ContactedOnProperty, BsonNull.Value));
                    }

                    if (pn.DataSource != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.DataSourceProperty, Helper.TrimAndLimit(pn.DataSource, 50)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientNote.DataSourceProperty, BsonNull.Value));
                    }

                    IMongoUpdate update = MB.Update.Combine(uv);
                    ctx.PatientNotes.Collection.Update(q, update);

                    AuditHelper.LogDataAudit(this.UserId,
                                             MongoCollectionName.PatientNote.ToString(),
                                             pn.Id,
                                             DataAuditType.Update,
                                             request.ContractNumber);

                    result = true;
                }
                return(result as object);
            }
            catch (Exception) { throw; }
        }
Exemplo n.º 14
0
        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);
        }