DicomFIDSave¶
-
MLModule
¶
Purpose¶
The DicomFIDSave
creates and composes a DICOM file of modality FID and provides/composes the necessary tags to fulfill the DICOM standard requirements. It derives much generic DICOM save functionality from DicomSaveBase.
It also can inherit DICOM (tag) information from input sources such as ML images, DICOM files, or a DirectDicomImport
module.
For further information (especially about the meaning of the tags written in the created output file) see DICOM standard http://medical.nema.org/Dicom/2011/11_03pu.pdf section C.21, Spatial Fiducials.
Input Fields¶
input0¶
-
name:
input0
, type:
Image
¶ A connector to inherit DICOM information and tag values which shall be stored in the created FID modality file.
xMarkerListInput¶
-
name:
xMarkerListInput
, type:
MLBase
¶ The is the input for an XMarkerList whose Marker information shall be converted to fiducials.
inputBase¶
-
name:
inputBase
, type:
MLBase
¶ This is a Base connector which can be used to provide the DICOM tree from which tags can be inherited; it is only used if
Input Selector
is set accordingly. It supports DICOM tree and MultiFileVolumeList Base objects as inputs.
inputModifierList¶
-
name:
inputModifierList
, type:
MLBase
¶ This is an optional input where modification plugins can be connected. They are applied as last operation on the final DICOM information directly before it is written to file. This can be used, for example to handle private tags, or to apply final cleanups before the DICOM file is created. See for example
DicomModifyTagsPlugin
,DicomModifySubTreeSelectorPlugin
, orDicomModifyImageTagsPlugin
, which are useful for final modifications on the DICOM information.
Parameter Fields¶
Field Index¶
Visible Fields¶
File Name (unresolvedFileName)¶
-
name:
unresolvedFileName
, type:
String
, deprecated name:
unresolvedDcmInputFileName
¶ If a loading operation from disk is selected as input in the
Input Selector
then the file name from which the DICOM tree shall be loaded is specified here. Otherwise this field is insensitive.
True File Name¶
-
name:
absoluteFileName
, type:
String
, persistent:
no
, deprecated name:
dcmInputFileName
¶ The path and name of the structured report file to be written.
Input Selector¶
-
name:
inputSelector
, type:
Enum
, default:
ImageConnector
, deprecated name:
inheritanceInput
¶ Selects the input from which DICOM information shall be inherited when ‘Inherit DICOM Information’ is triggered.
Values:
Title | Name | Description |
---|---|---|
Image Connector | ImageConnector | If Input Selector is set to this mode, then the DICOM tree used for inheriting DICOM tags is taken from this image connector. |
File | File | All DICOM information is retrieved from the file given in field True File Name . It is expected to be a valid DICOM file; otherwise file IO errors will be posted. |
Base Connector | BaseConnector | If Input Selector is set to this mode, then the DICOM tree used for inheriting DICOM tags is retrieved from the Base connector where DICOM tree or MultiFileVolumeList base objects are allowed. |
InIdx¶
-
name:
inputVolumeIndex
, type:
Integer
, default:
0
, minimum:
0
, deprecated name:
ddiOutVolIdx
¶ This field selects the volume from the connected DirectDicomImport which shall be used as source for DICOM tags.
#Volumes¶
-
name:
numVolumes
, type:
Integer
, persistent:
no
, deprecated name:
numDDIVolumes
¶ This read-only field shows number of available volumes in the DirectDicomImport.
Tag Dump Size¶
Dump Private Tag Values¶
-
name:
dumpPrivateTagValues
, type:
Bool
, default:
FALSE
¶ If enabled then values of private tags are decoded if decoders are available.
Num shown binary bytes¶
-
name:
numShownBinaryEntries
, type:
Integer
, default:
8
¶ Number of shown bytes of binary tags.
Annotate¶
-
name:
annotate
, type:
Bool
, default:
FALSE
¶ If enabled then tags are annotated with further descriptive information such as possible types ( 1=Mandatory, 1C=Conditionally Mandatory, 2=Mandatory, may have zero or one item, 2C=Conditionally Mandatory, but may be empty, 3=Optional) and possible meanings of the tag. Note that no context analysis is performed for that information and therefore all possible and perhaps redundant meanings are shown.
Filter¶
-
name:
regExLineFilter
, type:
String
¶ If not empty then the regular expression is used to filter all lines of
Tag Dump
; see that field for more details. Examples:======================= ================================== Expression Description ======================= ================================== .* Matches all string/lines. .*(0008,0032).* Matches all lines containing this tag ID. .*logo.* Matches anything containing 'logo' (case sensitive) .*[lL][oO][gG][oO].* Matches anything containing 'logo' (case insensitive) .*.[jJ][pP][gG] Matches anything ending with .jpg where jpg is case insensitive. .*.JPG|.*.jpg Matches all paths ending with either '.jpg' or with '.JPG'. .*\d.* Matches all paths containing at least one digit. .*[[:digit:]].* Same as above. .*[[:xdigit:]].* Matches all paths containing at least one hexadecimal digit. .*\l.* Matches all paths containing at least one lower case character. .*[[:lower:]].* Same as above. .*\u.* Matches all paths containing at least one upper case character. .*[[:upper:]].* Same as above. .*\s.* Matches all paths containing at least one white space character. .*[[:space:]].* Same as above. .*[[:blank:]].* Matches all paths containing at least one non-line-separating whitespace. .*[[:word:]].* Matches all paths containing at least one word character (alphanumeric characters plus the underscore). .*[[:w:]].* Same as above. .*[[:graph:]].* Matches all paths containing at least one graphical character. .*[5-7].* Matches all paths containing at least one of the digits 5, 6 or 7. ======================= ==================================
Tag Dump¶
-
name:
tagDump
, type:
String
, persistent:
no
¶ Shows a dump of the DICOM tags; if necessary it will be clamped at a size given by
Tag Dump Size
and the message ‘tag list shortened and not shown completely’ is appended.
Inherit DICOM Information (CTRL+R)¶
-
name:
inheritDICOMTags
, type:
Trigger
¶ If notified then all DICOM related information is inherited from the selected input. Note that some DICOM tags of the input image are removed to avoid that they cause trouble when they are found when the saved image is imported somewhere else.
Copy Other Input Tags¶
-
name:
copyOtherInputTags
, type:
Bool
, default:
FALSE
¶ If disabled then only the required and important DICOM tags are written into the output file. If enabled then all other tags from the input are also copied even if they are not related to the written modality. WARNING: IF THIS IS ENABLED ALSO INAPPROPRIATE TAGS MIGHT BE COPIED TO THE CREATED FILE!
Save (Ctrl+S)¶
Post Bad Param Errors¶
-
name:
postBadParamErrors
, type:
Bool
, default:
TRUE
¶ If enabled then bad parameters are posted as ML error, otherwise they are only shown in status field.
Content Date¶
-
name:
contentDate
, type:
String
¶ DICOM tag: Content Date (0008,0023). The data the image pixel data creation started. May be empty.
Content Time¶
-
name:
contentTime
, type:
String
¶ DICOM tag: Content Time (0008,0033). The time the image pixel data creation started. May be empty.
Instance Number¶
-
name:
instanceNumber
, type:
Integer
, default:
0
, minimum:
0
¶ DICOM tag: Instance Number (0020,0013) identifying this SOP instance.
Content Label¶
-
name:
contentLabel
, type:
String
¶ DICOM tag: Content Label (0070,0080). A label that is used to identify this SOP instance. Must obey value representation CS (Uppercase characters, ‘0’-‘9’, the SPACE character, and underscore ‘_’, of the Default Character Repertoire, 16 bytes maximum).
Content Description¶
-
name:
contentDescription
, type:
String
¶ DICOM tag: Content Description (0070,0081). A description of the content of this SOP instance.
Content Creators Name¶
-
name:
contentCreatorsName
, type:
String
¶ DICOM tag: Content Creator’s Name (0070,0084). Name of operator (such as a technologist or physician) creating the content of the SOP instance. May be empty.
manufacturer¶
-
name:
manufacturer
, type:
String
¶ DICOM tag: Manufacturer (0008,0070). Company creating the DICOM file. In enhanced contexts it must have a value but in some other contexts it may be empty.
Defaults to ‘Fraunhofer MEVIS’ if not set otherwise in hidden defaultManufacturer field.
inheritManufacturer¶
-
name:
inheritManufacturer
, type:
Enum
, default:
CreateNew
¶ Which value to set on inheriting:
DoNotInherit: Do not inherit Manufacturer from input and leave value unchanged.
InheritFromTopLevel: Inherit Manufacturer from top level of input DCMTree; value is set empty if not found.
InheritRecursively: Inherit Manufacturer from recursive search in input DCMTree; value is set empty if not found.
CreateNew: Create a new Manufacturer instead of inheriting one.
CreateNewIfNeeded: Same as CreateNew, but only if Manufacturer is empty.
autoCreateManufacturer¶
-
name:
autoCreateManufacturer
, type:
Enum
, default:
CreateIfNeeded
¶ DoNotAutoCreate: Do not create a new Manufacturer whatever happens.
AutoCreateAlways: Always create a new Manufacturer even if another valid one is set.
CreateIfNeeded: Create a new Manufacturer if Manufacturer field is empty.
createManufacturer¶
-
name:
createManufacturer
, type:
Trigger
¶ Creates a new unique Manufacturer if notified.
defaultManufacturer¶
-
name:
defaultManufacturer
, type:
String
, default:
Fraunhofer MEVIS
¶ This hidden field contains the default value for
manufacturer
if a new value is created withcreateManufacturer
, during inheritance or saving. It can be changed by the application if the module is run by another manufacturer.
manufacturerModelName¶
-
name:
manufacturerModelName
, type:
String
¶ DICOM tag: Manufacturer Model Name (0008,1090) determined by the manufacturer. In enhanced contexts it must have a value but sometimes it may be empty.
inheritManufacturerModelName¶
-
name:
inheritManufacturerModelName
, type:
Enum
, default:
InheritFromTopLevel
¶ See
inheritManufacturer
.
autoCreateManufacturerModelName¶
-
name:
autoCreateManufacturerModelName
, type:
Enum
, default:
CreateIfNeeded
¶
createManufacturerModelName¶
-
name:
createManufacturerModelName
, type:
Trigger
¶ See
createManufacturer
.
defaultManufacturerModelName¶
-
name:
defaultManufacturerModelName
, type:
String
, default:
MeVisLab
¶ This hidden field contains the default value for
manufacturerModelName
if a new value is created withcreateManufacturerModelName
, during inheritance or saving. It can be changed by the application if the module is run by another manufacturer an/or on another model.
deviceSerialNumber¶
-
name:
deviceSerialNumber
, type:
String
¶ DICOM tag: Device Serial Number (0018,1000). The serial number of the device. In enhanced contexts it must have a value but sometimes it may be empty.
inheritDeviceSerialNumber¶
-
name:
inheritDeviceSerialNumber
, type:
Enum
, default:
InheritFromTopLevel
¶ See
inheritManufacturer
.
autoCreateDeviceSerialNumber¶
-
name:
autoCreateDeviceSerialNumber
, type:
Enum
, default:
CreateIfNeeded
¶
createDeviceSerialNumber¶
-
name:
createDeviceSerialNumber
, type:
Trigger
¶ See
createManufacturer
.
softwareVersions¶
-
name:
softwareVersions
, type:
String
¶ DICOM tag: Manufacturer’s software version (0018,1020). In enhanced contexts it must have a value but sometimes it may be empty.
inheritSoftwareVersions¶
-
name:
inheritSoftwareVersions
, type:
Enum
, default:
InheritFromTopLevel
¶ See
inheritManufacturer
.
createSoftwareVersions¶
-
name:
createSoftwareVersions
, type:
Trigger
¶ See
createManufacturer
.
inheritAndCopyTagsOtherGeneralEquipmentTags¶
-
name:
inheritAndCopyTagsOtherGeneralEquipmentTags
, type:
Bool
, default:
TRUE
¶ If enabled then other input General Equipment tags are buffered during
Inherit DICOM Information (CTRL+R)
and added to the output duringSave (Ctrl+S)
; otherwise only the mandatory tags and/or fields are added to the output.
Auto Create New¶
-
name:
createNewFrameOfReferenceUID
, type:
Bool
, default:
FALSE
¶ If enabled then for each stored file a valid new FrameOfReferenceUID (0020,0052) is created which references a non existing SOP instance. In this way fiducials can be saved as DICOM object without the need to provide a reference image or other SOP instance. However, a PACS will not show it together with any DICOM image. Recommended is to provide an existing UID from an existing DICOM object. A PACS then will be able to handle or display the fiducials together with that image.
Frame Of Reference UID¶
-
name:
frameOfReferenceUID
, type:
String
¶ DICOM tag: FrameOfReferenceUID (0020,0052). Identifies the DICOM frame on which the saved fiducials depend. It should reference the DICOM SOP instance on which this fiducials ‘lives’; usually derived from the ‘FrameOfReferenceUID’ tag of the connected input image. This field is insensitive if
Auto Create New
is enabled, which then automatically creates a new UIDs for non existing SOP instances. Must contain up to 64 characters from ‘0’-‘9’ or ‘.’.
Fiducial Identifier Base¶
-
name:
fiducialIdentifierBase
, type:
String
¶ For each added fiducial an identifier is set which is composed from this base string and the index position of the XMarker in the input XMarker list.
Add¶
-
name:
addFiducialDescriptionTag
, type:
Bool
, default:
TRUE
¶ If enabled then DICOM tag Fiducial Description (0070,030F) tags are added as described in field
Fiducial Description Base
, otherwise not.
Fiducial Description Base¶
-
name:
fiducialDescriptionBase
, type:
String
¶ For each added fiducial a description is set which is composed from this base string and the index position of the XMarker in the input XMarker list.
Sop Class UID¶
-
name:
sopClassUID
, type:
String
, default:
1.2.840.10008.5.1.4.1.1.4.4
¶ Read-only value: Uniquely defines the DICOM SOP class to be written by this module as described in DICOM Standard C.12.1.1.1 SOP Class UID, SOP Instance UID. Must contain up to 64 characters from ‘0’-‘9’ or ‘.’.
Sop Instance UID¶
-
name:
sopInstanceUID
, type:
String
¶ Read-only value: Uniquely defines the DICOM SOP Instance UID written by this module as described in DICOM Standard C.12.1.1.1 SOP Class UID, SOP Instance UID. Must contain up to 64 characters from ‘0’-‘9’ or ‘.’.
Specific Character Set¶
-
name:
specificCharacterSet
, type:
String
, default:
ISO_IR 192
¶ Specific Character Set (0008,0005) identifies the Character Set that expands or replaces the Basic Graphic Set (ISO 646) for values of Data Elements that have Value Representation of SH, LO, ST, PN, LT, UC or UT.
Recommended is ISO_IR 192 (which corresponds to the internal MeVisLab representation) or disable tag writing at all which also uses this term.
Enabling this term may cause that inconvertible characters are silently lost.
Currently supported values are
- ISO_IR 6 // ASCII, not a real term but will drop to default, i.e. no tag will be written.
- ISO_IR 100 // Latin alphabet No. 1
- ISO_IR 101 // Latin alphabet No. 2
- ISO_IR 109 // Latin alphabet No. 3
- ISO_IR 110 // Latin alphabet No. 4
- ISO_IR 144 // Cyrillic
- ISO_IR 127 // Arabic
- ISO_IR 126 // Greek
- ISO_IR 138 // Hebrew
- ISO_IR 148 // Latin alphabet No. 5
- ISO_IR 13 // Japanese
- ISO_IR 166 // Thai
- ISO_IR 192 // Unicode in UTF-8 (multi-byte)
- GB18030 // Chinese (multi-byte)
- GBK // Chinese (multi-byte, subset of GB 18030
Write Specific Character Set¶
-
name:
writeSpecificCharacterSet
, type:
Bool
, default:
FALSE
¶ If enabled then Specific Character Set (0008,0005) is written into the output file, otherwise not.
Off is recomended for this field and for ‘Inherit Specific Character Set’ which then automatically uses ISO_IR 192 (=’UTF-8’ which is the internal MeVisLab representation).
Enabling this may cause that inconvertible characters are silently lost during save.
Inherit Specific Character Set¶
-
name:
inheritSpecificCharacterSet
, type:
Bool
, default:
FALSE
¶ If enabled then ‘Specific Character Set (0008,0005)’ and ‘Write specific character set’ are updated on inheritance according to the input data set.
Off is recomended for this field and for ‘Write specific character set’ which then automatically uses ISO_IR 192 (=’UTF-8’ which is the internal MeVisLab representation).
Enabling this may cause that non-ISO_IR 192 character sets are inherited and written and inconvertible characters from input are silently lost.
Set Default¶
-
name:
setDefaultSpecificCharacterSet
, type:
Trigger
¶ Sets the recommended ‘ISO_IR 192’ character set as default which matches the internal UTF-8 coding in MeVisLab and reduces risk of losing inconvertible characters.
useMMSUIDPrefix¶
-
name:
useMMSUIDPrefix
, type:
Bool
, default:
TRUE
¶ If false then the UID prefix for Fraunhofer MEVIS is used (not recommended), if true (the recommended default) then the MMS prefix is used.
manufacturerForContributedEquipmentSequence¶
-
name:
manufacturerForContributedEquipmentSequence
, type:
String
¶ See
manufacturer
.
inheritManufacturerForContributedEquipmentSequence¶
-
name:
inheritManufacturerForContributedEquipmentSequence
, type:
Enum
, default:
CreateNewIfNeeded
¶ See
inheritManufacturer
.
Values:
Title | Name |
---|---|
Do Not Inherit | DoNotInherit |
Inherit From Top Level | InheritFromTopLevel |
Inherit Recursively | InheritRecursively |
Create New | CreateNew |
Create New If Needed | CreateNewIfNeeded |
autoCreateManufacturerForContributedEquipmentSequence¶
-
name:
autoCreateManufacturerForContributedEquipmentSequence
, type:
Enum
, default:
CreateIfNeeded
¶
Values:
Title | Name |
---|---|
Do Not Auto Create | DoNotAutoCreate |
Auto Create Always | AutoCreateAlways |
Create If Needed | CreateIfNeeded |
createManufacturerForContributedEquipmentSequence¶
-
name:
createManufacturerForContributedEquipmentSequence
, type:
Trigger
¶ See
createManufacturer
.
defaultManufacturerForContributedEquipmentSequence¶
-
name:
defaultManufacturerForContributedEquipmentSequence
, type:
String
, default:
Fraunhofer MEVIS
¶ See
defaultManufacturer
.
manufacturerModelNameForContributedEquipmentSequence¶
-
name:
manufacturerModelNameForContributedEquipmentSequence
, type:
String
¶
inheritManufacturerModelNameForContributedEquipmentSequence¶
-
name:
inheritManufacturerModelNameForContributedEquipmentSequence
, type:
Enum
, default:
CreateNewIfNeeded
¶ See
inheritManufacturer
.
Values:
Title | Name |
---|---|
Do Not Inherit | DoNotInherit |
Inherit From Top Level | InheritFromTopLevel |
Inherit Recursively | InheritRecursively |
Create New | CreateNew |
Create New If Needed | CreateNewIfNeeded |
autoCreateManufacturerModelNameForContributedEquipmentSequence¶
-
name:
autoCreateManufacturerModelNameForContributedEquipmentSequence
, type:
Enum
, default:
CreateIfNeeded
¶
Values:
Title | Name |
---|---|
Do Not Auto Create | DoNotAutoCreate |
Auto Create Always | AutoCreateAlways |
Create If Needed | CreateIfNeeded |
createManufacturerModelNameForContributedEquipmentSequence¶
-
name:
createManufacturerModelNameForContributedEquipmentSequence
, type:
Trigger
¶ See
createManufacturer
.
defaultManufacturerModelNameForContributedEquipmentSequence¶
-
name:
defaultManufacturerModelNameForContributedEquipmentSequence
, type:
String
, default:
MeVisLab
¶
deviceSerialNumberForContributedEquipmentSequence¶
-
name:
deviceSerialNumberForContributedEquipmentSequence
, type:
String
¶ See
deviceSerialNumber
.
inheritDeviceSerialNumberForContributedEquipmentSequence¶
-
name:
inheritDeviceSerialNumberForContributedEquipmentSequence
, type:
Enum
, default:
CreateNew
¶ See
inheritManufacturer
.
Values:
Title | Name |
---|---|
Do Not Inherit | DoNotInherit |
Inherit From Top Level | InheritFromTopLevel |
Inherit Recursively | InheritRecursively |
Create New | CreateNew |
Create New If Needed | CreateNewIfNeeded |
autoCreateDeviceSerialNumberForContributedEquipmentSequence¶
-
name:
autoCreateDeviceSerialNumberForContributedEquipmentSequence
, type:
Enum
, default:
CreateIfNeeded
¶
Values:
Title | Name |
---|---|
Do Not Auto Create | DoNotAutoCreate |
Auto Create Always | AutoCreateAlways |
Create If Needed | CreateIfNeeded |
createDeviceSerialNumberForContributedEquipmentSequence¶
-
name:
createDeviceSerialNumberForContributedEquipmentSequence
, type:
Trigger
¶ See
createManufacturer
.
softwareVersionsForContributedEquipmentSequence¶
-
name:
softwareVersionsForContributedEquipmentSequence
, type:
String
¶ See
softwareVersions
.
inheritSoftwareVersionsForContributedEquipmentSequence¶
-
name:
inheritSoftwareVersionsForContributedEquipmentSequence
, type:
Enum
, default:
CreateNew
¶ See
inheritManufacturer
.
Values:
Title | Name |
---|---|
Do Not Inherit | DoNotInherit |
Inherit From Top Level | InheritFromTopLevel |
Inherit Recursively | InheritRecursively |
Create New | CreateNew |
Create New If Needed | CreateNewIfNeeded |
autoCreateSoftwareVersionsForContributedEquipmentSequence¶
-
name:
autoCreateSoftwareVersionsForContributedEquipmentSequence
, type:
Enum
, default:
CreateIfNeeded
¶
Values:
Title | Name |
---|---|
Do Not Auto Create | DoNotAutoCreate |
Auto Create Always | AutoCreateAlways |
Create If Needed | CreateIfNeeded |
createSoftwareVersionsForContributedEquipmentSequence¶
-
name:
createSoftwareVersionsForContributedEquipmentSequence
, type:
Trigger
¶ See
createManufacturer
.
inheritAndCopyTagsOtherGeneralEquipmentTagsForContributedEquipmentSequence¶
-
name:
inheritAndCopyTagsOtherGeneralEquipmentTagsForContributedEquipmentSequence
, type:
Bool
, default:
FALSE
¶ If enabled then other input General Equipment tags are buffered during
Inherit DICOM Information (CTRL+R)
and added to the output duringSave (Ctrl+S)
; otherwise only the mandatory tags and/or fields are added to the the new entry of the Contributing Equipment Sequence.
Create Or Extend Contributing Equipment Sequence¶
-
name:
createOrExtendContributingEquipmentSequence
, type:
Bool
, default:
TRUE
¶ If enabled then a new entry is appended to the inherited Contributing Equipment Sequence (0018,A001) or a new one is generated if there is none in the input. Contributing Equipment Sequence (0018,A001) is of Type 3 (not required) but according to PS3.4 ‘C.3.5 New Instance Creation for Enhanced Multi-Frame Image Conversion’ ‘The new Composite Instance shall contain the Contributing Equipment Sequence (0018,A001)’ e.g. on LegacyEnhanced creation.