MERAQuery

MLModule
genre MERA
author Wolf Spindler
package FMEstable/ReleaseMeVis
dll MLMERA
definition MLMERA.def
see also MERAVolumeInspector, MERACrawler
keywords query, search, index, find, volume, storage

Purpose

MERAQuery performs a query on an index and a volume storage which have been created with MERACrawler. It allows searching for DICOM tags or values, as well as joined queries. Queries can be defined completely with the Query tab as well as manually in User Command.

Windows

Default Panel

../../../Projects/MERA/Modules/mhelp/Images/Screenshots/MERAQuery._default.png

Parameter Fields

Field Index

# Result Ids: Integer editMode07: Enum keyType09: Enum
#Queries: Integer editMode08: Enum Max # Volume Ids: Integer
Absolute Volume Storage Directory: String editMode09: Enum Preload Cache Directory: String
Also On Value: Bool Index of First Id: Integer Report: String
condition00: Enum intValue00: Integer Report Buffer Size: Integer
condition01: Enum intValue01: Integer Run Query: Trigger
condition02: Enum intValue02: Integer Run User Command: Trigger
condition03: Enum intValue03: Integer Stop: Trigger
condition04: Enum intValue04: Integer tagId00: String
condition05: Enum intValue05: Integer tagId01: String
condition06: Enum intValue06: Integer tagId02: String
condition07: Enum intValue07: Integer tagId03: String
condition08: Enum intValue08: Integer tagId04: String
condition09: Enum intValue09: Integer tagId05: String
dateValue00: String intValue200: Integer tagId06: String
dateValue01: String intValue201: Integer tagId07: String
dateValue02: String intValue202: Integer tagId08: String
dateValue03: String intValue203: Integer tagId09: String
dateValue04: String intValue204: Integer timeValue00: String
dateValue05: String intValue205: Integer timeValue01: String
dateValue06: String intValue206: Integer timeValue02: String
dateValue07: String intValue207: Integer timeValue03: String
dateValue08: String intValue208: Integer timeValue04: String
dateValue09: String intValue209: Integer timeValue05: String
dateValue200: String isRunning: Bool timeValue06: String
dateValue201: String isTagIdValid00: Bool timeValue07: String
dateValue202: String isTagIdValid01: Bool timeValue08: String
dateValue203: String isTagIdValid02: Bool timeValue09: String
dateValue204: String isTagIdValid03: Bool timeValue200: String
dateValue205: String isTagIdValid04: Bool timeValue201: String
dateValue206: String isTagIdValid05: Bool timeValue202: String
dateValue207: String isTagIdValid06: Bool timeValue203: String
dateValue208: String isTagIdValid07: Bool timeValue204: String
dateValue209: String isTagIdValid08: Bool timeValue205: String
disablePerformanceChecks: Bool isTagIdValid09: Bool timeValue206: String
doubleValue00: Double joinCondition00: Enum timeValue207: String
doubleValue01: Double joinCondition01: Enum timeValue208: String
doubleValue02: Double joinCondition02: Enum timeValue209: String
doubleValue03: Double joinCondition03: Enum User Command: String
doubleValue04: Double joinCondition04: Enum value00: String
doubleValue05: Double joinCondition05: Enum value01: String
doubleValue06: Double joinCondition06: Enum value02: String
doubleValue07: Double joinCondition07: Enum value03: String
doubleValue08: Double joinCondition08: Enum value04: String
doubleValue09: Double joinMode00: Enum value05: String
doubleValue200: Double joinMode01: Enum value06: String
doubleValue201: Double joinMode02: Enum value07: String
doubleValue202: Double joinMode03: Enum value08: String
doubleValue203: Double joinMode04: Enum value09: String
doubleValue204: Double joinMode05: Enum value200: String
doubleValue205: Double joinMode06: Enum value201: String
doubleValue206: Double joinMode07: Enum value202: String
doubleValue207: Double joinMode08: Enum value203: String
doubleValue208: Double keyType00: Enum value204: String
doubleValue209: Double keyType01: Enum value205: String
editMode00: Enum keyType02: Enum value206: String
editMode01: Enum keyType03: Enum value207: String
editMode02: Enum keyType04: Enum value208: String
editMode03: Enum keyType05: Enum value209: String
editMode04: Enum keyType06: Enum Volume Ids: String
editMode05: Enum keyType07: Enum  
editMode06: Enum keyType08: Enum  

Visible Fields

Absolute Volume Storage Directory

name: absoluteVolumeStorageDirectory, type: String

The absolute directory path to the MERA volume storage.

#Queries

name: numberOfQueryRows, type: Integer, default: 1

The number of query rows to be shown. If more than one query row is enabled than also joinMode00 and joinCondition00 inputs are displayed to decide how the queries shall be composed.

Run Query

name: query, type: Trigger

Runs the query with the current settings and displays a report in Report.

User Command

name: userCommand, type: String

