public Result<PatientMedicalNoteDto> GetPatientMedicalNotes(int patientConsultationId)
        {
            Result<PatientMedicalNoteDto> response = new Result<PatientMedicalNoteDto>();

            using (UnitOfWork unitOfWork = new UnitOfWork())
            {
                IEnumerable<MedicalNote> medicalNotes = unitOfWork.MedicalNoteRepository.GetEntities();
                IEnumerable<PatientMedicalNote> patientMedicalNotes = unitOfWork.PatientMedicalNoteRepository.GetEntities(item => item.PatientConsultationId == patientConsultationId, p => p.OrderBy(o => o.MedicalNote.SortKey));

                foreach (MedicalNote medicalNote in medicalNotes)
                {
                    MedicalNoteDto medicalNoteDto = _MedicalNoteMapper.MapToMedicalNoteDto(medicalNote);
                    PatientMedicalNote patientMedicalNote = patientMedicalNotes.Where(item => item.MedicalNoteId == medicalNote.MedicalNoteId).FirstOrDefault();

                    PatientMedicalNoteDto patientMedicalNoteDto = new PatientMedicalNoteDto()
                    {
                        PatientMedicalNoteId = patientMedicalNote == null ? default(int?) : patientMedicalNote.PatientMedicalNoteId,
                        PatientConsultationId = patientConsultationId,
                        MedicalNote = medicalNoteDto,
                        Value = patientMedicalNote == null ? null : patientMedicalNote.Value
                    };

                    response.Models.Add(patientMedicalNoteDto);
                }
            }

            return response;
        }
        public void MapToPatientMedicalNote(PatientMedicalNote patientMedicalNote, PatientMedicalNoteDto patientMedicalNoteDto)
        {
            if (patientMedicalNoteDto == null)
            {
                return;
            }

            patientMedicalNote.PatientConsultationId = patientMedicalNoteDto.PatientConsultationId;

            if (patientMedicalNoteDto.MedicalNote != null && patientMedicalNoteDto.MedicalNote.MedicalNoteId != null)
            {
                patientMedicalNote.MedicalNoteId = patientMedicalNoteDto.MedicalNote.MedicalNoteId.Value;
            }

            patientMedicalNote.Value = patientMedicalNoteDto.Value;
        }
        public PatientMedicalNoteDto MapToPatientMedicalNoteDto(PatientMedicalNote patientMedicalNote)
        {
            if (patientMedicalNote == null)
            {
                return(null);
            }

            PatientMedicalNoteDto patientMedicalNoteDto = new PatientMedicalNoteDto();

            patientMedicalNoteDto.PatientMedicalNoteId  = patientMedicalNote.PatientMedicalNoteId;
            patientMedicalNoteDto.PatientConsultationId = patientMedicalNote.PatientConsultationId;
            patientMedicalNoteDto.MedicalNote           = _MedicalNoteMapper.MapToMedicalNoteDto(patientMedicalNote.MedicalNote);
            patientMedicalNoteDto.Value = patientMedicalNote.Value;

            return(patientMedicalNoteDto);
        }
        public PatientMedicalNoteViewModel MapToPatientMedicalNoteViewModel(PatientMedicalNoteDto patientMedicalNoteDto)
        {
            if (patientMedicalNoteDto == null)
            {
                return(null);
            }

            PatientMedicalNoteViewModel patientMedicalNoteViewModel = new PatientMedicalNoteViewModel();

            patientMedicalNoteViewModel.PatientMedicalNoteId  = patientMedicalNoteDto.PatientMedicalNoteId;
            patientMedicalNoteViewModel.PatientConsultationId = patientMedicalNoteDto.PatientConsultationId;
            patientMedicalNoteViewModel.MedicalNote_Id        = patientMedicalNoteDto.MedicalNote.MedicalNoteId.Value;
            patientMedicalNoteViewModel.MedicalNote_Name      = patientMedicalNoteDto.MedicalNote.Name;
            patientMedicalNoteViewModel.MedicalNoteValue      = patientMedicalNoteDto.Value;

            return(patientMedicalNoteViewModel);
        }
        public PatientMedicalNoteDto MapToPatientMedicalNoteDto(PatientMedicalNoteViewModel patientMedicalNoteViewModel)
        {
            if (patientMedicalNoteViewModel == null)
            {
                return(null);
            }

            PatientMedicalNoteDto patientMedicalNoteDto = new PatientMedicalNoteDto();

            patientMedicalNoteDto.PatientMedicalNoteId  = patientMedicalNoteViewModel.PatientMedicalNoteId;
            patientMedicalNoteDto.PatientConsultationId = patientMedicalNoteViewModel.PatientConsultationId;
            patientMedicalNoteDto.MedicalNote           = new MedicalNoteDto()
            {
                MedicalNoteId = patientMedicalNoteViewModel.MedicalNote_Id,
                Name          = patientMedicalNoteViewModel.MedicalNote_Name
            };
            patientMedicalNoteDto.Value = patientMedicalNoteViewModel.MedicalNoteValue;

            return(patientMedicalNoteDto);
        }
        public Response <PatientMedicalNoteDto> SaveCheck(PatientMedicalNoteDto patientMedicalNoteDto)
        {
            Response <PatientMedicalNoteDto> response = new Response <PatientMedicalNoteDto>();

            if (patientMedicalNoteDto.PatientConsultationId == int.MinValue)
            {
                response.HasErrors = true;
                response.FieldErrors.Add(new FieldError()
                {
                    ErrorMessage = "Patient medical note must belong to an consultation."
                });
                return(response);
            }

            if (patientMedicalNoteDto.MedicalNote == null || patientMedicalNoteDto.MedicalNote.MedicalNoteId == null)
            {
                response.HasErrors = true;
                response.FieldErrors.Add(new FieldError()
                {
                    ErrorMessage = "The patient medical note has no medical note for it."
                });
                return(response);
            }

            using (UnitOfWork unitOfWork = new UnitOfWork())
            {
                if (patientMedicalNoteDto.PatientMedicalNoteId != null && unitOfWork.PatientMedicalNoteRepository.GetByID(item => item.PatientMedicalNoteId == patientMedicalNoteDto.PatientMedicalNoteId) == null)
                {
                    response.HasErrors = true;
                    response.FieldErrors.Add(new FieldError()
                    {
                        ErrorMessage = "The medical note you trying to edit does not exist."
                    });
                    return(response);
                }
            }

            return(response);
        }