示例#1
0
        public IActionResult UpdatePatient(Guid Id, [FromBody] PatientRequestDto patientRequest)
        {
            var patient = _patientRepository.GetPatientById(Id);

            if (patient == null)
            {
                return(NotFound("No such patient exists"));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid JSON"));
            }

            patient.First_Name    = patientRequest.First_Name;
            patient.Last_Name     = patientRequest.Last_Name;
            patient.Gender        = patientRequest.Gender;
            patient.Date_Of_Birth = patientRequest.Date_Of_Birth;
            patient.Email         = patientRequest.Email;
            patient.Phone         = patientRequest.Phone;
            patient.Is_Active     = patientRequest.Is_Active;
            patient.Updated_At    = DateTime.UtcNow;

            _patientRepository.UpdatePatient(Id, patient);

            return(Ok(patient));
        }
示例#2
0
        public async Task <IActionResult> AddPatient([FromBody] PatientRequestDto patientRequestDto)
        {
            if (String.IsNullOrEmpty(patientRequestDto.StudyRequests[0].EstimatedEndTime))
            {
                patientRequestDto.StudyRequests[0].EstimatedEndTime = null;
            }
            var resultModel = new ServiceResultModel <Patient> {
                IsSuccess = false, Errors = new List <string>()
            };
            var patientExsists = _patientRepository.Any(p => p.PatientName == patientRequestDto.PatientName);

            if (patientExsists)
            {
                return(BadRequest("Patient already exsits"));
            }


            var newPatient = _patientRepository.Add(new Patient
            {
                PatientName  = patientRequestDto.PatientName,
                DOB          = patientRequestDto.DOB,
                PatientSexId = patientRequestDto.PatientSex,
                RoomId       = (int)patientRequestDto.RoomNameId,
            });


            var saved = (newPatient != null) ? await _unitOfWork.CommitAsync() : 0;

            var newDoctorPatient = _doctorPatientRepository.Add(new DoctorPatient {
                DoctorId = patientRequestDto.DoctorRequests[0].DoctorId, PatientId = newPatient.PatientId
            });
            var doctorPatientSaved = (newDoctorPatient != null) ? await _unitOfWork.CommitAsync() : 0;

            var newStudy = _studyRepository.Add(new Study {
                PatientId = newPatient.PatientId, StudyStatusId = patientRequestDto.StudyRequests[0].StudyStatusId, DoctorId = patientRequestDto.DoctorRequests[0].DoctorId, PlannedStartTime = DateTime.Now.ToShortDateString(), EstimatedEndTime = patientRequestDto.StudyRequests[0].EstimatedEndTime, Descriptions = patientRequestDto.StudyRequests[0].Descriptions
            });
            var savedStudy = (newStudy != null) ? await _unitOfWork.CommitAsync() : 0;

            var resultPatient = _patientRepository.GetById(newPatient.PatientId);

            if (saved > 0 && doctorPatientSaved > 0 && savedStudy > 0)
            {
                resultModel.IsSuccess = true;
                resultModel.Data      = resultPatient;
                return(Ok(resultModel));
            }

            return(Ok("No Patient Details found"));
        }
示例#3
0
        public IActionResult AddPatient([FromBody] PatientRequestDto patientRequest)
        {
            try
            {
                if (patientRequest == null)
                {
                    return(BadRequest("Invalid JSON"));
                }

                if (!ModelState.IsValid)
                {
                    return(BadRequest("Invalid JSON"));
                }

                var patient = new Patient()
                {
                    Id            = Guid.NewGuid(),
                    First_Name    = patientRequest.First_Name,
                    Last_Name     = patientRequest.Last_Name,
                    Gender        = patientRequest.Gender,
                    Date_Of_Birth = patientRequest.Date_Of_Birth,
                    Email         = patientRequest.Email,
                    Phone         = patientRequest.Phone,
                    Is_Active     = patientRequest.Is_Active,
                    Created_At    = DateTime.UtcNow,
                    Updated_At    = DateTime.UtcNow
                };

                var isPatientAdded = _patientRepository.AddPatient(patient);
                if (isPatientAdded)
                {
                    return(Created("", patient));
                }
                else
                {
                    return(StatusCode(500, "Unexpected error happened. Please try after sometime"));
                }
            }
            catch (Exception)
            {
                return(StatusCode(500, "Unexpected error happened. Please try after sometime"));
            }
        }
示例#4
0
        public async Task <IActionResult> UpdatePatient([FromBody] PatientRequestDto patientRequestDto)
        {
            if (String.IsNullOrEmpty(patientRequestDto.StudyRequests[0].EstimatedEndTime))
            {
                patientRequestDto.StudyRequests[0].EstimatedEndTime = null;
            }

            var patientDetails = await _patientRepository.FirstOrDefaultWithIncludeAsync(p => p.PatientId == patientRequestDto.PatientId,
                                                                                         pt => pt.Include(p => p.DoctorPatients).Include(p => p.Room).Include(p => p.Studies).ThenInclude(x => x.Doctor));


            if (patientDetails == null)
            {
                return(BadRequest("UserDetails does not exsists"));
            }

            var studyDetails = await _studyRepository.FirstOrDefaultWithIncludeAsync(s => s.PatientId == patientDetails.PatientId);

            studyDetails.StudyStatusId     = patientRequestDto.StudyRequests[0].StudyStatusId;
            studyDetails.Descriptions      = patientRequestDto.StudyRequests[0].Descriptions;
            studyDetails.EstimatedEndTime  = patientRequestDto.StudyRequests[0].EstimatedEndTime;
            patientDetails.PatientName     = patientRequestDto.PatientName;
            patientDetails.PatientSexId    = patientRequestDto.PatientSex;
            patientDetails.Room.RoomTypeId = patientRequestDto.RoomNameId;

            var doctorPatientDetails = _doctorPatientRepository.FirstOrDefault(d => d.PatientId == patientDetails.PatientId);

            doctorPatientDetails.DoctorId = patientRequestDto.DoctorRequests[0].DoctorId;

            _doctorPatientRepository.Edit(doctorPatientDetails);
            _studyRepository.Edit(studyDetails);
            _patientRepository.Edit(patientDetails);
            var saved = await _unitOfWork.CommitAsync();

            if (saved > 0)
            {
                return(Ok("Successfully Modified "));
            }

            return(BadRequest("Could not modify "));
        }