Esempio n. 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);
            }
        }
Esempio n. 2
0
        public void SavePatientObservations_Test()
        {
            // Arrange
            string userId         = "5325c821072ef705080d3488";
            string contractNumber = "InHealth001";
            string context        = "NG";
            string patientId      = "5325d9f3d6a4850adcbba4ce";
            List <PatientObservationRecordData> recordData = new List <PatientObservationRecordData>();

            PatientObservationRecordData data1 = new PatientObservationRecordData
            {
                DisplayId       = 1,
                EndDate         = DateTime.Now.AddDays(10),
                DeleteFlag      = false,
                Id              = "53e3ccb8d6a485134024f1c3",
                NonNumericValue = "22",
                Source          = "CM1",
                StartDate       = DateTime.Now,
                StateId         = 1,
                Units           = "%",
                Value           = 33.0
            };

            PatientObservationRecordData data2 = new PatientObservationRecordData
            {
                DisplayId       = 1,
                EndDate         = DateTime.Now.AddDays(15),
                DeleteFlag      = false,
                Id              = "53e3ccb8d6a485134024f1ce",
                NonNumericValue = "44",
                Source          = "CM2",
                StartDate       = DateTime.Now.AddDays(1),
                StateId         = 2,
                Units           = "ml",
                Value           = 44.0
            };

            recordData.Add(data1);
            recordData.Add(data2);
            PutUpdatePatientObservationsDataRequest request = new PutUpdatePatientObservationsDataRequest {
                PatientId = patientId, Context = context, ContractNumber = contractNumber, UserId = userId, Version = 1, PatientObservationsRecordData = recordData
            };

            PatientObservationDataManager cm = new PatientObservationDataManager {
                Factory = new PatientObservationRepositoryFactory()
            };
            PutUpdatePatientObservationsDataResponse response = cm.UpdatePatientObservations(request);

            Assert.IsNotNull(response);
        }
        public PutUpdatePatientObservationsDataResponse Put(PutUpdatePatientObservationsDataRequest request)
        {
            PutUpdatePatientObservationsDataResponse response = new PutUpdatePatientObservationsDataResponse();

            try
            {
                if (string.IsNullOrEmpty(request.UserId))
                {
                    throw new UnauthorizedAccessException("PatientObservationDD:Put()::Unauthorized Access");
                }

                response         = Omgr.UpdatePatientObservations(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);
        }
Esempio n. 4
0
        internal static PostUpdateObservationItemsResponse UpdatePatientObservation(PostUpdateObservationItemsRequest request, List <PatientObservationRecordData> pord)
        {
            PostUpdateObservationItemsResponse response = null;

            try
            {
                IRestClient client = new JsonServiceClient();
                //[Route("/{Context}/{Version}/{ContractNumber}/Patient/{PatientId}/Observations/Update", "PUT")]
                string url = Common.Helper.BuildURL(string.Format("{0}/{1}/{2}/{3}/Patient/{4}/Observations/Update/",
                                                                  DDPatientObservationsServiceUrl,
                                                                  "NG",
                                                                  request.Version,
                                                                  request.ContractNumber,
                                                                  request.PatientId), request.UserId);

                PutUpdatePatientObservationsDataResponse dataDomainResponse = client.Put <PutUpdatePatientObservationsDataResponse>(
                    url, new PutUpdatePatientObservationsDataRequest
                {
                    PatientObservationsRecordData = pord,
                    UserId = request.UserId
                } as object);

                if (dataDomainResponse.Result)
                {
                    response = new PostUpdateObservationItemsResponse();
                    response.PatientObservations = ObservationsUtil.GetPatientObservations(dataDomainResponse.PatientObservationsData);
                    response.Result = dataDomainResponse.Result;
                }

                return(response);
            }
            catch (WebServiceException ex)
            {
                throw new WebServiceException("AD:UpdatePatientObservation()::" + ex.Message, ex.InnerException);
            }
        }