| Crates.io | dicom-findscu |
| lib.rs | dicom-findscu |
| version | 0.8.2 |
| created_at | 2022-10-23 20:36:10.832539+00 |
| updated_at | 2025-07-27 10:58:21.02433+00 |
| description | A DICOM C-FIND command line interface |
| homepage | |
| repository | https://github.com/Enet4/dicom-rs |
| max_upload_size | |
| id | 695363 |
| size | 58,754 |
findscuThis is an implementation of the DICOM Find SCU (C-FIND), which can be used to search for study and patient records in a DICOM archive.
This tool is part of the DICOM-rs project.
Note that this tool is not necessarily a drop-in replacement
for findscu tools in other DICOM software toolkits.
Run dicom-findscu --help for more details.
Basic usage includes searching for a study or patient by a certain attribute. The following query/retrieve information models are supported at the moment:
-S: Study Root Query/Retrieve Information Model – FIND (default)-P: Patient Root Query/Retrieve Information Model - FIND-W: Modality Worklist Information Model – FINDThere are three non-exclusive ways to specify a DICOM query:
You may optionally provide a path to a DICOM query object file to bootstrap your query object, otherwise you start with an empty one. There are currently no tools in DICOM-rs to assist in the process of creating these objects, but one can convert DCMTK DICOM data dumps into compatible DICOM query objects, or write these tools yourself.
# query is defined in query.dcm
dicom-findscu PACS@pacs.example.com:1045 --study query.dcm
An easier approach to specifying queries is
through the command line argument --query-file «file».
The text file should contain a sequence of lines,
each of the form «field_path»=«field_value», where:
field_path is a data element selector path
(see the element selector syntax below);field_value is the respective value or pattern to match
against the value of the specified DICOM attribute.
It can be empty, which in that case the = may also be left out.For example, given the file query.txt:
# comments are supported
AccessionNumber
ScheduledProcedureStepSequence.Modality=MR
ScheduledProcedureStepSequence.ScheduledProcedureStepStartDate=20240703
You can do:
dicom-findscu PACS@pacs.example.com:1045 -W --query-file query.txt
-q optionFinally, the -q option accepts multiple query values
of the same form as in --query-file.
See more examples below.
Each of these forms will extend and override the query object in this order.
Simple attribute selectors comprise a single data element key,
specified by a standard DICOM tag
(in one of the forms (gggg,eeee), gggg,eeee, or ggggeeee)
or a tag keyword name such as PatientName.
To specify a sequence, use multiple of these separated by a dot
(e.g. ScheduledProcedureStepSequence.0040,0020).
Nested attributes will automatically construct intermediate sequences as needed.
# query application entity STORAGE for a study with the accession number A123
dicom-findscu STORAGE@pacs.example.com:1045 --study -q AccessionNumber=A123
# query application entity PACS for patients born in 1990-12-25
dicom-findscu PACS@pacs.example.com:1045 --patient -q PatientBirthDate=19901225
# wild-card query: grab a list of all study instance UIDs
dicom-findscu PACS@pacs.example.com:1045 -S -q "StudyInstanceUID=*"
# retrieve the modality worklist information
# for scheduled procedures where the patient has arrived
dicom-findscu INFO@pacs.example.com:1045 --mwl \
-q ScheduledProcedureStepSequence.ScheduledProcedureStepStatus=ARRIVED