Пример #1
0
        public object FindByID(string entityID)
        {
            PatientAllergyData data = null;

            try
            {
                using (AllergyMongoContext ctx = new AllergyMongoContext(ContractDBName))
                {
                    List <IMongoQuery> queries = new List <IMongoQuery>();
                    queries.Add(Query.EQ(MEPatientAllergy.IdProperty, ObjectId.Parse(entityID)));
                    IMongoQuery      mQuery = Query.And(queries);
                    MEPatientAllergy mePA   = ctx.PatientAllergies.Collection.Find(mQuery).FirstOrDefault();
                    if (mePA != null)
                    {
                        data = AutoMapper.Mapper.Map <PatientAllergyData>(mePA);
                        // get corresponding allergy name and type.
                        if (data != null)
                        {
                            getAllergyDetails(data, ctx, mePA.AllergyId);
                        }
                    }
                }
                return(data);
            }
            catch (Exception) { throw; }
        }
Пример #2
0
        public void UpdatePatientAllergies_Test()
        {
            List <PatientAllergyData> data = new System.Collections.Generic.List <PatientAllergyData>();

            PatientAllergyData p1 = new PatientAllergyData
            {
                AllergyId   = "54489a72fe7a59146485bce5",
                EndDate     = DateTime.UtcNow,
                Id          = "5452567ed433231b9c516d8e",
                Notes       = "first note for patient allergy",
                PatientId   = "54087f43d6a48509407d69cb",
                ReactionIds = new List <string> {
                    "54494b5ad433232a446f7323", "54494b5dd433232a446f7324", "54494b60d433232a446f7325"
                },
                SeverityId = "54494a96d433232a446f7313",
                SourceId   = "544e9976d433231d9c0330ae",
                StartDate  = DateTime.UtcNow,
                StatusId   = 1,
                SystemName = "Engage1",
                UpdatedOn  = DateTime.UtcNow
            };

            data.Add(p1);
            PutPatientAllergiesDataRequest request = new PutPatientAllergiesDataRequest
            {
                Context              = context,
                ContractNumber       = contractNumber,
                PatientAllergiesData = data,
                UserId  = userId,
                Version = version
            };
            List <PatientAllergyData> response = cm.UpdatePatientAllergies(request);

            Assert.IsTrue(request.PatientAllergiesData.Count == response.Count);
        }
Пример #3
0
        public PatientAllergyData InitializePatientAllergy(PostInitializePatientAllergyRequest request)
        {
            try
            {
                PatientAllergyData result = null;
                IRestClient        client = new JsonServiceClient();
                //[Route("/{Version}/{ContractNumber}/PatientAllergy/Initialize", "POST")]
                var url = Common.Helper.BuildURL(string.Format("{0}/{1}/{2}/{3}/PatientAllergy/Initialize",
                                                               DDAllergyUrl,
                                                               "NG",
                                                               request.Version,
                                                               request.ContractNumber), request.UserId);

                PutInitializePatientAllergyDataResponse dataDomainResponse = client.Put <PutInitializePatientAllergyDataResponse>(url, new PutInitializePatientAllergyDataRequest
                {
                    Context        = "NG",
                    ContractNumber = request.ContractNumber,
                    PatientId      = request.PatientId,
                    AllergyId      = request.AllergyId,
                    SystemName     = Constants.SystemName,
                    UserId         = request.UserId,
                    Version        = request.Version
                } as object);

                if (dataDomainResponse != null)
                {
                    result = dataDomainResponse.PatientAllergyData;
                }
                return(result);
            }
            catch (WebServiceException ex)
            {
                throw new WebServiceException("AD:InitializePatientAllergy()::" + ex.Message, ex.InnerException);
            }
        }
