屏蔽swager 报错接口

Test_IRC_Net10
hang 2026-06-11 09:44:44 +08:00
parent 01a79e0612
commit b9f9af06f4
3 changed files with 186 additions and 182 deletions

View File

@ -3699,29 +3699,6 @@
<param name="code"></param> <param name="code"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="T:IRaCIS.Core.Application.Service.MinimalApiService.FileToPDFService">
<summary>
上传文件转PDF 或者给url 这边下载然后转PDF
</summary>
<param name="_hostEnvironment"></param>
</member>
<member name="M:IRaCIS.Core.Application.Service.MinimalApiService.FileToPDFService.#ctor(Microsoft.AspNetCore.Hosting.IWebHostEnvironment)">
<summary>
上传文件转PDF 或者给url 这边下载然后转PDF
</summary>
<param name="_hostEnvironment"></param>
</member>
<!-- Badly formed XML comment ignored for member "T:IRaCIS.Core.Application.Service.MinimalApiService.TestMinimalApiService" -->
<!-- Badly formed XML comment ignored for member "M:IRaCIS.Core.Application.Service.MinimalApiService.TestMinimalApiService.#ctor(IRaCIS.Core.Domain.Share.IUserInfo,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Infra.EFCore.TestLength})" -->
<member name="M:IRaCIS.Core.Application.Service.MinimalApiService.TestMinimalApiService.TestEfcoreJson">
<summary>
测试efcore json 列支持情况
https://devblogs.microsoft.com/dotnet/array-mapping-in-ef-core-8/
</summary>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.HIRActivateService.GetAuthorizationCodeInfo(System.String,Microsoft.Extensions.Options.IOptionsMonitor{IRaCIS.Application.Contracts.SystemHospitalOption})"> <member name="M:IRaCIS.Core.Application.Service.HIRActivateService.GetAuthorizationCodeInfo(System.String,Microsoft.Extensions.Options.IOptionsMonitor{IRaCIS.Application.Contracts.SystemHospitalOption})">
<summary> <summary>
获取授权码明文信息 获取授权码明文信息
@ -3884,6 +3861,15 @@
The ID token, which can be used to verify the identity of the user. The ID token, which can be used to verify the identity of the user.
</summary> </summary>
</member> </member>
<!-- Badly formed XML comment ignored for member "T:IRaCIS.Core.Application.Service.MinimalApiService.TestMinimalApiService" -->
<!-- Badly formed XML comment ignored for member "M:IRaCIS.Core.Application.Service.MinimalApiService.TestMinimalApiService.#ctor(IRaCIS.Core.Domain.Share.IUserInfo,IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Infra.EFCore.TestLength})" -->
<member name="M:IRaCIS.Core.Application.Service.MinimalApiService.TestMinimalApiService.TestEfcoreJson">
<summary>
测试efcore json 列支持情况
https://devblogs.microsoft.com/dotnet/array-mapping-in-ef-core-8/
</summary>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.QCCommon.VerifyIsCRCSubmmitAsync(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Domain.Share.IUserInfo,System.Nullable{System.Guid})"> <member name="M:IRaCIS.Core.Application.Service.QCCommon.VerifyIsCRCSubmmitAsync(IRaCIS.Core.Infra.EFCore.IRepository{IRaCIS.Core.Domain.Models.SubjectVisit},IRaCIS.Core.Domain.Share.IUserInfo,System.Nullable{System.Guid})">
<summary> <summary>
验证CRC 是否已提交 已提交 就不允许进行任何操作如果是IQC 那么还验证是否是当前任务领取人 验证CRC 是否已提交 已提交 就不允许进行任何操作如果是IQC 那么还验证是否是当前任务领取人
@ -9741,6 +9727,11 @@
任务Id 任务Id
</summary> </summary>
</member> </member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.NoneDicomMarkInfo.MarkId">
<summary>
标记的唯一标识符
</summary>
</member>
<member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetCustomTagInDto.VisitTaskId"> <member name="P:IRaCIS.Core.Application.Service.Reading.Dto.GetCustomTagInDto.VisitTaskId">
<summary> <summary>
任务Id 任务Id
@ -14836,6 +14827,13 @@
<param name="inDto"></param> <param name="inDto"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.GetNoneDicomMarkList(IRaCIS.Core.Application.Service.Reading.Dto.GetMarkListInDto)">
<summary>
获取非DICOM标记信息
</summary>
<param name="inDto"></param>
<returns></returns>
</member>
<member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.GetManualList(IRaCIS.Core.Application.Service.Reading.Dto.GetManualListInDto)"> <member name="M:IRaCIS.Core.Application.Service.ReadingImageTaskService.GetManualList(IRaCIS.Core.Application.Service.Reading.Dto.GetManualListInDto)">
<summary> <summary>
获取手册 获取手册
@ -17510,17 +17508,17 @@
</member> </member>
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Question"> <member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Question">
<summary> <summary>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 质疑
</summary> </summary>
</member> </member>
<member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Consistency"> <member name="F:IRaCIS.Core.Application.ViewModel.AccessToDialogueEnum.Consistency">
<summary> <summary>
һ<EFBFBD><EFBFBD><EFBFBD>Ժ˲<EFBFBD> 一致性核查
</summary> </summary>
</member> </member>
<member name="T:IRaCIS.Core.Application.ViewModel.CopyFrontAuditConfigItemDto"> <member name="T:IRaCIS.Core.Application.ViewModel.CopyFrontAuditConfigItemDto">
<summary> <summary>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 复制
</summary> </summary>
</member> </member>
<member name="T:IRaCIS.Core.Application.ViewModel.SystemNoticeView"> <member name="T:IRaCIS.Core.Application.ViewModel.SystemNoticeView">

