.net10 -合并编译错误

This commit is contained in:
2026-06-04 13:19:17 +08:00
136 changed files with 251650 additions and 1484 deletions
@@ -1,4 +1,6 @@
namespace IRaCIS.Core.Domain.Share
using IRaCIS.Core.Domain.Models;
namespace IRaCIS.Core.Domain.Share
{
/// <summary>
/// 用户信息接口
@@ -59,5 +61,7 @@
string TimeZoneId { get; }
string BrowserFingerprint { get; }
UserWorkLanguage UserWorkLanguage { get; }
}
}
+22 -1
View File
@@ -1,4 +1,5 @@
using Microsoft.AspNetCore.Http;
using IRaCIS.Core.Domain.Models;
using Microsoft.AspNetCore.Http;
namespace IRaCIS.Core.Domain.Share
{
@@ -328,6 +329,25 @@ namespace IRaCIS.Core.Domain.Share
}
}
public UserWorkLanguage UserWorkLanguage
{
get
{
var userWorkLanguage = _accessor?.HttpContext?.User?.FindFirst(JwtIRaCISClaimType.UserWorkLanguage);
if (userWorkLanguage != null && !string.IsNullOrEmpty(userWorkLanguage.Value))
{
return Enum.Parse<UserWorkLanguage>(userWorkLanguage.Value);
}
else
{
return UserWorkLanguage.US;
}
}
}
public Guid? SignId
{
@@ -397,6 +417,7 @@ namespace IRaCIS.Core.Domain.Share
public const string PermissionStr = "permissionStr";
public const string UserWorkLanguage = "userWorkLanguage";
}
@@ -2465,6 +2465,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var extraIdentification = string.Empty;
var entity = item.Entity as DicomStudy;
var reason = entity.ModifyReason;
switch (_userInfo.RequestUrl)
{
case "QCOperation/updateModality":
@@ -2473,6 +2475,10 @@ namespace IRaCIS.Core.Infra.EFCore.Common
extraIdentification = "/2";
}
break;
case "Study/amendmentPatientInfo":
reason=entity.Reason;
break;
}
@@ -2480,7 +2486,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
{
ObjectRelationParentId = x.SubjectVisitId,
ExtraIndentification = extraIdentification,
Reason = entity.ModifyReason
Reason = reason
});
}
@@ -3625,8 +3631,11 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var entity = item.Entity as Segmentation;
var visitTask = await _dbContext.VisitTask.Where(x => x.Id == entity.VisitTaskId).FirstOrDefaultAsync();
await InsertInspection<Segmentation>(entity, type, x => new InspectionConvertDTO()
{
TrialReadingCriterionId = visitTask != null ? visitTask.TrialReadingCriterionId : null,
});
}
@@ -3639,9 +3648,16 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var entity = item.Entity as Segment;
var visitTask = await _dbContext.VisitTask.Where(x => x.Id == entity.VisitTaskId).FirstOrDefaultAsync();
var segmentation = await _dbContext.Segmentation.Where(x => x.Id == entity.SegmentationId).FirstOrDefaultAsync();
await InsertInspection<Segment>(entity, type, x => new InspectionConvertDTO()
{
SubjectId= segmentation != null ? segmentation.SubjectId : null,
SubjectVisitId = segmentation != null ? segmentation.SubjectVisitId : null,
TrialReadingCriterionId = visitTask != null ? visitTask.TrialReadingCriterionId : null,
});
}
@@ -3692,10 +3708,12 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var questionAnswer= entitys.Where(x => x.Entity.GetType() == typeof(ReadingTaskQuestionAnswer)).Select(x => x.Entity as ReadingTaskQuestionAnswer)
.Where(x => x.VisitTaskId == entity.VisitTaskId && x.ReadingQuestionTrialId == entity.QuestionId).FirstOrDefault();
var quesionInfo = await _dbContext.ReadingQuestionTrial.Where(t => t.Id == questionAnswer.ReadingQuestionTrialId).Select(t =>
if (questionAnswer != null)
{
var quesionInfo = await _dbContext.ReadingQuestionTrial.Where(t => t.Id == questionAnswer.ReadingQuestionTrialId).Select(t =>
new
{
t.Unit,
t.CustomUnit,
t.DictionaryCode,
@@ -3707,7 +3725,8 @@ namespace IRaCIS.Core.Infra.EFCore.Common
})
.OrderBy(t => t.ShowOrder).FirstOrDefaultAsync();
answer = Translationunit(quesionInfo.AnswerType, quesionInfo.Unit, quesionInfo.CustomUnit, unitDataList, questionAnswer.Answer);
answer = Translationunit(quesionInfo.AnswerType, quesionInfo.Unit, quesionInfo.CustomUnit, unitDataList, questionAnswer.Answer);
}
}
var rowMark = await _dbContext.ReadingTableAnswerRowInfo.Where(x => x.Id == entity.RowId).Select(x => x.RowMark).FirstOrDefaultAsync();
@@ -3715,7 +3734,7 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var segmentation = await _dbContext.Segmentation.Where(x => x.Id == entity.SegmentationId).FirstOrDefaultAsync()?? new Segmentation() { };
var segmentation = await _dbContext.Segmentation.Where(x => x.Id == entity.SegmentationId).Include(x=>x.VisitTask).FirstOrDefaultAsync()?? new Segmentation() { };
var segment= await _dbContext.Segment.Where(x => x.Id == entity.SegmentId).FirstOrDefaultAsync()?? new Segment() { };
@@ -3723,12 +3742,17 @@ namespace IRaCIS.Core.Infra.EFCore.Common
var questionName = await _dbContext.ReadingQuestionTrial.Where(x => x.Id == entity.QuestionId).Select(x => _userInfo.IsEn_Us ? x.QuestionEnName : x.QuestionName).FirstOrDefaultAsync();
Guid? trialReadingCriterionId = null;
if (segmentation.VisitTask != null)
{
trialReadingCriterionId= segmentation.VisitTask.TrialReadingCriterionId;
}
await InsertInspection<SegmentBinding>(entity, type, x => new InspectionConvertDTO()
{
TrialReadingCriterionId= trialReadingCriterionId,
},new
{
segmentation.SegmentationName,
@@ -111,6 +111,14 @@ public class IRaCISDBContext : DbContext
);
});
modelBuilder.Entity<SegmentationVersion>(entity =>
{
entity.Property(e => e.SegmentList).HasConversion(
v => v == null ? null : JsonConvert.SerializeObject(v),
v => string.IsNullOrEmpty(v) ? new List<SegmentVersionData>() {} : JsonConvert.DeserializeObject<List<SegmentVersionData>>(v)
);
});
#region pgsql codefirst
//if (base.Database.IsNpgsql())
//{
@@ -371,6 +379,8 @@ public class IRaCISDBContext : DbContext
public virtual DbSet<ReadingUserConfig> ReadingUserConfig { get; set; }
public virtual DbSet<Segmentation> Segmentation { get; set; }
public virtual DbSet<SegmentationVersion> SegmentationVersion { get; set; }
public virtual DbSet<Segment> Segment { get; set; }
public virtual DbSet<SegmentBinding> SegmentBinding { get; set; }
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,72 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class SegmentationVersion : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<long>(
name: "FileSize",
table: "Segmentation",
type: "bigint",
nullable: false,
defaultValue: 0L);
migrationBuilder.CreateTable(
name: "SegmentationVersion",
columns: table => new
{
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
SegmentationId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
Version = table.Column<int>(type: "int", nullable: false),
SegmentationJson = table.Column<string>(type: "nvarchar(max)", nullable: false),
SEGUrl = table.Column<string>(type: "nvarchar(max)", nullable: false),
FileSize = table.Column<long>(type: "bigint", nullable: false),
CreateUserId = table.Column<Guid>(type: "uniqueidentifier", nullable: false),
CreateTime = table.Column<DateTime>(type: "datetime2", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_SegmentationVersion", x => x.Id)
.Annotation("SqlServer:Clustered", false);
},
comment: "分割文件版本");
migrationBuilder.CreateIndex(
name: "IX_SegmentationVersion_CreateTime",
table: "SegmentationVersion",
column: "CreateTime")
.Annotation("SqlServer:Clustered", true);
migrationBuilder.AddForeignKey(
name: "FK_Segmentation_VisitTask_VisitTaskId",
table: "Segmentation",
column: "VisitTaskId",
principalTable: "VisitTask",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Segmentation_VisitTask_VisitTaskId",
table: "Segmentation");
migrationBuilder.DropTable(
name: "SegmentationVersion");
migrationBuilder.DropColumn(
name: "FileSize",
table: "Segmentation");
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,54 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class AddTrialMaxCode : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "MaxDicomCode",
table: "Trial",
type: "int",
nullable: false,
defaultValue: 0,
comment: "最大的Dicom检查编号 整型");
migrationBuilder.AddColumn<int>(
name: "MaxNoneDicomCode",
table: "Trial",
type: "int",
nullable: false,
defaultValue: 0,
comment: "最大的NoneDicom检查编号 整型");
//migrationBuilder.AddForeignKey(
// name: "FK_Segmentation_VisitTask_VisitTaskId",
// table: "Segmentation",
// column: "VisitTaskId",
// principalTable: "VisitTask",
// principalColumn: "Id",
// onDelete: ReferentialAction.Cascade);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_Segmentation_VisitTask_VisitTaskId",
table: "Segmentation");
migrationBuilder.DropColumn(
name: "MaxDicomCode",
table: "Trial");
migrationBuilder.DropColumn(
name: "MaxNoneDicomCode",
table: "Trial");
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,29 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class segmentList : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "SegmentList",
table: "SegmentationVersion",
type: "nvarchar(max)",
nullable: false,
defaultValue: "");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "SegmentList",
table: "SegmentationVersion");
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,29 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class maxVersionStartTime : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<DateTime>(
name: "StartTime",
table: "SegmentationVersion",
type: "datetime2",
nullable: true);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "StartTime",
table: "SegmentationVersion");
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,52 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class addWorkLanguage : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "Country",
table: "TrialSite",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<int>(
name: "DocLanguageType",
table: "SystemDocument",
type: "int",
nullable: false,
defaultValue: 0);
migrationBuilder.AddColumn<int>(
name: "UserWorkLanguage",
table: "IdentityUser",
type: "int",
nullable: false,
defaultValue: 0);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Country",
table: "TrialSite");
migrationBuilder.DropColumn(
name: "DocLanguageType",
table: "SystemDocument");
migrationBuilder.DropColumn(
name: "UserWorkLanguage",
table: "IdentityUser");
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,29 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class SEGUpdateTime : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<DateTime>(
name: "SEGUpdateTime",
table: "Segmentation",
type: "datetime2",
nullable: true);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "SEGUpdateTime",
table: "Segmentation");
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,223 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class SiteSurveyEquipmentModify : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "ScannerType",
table: "TrialSiteEquipmentSurvey",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
comment: "扫描设备型号",
oldClrType: typeof(string),
oldType: "nvarchar(400)",
oldMaxLength: 400);
migrationBuilder.AlterColumn<string>(
name: "Parameters",
table: "TrialSiteEquipmentSurvey",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
comment: "扫描设备参数",
oldClrType: typeof(string),
oldType: "nvarchar(400)",
oldMaxLength: 400);
migrationBuilder.AlterColumn<string>(
name: "ManufacturerName",
table: "TrialSiteEquipmentSurvey",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
comment: "扫描设备厂商其他补充",
oldClrType: typeof(string),
oldType: "nvarchar(400)",
oldMaxLength: 400);
migrationBuilder.AlterColumn<Guid>(
name: "EquipmentTypeId",
table: "TrialSiteEquipmentSurvey",
type: "uniqueidentifier",
nullable: false,
comment: "扫描设备-废弃",
oldClrType: typeof(Guid),
oldType: "uniqueidentifier");
migrationBuilder.AddColumn<int>(
name: "BodyCoilChannelCount",
table: "TrialSiteEquipmentSurvey",
type: "int",
nullable: false,
defaultValue: 0,
comment: "体部线圈通道数 (≥16 或 16)");
migrationBuilder.AddColumn<bool>(
name: "CanFullyExportPdfParameterMapsAndRawDicom",
table: "TrialSiteEquipmentSurvey",
type: "bit",
nullable: false,
defaultValue: false,
comment: "是否可完整导出 PDFF 参数图及全部原始 DICOM 数据");
migrationBuilder.AddColumn<int>(
name: "EquipmentTypeEnum",
table: "TrialSiteEquipmentSurvey",
type: "int",
nullable: false,
defaultValue: 0,
comment: "扫描设备-New");
migrationBuilder.AddColumn<bool>(
name: "HasDedicatedPdfFatQuantificationSequence",
table: "TrialSiteEquipmentSurvey",
type: "bit",
nullable: false,
defaultValue: false,
comment: "是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)");
migrationBuilder.AddColumn<bool>(
name: "HasT2R2Correction",
table: "TrialSiteEquipmentSurvey",
type: "bit",
nullable: false,
defaultValue: false,
comment: "是否包含 T2/R2 校正(用于铁沉积校正)");
migrationBuilder.AddColumn<int>(
name: "MagneticFieldStrengthType",
table: "TrialSiteEquipmentSurvey",
type: "int",
nullable: false,
defaultValue: 0,
comment: "磁场强度 (1.5T / 3.0T)");
migrationBuilder.AddColumn<int>(
name: "ManufacturerType",
table: "TrialSiteEquipmentSurvey",
type: "int",
nullable: false,
defaultValue: 0,
comment: "扫描设备厂商");
migrationBuilder.AddColumn<string>(
name: "OtherEquipmentType",
table: "TrialSiteEquipmentSurvey",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
defaultValue: "");
migrationBuilder.AddColumn<string>(
name: "OtherSequenceSpecification",
table: "TrialSiteEquipmentSurvey",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
defaultValue: "",
comment: "其他序列详细说明 (当 PdfFatQuantificationSequenceType = Other 时建议填写)");
migrationBuilder.AddColumn<int>(
name: "PdfFatQuantificationSequenceType",
table: "TrialSiteEquipmentSurvey",
type: "int",
nullable: true,
comment: "专用的PDFF脂肪定量序列类型 (当 HasDedicatedPdfFatQuantificationSequence = true 时有效)");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "BodyCoilChannelCount",
table: "TrialSiteEquipmentSurvey");
migrationBuilder.DropColumn(
name: "CanFullyExportPdfParameterMapsAndRawDicom",
table: "TrialSiteEquipmentSurvey");
migrationBuilder.DropColumn(
name: "EquipmentTypeEnum",
table: "TrialSiteEquipmentSurvey");
migrationBuilder.DropColumn(
name: "HasDedicatedPdfFatQuantificationSequence",
table: "TrialSiteEquipmentSurvey");
migrationBuilder.DropColumn(
name: "HasT2R2Correction",
table: "TrialSiteEquipmentSurvey");
migrationBuilder.DropColumn(
name: "MagneticFieldStrengthType",
table: "TrialSiteEquipmentSurvey");
migrationBuilder.DropColumn(
name: "ManufacturerType",
table: "TrialSiteEquipmentSurvey");
migrationBuilder.DropColumn(
name: "OtherEquipmentType",
table: "TrialSiteEquipmentSurvey");
migrationBuilder.DropColumn(
name: "OtherSequenceSpecification",
table: "TrialSiteEquipmentSurvey");
migrationBuilder.DropColumn(
name: "PdfFatQuantificationSequenceType",
table: "TrialSiteEquipmentSurvey");
migrationBuilder.AlterColumn<string>(
name: "ScannerType",
table: "TrialSiteEquipmentSurvey",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(400)",
oldMaxLength: 400,
oldComment: "扫描设备型号");
migrationBuilder.AlterColumn<string>(
name: "Parameters",
table: "TrialSiteEquipmentSurvey",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(400)",
oldMaxLength: 400,
oldComment: "扫描设备参数");
migrationBuilder.AlterColumn<string>(
name: "ManufacturerName",
table: "TrialSiteEquipmentSurvey",
type: "nvarchar(400)",
maxLength: 400,
nullable: false,
oldClrType: typeof(string),
oldType: "nvarchar(400)",
oldMaxLength: 400,
oldComment: "扫描设备厂商其他补充");
migrationBuilder.AlterColumn<Guid>(
name: "EquipmentTypeId",
table: "TrialSiteEquipmentSurvey",
type: "uniqueidentifier",
nullable: false,
oldClrType: typeof(Guid),
oldType: "uniqueidentifier",
oldComment: "扫描设备-废弃");
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,40 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class modifyTrialJson : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<bool>(
name: "IsOpenLostVistRead",
table: "Trial",
type: "bit",
nullable: false,
defaultValue: true);
migrationBuilder.AddColumn<bool>(
name: "IsSupportQCDownloadImage",
table: "Trial",
type: "bit",
nullable: false,
defaultValue: false);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "IsOpenLostVistRead",
table: "Trial");
migrationBuilder.DropColumn(
name: "IsSupportQCDownloadImage",
table: "Trial");
}
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,150 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace IRaCIS.Core.Infra.EFCore.Migrations
{
/// <inheritdoc />
public partial class modifySurvey : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<int>(
name: "ManufacturerType",
table: "TrialSiteEquipmentSurvey",
type: "int",
nullable: true,
comment: "扫描设备厂商",
oldClrType: typeof(int),
oldType: "int",
oldComment: "扫描设备厂商");
migrationBuilder.AlterColumn<int>(
name: "MagneticFieldStrengthType",
table: "TrialSiteEquipmentSurvey",
type: "int",
nullable: true,
comment: "磁场强度 (1.5T / 3.0T)",
oldClrType: typeof(int),
oldType: "int",
oldComment: "磁场强度 (1.5T / 3.0T)");
migrationBuilder.AlterColumn<bool>(
name: "HasT2R2Correction",
table: "TrialSiteEquipmentSurvey",
type: "bit",
nullable: true,
comment: "是否包含 T2/R2 校正(用于铁沉积校正)",
oldClrType: typeof(bool),
oldType: "bit",
oldComment: "是否包含 T2/R2 校正(用于铁沉积校正)");
migrationBuilder.AlterColumn<bool>(
name: "HasDedicatedPdfFatQuantificationSequence",
table: "TrialSiteEquipmentSurvey",
type: "bit",
nullable: true,
comment: "是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)",
oldClrType: typeof(bool),
oldType: "bit",
oldComment: "是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)");
migrationBuilder.AlterColumn<bool>(
name: "CanFullyExportPdfParameterMapsAndRawDicom",
table: "TrialSiteEquipmentSurvey",
type: "bit",
nullable: true,
comment: "是否可完整导出 PDFF 参数图及全部原始 DICOM 数据",
oldClrType: typeof(bool),
oldType: "bit",
oldComment: "是否可完整导出 PDFF 参数图及全部原始 DICOM 数据");
migrationBuilder.AlterColumn<int>(
name: "BodyCoilChannelCount",
table: "TrialSiteEquipmentSurvey",
type: "int",
nullable: true,
comment: "体部线圈通道数 (≥16 或 16)",
oldClrType: typeof(int),
oldType: "int",
oldComment: "体部线圈通道数 (≥16 或 16)");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<int>(
name: "ManufacturerType",
table: "TrialSiteEquipmentSurvey",
type: "int",
nullable: false,
defaultValue: 0,
comment: "扫描设备厂商",
oldClrType: typeof(int),
oldType: "int",
oldNullable: true,
oldComment: "扫描设备厂商");
migrationBuilder.AlterColumn<int>(
name: "MagneticFieldStrengthType",
table: "TrialSiteEquipmentSurvey",
type: "int",
nullable: false,
defaultValue: 0,
comment: "磁场强度 (1.5T / 3.0T)",
oldClrType: typeof(int),
oldType: "int",
oldNullable: true,
oldComment: "磁场强度 (1.5T / 3.0T)");
migrationBuilder.AlterColumn<bool>(
name: "HasT2R2Correction",
table: "TrialSiteEquipmentSurvey",
type: "bit",
nullable: false,
defaultValue: false,
comment: "是否包含 T2/R2 校正(用于铁沉积校正)",
oldClrType: typeof(bool),
oldType: "bit",
oldNullable: true,
oldComment: "是否包含 T2/R2 校正(用于铁沉积校正)");
migrationBuilder.AlterColumn<bool>(
name: "HasDedicatedPdfFatQuantificationSequence",
table: "TrialSiteEquipmentSurvey",
type: "bit",
nullable: false,
defaultValue: false,
comment: "是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)",
oldClrType: typeof(bool),
oldType: "bit",
oldNullable: true,
oldComment: "是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)");
migrationBuilder.AlterColumn<bool>(
name: "CanFullyExportPdfParameterMapsAndRawDicom",
table: "TrialSiteEquipmentSurvey",
type: "bit",
nullable: false,
defaultValue: false,
comment: "是否可完整导出 PDFF 参数图及全部原始 DICOM 数据",
oldClrType: typeof(bool),
oldType: "bit",
oldNullable: true,
oldComment: "是否可完整导出 PDFF 参数图及全部原始 DICOM 数据");
migrationBuilder.AlterColumn<int>(
name: "BodyCoilChannelCount",
table: "TrialSiteEquipmentSurvey",
type: "int",
nullable: false,
defaultValue: 0,
comment: "体部线圈通道数 (≥16 或 16)",
oldClrType: typeof(int),
oldType: "int",
oldNullable: true,
oldComment: "体部线圈通道数 (≥16 或 16)");
}
}
}
File diff suppressed because it is too large Load Diff
@@ -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
@@ -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: "不严格按照影像手册参数完成刻盘原因");
}
}
}
@@ -3682,6 +3682,9 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.HasColumnType("nvarchar(400)")
.UseCollation("Chinese_PRC_CS_AS");
b.Property<int>("UserWorkLanguage")
.HasColumnType("int");
b.HasKey("Id");
SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false);
@@ -9493,12 +9496,18 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Property<DateTime?>("DeletedTime")
.HasColumnType("datetime2");
b.Property<long>("FileSize")
.HasColumnType("bigint");
b.Property<bool>("IsDeleted")
.HasColumnType("bit");
b.Property<bool>("IsSaved")
.HasColumnType("bit");
b.Property<DateTime?>("SEGUpdateTime")
.HasColumnType("datetime2");
b.Property<string>("SEGUrl")
.IsRequired()
.HasColumnType("nvarchar(max)");
@@ -9550,6 +9559,55 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
});
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b =>
{
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<DateTime>("CreateTime")
.HasColumnType("datetime2");
b.Property<Guid>("CreateUserId")
.HasColumnType("uniqueidentifier");
b.Property<long>("FileSize")
.HasColumnType("bigint");
b.Property<string>("SEGUrl")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<string>("SegmentList")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<Guid>("SegmentationId")
.HasColumnType("uniqueidentifier");
b.Property<string>("SegmentationJson")
.IsRequired()
.HasColumnType("nvarchar(max)");
b.Property<DateTime?>("StartTime")
.HasColumnType("datetime2");
b.Property<int>("Version")
.HasColumnType("int");
b.HasKey("Id");
SqlServerKeyBuilderExtensions.IsClustered(b.HasKey("Id"), false);
b.HasIndex("CreateTime");
SqlServerIndexBuilderExtensions.IsClustered(b.HasIndex("CreateTime"));
b.ToTable("SegmentationVersion", t =>
{
t.HasComment("分割文件版本");
});
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b =>
{
b.Property<Guid>("Id")
@@ -11212,6 +11270,9 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Property<DateTime?>("DeletedTime")
.HasColumnType("datetime2");
b.Property<int>("DocLanguageType")
.HasColumnType("int");
b.Property<int>("DocUserSignType")
.HasColumnType("int");
@@ -12581,6 +12642,9 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.HasColumnType("bit")
.HasComment("是否 提醒受试者编号规则");
b.Property<bool>("IsOpenLostVistRead")
.HasColumnType("bit");
b.Property<bool>("IsPACSConnect")
.HasColumnType("bit");
@@ -12616,6 +12680,9 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Property<bool>("IsSubjectSexView")
.HasColumnType("bit");
b.Property<bool>("IsSupportQCDownloadImage")
.HasColumnType("bit");
b.Property<bool>("IsTrialBasicLogicConfirmed")
.HasColumnType("bit");
@@ -12644,6 +12711,14 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.HasColumnType("nvarchar(400)")
.HasComment("主研单位");
b.Property<int>("MaxDicomCode")
.HasColumnType("int")
.HasComment("最大的Dicom检查编号 整型");
b.Property<int>("MaxNoneDicomCode")
.HasColumnType("int")
.HasComment("最大的NoneDicom检查编号 整型");
b.Property<string>("MessageFromClient")
.IsRequired()
.HasMaxLength(400)
@@ -14813,6 +14888,11 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<string>("Country")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property<DateTime>("CreateTime")
.HasColumnType("datetime2");
@@ -14943,34 +15023,81 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
b.Property<Guid>("Id")
.HasColumnType("uniqueidentifier");
b.Property<int?>("BodyCoilChannelCount")
.HasColumnType("int")
.HasComment("体部线圈通道数 (≥16 或 16)");
b.Property<bool?>("CanFullyExportPdfParameterMapsAndRawDicom")
.HasColumnType("bit")
.HasComment("是否可完整导出 PDFF 参数图及全部原始 DICOM 数据");
b.Property<DateTime>("CreateTime")
.HasColumnType("datetime2");
b.Property<Guid>("CreateUserId")
.HasColumnType("uniqueidentifier");
b.Property<int>("EquipmentTypeEnum")
.HasColumnType("int")
.HasComment("扫描设备-New");
b.Property<Guid>("EquipmentTypeId")
.HasColumnType("uniqueidentifier");
.HasColumnType("uniqueidentifier")
.HasComment("扫描设备-废弃");
b.Property<bool?>("HasDedicatedPdfFatQuantificationSequence")
.HasColumnType("bit")
.HasComment("是否具备专用的PDFF脂肪定量序列(CSE-MRI序列)");
b.Property<bool?>("HasT2R2Correction")
.HasColumnType("bit")
.HasComment("是否包含 T2/R2 校正(用于铁沉积校正)");
b.Property<int?>("MagneticFieldStrengthType")
.HasColumnType("int")
.HasComment("磁场强度 (1.5T / 3.0T)");
b.Property<string>("ManufacturerName")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
.HasColumnType("nvarchar(400)")
.HasComment("扫描设备厂商其他补充");
b.Property<int?>("ManufacturerType")
.HasColumnType("int")
.HasComment("扫描设备厂商");
b.Property<string>("Note")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property<string>("Parameters")
b.Property<string>("OtherEquipmentType")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
b.Property<string>("OtherSequenceSpecification")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)")
.HasComment("其他序列详细说明 (当 PdfFatQuantificationSequenceType = Other 时建议填写)");
b.Property<string>("Parameters")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)")
.HasComment("扫描设备参数");
b.Property<int?>("PdfFatQuantificationSequenceType")
.HasColumnType("int")
.HasComment("专用的PDFF脂肪定量序列类型 (当 HasDedicatedPdfFatQuantificationSequence = true 时有效)");
b.Property<string>("ScannerType")
.IsRequired()
.HasMaxLength(400)
.HasColumnType("nvarchar(400)");
.HasColumnType("nvarchar(400)")
.HasComment("扫描设备型号");
b.Property<Guid>("TrialSiteSurveyId")
.HasColumnType("uniqueidentifier");
@@ -15000,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");
@@ -15023,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");
@@ -15032,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)
@@ -15047,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)
@@ -19245,7 +19412,34 @@ namespace IRaCIS.Core.Infra.EFCore.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.VisitTask", "VisitTask")
.WithMany()
.HasForeignKey("VisitTaskId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("CreateUserRole");
b.Navigation("VisitTask");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.SegmentationVersion", b =>
{
b.HasOne("IRaCIS.Core.Domain.Models.UserRole", "CreateUserRole")
.WithMany()
.HasForeignKey("CreateUserId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("IRaCIS.Core.Domain.Models.Segmentation", "Segmentation")
.WithMany()
.HasForeignKey("SegmentationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("CreateUserRole");
b.Navigation("Segmentation");
});
modelBuilder.Entity("IRaCIS.Core.Domain.Models.ShortcutKey", b =>