Пример #4
0
        public object FindByPatientId(object request)
        {
            List <PatientAllergyData>      list        = null;
            GetPatientAllergiesDataRequest dataRequest = (GetPatientAllergiesDataRequest)request;

            try
            {
                using (AllergyMongoContext ctx = new AllergyMongoContext(ContractDBName))
                {
                    List <IMongoQuery> queries = new List <IMongoQuery>();
                    queries.Add(Query.EQ(MEPatientAllergy.PatientIdProperty, ObjectId.Parse(dataRequest.PatientId)));
                    queries.Add(Query.EQ(MEPatientAllergy.DeleteFlagProperty, false));
                    queries.Add(Query.EQ(MEPatientAllergy.TTLDateProperty, BsonNull.Value));
                    if (dataRequest.StatusIds != null && dataRequest.StatusIds.Count > 0)
                    {
                        queries.Add(Query.In(MEPatientAllergy.StatusProperty, new BsonArray(dataRequest.StatusIds)));
                    }
                    IMongoQuery             mQuery = Query.And(queries);
                    List <MEPatientAllergy> mePAs  = ctx.PatientAllergies.Collection.Find(mQuery).ToList();
                    if (mePAs != null && mePAs.Count > 0)
                    {
                        list = new List <PatientAllergyData>();
                        List <ObjectId> aids = new List <ObjectId>();
                        if (dataRequest.TypeIds != null && dataRequest.TypeIds.Count > 0)
                        {
                            // get allergy details by typeId.
                            List <MEAllergy> allergiesByType = ctx.Allergies.Collection.Find(Query.EQ(MEAllergy.TypeIdsProperty, new BsonArray(dataRequest.TypeIds))).ToList();
                            aids = allergiesByType.Select(i => i.Id).ToList();
                        }
                        mePAs.ForEach(p =>
                        {
                            MEPatientAllergy meData = null;
                            if (dataRequest.TypeIds != null && dataRequest.TypeIds.Count > 0)
                            {
                                if (aids.Contains(p.AllergyId))
                                {
                                    meData = p;
                                }
                            }
                            else
                            {
                                meData = p;
                            }
                            if (meData != null)
                            {
                                PatientAllergyData data = AutoMapper.Mapper.Map <PatientAllergyData>(meData);
                                // get corresponding allergy name and type.
                                if (data != null)
                                {
                                    getAllergyDetails(data, ctx, p.AllergyId);
                                }
                                list.Add(data);
                            }
                        });
                    }
                }
                return(list);
            }
            catch (Exception) { throw; }
        }
Пример #5
0
        public List <PatientAllergyData> UpdatePatientAllergies(PutPatientAllergiesDataRequest request)
        {
            try
            {
                List <PatientAllergyData> result = null;
                var repo = AllergyRepositoryFactory.GetAllergyRepository(request, RepositoryType.PatientAllergy);

                if (request.PatientAllergiesData != null && request.PatientAllergiesData.Count > 0)
                {
                    result = new List <PatientAllergyData>();
                    request.PatientAllergiesData.ForEach(p =>
                    {
                        PutPatientAllergyDataRequest req = new PutPatientAllergyDataRequest
                        {
                            Context            = request.Context,
                            ContractNumber     = request.ContractNumber,
                            PatientAllergyData = p,
                            UserId             = request.UserId,
                            Version            = request.Version
                        };
                        bool status = (bool)repo.Update(req);
                        if (status)
                        {
                            PatientAllergyData data = (PatientAllergyData)repo.FindByID(req.PatientAllergyData.Id);
                            result.Add(data);
                        }
                    });
                }
                return(result);
            }
            catch (Exception ex) { throw ex; }
        }