View File

@ -1,137 +1,137 @@
using IRaCIS.Core.Application.Helper; //using IRaCIS.Core.Application.Helper;
using MassTransit; //using MassTransit;
using Microsoft.AspNetCore.Authorization; //using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Builder; //using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting; //using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http; //using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; //using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.StaticFiles; //using Microsoft.AspNetCore.StaticFiles;
using RestSharp; //using RestSharp;
using SharpCompress.Common; //using SharpCompress.Common;
using System; //using System;
using System.Collections.Generic; //using System.Collections.Generic;
using System.Linq; //using System.Linq;
using System.Text; //using System.Text;
using System.Threading.Tasks; //using System.Threading.Tasks;
namespace IRaCIS.Core.Application.Service.MinimalApiService //namespace IRaCIS.Core.Application.Service.MinimalApiService
{ //{
/// <summary> // /// <summary>
/// 上传文件转PDF 或者给url 这边下载然后转PDF // /// 上传文件转PDF 或者给url 这边下载然后转PDF
/// // ///
/// </summary> // /// </summary>
/// <param name="_hostEnvironment"></param> // /// <param name="_hostEnvironment"></param>
[ApiExplorerSettings(GroupName = "Institution")] // [ApiExplorerSettings(GroupName = "Institution")]
public class FileToPDFService(IWebHostEnvironment _hostEnvironment) : ServiceBase // public class FileToPDFService(IWebHostEnvironment _hostEnvironment) : ServiceBase
{ // {
[AllowAnonymous] // [AllowAnonymous]
[RoutePattern(HttpMethod = "Post")] // [RoutePattern(HttpMethod = "Post")]
public async Task<IResult> UploadFileAsync([FromForm] IFormFile file) // public async Task<IResult> UploadFileAsync([FromForm] IFormFile file)
{ // {
var tempFileName = NewId.NextGuid() + file.FileName; // var tempFileName = NewId.NextGuid() + file.FileName;
var tempPDFName = Path.GetFileNameWithoutExtension(tempFileName) + ".pdf"; // var tempPDFName = Path.GetFileNameWithoutExtension(tempFileName) + ".pdf";
// 获取wwwroot目录 // // 获取wwwroot目录
var wwwRootPath = Path.Combine(FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment), "temp"); // var wwwRootPath = Path.Combine(FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment), "temp");
// 检查wwwroot/temp目录是否存在不存在则创建 // // 检查wwwroot/temp目录是否存在不存在则创建
if (!Directory.Exists(wwwRootPath)) // if (!Directory.Exists(wwwRootPath))
{ // {
Directory.CreateDirectory(wwwRootPath); // Directory.CreateDirectory(wwwRootPath);
} // }
// 文件保存路径 // // 文件保存路径
var pdfFilePath = Path.Combine(wwwRootPath, tempPDFName); // var pdfFilePath = Path.Combine(wwwRootPath, tempPDFName);
var tempFilePath = Path.Combine(wwwRootPath, tempFileName); // var tempFilePath = Path.Combine(wwwRootPath, tempFileName);
using var stream = File.OpenWrite(tempFilePath); // using var stream = File.OpenWrite(tempFilePath);
await file.CopyToAsync(stream); // await file.CopyToAsync(stream);
FileConvertHelper.ConvertWordToPdf(tempFilePath, Path.GetDirectoryName(pdfFilePath)); // FileConvertHelper.ConvertWordToPdf(tempFilePath, Path.GetDirectoryName(pdfFilePath));
var fileBytes = await File.ReadAllBytesAsync(pdfFilePath); // var fileBytes = await File.ReadAllBytesAsync(pdfFilePath);
// 清理临时上传的文件和pdf // // 清理临时上传的文件和pdf
if (File.Exists(pdfFilePath)) // if (File.Exists(pdfFilePath))
{ // {
File.Delete(pdfFilePath); // File.Delete(pdfFilePath);
} // }
if (File.Exists(tempFilePath)) // if (File.Exists(tempFilePath))
{ // {
File.Delete(tempFilePath); // File.Delete(tempFilePath);
} // }
new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(tempPDFName), out var contentType); // new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(tempPDFName), out var contentType);
return Results.File(fileBytes, contentType); // return Results.File(fileBytes, contentType);
} // }
public async Task<IResult> GetPDFFileAsync(string fileUrl) // public async Task<IResult> GetPDFFileAsync(string fileUrl)
{ // {
var tempFileName = NewId.NextGuid() + Path.GetFileName(fileUrl); // var tempFileName = NewId.NextGuid() + Path.GetFileName(fileUrl);
var tempPDFName = Path.GetFileNameWithoutExtension(tempFileName) + ".pdf"; // var tempPDFName = Path.GetFileNameWithoutExtension(tempFileName) + ".pdf";
// 获取wwwroot目录 // // 获取wwwroot目录
var wwwRootPath = Path.Combine(FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment), "temp"); // var wwwRootPath = Path.Combine(FileStoreHelper.GetIRaCISRootDataFolder(_hostEnvironment), "temp");
// 检查wwwroot/temp目录是否存在不存在则创建 // // 检查wwwroot/temp目录是否存在不存在则创建
if (!Directory.Exists(wwwRootPath)) // if (!Directory.Exists(wwwRootPath))
{ // {
Directory.CreateDirectory(wwwRootPath); // Directory.CreateDirectory(wwwRootPath);
} // }
// 文件保存路径 // // 文件保存路径
var pdfFilePath = Path.Combine(wwwRootPath, tempPDFName); // var pdfFilePath = Path.Combine(wwwRootPath, tempPDFName);
var tempFilePath = Path.Combine(wwwRootPath, tempFileName); // var tempFilePath = Path.Combine(wwwRootPath, tempFileName);
//请求url获取文件 // //请求url获取文件
var client = new RestClient(fileUrl); // var client = new RestClient(fileUrl);
var request = new RestRequest(fileUrl, Method.Get); // var request = new RestRequest(fileUrl, Method.Get);
var response = await client.ExecuteAsync(request); // var response = await client.ExecuteAsync(request);
// 检查响应是否成功 // // 检查响应是否成功
if (response.IsSuccessful) // if (response.IsSuccessful)
{ // {
// 将响应内容写入到本地文件 // // 将响应内容写入到本地文件
await File.WriteAllBytesAsync(tempFilePath, response.RawBytes); // await File.WriteAllBytesAsync(tempFilePath, response.RawBytes);
FileConvertHelper.ConvertWordToPdf(tempFilePath, Path.GetDirectoryName(pdfFilePath)); // FileConvertHelper.ConvertWordToPdf(tempFilePath, Path.GetDirectoryName(pdfFilePath));
var fileBytes = await File.ReadAllBytesAsync(pdfFilePath); // var fileBytes = await File.ReadAllBytesAsync(pdfFilePath);
// 清理临时上传的文件和pdf // // 清理临时上传的文件和pdf
if (File.Exists(pdfFilePath)) // if (File.Exists(pdfFilePath))
{ // {
File.Delete(pdfFilePath); // File.Delete(pdfFilePath);
} // }
if (File.Exists(tempFilePath)) // if (File.Exists(tempFilePath))
{ // {
File.Delete(tempFilePath); // File.Delete(tempFilePath);
} // }
new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(tempPDFName), out var contentType); // new FileExtensionContentTypeProvider().Mappings.TryGetValue(Path.GetExtension(tempPDFName), out var contentType);
return Results.File(fileBytes, contentType); // return Results.File(fileBytes, contentType);
} // }
else // else
{ // {
Console.WriteLine($"下载文件失败: {response.ErrorMessage}"); // Console.WriteLine($"下载文件失败: {response.ErrorMessage}");
return Results.Problem("下载文件失败", statusCode: StatusCodes.Status500InternalServerError); // return Results.Problem("下载文件失败", statusCode: StatusCodes.Status500InternalServerError);
} // }
} // }
} // }
} //}

