A Command line tool for the dicom processor library
Project description
DCM PROCESSOR
A dicom processing library setup with docker containers.
DEPENDENCIES
- Python (version >= 3.6)
- Docker
- Docker Compose (you can install with
pip
package manager with the commandpip install docker-compose
)
NOTES ON DEPENDENCIES
- Current user should have access to execute docker commands without sudo. This can be normally achieved in linux with the command below:
sudo usermod -aG docker $USER
- You need to make sure you have the current version of
docker-compose
installed.
INSTALLATION
pip install dcm-processor
CREATE AN APPLICATION
-
Run the command below and follow the prompt.
dcm-processor create app
-
In case you did not select
yes
to initialize the application after creation then run the command below to initialize the application.
dcm-processor init app
START AN APPLICATION
- Run the command below and select the application to start it.
dcm-processor start app
STOP AN APPLICATION
- Run the command below and select the application to remove it.
dcm-processor stop app
CREATE A SERVICE TEMPLATE
- Run command below and follow prompt to create a service template.
dcm-processor create service
- Fill in the files in
registry
folder and copy your source code into themodule
folder.
Service entry in the registry
-
The
settings.json
file can either be an object or an array of objects with the following fields:-
jobName
: [string,required] the name of the job, this should be unique from other service jobs. -
worker
: [string,required] name of the function to be run as the worker, this should be a full function name. (see section below for details.). -
callback
: [string,required] name of the function which determines if a job should be scheduled for the current dicom processing or not. (see section below for details). -
dependsOn
: [string/list of string,optional] name(s) of jobs which the current service job depends on. this will make sure that those jobs run successfully before this job runs. -
priority
: [string,optional] the priority level assigned to this job. if not specified a default priority is assigned. -
timeout
: [string/number,optional] the RQ queuing timeout default is 1 hour. -
params
: [object,optional] this is an object with additional parameters that will be sent to the worker function. -
sortPosition
: [number,optional] this is a sorting variable which is used to sort the order in which jobs are scheduled (Note: independent jobs are however scheduled before dependent jobs). -
description
: [string,optional] this is a description for this current job. Its not used in any operation but only for third parties to have an idea what your service does.
-
-
The python file
__init__.py
should contain thecallback
function(s) you stated in thesettings.json
file
INSTALL SERVICE
- Run command below and follow prompt to install a service.
dcm-processor install service
REMOVE SERVICE
- Run command below and follow prompt to remove a service.
dcm-processor remove service
CREATE WORKER TEMPLATE
-
Run command below and follow prompt to create a worker template.
dcm-processor create worker
-
Fill in the files as follows:
-
The
settings.json
file can either be an object or an array of objects with the following fields:-
name
: [string,required] the name of the worker, this should be unique from other worker. -
scripts
: [list of shell scripts] scripts that are executedduring building of the docker image
to install optional packages etc. defaults["script.sh"]
pointing to the default script file in the template. -
entryScriptPaths
: [list of mounted paths] name of docker mounted path which will contain shell script that are executed at the start of the worker. This can be used to executed dynamic shell scriptsduring container runtime
. -
baseImage
: [string, required] name of the base docker image to build the container on. defaults ubuntu:20.04. -
environments
: [list of objects] a list of virtual environment configurations. Each object contains the fields below:-
name
: [string, required] the name of the virtualenv. Should be unique for all virtualenvs in the current worker. -
requirements
: [list of file paths] requirements files with python libraries to be installed in the virtualenv. This is executedduring building of the docker image
. -
entryRequirementPaths
: [list of mounted paths] List of docker mounted paths which will contain requirements files which can be used to update the python library dynamically. These are executed at the start of the workerduring runtime
. -
channels
: [list of string] this is the list ofservice channels
that will be executed with this virtualenv. -
pythonVersion
: [string] the version of python to be used for this virtualenv.
-
-
-
The
script.sh
can be used to run any shell commands needed to install extra packages likejava, compilers, etc
needed to run the service modules. -
The
requirements.txt
should be filled with the python libraries needed to run the service modules.
-
INSTALL WORKER
- Run command below and follow prompt to install a worker.
dcm-processor install worker
REMOVE WORKER
- Run command below and follow prompt to remove a worker.
dcm-processor remove worker
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for dcm_processor-0.9.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdc75eab658c41eaf718956d69c2a676b52018ac3f157a6fe0fbaf457e9f0f22 |
|
MD5 | 8361443d71d3ae241ea7699b1de03e1a |
|
BLAKE2b-256 | 72a61db58663dd19eaab40944313d1acb17902ce33e3f84a54adb46812dfb190 |