---
name: "dgate"
section: "1"
platform: "linux"
package: "conquest-dbase"
version: "1.4.17d-1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/dgate"
---

# dgate(1)

UCDMC/NKI DICOM server thread and PACS utility application

## NAME

dgate-dbase - UCDMC/NKI DICOM server thread and PACS utility application

## SYNOPSIS

**dgate** -wDIR -^LOGFILE\
 Starts dgate with dicom.ini located at DIR and logging to LOGFILE

**dgate** -pPORT -qIP --COMMAND:ARGS\
 Sends COMMAND with ARGS directly to dgate instance at IP:PORT

## DESCRIPTION

ConQuest is a full featured and Lua-scriptable DICOM server.

To check DICOM conformance, please check **/usr/share/doc/conquest-dicom-server/DicomConformance\_FilesLST\_Changes.pdf.gz**

DGATE: UCDMC/NKI DICOM server thread and PACS utility application 1.4.17d

## OPTIONS

There are three common patterns to use **dgate.** And those patterns have different ways to interpret options, as follows. Other options are described below.

Usage: (1) DGATE \<-!#\|-v\|-u#\|-^#\>    Report as in dicom.ini\|stdout\|UDP\|File(#=port)

- \[-p#\|-qIP\|-b\]

  Set port\|Set target IP\|run debug 1-thread mode

- \[-wDIR\]

  Set the working directory for dgate(ini,dic,...)

- \[-i\|-r\|-arDEVICE\]

  Init\|Init/regenerate DB\|Regen single device

- \[-d\|-m\|-k\]

  List (**-d**) devices (**-m**) AE map (**-k**) DICOM.SQL

- \[-t\|-o\]

  Test console\|Test database

- \[-sOpt\|-esap d u p\]

  Create ODBC source (WIN32), database with SApw

- \[-nd\|-nc#\|-jd\|-jc#\]

  NKI de-/compress#\|JPEG de-/compress# FILE

- \[-j\*##\|-j-##FILE\]

  Recompress FILE to ##

- \[-as#,N\|-amFROM,TO\]

  Select#KB to archive of MAGN\|move device data

- \[-au\|-aeFROM,TO\]

  Undo select for archiving\|rename device

- \[-av\|-atDEVICE\]

  Verify mirror disk\|Test read files for DEVICE

- \[-abJUKEBOX1.2,N\]

  Make cacheset to burn JUKEBOX1,CD2 from MAGN

- \[-acJUKEBOX1.2\]

  Verify JUKEBOX1,CD2 against cacheset

- \[-adJUKEBOX1.2\]

  Verify and delete cacheset for JUKEBOX1, CD2

- \[-f\<p\|t\|s\|i\>ID\]

  Delete DB for Patient, sTudy, Series, Image

- \[-f\<e\|d\|z\>file\]

  Enter/Delete DB of file, Zap server file

- \[-faFILE\<,ID\>\]

  Add file to server\<optionally change PATID\>

- \[-zID\]

  Delete (zap) patient

- \[-frDEVICE,DIR\]

  Regen single directory DIR on DEVICE

- \[-f\<c\|k\>PATID,file\]

  Change/Kopy PATID of file (irreversible/once)

- \[-f?file\|-fu\|-c#\]

  get UID of file\|Make new UID\|UID helper(0..99)

- \[-ff#\]

  Delete old patients until #MB free

- \[-gSERVER,DATE\]

  grab images from SERVER of date not on here Otherwise: run as threaded server, port=1111

(2) DGATE FileMapping         Run server child; shared memory has socket#

(3) DGATE \<-pPORT\> \<-qIP\> **--command**:arguments

- Send command to (this or other) running server

  (works directly - use with care)

## OTHER OPTIONS

### Delete options:

- **--deleteimagefile**:file

  Delete given image file from server

- **--deletepatient**:patid

  Delete given patient from server

- **--deletestudy**:patid:studyuid

  Delete given study from server

- **--deletestudies**:date(range)

  Delete studies from server on date

- **--deleteseries**:patid:seriesuid

  Delete given series from server

- **--deleteimagefromdb**:file

  Delete given file from db only

- **--deletesopfromdb**:pat,study,series,sop

  Delete specified image from db only

### DICOM move options:

- **--movepatient**:source,dest,patid

  Move patient, source e.g. (local)

- **--movestudy**:source,dest,patid:studyuid

  Move study, patid: optional

- **--moveaccession**:source,dest,patid:acc

  Move by Accession#, patid: optional

- **--movestudies**:source,dest,date(range)

  Move studies on date

- **--moveseries**:src,dst,patid:seruid,stuid

  Move series patid: optional

### Modification of dicom objects:

- **--modifypatid**:patid,file

  Change patid of given file

- **--anonymize**:patid,file

  Anonymize given file

- **--modifystudy**:p,s,script

  Change items in patient or study

- **--modifyseries**:p,s,script

  Change items in series

- **--modifyimage**:file,script

  Change items in file

- **--mergestudy**:uid,uid,..

  Start merging studies with given studyuids

- **--mergestudyfile**:file

  Use to process all files to merge

- **--mergeseries**:uid,uid,..

  Start merging series with given seriesuids

- **--mergeseriesfile**:file

  Use to process all files to merge

- **--attachanytopatient**:any,sample

  Modify uids to attach any object to

- **--attachanytostudy**:any,sample

  patient\|study\|series in sample file

- **--attachanytoseries**:any,sample

  Do not attach same at different levels

- **--attachrtplantortstruct**:plan,struc

  Attach rtplan to rtstruct

### Maintenance options:

- **--initializetables**:

  Clear and create database

- **--initializetables**:1

  Clear and create database without indices

- **--initializetables**:2

  Clear and create worklist database

- **--regen**:

  Re-generate entire database

- **--regendevice**:device

  Re-generate database for single device

- **--regendir**:device,dir

  Re-generate database for single directory

- **--regenfile**:file

  Re-enter given file in database

- **--makespace**:#

  Delete old patients to make #MB space

- **--quit**:

  Stop the server

- **--safequit**:

  Stop the server when not active

### Logging options:

- **--debuglog\_on**:file/port

  Start debug logging

- **--log\_on**:file/port/pipe

  Start normal logging

- **--debuglevel**:#

  Set debug logging level

- **--display\_status**:file

  Display server status

- **--status\_string**:file

  Display status string of submit operation

- **--checklargestmalloc**:

  Estimates DICOM object size limit

- **--get\_freestore**:dev,fmt

  Report free #Mb on device

- **--testmode**:#

  Append # to dicom filenames

- **--echo**:AE,file

  Echo server; show response

### Configuration options:

- **--get\_param**:name,fmt

  Read any parameter from DICOM.INI

- **--get\_ini\_param**:name,fmt

  Read any parameter from DICOM.INI

- **--get\_ini\_num**:index,fmt

  List any entry from DICOM.INI

- **--get\_ini**:fmt

  List all entries from DICOM.INI

- **--put\_param**:name,value

  Write any parameter to DICOM.INI

- **--delete\_param**:name

  Delete any parameter from DICOM.INI

- **--read\_ini**:

  Re-read all parameters from DICOM.INI

- **--get\_amap**:index,fmt

  List any entry from ACRNEMA.MAP

- **--get\_amaps**:fmt

  List all entries from ACRNEMA.MAP

- **--put\_amap**:i,AE,ip,p#,cmp

  Write entry in memory for ACRNEMA.MAP

- **--delete\_amap**:index

  Delete entry in memory for ACRNEMA.MAP

- **--write\_amap**:

  Write ACRNEMA.MAP from memory to disk

- **--read\_amap**:

  Re-read ACRNEMA.MAP from disk to memory

- **--get\_sop**:index,fmt

  List any accepted service class UID

- **--put\_sop**:index,UID,name

  Write/add accepted service class UID

- **--delete\_sop**:index

  Delete accepted service class UID

- **--get\_transfer**:index,fmt

  List any accepted transfer syntax

- **--put\_transfer**:in,UID,nam

  Write/add accepted transfer syntax

- **--delete\_transfer**:index

  Delete accepted transfer syntax

- **--get\_application**:idx,fmt

  List any accepted application UID

- **--put\_application**:i,U,n

  Write/add accepted application UID

- **--delete\_application**:inde

  Delete accepted application UID

- **--get\_localae**:index,fmt

  List any accepted local AE title

- **--put\_localae**:in,AE,name

  Write/add accepted local AE title

- **--delete\_localae**:index

  Delete accepted local AE title

- **--get\_remoteae**:index,fmt

  List any accepted remote AE title

- **--put\_remoteae**:in,AE,name

  Write/add accepted remote AE title

- **--delete\_remoteae**:index

  Delete accepted remote AE title

- **--get\_dic**:index,fmt

  List any dicom dictionary item

- **--get\_sqldef**:level,in,fmt

  List any database field definition

### Communication options:

- **--addimagefile**:file,patid

  Copy file into server, optionally new patid

- **--addlocalfile**:file,patid

  Copy local file into server, opt. new patid

- **--loadanddeletedir**:dir,patid

  Load folder and delete its contents

- **--loadhl7**:file

  Load HL7 data into worklist

- **--dump\_header**:filein,fileout

  Create header dump of file

- **--forward**:file,mode,server

  Send file with compr. mode to server

- **--grabimagesfromserver**:AE,date

  Update this server from other

- **--prefetch**:patientid

  Prefetch all images for improved speed

- **--browsepatient**:searchstring

  Select patient in windows GUI

- **--submit**:p,s,s,s,target,pw,scr

  Immediate sftp submit of data

- **--submit2**:p,s,s,s,target,c,scr

  Immediate submit with command line c

- **--export**:p,st,ser,sop,file,scr

  Immediate process and zip/7z data

- **--scheduletransfer**:options

  Background sftp transfer as above

### Test options:

- **--genuid**:

  Generate an UID

- **--changeuid**:UID

  Give new UID as generated now or before

- **--changeuidback**:UID

  Give old UID from one generated above

- **--checksum**:string

  Give checksum of string

- **--testcompress**:file

  Enter file in server with many compressions

- **--clonedb**:AE

  Clone db from server for testing

### Conversion options:

- **--convert\_to\_gif**:file,size,out,l/w/f

  Downsize and convert to mono GIF

- **--convert\_to\_bmp**:file,size,out,l/w/f

  Downsize and convert to color BMP

- **--convert\_to\_jpg**:file,size,out,l/w/f

  Downsize and convert to color JPG

- **--convert\_to\_dicom**:file,size,comp,f

  Downsize/compress/frame DICOM

- **--extract\_frames**:file,out,first,last

  Select frames of DICOM file

- **--count\_frames**:file

  report # frames in DICOM file

- **--uncompress**:file,out

  Uncompress DICOM

- **--compress**:file,mode,out

  Compress DICOM to mode e.g. J2

- **--wadorequest**:parameters

  Internal WADO server

### Database options:

- **--query**:table\|fields\|where\|fmt\|file

  Arbitrary query output to file

- **--query2**:tab\|fld\|whe\|fmt\|max\|file

  Same but limit output rows to max

- **--patientfinder**:srv\|str\|fmt\|file

  List patients on server

- **--studyfinder**:srv\|str\|fmt\|file

  List studies on server

- **--seriesfinder**:srv\|str\|fmt\|file

  List series on server

- **--imagefinder**:srv\|str\|fmt\|file

  List images on server

- **--serieslister**:srv\|pat\|stu\|fmt\|file

  List series in a study

- **--imagelister**:srv\|pat\|ser\|fmt\|file

  List (local) files in a series

- **--extract**:PatientID = 'id'

  Extract all dbase tables to X..

- **--extract**:

  Extract patient dbase table to XA..

- **--addrecord**:table\|flds\|values

  Append record, values must be in ''

- **--deleterecord**:table,where

  Delete record from table

### For DbaseIII without ODBC:

- **--packdbf**:

  Pack database, recreate memory index

- **--indexdbf**:

  Re-create memory index

### Archival options:

- **--renamedevice**:from,to

  Rename device in database

- **--verifymirrordisk**:device

  Verify mirror disk for selected device

- **--testimages**:device

  Test read all images on device

- **--movedatatodevice**:to,from

  Move patients from one device to another

- **--moveseriestodevice**:to,from

  Move series from one device to another

- **--selectlruforarchival**:kb,device

  Step 1 for archival: to device.Archival

- **--selectseriestomove**:device,age,kb

  Step 1 for archival: to device.Archival

- **--preparebunchforburning**:to,from

  Step 2 for archival: moves to cache

- **--deletebunchafterburning**:deviceto

  Step 3 for archival: deletes from cache

**--comparebunchafterburning**:deviceto Part step 3 - compare jukebox to cache

- **--restoremagflags**:

  Undo archival sofar

### Scripting options:

- **--lua**:chunk

  Run lua chunk in server, wait to finish

- **--luastart**:chunk

  Run lua chunk in server, retn immediate

- **--dolua**:chunk

  Run lua chunk in this dgate instance

- **--dolua**:filename

  Run lua file in this dgate instance

## COMPRESSION

**ConQuest** supports a lot of compression and downsizing methods. These can be declared in the **acrnema.map** file, using directives  **DroppedFileCompression, IncomingCompression and ArchiveCompression** in **dicom.ini** file and/or by using modifiers to AE Title (check **AE TITLE** section below).

The following information was extracted from **section 7.7** of the manual (file /user/share/doc/conquest-dicom-server/windowsmanual.pdf.gz in this package):

Files dropped into the server will optionally be compressed, decompressed and/or recompressed. Supported values are (expected compression ratio stated between brackets):

- as

  store images as is, e.g. without changing the compression.

- is

  store images as is, e.g. without changing the compression.

- un

  uncompress NKI and/or JPEG compressed images

- n1

  fast NKI private loss-less compression mode 1 (50%)

- n2

  as n1 but with CRC check for errors (50%)

- n3

  fast NKI private loss-less compression mode 3 (40%)

- n4

  as n3 but with CRC check for errors (40%)

- j1

  JPEGLossless (retired, use J2 instead) (33%)

- j2

  JPEGLosslessNH14 (33%)

- j3

  JPEG baseline 1 (8 bit) lossy (8%)

- j4

  JPEGExtended2and4 lossy (15%)

- j5

  JPEGSpectralNH6and8 lossy (15%)

- j6

  JPEGFulllNH10and12 lossy (14%)

- j3NN

  JPEG baseline 1 (8 bit) quality as defined (60..95 suggested)

- j4NN

  JPEGExtended2and4 quality as defined (60..95 suggested)

- j5NN

  JPEGSpectralNH6and8 quality as defined (60..95 suggested)

- j6NN

  JPEGFulllNH10and12 quality as defined (60..95 suggested)

- jk

  Lossless JPEG2000 (30%)

- jl

  Lossy JPEG2000 (20%)

- jlNN

  Lossy JPEG2000 bitrate as defined (1..20 suggested)

- nj

  Highest NKI mode; but leaves JPEG as is (variable)

- uj

  Uncompressed; but leaves JPEG as is (variable)

- k1

  Downsize image\>1024 pixels wide/high to 1024 (variable)

- k2

  Downsize image\>512 pixels wide/high to 512 (variable)

- k4

  Downsize image\>256 pixels wide/high to 256 (variable)

- k8

  Downsize image\>128 pixels wide/high to 128 (variable)

- ka

  Downsize image\>64 pixels wide/high to 64 (variable)

## AE TITLE

The default AE Title for ConQuest DICOM server in this package is **CONQUESTSRV1** and this is the AE Title you should use in DICOM viewers pointing to it. As a "bonus" feature, you can use AE Title to declare the type of compression you'll be using between the viewer and the server. just add **~XX** to ConQuest AE Title, where XX is the compression algo/level you wish to use. For instance, to use **uncompressed** images, the AE Title **CONQUESTSRV1~un** can be declared in your DICOM node configuration in the viewer.

## FILES

All of the locations below can be configured in **dicom.ini** file. In this package **ConQuest** expects dicom.ini to be present in the **/etc/conquest-dicom-server** directory. This can be changed using **-w** option (see  **OPTIONS** above).

- /etc/conquest-dicom-server/dicom.ini

  Several self-explanatory configuration parameters for the server.

- /etc/conquest-dicom-server/acrnema.map

  Map of the DICOM nodes allowed to retrieve studies from ConQuest and their compression methods

- /etc/conquest-dicom-server/dicom.sql

  Database schema for the server

- /etc/conquest-dicom-server/dgate.dic

  DICOM dictionary

- /etc/conquest-dicom-server/dgatesop.lst

  DICOM SOP Class List

- /var/log/conquest-dicom-server/dgate.log

  Log from the running server (equivalent to stderr)

- /var/log/conquest-dicom-server/trouble.log

  Errors from the running server

- /var/log/conquest-dicom-server/user.log

  Application user log

- /var/lib/conquest-dicom-server/dbase/conquest.sqlite

  Database of DICOM information on Patients, Studies, Series, etc

- /var/lib/conquest-dicom-server/MAG0/\*

  Where images are placed

## AUTHOR

**ConQuest DICOM Server** was written by Marcel van Herk and Lambert Zijp at Netherlands Cancer Institute based on University of California at Davis Medical Center DICOM code, originally developed by Mark Oskin.

This manpage was written by **help2man** with parts supplied by Pablo Lorenzzoni \<spectra@debian.org\> for the Debian package.

## REPORTING BUGS

For ConQuest specific bugs, please first check their forum at **http://forum.image-systems.biz/viewforum.php?f=33** and, if needed, send email to **Lambert Zijp \<zijp@nki.nl\>.**

For bugs in the Debian package, please use Debian's BTS at **http://bugs.debian.org** or the tool provided in **reportbug** package.
