Merge branch 'Test_IRC_Net8' of https://gitea.frp.extimaging.com/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing Details

Uat_IRC_Net8
hang 2025-01-02 15:23:52 +08:00
commit 1f490138a0
11 changed files with 18847 additions and 167 deletions

View File

@ -10443,6 +10443,16 @@
分类显示类型 是否显示
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.SetTrialQuestionExport.CDISCCode">
<summary>
导出的CDISCName
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.TrialQuestionExport.CDISCCode">
<summary>
导出的CDISCName
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetTrialGroupNameListInDto.CriterionId">
<summary>
标准ID
@ -12060,6 +12070,7 @@
保存表格问题标记
</summary>
<param name="inDto"></param>
<param name="param"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.GetPreviousOtherPicturePath(IRaCIS.Core.Application.Service.Reading.Dto.GetPreviousOtherPicturePathInDto)">
@ -12298,6 +12309,14 @@
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.SubmitTaskRowInfo(IRaCIS.Core.Application.Service.Reading.Dto.SubmitTableQuestionInDto,System.String)">
<summary>
提交表格行信息
</summary>
<param name="inDto"></param>
<param name="param"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.SubmitTableQuestion(IRaCIS.Core.Application.Service.Reading.Dto.SubmitTableQuestionInDto)">
<summary>
提交表格问题答案 提交病灶 保存病灶

View File

@ -1839,6 +1839,9 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public class SetTrialQuestionExportResultInDto
{
public ExportType ExportType { get; set; }
public List<SetTrialQuestionExport> QuestionList = new List<SetTrialQuestionExport>();
public List<SetTrialQuestionExport> TableQuestionList = new List<SetTrialQuestionExport>();
@ -1851,6 +1854,10 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public Guid? TableQuestionId { get; set; }
/// <summary>
/// 导出的CDISCName
/// </summary>
public string CDISCCode { get; set; } = string.Empty;
public List<ExportResult> ExportResult { get; set; }
}
@ -1859,8 +1866,18 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
{
[NotDefault]
public Guid TrialReadingCriterionId { get; set; }
public ExportType ExportType { get; set; }
}
public enum ExportType
{
Basic=0,
CDISC=1,
}
public class GetTrialQuestionExportResultOutDto
{
public List<TrialQuestionExport> QuestionList = new List<TrialQuestionExport>();
@ -1879,6 +1896,11 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public List<ExportResult> ExportResult { get; set; }
/// <summary>
/// 导出的CDISCName
/// </summary>
public string CDISCCode { get; set; } = string.Empty;
public int ShowOrder { get; set; }
public bool HasChildren => Children.Count() > 0;

View File

@ -58,10 +58,16 @@ namespace IRaCIS.Core.Application.Service
{
List<ExportResult> needAdd = new List<ExportResult>()
{
ExportResult.DetailedTableOfAdjudicationResults,
ExportResult.DetailedTableOfIntraReaderAnalysisResults,
ExportResult.DetailedTableOfInterReaderAnalysisResults
};
if (inDto.ExportType == ExportType.Basic)
{
needAdd = new List<ExportResult>()
{
ExportResult.DetailedTableOfAdjudicationResults,
ExportResult.DetailedTableOfIntraReaderAnalysisResults,
ExportResult.DetailedTableOfInterReaderAnalysisResults
};
}
foreach (var item in inDto.QuestionList)
{
item.ExportResult= item.ExportResult.Except(needAdd).ToList();
@ -69,14 +75,14 @@ namespace IRaCIS.Core.Application.Service
{
item.ExportResult.AddRange(needAdd);
}
var ExportResultStr=JsonConvert.SerializeObject(item.ExportResult);
await _readingQuestionTrialRepository.UpdatePartialFromQueryAsync(x => x.Id == item.QuestionId, x => new ReadingQuestionTrial()
{
ExportResultStr = ExportResultStr
ExportResultStr = ExportResultStr,
CDISCCode = item.CDISCCode,
});
}
}
foreach (var item in inDto.TableQuestionList)
{
@ -87,9 +93,12 @@ namespace IRaCIS.Core.Application.Service
}
var ExportResultStr = JsonConvert.SerializeObject(item.ExportResult);
await _readingTableQuestionTrialRepository.UpdatePartialFromQueryAsync(x => x.Id == item.TableQuestionId, x => new ReadingTableQuestionTrial()
{
ExportResultStr = ExportResultStr
ExportResultStr = ExportResultStr,
CDISCCode = item.CDISCCode,
});
}
@ -111,7 +120,7 @@ namespace IRaCIS.Core.Application.Service
QuestionName = _userInfo.IsEn_Us ? x.QuestionEnName : x.QuestionName,
ExportResult = x.ExportResult,
ShowOrder = x.ShowOrder,
CDISCCode = x.CDISCCode,
}).ToListAsync();
var questionid = questionList.Select(x => x.QuestionId).ToList();
@ -124,6 +133,7 @@ namespace IRaCIS.Core.Application.Service
QuestionName = _userInfo.IsEn_Us ? x.QuestionEnName : x.QuestionName,
ExportResult = x.ExportResult,
ShowOrder = x.ShowOrder,
CDISCCode = x.CDISCCode,
}).ToListAsync();
questionList.ForEach(x =>
@ -132,6 +142,11 @@ namespace IRaCIS.Core.Application.Service
});
List<string> dicCode = new List<string>() { "1","2"};
if (inDto.ExportType == ExportType.CDISC)
{
dicCode = new List<string>() { "8" };
}
var dicList = await _dictionaryRepository.Where(x => x.Parent.Code == "ExportResult")
.Where(x=> dicCode.Contains(x.Code))
.OrderBy(x => x.ShowOrder)

