@@ -88,6 +88,7 @@ namespace IRaCIS.Core.Application.Service
|
||||
OtherClinicalExperienceCN = systemInfoDcotor.OtherClinicalExperienceCN,
|
||||
};
|
||||
|
||||
#region 概述
|
||||
///没有就加
|
||||
var summarizeCount = await _doctorSummarizeRepository.Where(x => x.DoctorId == inDto.DoctorId && x.TrialId == inDto.TrialId).CountAsync();
|
||||
if (summarizeCount == 0)
|
||||
@@ -95,17 +96,48 @@ namespace IRaCIS.Core.Application.Service
|
||||
var main = await _doctorSummarizeRepository.Where(x => x.DoctorId == inDto.DoctorId && x.IsMain && x.TrialId == null).ProjectTo<SummarizeInfoDto>(_mapper.ConfigurationProvider).FirstOrDefaultAsync();
|
||||
if (main != null)
|
||||
{
|
||||
main.Id=null;
|
||||
main.Id = null;
|
||||
main.TrialId = inDto.TrialId;
|
||||
main.IsMain = false;
|
||||
var entity = await _doctorSummarizeRepository.InsertOrUpdateAsync(main, true);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
doctorInfo = await _doctorRepository.AddAsync(doctor, true);
|
||||
#endregion
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#region 临床试验
|
||||
|
||||
var trialExperienceList = await _trialExperienceRepository.Where(o => o.DoctorId == inDto.DoctorId)
|
||||
.Where(x => x.ExperienceDataType == ExperienceDataType.System || x.ExperienceDataType == ExperienceDataType.SystemAuto).Include(x => x.ExperienceCriteriaList).ToListAsync();
|
||||
List<TrialExperienceCriteria> criteriaList = new List<TrialExperienceCriteria>();
|
||||
foreach (var item in trialExperienceList)
|
||||
{
|
||||
item.Trial = null;
|
||||
item.TrialId = inDto.TrialId;
|
||||
item.ExperienceDataType = ExperienceDataType.Trial;
|
||||
item.Id = NewId.NextGuid();
|
||||
item.ExperienceCriteriaList.ForEach(x => {
|
||||
|
||||
criteriaList.Add(new TrialExperienceCriteria()
|
||||
{
|
||||
DoctorId = item.DoctorId,
|
||||
EvaluationCriteriaId = x.EvaluationCriteriaId,
|
||||
TrialExperienceId = item.Id
|
||||
});
|
||||
});
|
||||
item.ExperienceCriteriaList = new List<TrialExperienceCriteria>();
|
||||
}
|
||||
await _trialExperienceCriteriaRepository.AddRangeAsync(criteriaList);
|
||||
await _trialExperienceRepository.AddRangeAsync(trialExperienceList);
|
||||
await _trialExperienceRepository.SaveChangesAsync();
|
||||
#endregion
|
||||
|
||||
}
|
||||
|
||||
return doctorInfo;
|
||||
@@ -130,41 +162,6 @@ namespace IRaCIS.Core.Application.Service
|
||||
DoctorId = inDto.DoctorId,
|
||||
TrialId = inDto.TrialId.Value,
|
||||
});
|
||||
// 当前项目没有则复制
|
||||
if (!(await _trialExperienceRepository.AnyAsync(x => x.TrialId == inDto.TrialId&&x.DoctorId==inDto.DoctorId &&x.ExperienceDataType== ExperienceDataType.Trial))
|
||||
&&(await _doctorRepository.AnyAsync(x => x.TrialId == inDto.TrialId && x.IsAddTrialExperienceToTrial==false && x.DoctorId == inDto.DoctorId))
|
||||
)
|
||||
{
|
||||
var trialExperienceList = await _trialExperienceRepository.Where(o => o.DoctorId == inDto.DoctorId)
|
||||
.Where(x => x.ExperienceDataType == ExperienceDataType.System || x.ExperienceDataType == ExperienceDataType.SystemAuto).Include(x=>x.ExperienceCriteriaList).ToListAsync();
|
||||
List<TrialExperienceCriteria> criteriaList = new List<TrialExperienceCriteria>();
|
||||
foreach (var item in trialExperienceList)
|
||||
{
|
||||
item.Trial = null;
|
||||
item.TrialId = inDto.TrialId;
|
||||
item.ExperienceDataType = ExperienceDataType.Trial;
|
||||
item.Id = NewId.NextGuid();
|
||||
item.ExperienceCriteriaList.ForEach(x => {
|
||||
|
||||
criteriaList.Add(new TrialExperienceCriteria()
|
||||
{
|
||||
DoctorId = item.DoctorId,
|
||||
EvaluationCriteriaId = x.EvaluationCriteriaId,
|
||||
TrialExperienceId = item.Id
|
||||
});
|
||||
});
|
||||
item.ExperienceCriteriaList = new List<TrialExperienceCriteria>();
|
||||
}
|
||||
await _trialExperienceCriteriaRepository.AddRangeAsync(criteriaList);
|
||||
await _trialExperienceRepository.AddRangeAsync(trialExperienceList);
|
||||
await _doctorRepository.BatchUpdateNoTrackingAsync(x => x.DoctorId == inDto.DoctorId && x.TrialId == inDto.TrialId, x => new Doctor()
|
||||
{
|
||||
IsAddTrialExperienceToTrial=true
|
||||
|
||||
});
|
||||
await _trialExperienceRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
var doctorClinicalTrialExperienceList = await _trialExperienceRepository
|
||||
.Where(o => o.DoctorId == inDto.DoctorId)
|
||||
.Where(x => x.ExperienceDataType == ExperienceDataType.Trial|| x.ExperienceDataType == ExperienceDataType.TrialAuto)
|
||||
|
||||
Reference in New Issue
Block a user