首页> 中国专利> 用于PACS影像存储系统的数据访问方法及设备

用于PACS影像存储系统的数据访问方法及设备

摘要

本发明的目的是提供一种用于PACS影像存储系统的数据访问方法及设备,通过管理服务器基于各个存储节点的心跳消息,确定当前可用存储节点的列表,管理服务器基于PACS影像数据的访问请求,从列表中轮询依次选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述业务工作站,从而能够将来自不同业务工作站的PACS请求分配不同的当前可用存储节点,并在有部分存储节点发生故障时,其他可用存储节点仍然能够提供数据访问服务,实现了高性能和容错的PACS影像数据的访问,保证数据读写性能和业务系统高可用。

著录项

  • 公开/公告号CN112951385A

    专利类型发明专利

  • 公开/公告日2021-06-11

    原文格式PDF

  • 申请/专利权人 上海市胸科医院;

    申请/专利号CN202110279356.3

  • 申请日2021-03-16

  • 分类号G16H30/20(20180101);G06F16/51(20190101);

  • 代理机构31313 上海智晟知识产权代理事务所(特殊普通合伙);

  • 代理人余毅勤

  • 地址 200030 上海市徐汇区淮海西路241号

  • 入库时间 2023-06-19 11:21:00

说明书

技术领域

本发明涉及计算机领域,尤其涉及一种用于PACS影像存储系统的数据访问方法及设备。

背景技术

医疗影像是现代医疗的重要支撑。放射医疗设备、心血管成像设备产生的诊断影像文件写入到网络存储设备中,供放射科阅片师和医生诊断分析之用。PACS(PictureArchiving and Communication Systems,意为影像归档和通信系统)影像文件大小通常为几百KB至几MB,一次检查产生上千张影像。随着医疗影像诊断设备分辨率不断提高,PACS影像数据量呈快速增长趋势。PACS影像存储系统通常由多个存储节点组成,实现扩展容量和容错的目的。

医生在诊断时,需要从PACS影像存储设备读取文件,然后在工作站绘图显示。在工作高峰期间,高达几百台工作站会同时从影像存储设备并发读取数据,对存储设备产生很大的性能压力。

发明内容

本发明的一个目的是提供一种用于PACS影像存储系统的数据访问方法及设备。

根据本发明的一个方面,提供了一种用于PACS影像存储系统的数据访问方法,该方法包括:

各个存储节点周期性地向管理服务器发送心跳消息,其中,各个存储节点用于存储PACS影像数据;

所述管理服务器基于各个存储节点的心跳消息,将存储节点加入当前可用存储节点的列表,或将存储节点从当前可用存储节点的列表中删除;

客户端向所述管理服务器发送存储节点的访问请求;

所述管理服务器基于所述客户端的访问请求,从所述当前可用存储节点的列表中依次轮询选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述客户端;

所述客户端基于接收到的IP地址,与对应的FTP服务器建立TCP连接,并通过所述客户端与建立TCP连接的FTP服务器对对应的当前可用存储节点进行访问。

进一步的,上述方法中,所述管理服务器基于各个存储节点的心跳消息,将存储节点加入当前可用存储节点的列表,包括:

步骤S211,管理服务器将收到的每个存储节点发送的心跳消息,记录到每个存储节点对应历史消息队列中,每个心跳消息包括:存储节点编号和心跳时间,其中,所述历史消息队列中只记录近期收到的每个存储节点发送的M个心跳消息,M为正整数;

步骤S212,管理服务器判断各个存储节点是否属于当前可用存储节点的列表,

步骤S213,若各个存储节点均属于当前可用存储节点的列表,则返回步骤S211;

步骤S214,若有存储节点属于全部存储节点的列表且不属于所述当前可用存储节点的列表,则所述管理服务器基于该存储节点对应的历史消息队列,判断是否收到该存储节点发送的近期心跳时间连续的N个心跳消息,其中,M大于等于N,当前可用存储节点从全部存储节点的列表中选出;

步骤S215,若所述存储服务器收到该存储节点发送的近期心跳时间连续的N个心跳消息,则将该存储节点加入到当前可用存储节点的列表Lon的尾部后,返回步骤S211;

步骤S216,若所述存储服务器未收到该存储节点发送的近期心跳时间连续的N个心跳消息,返回步骤S211。

进一步的,上述方法中,所述管理服务器基于各个存储节点的心跳消息,将存储节点从当前可用存储节点的列表中删除,包括:

步骤S221,所述管理服务器基于各个存储节点对应的历史消息队列,定期判断是否收到所述当前可用存储节点的列表中的各个存储节点发送的近期心跳时间连续的N个心跳消息,其中,M大于等于N,N为正整数;

步骤S222,若所述管理服务器收到所述当前可用存储节点的列表中的所有存储节点分别发送的近期心跳时间连续的N个心跳消息,则返回步骤S221;

步骤S223,若所述管理服务器未收到所述当前可用存储节点的列表中的一个或多个存储节点发送的近期心跳时间连续的N个心跳消息,则判断预设的近期时间段T内,是否收到该一个或多个存储节点分别发送的心跳消息数大于K,其中,K为正整数;

步骤S224,若预设的近期时间段T内,所述管理服务器收到该一个或多个存储节点分别发送的心跳消息数大于K,则返回步骤S221;

步骤S225,若预设的近期时间段T内所述管理服务器收到该一个或多个存储节点分别发送的心跳消息数小于等于K,则将该一个或多个存储节点从所述当前可用存储节点的列表Lon中删除后,返回步骤S221。

进一步的,上述方法中,客户端向所述管理服务器发送存储节点的访问请求,包括:

业务工作站向所述管理服务器发送存储节点的访问请求。

进一步的,上述方法中,所述管理服务器基于所述客户端的访问请求,从所述当前可用存储节点的列表中依次轮询选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述客户端,包括:

所述管理服务器基于所述业务工作站的访问请求,从所述当前可用存储节点的列表中依次轮询选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述业务工作站。

进一步的,上述方法中,所述客户端基于接收到的IP地址,与对应的FTP服务器建立TCP连接,并通过所述客户端与建立TCP连接的FTP服务器对对应的当前可用存储节点进行访问,包括:

业务工作站基于接收到的IP地址,与对应的FTP服务器建立TCP连接;

所述业务工作站通过建立的TCP连接,向所述FTP服务器发送所述业务工作站的用户名;

所述FTP服务器接受到所述业务工作站的用户名后,向所述业务工作站发送随时间而随机变化的唯一字符串;

所述业务工作站在所述随时间而随机变化的唯一字符串之后追加预设的所述业务工作站的用户名对应的口令,以得到第一追加结果,并对所述第一追加结果进行MD5计算,以得到MD5的第一字符串,并将所述MD5的第一字符串发送给所述FTP服务器;

所述FTP服务器在所述随时间而随机变化的唯一字符串之后追加预设的所述业务工作站的用户名对应的口令,以得到第二追加结果,并对所述第二追加结果进行MD5计算,以得到MD5的第二字符串;

所述FTP服务器将接收到的MD5的第一字符串与计算出的MD5的第二字符串进行比较,

若比较结果为一致,则所述FTP服务器保持所述TCP连接,以允许所述业务工作站通过所述FTP服务器对对应的当前可用存储节点进行PACS影像数据的读取;

若比较结果为不一致,则所述FTP服务器关闭所述TCP连接。

进一步的,上述方法中,客户端向所述管理服务器发送存储节点的访问请求,包括:

检查设备通过DICOM协议并经过网络将PACS影像数据发送到DICOM网关;

所述DICOM网关向所述管理服务器发送存储节点的访问请求。

进一步的,上述方法中,所述管理服务器基于所述客户端的访问请求,从所述当前可用存储节点的列表中依次轮询选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述客户端,包括:

所述管理服务器基于所述DICOM网关的访问请求,从所述当前可用存储节点的列表中依次轮询选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述DICOM网关。

进一步的,上述方法中,所述客户端基于接收到的IP地址,与对应的FTP服务器建立TCP连接,并通过所述客户端与建立TCP连接的FTP服务器对对应当前可用存储节点进行访问,包括:

DICOM网关基于接收到的IP地址,与对应的FTP服务器建立TCP连接;

所述DICOM网关通过建立的TCP连接,向所述FTP服务器发送所述DICOM网关的用户名;

所述FTP服务器接受到所述DICOM网关的用户名后,向所述DICOM网关发送随时间而随机变化的唯一字符串;

所述DICOM网关在所述随时间而随机变化的唯一字符串之后追加预设的所述DICOM网关的用户名对应的口令,以得到第三追加结果,并对所述第三追加结果进行MD5计算,以得到MD5的第三字符串,并将所述MD5的第三字符串发送给所述FTP服务器;

所述FTP服务器在所述随时间而随机变化的唯一字符串之后追加预设的所述DICOM网关的用户名对应的口令,以得到第四追加结果,并对所述第四追加结果进行MD5计算,以得到MD5的第四字符串;

所述FTP服务器将接收到的MD5的第三字符串与计算出的MD5的第四字符串进行比较,

若比较结果为一致,则所述FTP服务器保持所述TCP连接,以允许所述DICOM网关通过所述FTP服务器对对应的当前可用存储节点进行PACS影像数据的写入;

若比较结果为不一致,则所述FTP服务器关闭所述TCP连接。

根据本发明的另一方面,还提供一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现上述任一项所述的方法。

与现有技术相比,本发明通过管理服务器基于各个存储节点的心跳消息,确定当前可用存储节点的列表,管理服务器基于所述PACS影像数据的访问请求,从所述列表中轮询依次选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述业务工作站,从而能够将来自不同业务工作站的PACS请求分配不同的当前可用存储节点,并在有部分存储节点发生故障时,其他可用存储节点仍然能够提供数据访问服务;业务工作站基于接收到的IP地址,与对应的FTP服务器建立TCP连接,并通过所述业务工作站与建立TCP连接的FTP服务器对当前可用存储节点进行访问,实现了高性能和容错的PACS影像数据的访问,保证数据读写性能和业务系统高可用。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1示出本申请一实施例的医疗PACS影像数据存储系统网络拓扑结构图;

图2示出本申请一实施例的心跳消息处理的流程图;

图3示出本申请一实施例的管理服务器周期性检查的流程图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本发明作进一步详细描述。

在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

本发明提供一种用于PACS影像存储系统的数据访问方法,所述方法包括:

步骤S1,各个存储节点周期性地向管理服务器发送心跳消息,其中,各个存储节点用于存储PACS影像数据;

在此,存储节点定期向管理服务器发送心跳信息,典型周期可以为1秒;

本发明的PACS影像存储系统包括:客户端、管理服务器、多个存储节点和所述存储节点对应的FTP服务器;

如图1所示,所述客户端可以包括:业务工作站和检查设备;

所述检查设备可以包括:CT、MRI、超声等检查设备;

所述业务工作站可以包括:放射科医生工作站、门诊医生工作站和住院部医生工作站;

存储节点可以包括:存储节点1、存储节点2,…,存储节点N;

其中,每个存储节点都带有FTP服务器;

步骤S2,所述管理服务器基于各个存储节点的心跳消息,将存储节点加入当前可用存储节点的列表Lon,或将存储节点从当前可用存储节点的列表中删除;

在此,各个存储节点定期向所述管理服务器服务发送心跳信息,管理服务器根据存储节点的历史心跳信息判断各个存储节点是否处于正常工作状态,将正常的存储节点组织为当前可用节点的列表集合;

当存储节点发生故障,不能向管理服务器发送心跳信息,可以再超过一定时间后,管理服务器将故障的存储节点从当前可用节点的列表中删除;

