-
Notifications
You must be signed in to change notification settings - Fork 6
0.0 Cheat Sheet
-
pfdcm
is a critical component of the ChRIS / PACS experience within BCH. This cheat sheet describes how to (re)startpfdcm
within the BCH network
A containerized buid of the current/latest version of the pfdcm
source repo. First clone the repo:
export UID=$(id -u)
gh repo clone FNNDSC/pfdcm
Now, build the container. Since the BCH PACS has been preconfigured to push DICOM traffic to the host titan.tch.harvard.edu
on port 10402
, it is best to build the container on host titan
.
cd pfdcm
# BCH is a proxied env, so
export PROXY="http://10.41.13.4:3128"
docker build --build-arg http_proxy=${PROXY} --build-arg UID=$UID -t local/pfdcm .
Internally, the pfdcm
service listens for DICOM traffic sent to port 11113
. In the FNNDSC, radiology PACS sends traffic to titan.tch.harvard.edu:10402
, thus we should port map the host port 10402
to the internal container port 11113
.
docker run --rm -it -d \
-p 4005:4005 -p 10402:11113 -p 5555:5555 -p 10502:11113 -p 11113:11113 \
-v /home/dicom:/home/dicom \
local/pfdcm /start-reload.sh
The most important port mappings above are
-
4005:4005
: REST API traffic from host on port4005
to the pfdcm service itself, listening on port4005
within the container. -
10402:11113
: DICOM traffic channel. The BCH PACS will transmit DICOM image data to port10402
on hosttitan
. This is mapped to port11113
inside thepfdcm
container where the listening/packing service is active. -
11113:11113
: A secondary DICOM traffic channel. Useful for direct transmission of DICOM data. -
5555:5555
: Reserved for future use. -
10502:10502
: A secondary BCH DICOM PACS channel, previously mapped to AETitleCHRIS-dev
. Retained for future expansion.
Firing up the pfdcm
container does not start the internal listening service. To start the listener a signal needs to be sent to the pfdcm
API:
export PFDCMURL=http://10.72.8.90:4005
curl -s -X 'POST' \
"$PFDCMURL/api/v1/listener/initialize/" \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"value": "default"
}' | jq
This curl
request will block for a second or two before returning the prompt. In fact, the slight delay is an indication that the service is working.
Finally, information pertinent to the BCH PACS needs to be set within pfdcm
:
export AEC=CHRIS
export AET=CHRISV3
export PACSIP=134.174.12.21
export PACSPORT=104
export PACSNAME=PACSDCM
curl -s -X 'PUT' \
"$PFDCMURL/api/v1/PACSservice/$PACSNAME/" \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"info": {
"aet": "'$AET'",
"aet_listener": "'$AEC'",
"aec": "'$AEC'",
"serverIP": "'$PACSIP'",
"serverPort": "'$PACSPORT'"
}
}' | jq
-30-