Пример #6
0
        public void UpdatePatientAllergies_Test()
        {
            List <PatientAllergyData> data = new System.Collections.Generic.List <PatientAllergyData>();

            PatientAllergyData p1 = new PatientAllergyData
            {
                AllergyId   = "54489a72fe7a59146485bce5",
                EndDate     = DateTime.UtcNow,
                Id          = "5452567ed433231b9c516d8e",
                Notes       = "first note for patient allergy",
                PatientId   = "54087f43d6a48509407d69cb",
                ReactionIds = new List <string> {
                    "54494b5ad433232a446f7323", "54494b5dd433232a446f7324", "54494b60d433232a446f7325"
                },
                SeverityId = "54494a96d433232a446f7313",
                SourceId   = "544e9976d433231d9c0330ae",
                StartDate  = DateTime.UtcNow,
                StatusId   = 1,
                SystemName = "Engage1",
                UpdatedOn  = DateTime.UtcNow
            };

            PatientAllergyData p2 = new PatientAllergyData
            {
                AllergyId   = "54489a79fe7a59146485bd1e",
                EndDate     = DateTime.UtcNow,
                Id          = "5452584ed4332305d8fa10b5",
                Notes       = "asdasfddfjskdfjsldfugiosdgjksgj",
                PatientId   = "54087f43d6a48509407d69cb",
                ReactionIds = new List <string> {
                    "54494b5ad433232a446f7323"
                },
                SeverityId = "54494a96d433232a446f7313",
                SourceId   = "544e9976d433231d9c0330ae",
                StartDate  = DateTime.UtcNow,
                StatusId   = 1,
                SystemName = "Engage2",
                UpdatedOn  = DateTime.UtcNow
            };

            data.Add(p1);
            data.Add(p2);
            PutPatientAllergiesDataRequest request = new PutPatientAllergiesDataRequest
            {
                Context              = context,
                ContractNumber       = contractNumber,
                PatientAllergiesData = data,
                UserId  = userId,
                Version = version
            };

            //[Route("/{Context}/{Version}/{ContractNumber}/PatientAllergy/Update/Bulk", "PUT")]
            PutPatientAllergiesDataResponse response = client.Put <PutPatientAllergiesDataResponse>(
                string.Format("{0}/{1}/{2}/{3}/PatientAllergy/Update/Bulk", url, context, version, contractNumber), request);

            Assert.IsNotNull(response);
        }
Пример #7
0
        private static void getAllergyDetails(PatientAllergyData data, AllergyMongoContext ctx, ObjectId aid)
        {
            MEAllergy meA = ctx.Allergies.Collection.Find(Query.EQ(MEAllergy.IdProperty, aid)).FirstOrDefault();

            if (meA != null)
            {
                data.AllergyName    = meA.Name.ToUpper();
                data.AllergyTypeIds = Helper.ConvertToStringList(meA.TypeIds);
            }
        }
Пример #8
0
        public object Update(object entity)
        {
            PutPatientAllergiesDataRequest pa = (PutPatientAllergiesDataRequest)entity;
            PatientAllergyData             pt = pa.PatientAllergiesData[0];
            MEPatientAllergy mePA             = new MEPatientAllergy(pa.UserId);

            mePA.AllergyId  = ObjectId.Parse(pt.AllergyId);
            mePA.SeverityId = ObjectId.Parse(pt.SeverityId);
            mePA.DeleteFlag = pt.DeleteFlag;
            mePA.SourceId   = ObjectId.Parse(pt.SourceId);
            mePA.StatusId   = (Status)pt.StatusId;
            return(true);
        }
        public List <DTO.PatientAllergyData> UpdatePatientAllergies(DTO.PutPatientAllergiesDataRequest request)
        {
            List <PatientAllergyData> result = new List <PatientAllergyData>();
            var  repo   = StubRepositoryFactory.GetAllergyRepository(request, RepositoryType.PatientAllergy);
            bool status = (bool)repo.Update(request);

            if (status)
            {
                PatientAllergyData data = (PatientAllergyData)repo.FindByID(request.PatientAllergiesData[0].Id);
                result.Add(data);
            }
            return(result);
        }
Пример #10
0
        public PatientAllergy InitializePatientAllergy(PostInitializePatientAllergyRequest request)
        {
            PatientAllergy patientAllergy = null;

            try
            {
                PatientAllergyData data = EndpointUtil.InitializePatientAllergy(request);
                if (data != null)
                {
                    patientAllergy = Mapper.Map <PatientAllergy>(data);
                }
                return(patientAllergy);
            }
            catch (Exception ex) { throw ex; }
        }
Пример #11
0
        public void InitializePatientAllergy_Test()
        {
            PutInitializePatientAllergyDataRequest request = new PutInitializePatientAllergyDataRequest {
                AllergyId      = "54489a3dfe7a59146485bafe",
                Context        = context,
                ContractNumber = contractNumber,
                PatientId      = "54087f43d6a48509407d69cb",
                SystemName     = "Engage",
                UserId         = userId,
                Version        = version
            };

            PatientAllergyData data = cm.InitializePatientAllergy(request);

            Assert.IsTrue(data.AllergyId == request.AllergyId);
        }