步骤S3,客户端向所述管理服务器发送存储节点的访问请求;

步骤S4,所述管理服务器基于所述客户端的访问请求,从所述当前可用存储节点的列表中依次轮询选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述客户端;

在此,所述访问请求,例如可以是对各个存储节点的PACS影像数据的读或写请求;

客户端在通过FTP服务器访问对应不多存储节点之前,首先向管理服务器发送存储节点的访问请求,管理服务器收到请求后,使用轮询的方法,依次从当前可用节点的列表中选择一个当前可用存储节点,并将当前可用节点对应的FTP服务器的IP地址作为应答,从而能够将来自不同客户端的访问请求分配不同的当前可用存储节点;

例如,管理服务器上一次轮询选择的一个当前可用存储节点为存储节点1,那么,管理服务器下一次轮询选择的当前可用存储节点位为当前可用存储节点的列表中的下一个存储节点2;

步骤S5,所述客户端基于接收到的IP地址,与对应的FTP服务器建立TCP连接,并通过所述客户端与建立TCP连接的FTP服务器对对应的当前可用存储节点进行访问。

在此,本发明通过管理服务器基于各个存储节点的心跳消息,确定当前可用存储节点的列表,管理服务器基于所述PACS影像数据的访问请求,从所述列表中轮询依次选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述业务工作站,从而能够将来自不同业务工作站的PACS请求分配不同的当前可用存储节点,并在有部分存储节点发生故障时,其他可用存储节点仍然能够提供数据访问服务;业务工作站基于接收到的IP地址,与对应的FTP服务器建立TCP连接,并通过所述业务工作站与建立TCP连接的FTP服务器对当前可用存储节点进行访问,实现了高性能和容错的PACS影像数据的访问,保证数据读写性能和业务系统高可用。

如图2所示,本发明的用于PACS影像存储系统的数据访问方法一实施例中,步骤S2,所述管理服务器基于各个存储节点的心跳消息,将存储节点加入当前可用存储节点的列表,包括:

步骤S211,管理服务器将收到的每个存储节点发送的心跳消息,记录到每个存储节点对应历史消息队列中,每个心跳消息包括存储节点编号和心跳时间,其中,所述历史消息队列中只记录近期收到的每个存储节点发送的M个心跳消息,M为正整数;

在此,管理服务器始终只记录近期收到的每个存储节点的发送的M个心跳消息,历史消息队列超过M个心跳消息后,新的心跳消息会将M个心跳消息中心跳时间最旧的心跳消息覆盖,以保证历史消息队列中只存储近期时间的有用的M个心跳消息,节省数据存储空间;

例如,存储节点应该以1秒的间隔周期,周期性地向管理服务器发送心跳消息,管理服务器可以将收到存储节点1的M个(5个)心跳消息依次分别记录如下:

存储节点1,心跳时间:9:01;

存储节点1,心跳时间:9:02;

存储节点1,心跳时间:9:03;

存储节点1,心跳时间:9:06;

存储节点1,心跳时间:9:18;

可以看出:心跳时间:9:01、心跳时间:9:02和心跳时间:9:03连续;心跳时间:9:03和心跳时间:9:06不连续;心跳时间:9:06和心跳时间:9:18也不连续。

例如,存储节点2应该以1秒的间隔周期,周期性地向管理服务器发送心跳消息,管理服务器可以将收到存储节点2的M个(5个)心跳消息依次分别记录如下:

存储节点2,心跳时间:14:18;

存储节点2,心跳时间:14:19;

存储节点2,心跳时间:14:23;

存储节点2,心跳时间:14:24;

存储节点2,心跳时间:14:25;

这里可以看出,心跳时间:14:19和心跳时间:14:23不连续;心跳时间:14:18和心跳时间:14:19是连续的;心跳时间:14:23、心跳时间:14:23和心跳时间:14:24也是连续的;

