pacs系统Debugging with DCMTK

1.系统组成:     CT 设备 连接  pacs服务器实现数据下载功能。

2.pacs系统配置和搭建参考网站:https://support.dcmtk.org/redmine/projects/dcmtk/wiki/Howto_PACSDebuggingWithDCMTK

3.配置完成之后测了下本地与服务器连接是否正常:

jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$ echoscu -d 220.0.5.55 1111 -aec ACME_STORE -aet jjkj
D: $dcmtk: echoscu v3.6.4 2018-11-29 $
D:
D: DcmDataDictionary: Loading file: /usr/local/share/dcmtk/dicom.dic
D: Request Parameters:
D: ====================== BEGIN A-ASSOCIATE-RQ =====================
D: Our Implementation Class UID:      1.2.276.0.7230010.3.0.3.6.4
D: Our Implementation Version Name:   OFFIS_DCMTK_364
D: Their Implementation Class UID:    
D: Their Implementation Version Name:
D: Application Context Name:    1.2.840.10008.3.1.1.1
D: Calling Application Name:    jjkj
D: Called Application Name:     ACME_STORE
D: Responding Application Name: ACME_STORE
D: Our Max PDU Receive Size:    16384
D: Their Max PDU Receive Size:  0
D: Presentation Contexts:
D:   Context ID:        1 (Proposed)
D:     Abstract Syntax: =VerificationSOPClass
D:     Proposed SCP/SCU Role: Default
D:     Proposed Transfer Syntax(es):
D:       =LittleEndianImplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation:  none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response:  none
D: ======================= END A-ASSOCIATE-RQ ======================
I: Requesting Association
D: setting network send timeout to 60 seconds
D: setting network receive timeout to 60 seconds
D: Constructing Associate RQ PDU
F: Association Rejected:
F: Result: Rejected Permanent, Source: Service User
F: Reason: Called AE Title Not Recognized

jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$ echoscu -d 127.0.0.1 1111 -aec ACME_STORE -aet jjkj
D: $dcmtk: echoscu v3.6.4 2018-11-29 $
D:
D: DcmDataDictionary: Loading file: /usr/local/share/dcmtk/dicom.dic
D: Request Parameters:
D: ====================== BEGIN A-ASSOCIATE-RQ =====================
D: Our Implementation Class UID:      1.2.276.0.7230010.3.0.3.6.4
D: Our Implementation Version Name:   OFFIS_DCMTK_364
D: Their Implementation Class UID:    
D: Their Implementation Version Name:
D: Application Context Name:    1.2.840.10008.3.1.1.1
D: Calling Application Name:    jjkj
D: Called Application Name:     ACME_STORE
D: Responding Application Name: ACME_STORE
D: Our Max PDU Receive Size:    16384
D: Their Max PDU Receive Size:  0
D: Presentation Contexts:
D:   Context ID:        1 (Proposed)
D:     Abstract Syntax: =VerificationSOPClass
D:     Proposed SCP/SCU Role: Default
D:     Proposed Transfer Syntax(es):
D:       =LittleEndianImplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation:  none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response:  none
D: ======================= END A-ASSOCIATE-RQ ======================
I: Requesting Association
D: setting network send timeout to 60 seconds
D: setting network receive timeout to 60 seconds
D: Constructing Associate RQ PDU
D: PDU Type: Associate Accept, PDU Length: 184 + 6 bytes PDU header
D:   02  00  00  00  00  b8  00  01  00  00  41  43  4d  45  5f  53
D:   54  4f  52  45  20  20  20  20  20  20  6a  6a  6b  6a  20  20
D:   20  20  20  20  20  20  20  20  20  20  00  00  00  00  00  00
D:   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
D:   00  00  00  00  00  00  00  00  00  00  10  00  00  15  31  2e
D:   32  2e  38  34  30  2e  31  30  30  30  38  2e  33  2e  31  2e
D:   31  2e  31  21  00  00  19  01  00  00  00  40  00  00  11  31
D:   2e  32  2e  38  34  30  2e  31  30  30  30  38  2e  31  2e  32
D:   50  00  00  3a  51  00  00  04  00  00  40  00  52  00  00  1b
D:   31  2e  32  2e  32  37  36  2e  30  2e  37  32  33  30  30  31
D:   30  2e  33  2e  30  2e  33  2e  36  2e  34  55  00  00  0f  4f
D:   46  46  49  53  5f  44  43  4d  54  4b  5f  33  36  34
D: Parsing an A-ASSOCIATE PDU
D: Association Parameters Negotiated:
D: ====================== BEGIN A-ASSOCIATE-AC =====================
D: Our Implementation Class UID:      1.2.276.0.7230010.3.0.3.6.4
D: Our Implementation Version Name:   OFFIS_DCMTK_364
D: Their Implementation Class UID:    1.2.276.0.7230010.3.0.3.6.4
D: Their Implementation Version Name: OFFIS_DCMTK_364
D: Application Context Name:    1.2.840.10008.3.1.1.1
D: Calling Application Name:    jjkj
D: Called Application Name:     ACME_STORE
D: Responding Application Name: ACME_STORE
D: Our Max PDU Receive Size:    16384
D: Their Max PDU Receive Size:  16384
D: Presentation Contexts:
D:   Context ID:        1 (Accepted)
D:     Abstract Syntax: =VerificationSOPClass
D:     Proposed SCP/SCU Role: Default
D:     Accepted SCP/SCU Role: Default
D:     Accepted Transfer Syntax: =LittleEndianImplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation:  none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response:  none
D: ======================= END A-ASSOCIATE-AC ======================
I: Association Accepted (Max Send PDV: 16372)
I: Sending Echo Request (MsgID 1)
D: DcmDataset::read() TransferSyntax="Little Endian Implicit"
I: Received Echo Response (Success)
I: Releasing Association
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$