View File

@ -49,6 +49,7 @@ namespace IRaCIS.Core.Application.Service
IRepository<DicomSeries> _dicomSeriesRepository, IRepository<DicomSeries> _dicomSeriesRepository,
IRepository<UserRole> _userRoleRepository, IRepository<UserRole> _userRoleRepository,
IRepository<TrialBodyPart> _trialBodyPartRepository, IRepository<TrialBodyPart> _trialBodyPartRepository,
IRepository<SubjectVisit> _subjectVisitRepository,
IOSSService _IOSSService, IOSSService _IOSSService,
IDistributedLockProvider _distributedLockProvider, IDistributedLockProvider _distributedLockProvider,
ILogger<TestService> _logger, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService ILogger<TestService> _logger, IMapper _mapper, IUserInfo _userInfo, IStringLocalizer _localizer) : BaseService
@ -56,6 +57,7 @@ namespace IRaCIS.Core.Application.Service
public static int IntValue = 100; public static int IntValue = 100;
public class ModelVerifyCommand public class ModelVerifyCommand
{ {
public int? IntNUllValue { get; set; } public int? IntNUllValue { get; set; }
@ -219,72 +221,72 @@ namespace IRaCIS.Core.Application.Service
#region 数据库查询 #region 数据库查询
// var downloadInfo = _trialRepository.Where(t => t.Id == trialId).Select(t => new // var downloadInfo = _trialRepository.Where(t => t.Id == trialId).Select(t => new
// { // {
// t.ResearchProgramNo, // t.ResearchProgramNo,
// t.TrialCode, // t.TrialCode,
// VisitList = t.SubjectVisitList.Where(t => t.VisitTaskList.Any(t => t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState != ReadingTaskState.HaveSigned && t.SourceSubjectVisitId != null && t.DoctorUserId != null)) // VisitList = t.SubjectVisitList.Where(t => t.VisitTaskList.Any(t => t.TaskState == TaskState.Effect && t.ReadingCategory == ReadingCategory.Visit && t.ReadingTaskState != ReadingTaskState.HaveSigned && t.SourceSubjectVisitId != null && t.DoctorUserId != null))
// //.Where(t=>subjectCodeList.Contains(t.Subject.Code)) // //.Where(t=>subjectCodeList.Contains(t.Subject.Code))
// .Select(sv => new // .Select(sv => new
// { // {
// SubjectVisitId = sv.Id, // SubjectVisitId = sv.Id,
// TrialSiteCode = sv.TrialSite.TrialSiteCode, // TrialSiteCode = sv.TrialSite.TrialSiteCode,
// SubjectCode = sv.Subject.Code, // SubjectCode = sv.Subject.Code,
// VisitName = sv.VisitName, // VisitName = sv.VisitName,
// VisitNum = sv.VisitNum, // VisitNum = sv.VisitNum,
// StudyList = sv.StudyList.Select(u => new // StudyList = sv.StudyList.Select(u => new
// { // {
// StudyId = u.Id, // StudyId = u.Id,
// u.PatientId, // u.PatientId,
// u.StudyTime, // u.StudyTime,
// u.StudyCode, // u.StudyCode,
// u.StudyInstanceUid, // u.StudyInstanceUid,
// u.StudyDIRPath, // u.StudyDIRPath,
// SeriesList = u.SeriesList.Where(t => t.IsReading).Select(z => new // SeriesList = u.SeriesList.Where(t => t.IsReading).Select(z => new
// { // {
// z.Modality, // z.Modality,
// InstancePathList = z.DicomInstanceList.Where(t => t.IsReading).Select(k => new // InstancePathList = z.DicomInstanceList.Where(t => t.IsReading).Select(k => new
// { // {
// InstanceId = k.Id, // InstanceId = k.Id,
// k.Path, // k.Path,
// k.IsEncapsulated, // k.IsEncapsulated,
// k.NumberOfFrames, // k.NumberOfFrames,
// }).ToList() // }).ToList()
// }) // })
// }).ToList(), // }).ToList(),
// NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => t.IsReading).Select(nd => new // NoneDicomStudyList = sv.NoneDicomStudyList.Where(t => t.IsReading).Select(nd => new
// { // {
// nd.Modality, // nd.Modality,
// nd.StudyCode, // nd.StudyCode,
// nd.ImageDate, // nd.ImageDate,
// FileList = nd.NoneDicomFileList.Where(t => t.IsReading).Select(file => new // FileList = nd.NoneDicomFileList.Where(t => t.IsReading).Select(file => new
// { // {
// file.FileName, // file.FileName,
// file.Path, // file.Path,
// file.FileType // file.FileType
// }).ToList() // }).ToList()
// }).ToList() // }).ToList()
// }).OrderBy(t => t.SubjectCode).ThenBy(t => t.VisitNum).ToList() // }).OrderBy(t => t.SubjectCode).ThenBy(t => t.VisitNum).ToList()
// }).FirstOrDefault(); // }).FirstOrDefault();
// var acturalDownList = downloadInfo.VisitList.Where(t => !oldVisits.Any(old => old.VisitNum == t.VisitNum && old.SubjectCode == t.SubjectCode && // var acturalDownList = downloadInfo.VisitList.Where(t => !oldVisits.Any(old => old.VisitNum == t.VisitNum && old.SubjectCode == t.SubjectCode &&
//old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList(); //old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList();
// var diffList = downloadVisit.Where(t => !acturalDownList.Any(old => old.SubjectCode.Trim() == t.SubjectCode.Trim() && // var diffList = downloadVisit.Where(t => !acturalDownList.Any(old => old.SubjectCode.Trim() == t.SubjectCode.Trim() &&
//old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList(); //old.VisitName.Trim().ToLower() == t.VisitName.Trim().ToLower())).ToList();
// string diffPath = @$"C:\Users\PC\Desktop\diff.xlsx"; // string diffPath = @$"C:\Users\PC\Desktop\diff.xlsx";
// MiniExcel.SaveAs(diffPath, diffList); // MiniExcel.SaveAs(diffPath, diffList);
#endregion #endregion
@ -294,8 +296,12 @@ namespace IRaCIS.Core.Application.Service
//创建一个模型验证的方法 //创建一个模型验证的方法
[AllowAnonymous] [AllowAnonymous]
[HttpPost("{email}")] [HttpPost("{email}")]
public async Task<IResponseOutput> PostModelVerify(ModelVerifyCommand modelVerify) public async Task<IResponseOutput> PostModelVerify(/*ModelVerifyCommand modelVerify,*/ Guid subjectVisitId)
{ {
var subjectVisit = await _subjectVisitRepository.Where(x => x.Id == subjectVisitId).Include(x => x.Subject).Include(x => x.CurrentActionUser).FirstNotNullAsync();
var subjectVisit2 = await (_subjectVisitRepository.Where(x => x.Id == subjectVisitId).Include(x => x.Subject).Include(x => x.CurrentActionUser)).FirstNotNullAsync();
var webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=cdd97aab-d256-4f07-9145-a0a2b1555322"; var webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=cdd97aab-d256-4f07-9145-a0a2b1555322";
//await WeComNotifier.SendErrorAsync(webhook, "http://irc.test.extimaging.com/login", new Exception("测试异常"), new[] { "ZhouHang" }); //await WeComNotifier.SendErrorAsync(webhook, "http://irc.test.extimaging.com/login", new Exception("测试异常"), new[] { "ZhouHang" });