An input for a user defined SQLite command which can be run by notifying Run User Command. Note that such commands may become incompatible in the case of changes of the data base backend of MERA. For details about SQLite see https://www.sqlitetutorial.net and https://www.sqlitetutorial.net/sqlite-commands.

For SQLite commands the structures and the names of data bases, tables, and columns need to be known:

  • Each search term, as defined under Search a, corresponds to its own data base and has an associated value.
  • The number of keys which can be used in a command is identical to the number of selected query rows in #Queries.
  • The data bases are automatically opened and attached before, and closed after running the user command. They are those ones selected by keyType00 etc. under Search a. If DICOM tags are selected then the with Tag ID tagId00 etc. describe the specific tag data base.
  • The SQLite names of the data bases are main, DB2, …, DB9 corresponding to the ten query rows.
  • Each data base contains only one single table with the name KeyValuesPair containing the columns VolumeId and Value.

For own commands a good way to start is to copy the SELECT command output from Report after Run Query into User Command and press Run User Command.

An example query: search ids of volumes with Modality NM whose PatientName tags contain Anonym.

  • Use two #Queries.
  • In the Query tab configure one row with DICOMTag Value Flat with tag id Modality and the second one with tag id PatientName.

The data base names will be main and DB2, each one contains a single table named KeyValuesPair. Each table has the two columns VolumeId and Value. In the table in main, the Value column contains the content of the modality tags such as CT, NM, etc. In the table in DB2, the Value column contains the content of PatientName tags such as LastName^First, Musterman^Manfred, etc. In both cases the VolumeId columns contain the ids of the volumes which contain these tags and which can be used in the MERAVolumeInspector to inspect these volumes.

Then the query could look like

SELECT main.KeyValuesPair.VolumeId FROM main.KeyValuesPair WHERE main.KeyValuesPair.Value = 'NM'
INTERSECT
SELECT DB2.KeyValuesPair.VolumeId FROM DB2.KeyValuesPair WHERE DB2.KeyValuesPair.Value GLOB '*Anonym*'

If names are not ambiguous their names can be shortened:

SELECT VolumeId FROM main.KeyValuesPair WHERE Value = 'NM'
INTERSECT
SELECT VolumeId FROM DB2.KeyValuesPair WHERE Value GLOB '*Anonym*'

Pressing Run User Command loads the data bases, runs the command, logs the found volume ids in Report and sets Volume Ids according to the settings in Index of First Id and Max # Volume Ids.

Another more complex example: Search all Ids of volumes from the same study in which there is at least one NM and one PT volume. For this purpose use two #Queries and configure the first query row with DICOMTag Value Flat with tag id Modality and the second one with tag id StudyInstanceUID. Note that such queries can take longer on larger data bases since multiple INNER JOIN commands are executed:

SELECT Mod1.VolumeId, Mod2.VolumeId, N1.VolumeId, N1.Value, N2.Value
FROM main.KeyValuesPair AS Mod1
INNER JOIN main.KeyValuesPair AS Mod2 ON (Mod1.Value = 'NM') AND (Mod2.Value = 'PT')
INNER JOIN DB2.KeyValuesPair AS N1 ON (Mod1.VolumeId = N1.VolumeId)
INNER JOIN DB2.KeyValuesPair AS N2 ON (Mod2.VolumeId = N2.VolumeId) AND (N1.value = N2.Value) AND (Mod2.VolumeId=N2.VolumeId)
GROUP BY N1.value

Run User Command

name: runUserCommand, type: Trigger

Run the user command defined in User Command.

Also On Value

name: selectAlsoOnValue, type: Bool, default: FALSE

If multiple query rows are used and join mode is neither LEFT nor INNER, then SELECT runs only on the VolumeId but not on the value; if this checkbox is enabled then SELECT runs on VolumeId, Value. Note that this may lead to different results since join commands such as INTERSECT then also include the value in their calculation.

Stop

name: stop, type: Trigger

Longer queries can be interrupted by pressing this button.

Volume Ids

name: volumeIds, type: String, persistent: no

Lists the ids of all volumes found in the most recent query in a format that it can be connected to a MERAVolumeInspector.volumeIndexList of MERAVolumeInspector.

Index of First Id

name: queryResultsStart, type: Integer, default: 0, maximum: :field:`numUniqueQueryResults`

The index of the first found Volume Id to be shown in Volume Ids.

Max # Volume Ids

name: maxNumQueryResults, type: Integer, default: 500

The maximum number of queries to be passed to the Volume Ids output; note that large values may degrade performance.

# Result Ids

name: numUniqueQueryResults, type: Integer, persistent: no

A read-only field displaying the number of found volume ids.

Report Buffer Size

name: maxReportSize, type: Integer, default: 20000

The maximum size of characters in Report; note that large values may degrade performance.

Report

name: report, type: String, persistent: no

Displays information about the most recently run Run Query.

Preload Cache Directory

name: preloadCacheDirectory, type: String