View File

@ -102,8 +102,10 @@ namespace IRaCIS.Core.Application.Service
/// 保存表格问题标记
/// </summary>
/// <param name="inDto"></param>
/// <param name="param"></param>
/// <returns></returns>
[HttpPost]
[Route("/ReadingImageTask/SaveTableQuestionMark")]
public async Task<SaveTableQuestionMarkInDto> SaveTableQuestionMark(SaveTableQuestionMarkInDto inDto)
{
@ -2140,6 +2142,22 @@ namespace IRaCIS.Core.Application.Service
}
/// <summary>
/// 提交表格行信息
/// </summary>
/// <param name="inDto"></param>
/// <param name="param"></param>
/// <returns></returns>
[HttpPost]
[Route("/ReadingImageTask/SubmitTaskRowInfo/{param}")]
public async Task<SubmitTableQuestionOutDto> SubmitTaskRowInfo(SubmitTableQuestionInDto inDto,string param)
{
inDto.ComputationTrigger = (ComputationTrigger)int.Parse(param);
return await SubmitTableQuestion(inDto);
}
/// <summary>
/// 提交表格问题答案 提交病灶 保存病灶
/// </summary>

View File

@ -2831,6 +2831,11 @@ public enum PET5PSScore
/// 保存表格问题标记
/// </summary>
SaveTableQuestionMark = 10,
/// <summary>
/// 保存肝脏分段
/// </summary>
SaveLiverSegments = 11,
}
/// <summary>

View File

