修改归档路径
parent
89cf6073f3
commit
385bb1116e
|
@ -417,7 +417,7 @@ public static class FileStoreHelper
|
|||
return Path.Combine(rootPath, StaticData.Folder.TrialDataFolder, trialId.ToString(), siteId.ToString(), subjectId.ToString(), subjectVisitId.ToString(), StaticData.Folder.DicomFolder);
|
||||
}
|
||||
|
||||
public static string GetDicomInstanceFilePath(IWebHostEnvironment _hostEnvironment, Guid trialId, Guid siteId, Guid subjectId, Guid subjectVisitId, Guid studyId, Guid instanceId)
|
||||
public static (string PhysicalPath, string RelativePath) GetDicomInstanceFilePath(IWebHostEnvironment _hostEnvironment, Guid trialId, Guid siteId, Guid subjectId, Guid subjectVisitId, Guid studyId, Guid instanceId)
|
||||
{
|
||||
var rootPath = FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment);
|
||||
|
||||
|
@ -429,10 +429,17 @@ public static class FileStoreHelper
|
|||
{
|
||||
Directory.CreateDirectory(path);
|
||||
}
|
||||
return Path.Combine(path, instanceId.ToString() + ".dcm");
|
||||
|
||||
var physicalPath = Path.Combine(path, instanceId.ToString() + ".dcm");
|
||||
|
||||
var relativePath = $"/{StaticData.Folder.IRaCISDataFolder}/{StaticData.Folder.TrialDataFolder}/{trialId}/{siteId}/{subjectId}/{subjectVisitId}/{StaticData.Folder.DicomFolder}/{studyId}/{instanceId}.dcm";
|
||||
|
||||
return (physicalPath, relativePath);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 获取医生通用文件存放路径
|
||||
|
||||
public static (string PhysicalPath, string RelativePath) GetDoctorOrdinaryFilePath(IWebHostEnvironment _hostEnvironment, string fileName,Guid doctorId,string attachmentType)
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
public DateTime UpdateTime { get; set; }
|
||||
|
||||
public List<Guid> InstanceList { get; set; } = new List<Guid>();
|
||||
|
||||
public List<string> InstancePathList { get; set; } = new List<string>();
|
||||
}
|
||||
|
||||
public class DicomSeriesWithLabelDTO : DicomSeriesDTO
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace IRaCIS.Core.Application.Services
|
|||
|
||||
public async Task<bool> DicomDBDataSaveChange()
|
||||
{
|
||||
var success = await _studyRepository.SaveChangesAsync();
|
||||
var success = await _studyRepository.SaveChangesAsync();
|
||||
return success;
|
||||
}
|
||||
|
||||
|
@ -62,17 +62,17 @@ namespace IRaCIS.Core.Application.Services
|
|||
|
||||
if (instanceUidList.Any(t => t == sopInstanceUid))
|
||||
{
|
||||
return (IdentifierHelper.CreateGuid(studyInstanceUid, addtionalInfo.TrialId.ToString()), string.Empty) ;
|
||||
return (IdentifierHelper.CreateGuid(studyInstanceUid, addtionalInfo.TrialId.ToString()), string.Empty);
|
||||
}
|
||||
|
||||
|
||||
var anonymize_AddFixedFiledList = _provider.Get<List<SystemAnonymization>>(StaticData.Anonymize.Anonymize_AddFixedFiled).Value ??new List<SystemAnonymization>();
|
||||
var anonymize_AddIRCInfoFiledList = _provider.Get<List<SystemAnonymization>>(StaticData.Anonymize.Anonymize_AddIRCInfoFiled).Value ??new List<SystemAnonymization>();
|
||||
var anonymize_AddFixedFiledList = _provider.Get<List<SystemAnonymization>>(StaticData.Anonymize.Anonymize_AddFixedFiled).Value ?? new List<SystemAnonymization>();
|
||||
var anonymize_AddIRCInfoFiledList = _provider.Get<List<SystemAnonymization>>(StaticData.Anonymize.Anonymize_AddIRCInfoFiled).Value ?? new List<SystemAnonymization>();
|
||||
var anonymize_FixedFieldList = _provider.Get<List<SystemAnonymization>>(StaticData.Anonymize.Anonymize_FixedField).Value ?? new List<SystemAnonymization>();
|
||||
var anonymize_IRCInfoFieldList = _provider.Get<List<SystemAnonymization>>(StaticData.Anonymize.Anonymize_IRCInfoField).Value ?? new List<SystemAnonymization>();
|
||||
|
||||
|
||||
if(anonymize_AddFixedFiledList.Union(anonymize_AddIRCInfoFiledList).Union(anonymize_FixedFieldList).Union(anonymize_IRCInfoFieldList) .Count()==0)
|
||||
if (anonymize_AddFixedFiledList.Union(anonymize_AddIRCInfoFiledList).Union(anonymize_FixedFieldList).Union(anonymize_IRCInfoFieldList).Count() == 0)
|
||||
{
|
||||
throw new BusinessValidationFailedException("未取到缓存匿名化配置数据,上传停止,请联系开发人员核实");
|
||||
}
|
||||
|
@ -113,7 +113,7 @@ namespace IRaCIS.Core.Application.Services
|
|||
}
|
||||
if (dicomTag == DicomTag.PatientID)
|
||||
{
|
||||
dataset.AddOrUpdate(dicomTag, addtionalInfo.TrialCode+"_"+ addtionalInfo.SubjectCode);
|
||||
dataset.AddOrUpdate(dicomTag, addtionalInfo.TrialCode + "_" + addtionalInfo.SubjectCode);
|
||||
|
||||
}
|
||||
|
||||
|
@ -127,14 +127,14 @@ namespace IRaCIS.Core.Application.Services
|
|||
dicomSeries.DicomStudy = dicomStudy;
|
||||
|
||||
|
||||
var createtime=DateTime.Now;
|
||||
|
||||
var createtime = DateTime.Now;
|
||||
|
||||
if (isStudyNeedAdd)
|
||||
{
|
||||
// 添加检查
|
||||
await _studyRepository.AddAsync(dicomStudy);
|
||||
}
|
||||
|
||||
|
||||
if (isSeriesNeedAdd)
|
||||
{
|
||||
dicomSeries.DicomStudy = dicomStudy;
|
||||
|
@ -143,12 +143,12 @@ namespace IRaCIS.Core.Application.Services
|
|||
}
|
||||
|
||||
|
||||
|
||||
await _instanceRepository.AddAsync(dicomInstance);
|
||||
var (physicalPath, relativePath) = FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, dicomInstance.Id);
|
||||
|
||||
dicomInstance.Path = relativePath;
|
||||
|
||||
await _instanceRepository.AddAsync(dicomInstance);
|
||||
|
||||
string filePath = FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, dicomInstance.Id);
|
||||
|
||||
var samplesPerPixel = dataset.GetSingleValueOrDefault(DicomTag.SamplesPerPixel, string.Empty);
|
||||
var photometricInterpretation = dataset.GetSingleValueOrDefault(DicomTag.PhotometricInterpretation, string.Empty);
|
||||
|
@ -156,23 +156,23 @@ namespace IRaCIS.Core.Application.Services
|
|||
{
|
||||
if (dataset.InternalTransferSyntax.IsEncapsulated)
|
||||
{
|
||||
await dicomFile.SaveAsync(filePath);
|
||||
await dicomFile.SaveAsync(physicalPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
await dicomFile.Clone(DicomTransferSyntax.JPEGLSLossless).SaveAsync(filePath);
|
||||
await dicomFile.Clone(DicomTransferSyntax.JPEGLSLossless).SaveAsync(physicalPath);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (dataset.InternalTransferSyntax.IsEncapsulated) await dicomFile.SaveAsync(filePath);
|
||||
else await dicomFile.Clone(DicomTransferSyntax.RLELossless).SaveAsync(filePath); //RLELossless
|
||||
if (dataset.InternalTransferSyntax.IsEncapsulated) await dicomFile.SaveAsync(physicalPath);
|
||||
else await dicomFile.Clone(DicomTransferSyntax.RLELossless).SaveAsync(physicalPath); //RLELossless
|
||||
}
|
||||
return (dicomInstance.StudyId, dicomStudy.StudyCode);
|
||||
}
|
||||
|
||||
|
||||
private DicomStudy CreateDicomStudy(DicomDataset dataset, DicomTrialSiteSubjectInfo addtionalInfo, out bool isStudyNeedAdd)
|
||||
private DicomStudy CreateDicomStudy(DicomDataset dataset, DicomTrialSiteSubjectInfo addtionalInfo, out bool isStudyNeedAdd)
|
||||
{
|
||||
|
||||
string studyInstanceUid = dataset.GetString(DicomTag.StudyInstanceUID);
|
||||
|
@ -200,7 +200,7 @@ namespace IRaCIS.Core.Application.Services
|
|||
|
||||
var modality = dataset.GetSingleValueOrDefault(DicomTag.Modality, string.Empty);
|
||||
|
||||
var dicModalityList = _dictionaryRepository.Where(t => t.Code == "Modality").SelectMany(t => t.ChildList.Select(c => c.Value)).ToList();
|
||||
var dicModalityList = _dictionaryRepository.Where(t => t.Code == "Modality").SelectMany(t => t.ChildList.Select(c => c.Value)).ToList();
|
||||
|
||||
dicomStudy = new DicomStudy
|
||||
{
|
||||
|
@ -251,15 +251,15 @@ namespace IRaCIS.Core.Application.Services
|
|||
var dbStudyCodeIntMax = _studyRepository.Where(s => s.TrialId == addtionalInfo.TrialId).Select(t => t.Code).DefaultIfEmpty().Max();
|
||||
|
||||
//获取缓存中的值 并发的时候,需要记录,已被占用的值 这样其他线程在此占用的最大的值上递增
|
||||
var cacheMaxCodeInt = _provider.Get<int>($"{addtionalInfo.TrialId }_{ StaticData.CacheKey.StudyMaxCode}").Value;
|
||||
var cacheMaxCodeInt = _provider.Get<int>($"{addtionalInfo.TrialId}_{StaticData.CacheKey.StudyMaxCode}").Value;
|
||||
|
||||
int currentNextCodeInt = cacheMaxCodeInt > dbStudyCodeIntMax ? cacheMaxCodeInt + 1 : dbStudyCodeIntMax + 1;
|
||||
|
||||
dicomStudy.Code = currentNextCodeInt;
|
||||
|
||||
dicomStudy.StudyCode = AppSettings.GetCodeStr(currentNextCodeInt, nameof(DicomStudy));
|
||||
dicomStudy.StudyCode = AppSettings.GetCodeStr(currentNextCodeInt, nameof(DicomStudy));
|
||||
|
||||
_provider.Set<int>($"{addtionalInfo.TrialId }_{ StaticData.CacheKey.StudyMaxCode}", dicomStudy.Code, TimeSpan.FromMinutes(30));
|
||||
_provider.Set<int>($"{addtionalInfo.TrialId}_{StaticData.CacheKey.StudyMaxCode}", dicomStudy.Code, TimeSpan.FromMinutes(30));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -56,11 +56,11 @@ namespace IRaCIS.Core.Application.Services
|
|||
|
||||
DicomStudy dicomStudy = await _studyRepository.FirstOrDefaultAsync(s => s.Id == dicomInstance.StudyId).IfNullThrowException();
|
||||
|
||||
path = FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, dicomInstance.Id);
|
||||
var(physicalPath, relativePath) = FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, dicomInstance.Id);
|
||||
|
||||
|
||||
|
||||
using (var sw = ImageHelper.RenderPreviewJpeg(path))
|
||||
using (var sw = ImageHelper.RenderPreviewJpeg(physicalPath))
|
||||
{
|
||||
var bytes = new byte[sw.Length];
|
||||
sw.Read(bytes, 0, bytes.Length);
|
||||
|
@ -85,11 +85,11 @@ namespace IRaCIS.Core.Application.Services
|
|||
//}
|
||||
|
||||
//else
|
||||
filePath = FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, dicomInstance.Id);
|
||||
var (physicalPath, relativePath) = FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, dicomInstance.Id);
|
||||
|
||||
|
||||
|
||||
using (var sw = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read))
|
||||
using (var sw = new FileStream(physicalPath, FileMode.Open, FileAccess.Read, FileShare.Read))
|
||||
{
|
||||
var bytes = new byte[sw.Length];
|
||||
sw.Read(bytes, 0, bytes.Length);
|
||||
|
|
|
@ -64,7 +64,9 @@ namespace IRaCIS.Core.Application.Services
|
|||
});
|
||||
}
|
||||
|
||||
var idList = await _instanceRepository.Where(s => s.StudyId == studyId).ToListAsync();//.GroupBy(u => u.SeriesId);
|
||||
var idList = await _instanceRepository.Where(s => s.StudyId == studyId).OrderBy(t=>t.SeriesId).ThenBy(t => t.InstanceNumber)
|
||||
.ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime)
|
||||
.Select(t=>new {t.SeriesId, t.Id,t.Path}).ToListAsync();//.GroupBy(u => u.SeriesId);
|
||||
|
||||
foreach (var item in seriesList)
|
||||
{
|
||||
|
@ -74,8 +76,12 @@ namespace IRaCIS.Core.Application.Services
|
|||
}
|
||||
else
|
||||
{
|
||||
item.InstanceList = idList.Where(s => s.SeriesId == item.Id).OrderBy(t => t.InstanceNumber)
|
||||
.ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime).Select(u => u.Id).ToList();
|
||||
//item.InstanceList = idList.Where(s => s.SeriesId == item.Id).OrderBy(t => t.InstanceNumber)
|
||||
// .ThenBy(s => s.InstanceTime).ThenBy(s => s.CreateTime).Select(u => u.Id).ToList();
|
||||
|
||||
item.InstanceList = idList.Where(s => s.SeriesId == item.Id).Select(u => u.Id).ToList();
|
||||
|
||||
item.InstancePathList = idList.Where(s => s.SeriesId == item.Id).Select(u => u.Path).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -97,9 +103,9 @@ namespace IRaCIS.Core.Application.Services
|
|||
|
||||
DicomStudy dicomStudy = await _studyRepository.FirstOrDefaultAsync(s => s.Id == dicomInstance.StudyId).IfNullThrowException();
|
||||
|
||||
path = FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, dicomInstance.Id);
|
||||
var (physicalPath, relativePath) = FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, dicomInstance.Id);
|
||||
|
||||
using (var sw = ImageHelper.RenderPreviewJpeg(path))
|
||||
using (var sw = ImageHelper.RenderPreviewJpeg(physicalPath))
|
||||
{
|
||||
var bytes = new byte[sw.Length];
|
||||
sw.Read(bytes, 0, bytes.Length);
|
||||
|
|
|
@ -324,7 +324,9 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
|||
DicomStudy dicomStudy = await _repository.FirstOrDefaultAsync<DicomStudy>(s => s.Id == dicomInstance.StudyId);
|
||||
if (dicomStudy != null)
|
||||
{
|
||||
path = FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, dicomInstance.Id);
|
||||
var( physicalPath ,relativePath )= FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, dicomInstance.Id);
|
||||
|
||||
path = physicalPath;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -780,12 +780,12 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
instanceIdList.ForEach(t =>
|
||||
{
|
||||
var dicomStudy = new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId };
|
||||
var path =
|
||||
var (physicalPath, relativePath) =
|
||||
FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, t.InstanceId);
|
||||
|
||||
if (System.IO.File.Exists(path))
|
||||
if (System.IO.File.Exists(physicalPath))
|
||||
{
|
||||
File.Delete(path);
|
||||
File.Delete(physicalPath);
|
||||
}
|
||||
|
||||
});
|
||||
|
@ -1365,13 +1365,13 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
instanceIdList.ForEach(t =>
|
||||
{
|
||||
var dicomStudy = new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId };
|
||||
var path =
|
||||
var (physicalPath, relativePath) =
|
||||
|
||||
FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, t.InstanceId);
|
||||
|
||||
if (System.IO.File.Exists(path))
|
||||
if (System.IO.File.Exists(physicalPath))
|
||||
{
|
||||
File.Delete(path);
|
||||
File.Delete(physicalPath);
|
||||
}
|
||||
|
||||
});
|
||||
|
@ -1428,13 +1428,13 @@ namespace IRaCIS.Core.Application.Image.QA
|
|||
instanceIdList.ForEach(t =>
|
||||
{
|
||||
var dicomStudy = new DicomStudy() { Id = t.StudyId, SubjectId = t.SubjectId, TrialId = trialId, SiteId = t.SiteId, SubjectVisitId = subjectVisitId };
|
||||
var path =
|
||||
var(physicalPath, relativePath) =
|
||||
|
||||
FileStoreHelper.GetDicomInstanceFilePath(_hostEnvironment, dicomStudy.TrialId, dicomStudy.SiteId, dicomStudy.SubjectId, dicomStudy.SubjectVisitId, dicomStudy.Id, t.InstanceId);
|
||||
|
||||
if (System.IO.File.Exists(path))
|
||||
if (System.IO.File.Exists(physicalPath))
|
||||
{
|
||||
File.Delete(path);
|
||||
File.Delete(physicalPath);
|
||||
}
|
||||
|
||||
});
|
||||
|
|
|
@ -148,8 +148,17 @@ namespace IRaCIS.Core.Application.Service
|
|||
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
||||
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName));
|
||||
|
||||
|
||||
|
||||
CreateMap<VisitTask, RECIST1Point1EvaluationOfTumorEfficacyExport>()
|
||||
.ForMember(o => o.OverallTumorEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.Tumor).FirstOrDefault().Answer ))
|
||||
.ForMember(o => o.TargetlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.TargetLesion).FirstOrDefault().Answer))
|
||||
.ForMember(o => o.NoneTargetlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.NoTargetLesion).FirstOrDefault().Answer))
|
||||
.ForMember(o => o.IsExistNewlesionEvaluationResult, t => t.MapFrom(u => u.ReadingTaskQuestionAnswerList.Where(c => c.ReadingQuestionTrial.QuestionType == QuestionType.NewLesions).FirstOrDefault().Answer))
|
||||
|
||||
.ForMember(o => o.TrialSiteCode, t => t.MapFrom(u => u.Subject.TrialSite.TrialSiteCode))
|
||||
.ForMember(o => o.SubjectCode, t => t.MapFrom(u => u.Subject.Code))
|
||||
.ForMember(o => o.UserName, t => t.MapFrom(u => u.DoctorUser.UserName));
|
||||
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
using BeetleX.BNR;
|
||||
using IRaCIS.Core.Application.Service;
|
||||
using IRaCIS.Core.Domain.Share;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.Caching.Distributed;
|
||||
using System.Text.RegularExpressions;
|
||||
|
@ -105,9 +106,16 @@ namespace IRaCIS.Application.Services
|
|||
return findStr;
|
||||
}
|
||||
[HttpPost]
|
||||
public async Task<IActionResult> Get(TestModel testModel)
|
||||
public async Task Get(TestModel testModel)
|
||||
{
|
||||
|
||||
|
||||
//update DicomInstance set Path = '/IRaCISData/TrialData/' + cast(DicomInstance.TrialId as varchar) + '/' + DicomInstance.SiteId + '/' + DicomInstance.SubjectId + '/' + DicomInstance.SubjectVisitId + '/Dicom/' + DicomInstance.StudyId + '/' + DicomInstance.Id + '.dcm'
|
||||
|
||||
|
||||
await _repository.BatchUpdateAsync<DicomInstance>(u=>u.Id!=Guid.Empty,t => new DicomInstance() { Path = $"/{StaticData.Folder.IRaCISDataFolder}/{StaticData.Folder.TrialDataFolder}/{t.TrialId}/{t.SiteId}/{t.SubjectId}/{t.SubjectVisitId}/{StaticData.Folder.DicomFolder}/{t.StudyId}/{t.Id}.dcm" });
|
||||
|
||||
|
||||
// Load a document.
|
||||
//using (var document = DocX.Load(Path.Combine(_hostEnvironment.ContentRootPath, "ReplaceText.docx")))
|
||||
//{
|
||||
|
@ -126,7 +134,7 @@ namespace IRaCIS.Application.Services
|
|||
// }
|
||||
|
||||
//}
|
||||
return await NpoiWordHelper.TemplateExportWordAsync(Path.Combine(_hostEnvironment.ContentRootPath, "ReplaceText.docx"), new { test = "xiugai", ZZZZ = "ModiffyZZZZ" }, null, _hostEnvironment);
|
||||
//return await NpoiWordHelper.TemplateExportWordAsync(Path.Combine(_hostEnvironment.ContentRootPath, "ReplaceText.docx"), new { test = "xiugai", ZZZZ = "ModiffyZZZZ" }, null, _hostEnvironment);
|
||||
|
||||
//_cache.SetString("test" , "cacheStr");
|
||||
|
||||
|
|
|
@ -46,5 +46,8 @@ namespace IRaCIS.Core.Domain.Models
|
|||
public DateTime CreateTime { get; set; } = DateTime.Now;
|
||||
public Guid UpdateUserId { get; set; }
|
||||
public DateTime UpdateTime { get; set; } = DateTime.Now;
|
||||
|
||||
|
||||
public string Path { get; set; }
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue