Как использовать dcm4che3 movcu для запроса сервера PACS, используя AccessionNumber?

Я пытаюсь использовать команду:

movescu -b MOVESCU:11133 -c AE_ARCH1@192.168.2.63:104 --dest MOVESCU -m AccessionNumber=ZH171217DR027

Это ничего не находит, я уверен, что есть результат.

использовать "movescu -b MOVESCU:11133 -c AE_ARCH1@192.168.2.63:104 --dest MOVESCU -m StudyInstanceUID=1.2.840.113619.186.1441772842175112.20180117144250009.393"это работает хорошо.

использовать "movescu -b MOVESCU:11133 -c AE_ARCH1@192.168.2.63:104 --dest MOVESCU -m AccessionNumber=ZH171217DR027" журнал:

    E:\dcm4che-5.11.0\bin>movescu  -b MOVESCU:11133 -c AE_ARCH1@192.168.2.63:104   -
-dest MOVESCU    -m AccessionNumber=ZH171217DR027
19:39:19,102 INFO  - Initiate connection from 0.0.0.0/0.0.0.0:0 to 192.168.2.63:
104
19:39:19,117 INFO  - Established connection Socket[addr=/192.168.2.63,port=104,l
ocalport=8028]
19:39:19,117 DEBUG - /172.16.23.232:8028->/192.168.2.63:104(1): enter state: Sta
4 - Awaiting transport connection opening to complete
19:39:19,133 INFO  - MOVESCU->AE_ARCH1(1) << A-ASSOCIATE-RQ
19:39:19,148 DEBUG - A-ASSOCIATE-RQ[
  calledAET: AE_ARCH1
  callingAET: MOVESCU
  applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
  implClassUID: 1.2.40.0.13.1.3
  implVersionName: dcm4che-5.11.0
  maxPDULength: 16378
  maxOpsInvoked/maxOpsPerformed: 0/0
  PresentationContext[id: 1
    as: 1.2.840.10008.5.1.4.1.2.2.2 - Study Root Query/Retrieve Information Mode
l - MOVE
    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)
  ]
]
19:39:19,148 DEBUG - MOVESCU->AE_ARCH1(1): enter state: Sta5 - Awaiting A-ASSOCI
ATE-AC or A-ASSOCIATE-RJ PDU
19:39:19,164 INFO  - MOVESCU->AE_ARCH1(1) >> A-ASSOCIATE-AC
19:39:19,195 DEBUG - A-ASSOCIATE-AC[
  calledAET: AE_ARCH1
  callingAET: MOVESCU
  applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
  implClassUID: 1.2.528.1.1001.2.800.5.0.3020.0
  implVersionName: EA 5.0.3020.0
  maxPDULength: 16384
  maxOpsInvoked/maxOpsPerformed: 0/1
  PresentationContext[id: 1
    result: 0 - acceptance
    ts: 1.2.840.10008.1.2.1 - Explicit VR Little Endian
  ]
]
19:39:19,195 DEBUG - MOVESCU->AE_ARCH1(1): enter state: Sta6 - Association estab
lished and ready for data transfer
19:39:19,195 INFO  - MOVESCU->AE_ARCH1(1) << 1:C-MOVE-RQ[pcid=1, prior=0
  cuid=1.2.840.10008.5.1.4.1.2.2.2 - Study Root Query/Retrieve Information Model
 - MOVE
  tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian
19:39:19,226 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.2] AffectedSOPClassUID
(0000,0100) US [33] CommandField
(0000,0110) US [1] MessageID
(0000,0600) AE [MOVESCU] MoveDestination
(0000,0700) US [0] Priority
(0000,0800) US [0] CommandDataSetType

19:39:19,242 DEBUG - Dataset:
(0008,0050) SH [ZH171217DR027] AccessionNumber
(0008,0052) CS [STUDY] QueryRetrieveLevel

19:39:19,258 INFO  - MOVESCU->AE_ARCH1(1) >> 1:C-MOVE-RSP[pcid=1, status=120H
  cuid=1.2.840.10008.5.1.4.1.2.2.2 - Study Root Query/Retrieve Information Model
 - MOVE
  tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian
19:39:19,258 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.2] AffectedSOPClassUID
(0000,0100) US [32801] CommandField
(0000,0120) US [1] MessageIDBeingRespondedTo
(0000,0800) US [257] CommandDataSetType
(0000,0900) US [288] Status

