Пример #1
0
        private PatientProfileDto GetProfile(Patient patient, Physician physician = null)
        {
            var patientProfileDto = new PatientProfileDto
            {
                FirstName   = patient.FirstName,
                LastName    = patient.LastName,
                DateOfBirth = patient.DateOfBirth,
                Email       = patient.Email,
                PhoneNumber = patient.PhoneNumber,
                Address1    = patient.Address1,
                Address2    = patient.Address2,
                City        = patient.City,
                State       = patient.State,
                Zip         = patient.Zip
            };

            List <Appointment> appointments;

            if (physician == null)
            {
                appointments = _databaseContext.Appointment
                               .Where(w => w.PatientId == patient.Id)
                               .Include(i => i.Purpose)
                               .Include(i => i.Physician)
                               .ToList();
            }
            else
            {
                appointments = _databaseContext.Appointment
                               .Where(w => w.PatientId == patient.Id && w.PhysicianId == physician.Id)
                               .Include(i => i.Purpose)
                               .Include(i => i.Physician)
                               .ToList();
            }

            if (appointments != null && appointments.Count > 0)
            {
                patientProfileDto.Appointments = new List <PatientProfileDto.AppointmentDto>();
                foreach (var appointment in appointments)
                {
                    patientProfileDto.Appointments.Add(new PatientProfileDto.AppointmentDto
                    {
                        Id                 = appointment.Id,
                        Physician          = appointment.Physician.FirstName + " " + appointment.Physician.LastName,
                        DateAndTime        = appointment.DateAndTime,
                        Purpose            = appointment.Purpose.Purpose,
                        CreatedDateTime    = appointment.CreatedDateTime,
                        CreatedBy          = appointment.CreatedBy,
                        IsApproved         = appointment.IsApproved,
                        IsCanceled         = appointment.IsCanceled,
                        CancellationReason = appointment.CancellationReason
                    });
                }
            }

            return(patientProfileDto);
        }
Пример #2
0
        public async Task <Guid> UpdatePatientProfile(PatientProfileDto patientProfileData)
        {
            try
            {
                var savedPatientProfile = _dbContext.PatientProfiles.AsNoTracking().FirstOrDefault(p => p.Id == patientProfileData.Id);
                if (savedPatientProfile == null)
                {
                    return(Guid.Empty);
                }
                _dbContext.Entry(_mapper.Map <PatientProfile>(patientProfileData)).State = EntityState.Modified;
                await _dbContext.SaveChangesAsync();

                return(savedPatientProfile.Id);
            }
            catch (Exception e)
            {
                return(Guid.Empty);
            }
        }
Пример #3
0
        public async Task <Guid> AddPatientProfile(PatientProfileDto patientProfileData)
        {
            try
            {
                if (await PatientHasBusinessProfile(patientProfileData.PatientId))
                {
                    return(Guid.Empty);
                }
                var user = await _userManager.FindByEmailAsync(_userId);

                var patientProfile = _mapper.Map <PatientProfile>(patientProfileData);
                _dbContext.PatientProfiles.Add(patientProfile);
                await _dbContext.SaveChangesAsync();

                return(patientProfile.Id);
            }
            catch (Exception)
            {
                return(Guid.Empty);
            }
        }