public async Task <IActionResult> Post([FromBody] PatientEducationExaminationCommand serviceCommand) { var response = await _mediator.Send(serviceCommand, Request.HttpContext.RequestAborted); if (response.IsValid) { return(Ok(response.Value)); } return(BadRequest(response)); }
public async Task <Library.Result <PatientEducationExaminationResponse> > Handle(PatientEducationExaminationCommand request, CancellationToken cancellationToken) { using (_unitOfWork) { try { PatientEducationExaminationService _service = new PatientEducationExaminationService(_unitOfWork, _commonUnitOfWork); int patientEducationResultId = 0; var breastExamId = await _commonUnitOfWork.Repository <LookupItem>().Get(x => x.Name == "Breast Exam").Select(x => x.Id).FirstOrDefaultAsync(); var examinationTypeId = await _commonUnitOfWork.Repository <LookupItemView>().Get(x => x.MasterName == "GeneralExamination").Select(x => x.MasterId).FirstOrDefaultAsync(); Core.Models.PhysicalExamination breastExam = new Core.Models.PhysicalExamination() { PatientId = request.PatientId, PatientMasterVisitId = request.PatientMasterVisitId, ExamId = breastExamId, ExaminationTypeId = examinationTypeId, FindingId = request.BreastExamDone, CreateDate = DateTime.Now }; int breastExamResult = await _service.AddPatientPhysicalExamination(breastExam); if (request.TreatedSyphilis.HasValue) { var syphillisExamId = await _commonUnitOfWork.Repository <LookupItem>().Get(x => x.Name == "Treated Syphilis").Select(x => x.Id).FirstOrDefaultAsync(); Core.Models.PhysicalExamination syphillisExam = new Core.Models.PhysicalExamination() { PatientId = request.PatientId, PatientMasterVisitId = request.PatientMasterVisitId, ExamId = syphillisExamId, ExaminationTypeId = examinationTypeId, FindingId = request.TreatedSyphilis.Value, CreateDate = DateTime.Now }; int syphillisResultId = await _service.AddPatientPhysicalExamination(syphillisExam); } if (request.TestedForSyphilis.HasValue) { var syphillisExamId = await _commonUnitOfWork.Repository <LookupItem>().Get(x => x.Name == "Treated For Syphilis").Select(x => x.Id).FirstOrDefaultAsync(); Core.Models.PhysicalExamination syphillisExam = new Core.Models.PhysicalExamination() { PatientId = request.PatientId, PatientMasterVisitId = request.PatientMasterVisitId, ExamId = syphillisExamId, ExaminationTypeId = examinationTypeId, FindingId = request.TestedForSyphilis.Value, CreateDate = DateTime.Now }; int syphillisResultId = await _service.AddPatientPhysicalExamination(syphillisExam); } List <PatientEducation> patientCounselling = new List <PatientEducation>(); List <PatientEducation> patientEducationExists = _unitOfWork.Repository <PatientEducation>() .Get(x => x.PatientId == request.PatientId).ToList(); if (request.CounsellingTopics.Count > 0) { foreach (var item in request.CounsellingTopics) { if (item.CounsellingTopicId > 0) { bool itemExists = patientEducationExists.Exists(x => x.CounsellingTopicId == item.CounsellingTopicId && x.CounsellingDate == item.CounsellingDate); if (!itemExists) { PatientEducation data = new PatientEducation { PatientId = request.PatientId, PatientMasterVisitId = request.PatientMasterVisitId, CounsellingTopicId = item.CounsellingTopicId, CounsellingDate = item.CounsellingDate, Description = item.Description, CreateDate = DateTime.Now, CreatedBy = request.CreatedBy }; patientCounselling.Add(data); } } } patientEducationResultId = await _service.AddPatientEducation(patientCounselling); } if (breastExamResult > 0 & patientEducationResultId > 0) { result = 1; } return(Library.Result <PatientEducationExaminationResponse> .Valid(new PatientEducationExaminationResponse() { resultId = 0 })); } catch (Exception e) { Log.Error(e.Message); return(Library.Result <PatientEducationExaminationResponse> .Invalid(e.Message)); } } }