Merge branch 'Test_IRC_Net8' into Uat_IRC_Net8
continuous-integration/drone/push Build is pending Details

Uat_IRC_Net8
hang 2026-05-28 17:00:42 +08:00
commit 140cc3ce94
11 changed files with 44993 additions and 19 deletions

View File

@ -16149,6 +16149,11 @@
<param name="modelVerify"></param>
<returns></returns>
</member>
<member name="T:IRaCIS.Core.Application.Service.TestService.SubjectVisitExcel">
<summary>
访视数据模型
</summary>
</member>
<member name="M:IRaCIS.Core.Application.Service.TestService.MaskImage">
<summary>
遮挡影像
@ -19408,7 +19413,7 @@
打开失访可读
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Contracts.TrialProcessConfig.IsImageQualityControl">
<member name="P:IRaCIS.Core.Application.Contracts.BasicTrialConfig.IsImageQualityControl">
<summary>
影像质控风险控制
</summary>

View File

@ -130,7 +130,7 @@ namespace IRaCIS.Core.Application.Contracts
/// <summary> TrialSiteSurveyView 列表视图模型 </summary>
public class TrialSiteSurveyView
public class TrialSiteSurveyView: TrialSiteSurveyAddOrEdit
{
public string TrialSiteCode { get; set; } = String.Empty;
@ -138,22 +138,12 @@ namespace IRaCIS.Core.Application.Contracts
public string SiteName { get; set; } = string.Empty;
public bool IsDeleted { get; set; }
public Guid Id { get; set; }
public Guid TrialId { get; set; }
public Guid? TrialSiteId { get; set; }
public DateTime CreateTime { get; set; }
public Guid CreateUserId { get; set; }
public DateTime UpdateTime { get; set; }
public Guid UpdateUserId { get; set; }
public string UserName { get; set; } = string.Empty;
public string Phone { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public int AverageEngravingCycle { get; set; }
public bool IsConfirmImagingTechnologist { get; set; }
public string NotConfirmReson { get; set; } = string.Empty;
public int EfficacyEvaluatorType { get; set; }
public bool IsFollowStudyParameters { get; set; }
public string NotFollowReson { get; set; } = string.Empty;
public TrialSiteSurveyEnum State { get; set; }
@ -343,6 +333,34 @@ namespace IRaCIS.Core.Application.Contracts
public string NotFollowReson { get; set; } = string.Empty;
[Comment("MRI-PDEE 是否为本中心该适应症的常规诊疗检查项目")]
public bool? IsRoutineMRIPDEE { get; set; }
[Comment("MRI-PDFF 单次检查时长")]
public string MRIPDFFScanTime { get; set; }
[Comment("MRI-PDFF 预约等待时长")]
public string MRIPDFFLeadTime { get; set; }
[Comment("MRI-PDEE 其他")]
public string MRIPDFFOther { get; set; }
[Comment("是否授权影像科老师参与")]
public bool? IsAuthorizeRadiologistsParticipate { get; set; }
[Comment("保持 1-2 名固定技师")]
public bool? AssignFixedTechnologists { get; set; }
[Comment("是否严格按照影像手册参数完成刻盘")]
public bool? ISStrictManualBurnFlag { get; set; }
[Comment("不严格按照影像手册参数完成刻盘原因")]
public string NotStrictManualBurnFlagReason { get; set; }
}

View File

@ -641,7 +641,7 @@ namespace IRaCIS.Core.Application
CriterionModalitys = inDto.CriterionModalitys,
ReadingTool = inDto.ReadingTool,
IsReadingPeriod = inDto.IsReadingPeriod,
DefaultSegmentName=inDto.DefaultSegmentName,
DefaultSegmentName = inDto.DefaultSegmentName,
//DigitPlaces=inDto.DigitPlaces,
IsReadingTaskViewInOrder = inDto.IsReadingTaskViewInOrder,
ReadingTaskViewEnum = inDto.ReadingTaskViewEnum,
@ -1566,7 +1566,7 @@ namespace IRaCIS.Core.Application
[AllowAnonymous]
public async Task<TrialConfigInfo> GetTrialExtralConfig(Guid trialId)
{
var extralObj = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.TrialExtraConfigJsonStr,t.TrialDataStoreType, t.IsExternalViewTrialChart, t.TrialObjectNameList, t.CollectImagesEnum, t.IsIQCAutoNextTask, t.IsImageQualityControl }).FirstOrDefault();
var extralObj = _trialRepository.Where(t => t.Id == trialId).Select(t => new { t.TrialExtraConfigJsonStr, t.TrialDataStoreType, t.IsExternalViewTrialChart, t.TrialObjectNameList, t.CollectImagesEnum, t.IsIQCAutoNextTask, t.IsImageQualityControl }).FirstOrDefault();
var extralConfig = JsonConvert.DeserializeObject<TrialExtraConfig>(extralObj?.TrialExtraConfigJsonStr) ?? new TrialExtraConfig();