If large and optimally fast local disk space is available then setting up a cache directory on it is recommended. This can speed up query launch time tremendously especially for slower network connections to the data MERA volume storage. If left empty then no caching is performed.

Hidden Fields

keyType00

name: keyType00, type: Enum, default: DICOMTagValue_Flat

Selects which type of key the query shall be performed:

  • DICOMTagValue_Flat: The query and its conditions operate on values of DICOM tags with id tagId00 where only top-level tags from DICOM trees are queried.
  • DICOMTagValue: The query and its conditions operate on values of DICOM tags with id tagId00 where all tags from DICOM tress are queried (may be significantly slower in a few cases).
  • XImageExtent: The x-extent if the volume is a valid image, empty otherwise.
  • YImageExtent: The y-extent if the volume is a valid image, empty otherwise.
  • ZImageExtent: The z-extent if the volume is a valid image, empty otherwise.
  • CImageExtent: The c-extent if the volume is a valid image, empty otherwise.
  • TImageExtent: The t-extent if the volume is a valid image, empty otherwise.
  • UImageExtent: The u-extent if the volume is a valid image, empty otherwise.
  • XPageExtent: The x-page-extent if the volume is a valid image, empty otherwise.
  • YPageExtent: The y-extent of pages if the volume is a valid image, empty otherwise.
  • ZPageExtent: The z-extent of pages if the volume is a valid image, empty otherwise.
  • CPageExtent: The c-extent of pages if the volume is a valid image, empty otherwise.
  • TPageExtent: The t-extent of pages if the volume is a valid image, empty otherwise.
  • UPageExtent: The u-extent of pages if the volume is a valid image, empty otherwise.
  • NumberOfVoxelsInImage:Number of voxels of the image if the volume is a valid image, empty otherwise.
  • NumberOfVoxelsPerPage: Number of voxels per image page if the volume is a valid image, empty otherwise.
  • NumberOfBytesInImage: Number of bytes the entire image would allocate in memory if the volume is a valid image, empty otherwise.
  • NumberOfBytesPerPage: Number of bytes an image page would allocate in memory if the volume is a valid image, empty otherwise.
  • MinimumVoxelValue: Maximum voxel value of the image if the volume is a valid image, empty otherwise.
  • MaximumVoxelValue: Maximum voxel value of the image if the volume is a valid image, empty otherwise.
  • CDimensionInfos: Space separated list of color-dimension information of the image if the volume is a valid image, empty otherwise.
  • TDimensionInfos: Space separated list of time-dimension information of the image if the volume is a valid image, empty otherwise.
  • UDimensionInfos: Space separated list of u-dimension information of the image if the volume is a valid image, empty otherwise.
  • FirstDateAsLinearSecond: First time dimension information value as Linear Second with each day=86400 seconds if the volume is a valid image, empty otherwise.
  • HasScalarVoxelType: [YES or NO] if the image has scalar voxels and if the volume is a valid image, empty otherwise.
  • SizeOfVoxelInBytes: Size of a voxel in bytes if the volume is a valid image, empty otherwise.
  • FileFormat: A coding for the file format if unique.
  • VoxelSizeX: Extent of a voxel in mm in x-dimension if the volume is a valid image, empty otherwise.
  • VoxelSizeY: Extent of a voxel in mm in y-dimension if the volume is a valid image, empty otherwise.
  • VoxelSizeZ: Extent of a voxel in mm in z-dimension if the volume is a valid image, empty otherwise.
  • VoxelVolume: Volume of a voxel in mm^3 if the volume is a valid image, empty otherwise.
  • HasFloatingPointVoxelType: [YES or NO] if the image has floating point voxels and if the volume is a valid image, empty otherwise.
  • IsDecomposedEnhancedMF: [YES or NO] if the DICOM file was decomposed from an enhanced Multi-frame file or not.
  • HasValidImage: [YES or NO] if the volume has a valid image or not.
  • IsClassicMultiFrame: [YES or NO] if the volume is a classic multi-frame file or not.
  • HasMeVisSMFSequence: [YES or NO] if the volume contains a MeVis Structured Multi-Frame sequence or not.
  • NumEntriesInCDimensionInfos: Number of entries in CDimensionInfos if the volume is a valid image, empty otherwise.
  • NumEntriesInTDimensionInfos: Number of entries in TDimensionInfos if the volume is a valid image, empty otherwise.
  • NumEntriesInUDimensionInfos: Number of entries in UDimensionInfos if the volume is a valid image, empty otherwise.
  • DataTypeOfVoxels: Data type of voxels as string if the volume is a valid image, empty otherwise.
  • HumanReadableImageOrientation: Approximated human readable image orientation if the volume is a valid image, empty otherwise.
  • LicenseInformation: LicenseInformation from config file if available, otherwise not set.
  • Keywords: Keywords from config file if available, otherwise not set.
  • Readme: Readme information from config file if available, otherwise not set.
  • FirstFilename: First file name associated to the volume data.
  • HasIssues: [YES, NO] if the volume has issues or not.

