C-Find Service就略过去吧,因为我已经把支持extended behavior的C-Find搞定了.
下面谈一下C-Move和C-Store吧(主要是关于传输语法的设计):
C-Move scu/scp和C-Store scu/scp要支持的non-compression transfer syntaxex包括三种:
(1)Implicit VR Little Endian, (2)Explicit VR Little Endian, (3)Explicit VR Big Endian
要支持的compression transfer syntaxes包括:
(1)Baseline JPEG(Process 1), (2)Extended JPEG(Process 2(8-bit), 4(12-bit)), (3)Lossless, Non-Hierarchical JPEG(Process 14), (4)Lossless JPEG(Process 14)
当启动Move scu的时候,我提供一个选项movescu ... -transfer..,该-transfer选项主要让用户来输入一个他想要的传输语法。然后该传输语法同Move SCP进行协商,如果协商通过的话Move SCP来检查一下要Move的图象的transfer syntax UID(0002,0010),如果协商的传输语法同(0002,0010)都是非压缩的传输语法,则根据协商的传输语法来启动C-Store SCU,然后C-Store SCU来根据非压缩的传输语法进行byte swap之后发送过去(假定C-Store SCU和SCP都协商通过的话);但是如果协商的传输语法和(0002,0010)和要发送图象的传输语法不都是非压缩的,则我要调用dcmjpeg的转换函数把要发送的图象转换成要协商好的传输语法的图象,然后启动C-Store SCU按照C-Move协商好的传输语法进行发送(假定C-Store SCU和SCP都协商通过的话)。
这样设计合理吗?因为我个人认为如果我的C-Move和C-Store服务要支持以上传输语法的话,压缩和非压缩必须要经过图象转换才可以。然后把图象转换成协商好的传输语法的图象再进行发送。
谢谢指教!
|