public async Task <IActionResult> Edit([FromForm] PatientDetailsDto updatedPatientDetails) { if (updatedPatientDetails == null) { Alert("Failed to receive new patient details for patient update"); throw new ArgumentNullException(nameof(updatedPatientDetails)); } // Send the newPatientDetails to the Patient service to be processed var result = await _patientSvc.UpdatePatientDetailsAsync(updatedPatientDetails); if (result == ServiceResultStatusCode.Success) { Alert( "Patient details updated successfully. " + $"Name={updatedPatientDetails.Firstname + " " + updatedPatientDetails.Lastname}. PatientId={updatedPatientDetails.Id}", AlertType.success); return(View("Details", updatedPatientDetails)); } Alert( $"Failed to save updated patient details. Name={updatedPatientDetails.Firstname + " " + updatedPatientDetails.Lastname}", AlertType.danger); return(View("Edit", updatedPatientDetails)); }
/// <summary> /// Return the Patient including all of their associated MedicalPractitioners with /// the Appointments and PatientNotes filtered to the calling user's Id /// </summary> /// <returns></returns> public async Task <PatientDetailsDto> GetPatientDetailsAsync(int patientId, int callingUserId) { if (patientId <= 0) { throw new ArgumentOutOfRangeException(nameof(patientId)); } if (callingUserId <= 0) { throw new ArgumentOutOfRangeException(nameof(callingUserId)); } var patient = await _patientDal.GetEntityAsync(patientId); var patientDetails = new PatientDetailsDto(patient); if (patient.PatientsMedicalPractitioners != null) { var medicalPractitionersIds = patient.PatientsMedicalPractitioners.Select(m => m.MedicalPractitioner.Id).ToList(); var medicalPractitioners = await _userDal.GetEntitiesAsync(medicalPractitionersIds); if (medicalPractitioners.Any()) { patientDetails.MedicalPractitioners = medicalPractitioners.Select(userAccount => new MedicalPractitionerDetails(userAccount.Id, userAccount.JobDescription.Description, userAccount.EmployeeDetails)).ToList(); } } return(patientDetails); }
private void UpdatePatientProperties(ref Patient patient, PatientDetailsDto updatedDetails) { patient.Id = updatedDetails.Id; patient.Title = updatedDetails.Title; patient.Firstname = updatedDetails.Firstname; patient.Lastname = updatedDetails.Lastname; patient.DateOfBirth = updatedDetails.DateOfBirth; patient.HealthAndCare = updatedDetails.HealthAndCare; patient.Address1 = updatedDetails.Address1; patient.Address2 = updatedDetails.Address2; patient.City = updatedDetails.City; patient.County = updatedDetails.County; patient.PostCode = updatedDetails.PostCode.ToUpper(); patient.PhoneNumber = updatedDetails.PhoneNumber; patient.MobilePhone = updatedDetails.MobilePhone; patient.Email = updatedDetails.Email.ToLower(); patient.Status = updatedDetails.PatientStatus; }
/// <summary> /// Saves the updated user details /// </summary> /// <param name="patientDetails"></param> /// <returns></returns> public async Task <ServiceResultStatusCode> UpdatePatientDetailsAsync(PatientDetailsDto patientDetails) { if (patientDetails == null) { throw new ArgumentNullException(nameof(patientDetails)); } var patient = await _patientDal.GetEntityAsync(patientDetails.Id); if (patient == null) { return(ServiceResultStatusCode.NotFound); } UpdatePatientProperties(ref patient, patientDetails); return(await _patientDal.UpdateAsync(patient) != null ? ServiceResultStatusCode.Success : ServiceResultStatusCode.Failed); }