Esempio n. 1
0
 private HistoricalVisitDto HideDoctorsEgn(HistoricalVisitDto historicalVisit)
 {
     if (IsUserInRole(User, UserRole.Patient))
     {
         historicalVisit.Doctor.Egn = "HIDDEN";
     }
     return(historicalVisit);
 }
Esempio n. 2
0
        public void CreateNewVisit([FromBody] HistoricalVisitDto historicalVisitDto)
        {
            EnsureNotInRole(User, UserRole.Patient, Messages.PatientCannotCreateVisit);
            Execute(dataContext =>
            {
                var visit =
                    Map <HistoricalVisitDto, HistoricalVisit>(historicalVisitDto);

                if (IsUserInRole(User, UserRole.Doctor))
                {
                    if (!dataContext.SysUsers.First(user => user.Username.Equals(User.Identity.Name)).Doctors
                        .Any(doctor => doctor.Guid.Equals(visit.DoctorId)))
                    {
                        throw GetResponseException(HttpStatusCode.Forbidden,
                                                   Messages.DoctorNotAllowedToPostVisitOnOtherDoctors);
                    }
                }
                if (IsUserInRole(User, UserRole.Hospital))
                {
                    if (!dataContext.SysUsers.First(user => user.Username.Equals(User.Identity.Name)).Hospitals
                        .Any(hospital => hospital.Guid.Equals(visit.HospitalId)))
                    {
                        throw GetResponseException(HttpStatusCode.Forbidden,
                                                   Messages.HospitalNotAllowedToPostVisitationOnOtherHospitals);
                    }
                }
                if (!dataContext.Patients.Any(patient => patient.Guid.Equals(visit.PatientId)))
                {
                    throw GetResponseException(HttpStatusCode.NotFound, Messages.PatientDoesNotExist);
                }
                if (!dataContext.Doctors.Any(doctor => doctor.Guid.Equals(visit.DoctorId)))
                {
                    throw GetResponseException(HttpStatusCode.NotFound, Messages.DoctorDoesNotExist);
                }
                if (!dataContext.Hospitals.Any(hospital => hospital.Guid.Equals(visit.HospitalId)))
                {
                    throw GetResponseException(HttpStatusCode.NotFound, Messages.HospitalDoesNotExist);
                }
                if (!dataContext.Hospitals.First(hospital => hospital.Guid.Equals(visit.HospitalId)).HospitalDoctors
                    .Any(hospitalDoctorLink => hospitalDoctorLink.DoctorId.Equals(visit.DoctorId)))
                {
                    throw GetResponseException(HttpStatusCode.NotFound,
                                               Messages.DoctorNotPartOfHospitalForVisitation);
                }

                visit.Guid = Guid.Empty;
                dataContext.HistoricalVisits.InsertOnSubmit(visit);
                dataContext.SubmitChanges();
            });
        }
Esempio n. 3
0
        private static void UpdateExistingVisitFields(Guid id, HistoricalVisitDto historicalVisitDto,
                                                      PersistenceClassesDataContext dataContext)
        {
            var visit = dataContext.HistoricalVisits.FirstOrDefault(r => r.Guid.Equals(id));

            if (visit == null)
            {
                throw GetResponseException(HttpStatusCode.NotFound, Messages.VisitDoesNotExist);
            }
            if (historicalVisitDto.VisitTime != DateTime.MinValue)
            {
                visit.VisitTime = historicalVisitDto.VisitTime;
            }
            dataContext.SubmitChanges();
        }
Esempio n. 4
0
 public void UpdateVisit(Guid id, HistoricalVisitDto historicalVisitDto)
 {
     EnsureNotInRole(User, UserRole.Patient, Messages.PatientCannotModifyVisitation);
     Execute(dataContext => UpdateExistingVisitFields(id, historicalVisitDto, dataContext));
 }