public async Task <IActionResult> AddPatientNote(int id) { var userId = GetLoggedInUserId(); if (userId < 1) { _log.LogError($"Authentication failure. Could not extract User's Id from Claims Principal."); Alert("Failed to authorize current User access to the Patient Record", AlertType.danger); return(RedirectToAction("Details", "Patient", new { id = id })); } var medicalPractitioner = await _userAdminSvc.GetUserFullDetailsAsync(userId); if (medicalPractitioner == null) { _log.LogError($"Failed to load Medical Practitioner's account. \"Id\"={userId}"); Alert("Failed to authorize current User access to the Patient Record", AlertType.danger); return(RedirectToAction("Details", "Patient", new { id = id })); } var newPatientNote = new PatientNoteDto() { PatientId = id, MedicalPractitionerId = userId, MedicalPractitionerFirstname = medicalPractitioner.Firstname, MedicalPractitionerLastname = medicalPractitioner.Lastname, MedicalPractitionerTitle = medicalPractitioner.Title.ToString() }; return(View(newPatientNote)); }
/// <summary> /// Adds a new PatientRecordEntry /// </summary> /// <param name="newPatientRecordEntry"></param> /// <returns></returns> public async Task <PatientNoteDto> AddPatientRecordEntryAsync(PatientNoteDto newPatientRecordEntry) { if (newPatientRecordEntry == null) { throw new ArgumentNullException(nameof(newPatientRecordEntry)); } var newPatientRecordEntryString = JsonSerializer.Serialize(newPatientRecordEntry); var encryptedContent = _cryptoSvc.Encrypt(newPatientRecordEntryString); var newPatientNote = new PatientNote() { PatientId = newPatientRecordEntry.PatientId, MedicalPractitionerId = newPatientRecordEntry.MedicalPractitionerId, Timestamp = newPatientRecordEntry.Timestamp, Content = encryptedContent }; var result = await _noteDal.AddAsync(newPatientNote); if (result == null) { return(null); } newPatientRecordEntry.Id = result.Id; return(newPatientRecordEntry); }
public async Task <IActionResult> AddPatientNote([FromForm] PatientNoteDto newPatientNote) { if (newPatientNote == null) { throw new ArgumentNullException(nameof(newPatientNote)); } // Add the timestamp just prior to saving the patient note newPatientNote.Timestamp = DateTime.UtcNow; var result = await _patientRecordSvc.AddPatientRecordEntryAsync(newPatientNote); if (result != null) { Alert( $"Patient note successfully saved to the patient's record. \"PatientId\"={newPatientNote.PatientId}", AlertType.success); return(RedirectToAction("Index", new { id = newPatientNote.PatientId })); } _log.LogError($"Failed to save new Patient note. \"PatientId\"={newPatientNote.PatientId}, \"MedicalPractitionerId\"={newPatientNote.MedicalPractitionerId}"); Alert("Failed to save new Patient note.", AlertType.danger); return(RedirectToAction("Index", new { id = newPatientNote.PatientId })); }