19:39:19,258 INFO  - MOVESCU->AE_ARCH1(1) << A-RELEASE-RQ
19:39:19,258 DEBUG - MOVESCU->AE_ARCH1(1): enter state: Sta7 - Awaiting A-RELEAS
E-RP PDU
19:39:19,258 INFO  - MOVESCU->AE_ARCH1(1) >> A-RELEASE-RP
19:39:19,258 INFO  - MOVESCU->AE_ARCH1(1): close Socket[addr=/192.168.2.63,port=
104,localport=8028]
19:39:19,258 DEBUG - MOVESCU->AE_ARCH1(1): enter state: Sta1 - Idle

используйте "movecu -b MOVESCU:11133 -c AE_ARCH1@192.168.2.63:104 --dest MOVESCU -m StudyInstanceUID=1.2.840.113619.186.1441772842175112.20180117144250009.393" журнал:

19:46:31,536 INFO  - Initiate connection from 0.0.0.0/0.0.0.0:0 to 192.168.2.63:
104
19:46:31,552 INFO  - Established connection Socket[addr=/192.168.2.63,port=104,l
ocalport=8094]
19:46:31,552 DEBUG - /172.16.23.232:8094->/192.168.2.63:104(1): enter state: Sta
4 - Awaiting transport connection opening to complete
19:46:31,552 INFO  - MOVESCU->AE_ARCH1(1) << A-ASSOCIATE-RQ
19:46:31,568 DEBUG - A-ASSOCIATE-RQ[
  calledAET: AE_ARCH1
  callingAET: MOVESCU
  applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
  implClassUID: 1.2.40.0.13.1.3
  implVersionName: dcm4che-5.11.0
  maxPDULength: 16378
  maxOpsInvoked/maxOpsPerformed: 0/0
  PresentationContext[id: 1
    as: 1.2.840.10008.5.1.4.1.2.2.2 - Study Root Query/Retrieve Information Mode
l - MOVE
    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)
  ]
]
19:46:31,568 DEBUG - MOVESCU->AE_ARCH1(1): enter state: Sta5 - Awaiting A-ASSOCI
ATE-AC or A-ASSOCIATE-RJ PDU
19:46:31,583 INFO  - MOVESCU->AE_ARCH1(1) >> A-ASSOCIATE-AC
19:46:31,646 DEBUG - A-ASSOCIATE-AC[
  calledAET: AE_ARCH1
  callingAET: MOVESCU
  applicationContext: 1.2.840.10008.3.1.1.1 - DICOM Application Context Name
  implClassUID: 1.2.528.1.1001.2.800.5.0.3020.0
  implVersionName: EA 5.0.3020.0
  maxPDULength: 16384
  maxOpsInvoked/maxOpsPerformed: 0/1
  PresentationContext[id: 1
    result: 0 - acceptance
    ts: 1.2.840.10008.1.2.1 - Explicit VR Little Endian
  ]
]
19:46:31,646 DEBUG - MOVESCU->AE_ARCH1(1): enter state: Sta6 - Association estab
lished and ready for data transfer
19:46:31,646 INFO  - MOVESCU->AE_ARCH1(1) << 1:C-MOVE-RQ[pcid=1, prior=0
  cuid=1.2.840.10008.5.1.4.1.2.2.2 - Study Root Query/Retrieve Information Model
 - MOVE
  tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian
19:46:31,677 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.2] AffectedSOPClassUID
(0000,0100) US [33] CommandField
(0000,0110) US [1] MessageID
(0000,0600) AE [MOVESCU] MoveDestination
(0000,0700) US [0] Priority
(0000,0800) US [0] CommandDataSetType

19:46:31,692 DEBUG - Dataset:
(0008,0052) CS [STUDY] QueryRetrieveLevel
(0020,000D) UI [1.2.840.113619.186.1441772842175112.20180117144250009.393] Stu

