public GetObservationsDataResponse GetObservationsData(GetObservationsDataRequest request) { try { GetObservationsDataResponse response = new GetObservationsDataResponse(); IPatientObservationRepository repo = Factory.GetRepository(request, RepositoryType.Observation); List <ObservationData> odl = (List <ObservationData>)repo.GetActiveObservations(); response.ObservationsData = odl; return(response); } catch (Exception ex) { throw new Exception("DD.DataPatientObservationManager:GetObservationsData()::" + ex.Message, ex.InnerException); } }
public GetCurrentPatientObservationsDataResponse GetCurrentPatientObservations(GetCurrentPatientObservationsDataRequest request) { try { GetCurrentPatientObservationsDataResponse result = new GetCurrentPatientObservationsDataResponse(); IPatientObservationRepository poRepo = Factory.GetRepository(request, RepositoryType.PatientObservation); List <PatientObservationData> patientObservations = poRepo.FindObservationIdByPatientId(request.PatientId) as List <PatientObservationData>; List <PatientObservationData> currentPOs = null; if (patientObservations != null && patientObservations.Count > 0) { currentPOs = new List <PatientObservationData>(); IPatientObservationRepository observationRepo = Factory.GetRepository(request, RepositoryType.Observation); List <ObservationData> observations = (List <ObservationData>)observationRepo.GetActiveObservations(); if (observations != null && observations.Count > 0) { List <string> distinctObservations = patientObservations.Select(a => a.ObservationId).Distinct().ToList(); // added this to take care of composite observations like BP distinctObservations.ForEach(o => CombineCompositeObservations(o, patientObservations)); distinctObservations.ForEach(a => { PatientObservationData current = getCurrentPO(patientObservations.Where(s => s.ObservationId == a).ToList()); if (current != null) { ObservationData odata = observations.Where(x => x.Id == a).FirstOrDefault(); if (odata != null) { current.TypeId = odata.ObservationTypeId; current.Name = odata.CommonName == null ? odata.Description : odata.CommonName; current.Standard = odata.Standard; currentPOs.Add(current); } } }); } } result.PatientObservationsData = currentPOs; return(result); } catch (Exception ex) { throw ex; } }
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); } }