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; } }
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); }
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); } }
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; } }
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; } }
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); }
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); } }
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); }
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; } }
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); }
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); }
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; } }
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); }
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; } }