View File

@ -273,7 +273,11 @@ namespace IRaCIS.Core.Application.Service
new SiteSurveyEquipmentField() { FiledName = "ScannerType", ShowOrder = 5, IsView = true },
new SiteSurveyEquipmentField() { FiledName = "Note", ShowOrder = 6, IsView = true },
}
},
NotShowFieldList = new List<string>() { "IsRoutineMRIPDEE", "MRIPDFFScanTime", "MRIPDFFLeadTime", "MRIPDFFOther", "IsAuthorizeRadiologistsParticipate", "AssignFixedTechnologists", "ISStrictManualBurnFlag", "NotStrictManualBurnFlagReason" }
};
trial.TrialExtraConfigJsonStr = trialExtalConfig.ToJsonStr();

View File

@ -114,7 +114,7 @@ namespace IRaCIS.Core.Application.Service
/// <param name="modelVerify"></param>
/// <returns></returns>
[AllowAnonymous]
[HttpPost("{email}")]
[HttpPost]
public async Task<IResponseOutput> SiteSuveryEquipment()
{
//默认配置
@ -135,12 +135,16 @@ namespace IRaCIS.Core.Application.Service
}
};
var fixedFields = new List<string>() { "IsRoutineMRIPDEE", "MRIPDFFScanTime", "MRIPDFFLeadTime", "MRIPDFFOther", "IsAuthorizeRadiologistsParticipate", "AssignFixedTechnologists", "ISStrictManualBurnFlag", "NotStrictManualBurnFlagReason" };
//已有配置处理
var list = _trialRepository.Where(t => t.TrialExtraConfigJsonStr != "").Select(t => new { t.Id, t.TrialExtraConfigJsonStr }).ToList();
foreach (var item in list)
{
var extralConfig = JsonConvert.DeserializeObject<TrialExtraConfig>(item.TrialExtraConfigJsonStr);
//额外配置的中心调研,
if (extralConfig.ModifyFiledList.Count > 0)
{
extralConfig.EquipmentControlFieldList = trialExtalConfig.EquipmentControlFieldList.Where(t => t.ShowOrder != 2).ToList();
@ -152,14 +156,32 @@ namespace IRaCIS.Core.Application.Service
}
if (extralConfig.NotShowFieldList.Count == 0)
{
extralConfig.NotShowFieldList.AddRange(fixedFields);
extralConfig.NotShowFieldList = extralConfig.NotShowFieldList.Distinct().ToList();
}
else
{
//判断固定数组中是否有任意一个元素存在于 NotShowFieldList 中
if (!fixedFields.Any(t => extralConfig.NotShowFieldList.Any(c => c == t)))
{
extralConfig.NotShowFieldList.AddRange(fixedFields);
}
}
var jsonInfo = extralConfig.ToJsonStr();
await _trialRepository.BatchUpdateNoTrackingAsync(t => t.Id == item.Id, u => new Trial() { TrialExtraConfigJsonStr = jsonInfo });
}
//默认配置更新
var info = trialExtalConfig.ToJsonStr();
var idQuery = _trialRepository.Where(t => t.TrialExtraConfigJsonStr == "").Select(t => t.Id);
@ -173,6 +195,47 @@ namespace IRaCIS.Core.Application.Service
return ResponseOutput.Ok();
}
/// <summary>
/// 访视数据模型
/// </summary>
public class SubjectVisitExcel
{
public string SubjectCode { get; set; }
public Guid? SubjectVisitId { get; set; }
public decimal VisitNum { get; set; }
public string VisitName { get; set; }
}
[AllowAnonymous]
public async Task<IResponseOutput> ExtralUndownloadImages()
{
var newVisits = MiniExcel.Query<SubjectVisitExcel>(@"C:\Users\PC\Desktop\New.xlsx").ToList();
var oldVisits = MiniExcel.Query<SubjectVisitExcel>(@"C:\Users\PC\Desktop\Old.xlsx").ToList();
var downloadVisit = new List<SubjectVisitExcel>();
foreach (var item in newVisits)
{
if (oldVisits.Any(t => t.VisitNum == item.VisitNum && t.SubjectCode == item.SubjectCode))
{
continue;
}
else
{
downloadVisit.Add(item);
}
}
string exportPath = @$"C:\Users\PC\Desktop\newDownload.xlsx";
MiniExcel.SaveAs(exportPath, downloadVisit);
return ResponseOutput.Ok(downloadVisit);
}
//创建一个模型验证的方法
[AllowAnonymous]
[HttpPost("{email}")]