tagId00

name: tagId00, type: String, default: Modality

The id of a DICOM tag to be queried needed if field searched key is DICOMTagValue or DICOMTagValue_Flat, otherwise insensitive. The id must have either have the format (JKLM,OPQR) where the JKLMOPQR are hexadecimal digits, or the case sensitive name of a DICOM tag such as Modality or PatientName. A correct input value is indicated by a checked isTagIdValid00.

isTagIdValid00

name: isTagIdValid00, type: Bool, persistent: no

isTagIdValid00 is checked if the value of tagId00 is valid, otherwise it will be unchecked.

condition00

name: condition00, type: Enum, default: EqualsCS

condition00 selects which condition must be fulfilled to get a query result.

Values:

Title Name Description
equals CS EqualsCS The case sensitive value must match exactly.
not equals CS NotEqualsCS The case sensitive value must not match exactly.
wildcard matches CS WildCardCS The case sensitive value must match exactly whereby wildcards such as * (for none or multiple characters) and ? (for exactly a single character) can be used, for example “He*o” will match “Hello”.
is like Like The case insensitive value must match whereby wildcards such as % (for none or multiple characters) and _ (for exactly a single character) can be used, for example “he%o” will match “Hello”; note that case insensitivity only is used for ASCII characters, all other are still compared case sensitively.
is not like NotLike The case insensitive value must not match whereby wildcards such as % (for none or multiple characters) and _ (for exactly a single character) can be used, for example “hi%o” will match “Hello” while “he%o” will not match; note that case insensitivity only is used for ASCII characters, all other are still compared case sensitively.
is smaller Smaller An alphanumerical smaller operation.
is larger Larger An alphanumerical larger operation.
is smaller or equal SmallerOrEqual An alphanumerical smaller or equal operation.
is larger or equal LargerOrEqual An alphanumerical larger or equal operation.
is between Between If selected then a second value01 input is displayed and an alphanumerical in-range check is performed such that the found value must be alphanumerically inside [value00, value01] to match.
not wildcard matches CS NotWildCardCS The case sensitive value must not match whereby wildcards such as * (for none or multiple characters) and ? (for exactly a single character) can be used, for example “He*o” will match “Hello”.
regular expression RegExp The given extended regular expression matches; see https://pubs.opengroup.org/onlinepubs/007908799/xbd/re.html#tag_007_004 for extended regular expressions.
inverted regular expression InvertedRegExp The given extended regular expression does not match; see https://pubs.opengroup.org/onlinepubs/007908799/xbd/re.html#tag_007_004 for extended regular expressions.

editMode00

name: editMode00, type: Enum, default: String

Determines the input data format for the inputs value00 and value01.

Values:

Title Name Description
String String The value inputs value00 and value01 are used directly for value specifications.
Double Double Double inputs doubleValue00 doubleValue01 are used used to fill value00 and value01.
Int Int Integer inputs intValue00 and intValue01 are used used to fill value00 and value01.
Date Date Date inputs dateValue00 and dateValue01 are used used to fill value00 and value01.
Time Time Time inputs timeValue00 and timeValue01 are used used to fill value00 and value01.
Date Time DateTime Date and time inputs dateValue00, timeValue00, dateValue01, and timeValue01 are used used to fill value00 and value01.

value00

name: value00, type: String, default: MR

The actual first value used for the query. It may be filled from specialized input fields doubleValue00, intValue00, dateValue00, and/or timeValue00 according to editMode00.

doubleValue00

name: doubleValue00, type: Double, default: 0

Used as input for value00 if editMode00 is Double.

intValue00

name: intValue00, type: Integer, default: 0

Used as input for value00 if editMode00 is Int.

dateValue00

name: dateValue00, type: String, default: 19700101

Used as input for value00 if editMode00 is Date or DateTime.

timeValue00

name: timeValue00, type: String, default: 000000.0000

Used as input for value00 if editMode00 is Time or DateTime.

value200

name: value200, type: String, default: MR

The actual second value used for the query which is only used if condition00 needs two arguments (for example Between). It may be filled from specialized input fields doubleValue200, intValue200, dateValue200, and/or timeValue200 according to editMode00.

doubleValue200

name: doubleValue200, type: Double, default: 0

Used as input for value200 if editMode00 is Double and condition00 requires two arguments (for example Between).

intValue200

name: intValue200, type: Integer, default: 0

Used as input for value200 if editMode00 is Int and condition00 requires two arguments (for example Between).

dateValue200

name: dateValue200, type: String, default: 19700101

Used as input for value200 if editMode00 is Date or DateTime and condition00 requires two arguments (for example Between).

timeValue200

name: timeValue200, type: String, default: 000000.0000

Used as input for value200 if editMode00 is Time or DateTime and condition00 requires two arguments (for example Between).

