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