dcmtk movescu from pacs PACS

All other questions regarding DCMTK

Moderator: Moderator Team

Post Reply
Message
Author
domenico.aquino
Posts: 8
Joined: Thu, 2017-11-09, 12:20

dcmtk movescu from pacs PACS

#1 Post by domenico.aquino »

Dear All,

I'm trying to download a long list of DICOM exams from PACS. In particular I want to download one specific series from every exam. For example I would like to download the series whose name starts with "DCE*" of the patient "patient_name".
At the moment I'm using movescu, not filtering for the series description.

I have to admit that I don't know the DICOM statement, so I'm new to these kind of operations. Before I always used Osirix GUI to retrieve DICOM files.

The command I use is:

movescu -v -P --aetitle MacPro +P 4096 --call PACS_AETITLE -k 0008,0052="PATIENT" -k 0010,0010="patient_name" PACS_IP_ADDRESS PACS_PORT -od /home/data/

I receive this output:

I: Requesting Association
I: Association Accepted (Max Send PDV: 16372)
I: Sending Move Request (MsgID 1)
I: Request Identifiers:
I:
I: # Dicom-Data-Set
I: # Used TransferSyntax: Little Endian Explicit
I: (0008,0052) CS [PATIENT] # 8, 1 QueryRetrieveLevel
I: (0010,0010) PN [SERIES] # 6, 1 PatientName
I:
I: Received Final Move Response (Success)
I: Releasing Association
mac-pro:dcmtk-master aquino$ movescu -v -P --aetitle MacPro +P 4096 --call BESTASCP -k 0008,0052="PATIENT" -k 0010,0010="patient_name" 192.168.17.203 3102 -od /home/data/
I: Requesting Association
I: Association Accepted (Max Send PDV: 16372)
I: Sending Move Request (MsgID 1)
I: Request Identifiers:
I:
I: # Dicom-Data-Set
I: # Used TransferSyntax: Little Endian Explicit
I: (0008,0052) CS [PATIENT] # 8, 1 QueryRetrieveLevel
I: (0010,0010) PN [patient_name] # 8, 1 PatientName
I:
I: Received Final Move Response (Success)
I: Releasing Association
mac-pro:dcmtk-master aquino$ movescu -v -P --aetitle MacPro +P 4096 --call BESTASCP -k 0008,0052="PATIENT" -k 0010,0010="patient_name" 192.168.17.203 3102 -od /home/data/
I: Requesting Association
I: Association Accepted (Max Send PDV: 16372)
I: Sending Move Request (MsgID 1)
I: Request Identifiers:
I:
I: # Dicom-Data-Set
I: # Used TransferSyntax: Little Endian Explicit
I: (0008,0052) CS [PATIENT] # 8, 1 QueryRetrieveLevel
I: (0010,0010) PN [patient_name] # 8, 1 PatientName
I:
I: Received Final Move Response (Success)
I: Releasing Association

where I obviously substituted the real patient name with "patient_name".
In the /home/data/ folder I can't find any DICOM file.

Which could be the problem?

Please, let me know

Domenico

Michael Onken
DCMTK Developer
Posts: 2048
Joined: Fri, 2004-11-05, 13:47
Location: Oldenburg, Germany
Contact:

Re: dcmtk movescu from pacs PACS

#2 Post by Michael Onken »

Hi,

add "-k Patient ID=<your_patient_id>" and remove the patient name from the query.

You should read about Q/R in the DICOM standard part 4 since the request has to follow a certain structure.

Best,
Michael

domenico.aquino
Posts: 8
Joined: Thu, 2017-11-09, 12:20

Re: dcmtk movescu from pacs PACS

#3 Post by domenico.aquino »

Dear Micheal,

