CostCalculationItem/IRaCIS.Core.API/Controllers/Image/SeriesController.cs

73 lines
2.6 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

using IRaCIS.Core.Application.Contracts.Dicom;
using IRaCIS.Core.Application.Contracts.Dicom.DTO;
using IRaCIS.Core.Application.Contracts.RequestAndResponse;
using IRaCIS.Core.Application.Dicom;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Net.Http;
namespace IRaCIS.Api.Controllers
{
/// <summary>
/// Series
/// </summary>
[Route("series")]
[ApiController, Authorize, ApiExplorerSettings(GroupName = "Image")]
public class SeriesController : ControllerBase
{
private readonly IDicomArchiveService _dicomArchiveService;
public SeriesController(IDicomArchiveService dicomArchiveService)
{
_dicomArchiveService = dicomArchiveService;
}
///// <summary> 指定资源Id获取Dicom检查所属序列信息列表 </summary>
///// <param name="studyId"> Dicom检查的Id </param>
//[HttpGet, Route("list/{studyId:guid}")]
//[AllowAnonymous]
//public IEnumerable<DicomSeriesDTO> GetSeriesList(Guid studyId)
//{
// return _dicomArchiveService.GetSeriesList(studyId);
//}
/// <summary> 指定资源Id获取Dicom检查所属序列信息列表 </summary>
/// <param name="studyId"> Dicom检查的Id </param>
/// <param name="tpCode"></param>
[HttpGet, Route("serieslist/{studyId:guid}")]
[AllowAnonymous]
public IResponseOutput<IEnumerable<DicomSeriesWithLabelDTO>> GetSeriesList(Guid studyId,string tpCode)
{
return ResponseOutput.Ok( _dicomArchiveService.GetSeriesWithLabelList(studyId, tpCode));
}
[HttpGet, Route("list/{studyId:guid}/{tpCode?}")]
[AllowAnonymous]
public IEnumerable<DicomSeriesWithLabelDTO> GetSeriesWithLabelList(Guid studyId, string tpCode)
{
return _dicomArchiveService.GetSeriesWithLabelList(studyId, tpCode);
}
/// <summary> 指定资源Id渲染Dicom序列的Jpeg预览图像 </summary>
/// <param name="seriesId"> Dicom序列的Id </param>
[HttpGet, Route("preview/{seriesId:guid}")]
[AllowAnonymous]
public FileContentResult GetSeriesPreview(Guid seriesId)
{
string path = _dicomArchiveService.GetSeriesPreview(seriesId);
using (var sw = DicomRenderingHelper.RenderPreviewJpeg(path))
{
var bytes = new byte[sw.Length];
sw.Read(bytes, 0, bytes.Length);
sw.Close();
return new FileContentResult(bytes, "image/jpeg");
}
}
}
}