From f1a39e3b9d5289fea9f05a3e5c5505f6cd60a273 Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Mon, 24 Mar 2025 09:45:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../TumorEvaluation_IRECIST_CN_V1.docx | Bin 0 -> 15872 bytes .../Reading/Dto/ExportTumorEvaluationDto.cs | 108 ++++++++++++++++++ .../Reading/Dto/ReadingCalculateViewModel.cs | 3 + .../RECIST1Point1CalculateService.cs | 50 ++++++++ 4 files changed, 161 insertions(+) create mode 100644 IRaCIS.Core.API/wwwroot/ReadReoprtTemplate/TumorEvaluation_IRECIST_CN_V1.docx create mode 100644 IRaCIS.Core.Application/Service/Reading/Dto/ExportTumorEvaluationDto.cs diff --git a/IRaCIS.Core.API/wwwroot/ReadReoprtTemplate/TumorEvaluation_IRECIST_CN_V1.docx b/IRaCIS.Core.API/wwwroot/ReadReoprtTemplate/TumorEvaluation_IRECIST_CN_V1.docx new file mode 100644 index 0000000000000000000000000000000000000000..e23c655b97aa6055de7d79117f5afd13b57e945f GIT binary patch literal 15872 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 literal 0 HcmV?d00001 diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ExportTumorEvaluationDto.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ExportTumorEvaluationDto.cs new file mode 100644 index 000000000..dab50c7f2 --- /dev/null +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ExportTumorEvaluationDto.cs @@ -0,0 +1,108 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace IRaCIS.Core.Application.Service.Reading.Dto +{ + + public class TumorEvaluationInfo + { + public List VisitList { get; set; } + } + + public class ExportTumorEvaluationInfo + { + /// + /// 所有访视的靶病灶列表 + /// + public List VisitList { get; set; } + + /// + /// 访视一 + /// + public ExportVisitData VisitOne { get; set; } + + /// + /// 访视二 + /// + public ExportVisitData VisitTwo { get; set; } + + /// + /// 访视三 + /// + public ExportVisitData VisitThree { get; set; } + + /// + /// 靶病灶信息 + /// + public List TargetInfoList { get; set; } + + /// + /// 非靶病灶信息 + /// + public List NoTargetInfoList { get; set; } + } + + public class NoTargetInfo + { + + } + + public class TargetInfo + { + public string Title { get; set; } = string.Empty; + + public string VisitOneImgNum { get; set; } = string.Empty; + + public string VisitOneLength { get; set; } = string.Empty; + + public string VisitTwoImgNum { get; set; } = string.Empty; + + public string VisitTwoLength { get; set; } = string.Empty; + + public string VisitThreeImgNum { get; set; } = string.Empty; + + public string VisitThreeLength { get; set; } = string.Empty; + } + + public class ExportVisitData + { + /// + /// 访视名称 + /// + public string VisitName { get; set; } = string.Empty; + + /// + /// 检查日期 + /// + public string CheckDate { get; set; } = string.Empty; + + /// + /// 检查信息 + /// + public List CheckInfoList { get; set; } = new List(); + + /// + /// 检查信息字符串 + /// + public string CheckInfoStr => string.Join("/", CheckInfoList.Select(x => $"{x.Modalities}、{x.BodyPartExamined}")); + + + + } + + public class DicomStudyInfo + { + /// + /// 检查类型 + /// + public string Modalities { get; set; } = string.Empty; + + /// + /// 标记 + /// + public string BodyPartExamined { get; set; } + } +} diff --git a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs index 796d8453a..80bdb2e44 100644 --- a/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs +++ b/IRaCIS.Core.Application/Service/Reading/Dto/ReadingCalculateViewModel.cs @@ -301,6 +301,8 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto } + + public class DownLoadReadReportInDto { /// @@ -309,6 +311,7 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto public Guid VisitTaskId { get; set; } public Guid DownLoadGuid { get; set; } + } diff --git a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs index fad7dfb76..039b72a41 100644 --- a/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs +++ b/IRaCIS.Core.Application/Service/ReadingCalculate/RECIST1Point1CalculateService.cs @@ -50,6 +50,56 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate }; } + ///// + ///// 获取肿瘤评估报告 + ///// + ///// + ///// + //public async Task DownLoadTumorEvaluationStream(DownLoadReadReportInDto inDto) + //{ + // var downFile = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"wwwroot/ReadReoprtTemplate/downLoad/{inDto.DownLoadGuid}"); + // Directory.CreateDirectory(downFile); + + // var taskinfo = await _visitTaskRepository.Where(x => x.Id == inDto.VisitTaskId && x.ReadingCategory == ReadingCategory.Visit) + // .Include(x => x.TrialReadingCriterion).FirstNotNullAsync(); + // var visitInfo = await _subjectVisitRepository.Where(x => x.Id == taskinfo.SourceSubjectVisitId).Include(x => x.StudyList).FirstNotNullAsync(); + // var subjectInfo = await _subjectRepository.Where(x => x.Id == taskinfo.SubjectId).Include(x=>x.Trial).Include(x => x.SubjectPatientList).FirstNotNullAsync(); + // var subjectPatientList = await _subjectPatientRepository.Where(x => x.SubjectId == subjectInfo.Id).Include(x => x.Patient).ToListAsync(); + + // var value = new Dictionary() + // { + // { "ResearchProgramNo" ,subjectInfo.Trial.ResearchProgramNo }, // 试验方案号 + // { "SubjectName",subjectInfo.ShortName }, //患者姓名 + // { "SubjectCode",subjectPatientList.Select(x=>x.Patient).OrderByDescending(x=>x.CreateTime).Select(x=>x.PatientIdStr).FirstIsNullReturnEmpty() }, //患者编号 + + + + // { "SubjectName","" }, //患者姓名 + // { "SubjectSex", "" }, //患者性别 + // { "SubjectAge", "" }, //患者年龄 + // { "SubjectCode", "" }, //患者编号 + // { "VisitName", "" }, //访视名称 + // { "LatestScanDate", "" }, //随访日期 + // { "CriterionName", "" }, //评估标准 + // { "AssessmentResult", "" }, //评估结果 + // { "DoctorName", "" }, //医生姓名 + // { "SignTime", "" }, //签名时间 + // { "StudyInfo", new List>() }, // 检查信息 + // { "FirstVisit", "" }, + // { "SecondVisit", "" }, + // { "ThirdlyVisit", "" }, + // { "TargetInfo", new List>() }, // 靶病灶 + // { "NoTargetInfo", new List>() }, // 非把病灶 + // { "NewTargetInfo", new List>() },// 新病灶 + // { "TargetImage", "" }, // 靶病灶图片 + // { "NoTargetImage", "" }, // 非靶病灶图片 + // { "NewImage", "" }, // 新病灶图片 + // { "Result", new List>() }, // 评估结果 + // { "Curative", new List>() }, // 疗效结果 + // { "ReportNo", "" } , + // }; + //} + /// /// 下载阅片报告