keyType01

name: keyType01, type: Enum, default: DICOMTagValue_Flat

See documentation of the analogue keyType00 of the first query row.

tagId01

name: tagId01, type: String, default: Modality

See documentation of the analogue tagId00 of the first query row.

isTagIdValid01

name: isTagIdValid01, type: Bool, persistent: no

See documentation of the analogue isTagIdValid00 of the first query row.

condition01

name: condition01, type: Enum, default: EqualsCS

See documentation of the analogue condition00 of the first query row.

editMode01

name: editMode01, type: Enum, default: String

See documentation of the analogue editMode00 of the first query row.

value01

name: value01, type: String, default: MR

See documentation of the analogue value00 of the first query row.

doubleValue01

name: doubleValue01, type: Double, default: 0

See documentation of the analogue doubleValue00 of the first query row.

intValue01

name: intValue01, type: Integer, default: 0

See documentation of the analogue intValue00 of the first query row.

dateValue01

name: dateValue01, type: String, default: 19700101

See documentation of the analogue dateValue00 of the first query row.

timeValue01

name: timeValue01, type: String, default: 000000.0000

See documentation of the analogue timeValue00 of the first query row.

value201

name: value201, type: String, default: MR

See documentation of the analogue value200 of the first query row.

doubleValue201

name: doubleValue201, type: Double, default: 0

See documentation of the analogue doubleValue200 of the first query row.

intValue201

name: intValue201, type: Integer, default: 0

See documentation of the analogue intValue200 of the first query row.

dateValue201

name: dateValue201, type: String, default: 19700101

See documentation of the analogue dateValue200 of the first query row.

timeValue201

name: timeValue201, type: String, default: 000000.0000

See documentation of the analogue timeValue200 of the first query row.

keyType02

name: keyType02, type: Enum, default: DICOMTagValue_Flat

See documentation of the analogue keyType00 of the first query row.

tagId02

name: tagId02, type: String, default: Modality

See documentation of the analogue tagId00 of the first query row.

isTagIdValid02

name: isTagIdValid02, type: Bool, persistent: no

See documentation of the analogue isTagIdValid00 of the first query row.

condition02

name: condition02, type: Enum, default: EqualsCS

See documentation of the analogue condition00 of the first query row.

editMode02

name: editMode02, type: Enum, default: String

See documentation of the analogue editMode00 of the first query row.

value02

name: value02, type: String, default: MR

See documentation of the analogue value00 of the first query row.

doubleValue02

name: doubleValue02, type: Double, default: 0

See documentation of the analogue doubleValue00 of the first query row.

intValue02

name: intValue02, type: Integer, default: 0

See documentation of the analogue intValue00 of the first query row.

dateValue02

name: dateValue02, type: String, default: 19700101

See documentation of the analogue dateValue00 of the first query row.

timeValue02

name: timeValue02, type: String, default: 000000.0000

See documentation of the analogue timeValue00 of the first query row.

value202

name: value202, type: String, default: MR

See documentation of the analogue value200 of the first query row.

doubleValue202

name: doubleValue202, type: Double, default: 0

See documentation of the analogue doubleValue200 of the first query row.

intValue202

name: intValue202, type: Integer, default: 0

See documentation of the analogue intValue200 of the first query row.

dateValue202

name: dateValue202, type: String, default: 19700101

See documentation of the analogue dateValue200 of the first query row.

timeValue202

name: timeValue202, type: String, default: 000000.0000

See documentation of the analogue timeValue200 of the first query row.

keyType03

name: keyType03, type: Enum, default: DICOMTagValue_Flat

See documentation of the analogue keyType00 of the first query row.

tagId03

name: tagId03, type: String, default: Modality

See documentation of the analogue tagId00 of the first query row.

isTagIdValid03

name: isTagIdValid03, type: Bool, persistent: no

See documentation of the analogue isTagIdValid00 of the first query row.

condition03

name: condition03, type: Enum, default: EqualsCS

See documentation of the analogue condition00 of the first query row.

editMode03

name: editMode03, type: Enum, default: String

See documentation of the analogue editMode00 of the first query row.

value03

name: value03, type: String, default: MR

See documentation of the analogue value00 of the first query row.

doubleValue03

name: doubleValue03, type: Double, default: 0

See documentation of the analogue doubleValue00 of the first query row.

intValue03

name: intValue03, type: Integer, default: 0

See documentation of the analogue intValue00 of the first query row.

dateValue03

name: dateValue03, type: String, default: 19700101

See documentation of the analogue dateValue00 of the first query row.

timeValue03

name: timeValue03, type: String, default: 000000.0000

See documentation of the analogue timeValue00 of the first query row.

value203

name: value203, type: String, default: MR

See documentation of the analogue value200 of the first query row.

doubleValue203

name: doubleValue203, type: Double, default: 0

See documentation of the analogue doubleValue01 of the first query row.

intValue203

name: intValue203, type: Integer, default: 0