3.回环口可以连接,但是以太网分配的IP地址链接失败

jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$ ifconfig
eno1      Link encap:以太网  硬件地址 4c:cc:6a:6b:1c:fa  
          inet 地址:220.0.5.55  广播:220.0.7.255  掩码:255.255.252.0
          inet6 地址: fe80::2b4f:78fd:bec0:3c0e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  跃点数:1
          接收数据包:981613 错误:0 丢弃:39637 过载:0 帧数:0
          发送数据包:17343 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000
          接收字节:164037630 (164.0 MB)  发送字节:1505460 (1.5 MB)
          中断:20 Memory:fb300000-fb320000

lo        Link encap:本地环回  
          inet 地址:127.0.0.1  掩码:255.0.0.0
          inet6 地址: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  跃点数:1
          接收数据包:830050 错误:0 丢弃:0 过载:0 帧数:0
          发送数据包:830050 错误:0 丢弃:0 过载:0 载波:0
          碰撞:0 发送队列长度:1000
          接收字节:4338991742 (4.3 GB)  发送字节:4338991742 (4.3 GB)

4.查看pacs系统的配置文件:

acme1           = (jjkj, localhost, 1111)
acme2           = (jjkj, 220.0.5.55, 1111)
acmeCTcompany   = acme1, acme2
united1         = (UHICT, 220.0.4.15, 3333)
united2        = (jjkj, localhost, 1111)
united3         = (jjkj, localaddress, 1111)
unitedMRcompany = united1, united2 , united3

5.后来发现不支持ip地址的形式,配置给要用到的的IP地址配置了域名,将配置文件改成:

acme1           = (jjkj, localhost, 1111)
acme2           = (jjkj, localaddress, 1111)
#acme3           = (jjkj, localhost, 1111)
acmeCTcompany   = acme1, acme2
united1         = (UHICT, ctaddress, 3333)
united2         = (UNITED2, unitedhost2, 2222)
united3         = (jjkj, localhost, 1111)
united4         = (jjkj, localaddress, 1111)
unitedMRcompany = united1, united2 , united3, united4

6.本地测试就通过了:

jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$ echoscu -d 127.0.0.1 1111 -aec ACME_STORE -aet jjkj
D: $dcmtk: echoscu v3.6.4 2018-11-29 $
D:
D: DcmDataDictionary: Loading file: /usr/local/share/dcmtk/dicom.dic
D: Request Parameters:
D: ====================== BEGIN A-ASSOCIATE-RQ =====================
D: Our Implementation Class UID:      1.2.276.0.7230010.3.0.3.6.4
D: Our Implementation Version Name:   OFFIS_DCMTK_364
D: Their Implementation Class UID:    
D: Their Implementation Version Name:
D: Application Context Name:    1.2.840.10008.3.1.1.1
D: Calling Application Name:    jjkj
D: Called Application Name:     ACME_STORE
D: Responding Application Name: ACME_STORE
D: Our Max PDU Receive Size:    16384
D: Their Max PDU Receive Size:  0
D: Presentation Contexts:
D:   Context ID:        1 (Proposed)
D:     Abstract Syntax: =VerificationSOPClass
D:     Proposed SCP/SCU Role: Default
D:     Proposed Transfer Syntax(es):
D:       =LittleEndianImplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation:  none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response:  none
D: ======================= END A-ASSOCIATE-RQ ======================
I: Requesting Association
D: setting network send timeout to 60 seconds
D: setting network receive timeout to 60 seconds
D: Constructing Associate RQ PDU
D: PDU Type: Associate Accept, PDU Length: 184 + 6 bytes PDU header
D:   02  00  00  00  00  b8  00  01  00  00  41  43  4d  45  5f  53
D:   54  4f  52  45  20  20  20  20  20  20  6a  6a  6b  6a  20  20
D:   20  20  20  20  20  20  20  20  20  20  00  00  00  00  00  00
D:   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
D:   00  00  00  00  00  00  00  00  00  00  10  00  00  15  31  2e
D:   32  2e  38  34  30  2e  31  30  30  30  38  2e  33  2e  31  2e
D:   31  2e  31  21  00  00  19  01  00  00  00  40  00  00  11  31
D:   2e  32  2e  38  34  30  2e  31  30  30  30  38  2e  31  2e  32
D:   50  00  00  3a  51  00  00  04  00  00  40  00  52  00  00  1b
D:   31  2e  32  2e  32  37  36  2e  30  2e  37  32  33  30  30  31
D:   30  2e  33  2e  30  2e  33  2e  36  2e  34  55  00  00  0f  4f
D:   46  46  49  53  5f  44  43  4d  54  4b  5f  33  36  34
D: Parsing an A-ASSOCIATE PDU
D: Association Parameters Negotiated:
D: ====================== BEGIN A-ASSOCIATE-AC =====================
D: Our Implementation Class UID:      1.2.276.0.7230010.3.0.3.6.4
D: Our Implementation Version Name:   OFFIS_DCMTK_364
D: Their Implementation Class UID:    1.2.276.0.7230010.3.0.3.6.4
D: Their Implementation Version Name: OFFIS_DCMTK_364
D: Application Context Name:    1.2.840.10008.3.1.1.1
D: Calling Application Name:    jjkj
D: Called Application Name:     ACME_STORE
D: Responding Application Name: ACME_STORE
D: Our Max PDU Receive Size:    16384
D: Their Max PDU Receive Size:  16384
D: Presentation Contexts:
D:   Context ID:        1 (Accepted)
D:     Abstract Syntax: =VerificationSOPClass
D:     Proposed SCP/SCU Role: Default
D:     Accepted SCP/SCU Role: Default
D:     Accepted Transfer Syntax: =LittleEndianImplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation:  none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response:  none
D: ======================= END A-ASSOCIATE-AC ======================
I: Association Accepted (Max Send PDV: 16372)
I: Sending Echo Request (MsgID 1)
D: DcmDataset::read() TransferSyntax="Little Endian Implicit"
I: Received Echo Response (Success)
I: Releasing Association
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$ echoscu -d localaddress 1111 -aec ACME_STORE -aet jjkj
D: $dcmtk: echoscu v3.6.4 2018-11-29 $
D:
D: DcmDataDictionary: Loading file: /usr/local/share/dcmtk/dicom.dic
D: Request Parameters:
D: ====================== BEGIN A-ASSOCIATE-RQ =====================
D: Our Implementation Class UID:      1.2.276.0.7230010.3.0.3.6.4
D: Our Implementation Version Name:   OFFIS_DCMTK_364
D: Their Implementation Class UID:    
D: Their Implementation Version Name:
D: Application Context Name:    1.2.840.10008.3.1.1.1
D: Calling Application Name:    jjkj
D: Called Application Name:     ACME_STORE
D: Responding Application Name: ACME_STORE
D: Our Max PDU Receive Size:    16384
D: Their Max PDU Receive Size:  0
D: Presentation Contexts:
D:   Context ID:        1 (Proposed)
D:     Abstract Syntax: =VerificationSOPClass
D:     Proposed SCP/SCU Role: Default
D:     Proposed Transfer Syntax(es):
D:       =LittleEndianImplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation:  none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response:  none
D: ======================= END A-ASSOCIATE-RQ ======================
I: Requesting Association
D: setting network send timeout to 60 seconds
D: setting network receive timeout to 60 seconds
D: Constructing Associate RQ PDU
D: PDU Type: Associate Accept, PDU Length: 184 + 6 bytes PDU header
D:   02  00  00  00  00  b8  00  01  00  00  41  43  4d  45  5f  53
D:   54  4f  52  45  20  20  20  20  20  20  6a  6a  6b  6a  20  20
D:   20  20  20  20  20  20  20  20  20  20  00  00  00  00  00  00
D:   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
D:   00  00  00  00  00  00  00  00  00  00  10  00  00  15  31  2e
D:   32  2e  38  34  30  2e  31  30  30  30  38  2e  33  2e  31  2e
D:   31  2e  31  21  00  00  19  01  00  00  00  40  00  00  11  31
D:   2e  32  2e  38  34  30  2e  31  30  30  30  38  2e  31  2e  32
D:   50  00  00  3a  51  00  00  04  00  00  40  00  52  00  00  1b
D:   31  2e  32  2e  32  37  36  2e  30  2e  37  32  33  30  30  31
D:   30  2e  33  2e  30  2e  33  2e  36  2e  34  55  00  00  0f  4f
D:   46  46  49  53  5f  44  43  4d  54  4b  5f  33  36  34
D: Parsing an A-ASSOCIATE PDU
D: Association Parameters Negotiated:
D: ====================== BEGIN A-ASSOCIATE-AC =====================
D: Our Implementation Class UID:      1.2.276.0.7230010.3.0.3.6.4
D: Our Implementation Version Name:   OFFIS_DCMTK_364
D: Their Implementation Class UID:    1.2.276.0.7230010.3.0.3.6.4
D: Their Implementation Version Name: OFFIS_DCMTK_364
D: Application Context Name:    1.2.840.10008.3.1.1.1
D: Calling Application Name:    jjkj
D: Called Application Name:     ACME_STORE
D: Responding Application Name: ACME_STORE
D: Our Max PDU Receive Size:    16384
D: Their Max PDU Receive Size:  16384
D: Presentation Contexts:
D:   Context ID:        1 (Accepted)
D:     Abstract Syntax: =VerificationSOPClass
D:     Proposed SCP/SCU Role: Default
D:     Accepted SCP/SCU Role: Default
D:     Accepted Transfer Syntax: =LittleEndianImplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation:  none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response:  none
D: ======================= END A-ASSOCIATE-AC ======================
I: Association Accepted (Max Send PDV: 16372)
I: Sending Echo Request (MsgID 1)
D: DcmDataset::read() TransferSyntax="Little Endian Implicit"
I: Received Echo Response (Success)
I: Releasing Association
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$
jjkj@jjkj-MS-7A54-Invalid-entry-length-16-Fixed-up-to-11:~/Project$

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: DCMTK是一种开源的医学影像处理工具包,可以用于与医学图像存档和通信系统PACS)进行通信,从PACS中拉取数据。PACS是一种用于存储、检索、传输和共享医学影像的系统,包括医学图像的获取、存储、显示和管理等功能。 要从PACS中拉取数据,首先需要使用DCMTK创建一个DICOM网络连接并进行身份验证。这可以通过指定PACS的地址、端口和相关的用户凭据来实现。一旦连接建立,就可以发送DICOM查询请求到PACS,以获取感兴趣的图像或患者数据。 DICOM查询请求可以基于不同的搜索标准,如患者姓名、ID、检查日期等。一旦查询请求发送到PACS,它将返回与查询条件匹配的图像或患者数据。 DCMTK提供了丰富的API和工具,可以处理从PACS返回的DICOM图像数据。可以使用DCMTK将DICOM图像保存到本地存储设备,或者将其加载到内存中进行进一步的处理和分析。 DCMTK还支持DICOM网络通信协议,用于与PACS进行图像传输。它可以将DICOM图像从PACS下载到本地计算机,以供离线分析或进一步处理。 总结来说,DCMTK可以作为一个功能强大的工具包,用于与PACS进行通信,从PACS中拉取医学影像数据。它提供了灵活的查询和图像传输功能,可以支持各种医学图像处理和分析任务。 ### 回答2: dcmtk是一个开源的医学影像处理工具包,它也可以用于从PACS(Picture Archiving and Communication System,影像存档与通信系统)中拉取数据。 在使用dcmtk进行PACS数据拉取时,首先我们需要了解PACS的基本工作原理。PACS是一种医学影像管理系统,它通过网络连接医疗设备、影像诊断工作站和存储服务器,实现医学影像的传输、存储和共享。PACS中的数据通常以DICOM(Digital Imaging and Communications in Medicine,医学数字成像与通信)格式进行存储。 接下来,我们可以使用dcmtk中的DcmSCP(DICOM Service Class Provider)工具来作为PACS服务的提供者,用于接收外部请求并提供DICOM数据。配置好DcmSCP后,它可以监听PACS的特定端口,并等待来自外部设备的请求。当有请求发生时,DcmSCP就可以将保存在PACS中的DICOM数据提供给请求方。 而作为数据拉取方,我们可以使用dcmtk中的DcmQR(DICOM Query/Retrieve)工具。通过DcmQR,我们可以向PACS发送特定的查询请求,以获取我们需要的DICOM数据。查询请求的信息可以包括患者ID、检查日期、检查类型等等。一旦查询请求被PACS接收并处理,PACS将会返回满足查询条件的DICOM数据给DcmQR工具。然后,DcmQR将会将这些数据保存到本地存储设备中,我们就可以在本地进行进一步的处理和分析。 使用dcmtkPACS拉取数据需要我们进行一定的配置和编程操作,确保与PACS的正确连接和数据传输。这里仅仅是对dcmtkPACS拉取数据的过程进行一个简单的介绍,具体的操作和细节还需要根据实际情况进行具体分析和实施。 ### 回答3: DCMTK是一个开源的医学影像和通信工具包,用于处理DICOM(医学影像和通信)文件。通过使用DCMTK,可以从PACS(医学图像和通信系统)拉取数据。 要从PACS拉取数据,首先需要建立与PACS的连接。可以使用DCMTK中的一些工具和库函数来完成这一操作。例如,可以使用DCMTK的`findscu`命令行工具来发送C-FIND请求,以找到特定患者、检查或图像的DICOM对象。使用命令行的方式,可以通过指定PACS的IP地址、端口号、查询条件等信息来发送请求。 使用DCMTK进行PACS数据检索的另一个选项是使用DCMTK库函数编写自定义的应用程序。通过编写代码,可以使用DCMTK提供的API来建立与PACS的连接并发送C-FIND请求。通过对返回的结果进行解析和处理,可以获取所需的DICOM文件。 一旦与PACS建立成功,并成功发送了相应的请求,PACS将返回DICOM对象的元数据。DCMTK提供了一些工具和库函数来处理和解析DICOM文件,例如`dcm2xml`可以将DICOM文件转换为XML格式,`dcm2jpg`可以将DICOM文件转换为JPEG格式的图像。这样,可以根据需要将DICOM文件保存到本地计算机或者进行进一步的分析和处理。 综上所述,通过使用DCMTK,可以方便地从PACS拉取DICOM数据。无论是通过命令行工具还是编写自定义应用程序,DCMTK提供了一些工具和库函数来建立与PACS的连接并发送请求,然后处理返回的数据。这样,我们可以获取所需的DICOM文件并进行后续的处理和分析。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值