步骤S212,管理服务器判断各个存储节点是否属于当前可用存储节点的列表,

步骤S213,若各个存储节点均属于当前可用存储节点的列表,则返回步骤S211;

步骤S214,若有存储节点属于全部存储节点的列表L

在此,管理服务器维护2个列表:全部存储节点的列表和当前可用存储节点的列表;其中,全部存储节点的列表不为空,当前可用存储节点的列表可以为空或者可以包括全部存储节点的列表中的全部或部分存储节点;

步骤S215,若所述存储服务器收到该存储节点发送的近期心跳时间连续的N个心跳消息,则将该存储节点加入到当前可用存储节点的列表Lon的尾部后,返回步骤S211;

步骤S216,若所述存储服务器未收到该存储节点发送的近期心跳时间连续的N个心跳消息,返回步骤S211。

例如,存储节点2属于全部存储节点的列表且不属于所述当前可用存储节点的列表,N为3,M为5,存储节点以1秒的间隔周期,周期性地向管理服务器发送心跳消息,管理服务器可以将收到存储节点1的M个(5个)心跳消息依次分别记录如下:

存储节点2,心跳时间:14:18;

存储节点2,心跳时间:14:19;

存储节点2,心跳时间:14:23;

存储节点2,心跳时间:14:24;

存储节点2,心跳时间:14:25;

则,存储节点2,心跳时间:14:23、心跳时间:14:24、心跳时间:14:25(心跳时间连续),则表明所述存储服务器收到该存储节点发送的近期心跳时间连续的N=3个心跳消息,则将该存储节点加入到当前可用存储节点的列表Lon的尾部。

如图3所示,本发明的用于PACS影像存储系统的数据访问方法一实施例中,步骤S2,所述管理服务器基于各个存储节点的心跳消息,将存储节点从当前可用存储节点的列表中删除,包括:

步骤S221,所述管理服务器基于各个存储节点对应的历史消息队列,定期判断是否收到所述当前可用存储节点的列表中的各个存储节点发送的近期心跳时间连续的N个心跳消息,其中,M大于等于N,N为正整数;

在此,管理服务器可以1秒为周期检查当前可用存储节点的列表中每个存储节点的历史心跳记录;

步骤S222,若所述管理服务器收到所述当前可用存储节点的列表中的所有存储节点分别发送的近期心跳时间连续的N个心跳消息,则返回步骤S221;

步骤S223,若所述管理服务器未收到所述当前可用存储节点的列表中的一个或多个存储节点发送的近期心跳时间连续的N个心跳消息,则判断预设的近期时间段T内,是否收到该一个或多个存储节点分别发送的心跳消息数大于K,其中,K为正整数;

在此,所述K可以是小于等于N的正整数;

步骤S224,若预设的近期时间段T内,所述管理服务器收到该一个或多个存储节点分别发送的心跳消息数大于K,则返回步骤S221;

步骤S225,若预设的近期时间段T内所述管理服务器收到该一个或多个存储节点分别发送的心跳消息数小于等于K,则将该一个或多个存储节点从所述当前可用存储节点的列表Lon中删除后,返回步骤S221。

例如,存储节点1属于全部存储节点的列表且属于所述当前可用存储节点的列表,N为3,M为5,T为6秒,K为3;存储节点应该以1秒的间隔周期,周期性地向管理服务器发送心跳消息,管理服务器可以将收到存储节点1的M个(5个)心跳消息依次分别记录如下:

存储节点1,心跳时间:9:01;

存储节点1,心跳时间:9:02;

存储节点1,心跳时间:9:03;

存储节点1,心跳时间:9:06;

存储节点1,心跳时间:9:18;

可以看出:心跳时间:9:01、心跳时间:9:02和心跳时间:9:03连续;心跳时间:9:03和心跳时间:9:06不连续;心跳时间:9:06和心跳时间:9:18也不连续。

