修改斑块明细表,增加单位-修改1
This commit is contained in:
@@ -40,6 +40,7 @@ using SixLabors.ImageSharp.Processing;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Diagnostics;
|
||||
using System.Globalization;
|
||||
using System.IO;
|
||||
using System.Linq.Dynamic.Core;
|
||||
using System.Reactive.Subjects;
|
||||
using System.Reflection.Metadata.Ecma335;
|
||||
@@ -74,6 +75,91 @@ namespace IRaCIS.Core.Application.Service
|
||||
{
|
||||
public static int IntValue = 100;
|
||||
|
||||
|
||||
public async Task<IResponseOutput> DealIVUSOCTDicomTag(string subjectCode, bool isUploadOss)
|
||||
{
|
||||
var trialId = Guid.Parse("01000000-AC13-0242-3AE4-08DC9B0495C6");
|
||||
|
||||
var trialCode = "ZY2024002";
|
||||
|
||||
//var subjectCodeList = new List<string>() { "04032", "12004", "04005" };
|
||||
|
||||
var list = await _dicomInstanceRepository.Where(t => t.TrialId == trialId && t.DicomStudy.SubjectVisit.IsBaseLine)
|
||||
.Where(t => t.DicomStudy.Subject.Code== subjectCode)
|
||||
.WhereIf(subjectCode == "04032", t => t.DicomStudy.ModalityForEdit == "OCT")
|
||||
.WhereIf(subjectCode == "12004", t => t.DicomStudy.ModalityForEdit == "IVUS")
|
||||
.WhereIf(subjectCode == "04005 ", t => t.DicomStudy.ModalityForEdit == "IVUS" || t.DicomStudy.ModalityForEdit == "OCT")
|
||||
.Select(t => new
|
||||
{
|
||||
SubjectCode = t.DicomStudy.Subject.Code,
|
||||
t.DicomStudy.ModalityForEdit,
|
||||
t.Path
|
||||
}).ToListAsync();
|
||||
|
||||
foreach (var item in list)
|
||||
{
|
||||
|
||||
var stream = await _IOSSService.GetStreamFromOSSAsync(item.Path);
|
||||
|
||||
var dicomFile = DicomFile.Open(stream);
|
||||
|
||||
switch (item.SubjectCode)
|
||||
{
|
||||
case "04032":
|
||||
|
||||
dicomFile.Dataset.AddOrUpdate(DicomTag.PatientID, $"{trialCode}_04032");
|
||||
dicomFile.Dataset.AddOrUpdate(DicomTag.ClinicalTrialSubjectID, "04032");
|
||||
|
||||
break;
|
||||
case "12004":
|
||||
dicomFile.Dataset.AddOrUpdate(DicomTag.PatientID, $"{trialCode}_12004");
|
||||
dicomFile.Dataset.AddOrUpdate(DicomTag.ClinicalTrialSubjectID, "12004");
|
||||
break;
|
||||
|
||||
case "04005":
|
||||
dicomFile.Dataset.AddOrUpdate(DicomTag.PatientID, $"{trialCode}_04005");
|
||||
dicomFile.Dataset.AddOrUpdate(DicomTag.ClinicalTrialSubjectID, "04005");
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
//获取原始目录 和文件名
|
||||
var folder = item.Path.Substring(0, item.Path.LastIndexOf('/')).TrimStart('/');
|
||||
var fileName = Path.GetFileName(item.Path);
|
||||
|
||||
|
||||
// 4 保存到一个 MemoryStream
|
||||
await using var output = new MemoryStream();
|
||||
dicomFile.Save(output);
|
||||
output.Position = 0;
|
||||
|
||||
|
||||
if (isUploadOss == false)
|
||||
{
|
||||
// 本地完整路径
|
||||
var localPath = Path.Combine(Directory.GetCurrentDirectory(), fileName);
|
||||
|
||||
// 写入文件
|
||||
await using var fileStream = File.Create(localPath);
|
||||
await output.CopyToAsync(fileStream);
|
||||
|
||||
// 可选:确保写入完成再关闭
|
||||
await fileStream.FlushAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
await _IOSSService.UploadToOSSAsync(output, folder, fileName, false);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return ResponseOutput.Ok();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 重建闭包表
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user