See documentation of the analogue intValue200 of the first query row.

dateValue203

name: dateValue203, type: String, default: 19700101

See documentation of the analogue dateValue200 of the first query row.

timeValue203

name: timeValue203, type: String, default: 000000.0000

See documentation of the analogue timeValue200 of the first query row.

keyType04

name: keyType04, type: Enum, default: DICOMTagValue_Flat

See documentation of the analogue keyType00 of the first query row.

tagId04

name: tagId04, type: String, default: Modality

See documentation of the analogue tagId00 of the first query row.

isTagIdValid04

name: isTagIdValid04, type: Bool, persistent: no

See documentation of the analogue isTagIdValid00 of the first query row.

condition04

name: condition04, type: Enum, default: EqualsCS

See documentation of the analogue condition00 of the first query row.

editMode04

name: editMode04, type: Enum, default: String

See documentation of the analogue editMode00 of the first query row.

value04

name: value04, type: String, default: MR

See documentation of the analogue value00 of the first query row.

doubleValue04

name: doubleValue04, type: Double, default: 0

See documentation of the analogue doubleValue00 of the first query row.

intValue04

name: intValue04, type: Integer, default: 0

See documentation of the analogue intValue00 of the first query row.

dateValue04

name: dateValue04, type: String, default: 19700101

See documentation of the analogue dateValue00 of the first query row.

timeValue04

name: timeValue04, type: String, default: 000000.0000

See documentation of the analogue timeValue00 of the first query row.

value204

name: value204, type: String, default: MR

See documentation of the analogue value200 of the first query row.

doubleValue204

name: doubleValue204, type: Double, default: 0

See documentation of the analogue doubleValue200 of the first query row.

intValue204

name: intValue204, type: Integer, default: 0

See documentation of the analogue intValue200 of the first query row.

dateValue204

name: dateValue204, type: String, default: 19700101

See documentation of the analogue dateValue01 of the first query row.

timeValue204

name: timeValue204, type: String, default: 000000.0000

See documentation of the analogue timeValue200 of the first query row.

keyType05

name: keyType05, type: Enum, default: DICOMTagValue_Flat

See documentation of the analogue keyType00 of the first query row.

tagId05

name: tagId05, type: String, default: Modality

See documentation of the analogue tagId00 of the first query row.

isTagIdValid05

name: isTagIdValid05, type: Bool, persistent: no

See documentation of the analogue isTagIdValid00 of the first query row.

condition05

name: condition05, type: Enum, default: EqualsCS

See documentation of the analogue condition00 of the first query row.

editMode05

name: editMode05, type: Enum, default: String

See documentation of the analogue editMode00 of the first query row.

value05

name: value05, type: String, default: MR

See documentation of the analogue value00 of the first query row.

doubleValue05

name: doubleValue05, type: Double, default: 0

See documentation of the analogue doubleValue00 of the first query row.

intValue05

name: intValue05, type: Integer, default: 0

See documentation of the analogue intValue00 of the first query row.

dateValue05

name: dateValue05, type: String, default: 19700101

See documentation of the analogue dateValue00 of the first query row.

timeValue05

name: timeValue05, type: String, default: 000000.0000

See documentation of the analogue timeValue00 of the first query row.

value205

name: value205, type: String, default: MR

See documentation of the analogue value200 of the first query row.

doubleValue205

name: doubleValue205, type: Double, default: 0

See documentation of the analogue doubleValue200 of the first query row.

intValue205

name: intValue205, type: Integer, default: 0

See documentation of the analogue intValue200 of the first query row.

dateValue205

name: dateValue205, type: String, default: 19700101

See documentation of the analogue dateValue200 of the first query row.

timeValue205

name: timeValue205, type: String, default: 000000.0000

See documentation of the analogue timeValue200 of the first query row.

keyType06

name: keyType06, type: Enum, default: DICOMTagValue_Flat

See documentation of the analogue keyType00 of the first query row.

tagId06

name: tagId06, type: String, default: Modality

See documentation of the analogue tagId00 of the first query row.

isTagIdValid06

name: isTagIdValid06, type: Bool, persistent: no

See documentation of the analogue isTagIdValid00 of the first query row.

condition06

name: condition06, type: Enum, default: EqualsCS

See documentation of the analogue condition00 of the first query row.

editMode06

name: editMode06, type: Enum, default: String

See documentation of the analogue editMode00 of the first query row.

value06

name: value06, type: String, default: MR

See documentation of the analogue value00 of the first query row.

doubleValue06

name: doubleValue06, type: Double, default: 0

See documentation of the analogue doubleValue00 of the first query row.

intValue06

name: intValue06, type: Integer, default: 0

See documentation of the analogue intValue00 of the first query row.

dateValue06

name: dateValue06, type: String, default: 19700101

See documentation of the analogue dateValue00 of the first query row.

timeValue06

name: timeValue06, type: String, default: 000000.0000

