Пример #1
0
        /// <summary>
        /// 新增患教
        /// </summary>
        /// <param name="entity">患教实体</param>
        /// <returns>患教Id</returns>
        public void Add(AddCourseInput addCourseInput, long patientId, long doctorId, string batchNumber)
        {
            var id = _idGenerator.CreateId();

            var entity = new PatientEducation
            {
                Id                     = id,
                BatchNumber            = batchNumber,
                DoctorId               = doctorId,
                PatientId              = patientId,
                CourseTypeId           = addCourseInput.CourseTypeId,
                AddTime                = DateTime.Now,
                PatientEducationDetail = new List <PatientEducationDetail>()
            };

            foreach (var item in addCourseInput.CourseIds)
            {
                entity.PatientEducationDetail.Add(new PatientEducationDetail
                {
                    CourseId           = item,
                    PatientEducationId = id,
                    Id      = _idGenerator.CreateId(),
                    AddTime = DateTime.Now
                });
            }
            _context.PatientEducation.Add(entity);
        }
Пример #2
0
        public async Task <PatientEducation> AddPatientEducation(PatientEducation patientEducation)
        {
            try
            {
                await _unitOfWork.Repository <PatientEducation>().AddAsync(patientEducation);

                await _unitOfWork.SaveAsync();

                return(patientEducation);
            }
            catch (Exception e)
            {
                Log.Error(e.Message);
                throw e;
            }
        }
Пример #3
0
        public async Task <PatientEducation> EditPatientEducation(PatientEducation patientEducation)
        {
            try
            {
                PatientEducation _patientEducation = _unitOfWork.Repository <PatientEducation>().FindById(patientEducation.Id);
                _patientEducation.CounsellingDate    = patientEducation.CounsellingDate;
                _patientEducation.CounsellingTopicId = patientEducation.CounsellingTopicId;

                _unitOfWork.Repository <PatientEducation>().Update(patientEducation);
                await _unitOfWork.SaveAsync();

                return(patientEducation);
            }
            catch (Exception e)
            {
                Log.Error(e.Message);
                throw e;
            }
        }
        public async Task <Result <AddPatientEducationCommandResult> > Handle(AddPatientEducationCommand request, CancellationToken cancellationToken)
        {
            using (_unitOfWork)
            {
                try
                {
                    PatientEducation patientEducation = new PatientEducation(request.PatientId, request.PatientMasterVisitId, request.CounsellingTopicId, request.CounsellingDate, request.IsCounsellingDone, request.CreatedBy);

                    await _unitOfWork.Repository <PatientEducation>().AddAsync(patientEducation);

                    await _unitOfWork.SaveAsync();

                    return(Result <AddPatientEducationCommandResult> .Valid(new AddPatientEducationCommandResult()
                    {
                        PatientCounsellingId = patientEducation.Id
                    }));
                }
                catch (Exception e)
                {
                    Log.Error(e.Message);
                    return(Result <AddPatientEducationCommandResult> .Invalid(e.Message));
                }
            }
        }
Пример #5
0
        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));
                }
            }
        }