@ -277,6 +277,11 @@ public class ReadingQuestionTrial : BaseAddAuditEntity
[Comment("导出结果")]
public string ExportResultStr { get; set; } = "[]";
/// <summary>
/// 导出的CDISCName
/// </summary>
public string CDISCCode { get; set; } = string.Empty;
[NotMapped]
public List<ExportResult> ExportResult
{

View File

@ -180,6 +180,11 @@ public class ReadingTableQuestionTrial : BaseAddAuditEntity
[Comment("导出结果")]
public string ExportResultStr { get; set; } = "[]";
/// <summary>
/// 导出的CDISCName
/// </summary>
public string CDISCCode { get; set; } = string.Empty;
[NotMapped]
public List<ExportResult> ExportResult
{

View File

@ -2986,6 +2986,30 @@ namespace IRaCIS.Core.Infra.EFCore.Common
}
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionMark)))
{
var type = AuditOpt.Add;
var entity = item.Entity as ReadingTaskQuestionMark;
var answer = entitys.Where(x => x.Entity.GetType() == typeof(ReadingTableQuestionAnswer)).Select(x => x.Entity as ReadingTableQuestionAnswer)
.Where(x => x.RowId == entity.RowId).Select(x => x.Answer).FirstOrDefault();
var liverSegmentation = await _dbContext.ReadingTableQuestionAnswer.Where(x => x.RowId == entity.RowId && x.ReadingTableQuestionTrial.QuestionMark == QuestionMark.liverSegmentation).Select(x => x.Answer).FirstOrDefaultAsync();
await InsertInspection<ReadingTaskQuestionMark>(entity, type, x => new InspectionConvertDTO()
{
VisitTaskId = entity.VisitTaskId,
ObjectRelationParentId = entity.VisitTaskId,
},new {
Answer= answer,
LiverSegmentation= liverSegmentation,
});
}
//病灶这里操作 ReadingTableAnswerRowInfo ReadingTableQuestionAnswer
foreach (var item in entitys.Where(x => x.Entity.GetType() == typeof(ReadingTableAnswerRowInfo)))

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,159 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class CDISCCode : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "SystemDocConfirmedUser");
migrationBuilder.DropTable(
name: "TrialDocConfirmedUser");
migrationBuilder.AddColumn<string>(
name: "CDISCCode",
table: "ReadingTableQuestionTrial",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "CDISCCode",
table: "ReadingQuestionTrial",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
defaultValue: "");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "CDISCCode",
table: "ReadingTableQuestionTrial");
migrationBuilder.DropColumn(
name: "CDISCCode",
table: "ReadingQuestionTrial");
migrationBuilder.CreateTable(
name: "SystemDocConfirmedUser",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ConfirmUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
CreateUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
SystemDocumentId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ConfirmTime = table.Column<DateTime>(type: "datetime2", nullable: true),
CreateTime = table.Column<DateTime>(type: "datetime2", nullable: false),
DeleteUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletedTime = table.Column<DateTime>(type: "datetime2", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false),
SignFirstViewTime = table.Column<DateTime>(type: "datetime2", nullable: true),
SignText = table.Column<string>(type: "nvarchar(1000)", maxLength: 1000, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_SystemDocConfirmedUser", x => x.Id);
table.ForeignKey(
name: "FK_SystemDocConfirmedUser_SystemDocument_SystemDocumentId",
column: x => x.SystemDocumentId,
principalTable: "SystemDocument",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_SystemDocConfirmedUser_User_ConfirmUserId",
column: x => x.ConfirmUserId,
principalTable: "User",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_SystemDocConfirmedUser_User_CreateUserId",
column: x => x.CreateUserId,
principalTable: "User",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
},
comment: "后台 - 系统文档签署记录");
migrationBuilder.CreateTable(
name: "TrialDocConfirmedUser",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ConfirmUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
CreateUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
TrialDocumentId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
ConfirmTime = table.Column<DateTime>(type: "datetime2", nullable: true),
CreateTime = table.Column<DateTime>(type: "datetime2", nullable: false),
DeleteUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: true),
DeletedTime = table.Column<DateTime>(type: "datetime2", nullable: true),
IsDeleted = table.Column<bool>(type: "bit", nullable: false),
SignFirstViewTime = table.Column<DateTime>(type: "datetime2", nullable: true),
SignText = table.Column<string>(type: "nvarchar(1000)", maxLength: 1000, nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_TrialDocConfirmedUser", x => x.Id);
table.ForeignKey(
name: "FK_TrialDocConfirmedUser_TrialDocument_TrialDocumentId",
column: x => x.TrialDocumentId,
principalTable: "TrialDocument",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_TrialDocConfirmedUser_User_ConfirmUserId",
column: x => x.ConfirmUserId,
principalTable: "User",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_TrialDocConfirmedUser_User_CreateUserId",
column: x => x.CreateUserId,
principalTable: "User",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
},
comment: "项目 - 项目文档签署记录");
migrationBuilder.CreateIndex(
name: "IX_SystemDocConfirmedUser_ConfirmUserId",
table: "SystemDocConfirmedUser",
column: "ConfirmUserId");
migrationBuilder.CreateIndex(
name: "IX_SystemDocConfirmedUser_CreateUserId",
table: "SystemDocConfirmedUser",
column: "CreateUserId");
migrationBuilder.CreateIndex(
name: "IX_SystemDocConfirmedUser_SystemDocumentId",
table: "SystemDocConfirmedUser",
column: "SystemDocumentId");
migrationBuilder.CreateIndex(
name: "IX_TrialDocConfirmedUser_ConfirmUserId",
table: "TrialDocConfirmedUser",
column: "ConfirmUserId");
migrationBuilder.CreateIndex(
name: "IX_TrialDocConfirmedUser_CreateUserId",
table: "TrialDocConfirmedUser",
column: "CreateUserId");
migrationBuilder.CreateIndex(
name: "IX_TrialDocConfirmedUser_TrialDocumentId",
table: "TrialDocConfirmedUser",
column: "TrialDocumentId");
}
}
}

View File