See documentation of the analogue timeValue00 of the first query row.

value206

name: value206, type: String, default: MR

See documentation of the analogue value200 of the first query row.

doubleValue206

name: doubleValue206, type: Double, default: 0

See documentation of the analogue doubleValue200 of the first query row.

intValue206

name: intValue206, type: Integer, default: 0

See documentation of the analogue intValue200 of the first query row.

dateValue206

name: dateValue206, type: String, default: 19700101

See documentation of the analogue dateValue200 of the first query row.

timeValue206

name: timeValue206, type: String, default: 000000.0000

See documentation of the analogue timeValue200 of the first query row.

keyType07

name: keyType07, type: Enum, default: DICOMTagValue_Flat

See documentation of the analogue keyType00 of the first query row.

tagId07

name: tagId07, type: String, default: Modality

See documentation of the analogue tagId00 of the first query row.

isTagIdValid07

name: isTagIdValid07, type: Bool, persistent: no

See documentation of the analogue isTagIdValid00 of the first query row.

condition07

name: condition07, type: Enum, default: EqualsCS

See documentation of the analogue condition00 of the first query row.

editMode07

name: editMode07, type: Enum, default: String

See documentation of the analogue editMode00 of the first query row.

value07

name: value07, type: String, default: MR

See documentation of the analogue value00 of the first query row.

doubleValue07

name: doubleValue07, type: Double, default: 0

See documentation of the analogue doubleValue00 of the first query row.

intValue07

name: intValue07, type: Integer, default: 0

See documentation of the analogue intValue00 of the first query row.

dateValue07

name: dateValue07, type: String, default: 19700101

See documentation of the analogue dateValue00 of the first query row.

timeValue07

name: timeValue07, type: String, default: 000000.0000

See documentation of the analogue timeValue00 of the first query row.

value207

name: value207, type: String, default: MR

See documentation of the analogue value200 of the first query row.

doubleValue207

name: doubleValue207, type: Double, default: 0

See documentation of the analogue doubleValue200 of the first query row.

intValue207

name: intValue207, type: Integer, default: 0

See documentation of the analogue intValue200 of the first query row.

dateValue207

name: dateValue207, type: String, default: 19700101

See documentation of the analogue dateValue200 of the first query row.

timeValue207

name: timeValue207, type: String, default: 000000.0000

See documentation of the analogue timeValue200 of the first query row.

keyType08

name: keyType08, type: Enum, default: DICOMTagValue_Flat

See documentation of the analogue keyType00 of the first query row.

tagId08

name: tagId08, type: String, default: Modality

See documentation of the analogue tagId00 of the first query row.

isTagIdValid08

name: isTagIdValid08, type: Bool, persistent: no

See documentation of the analogue isTagIdValid00 of the first query row.

condition08

name: condition08, type: Enum, default: EqualsCS

See documentation of the analogue condition00 of the first query row.

editMode08

name: editMode08, type: Enum, default: String

See documentation of the analogue editMode00 of the first query row.

value08

name: value08, type: String, default: MR

See documentation of the analogue value00 of the first query row.

doubleValue08

name: doubleValue08, type: Double, default: 0

See documentation of the analogue doubleValue00 of the first query row.

intValue08

name: intValue08, type: Integer, default: 0

See documentation of the analogue intValue00 of the first query row.

dateValue08

name: dateValue08, type: String, default: 19700101

See documentation of the analogue dateValue00 of the first query row.

timeValue08

name: timeValue08, type: String, default: 000000.0000

See documentation of the analogue timeValue00 of the first query row.

value208

name: value208, type: String, default: MR

See documentation of the analogue value200 of the first query row.

doubleValue208

name: doubleValue208, type: Double, default: 0

See documentation of the analogue doubleValue200 of the first query row.

intValue208

name: intValue208, type: Integer, default: 0

See documentation of the analogue intValue200 of the first query row.

dateValue208

name: dateValue208, type: String, default: 19700101

See documentation of the analogue dateValue200 of the first query row.

timeValue208

name: timeValue208, type: String, default: 000000.0000

See documentation of the analogue timeValue200 of the first query row.

keyType09

name: keyType09, type: Enum, default: DICOMTagValue_Flat

See documentation of the analogue keyType00 of the first query row.

tagId09

name: tagId09, type: String, default: Modality

See documentation of the analogue tagId00 of the first query row.

isTagIdValid09

name: isTagIdValid09, type: Bool, persistent: no

See documentation of the analogue isTagIdValid00 of the first query row.

condition09

name: condition09, type: Enum, default: EqualsCS

See documentation of the analogue condition00 of the first query row.

editMode09

name: editMode09, type: Enum, default: String

See documentation of the analogue editMode00 of the first query row.

value09

name: value09, type: String, default: MR

See documentation of the analogue value00 of the first query row.

doubleValue09

name: doubleValue09, type: Double, default: 0

See documentation of the analogue doubleValue00 of the first query row.