由于心跳时间:9:03和心跳时间:9:06不连续;心跳时间:9:06和心跳时间:9:18也不连续,所以近期的N=3条心跳消息的心跳时间不连续,所以所述管理服务器未收到所述当前可用存储节点的列表中的一个或多个存储节点发送的近期心跳时间连续的N=3个心跳消息;且预设的近期时间段T=6秒内,只收到1条心跳消息的心跳时间是9:18,所以所述管理服务器收到该一个或多个存储节点分别发送的心跳消息数为1,心跳消息数小于等于K=3,则将该存储节点1从所述当前可用存储节点的列表Lon中删除。

本实施例中,当存储节点发生故障不能向管理服务器发送心跳信息,超过一定时间后,管理服务器可以将该节点从可用节点集合中删除,客户端就不再访问该存储节点。

另外,当故障存储节点回复正常后,改存储节点向管理服务器发送心跳信息,管理服务器可以将该存储节点重新加入到当前可用存储节点的列表中。

本发明的用于PACS影像存储系统的数据访问方法一实施例中,步骤S3,客户端向所述管理服务器发送存储节点的访问请求,包括:

业务工作站向所述管理服务器发送存储节点的访问请求;

步骤S4,所述管理服务器基于所述客户端的访问请求,从所述当前可用存储节点的列表中依次轮询选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述客户端,包括:

所述管理服务器基于所述业务工作站的访问请求,从所述当前可用存储节点的列表中依次轮询选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述业务工作站;

步骤S5,所述客户端基于接收到的IP地址,与对应的FTP服务器建立TCP连接,并通过所述客户端与建立TCP连接的FTP服务器对对应的当前可用存储节点进行访问,包括:

步骤S511,业务工作站基于接收到的IP地址,与对应的FTP服务器建立TCP连接;

步骤S512,所述业务工作站通过建立的TCP连接,向所述FTP服务器发送所述业务工作站的用户名;

在此,所述业务工作站的用户名例如可以是:“USER xxx”;

步骤S513,所述FTP服务器接受到所述业务工作站的用户名后,向所述业务工作站发送随时间而随机变化的唯一字符串;

在此,所述随时间而随机变化的唯一字符串,例如可以是:“331compute md5yyy”,所述随时间而随机变化的唯一字符串长度可以为8~128字节;

步骤S514,所述业务工作站在所述随时间而随机变化的唯一字符串之后追加预设的所述业务工作站的用户名对应的口令,以得到第一追加结果,并对所述第一追加结果进行MD5计算,以得到MD5的第一字符串,并将所述MD5的第一字符串发送给所述FTP服务器;

在此,所述业务工作站在字符串“yyy”之后追加业务工作站的用户名xxx对应的“口令”后,并进行MD5计算,并将MD5的字符串发送给FTP服务器;

步骤S515,所述FTP服务器在所述随时间而随机变化的唯一字符串之后追加预设的所述业务工作站的用户名对应的口令,以得到第二追加结果,并对所述第二追加结果进行MD5计算,以得到MD5的第二字符串;

步骤S516,所述FTP服务器将接收到的MD5的第一字符串与计算出的MD5的第二字符串进行比较,

步骤S517,若比较结果为一致,则所述FTP服务器保持所述TCP连接,以允许所述业务工作站通过所述FTP服务器对对应的当前可用存储节点进行PACS影像数据的读取;

步骤S518,若比较结果为不一致,则所述FTP服务器关闭所述TCP连接。

在此,FTP服务器可以根据本地已配置的用户名和口令,进行相同的计算,如果计算出的MD5的第二字符串和业务工作站发送的MD5的第一字符串相同,则保持所述TCP连接,还可向所述业务工作站发送“230Logged on”消息,后续,业务工作站即可使用标准的FTP命令,通过所述FTP服务器对对应的当前可用存储节点进行PACS影像数据的读取;否则,关闭所述TCP连接,还可向所述业务工作站发送”530Login Authentication Error”。