Пример #12
0
        public object FindByPatientId(object request)
        {
            List <PatientAllergyData> list = new List <PatientAllergyData>();
            PatientAllergyData        p1   = new PatientAllergyData
            {
                AllergyId   = "54489a72fe7a59146485bce5",
                EndDate     = DateTime.UtcNow,
                Id          = "5452567ed433231b9c516d8e",
                Notes       = "first note for patient allergy",
                PatientId   = "54087f43d6a48509407d69cb",
                ReactionIds = new List <string> {
                    "54494b5ad433232a446f7323", "54494b5dd433232a446f7324", "54494b60d433232a446f7325"
                },
                SeverityId = "54494a96d433232a446f7313",
                SourceId   = "544e9976d433231d9c0330ae",
                StartDate  = DateTime.UtcNow,
                StatusId   = 1,
                SystemName = "Engage1",
                UpdatedOn  = DateTime.UtcNow
            };

            list.Add(p1);
            PatientAllergyData p2 = new PatientAllergyData
            {
                AllergyId   = "54489a79fe7a59146485bd1e",
                EndDate     = DateTime.UtcNow,
                Id          = "5452584ed4332305d8fa10b5",
                Notes       = "asdasfddfjskdfjsldfugiosdgjksgj",
                PatientId   = "54087f43d6a48509407d69cb",
                ReactionIds = new List <string> {
                    "54494b5ad433232a446f7323"
                },
                SeverityId = "54494a96d433232a446f7313",
                SourceId   = "544e9976d433231d9c0330ae",
                StartDate  = DateTime.UtcNow,
                StatusId   = 1,
                SystemName = "Engage2",
                UpdatedOn  = DateTime.UtcNow
            };

            list.Add(p2);
            return(list);
        }
Пример #13
0
        public object Initialize(object newEntity)
        {
            PutInitializePatientAllergyDataRequest request = (PutInitializePatientAllergyDataRequest)newEntity;
            PatientAllergyData data = null;

            try
            {
                MEPatientAllergy mePA = new MEPatientAllergy(this.UserId)
                {
                    PatientId  = ObjectId.Parse(request.PatientId),
                    AllergyId  = ObjectId.Parse(request.AllergyId),
                    TTLDate    = System.DateTime.UtcNow.AddDays(_initializeDays),
                    SystemName = request.SystemName,
                    DeleteFlag = false
                };

                using (AllergyMongoContext ctx = new AllergyMongoContext(ContractDBName))
                {
                    ctx.PatientAllergies.Collection.Insert(mePA);

                    AuditHelper.LogDataAudit(this.UserId,
                                             MongoCollectionName.PatientAllergy.ToString(),
                                             mePA.Id.ToString(),
                                             DataAuditType.Insert,
                                             request.ContractNumber);

                    data = new PatientAllergyData
                    {
                        Id         = mePA.Id.ToString(),
                        PatientId  = mePA.PatientId.ToString(),
                        AllergyId  = mePA.AllergyId.ToString(),
                        SystemName = mePA.SystemName
                    };
                    // get corresponding allergy name and type.
                    getAllergyDetails(data, ctx, mePA.AllergyId);
                }
                return(data);
            }
            catch (Exception) { throw; }
        }
Пример #14
0
        public object Initialize(object newEntity)
        {
            PutInitializePatientAllergyDataRequest request = (PutInitializePatientAllergyDataRequest)newEntity;
            PatientAllergyData data = null;
            MEPatientAllergy   mePA = new MEPatientAllergy(this.UserId)
            {
                PatientId  = ObjectId.Parse(request.PatientId),
                AllergyId  = ObjectId.Parse(request.AllergyId),
                TTLDate    = System.DateTime.UtcNow.AddDays(1),
                SystemName = request.SystemName,
                DeleteFlag = false
            };

            data = new PatientAllergyData
            {
                Id         = mePA.Id.ToString(),
                PatientId  = mePA.PatientId.ToString(),
                AllergyId  = mePA.AllergyId.ToString(),
                SystemName = mePA.SystemName
            };
            return(data);
        }
