Merge branch 'Test_IRC_Net8' of http://192.168.3.68:2000/XCKJ/irc-netcore-api into Test_IRC_Net8
continuous-integration/drone/push Build is passing Details

IRC_NewDev
hang 2024-09-27 16:16:09 +08:00
commit 870dda49dd
5 changed files with 47 additions and 14 deletions

View File

@ -4,6 +4,7 @@
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。 // 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//-------------------------------------------------------------------- //--------------------------------------------------------------------
using IRaCIS.Core.Domain.Share; using IRaCIS.Core.Domain.Share;
using System.Data;
namespace IRaCIS.Core.Application.Service.Reading.Dto namespace IRaCIS.Core.Application.Service.Reading.Dto
{ {
@ -283,7 +284,12 @@ namespace IRaCIS.Core.Application.Service.Reading.Dto
public decimal Data { get; set; } public decimal Data { get; set; }
} }
public class FileToDataTableDto
{
public DataTable DataTable { get; set; }
public List<string> SheetNames { get; set; }
}
/// <summary> /// <summary>
/// 阅片计算Dto /// 阅片计算Dto

View File

@ -35,12 +35,12 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
/// 从上传文件中获取Datatable /// 从上传文件中获取Datatable
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
public async Task<DataTable> GetDataTableFromUpload(IFormFile file,string pathCode,Guid trialId) public async Task<FileToDataTableDto> GetDataTableFromUpload(IFormFile file,string pathCode,Guid trialId)
{ {
FileToDataTableDto result=new FileToDataTableDto ();
DataTable result = new DataTable(); result.DataTable = new DataTable();
var fileFolder = "Upload\\"; var fileFolder = "Upload\\";
if (!Directory.Exists(fileFolder)) if (!Directory.Exists(fileFolder))
{ {
@ -59,8 +59,9 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
file.CopyTo(stream); file.CopyTo(stream);
await stream.CopyToAsync(fileStream); await stream.CopyToAsync(fileStream);
result.SheetNames= stream.GetSheetNames();
stream.Position = 0; stream.Position = 0;
result = stream.QueryAsDataTable(useHeaderRow: false); result.DataTable = stream.QueryAsDataTable(useHeaderRow: false);
} }
} }
catch (Exception) catch (Exception)
@ -89,7 +90,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var rowsToRemove = new System.Collections.Generic.List<DataRow>(); var rowsToRemove = new System.Collections.Generic.List<DataRow>();
// 遍历DataTable的每一行 // 遍历DataTable的每一行
foreach (DataRow row in result.Rows) foreach (DataRow row in result.DataTable.Rows)
{ {
bool allEmpty = true; bool allEmpty = true;
@ -113,7 +114,7 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
// 移除标记为待删除的行 // 移除标记为待删除的行
foreach (var row in rowsToRemove) foreach (var row in rowsToRemove)
{ {
result.Rows.Remove(row); result.DataTable.Rows.Remove(row);
} }
return result; return result;
} }

View File

@ -604,9 +604,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var file = request.Form.Files[0]; var file = request.Form.Files[0];
Guid visitTaskId = Guid.Parse(request.Form["VisitTaskId"]); Guid visitTaskId = Guid.Parse(request.Form["VisitTaskId"]);
var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Include(x => x.Subject).Include(x => x.TrialReadingCriterion).FirstNotNullAsync(); var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Include(x => x.Subject).Include(x => x.TrialReadingCriterion).FirstNotNullAsync();
var dataTable =await _generalCalculateService.GetDataTableFromUpload(file, "IVUSTemplate", taskinfo.TrialId); var uploadInfo =await _generalCalculateService.GetDataTableFromUpload(file, "IVUSTemplate", taskinfo.TrialId);
List<string> sheetNames = new List<string>()
{
"各匹配片段测量值","MeasuredValue"
};
if (sheetNames.Intersect(uploadInfo.SheetNames).Count() == 0)
{
throw new BusinessValidationFailedException(_localizer["IVUS_UplpadDataError"]);
}
var dataTable = uploadInfo.DataTable;
var values = new TemplateData() var values = new TemplateData()
{ {

View File

@ -44,6 +44,6 @@ namespace IRaCIS.Core.Application.Service
/// </summary> /// </summary>
/// <param name="file"></param> /// <param name="file"></param>
/// <returns></returns> /// <returns></returns>
Task<DataTable> GetDataTableFromUpload(IFormFile file, string pathCode, Guid trialId); Task<FileToDataTableDto> GetDataTableFromUpload(IFormFile file, string pathCode, Guid trialId);
} }
} }

View File

@ -471,9 +471,18 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var file = request.Form.Files[0]; var file = request.Form.Files[0];
Guid visitTaskId = Guid.Parse(request.Form["VisitTaskId"]); Guid visitTaskId = Guid.Parse(request.Form["VisitTaskId"]);
var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Include(x => x.Subject).Include(x => x.TrialReadingCriterion).FirstNotNullAsync(); var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Include(x => x.Subject).Include(x => x.TrialReadingCriterion).FirstNotNullAsync();
var dataTable = await _generalCalculateService.GetDataTableFromUpload(file, "OCTFCT", taskinfo.TrialId); var uploadInfo = await _generalCalculateService.GetDataTableFromUpload(file, "OCTFCT", taskinfo.TrialId);
List<string> sheetNames = new List<string>()
{
"FCT导入","FCT"
};
if (sheetNames.Intersect(uploadInfo.SheetNames).Count() == 0)
{
throw new BusinessValidationFailedException(_localizer["IVUS_UplpadDataError"]);
}
var dataTable = uploadInfo.DataTable;
var values = new TemplateData() var values = new TemplateData()
{ {
@ -648,9 +657,17 @@ namespace IRaCIS.Core.Application.Service.ReadingCalculate
var file = request.Form.Files[0]; var file = request.Form.Files[0];
Guid visitTaskId = Guid.Parse(request.Form["VisitTaskId"]); Guid visitTaskId = Guid.Parse(request.Form["VisitTaskId"]);
var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Include(x => x.Subject).Include(x => x.TrialReadingCriterion).FirstNotNullAsync(); var taskinfo = await _visitTaskRepository.Where(x => x.Id == visitTaskId).Include(x => x.Subject).Include(x => x.TrialReadingCriterion).FirstNotNullAsync();
var dataTable = await _generalCalculateService.GetDataTableFromUpload(file, "OCTLipidAngle", taskinfo.TrialId); var uploadInfo = await _generalCalculateService.GetDataTableFromUpload(file, "OCTLipidAngle", taskinfo.TrialId);
List<string> sheetNames = new List<string>()
{
"脂质角度","LipidAngle"
};
if (sheetNames.Intersect(uploadInfo.SheetNames).Count() == 0)
{
throw new BusinessValidationFailedException(_localizer["IVUS_UplpadDataError"]);
}
var dataTable = uploadInfo.DataTable;
var values = new TemplateData() var values = new TemplateData()
{ {