![]() |
| Axial Cut |
![]() |
| Sagittal Cut |
![]() |
| Coronal Cut |
![]() |
| Axial Cut |
![]() |
| Sagittal Cut |
![]() |
| Coronal Cut |
Complaint 20123
Burt Simpson from Springfield Memorial Hospital reports that he can’t send the screen capture to the PACS. He kept clicking the green “Send” button but he always gets the same error: “Operation Failed!”. The log file Burt copied from the system is attached.
C-MOVE is a DICOM command that means this: The calling AE (we) ask the called AE (the PACS) to send all the DICOM Instances that match the identifier to the target AE.
If you're looking for a High-Performance DICOM Server with Query/Retrieve SCP check HRZ's DICOM Server solution.
![]() |
| Frame 0001 |
![]() |
| The first figure in the DIOM standard makes sense eventually |
A quick update on HRZ latest software releases. We've released MODALIZER+ V6.1 with video capture capabilities. Check the post on HRZ web site. And also a new release of MODALIZER-SDK (version 3.2.2.4) that is available on HRZ downloads page.
OK, so here's another PowerShell DICOM script that came handy recently. So my friend, lets call him Benny, got a request from his manager to export all the studies of patients in a list provided as excel sheet and deliver them to a research group (after de-identification and everything of course) but when he called me he just needed to get them out quickly from the PACS. The list was long and there was no chance to do this one by one. So we wrote together this little PowerShell script that reads the patient id's from the excel (after saving it as csv) and use MODALIZER-SDK to do the DICOM work. here it is. I think it explains itself pretty well. We've set the destination PACS-B to be our lightweight PACS server with no plugin so the DICOM files were saved on the disk and from there he picked them up.
$my_ae_title="MY-AE-TITLE"
$pacs_a_ae_title="PACS-A"
$pacs_a_ip_address="10.0.0.10"
$pacs_a_dicom_port=104
$pacs_b_ae_title="PACS-B"
function MoveStudyByPatientID {
param($pat)
$r = New-Object -ComObject rzdcx.DCXREQ
# Lets echo to be sure
$r.Echo($my_ae_title, $pacs_a_ae_title, $pacs_a_ip_address, $pacs_a_dicom_port)
$o = New-Object -ComObject rzdcx.DCXOBJ
$e = New-Object -ComObject rzdcx.DCXELM
# Query Level - STUDY
$e.Init(0x00080052)
$e.Value = "STUDY"
$o.insertElement($e)
# Patient ID
$e.Init(0x00100020)
$e.Value = $pat
$o.insertElement($e)
# Study Instance UID
$e.Init(0x0020000d)
$e.Value = ""
$o.insertElement($e)
$i = $r.Query($my_ae_title, $pacs_a_ae_title, $pacs_a_ip_address, $pacs_a_dicom_port, "1.2.840.10008.5.1.4.1.2.1.1", $o)
if ($i.AtEnd()) {
"No Studies for patient id: " + $pat
}
else
{
while ($i.AtEnd() -ne $true)
{
$res = $i.Get()
"LOG: Study Instance UID: " + $res.GetElement(0x0020000d).Value
$o.insertElement($res.GetElement(0x0020000d))
$r.Move($my_ae_title, $pacs_a_ae_title, $pacs_a_ip_address, $pacs_a_dicom_port, 104, $pacs_b_ae_title, $o)
$i.Next();
}
}
}
# A log never hurts
$a = New-Object -ComObject rzdcx.DCXAPP
$a.StartLogging("log.log")
$a.LogLevel = 5
$patients = Import-Csv -Path .\patients.csv
foreach ($pat in $patients.patient_id)
{
"LOG: Patient ID: " + $pat
MoveStudyByPatientID $pat
}
$a.StopLogging()
# That's it for now
I'm posting this PowerShell script in response to a question I got about sending DICOM files on a CD to PACS.
This functionality is available in MODALIZER+ from the View menu simply by right clicking the Study item at the top study panel and selecting "Send to". The PACS AE title has to be configured first in the settings.
But, for the automation enthusiasts, here's a PowerShell script that do the same. Recalling on DICOMDIR, a DICOM CD or DVD has a file called DICOMDIR in the root path that references all DICOM files on the media. This script iterates through the DICOMDIR records to collect all referenced files, then it send them using DCXREQ.Send command to the PACS.
Here it is. Enjoy!
# Send DICOMDIR Patients to PACS
param($rootFolder);