1.传输协议
当我们PACS客户端接收到下载命令时需要根据dcm文件的url来下载,这里推荐使用http协议,支持大文件的断点续传。
2.下载策略
假设有10个序列,每个序列有100张图像,
①广度优先:将任务池中的下载任务平均分配到10个序列,每个序列都同时下载,
优点:是每个序列都能分布加载,当用户切换序列到单元格时不需要等待。
缺点:当图像特别多的时候,比如CT薄层,序列切换图像滚动时显示不完整。
②深度优先:将任务池中的下载任务根据先进先出原则分配到排序在前的序列,下载完一个后再开始下一个。
优点和缺点恰好和广度优先策略相反。

那么鱼和熊掌能不能兼得呢?能。
默认使用广度优先,当用户点击某个序列时,一般认为是用户优先想看的序列,
则为该序列加速,该序列视为特殊加速序列,下载任务排满,其他序列仍然是平均分配。
看效果:

最后附上http下载的关键代码:
/// <summary>
/// 下载文件
/// </summary>
/// <param name="url">下载地址</param>
/// <param name="path">本地路径</param>
public static bool DownLoadFile(string url, string path)
{bool flag = false;
long SPosition = 0;
FileStream FStream = null;
Stream myStream = null;
try
{
//判断要下载的文件是否存在
if (File.Exists(path))
{
//打开上次下载的文件
FStream = File.OpenWrite(path);
//获取已经下载的长度
SPosition = FStream.Length;
long serverFileLength = GetHttpLength(url);
if (serverFileLength == -1)
{
//本地文件
return true;
}
if (serverFileLen

本文详细介绍了PACS系统中DICOM影像的下载策略,包括使用HTTP协议进行大文件的断点续传,以及广度优先和深度优先两种下载策略的优缺点。并提供了一种结合两者优势的方法,通过为用户优先查看的序列加速,实现更佳的用户体验。
1493

被折叠的 条评论
为什么被折叠?



