Dicoogle plugin for distributed database of DICOM metadata using MongoDB Sharding. The plugin indexes all metadata as it is configured in Dicoogle (by default, it indexes the DIM required fields) except the PixelData.
- Running:
- Dicoogle v2.5.0
- MongoDB
- Testing:
- dcmtk
-
Compile and build:
mvn install
; -
Copy the build
target/distributed-nosql-2.5.0-jar-with-dependencies.jar
to yourDicoogleDir/Plugins
folder; -
Run Dicoogle. Example:
sh DicoogleServer.sh
.
Plugin configuration is available at DicoogleDir/Plugins/settings/dicoogle-distributed-nosql.xml
Upon initialization, if no configurations file is supplied, the Dicoogle Platform
creates one with the default values. This plugin allows the configuration of the MongoDB host,
port, database name and database collection. Example:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>
<host>localhost</host>
<port>27017</port>
<dbName>DicoogleDatabase</dbName>
<collectionName>DicoogleObjs</collectionName>
</configuration>
-
Activate the Query Retrieve Service in Dicoogle Management tab available at
localhost:8080/#/management
running on port 1045 -
Use one of the following services:
- HTTP search endpoint:
http://localhost:8080/searchDIM?query=PatientID:*&keyword=true
- DCMTK query toolkit:
findscu -S -k 0008,0052="IMAGE" -k PatientID="*" -aec DICOOGLE-STORAGE localhost 1045
-
Activate the Storage Service in Dicoogle Management tab available at
localhost:8080/#/management
running on port 6666 -
Navigate to the folder where the DICOM dataset is contained. Example:
cd ~/dicom-dataset
-
Run the following command to recursively find every file ending with
.dcm
and usingdcmtk
toolkit, sending via C-STORE to Dicoogle.dcmsend -aec DICOOGLE-STORAGE localhost 6666 $(find . -name '*.dcm' -print)
Alternatively, you can skip the step 1. and run the following command, replacing <dir> with the directory path to your DICOM dataset folder.
dcmsend -aec DICOOGLE-STORAGE localhost 6666 $(find <dir> -name '*.dcm' -print)
- Support complex queries (with AND and OR)
- Support to index all the DICOM TAGS; currently only the DIM are supported
- Use sync and async MongoDB drivers for different cases; for instance, use async for insert and delete MongoDB documents and use sync for find/query operations where the user should wait for the data retrieval
- Thank you to the contributors of dicoogle-mongo-plugin as the translation of queries to MongoDB queries was adapted from their work