-
Notifications
You must be signed in to change notification settings - Fork 6
PACS Retrieve Pull to Client
This page describes how to pull data that has been received by pfdcm
to a local client.
- A HOST_IP environment variable that denotes the IP of the host housing the service. In Linux, you can do:
export HOST_IP=$(ip route | grep -v docker | awk '{if(NF==11) print $9}')
- Make sure that
pfdcm
has been started (see here for more info)
pfcon --forever --httpResponse
-
Have the following information pertaining to the remote PACS server:
- IP
- port
- AETITLE
- CALLED AETITLE
-
Set the internal values specifying the remote PACS host according to here.
-
Make sure you have a series UID from a previous call to PACS query here.
Data is typically retrieved on SeriesInstanceUID, and this is also used to pull data from pfdcm
to the local client.
./pfurl --verb POST --raw --http ${HOST_IP}:5015/api/v1/cmd \
--jsonwrapper 'payload' --msg '{ "action": "pullPath",
"meta": {
"on" : {
"series_uid": "1.3.12.2.1107.5.2.32.35235.2011120608041225195630230.0.0.0"
},
"to": {
"path": "/some/path",
"createDir": true
}
}
}'
The PACS retrieve is an asynchronous process. First, the remote PACS is asked to push DICOM data to a destination service running on a host that has been preconfigured in the PACS. Then, on this host, a separate listener service intercepts transmission and unpacks the data according to some schema.
In our system, the listener system is part of pypx
and a specific subcomponent unpacks the data on the listener file system.
All of this is not directly relevant, however, to an end user, who merely interrogates pfdcm
for the status of a retrieve:
./pfurl --verb POST --raw --http ${HOST_IP}:5015/api/v1/cmd \
--jsonwrapper 'payload' --msg '{ "action": "PACSinteract",
"meta": {
"do": "retrieveStatus",
"on" : {
"series_uid": "1.3.12.2.1107.5.2.32.35235.2011120608041225195630230.0.0.0"
},
"PACS" : "orthanc"
}
}'
--30--