View File

@ -51,5 +51,35 @@ public class TrialSiteSurvey : BaseFullDeleteAuditEntity
public DateTime? PreliminaryTime { get; set; }
public DateTime? ReviewerTime { get; set; }
[Comment("MRI-PDEE 是否为本中心该适应症的常规诊疗检查项目")]
public bool? IsRoutineMRIPDEE { get; set; }
[Comment("MRI-PDFF 单次检查时长")]
public string MRIPDFFScanTime { get; set; }
[Comment("MRI-PDFF 预约等待时长")]
public string MRIPDFFLeadTime { get; set; }
[Comment("MRI-PDEE 其他")]
public string MRIPDFFOther { get; set; }
[Comment("是否授权影像科老师参与")]
public bool? IsAuthorizeRadiologistsParticipate { get; set; }
[Comment("保持 1-2 名固定技师")]
public bool? AssignFixedTechnologists { get; set; }
[Comment("是否严格按照影像手册参数完成刻盘")]
public bool? ISStrictManualBurnFlag { get; set; }
[Comment("不严格按照影像手册参数完成刻盘原因")]
public string NotStrictManualBurnFlagReason { get; set; }
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,112 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class siteSurveyOther : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "AssignFixedTechnologists",
table: "TrialSiteSurvey",
type: "bit",
nullable: true,
comment: "保持 1-2 名固定技师");
migrationBuilder.AddColumn<bool>(
name: "ISStrictManualBurnFlag",
table: "TrialSiteSurvey",
type: "bit",
nullable: true,
comment: "是否严格按照影像手册参数完成刻盘");
migrationBuilder.AddColumn<bool>(
name: "IsAuthorizeRadiologistsParticipate",
table: "TrialSiteSurvey",
type: "bit",
nullable: true,
comment: "是否授权影像科老师参与");
migrationBuilder.AddColumn<bool>(
name: "IsRoutineMRIPDEE",
table: "TrialSiteSurvey",
type: "bit",
nullable: true,
comment: "MRI-PDEE 是否为本中心该适应症的常规诊疗检查项目");
migrationBuilder.AddColumn<string>(
name: "MRIPDFFLeadTime",
table: "TrialSiteSurvey",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
defaultValue: "",
comment: "MRI-PDFF 预约等待时长");
migrationBuilder.AddColumn<string>(
name: "MRIPDFFOther",
table: "TrialSiteSurvey",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
defaultValue: "",
comment: "MRI-PDEE 其他");
migrationBuilder.AddColumn<string>(
name: "MRIPDFFScanTime",
table: "TrialSiteSurvey",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
defaultValue: "",
comment: "MRI-PDFF 单次检查时长");
migrationBuilder.AddColumn<bool>(
name: "NotStrictManualBurnFlagReason",
table: "TrialSiteSurvey",
type: "bit",
nullable: true,
comment: "不严格按照影像手册参数完成刻盘原因");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "AssignFixedTechnologists",
table: "TrialSiteSurvey");
migrationBuilder.DropColumn(
name: "ISStrictManualBurnFlag",
table: "TrialSiteSurvey");
migrationBuilder.DropColumn(
name: "IsAuthorizeRadiologistsParticipate",
table: "TrialSiteSurvey");
migrationBuilder.DropColumn(
name: "IsRoutineMRIPDEE",
table: "TrialSiteSurvey");
migrationBuilder.DropColumn(
name: "MRIPDFFLeadTime",
table: "TrialSiteSurvey");
migrationBuilder.DropColumn(
name: "MRIPDFFOther",
table: "TrialSiteSurvey");
migrationBuilder.DropColumn(
name: "MRIPDFFScanTime",
table: "TrialSiteSurvey");
migrationBuilder.DropColumn(
name: "NotStrictManualBurnFlagReason",
table: "TrialSiteSurvey");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,42 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class siteSurveyOther1 : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "NotStrictManualBurnFlagReason",
table: "TrialSiteSurvey",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
defaultValue: "",
comment: "不严格按照影像手册参数完成刻盘原因",
oldClrType: typeof(bool),
oldType: "bit",
oldNullable: true,
oldComment: "不严格按照影像手册参数完成刻盘原因");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<bool>(
name: "NotStrictManualBurnFlagReason",
table: "TrialSiteSurvey",
type: "bit",
nullable: true,
comment: "不严格按照影像手册参数完成刻盘原因",
oldClrType: typeof(string),
oldType: "nvarchar(400)",
oldMaxLength: 400,
oldComment: "不严格按照影像手册参数完成刻盘原因");
}
}
}

