public PutUpdatePatientObservationsDataResponse UpdatePatientObservations(PutUpdatePatientObservationsDataRequest request) { try { PutUpdatePatientObservationsDataResponse response = new PutUpdatePatientObservationsDataResponse(); List <PatientObservationData> returnDataList = null; bool result = false; IPatientObservationRepository repo = Factory.GetRepository(request, RepositoryType.PatientObservation); // update if (request.PatientObservationsRecordData != null && request.PatientObservationsRecordData.Count != 0) { returnDataList = new List <PatientObservationData>(); foreach (PatientObservationRecordData poData in request.PatientObservationsRecordData) { if (!string.IsNullOrEmpty(poData.Id)) { PutUpdateObservationDataRequest putUpdateObservationDataRequest = new PutUpdateObservationDataRequest { Context = request.Context, ContractNumber = request.ContractNumber, PatientId = request.PatientId, PatientObservationData = poData, UserId = request.UserId, Version = request.Version }; result = (bool)repo.Update(putUpdateObservationDataRequest); //fetch & return the update object. PatientObservationData pod = (PatientObservationData)repo.FindByID(poData.Id, true); returnDataList.Add(pod); } } IPatientObservationRepository observationRepo = Factory.GetRepository(request, RepositoryType.Observation); List <ObservationData> observations = (List <ObservationData>)observationRepo.GetActiveObservations(); if (observations != null && observations.Count > 0) { List <string> distinctObservations = returnDataList.Select(a => a.ObservationId).Distinct().ToList(); // added this to take care of composite observations like BP distinctObservations.ForEach(o => CombineCompositeObservations(o, returnDataList)); returnDataList.ForEach(r => { ObservationData odata = observations.Where(x => x.Id == r.ObservationId).FirstOrDefault(); if (odata != null) { r.TypeId = odata.ObservationTypeId; r.Name = odata.CommonName == null ? odata.Description : odata.CommonName; r.Standard = odata.Standard; } }); } } response.PatientObservationsData = returnDataList; response.Result = result; return(response); } catch (Exception ex) { throw new Exception("DD.DataPatientObservationManager:UpdatePatientObservations()::" + ex.Message, ex.InnerException); } }
public void UpdatePatientProblem_Test() { PutUpdateObservationDataRequest request = new PutUpdateObservationDataRequest { Context = context, ContractNumber = contractNumber, PatientId = "5325da48d6a4850adcbba5c2", PatientObservationData = GetProblem(), UserId = userId, Version = version }; bool response = (bool)new PatientObservationDataManager().PutUpdateOfPatientObservationRecord(request); Assert.IsTrue(response); }
public bool PutUpdateOfPatientObservationRecord(PutUpdateObservationDataRequest request) { try { bool result = false; IPatientObservationRepository repo = Factory.GetRepository(request, RepositoryType.PatientObservation); // update if (request.PatientObservationData != null && request.PatientObservationData.Id != null) { result = (bool)repo.Update(request); } return(result); } catch (Exception ex) { throw new Exception("DD.DataPatientObservationManager:PutUpdateOfPatientObservationRecord()::" + ex.Message, ex.InnerException); } }
public PutUpdateObservationDataResponse UpdatePatientProblem(string patientId, string userId, string elementId, PatientObservation pod, bool _active, IAppDomainRequest request) { try { //register call to remote serivce. IRestClient client = new JsonServiceClient(); string url = Common.Helper.BuildURL(string.Format("{0}/{1}/{2}/{3}/Patient/{4}/Observation/Update", DDPatientObservationServiceUrl, "NG", request.Version, request.ContractNumber, patientId), request.UserId); PatientObservationRecordData pdata = new PatientObservationRecordData { Id = pod.Id, StateId = pod.StateId, DeleteFlag = false }; PutUpdateObservationDataRequest purequest = new PutUpdateObservationDataRequest { PatientObservationData = pdata, Context = "NG", ContractNumber = request.ContractNumber, UserId = request.UserId, }; PutUpdateObservationDataResponse dataDomainResponse = client.Put <PutUpdateObservationDataResponse>( url, purequest as object); return(dataDomainResponse); } catch (Exception ex) { throw new Exception("AD:PlanElementEndpointUtil:UpdatePatientProblem()::" + ex.Message, ex.InnerException); } }
public PutUpdateObservationDataResponse Post(PutUpdateObservationDataRequest request) { PutUpdateObservationDataResponse response = new PutUpdateObservationDataResponse(); try { if (string.IsNullOrEmpty(request.UserId)) { throw new UnauthorizedAccessException("PatientObservationDD:Post()::Unauthorized Access"); } response.Result = Omgr.PutUpdateOfPatientObservationRecord(request); response.Version = request.Version; } catch (Exception ex) { CommonFormatter.FormatExceptionResponse(response, base.Response, ex); string aseProcessID = ConfigurationManager.AppSettings.Get("ASEProcessID") ?? "0"; Common.Helper.LogException(int.Parse(aseProcessID), ex); } return(response); }
object IRepository.Update(object entity) { bool result = false; PutUpdateObservationDataRequest odr = (PutUpdateObservationDataRequest)entity; PatientObservationRecordData pord = odr.PatientObservationData; try { using (PatientObservationMongoContext ctx = new PatientObservationMongoContext(_dbName)) { var q = MB.Query <MEPatientObservation> .EQ(b => b.Id, ObjectId.Parse(pord.Id)); var uv = new List <MB.UpdateBuilder>(); uv.Add(MB.Update.Set(MEPatientObservation.DeleteFlagProperty, pord.DeleteFlag)); if (pord.DeleteFlag) { uv.Add(MB.Update.Set(MEPatientObservation.TTLDateProperty, System.DateTime.UtcNow.AddDays(_expireDays))); } else { uv.Add(MB.Update.Set(MEPatientObservation.TTLDateProperty, BsonNull.Value)); } uv.Add(MB.Update.Set(MEPatientObservation.UpdatedByProperty, ObjectId.Parse(this.UserId))); uv.Add(MB.Update.Set(MEPatientObservation.LastUpdatedOnProperty, System.DateTime.UtcNow)); uv.Add(MB.Update.Set(MEPatientObservation.VersionProperty, odr.Version)); if (pord.NonNumericValue != null) { uv.Add(MB.Update.Set(MEPatientObservation.NonNumericValueProperty, pord.NonNumericValue)); } if (pord.Value != null) { uv.Add(MB.Update.Set(MEPatientObservation.NumericValueProperty, BsonDouble.Create(pord.Value))); } if (pord.Units != null) { uv.Add(MB.Update.Set(MEPatientObservation.UnitsProperty, pord.Units)); } if (pord.StartDate != null) { uv.Add(MB.Update.Set(MEPatientObservation.StartDateProperty, pord.StartDate)); } else { uv.Add(MB.Update.Set(MEPatientObservation.StartDateProperty, BsonNull.Value)); } if (pord.EndDate != null) { uv.Add(MB.Update.Set(MEPatientObservation.EndDateProperty, pord.EndDate)); } else { uv.Add(MB.Update.Set(MEPatientObservation.EndDateProperty, BsonNull.Value)); } if (pord.DisplayId != 0) { uv.Add(MB.Update.Set(MEPatientObservation.DisplayProperty, pord.DisplayId)); } if (pord.StateId != 0) { uv.Add(MB.Update.Set(MEPatientObservation.ObservationStateProperty, pord.StateId)); } if (pord.Source != null) { uv.Add(MB.Update.Set(MEPatientObservation.SourceProperty, pord.Source)); } if (pord.DataSource != null) { uv.Add(MB.Update.Set(MEPatientObservation.DataSourceProperty, pord.DataSource)); } else { uv.Add(MB.Update.Set(MEPatientObservation.DataSourceProperty, BsonNull.Value)); } if (pord.ExternalRecordId != null) { uv.Add(MB.Update.Set(MEPatientObservation.ExternalRecordIdProperty, pord.ExternalRecordId)); } else { uv.Add(MB.Update.Set(MEPatientObservation.ExternalRecordIdProperty, BsonNull.Value)); } IMongoUpdate update = MB.Update.Combine(uv); ctx.PatientObservations.Collection.Update(q, update); AuditHelper.LogDataAudit(this.UserId, MongoCollectionName.PatientObservation.ToString(), pord.Id, Common.DataAuditType.Update, odr.ContractNumber); result = true; } return(result as object); } catch (Exception ex) { throw new Exception("PatientObservationDD:MongoPatientBarrierRepository:Update()::" + ex.Message, ex.InnerException); } }