@ -5936,6 +5936,11 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.HasColumnType("nvarchar(400)")
.HasComment("答案分组");
b.Property<string>("CDISCCode")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property<string>("CalculateQuestions")
.IsRequired()
.HasColumnType("nvarchar(max)")
@ -6747,6 +6752,11 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<string>("CDISCCode")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property<string>("CalculateQuestions")
.IsRequired()
.HasColumnType("nvarchar(max)")
@ -9309,57 +9319,6 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
});
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedUser", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<DateTime?>("ConfirmTime")
.HasColumnType("datetime2");
b.Property<Guid>("ConfirmUserId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreateTime")
.HasColumnType("datetime2");
b.Property<Guid>("CreateUserId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("DeleteUserId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime?>("DeletedTime")
.HasColumnType("datetime2");
b.Property<bool>("IsDeleted")
.HasColumnType("bit");
b.Property<DateTime?>("SignFirstViewTime")
.HasColumnType("datetime2");
b.Property<string>("SignText")
.IsRequired()
.HasMaxLength(1000)
.HasColumnType("nvarchar(1000)");
b.Property<Guid>("SystemDocumentId")
.HasColumnType("uniqueidentifier");
b.HasKey("Id");
b.HasIndex("ConfirmUserId");
b.HasIndex("CreateUserId");
b.HasIndex("SystemDocumentId");
b.ToTable("SystemDocConfirmedUser", t =>
{
t.HasComment("后台 - 系统文档签署记录");
});
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocNeedConfirmedUserType", b =>
{
b.Property<Guid>("Id")
@ -11280,57 +11239,6 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.ToTable("TrialDocConfirmedIdentityUser");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedUser", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<DateTime?>("ConfirmTime")
.HasColumnType("datetime2");
b.Property<Guid>("ConfirmUserId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreateTime")
.HasColumnType("datetime2");
b.Property<Guid>("CreateUserId")
.HasColumnType("uniqueidentifier");
b.Property<Guid?>("DeleteUserId")
.HasColumnType("uniqueidentifier");
b.Property<DateTime?>("DeletedTime")
.HasColumnType("datetime2");
b.Property<bool>("IsDeleted")
.HasColumnType("bit");
b.Property<DateTime?>("SignFirstViewTime")
.HasColumnType("datetime2");
b.Property<string>("SignText")
.IsRequired()
.HasMaxLength(1000)
.HasColumnType("nvarchar(1000)");
b.Property<Guid>("TrialDocumentId")
.HasColumnType("uniqueidentifier");
b.HasKey("Id");
b.HasIndex("ConfirmUserId");
b.HasIndex("CreateUserId");
b.HasIndex("TrialDocumentId");
b.ToTable("TrialDocConfirmedUser", t =>
{
t.HasComment("项目 - 项目文档签署记录");
});
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocNeedConfirmedUserType", b =>
{
b.Property<Guid>("Id")
@ -16663,33 +16571,6 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedIdentityUser", b =>
{
b.HasOne("IRaCIS.Core.Domain.Models.IdentityUser", "ConfirmUser")
.WithMany()
.HasForeignKey("ConfirmUserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
.WithMany()
.HasForeignKey("CreateUserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.SystemDocument", "SystemDocument")
.WithMany()
.HasForeignKey("SystemDocumentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("ConfirmUser");
b.Navigation("CreateUserRole");
b.Navigation("SystemDocument");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.SystemDocConfirmedUser", b =>
{
b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "ConfirmUser")
.WithMany("SystemDocConfirmedList")
.HasForeignKey("ConfirmUserId")
.OnDelete(DeleteBehavior.Cascade)
@ -17281,33 +17162,6 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument")
.WithMany()
.HasForeignKey("TrialDocumentId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("CreateUserRole");
b.Navigation("TrialDocument");
b.Navigation("User");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.TrialDocConfirmedUser", b =>
{
b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "User")
.WithMany()
.HasForeignKey("ConfirmUserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
.WithMany()
.HasForeignKey("CreateUserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.TrialDocument", "TrialDocument")
.WithMany("TrialDocConfirmedUserList")
.HasForeignKey("TrialDocumentId")
@ -18346,6 +18200,8 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
modelBuilder.Entity("IRaCIS.Core.Domain.Models.IdentityUser", b =>
{
b.Navigation("SystemDocConfirmedList");
b.Navigation("UserRoleList");
b.Navigation("UserTrialList");
@ -18648,8 +18504,6 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
modelBuilder.Entity("IRaCIS.Core.Domain.Models.UserRole", b =>
{
b.Navigation("SystemDocConfirmedList");
b.Navigation("UserRoleTrials");
b.Navigation("VisitTaskList");