View File

@ -15127,6 +15127,10 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<bool?>("AssignFixedTechnologists")
.HasColumnType("bit")
.HasComment("保持 1-2 名固定技师");
b.Property<int>("AverageEngravingCycle")
.HasColumnType("int");
@ -15150,6 +15154,14 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property<bool?>("ISStrictManualBurnFlag")
.HasColumnType("bit")
.HasComment("是否严格按照影像手册参数完成刻盘");
b.Property<bool?>("IsAuthorizeRadiologistsParticipate")
.HasColumnType("bit")
.HasComment("是否授权影像科老师参与");
b.Property<bool>("IsConfirmImagingTechnologist")
.HasColumnType("bit");
@ -15159,11 +15171,33 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Property<bool>("IsFollowStudyParameters")
.HasColumnType("bit");
b.Property<bool?>("IsRoutineMRIPDEE")
.HasColumnType("bit")
.HasComment("MRI-PDEE 是否为本中心该适应症的常规诊疗检查项目");
b.Property<string>("LatestBackReason")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property<string>("MRIPDFFLeadTime")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)")
.HasComment("MRI-PDFF 预约等待时长");
b.Property<string>("MRIPDFFOther")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)")
.HasComment("MRI-PDEE 其他");
b.Property<string>("MRIPDFFScanTime")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)")
.HasComment("MRI-PDFF 单次检查时长");
b.Property<string>("NotConfirmReson")
.IsRequired()
.HasMaxLength(400)
@ -15174,6 +15208,12 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property<string>("NotStrictManualBurnFlagReason")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)")
.HasComment("不严格按照影像手册参数完成刻盘原因");
b.Property<string>("Phone")
.IsRequired()
.HasMaxLength(400)