Merge branch 'master' of http://192.168.1.2:8033/IRaCIS_Core_Api
commit
638de8c386
|
@ -400,6 +400,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
public Guid QuestionId { get; set; }
|
||||
|
||||
public Guid RowId { get; set; }
|
||||
|
||||
public bool IsNeedSort { get; set; } = true;
|
||||
}
|
||||
|
||||
public class GetDicomReadingQuestionAnswerInDto
|
||||
|
@ -1329,6 +1331,13 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
|
|||
|
||||
public Guid TrialReadingCriterionId { get; set; }
|
||||
|
||||
public bool IsFirstChangeTask { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// 是否是转变的任务(转为IRECIST)
|
||||
/// </summary>
|
||||
public bool IsConvertedTask { get; set; } = false;
|
||||
|
||||
}
|
||||
|
||||
public class GetReadingImgInDto
|
||||
|
|
|
@ -1402,96 +1402,100 @@ namespace IRaCIS.Application.Services
|
|||
await _readingTableAnswerRowInfoRepository.SaveChangesAsync();
|
||||
|
||||
|
||||
var rowInfoList = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.QuestionId == inDto.QuestionId, true).Include(x => x.ReadingQuestionTrial).OrderBy(x => x.RowIndex).ToListAsync();
|
||||
|
||||
var answerlist = await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.QuestionId == inDto.QuestionId, true).ToListAsync();
|
||||
|
||||
|
||||
|
||||
foreach (var item in rowInfoList.Where(x => x.RowIndex % 1 == 0))
|
||||
if (inDto.IsNeedSort)
|
||||
{
|
||||
string measureDataStr = string.Empty;
|
||||
if (item.MeasureData != null && item.MeasureData != string.Empty)
|
||||
var rowInfoList = await _readingTableAnswerRowInfoRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.QuestionId == inDto.QuestionId, true).Include(x => x.ReadingQuestionTrial).OrderBy(x => x.RowIndex).ToListAsync();
|
||||
|
||||
var answerlist = await _readingTableQuestionAnswerRepository.Where(x => x.VisitTaskId == inDto.VisitTaskId && x.QuestionId == inDto.QuestionId, true).ToListAsync();
|
||||
|
||||
|
||||
|
||||
foreach (var item in rowInfoList.Where(x => x.RowIndex % 1 == 0))
|
||||
{
|
||||
dynamic measureData = JObject.Parse(item.MeasureData);
|
||||
measureData.data.remark = item.ReadingQuestionTrial.OrderMark + ((decimal)index).GetLesionMark();
|
||||
measureDataStr = JsonConvert.SerializeObject(measureData);
|
||||
}
|
||||
|
||||
|
||||
|
||||
foreach (var answerItem in answerlist.Where(x => x.RowIndex == item.RowIndex))
|
||||
{
|
||||
|
||||
answerItem.RowIndex = index;
|
||||
|
||||
}
|
||||
|
||||
|
||||
foreach (var rowAnswerItem in rowInfoList.Where(x => x.RowIndex == item.RowIndex))
|
||||
{
|
||||
|
||||
rowAnswerItem.RowIndex = index;
|
||||
rowAnswerItem.MeasureData = measureDataStr;
|
||||
|
||||
}
|
||||
|
||||
//await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == item.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableQuestionAnswer()
|
||||
//{
|
||||
// RowIndex = index
|
||||
//});
|
||||
|
||||
//await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == item.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableAnswerRowInfo()
|
||||
//{
|
||||
// RowIndex = index,
|
||||
// MeasureData = measureDataStr,
|
||||
//});
|
||||
var spiltList = rowInfoList.Where(x => x.RowIndex % 1 != 0 && x.RowIndex > item.RowIndex && x.RowIndex < Math.Floor(item.RowIndex + 1)).OrderBy(x => x.RowIndex).ToList();
|
||||
decimal spiltindex = 0.01M;
|
||||
foreach (var spiltitem in spiltList)
|
||||
{
|
||||
string spiltmeasureDataStr = string.Empty;
|
||||
if (spiltitem.MeasureData != null && spiltitem.MeasureData != string.Empty)
|
||||
string measureDataStr = string.Empty;
|
||||
if (item.MeasureData != null && item.MeasureData != string.Empty)
|
||||
{
|
||||
dynamic spiltmeasureData = JObject.Parse(spiltitem.MeasureData);
|
||||
spiltmeasureData.data.remark = item.ReadingQuestionTrial.OrderMark + ((decimal)index + spiltindex).GetLesionMark();
|
||||
spiltmeasureDataStr = JsonConvert.SerializeObject(spiltmeasureData);
|
||||
dynamic measureData = JObject.Parse(item.MeasureData);
|
||||
measureData.data.remark = item.ReadingQuestionTrial.OrderMark + ((decimal)index).GetLesionMark();
|
||||
measureDataStr = JsonConvert.SerializeObject(measureData);
|
||||
}
|
||||
|
||||
|
||||
foreach (var answerItem in answerlist.Where(x => x.RowIndex == spiltitem.RowIndex))
|
||||
|
||||
foreach (var answerItem in answerlist.Where(x => x.RowIndex == item.RowIndex))
|
||||
{
|
||||
answerItem.RowIndex = index + spiltindex;
|
||||
|
||||
answerItem.RowIndex = index;
|
||||
|
||||
}
|
||||
|
||||
|
||||
foreach (var rowAnswerItem in rowInfoList.Where(x => x.RowIndex == spiltitem.RowIndex))
|
||||
foreach (var rowAnswerItem in rowInfoList.Where(x => x.RowIndex == item.RowIndex))
|
||||
{
|
||||
|
||||
rowAnswerItem.RowIndex = index + spiltindex;
|
||||
rowAnswerItem.MeasureData = spiltmeasureDataStr;
|
||||
|
||||
rowAnswerItem.RowIndex = index;
|
||||
rowAnswerItem.MeasureData = measureDataStr;
|
||||
|
||||
}
|
||||
|
||||
|
||||
//await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == spiltitem.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableQuestionAnswer()
|
||||
//await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == item.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableQuestionAnswer()
|
||||
//{
|
||||
// RowIndex = index + spiltindex
|
||||
//});
|
||||
//await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == spiltitem.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableAnswerRowInfo()
|
||||
//{
|
||||
// RowIndex = index + spiltindex,
|
||||
// MeasureData = spiltmeasureDataStr,
|
||||
// RowIndex = index
|
||||
//});
|
||||
|
||||
spiltindex += 0.01M;
|
||||
//await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == item.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableAnswerRowInfo()
|
||||
//{
|
||||
// RowIndex = index,
|
||||
// MeasureData = measureDataStr,
|
||||
//});
|
||||
var spiltList = rowInfoList.Where(x => x.RowIndex % 1 != 0 && x.RowIndex > item.RowIndex && x.RowIndex < Math.Floor(item.RowIndex + 1)).OrderBy(x => x.RowIndex).ToList();
|
||||
decimal spiltindex = 0.01M;
|
||||
foreach (var spiltitem in spiltList)
|
||||
{
|
||||
string spiltmeasureDataStr = string.Empty;
|
||||
if (spiltitem.MeasureData != null && spiltitem.MeasureData != string.Empty)
|
||||
{
|
||||
dynamic spiltmeasureData = JObject.Parse(spiltitem.MeasureData);
|
||||
spiltmeasureData.data.remark = item.ReadingQuestionTrial.OrderMark + ((decimal)index + spiltindex).GetLesionMark();
|
||||
spiltmeasureDataStr = JsonConvert.SerializeObject(spiltmeasureData);
|
||||
}
|
||||
|
||||
|
||||
foreach (var answerItem in answerlist.Where(x => x.RowIndex == spiltitem.RowIndex))
|
||||
{
|
||||
answerItem.RowIndex = index + spiltindex;
|
||||
|
||||
}
|
||||
|
||||
|
||||
foreach (var rowAnswerItem in rowInfoList.Where(x => x.RowIndex == spiltitem.RowIndex))
|
||||
{
|
||||
|
||||
rowAnswerItem.RowIndex = index + spiltindex;
|
||||
rowAnswerItem.MeasureData = spiltmeasureDataStr;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
//await _readingTableQuestionAnswerRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == spiltitem.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableQuestionAnswer()
|
||||
//{
|
||||
// RowIndex = index + spiltindex
|
||||
//});
|
||||
//await _readingTableAnswerRowInfoRepository.UpdatePartialFromQueryAsync(x => x.VisitTaskId == inDto.VisitTaskId && x.RowIndex == spiltitem.RowIndex && x.QuestionId == inDto.QuestionId, x => new ReadingTableAnswerRowInfo()
|
||||
//{
|
||||
// RowIndex = index + spiltindex,
|
||||
// MeasureData = spiltmeasureDataStr,
|
||||
//});
|
||||
|
||||
spiltindex += 0.01M;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
index++;
|
||||
|
||||
await _readingTableAnswerRowInfoRepository.SaveChangesAsync();
|
||||
}
|
||||
|
||||
await _readingTableAnswerRowInfoRepository.SaveChangesAsync();
|
||||
|
||||
// 自动计算
|
||||
await this._readingCalculateService.CalculateTask(new CalculateTaskInDto()
|
||||
{
|
||||
|
@ -2270,7 +2274,8 @@ namespace IRaCIS.Application.Services
|
|||
task.DigitPlaces = criterionInfo.DigitPlaces;
|
||||
task.CriterionType = criterionInfo.CriterionType;
|
||||
task.IseCRFShowInDicomReading = criterionInfo.IseCRFShowInDicomReading;
|
||||
|
||||
task.IsFirstChangeTask = visitTaskInfo.IsConvertedTask && visitTaskInfo.BeforeConvertedTaskId != null;
|
||||
task.IsConvertedTask = visitTaskInfo.IsConvertedTask;
|
||||
var blindSubjectCode = await _visitTaskRepository.Where(x => x.Id == task.VisitTaskId).Select(x => x.BlindSubjectCode).FirstNotNullAsync();
|
||||
task.SubjectCode = blindSubjectCode.IsNullOrEmpty() ? task.SubjectCode : blindSubjectCode;
|
||||
return task;
|
||||
|
|
Loading…
Reference in New Issue