DICOM通讯服务之C-ECHO

在说C-ECHO通讯服务之前,先考察一下各位,SCU\SCP是什么?AE是什么?SOP Class是什么?transfer syntax是什么?ACSE服务是什么、包含哪几种服务?DIMSE-C服务是什么,包含哪几种服务?DIMSE-N服务是什么,包含哪几种服务?

如果都知道可以直接跳过专业名词解释;

专业名词的解释:

AE

Application Entity

SCU

Service Class User

SCP

Service Class Provider

SOP Class

Service-Object Pair Class Unique Identifier

 

transfer syntaxtransfer syntax
ACSE

Association Control Service Element

DIMSE-C

DICOM Message Service Element-Composite

DIMSE-N

DICOM Message Service Element-Normalized

SCU\SCP:

    由于DICOM通讯方式采用的是C/S模式进行连接,SCU端向SCP端发送连接请求,请求服务及相关数据;

   eg:其中对SCU与SCP的理解,就类似于QQ、微信聊天,主动发消息方为SCU(客户端),接受消息方SCP(服务端);

AE分为以下两种:

  • Calling AE Title为请求端实体名称,在DICOM通讯服务中,用于指代SCU端实体的名称;
  • Called AE Title为被请求端实体名称,在DICOM通讯服务中,用于指代SCP端实体的名称;
  • eg:其中对于Calling AE Title与Called AE Title的理解,就类似与主动发消息方的微信名、QQ名为Calling AE Title,反之。。;

SOP Class:

     客户端用DICOM标识符来标识每种服务,即SOP Class UID(Service Object Pair Class Unique Identifier),在DICOM标准的第4部分有详细介绍。在连接上下文中,被发送的SOP Class 也被叫做抽象语义Abstract Syntax;因此Abstract Syntax就是SOP Class UID的同义词。

     eg:其中对于SOP Class的理解,就类型与老板(SCU)下发某个任务,而下属(SCP)你要告诉你的老板你能否完成该任务;而该任务,在dicom通讯中抽象成了SOP Class,也代表着某一中服务(CECHO等);

transfer syntax:

      在传输SOP Class UID(即Abstract Syntax)的同时,会发送与该服务对应的编码格式,即Transfer Syntaxes。

ACSE服务:

     ACSE是在DICOM3.0中的第8部分介绍,该部分的标题为Network Communication Support for Message Exchange,因此可以断定ACSE主要应用户连接建立阶段。

     ACSE服务主要有A-ASSOCIATE、A-RELEASE、A-ABORT、A-P-ABORT、P-DATA五类,对应的PDU有A-ASSOCIATE-RQ、A-ASSOCIATE-AC、A-ASSOCIATE-RJ、P-DATA-TF、A-RELEASE-RQ、A-RELEASE-RP、A-ABORT七种。

DIMSE:

 

CECHO

 以下会已一段通讯日志做说明(dcm4che)

2020-05-08 16:25:05,966 INFO [http-nio-9888-exec-4] org.dcm4che3.net.Association [Association.java : 465] SCU->SCP(76356) << A-ASSOCIATE-RQ
2020-05-08 16:25:05,966 DEBUG [http-nio-9888-exec-4] org.dcm4che3.net.Association [Association.java : 466] A-ASSOCIATE-RQ[
  calledAET: SCP
  callingAET: SCU
  applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
  implClassUID: 1.2.40.0.13.1.3
  implVersionName: dcm4che-5.17.1
  maxPDULength: 16378
  maxOpsInvoked/maxOpsPerformed: 1/1
  PresentationContext[id: 1
    as: 1.2.840.10008.1.1 - Verification SOP Class
    ts: 1.2.840.10008.1.2 - Implicit VR Little Endian
    ts: 1.2.840.10008.1.2.1 - Explicit VR Little Endian
    ts: 1.2.840.10008.1.2.2 - Explicit VR Big Endian (Retired)
  ]
]
2020-05-08 16:25:05,967 DEBUG [http-nio-9888-exec-4] org.dcm4che3.net.Association [Association.java : 492] SCU->SCP(76356): enter state: Sta5 - Awaiting A-ASSOCIATE-AC or A-ASSOCIATE-RJ PDU
2020-05-08 16:25:05,978 INFO [pool-153568-thread-1] org.dcm4che3.net.Association [Association.java : 595] SCU->SCP(76356) >> A-ASSOCIATE-AC
2020-05-08 16:25:05,978 DEBUG [pool-153568-thread-1] org.dcm4che3.net.Association [Association.java : 596] A-ASSOCIATE-AC[
  calledAET: SCP
  callingAET: SCU
  applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
  implClassUID: 1.2.840.114257.1123456
  implVersionName: 1
  maxPDULength: 16378
  maxOpsInvoked/maxOpsPerformed: 1/1
  PresentationContext[id: 1
    result: 0 - acceptance
    ts: 1.2.840.10008.1.2 - Implicit VR Little Endian
  ]
]
2020-05-08 16:25:05,978 DEBUG [pool-153568-thread-1] org.dcm4che3.net.Association [Association.java : 492] SCU->SCP(76356): enter state: Sta6 - Association established and ready for data transfer
2020-05-08 16:25:05,980 INFO [http-nio-9888-exec-4] org.dcm4che3.net.Dimse [PDUEncoder.java : 406] SCU->SCP(76356) << 1:C-ECHO-RQ[pcid=1
  cuid=1.2.840.10008.1.1 - Verification SOP Class
  tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian]
