修改医生既往阅片情况声明

This commit is contained in:
2023-01-31 09:35:52 +08:00
parent e18b890f96
commit 79d4c6a116
21 changed files with 242 additions and 117 deletions
@@ -340,11 +340,11 @@ namespace IRaCIS.Application.Contracts
public Guid Id { get; set; }
public Guid? TrialReadingCriterionId { get; set; }
/// <summary>
/// 文件名称
/// </summary>
public string FileName { get; set; }
public string FileName { get; set; }
/// <summary>
/// 文件路径
@@ -50,53 +50,63 @@ namespace IRaCIS.Application.Services
}
#region \
/// <summary>
/// 保存协议- ack Sow [AUTH]
/// </summary>
[HttpPost("{trialId}")]
[TypeFilter(typeof(TrialResourceFilter),Arguments = new object[] { "AfterStopCannNotOpt" })]
[Authorize(Policy = IRaCISPolicy.PM_APM)]
public async Task<IResponseOutput> UploadReviewerAckSOW(Guid trialId,
ReviewerAckDTO attachmentViewModel)
{
var intoGroupItem = (await _enrollRepository.Where(t => t.TrialId == trialId && t.DoctorId == attachmentViewModel.DoctorId).FirstOrDefaultAsync()).IfNullThrowException();
if (attachmentViewModel.Id != Guid.Empty)
{
await _attachmentRepository.BatchDeleteNoTrackingAsync(t => t.Id == attachmentViewModel.Id);
}
#region
///// <summary>
///// 保存协议- ack Sow [AUTH]
///// </summary>
//[HttpPost("{trialId}")]
var attachment = await _attachmentRepository.InsertFromDTOAsync(attachmentViewModel);
//[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
//[Authorize(Policy = IRaCISPolicy.PM_APM)]
//public async Task<IResponseOutput> UploadReviewerAckSOW(Guid trialId,
// ReviewerAckDTO attachmentViewModel)
//{
//intoGroupItem.AttachmentId = attachment.Id;
await _enrollRepository.UpdatePartialFromQueryAsync(intoGroupItem.Id, u => new Enroll() { AttachmentId = attachment.Id });
// var intoGroupItem = (await _enrollRepository.Where(t => t.TrialId == trialId && t.DoctorId == attachmentViewModel.DoctorId).FirstOrDefaultAsync()).IfNullThrowException();
var success = await _enrollRepository.SaveChangesAsync();
// if (attachmentViewModel.Id != Guid.Empty)
// {
// await _attachmentRepository.BatchDeleteNoTrackingAsync(t => t.Id == attachmentViewModel.Id);
// }
// var attachment = await _attachmentRepository.InsertFromDTOAsync(attachmentViewModel);
// //intoGroupItem.AttachmentId = attachment.Id;
// await _enrollRepository.UpdatePartialFromQueryAsync(intoGroupItem.Id, u => new Enroll() { AttachmentId = attachment.Id });
// var success = await _enrollRepository.SaveChangesAsync();
// return ResponseOutput.Result(success, attachment.Id.ToString());
//}
///// <summary>
///// 删除协议
///// </summary>
//[HttpDelete, Route("{trialId}/{doctorId}/{attachmentId}")]
//[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
//[Authorize(Policy = IRaCISPolicy.PM_APM)]
//public async Task<IResponseOutput> DeleteReviewerAckSOW(Guid trialId, Guid doctorId, Guid attachmentId)
//{
// var success1 = await _attachmentRepository.BatchDeleteNoTrackingAsync(a => a.Id == attachmentId);
// await _enrollRepository.UpdatePartialFromQueryAsync(t => t.TrialId == trialId && t.DoctorId == doctorId, u =>
// new Enroll()
// {
// AttachmentId = Guid.Empty
// }, true);
// return ResponseOutput.Ok(success1);
//}
#endregion
return ResponseOutput.Result(success, attachment.Id.ToString());
}
/// <summary>
/// 删除协议
/// </summary>
[HttpDelete, Route("{trialId}/{doctorId}/{attachmentId}")]
[TypeFilter(typeof(TrialResourceFilter),Arguments = new object[] { "AfterStopCannNotOpt" })]
[Authorize(Policy = IRaCISPolicy.PM_APM)]
public async Task<IResponseOutput> DeleteReviewerAckSOW(Guid trialId, Guid doctorId, Guid attachmentId)
{
var success1 = await _attachmentRepository.BatchDeleteNoTrackingAsync(a => a.Id == attachmentId);
await _enrollRepository.UpdatePartialFromQueryAsync(t => t.TrialId == trialId && t.DoctorId == doctorId, u =>
new Enroll()
{
AttachmentId = Guid.Empty
}, true);
return ResponseOutput.Ok(success1);
}
/// <summary>
/// 修改项目医生的阅片类型
@@ -207,22 +217,30 @@ namespace IRaCIS.Application.Services
IsEnable = allocateRule.IsEnable,
TrialReadingCriterionList = intoGroup.Trial.ReadingQuestionCriterionTrialList.Where(t=>t.IsConfirm).Select(t=>new TrialReadingCriterionDto() { TrialReadingCriterionId=t.Id,TrialReadingCriterionName=t.CriterionName,CriterionType=t.CriterionType,IsOncologyReading=t.IsOncologyReading,IsArbitrationReading=t.IsArbitrationReading,IsGlobalReading=t.IsGlobalReading,ReadingInfoSignTime=t.ReadingInfoSignTime,ReadingType=t.ReadingType}).ToList(),
CriterionFileList= doctor.CriterionFileList.Where(x=>x.IsEnable).Select(x=> new CriterionFile() {
CriterionType=x.CriterionType,
DoctorId=x.DoctorId,
FileName=x.FileName,
FilePath=x.FilePath,
FileType=x.FileType,
Remark=x.Remark,
Id=x.Id
}).ToList(),
CriterionReadingCategoryList =intoGroup.EnrollReadingCategoryList.Select(t=>new TrialCriterionReadingCategory() { EnrollId=t.EnrollId,ReadingCategory=t.ReadingCategory, TrialReadingCriterionId = t.TrialReadingCriterionId }).ToList(),
ReadingTaskStateList=doctor.User.VisitTaskList.Where(x=>x.TaskState==TaskState.Effect&&x.TrialId== trialId).Select(x=> new DoctorUserTask() {
ReadingTaskState= x.ReadingTaskState,
CriterionType=x.TrialReadingCriterion.CriterionType,
CriterionFileList = doctor.CriterionFileList.Where(x => x.IsEnable && (x.TrialId==null ||x.TrialId==trialId)).Select(x => new CriterionFile()
{
CriterionType = x.CriterionType,
DoctorId = x.DoctorId,
FileName = x.FileName,
FilePath = x.FilePath,
FileType = x.FileType,
Remark = x.Remark,
TrialReadingCriterionId=x.TrialReadingCriterionId,
Id = x.Id
}).ToList(),
ReadingTaskStateList = doctor.User.VisitTaskList.Where(x => x.TaskState == TaskState.Effect && x.TrialId == trialId).Select(x => new DoctorUserTask()
{
ReadingTaskState = x.ReadingTaskState,
CriterionType = x.TrialReadingCriterion.CriterionType,
}).ToList(),
DoctorId = doctor.Id,
Code = doctor.ReviewerCode,
FirstName = doctor.FirstName,
@@ -5,14 +5,14 @@ namespace IRaCIS.Application.Services
public interface IDoctorWorkloadService
{
Task<IResponseOutput> AddOrUpdateWorkload(WorkloadCommand workLoadAddOrUpdateModel, Guid userId);
Task<IResponseOutput> DeleteReviewerAckSOW(Guid trialId, Guid doctorId, Guid attachmentId);
//Task<IResponseOutput> DeleteReviewerAckSOW(Guid trialId, Guid doctorId, Guid attachmentId);
Task<IResponseOutput> DeleteWorkload(Guid workloadId);
PageOutput<WorkLoadDetailDTO> GetEnrollmentWorkloadStatsDetail(WorkLoadStatsQueryDTO workLoadSearch);
Task<List<WorkLoadDetailViewModel>> GetReviewerWorkLoadListDetail(WorkLoadDetailQueryDTO workLoadSearch);
Task<PageOutput<WorkLoadAndAgreementDTO>> GetTrialEnrollmentWorkloadStats(WorkLoadDoctorQueryDTO doctorSearchModel);
Task<WorkloadDTO> GetWorkloadDetailById(Guid id);
Task<IResponseOutput> UpdateReviewerReadingType(Guid trialId, Guid doctorId, int type);
Task<IResponseOutput> UploadReviewerAckSOW(Guid trialId, ReviewerAckDTO attachmentViewModel);
//Task<IResponseOutput> UploadReviewerAckSOW(Guid trialId, ReviewerAckDTO attachmentViewModel);
Task<IResponseOutput<ExistWorkloadViewModel>> WorkloadExist(WorkloadExistQueryDTO param);
}
}