业务工作站和存储节点之间采用本实施例的改进的FTP协议读写数据,可以避免口令以明文方式在网络上传输。

如图1所示,本发明的用于PACS影像存储系统的数据访问方法一实施例中,步骤S3,客户端向所述管理服务器发送存储节点的访问请求,包括:

步骤S31,检查设备通过DICOM协议并经过网络将PACS影像数据发送到DICOM网关;

步骤S32,所述DICOM网关向所述管理服务器发送存储节点的访问请求;

步骤S4,所述管理服务器基于所述客户端的访问请求,从所述当前可用存储节点的列表中依次轮询选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述客户端,包括:

所述管理服务器基于所述DICOM网关的访问请求,从所述当前可用存储节点的列表中依次轮询选择当前可用存储节点,并将选择的当前可用存储节点的FTP服务器对应的IP地址,返回给所述DICOM网关;

步骤S5,所述客户端基于接收到的IP地址,与对应的FTP服务器建立TCP连接,并通过所述客户端与建立TCP连接的FTP服务器对对应当前可用存储节点进行访问,包括:

步骤S521,DICOM网关基于接收到的IP地址,与对应的FTP服务器建立TCP连接;

步骤S522,所述DICOM网关通过建立的TCP连接,向所述FTP服务器发送所述DICOM网关的用户名;

在此,所述DICOM网关的用户名例如可以是:“USER xxx”;

步骤S523,所述FTP服务器接受到所述DICOM网关的用户名后,向所述DICOM网关发送随时间而随机变化的唯一字符串;

在此,所述随时间而随机变化的唯一字符串,例如可以是:“331compute md5yyy”,所述随时间而随机变化的唯一字符串长度可以为8~128字节;

步骤S524,所述DICOM网关在所述随时间而随机变化的唯一字符串之后追加预设的所述DICOM网关的用户名对应的口令,以得到第三追加结果,并对所述第三追加结果进行MD5计算,以得到MD5的第三字符串,并将所述MD5的第三字符串发送给所述FTP服务器;

在此,所述DICOM网关在字符串“yyy”之后追加DICOM网关的用户名xxx对应的“口令”后,并进行MD5计算,并将MD5的字符串发送给FTP服务器;

步骤S525,所述FTP服务器在所述随时间而随机变化的唯一字符串之后追加预设的所述DICOM网关的用户名对应的口令,以得到第四追加结果,并对所述第四追加结果进行MD5计算,以得到MD5的第四字符串;

步骤S526,所述FTP服务器将接收到的MD5的第三字符串与计算出的MD5的第四字符串进行比较,

步骤S527,若比较结果为一致,则所述FTP服务器保持所述TCP连接,以允许所述DICOM网关通过所述FTP服务器对对应的当前可用存储节点进行PACS影像数据的写入;

步骤S528,若比较结果为不一致,则所述FTP服务器关闭所述TCP连接。

在此,各种医疗检查设备产生的数据,通过DICOM协议经过网络发送到DICOM网关,DICOM网关把数据写入到存储节点中。

FTP服务器可以根据本地已配置的用户名和口令,进行相同的计算,如果计算出的MD5的第三字符串和DICOM网关发送的MD5的第四字符串相同,则保持所述TCP连接,还可向所述DICOM网关发送“230Logged on”消息,后续,DICOM网关即可使用标准的FTP命令,通过所述FTP服务器对对应的当前可用存储节点进行PACS影像数据的读取;否则,关闭所述TCP连接,还可向所述DICOM网关发送”530Login Authentication Error”。

DICOM网关和存储节点之间采用本实施例的改进的FTP协议读写数据,可以避免口令以明文方式在网络上传输。

根据本发明的另一方面,还提供一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现上述任一项所述的方法。

本发明的各设备和存储介质实施例的详细内容,具体可参见各方法实施例的对应部分,在此,不再赘述。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本发明的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本发明的方法和/或技术方案。而调用本发明的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本发明的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本发明的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号