示例#1
0
        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);
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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);
            }
        }
示例#4
0
        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); }
        }