Пример #15
0
        public object Update(object entity)
        {
            bool result = false;
            PutPatientAllergyDataRequest pa = (PutPatientAllergyDataRequest)entity;
            PatientAllergyData           pt = pa.PatientAllergyData;

            try
            {
                using (AllergyMongoContext ctx = new AllergyMongoContext(ContractDBName))
                {
                    var q = MB.Query <MEPatientAllergy> .EQ(b => b.Id, ObjectId.Parse(pt.Id));

                    var uv = new List <MB.UpdateBuilder>();
                    uv.Add(MB.Update.Set(MEPatientAllergy.UpdatedByProperty, ObjectId.Parse(this.UserId)));
                    uv.Add(MB.Update.Set(MEPatientAllergy.VersionProperty, pa.Version));
                    uv.Add(MB.Update.Set(MEPatientAllergy.LastUpdatedOnProperty, System.DateTime.UtcNow));
                    if (pt.PatientId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.PatientIdProperty, ObjectId.Parse(pt.PatientId)));
                    }
                    if (pt.AllergyId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.AllergyIdProperty, ObjectId.Parse(pt.AllergyId)));
                    }
                    if (pt.SeverityId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.SeverityIdProperty, ObjectId.Parse(pt.SeverityId)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.SeverityIdProperty, BsonNull.Value));
                    }
                    if (pt.ReactionIds != null && pt.ReactionIds.Count > 0)
                    {
                        uv.Add(MB.Update.SetWrapped <List <ObjectId> >(MEPatientAllergy.ReactionIdsProperty, Helper.ConvertToObjectIdList(pt.ReactionIds)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.ReactionIdsProperty, BsonNull.Value));
                    }
                    if (pt.StartDate != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.StartDateProperty, pt.StartDate));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.StartDateProperty, BsonNull.Value));
                    }
                    if (pt.EndDate != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.EndDateProperty, pt.EndDate));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.EndDateProperty, BsonNull.Value));
                    }
                    if (pt.StatusId != 0)
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.StatusProperty, pt.StatusId));
                    }
                    if (pt.SourceId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.SourceIdProperty, ObjectId.Parse(pt.SourceId)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.SourceIdProperty, BsonNull.Value));
                    }

                    if (pt.DataSource != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.DataSourceProperty, pt.DataSource));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.DataSourceProperty, BsonNull.Value));
                    }

                    if (pt.ExternalRecordId != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.ExternalRecordIdProperty, pt.ExternalRecordId));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.ExternalRecordIdProperty, BsonNull.Value));
                    }
                    if (!string.IsNullOrEmpty(pt.CodingSystemId))
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.CodingSystemProperty, ObjectId.Parse(pt.CodingSystemId)));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.CodingSystemProperty, BsonNull.Value));
                    }
                    if (!string.IsNullOrEmpty(pt.Code))
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.CodeProperty, pt.Code));
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.CodeProperty, BsonNull.Value));
                    }
                    if (pt.Notes != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.NotesProperty, pt.Notes));
                    }
                    if (pt.SystemName != null)
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.SystemProperty, pt.SystemName));
                    }
                    uv.Add(MB.Update.Set(MEPatientAllergy.DeleteFlagProperty, pt.DeleteFlag));
                    DataAuditType type;
                    if (pt.DeleteFlag)
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.TTLDateProperty, System.DateTime.UtcNow.AddDays(_expireDays)));
                        type = DataAuditType.Delete;
                    }
                    else
                    {
                        uv.Add(MB.Update.Set(MEPatientAllergy.TTLDateProperty, BsonNull.Value));
                        type = DataAuditType.Update;
                    }
                    IMongoUpdate update = MB.Update.Combine(uv);
                    ctx.PatientAllergies.Collection.Update(q, update);

                    AuditHelper.LogDataAudit(this.UserId,
                                             MongoCollectionName.PatientAllergy.ToString(),
                                             pt.Id,
                                             type,
                                             pa.ContractNumber);

                    result = true;
                }
                return(result as object);
            }
            catch (Exception) { throw; }
        }