增加新的影像归档检查表
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
85439213b2
commit
f6d2b1e7f1
|
@ -853,6 +853,13 @@
|
||||||
后台托管服务的方式运行
|
后台托管服务的方式运行
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.DownloadAndUploadService.GetSubjectImageUploadList(System.Guid)">
|
||||||
|
<summary>
|
||||||
|
获取该受试者任务上传列表(展示已上传情况)
|
||||||
|
</summary>
|
||||||
|
<param name="subjectId"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.DownloadAndUploadService.RequestPackageAndAnonymizImage(System.Guid,System.Guid,System.Boolean)">
|
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.DownloadAndUploadService.RequestPackageAndAnonymizImage(System.Guid,System.Guid,System.Boolean)">
|
||||||
<summary>
|
<summary>
|
||||||
打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
|
打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
|
||||||
|
@ -871,13 +878,6 @@
|
||||||
<param name="isAnonymize"></param>
|
<param name="isAnonymize"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.StudyService.AddOrUpdateArchiveStudy(IRaCIS.Core.Application.Contracts.NewArchiveStudyCommand)">
|
|
||||||
<summary>
|
|
||||||
上传临床数据
|
|
||||||
</summary>
|
|
||||||
<param name="incommand"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.StudyService.Preview(System.Guid)">
|
<member name="M:IRaCIS.Core.Application.Service.ImageAndDoc.StudyService.Preview(System.Guid)">
|
||||||
<summary> 指定资源Id,渲染Dicom检查的Jpeg预览图像 </summary>
|
<summary> 指定资源Id,渲染Dicom检查的Jpeg预览图像 </summary>
|
||||||
<param name="studyId"> Dicom检查的Id </param>
|
<param name="studyId"> Dicom检查的Id </param>
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Web;
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Application.Service.ImageAndDoc.DTO
|
||||||
|
{
|
||||||
|
public class SubjectImageUploadDTO
|
||||||
|
{
|
||||||
|
public Guid SubejctId { get; set; }
|
||||||
|
|
||||||
|
public string SubjectCode { get; set; }
|
||||||
|
|
||||||
|
public string TaskBlindName { get; set; }
|
||||||
|
|
||||||
|
public string TaskName { get; set; }
|
||||||
|
|
||||||
|
public List<StudyBasicInfo> OrginalStudyList { get; set; }
|
||||||
|
|
||||||
|
public List<StudyBasicInfo> UploadStudyList { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public class StudyBasicInfo
|
||||||
|
{
|
||||||
|
public Guid Id { get; set; }
|
||||||
|
|
||||||
|
public string Modalities { get; set; }
|
||||||
|
|
||||||
|
public string Description { get; set; }
|
||||||
|
public int SeriesCount { get; set; }
|
||||||
|
public int InstanceCount { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
using FellowOakDicom;
|
using FellowOakDicom;
|
||||||
using IRaCIS.Core.Application.Helper;
|
using IRaCIS.Core.Application.Helper;
|
||||||
|
using IRaCIS.Core.Application.Service.ImageAndDoc.DTO;
|
||||||
using MassTransit;
|
using MassTransit;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using System;
|
using System;
|
||||||
|
@ -31,6 +32,44 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
_oSSService = oSSService;
|
_oSSService = oSSService;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取该受试者任务上传列表(展示已上传情况)
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="subjectId"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<IResponseOutput<List<SubjectImageUploadDTO> >> GetSubjectImageUploadList(Guid subjectId)
|
||||||
|
{
|
||||||
|
var query=_repository.Where<VisitTask>(t=>t.Id==subjectId)
|
||||||
|
.Select(u=>new SubjectImageUploadDTO()
|
||||||
|
{
|
||||||
|
SubejctId=u.SubjectId,
|
||||||
|
SubjectCode=u.IsSelfAnalysis==true? u.Subject.Code:u.BlindSubjectCode,
|
||||||
|
TaskBlindName=u.TaskBlindName,
|
||||||
|
TaskName=u.TaskName,
|
||||||
|
OrginalStudyList=u.SourceSubjectVisit.StudyList.Select(t=>new StudyBasicInfo()
|
||||||
|
{
|
||||||
|
Id=t.Id,
|
||||||
|
Description=t.Description,
|
||||||
|
InstanceCount=t.InstanceCount,
|
||||||
|
Modalities=t.Modalities,
|
||||||
|
SeriesCount=t.SeriesCount,
|
||||||
|
}).ToList(),
|
||||||
|
|
||||||
|
UploadStudyList=u.TaskStudyList.Select(t => new StudyBasicInfo()
|
||||||
|
{
|
||||||
|
Id = t.Id,
|
||||||
|
Description = t.Description,
|
||||||
|
InstanceCount = t.InstanceCount,
|
||||||
|
Modalities = t.Modalities,
|
||||||
|
SeriesCount = t.SeriesCount,
|
||||||
|
}).ToList()
|
||||||
|
})
|
||||||
|
;
|
||||||
|
|
||||||
|
var list =await query.ToListAsync();
|
||||||
|
|
||||||
|
return ResponseOutput.Ok(list);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
|
/// 打包和匿名化影像 默认是匿名化打包,也可以不匿名化打包
|
||||||
|
|
|
@ -139,11 +139,7 @@ namespace IRaCIS.Core.Application.Service.ImageAndDoc
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 上传临床数据
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="incommand"></param>
|
|
||||||
/// <returns></returns>
|
|
||||||
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
[TypeFilter(typeof(TrialResourceFilter), Arguments = new object[] { "AfterStopCannNotOpt" })]
|
||||||
public async Task<IResponseOutput> AddOrUpdateArchiveStudy(NewArchiveStudyCommand incommand)
|
public async Task<IResponseOutput> AddOrUpdateArchiveStudy(NewArchiveStudyCommand incommand)
|
||||||
{
|
{
|
||||||
|
|
|
@ -19,6 +19,8 @@ namespace IRaCIS.Core.Domain.Models
|
||||||
[Table("VisitTask")]
|
[Table("VisitTask")]
|
||||||
public class VisitTask : Entity, IAuditUpdate, IAuditAdd
|
public class VisitTask : Entity, IAuditUpdate, IAuditAdd
|
||||||
{
|
{
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<TaskStudy> TaskStudyList { get; set; }
|
||||||
|
|
||||||
public string TaskName { get; set; } = string.Empty;
|
public string TaskName { get; set; } = string.Empty;
|
||||||
public string TaskBlindName { get; set; } = string.Empty;
|
public string TaskBlindName { get; set; } = string.Empty;
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
using System;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Domain.Models
|
||||||
|
{
|
||||||
|
public class TaskInstance : Entity, IAuditAdd, IAuditUpdate
|
||||||
|
{
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("SeriesId")]
|
||||||
|
public TaskSeries TaskSeries { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("StudyId")]
|
||||||
|
public TaskStudy TaskStudy { get; set; }
|
||||||
|
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
|
||||||
|
public Guid SeqId { get; set; }
|
||||||
|
public Guid StudyId { get; set; }
|
||||||
|
public Guid SeriesId { get; set; }
|
||||||
|
public string StudyInstanceUid { get; set; }
|
||||||
|
public string SeriesInstanceUid { get; set; }
|
||||||
|
public string SopInstanceUid { get; set; }
|
||||||
|
public int InstanceNumber { get; set; }
|
||||||
|
public DateTime? InstanceTime { get; set; }
|
||||||
|
public bool CPIStatus { get; set; }
|
||||||
|
public int ImageRows { get; set; }
|
||||||
|
public int ImageColumns { get; set; }
|
||||||
|
public int SliceLocation { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public string SliceThickness { get; set; }
|
||||||
|
public int NumberOfFrames { get; set; }
|
||||||
|
public string PixelSpacing { get; set; }
|
||||||
|
|
||||||
|
public string ImagerPixelSpacing { get; set; }
|
||||||
|
public string FrameOfReferenceUID { get; set; }
|
||||||
|
public string WindowCenter { get; set; }
|
||||||
|
public string WindowWidth { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
public Guid SubjectId { get; set; }
|
||||||
|
public Guid VisitTaskId { get; set; }
|
||||||
|
public bool Anonymize { get; set; }
|
||||||
|
public string Path { get; set; }
|
||||||
|
|
||||||
|
public Guid CreateUserId { get; set; }
|
||||||
|
public DateTime CreateTime { get; set; } = DateTime.Now;
|
||||||
|
public Guid UpdateUserId { get; set; }
|
||||||
|
public DateTime UpdateTime { get; set; } = DateTime.Now;
|
||||||
|
|
||||||
|
public string HtmlPath { get; set; }=string.Empty;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,62 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Domain.Models
|
||||||
|
{
|
||||||
|
public class TaskSeries : Entity, IAuditAdd, IAuditUpdate, ISoftDelete
|
||||||
|
{
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("StudyId")]
|
||||||
|
public TaskStudy TaskStudy { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<TaskInstance> InstanceList { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
public Guid SeqId { get; set; }
|
||||||
|
public Guid StudyId { get; set; }
|
||||||
|
public string StudyInstanceUid { get; set; }
|
||||||
|
public string SeriesInstanceUid { get; set; }
|
||||||
|
public int SeriesNumber { get; set; }
|
||||||
|
public DateTime? SeriesTime { get; set; }
|
||||||
|
public string Modality { get; set; }
|
||||||
|
public string Description { get; set; }
|
||||||
|
public int InstanceCount { get; set; }
|
||||||
|
public string SliceThickness { get; set; }
|
||||||
|
|
||||||
|
public string ImagePositionPatient { get; set; }
|
||||||
|
public string ImageOrientationPatient { get; set; }
|
||||||
|
public string BodyPartExamined { get; set; }
|
||||||
|
public string SequenceName { get; set; }
|
||||||
|
public string ProtocolName { get; set; }
|
||||||
|
public string ImagerPixelSpacing { get; set; }
|
||||||
|
|
||||||
|
public string AcquisitionTime { get; set; } = string.Empty;
|
||||||
|
public string AcquisitionNumber { get; set; } = string.Empty;
|
||||||
|
public string TriggerTime { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
public Guid SubjectId { get; set; }
|
||||||
|
public Guid VisitTaskId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public string BodyPartForEdit { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public Guid CreateUserId { get; set; }
|
||||||
|
public DateTime CreateTime { get; set; } = DateTime.Now;
|
||||||
|
public Guid UpdateUserId { get; set; }
|
||||||
|
public DateTime UpdateTime { get; set; } = DateTime.Now;
|
||||||
|
|
||||||
|
public DateTime? DeletedTime { get; set; }
|
||||||
|
|
||||||
|
public Guid? DeleteUserId { get; set; }
|
||||||
|
public bool IsDeleted {get;set;}
|
||||||
|
public bool IsReading { get; set; } = true;
|
||||||
|
|
||||||
|
public string ImageResizePath { get; set; }=string.Empty;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,99 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
|
namespace IRaCIS.Core.Domain.Models
|
||||||
|
{
|
||||||
|
public class TaskStudy : Entity, IAuditUpdate, IAuditAdd, ISoftDelete
|
||||||
|
{
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("VisitTaskId")]
|
||||||
|
public VisitTask VisitTask { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<StudyMonitor> DicomStudyMonitorList { get; set; } = new List<StudyMonitor>();
|
||||||
|
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
public List<TaskSeries> SeriesList { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
||||||
|
public Guid SeqId { get; set; }
|
||||||
|
|
||||||
|
public Guid TrialId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid SubjectId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
public Guid VisitTaskId { get; set; }
|
||||||
|
|
||||||
|
public int Code { get; set; } = 0;
|
||||||
|
|
||||||
|
public string StudyCode { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string StudyInstanceUid { get; set; } = string.Empty;
|
||||||
|
public DateTime? StudyTime { get; set; }
|
||||||
|
public string Modalities { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string Description { get; set; } = string.Empty;
|
||||||
|
public int SeriesCount { get; set; } = 0;
|
||||||
|
public int InstanceCount { get; set; } = 0;
|
||||||
|
|
||||||
|
|
||||||
|
public string InstitutionName { get; set; } = string.Empty;
|
||||||
|
public string PatientId { get; set; } = string.Empty;
|
||||||
|
public string PatientName { get; set; } = string.Empty;
|
||||||
|
public string PatientAge { get; set; } = string.Empty;
|
||||||
|
public string PatientSex { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string StudyId { get; set; } = string.Empty;
|
||||||
|
public string AccessionNumber { get; set; } = string.Empty;
|
||||||
|
public string PatientBirthDate { get; set; } = string.Empty;
|
||||||
|
public string AcquisitionTime { get; set; } = string.Empty;
|
||||||
|
public string AcquisitionNumber { get; set; } = string.Empty;
|
||||||
|
public string TriggerTime { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string BodyPartExamined { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string BodyPartForEdit { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string ModalityForEdit { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//0 未知 1 单重 2 双重
|
||||||
|
public bool IsDoubleReview { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("SubjectId")]
|
||||||
|
public Subject Subject { get; set; }
|
||||||
|
|
||||||
|
public Guid UpdateUserId { get; set; }
|
||||||
|
public DateTime UpdateTime { get; set; } = DateTime.Now;
|
||||||
|
public Guid CreateUserId { get; set; }
|
||||||
|
public DateTime CreateTime { get; set; } = DateTime.Now;
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
[ForeignKey("CreateUserId")]
|
||||||
|
public User Uploader { get; set; }
|
||||||
|
|
||||||
|
[JsonIgnore]
|
||||||
|
|
||||||
|
public List<ReadingClinicalData> ReadingClinicalDataList { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//软删除
|
||||||
|
public bool IsDeleted { get; set; }
|
||||||
|
|
||||||
|
public DateTime? DeletedTime { get; set; }
|
||||||
|
|
||||||
|
public Guid? DeleteUserId { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue