Beispiel #1
0
        public DeletePatientObservationByPatientIdDataResponse DeletePatientObservationByPatientId(DeletePatientObservationByPatientIdDataRequest request)
        {
            DeletePatientObservationByPatientIdDataResponse response = null;

            try
            {
                response = new DeletePatientObservationByPatientIdDataResponse();
                IPatientObservationRepository repo = Factory.GetRepository(request, RepositoryType.PatientObservation);
                List <PatientObservationData> patientObservations = repo.FindObservationIdByPatientId(request.PatientId) as List <PatientObservationData>;
                List <string> deletedIds = null;
                if (patientObservations != null)
                {
                    deletedIds = new List <string>();
                    patientObservations.ForEach(u =>
                    {
                        //request.Id = u.Id;
                        DeletePatientObservationRequest deletePatientObservationRequest = new DeletePatientObservationRequest {
                            Context              = request.Context,
                            ContractNumber       = request.ContractNumber,
                            UserId               = request.UserId,
                            Version              = request.Version,
                            PatientObservationId = u.Id,
                        };
                        repo.Delete(deletePatientObservationRequest);
                        deletedIds.Add(deletePatientObservationRequest.PatientObservationId);
                    });
                    response.DeletedIds = deletedIds;
                }
                response.Success = true;
                return(response);
            }
            catch (Exception ex) { throw ex; }
        }
Beispiel #2
0
        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; }
        }