thank you for your answer.
May I ask you, to to the others, if you have a faster solution (without reading the DICOM standard...it's not my field and priority now, but only an instrument)?
Could you suggest me a rapid workaround?

Thanks

Domenico

Michael Onken
DCMTK Developer
Posts: 2048
Joined: Fri, 2004-11-05, 13:47
Location: Oldenburg, Germany
Contact:

Re: dcmtk movescu from pacs PACS

#4 Post by Michael Onken »

Hi,

the hint that I provided will let you download all images of the patient.

If you want to download a specific Series, you have to know
  • The Patient ID of the Patient the Series belongs to
  • The Study Instance UID of the Study the Series belongs to
  • The Series Instance UID of the Series
Having that, you use:

Code: Select all

movescu -v -P --aetitle MacPro +P 4096 --call PACS_AETITLE -k 0008,0052="SERIES" -k PatientID="<patient_id>"  -k StudyInstanceUID="<study_instance_uid>" -k SeriesInstanceUID="<series_instance_uid>" PACS_IP_ADDRESS PACS_PORT -od /home/data/ 
If the server supports Study Root SOP Class (most do), you can neglect the Patient ID and do:

Code: Select all

movescu -v -S --aetitle MacPro +P 4096 --call PACS_AETITLE -k 0008,0052="SERIES" -k StudyInstanceUID="<study_instance_uid>" -k SeriesInstanceUID="<series_instance_uid>" PACS_IP_ADDRESS PACS_PORT -od /home/data/ 
Some servers will even be happy only with the Series Instance UID (though this is not a valid request then, at least not with movescu):

Code: Select all

movescu -v -S --aetitle MacPro +P 4096 --call PACS_AETITLE -k 0008,0052="SERIES" -k SeriesInstanceUID="<series_instance_uid>" PACS_IP_ADDRESS PACS_PORT -od /home/data/ 
Best regards,
Michael

domenico.aquino
Posts: 8
Joined: Thu, 2017-11-09, 12:20

Re: dcmtk movescu from pacs PACS

#5 Post by domenico.aquino »

Thanks a lot :) I'll try and letto you know

Domenico

domenico.aquino
Posts: 8
Joined: Thu, 2017-11-09, 12:20

Re: dcmtk movescu from pacs PACS

#6 Post by domenico.aquino »

Dear Micheal,

findscu finds all the exams of the patient.
I use the command:

findscu -v -P --aetitle MacPro --call AETITLE_PACS -k 0008,0052="SERIES" -k SeriesDescription="DCE*" -k PatientName="patient_name*" -k StudyDate="*" IP_PACS PORT_PACS

moves seems to react but it gives me this error: Received Final Move Response (Unknown Status: 0xa700)

movescu -v -P --aetitle MacPro --call AETITLE_PACS -k 0008,0052="SERIES" -k SeriesDescription="DCE*" -k PatientName="patient_name*" -k StudyDate="20120214" IP_PACS PORT_PACS -od /home/dati/dcmtk/

Which could be the problem?

Thank you so much

Domenico

Michael Onken
DCMTK Developer
Posts: 2048
Joined: Fri, 2004-11-05, 13:47
Location: Oldenburg, Germany
Contact:

Re: dcmtk movescu from pacs PACS

#7 Post by Michael Onken »

First you need to use findscu to find Patient ID, Study and Series Instance UID in order to use them in movescu and do the download. This is the general approach (only -P and -k options shown):

1) findscu -P -k 008,0052=PATIENT -k PatientName="patient_name" -k PatientID ...

2) Use the Patient ID that is returned and get the Study Instance UID:
findscu -P -k 008,0052=STUDY -k PatientID="patient_id" -k StudyInstanceUID ....
If there is more than one study returned, you will need to check them all in the following step:

3) Use the Patient ID, Study Instance UID , and Series Description and get the Series Instance UID:
findscu -P -k 008,0052=SERIES -k PatientID="patient_id" -k StudyInstanceUID="series_instance_uid" -k SeriesDescription="DCE*" -k SeriesInstanceUID ....
If there is more than one series returned, you will need to download each of them in the following step:

4) Use Patient ID, Study Instance UID and Series Instance UID that you found out and use them in the movescu query that I explained in my last posting.
If you want to download more than one series, list them in movescu separated with backslash, i.e. -k SeriesInstanceUID="1.2.3.4\5.6.7.8...". If this does not work, call movescu for each of the series.

Best,
Michael

P.S: Please read about Q/R, in the end it saves your time if you know what you are doing. And mine ;)

Post Reply

Who is online

Users browsing this forum: Ahrefs [Bot], Bing [Bot], Google [Bot] and 1 guest