2020-05-08 16:25:05,981 DEBUG [http-nio-9888-exec-4] org.dcm4che3.net.Dimse [PDUEncoder.java : 408] SCU->SCP(76356) << 1:C-ECHO-RQ Command:
(0000,0002) UI [1.2.840.10008.1.1] AffectedSOPClassUID
(0000,0100) US [48] CommandField
(0000,0110) US [1] MessageID
(0000,0800) US [257] CommandDataSetType

2020-05-08 16:25:05,983 DEBUG [http-nio-9888-exec-4] org.dcm4che3.net.FutureDimseRSP [FutureDimseRSP.java : 154] Wait for next DIMSE RSP
2020-05-08 16:25:05,986 INFO [pool-153568-thread-1] org.dcm4che3.net.Dimse [PDUDecoder.java : 447] SCU->SCP(76356) >> 1:C-ECHO-RSP[pcid=1, status=0H
  cuid=1.2.840.10008.1.1 - Verification SOP Class
  tsuid=1.2.840.10008.1.2 - Implicit VR Little Endian]
2020-05-08 16:25:05,986 DEBUG [pool-153568-thread-1] org.dcm4che3.net.Dimse [PDUDecoder.java : 449] SCU->SCP(76356) >> 1:C-ECHO-RSP Command:
(0000,0002) UI [1.2.840.10008.1.1] AffectedSOPClassUID
(0000,0100) US [32816] CommandField
(0000,0120) US [1] MessageIDBeingRespondedTo
(0000,0800) US [257] CommandDataSetType
(0000,0900) US [0] Status

2020-05-08 16:25:05,986 DEBUG [http-nio-9888-exec-4] org.dcm4che3.net.FutureDimseRSP [FutureDimseRSP.java : 158] Stop waiting for next DIMSE RSP
2020-05-08 16:25:05,987 INFO [http-nio-9888-exec-4] org.dcm4che3.net.Association [Association.java : 385] SCU->SCP(76356) << A-RELEASE-RQ
2020-05-08 16:25:05,988 DEBUG [http-nio-9888-exec-4] org.dcm4che3.net.Association [Association.java : 492] SCU->SCP(76356): enter state: Sta7 - Awaiting A-RELEASE-RP PDU
2020-05-08 16:25:05,989 INFO [pool-153568-thread-1] org.dcm4che3.net.Association [Association.java : 662] SCU->SCP(76356) >> A-RELEASE-RP
2020-05-08 16:25:05,989 INFO [pool-153568-thread-1] org.dcm4che3.net.Association [Association.java : 342] SCU->SCP(76356): close Socket[addr=/127.0.0.1,port=6666,localport=5555]
2020-05-08 16:25:05,989 DEBUG [pool-153568-thread-1] org.dcm4che3.net.Association [Association.java : 492] SCU->SCP(76356): enter state: Sta1 - Idle
  • 1-16行中SCU向SCP发送一个A-ASSOCIATE-RQ请求,该请求中最重要的信息在10-15行,表示SCU端请求对应SCP端的SOP Class(11行),并且SCU端支持的的transfer syntax有三种(12-14行)供SCP端选择;
  • 18-31行中SCP端回复SCU端A-ASSOCIATE-AC,该请求中最重要的信息是27-30行,表示SCP端支持SOP Class服务(28行)并且支持Implicit VR Little Endian这种transfer syntax(29行)中这种;
  • 33-40行中SCU向SCP发送一个C-ECHO-RQ请求,按照SCP端支持的SOP Class与transfer syntax进行通讯,其中该日志中是向SCP端发送C-ECHO的请求ransfer syntax为Implicit VR Little Endian;
  • 43-51行中SCP回复SCU端,回复内容为SOP Class服务以transfer syntax与SCP通讯成功;其中成功状态从51行得知(0为成功);
  • 54行SCU端向SCP端发送A-RELEASE-RQ释放连接请求;
  • 56行SCP端向SCU端发送A-RELEASE-RP同意释放连接;
  • 57行为SCU端关闭临时接口的日志;

 

以上内容均为个人理解,如果有误欢迎留言纠正;

 

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值