复核的时候允许直接关闭质疑,项目增加质控自动任务配置
continuous-integration/drone/push Build is passing Details

Uat_IRC_Net8
hang 2025-07-24 15:16:26 +08:00
parent 668f93d0ac
commit 582ea4c5ab
6 changed files with 19943 additions and 4 deletions

View File

@ -146,11 +146,17 @@ namespace IRaCIS.Core.Application.Image.QA
var dbQCChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == input.qcChallengeId)).IfNullThrowException(); var dbQCChallenge = (await _qcChallengeRepository.FirstOrDefaultAsync(t => t.Id == input.qcChallengeId)).IfNullThrowException();
//复核的时候允许关闭
if (dbQCChallenge.ReuploadEnum == QCChanllengeReuploadEnum.CRCRequestReupload || dbQCChallenge.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload) if (!_subjectVisitRepository.Any(t => t.Id == input.subjectVisitId && t.SecondReviewState == SecondReviewState.WaitAudit))
{ {
//---CRC已申请重传或者QC同意重传不允许关闭该质疑。请在QC拒绝重传申请或者CRC设置重传影像后再关闭质疑。
throw new BusinessValidationFailedException(_localizer["QCOperation_QuestionCannotClose"]); if (dbQCChallenge.ReuploadEnum == QCChanllengeReuploadEnum.CRCRequestReupload || dbQCChallenge.ReuploadEnum == QCChanllengeReuploadEnum.QCAgreeUpload)
{
//---CRC已申请重传或者QC同意重传不允许关闭该质疑。请在QC拒绝重传申请或者CRC设置重传影像后再关闭质疑。
throw new BusinessValidationFailedException(_localizer["QCOperation_QuestionCannotClose"]);
}
} }

View File

@ -80,7 +80,9 @@ namespace IRaCIS.Core.Application.Contracts
public List<StudyName> StudyNameList { get; set; } public List<StudyName> StudyNameList { get; set; }
public bool IsIQCAutoNextTask { get; set; }
public bool IsIQCAutoTaskDistinguishType { get; set; }
public List<TrialObjectNameConfig> TrialObjectNameList { get; set; } public List<TrialObjectNameConfig> TrialObjectNameList { get; set; }
@ -1120,6 +1122,9 @@ namespace IRaCIS.Core.Application.Contracts
public List<string> StudyUseStudyNameList { get; set; } public List<string> StudyUseStudyNameList { get; set; }
public bool IsIQCAutoNextTask { get; set; }
public bool IsIQCAutoTaskDistinguishType { get; set; }
//public bool IsTrialStart { get; set; } = false; //public bool IsTrialStart { get; set; } = false;

View File

@ -301,6 +301,13 @@ public partial class Trial : BaseFullDeleteAuditEntity
[Comment("阅片任务产生之前 采集影像")] [Comment("阅片任务产生之前 采集影像")]
public CollectImagesType CollectImagesEnum { get; set; } public CollectImagesType CollectImagesEnum { get; set; }
/// <summary>
/// IQC自动下一个任务
/// </summary>
public bool IsIQCAutoNextTask { get; set; }
public bool IsIQCAutoTaskDistinguishType { get; set; }
} }
public enum CollectImagesType public enum CollectImagesType

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,61 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class iqcNextTask : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "IsIQCAutoNextTask",
table: "Trial",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "IsIQCAutoTaskDistinguishType",
table: "Trial",
type: "bit",
nullable: false,
defaultValue: false);
migrationBuilder.CreateIndex(
name: "IX_DicomSeries_SubjectVisitId",
table: "DicomSeries",
column: "SubjectVisitId");
migrationBuilder.AddForeignKey(
name: "FK_DicomSeries_SubjectVisit_SubjectVisitId",
table: "DicomSeries",
column: "SubjectVisitId",
principalTable: "SubjectVisit",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_DicomSeries_SubjectVisit_SubjectVisitId",
table: "DicomSeries");
migrationBuilder.DropIndex(
name: "IX_DicomSeries_SubjectVisitId",
table: "DicomSeries");
migrationBuilder.DropColumn(
name: "IsIQCAutoNextTask",
table: "Trial");
migrationBuilder.DropColumn(
name: "IsIQCAutoTaskDistinguishType",
table: "Trial");
}
}
}

View File

@ -1157,6 +1157,8 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.HasIndex("StudyId"); b.HasIndex("StudyId");
b.HasIndex("SubjectVisitId");
b.ToTable("DicomSeries", t => b.ToTable("DicomSeries", t =>
{ {
t.HasComment("归档 - 序列表"); t.HasComment("归档 - 序列表");
@ -10904,6 +10906,12 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.HasColumnType("bit") .HasColumnType("bit")
.HasComment("是否有 受试者年龄"); .HasComment("是否有 受试者年龄");
b.Property<bool>("IsIQCAutoNextTask")
.HasColumnType("bit");
b.Property<bool>("IsIQCAutoTaskDistinguishType")
.HasColumnType("bit");
b.Property<bool>("IsImageConsistencyVerification") b.Property<bool>("IsImageConsistencyVerification")
.HasColumnType("bit") .HasColumnType("bit")
.HasComment("影像一致性核查"); .HasComment("影像一致性核查");
@ -15276,9 +15284,17 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
.WithMany()
.HasForeignKey("SubjectVisitId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("CreateUserRole"); b.Navigation("CreateUserRole");
b.Navigation("DicomStudy"); b.Navigation("DicomStudy");
b.Navigation("SubjectVisit");
}); });
modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b => modelBuilder.Entity("IRaCIS.Core.Domain.Models.DicomStudy", b =>
@ -18659,7 +18675,7 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.IsRequired(); .IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit") b.HasOne("IRaCIS.Core.Domain.Models.SubjectVisit", "SubjectVisit")
.WithMany() .WithMany("TrialQCQuestionAnswerList")
.HasForeignKey("SubjectVisitId") .HasForeignKey("SubjectVisitId")
.OnDelete(DeleteBehavior.Cascade) .OnDelete(DeleteBehavior.Cascade)
.IsRequired(); .IsRequired();
@ -19611,6 +19627,8 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Navigation("SubjectVisitImageBackRecordList"); b.Navigation("SubjectVisitImageBackRecordList");
b.Navigation("TrialQCQuestionAnswerList");
b.Navigation("VisitTaskList"); b.Navigation("VisitTaskList");
}); });