using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Domain.Share; using Microsoft.AspNetCore.Http; using MiniSoftware; using System.Data; namespace IRaCIS.Core.Application.Service { public interface IGeneralCalculateService { /// <summary> /// 获取ReadingCalculateDto /// </summary> /// <param name="visitTaskId"></param> /// <returns></returns> Task<ReadingCalculateDto> GetReadingCalculateDto(Guid visitTaskId); /// <summary> /// 获取阅片报告任务List /// </summary> /// <param name="visitTaskId"></param> /// <returns></returns> Task<List<VisitTaskInfo>> GetReadingReportTaskList(Guid visitTaskId); /// <summary> /// 添加转化任务病灶信息 /// </summary> /// <param name="visitTaskId"></param> /// <param name="beforeConvertedTaskId"></param> /// <returns></returns> Task AddConvertedTaskFocus(Guid visitTaskId, Guid beforeConvertedTaskId); /// <summary> /// 添加计算错误日志 /// </summary> /// <param name="inDto"></param> /// <param name="lesionName"></param> /// <param name="lesionType"></param> /// <returns></returns> Task LogRecord(ReadingCalculateDto inDto, string lesionName, LesionType lesionType); /// <summary> /// 从上传文件中获取Datatable /// </summary> /// <param name="file"></param> /// <returns></returns> Task<FileToDataTableDto> GetDataTableFromUpload(IFormFile file, string pathCode, Guid trialId); /// <summary> /// 获取图片 /// </summary> /// <param name="url"></param> /// <param name="savePath"></param> /// <param name="width"></param> /// <returns></returns> Task<MiniWordPicture> GetWordPicture(string url, string savePath, int width); /// <summary> /// 获取图片 /// </summary> /// <param name="url"></param> /// <param name="savePath"></param> /// <param name="width"></param> /// <returns></returns> Task<MiniWordPicture> GetWordPicture(string url, string savePath, int width, int height); /// <summary> /// 下载文件 /// </summary> /// <param name="url"></param> /// <param name="savePath"></param> /// <returns></returns> Task<string> FileDownSave(string url, string savePath); /// <summary> /// 获取并复制文件流 /// </summary> /// <param name="outputFilePath"></param> /// <returns></returns> Stream ReadAndReturnStream(string outputFilePath); /// <summary> /// 最大宽高 保持比例 /// </summary> /// <param name="url"></param> /// <param name="savePath"></param> /// <param name="width"></param> /// <param name="height"></param> /// <returns></returns> Task<MiniWordPicture> GetWordPictureMaxWL(string url, string savePath, int width, int height); /// <summary> /// 空转为横线 /// </summary> /// <param name="myDictionary"></param> /// <returns></returns> Dictionary<string, object> StringEmptyTurnedLine(Dictionary<string, object> myDictionary); /// <summary> /// 获取病灶的图片 rowinfoList要带question的信息 /// </summary> /// <param name="rowinfoList"></param> /// <param name="lesionType"></param> /// <param name="downLoadGuid"></param> /// <returns></returns> Task<List<Dictionary<string, object>>> GetLesionPic(List<ReadingTableAnswerRowInfo> rowinfoList, LesionType lesionType, Guid downLoadGuid); /// <summary> /// 获取任务问题答案 /// </summary> /// <param name="answerList">问题答案</param> /// <param name="dictionList">字典数据</param> /// <param name="unitDictionary">单位字典</param> /// <param name="taskId">任务Id</param> /// <param name="questionType">任务类型</param> /// <returns></returns> string GetTaskanswer(List<ReadingTaskQuestionAnswer>? answerList, List<Dictionary>? dictionList, List<Dictionary>? unitDictionary, Guid taskId, QuestionType questionType); /// <summary> /// 获取任务表格问题答案 /// </summary> /// <param name="tableAnswerList">表格答案</param> /// <param name="dictionList">字典</param> /// <param name="unitDictionary">单位字典</param> /// <param name="taskId">任务Id</param> /// <param name="lesionType">病灶类型</param> /// <param name="questionMark">问题标识</param> /// <param name="rowIndex">索引</param> /// <returns></returns> string GetTaskTableAnswer(List<ReadingTableQuestionAnswer>? tableAnswerList, List<Dictionary>? dictionList, List<Dictionary>? unitDictionary, Guid taskId, LesionType lesionType, QuestionMark questionMark, decimal rowIndex, bool AutoUnit = true); /// <summary> /// 获取阅片报告 /// </summary> /// <param name="visitTaskInfo"></param> /// <returns></returns> Task<string> GetReportExportNo(VisitTask visitTaskInfo); void SetPropertyDynamically(object targetObj, string targetPropName, object sourceObj, string prefix); } }