Exemplo n.º 1
0
        public async Task <TreatmentDiseaseDto> Add(TreatmentDiseaseDto model)
        {
            var entity = _mapper.Map <TTreatment>(model);

            entity.Code = string.Empty;
            if (model.Diseases != null && model.Diseases.Any())
            {
                entity.TTreatmentDisease = new List <TTreatmentDisease>();
                foreach (var disease in model.Diseases)
                {
                    entity.TTreatmentDisease.Add(new TTreatmentDisease
                    {
                        PatientId       = entity.PatientId,
                        MedicalRecordId = entity.MedicalRecordId,
                        DiseaseId       = disease.Id,
                        CreatedBy       = model.CreatedBy,
                        CreatedTime     = model.CreatedTime,
                        UpdatedBy       = model.UpdatedBy,
                        UpdatedTime     = model.UpdatedTime,
                        IsActived       = true,
                    });
                }
            }
            _treatmentRepository.Add(entity);
            await _treatmentRepository.SaveChangeAsync();

            var maxId = await _treatmentRepository.Repo.MaxAsync(c => c.Id);

            entity.Code = $"DT-{(maxId + 1):D10}";
            await _treatmentRepository.SaveChangeAsync();

            model.Id = entity.Id;
            return(model);
        }
Exemplo n.º 2
0
        public async Task <bool> Update(TreatmentDiseaseDto model)
        {
            var entity = await _treatmentRepository.Repo
                         .Include(c => c.TTreatmentDisease)
                         .FirstOrDefaultAsync(c => c.Id == model.Id);

            entity.StartDate   = model.StartDate;
            entity.EndDate     = model.EndDate;
            entity.DoctorId    = model.DoctorId;
            entity.NurseId     = model.NurseId;
            entity.Title       = model.Title;
            entity.Content     = model.Content;
            entity.UpdatedBy   = model.UpdatedBy;
            entity.UpdatedTime = model.UpdatedTime;
            entity.Note        = model.Note;

            var insertedDiseases = model.Diseases.Where(c => !entity.TTreatmentDisease.Any(x => x.DiseaseId == c.Id));

            foreach (var newDisease in insertedDiseases)
            {
                entity.TTreatmentDisease.Add(new TTreatmentDisease
                {
                    PatientId       = entity.PatientId,
                    MedicalRecordId = entity.MedicalRecordId,
                    DiseaseId       = newDisease.Id,
                    CreatedTime     = entity.UpdatedTime,
                    CreatedBy       = entity.UpdatedBy,
                    UpdatedTime     = entity.UpdatedTime,
                    UpdatedBy       = entity.UpdatedBy,
                    IsActived       = true,
                    IsDeleted       = false
                });
            }

            var removedDiseases = entity.TTreatmentDisease.Where(c => !model.Diseases.Any(x => x.Id == c.DiseaseId));

            foreach (var removedDisease in removedDiseases)
            {
                removedDisease.UpdatedBy   = entity.UpdatedBy;
                removedDisease.UpdatedTime = entity.UpdatedTime;
                removedDisease.IsActived   = false;
            }

            var keepDiseases = entity.TTreatmentDisease.Where(c => model.Diseases.Any(x => x.Id == c.DiseaseId));

            foreach (var removedDisease in removedDiseases)
            {
                removedDisease.UpdatedBy   = entity.UpdatedBy;
                removedDisease.UpdatedTime = entity.UpdatedTime;
                removedDisease.IsActived   = true;
            }

            var recordUpdated = await _treatmentRepository.SaveChangeAsync();

            return(recordUpdated > 0);
        }
Exemplo n.º 3
0
        public async Task <bool> Put(TreatmentDiseaseDto model)
        {
            var result = false;

            if (ModelState.IsValid)
            {
                var dateTimeUtcNow = DateTime.Now;
                model.UpdatedBy   = _authenticationDto.UserId;
                model.UpdatedTime = dateTimeUtcNow;
                result            = await _treatmentBusiness.Update(model);
            }
            return(result);
        }
Exemplo n.º 4
0
        public async Task <int> Post(TreatmentDiseaseDto model)
        {
            var result = 0;

            if (ModelState.IsValid)
            {
                var dateTimeUtcNow = DateTime.Now;
                model.CreatedBy   = _authenticationDto.UserId;
                model.CreatedTime = dateTimeUtcNow;
                model.UpdatedBy   = _authenticationDto.UserId;
                model.UpdatedTime = dateTimeUtcNow;
                model.IsActived   = true;
                var modelInsert = await _treatmentBusiness.Add(model);

                result = modelInsert.Id;
            }
            return(result);
        }