19:46:36,762 INFO  - MOVESCU->AE_ARCH1(1) >> 1:C-MOVE-RSP[pcid=1, status=0H
  cuid=1.2.840.10008.5.1.4.1.2.2.2 - Study Root Query/Retrieve Information Model
 - MOVE
  tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian
19:46:36,762 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.2] AffectedSOPClassUID
(0000,0100) US [32801] CommandField
(0000,0120) US [1] MessageIDBeingRespondedTo
(0000,0800) US [257] CommandDataSetType
(0000,0900) US [0] Status

19:46:36,840 INFO  - MOVESCU->AE_ARCH1(1) << A-RELEASE-RQ
19:46:36,840 DEBUG - MOVESCU->AE_ARCH1(1): enter state: Sta7 - Awaiting A-RELEAS
E-RP PDU
19:46:36,840 INFO  - MOVESCU->AE_ARCH1(1) >> A-RELEASE-RP
19:46:36,840 INFO  - MOVESCU->AE_ARCH1(1): close Socket[addr=/192.168.2.63,port=
104,localport=8094]
19:46:36,840 DEBUG - MOVESCU->AE_ARCH1(1): enter state: Sta1 - Idle

Разные места это:

19:39:19,258 INFO  - MOVESCU->AE_ARCH1(1) >> 1:C-MOVE-RSP[pcid=1, status=120H
  cuid=1.2.840.10008.5.1.4.1.2.2.2 - Study Root Query/Retrieve Information Model
 - MOVE
  tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian
19:39:19,258 DEBUG - Command:
(0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.2] AffectedSOPClassUID
(0000,0100) US [32801] CommandField
(0000,0120) US [1] MessageIDBeingRespondedTo
(0000,0800) US [257] CommandDataSetType
(0000,0900) US [288] Status

а также

 19:46:36,762 INFO  - MOVESCU->AE_ARCH1(1) >> 1:C-MOVE-RSP[pcid=1, status=0H
      cuid=1.2.840.10008.5.1.4.1.2.2.2 - Study Root Query/Retrieve Information Model
     - MOVE
      tsuid=1.2.840.10008.1.2.1 - Explicit VR Little Endian
    19:46:36,762 DEBUG - Command:
    (0000,0002) UI [1.2.840.10008.5.1.4.1.2.2.2] AffectedSOPClassUID
    (0000,0100) US [32801] CommandField
    (0000,0120) US [1] MessageIDBeingRespondedTo
    (0000,0800) US [257] CommandDataSetType
    (0000,0900) US [0] Status

C-MOVE-RSP возвращаемое значение status=0H или status=120H. Я не могу найти значение , и (0000,0900)[288] может быть, я потерял параметры

Я использую dcm4che2 "dcmqr -L MOVESCU AE_ARCH1@192.168.2.63:104 -qAccessionNumber=ZH171231DR039 -cmove MOVESCU "это работает

Как использовать dcm4che3 movcu для запроса сервера PACS, используя AccessionNumber?

2 ответа

Я не знаю dcm4chee слишком хорошо. Но в DICOM ваш запрос на перемещение по номеру доступа не соответствует, поэтому я подозреваю, что это может вызвать вашу проблему. В DICOM вы должны поместить запрос C-FIND уровня STUDY для поиска UID экземпляра исследования, соответствующего номеру доступа, а затем выполнить C-MOVE для каждого соответствующего исследования.

Как указал @kritzel_sw, выполнение C-MOVE для чего-либо еще, кроме значений UID экземпляра, не соответствует стандарту.

Я также нашел код состояния 120H, указанный в исходном коде dcm4che3 на Github.

/**
 * Failure: missing Attribute (120H): a required Attribute was not 
 * supplied.
 * Used in N-CREATE-RSP.
 * May contain:
 *   Modification List/Attribute List (no tag)
 */
public static final int MissingAttribute                   = 0x0120;

Похоже, он не должен использоваться в C-MOVE-RSP, но имеет смысл - необходимые атрибуты UID отсутствуют в запросе.

Причина, по которой он работает с dcmqr, заключается в том, что он сначала выполняет C-FIND, а затем C-MOVE на основе результатов C-FIND. Утилиты dcm4che3 - это строго разделенные инструменты C-FIND и C-MOVE.

Другие вопросы по тегам