intValue09

name: intValue09, type: Integer, default: 0

See documentation of the analogue intValue00 of the first query row.

dateValue09

name: dateValue09, type: String, default: 19700101

See documentation of the analogue dateValue00 of the first query row.

timeValue09

name: timeValue09, type: String, default: 000000.0000

See documentation of the analogue timeValue00 of the first query row.

value209

name: value209, type: String, default: MR

See documentation of the analogue value200 of the first query row.

doubleValue209

name: doubleValue209, type: Double, default: 0

See documentation of the analogue doubleValue200 of the first query row.

intValue209

name: intValue209, type: Integer, default: 0

See documentation of the analogue intValue200 of the first query row.

dateValue209

name: dateValue209, type: String, default: 19700101

See documentation of the analogue dateValue200 of the first query row.

timeValue209

name: timeValue209, type: String, default: 000000.0000

See documentation of the analogue timeValue200 of the first query row.

joinMode00

name: joinMode00, type: Enum, default: UNION

If #Queries is larger than one then joinMode00 is displayed to decide how the first and the second query row shall operate together or how their results shall be composed; invisible if #Queries is 1.

Values:

Title Name Description
UNION UNION All results of all queries row are composed to one result and duplicate results are listed only once.
INNER INNER Those entries where the search of the first query row and the one of the second query match according joinCondition00 are added to the result. For example, if joinCondition00 is equals CS, and if in both query rows DICOMTag values are searched, then all entries are returned where the values case sensitively matches. This mode only uses joinCondition00 to combine results from the first and second query row, thus the condition, value and edit mode fields of the first and second query rows are insensitive.
LEFT LEFT The left join includes the unmatched entries of the first query row left relation along with the matched columns in the result. This mode only uses joinCondition00 to combine results from the first and second query row, thus the condition, value and edit mode fields of the first and second query rows are insensitive.
INTERSECT INTERSECT Only results which exist in both, the first and the second query, are returned.
EXCEPT EXCEPT Results which exist only in one of both, the first or the second query, are returned.
UNION ALL UNION ALL All results of all queries row are composed to one result and multiple results are listed multiply.

joinCondition00

name: joinCondition00, type: Enum, default: EqualsCS

Visibly only if #Queries is larger than 1 and only sensitive only if joinMode00 is not UNION. It determines the condition to use for the join operations between the first and the second query row. See condition00 field for the meaning of the modes.

joinMode01

name: joinMode01, type: Enum, default: UNION

See documentation of the analogue joinMode00 of the first join query row.

joinCondition01

name: joinCondition01, type: Enum, default: EqualsCS

See documentation of the analogue joinCondition00 of the first join query row.

joinMode02

name: joinMode02, type: Enum, default: UNION

See documentation of the analogue joinMode00 of the first join query row.

joinCondition02

name: joinCondition02, type: Enum, default: EqualsCS

See documentation of the analogue joinCondition00 of the first join query row.

joinMode03

name: joinMode03, type: Enum, default: UNION

See documentation of the analogue joinMode00 of the first join query row.

joinCondition03

name: joinCondition03, type: Enum, default: EqualsCS

See documentation of the analogue joinCondition00 of the first join query row.

joinMode04

name: joinMode04, type: Enum, default: UNION

See documentation of the analogue joinMode00 of the first join query row.

joinCondition04

name: joinCondition04, type: Enum, default: EqualsCS

See documentation of the analogue joinCondition00 of the first join query row.

joinMode05

name: joinMode05, type: Enum, default: UNION

See documentation of the analogue joinMode00 of the first join query row.

joinCondition05

name: joinCondition05, type: Enum, default: EqualsCS

See documentation of the analogue joinCondition00 of the first join query row.

joinMode06

name: joinMode06, type: Enum, default: UNION

See documentation of the analogue joinMode00 of the first join query row.

joinCondition06

name: joinCondition06, type: Enum, default: EqualsCS

See documentation of the analogue joinCondition00 of the first join query row.

joinMode07

name: joinMode07, type: Enum, default: UNION

See documentation of the analogue joinMode00 of the first join query row.

joinCondition07

name: joinCondition07, type: Enum, default: EqualsCS

See documentation of the analogue joinCondition00 of the first join query row.

joinMode08

name: joinMode08, type: Enum, default: UNION

See documentation of the analogue joinMode00 of the first join query row.

joinCondition08

name: joinCondition08, type: Enum, default: EqualsCS

See documentation of the analogue joinCondition00 of the first join query row.

isRunning

name: isRunning, type: Bool, persistent: no

Internally used field to make indicate that a query is currently processed and which makes GUI sections (in)sensitive.

disablePerformanceChecks

name: disablePerformanceChecks, type: Bool, default: FALSE

This is a hidden field which allows to disable performance warnings and preventing very long queries, for example if the module shall operate in automatic or batch mode. It is recommended to leave this flag disabled when working in interactive mode.