DicomPRSave¶
-
MLModule
¶ genre DICOM
author Wolf Spindler
package FMEstable/ReleaseMeVis
dll MLDicomPRSave
definition MLDicomPRSave.def see also MultiFileVolumeListPROutput
,DicomEnhancedSave
,DicomFIDSave
,DicomREGSave
,DicomSCSave
,DicomSEGSave
,DicomSRSave
,DirectDicomImport
,MultiFileVolumeListSROutput
,MultiFileVolumeListRTOutput
,MultiFileVolumeListWaveformOutput
,MultiFileVolumeListIteratorOutput
,RTObjectSave
keywords DICOM
,output
,save
,export
,write
,files
,create
,grayscale
,softcopy
,presentation
,state
,IOD
,PR
,graphic
,annotations
,shutters
,base
,baseobject
,XMarkerList
,CSO
,StylePalette
,private
,tag
,overlay
Purpose¶
DicomPRSave
creates and composes a DICOM file of a modality/IOD PR (to be more precise Grayscale Softcopy Presentation State IOD) from Base object(s) and provides/composes the necessary tags to fulfill the requirements of the DICOM Standard. As reference for the DICOM standard mainly DICOM PS3.3 2020a, A.33.1 was used.
Also the full state of such a Base objects can be stored as private tags such such that they can be restored completely from the generated DICOM file, even if a conversion to graphic annotations or other presentation states might not completely be possible. See corresponding MultiFileVolumeListPROutput
for details and for extracting Base objects again and displaying exported files.
Note
- The module usually provides only interfaces for mandatory or conditionally required DICOM tags. Only in a few cases user tags are provided for convenience.
DicomPRSave
outputs have been tested only on a few applications (Weasis, Aliza, dicom-scope).- Currently only XMarkerList, StylePalette, and CSOList objects are supported as Base objects which can be converted and exported.
- Generated DICOM files only make use of the most basic attributes of graphic annotations, i.e. only attributes which are also supported by
MultiFileVolumeListPROutput
:- Text Style Sequences(0070,0231), Line Style Sequences(0070,0232), Fill Style Sequences(0070,0233) or Compound Graphic Sequence(0070,0209) are still not used/generated.
- The order of connected Base objects counts, for example:
- Base objects stored as private tags are stored in the same order as they are connected. This may become important if they are retrieved with
MultiFileVolumeListPROutput
. - A StylePalette only influences converted Base objects connected after it.
- A second StylePalette replaces a previously connected one.
- See
baseInput0
for details.
- Base objects stored as private tags are stored in the same order as they are connected. This may become important if they are retrieved with
Usage¶
- Connect a DICOM image to
input0
(or alternatively select a volume from a connected MultiFileVolumeList atinputBase
). From this connected volume the reference DICOM information is extracted, and generated presentation state objects, such as graphical annotations, will “live” on it. - Press
Inherit DICOM Information (CTRL+R)
. This sets up all fields and internals with new settings to match as good as possible the connected input image and DICOM tags.
3a) Optionally modify any settings.
3b) Optionally connect modification plugins to
inputModifierList
which can modify DICOM tags before they are exported.
- Set the the output file name in
File Name
into which the DICOM file shall be written. - Connect the XMarkerList (or other supported Base object(s)) to be converted to any of the field
baseInput0
,baseInput1
, …. - Press
Save (Ctrl+S)
to create and export the DICOM file. - Check
Status
for success (”Output created/saved.”) or possible error messages. If necessary then modify settings to solve the problem and retry saving the file.
Details¶
Troubleshooting
If annotations are not displayed on referenced DICOM data by external tools:
- Check whether you have inherited all DICOM tags from referenced data before you store your
annotations, especially Series Number (0020,0011). See General… ->
Series Number
andInherit Series Number
for details. - Some tools require that display of presentation states or graphical annotations is enabled.
- Check whether you have inherited all DICOM tags from referenced data before you store your
annotations, especially Series Number (0020,0011). See General… ->
Displayed Graphic Annotations (in a DICOM viewer or with
MultiFileVolumeListPROutput
) are not located at correct positions:- The DICOM/image input connected to
input0
orinputBase
serves not only as source for DICOM information to set up parameters ofDicomPRSave
, but also must be reference image for the Base objects (e.g. XMarkerLists or CSOs) to be converted to Presentation States. If Base objects andDicomPRSave
have different reference images,DicomPRSave
cannot determine coordinate systems and transformations correctly. This may lead to displacements up to complete invisibilities. - As denoted in 1), the reference image used for
DicomPRSave
and Base objects must be the same. This also means that the connected volume should best be as original as possible. Especially between original import andDicomPRSave
there should be no
- sub-imaging,
- transformations,
- resampling,
- LUT changes,
- or any other modifications which might make make the volume not compliant with its DICOM information any more. Modules such as
ApplyDicomPixelModifiers
which synchronously modify image and DICOM tags data, can be used safely.
- The DICOM/image input connected to
If
DicomPRSave
refuses exports after inheriting withInherit DICOM Information (CTRL+R)
with the message Directly exporting from enhanced multi-frame files is not possible… means thatDicomPRSave
requires some proprietary preprocessing on some DICOM inputs to be able to export correctly. This usually is done appropriately withDirectDicomImport
, ensure thatDirectDicomImport.decomposeMultiFrameFiles
is enabled for that purpose.
Input Fields¶
input0¶
-
name:
input0
, type:
Image
¶ The connector to the image data for which the presentation state file is to be generated. It may also be used as source for DICOM information if
Input Selector
is ImageConnector. Note that currently no image data itself is converted to DICOM Presentation State objects. The image connector is only used as reference to determine onto which DICOM frames the generated Presentation States objects shall be located. The connected image should also be the one on which the Base objects such as XMarkerLists or CSOs are located. IfinputBase
is used alternatively, these requirements also hold for that one. See Troubleshooting section in Details for details.
inputBase¶
-
name:
inputBase
, type:
DicomTree/MultiFileVolumeListRefCounted(MLBase)
¶ This is a Base connector which can be used to provide DICOM information from which tags can be inherited with
Inherit DICOM Information (CTRL+R)
; it is only used ifInput Selector
is set to BaseConnector accordingly. It supports DICOM tree and MultiFileVolumeList Base objects as inputs. For image and DICOM information from this input the same requirements hold as forinput0
.For accessing this object via scripting see the Scripting Reference:MLABDicomTree
.
inputModifierList¶
-
name:
inputModifierList
, type:
DicomModifyList(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.
baseInput0¶
-
name:
baseInput0
, type:
CSOList/CurveList/StylePalette/XMarkerList(MLBase)
¶ Connect any Base object to be converted / exported as graphic annotations (currently supported are XMarkerList, StylePalette, and CSOList objects, all other types are ignored). Note that the connection order of these Base objects is preserved in processing, storage in private tags, and in retrieval from private tags with a possibly used
MultiFileVolumeListPROutput
and its output.For accessing this object via scripting see the Scripting Reference:MLCSOListWrapper
.
baseInput1¶
-
name:
baseInput1
, type:
CSOList/CurveList/StylePalette/XMarkerList(MLBase)
¶ See
baseInput0
.For accessing this object via scripting see the Scripting Reference:MLCSOListWrapper
.
baseInput2¶
-
name:
baseInput2
, type:
CSOList/CurveList/StylePalette/XMarkerList(MLBase)
¶ See
baseInput0
.For accessing this object via scripting see the Scripting Reference:MLCSOListWrapper
.
Parameter Fields¶
Field Index¶
Visible Fields¶
File Name (unresolvedFileName)¶
-
name:
unresolvedFileName
, type:
String
¶ 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¶
Input Selector¶
-
name:
inputSelector
, type:
Enum
, default:
ImageConnector
¶ Selects from which connector a DICOM tree shall be loaded or retrieved.
Values:
Title | Name | Description |
---|---|---|
Image Connector | ImageConnector | DICOM information is inherited from the input0 . |
Base Connector | BaseConnector | DICOM information is inherited from the inputBase . |
File | File | DICOM information is inherited from the file specified in File Name / True File Name . |
InIdx¶
#Volumes¶
-
name:
numVolumes
, type:
Integer
, persistent:
no
¶ This read-only field shows the number of available volumes. For most inputs this will be 0 if no DICOM tree is available, 1 if there is any, or any other number for a lists of volumes at inputBase if a MultiFileVolumeListRefCounted Base object is connected and selected in Input Selector.
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 DICOM and image related information is inherited from the input selected in
Input Selector
. This is principally meant to reduce the work to configure all settings and usually does most set up work needed inDicomPRSave
. Note that some DICOM tags of the input may not be inherited, or they are not passed to the exported file to prevent that they cause trouble in the output file. IfPerform stricter checks
is off then inheriting information from the input may be also performed if no DICOM data is available; then only the connected input image information is used to get as much information as possible. This is especially useful to export non-DICOM files as DICOM.
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.
Perform stricter checks¶
-
name:
strictChecks
, type:
Bool
, default:
TRUE
¶ If enabled then some additional checks are performed which prevent writing incompliant DICOM tags. When disabling this, the written DICOM file will possibly still be read by PACSs, however, some DICOM information may not be fully available or consistent there.
Draw Mode¶
-
name:
drawMode
, type:
Enum
, default:
POINT
¶ If not overridden by an also connected
StylePalette
, this field selects how markers shall be converted and later displayed in a DICOM viewer:- POINT: Only single points are drawn at displayed marker positions.
- SQUARE: Displayed marker positions are drawn as squares.
- CIRCLE: Displayed marker positions are drawn as circles.
- DISK: Displayed marker positions are drawn as disks.
- LINE: For XMarkers a line from XMarker.pos is drawn to XMarker.pos+XMarker.vec.
- VECTOR: Same as line but with an additional arrow indicator at XMarker.pos+XMarker.vec.
- ASTERISK: Displayed marker positions are drawn as asterisk.
- TRIANGLE: Displayed marker positions are drawn as triangle.
- PLUS: Displayed marker positions are drawn as “+”.
- CROSS: Displayed marker positions are drawn as an “X” like cross.
- OFF: Marker positions are not annotated with any marker object; this, however, does not influence the display of possible texts and other annotations related to that marker which still might be displayed.
- BOX: A marker is displayed as box with the two corners XMarker.pos-XMarker.vec and XMarker.pos+XMarker.vec.
Diameter¶
-
name:
diameter
, type:
Double
, default:
4
, minimum:
0.001
, maximum:
20
¶ Diameter or length of single drawn XMarkers (does not apply to POINT or LINE) if not overridden by
Use Vector Length As Diameter
.
Line Length Epsilon¶
-
name:
epsilon
, type:
Double
, default:
0.0001
, minimum:
0
¶ Some DICOM viewers or renderers do not display lines or objects with too short or zero lengths/diameters. To have at least a minimum object (e.g. of the size of a pixel), a minimum length can be specified. If a length or diameter is smaller than
Line Length Epsilon
, thenLine Length Epsilon
is used instead. For example, when drawing a line for an XMarker whose XMarker.vec is too short, XMarker.vec + (epsilon, epsilon) is used instead to draw a line.
Color Mode¶
-
name:
colorMode
, type:
Enum
, default:
COLOR_BY_INDEX
¶ Selects how markers shall be drawn: Using their index, type or id to look up an entry from a connected StylePalette, or whether the current settings from
DicomPRSave
shall be used. In all cases holds: If an index, type, id etc. cannot be cast or converted to point to a valid color table entry, or if the entry is not valid for any reason, or an object does not have its own settings, then the current settings ofDicomPRSave
are used instead.- COLOR_BY_INDEX: The index of the object (if available) is taken for color indexing.
- COLOR_BY_TYPE: The type of the object (if available) is taken for color indexing.
- COLOR_BY_ID: The type of the object (if available) is taken for color indexing.
- COLOR_NO_STYLEPALETTE: The current settings from
DicomPRSave
are always used. - COLOR_FROM_OBJECT: Takes the color from the object itself if it has its own one (e.g. from a CSO).
Mainly affected fields are
Draw Mode
,Diameter
,Recommended Display CIELab Value
,Display Name
.
Recommended Display CIELab Value¶
-
name:
recommendedDisplayCIELabValue
, type:
Vector3
, default:
100.000003866667 -1.66666661582937e-05 6.66666646331748e-06
¶ The values of the Recommended Display CIE Lab Value; note that this field displays original CIELab values in ranges [0,100], [-128,127], and [-128,127] while are stored, while the corresponding DICOM tag Recommended Display CIE Lab Value (0062,000D) stores values scaled to [0,65535].
RGB¶
-
name:
rgb
, type:
Color
, default:
1 0.999995980773014 1
¶ A RGB representation of the recommendedDisplayCIELabValue, which, however, is less precise; better make directly use of recommendedDisplayCIELabValue.
Use Vector Length As Diameter¶
Prefix (vectorLengthAnnotationString)¶
-
name:
vectorLengthAnnotationString
, type:
String
, default:
Length=
¶ The string is added as annotation before possibly displayed length of XMarker.vec; it is not displayed if
Display Vector Length
is off. In case of an CSO the vector from first and last seed point is used instead.
Display Vector Length¶
Prefix (indexAnnotationString)¶
-
name:
indexAnnotationString
, type:
String
, default:
Index=
¶ The prefix to be displayed before a marker Index if
Display Index
is on, otherwise it is not displayed.
Display Index¶
Prefix (idAnnotationString)¶
-
name:
idAnnotationString
, type:
String
, default:
Id=
¶ The prefix to be displayed before a marker Id if
Display Id
is on, otherwise it is not displayed.
Display Id¶
Prefix (typeAnnotationString)¶
-
name:
typeAnnotationString
, type:
String
, default:
Type=
¶ The prefix to be displayed before the object type if
Display Type
is on, otherwise it is not displayed.
Display Type¶
Prefix (nameAnnotationString)¶
-
name:
nameAnnotationString
, type:
String
, default:
Name=
¶ The prefix to be displayed before the name of an object if
Display Name
is on, otherwise it is not displayed. If the item does not have a name then an empty string is used.
Display Name¶
Prefix (labelAnnotationString)¶
-
name:
labelAnnotationString
, type:
String
, default:
Label=
¶ The prefix to be displayed before an object label if
Display Label
is on, otherwise it is not displayed. If the object does not have a label then an empty string is used.
Display Label¶
Prefix (descriptionAnnotationString)¶
-
name:
descriptionAnnotationString
, type:
String
, default:
Description=
¶ The prefix to be displayed before an object description if
Display Description
is on, otherwise it is not displayed. If the object does not have a label then an empty string is used.
Display Description¶
Prefix (worldPositionAnnotationString)¶
-
name:
worldPositionAnnotationString
, type:
String
, default:
World Position=
¶ The string is added as annotation before possibly displayed coordinates of XMarker.pos; it is not displayed if
Displayed World Position Components
is 0.
Displayed World Position Components¶
Prefix (voxelPositionAnnotationString)¶
-
name:
voxelPositionAnnotationString
, type:
String
, default:
Voxel Position=
¶ The string added as annotation before possibly displayed voxel coordinates corresponding to XMarker.pos.
Displayed Voxel Position Components¶
-
name:
displayedVoxelPositionComponents
, type:
Enum
, default:
0
¶ Controls the number of displayed components of the XMarker.pos member, 0 disables it at all, also the related
Prefix
is not displayed.Note
- The displayed components are from the voxel coordinates of the marker.
- The components 0-2 (x,y,z) are cast to integer coordinates to behave like other MeVisLab modules such as
SoView2DMarkerEditor
which usually skip decimal places of voxel coordinates. - the components 3-5 (c,t,u) are the same as in world coordinates, if displayed.
Prefix (vectorAnnotationString)¶
-
name:
vectorAnnotationString
, type:
String
, default:
Vector=
¶ The string is added as annotation before possibly displayed coordinates of XMarker.vec.; it is not displayed if
Displayed Vector Components
is 0.
Displayed Vector Components¶
-
name:
displayedVectorComponents
, type:
Enum
, default:
0
¶ Controls the number of displayed components of for example the XMarker.vec member in case of an XMarker, 0 disables it at all, also the related
Prefix
is not displayed then. In case of an CSO the vector from first and last seed point is used instead.
Horizontal Text Alignment¶
-
name:
horizontalTextAlignment
, type:
Enum
, default:
LEFT
¶ Only for completeness, currently it can be set but has not effect on rendered text: If any text is displayed inside a bounding box, then this is the used horizontal alignment inside it, i.e. text is drawn left-bounded, right-bounded, or centered on LEFT, RIGHT, CENTER respectively. Currently
DicomPRSave
still does not make use of bounding boxes.
Text Location¶
-
name:
textLocation
, type:
Enum
, default:
START/POS
¶ If any text is displayed, then this controls where it is displayed regarding position and vector of the XMarker.
- START/POS draw for example at XMarker.pos (XMarker) or first seed point (CSO),
- END/TIP draw for example at XMarker.pos+XMarker.vec (XMarker) or last seed point (CSO).
- MID draw for example at (XMarker.pos+XMarker.vec)/2 (XMarker) or between first and last seed point (CSO).
- CENTER: draw for example at (XMarker.pos+XMarker.vec)/2 (XMarker) or at center of gravity (CSO).
Num Decimal Places¶
-
name:
numDecimalPlaces
, type:
Integer
, default:
-1
, minimum:
-1
, maximum:
17
¶ If any numbers are converted to displayed text, this controls the number of decimal places after the comma, -1 displays all regarding the available precision of the used value.
Text Offset In Pixels¶
-
name:
textOffsetInPixels
, type:
Vector2
, default:
0 0
¶ If a text is written next to a coordinate then this is an offset to move it away a few pixels such that it is not rendered over the coordinate.
Add all XMarkerList data also as private tags¶
-
name:
addXMarkerListAsPrivateTags
, type:
Bool
, default:
TRUE
¶ If enabled then the state of the XMarkerList is added as private tags.
XMarkerList Privat Tag Comment¶
-
name:
privateXMarkerListCommentTag
, type:
String
¶ Additional user comment for the XMarkerList stored as private tag.
Add StylePalette also as private tags¶
-
name:
addStylePaletteAsPrivateTags
, type:
Bool
, default:
TRUE
¶ If enabled then the state of a possibly connected StylePalette is added as private tags, if no StylePalette is connected then no private tags are written.
StylePalette Privat Tag Comment¶
-
name:
privateStylePaletteCommentTag
, type:
String
¶ Additional user comment for the StylePalette stored as private tag.
Try to convert items even if outside pixel area¶
-
name:
convertItemsOutOfPixelArea
, type:
Bool
, default:
FALSE
¶ If enabled then also convert Markers which can be assigned to a frame, but which are outside the pixel area of the frame; technically such annotations can be generated, however, the DICOM standard does not specify what shall happen which such annotations.
Use Index And Type As In View2DMarkerEditor¶
-
name:
useIndexAndTypeAsInView2DMarkerEditor
, type:
Bool
, default:
TRUE
¶ If enabled then offsets calculated from list index of XMarkers or XMarker.type members are calculated as in the
SoView2DMarkerEditor
where both are increased by 1 before using them; if disabled they are used as they are.Note
Since there is no valid specification of the zero’th entry in
StylePalette
, marker indices or types with value 0 will use settings from fields ofDicomPRSave
instead.
Add all CSOList data also as private tags¶
-
name:
addCSOListAsPrivateTags
, type:
Bool
, default:
TRUE
¶ If enabled then the state of the CSOList is added as private tags.
CSOList Privat Tag Comment¶
-
name:
privateCSOListCommentTag
, type:
String
¶ Additional user comment for the CSOList stored as private tag.
Patients Name¶
-
name:
patientsName
, type:
String
¶ DICOM tag: The patient name (0010,0010) to be written. Note that DICOM checkers often complain about typically used names. A typical and standard compliant name is, for example, Familyname^Firstname. See http://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html for definition and http://dicom.nema.org/dicom/2013/output/chtml/part05/sect_6.2.html#sect_6.2.1.1 for examples.
Patient ID¶
-
name:
patientID
, type:
String
¶ DICOM tag: String/number used to identify the patient see tag (0010,0020).
Patient Birth Date Year¶
-
name:
patientBirthDateYearEnum
, type:
Enum
, default:
1900
¶ The selectable year of birth of the patient; ‘User Defined’ allows manual specification. See DICOM tag Patient’s Birth Day (0010,0030).
Values:
Title | Name |
---|---|
User Defined | User Defined |
1900 | 1900 |
1901 | 1901 |
1902 | 1902 |
1903 | 1903 |
1904 | 1904 |
1905 | 1905 |
1906 | 1906 |
1907 | 1907 |
1908 | 1908 |
1909 | 1909 |
1910 | 1910 |
1911 | 1911 |
1912 | 1912 |
1913 | 1913 |
1914 | 1914 |
1915 | 1915 |
1916 | 1916 |
1917 | 1917 |
1918 | 1918 |
1919 | 1919 |
1920 | 1920 |
1921 | 1921 |
1922 | 1922 |
1923 | 1923 |
1924 | 1924 |
1925 | 1925 |
1926 | 1926 |
1927 | 1927 |
1928 | 1928 |
1929 | 1929 |
1930 | 1930 |
1931 | 1931 |
1932 | 1932 |
1933 | 1933 |
1934 | 1934 |
1935 | 1935 |
1936 | 1936 |
1937 | 1937 |
1938 | 1938 |
1939 | 1939 |
1940 | 1940 |
1941 | 1941 |
1942 | 1942 |
1943 | 1943 |
1944 | 1944 |
1945 | 1945 |
1946 | 1946 |
1947 | 1947 |
1948 | 1948 |
1949 | 1949 |
1950 | 1950 |
1951 | 1951 |
1952 | 1952 |
1953 | 1953 |
1954 | 1954 |
1955 | 1955 |
1956 | 1956 |
1957 | 1957 |
1958 | 1958 |
1959 | 1959 |
1960 | 1960 |
1961 | 1961 |
1962 | 1962 |
1963 | 1963 |
1964 | 1964 |
1965 | 1965 |
1966 | 1966 |
1967 | 1967 |
1968 | 1968 |
1969 | 1969 |
1970 | 1970 |
1971 | 1971 |
1972 | 1972 |
1973 | 1973 |
1974 | 1974 |
1975 | 1975 |
1976 | 1976 |
1977 | 1977 |
1978 | 1978 |
1979 | 1979 |
1980 | 1980 |
1981 | 1981 |
1982 | 1982 |
1983 | 1983 |
1984 | 1984 |
1985 | 1985 |
1986 | 1986 |
1987 | 1987 |
1988 | 1988 |
1989 | 1989 |
1990 | 1990 |
1991 | 1991 |
1992 | 1992 |
1993 | 1993 |
1994 | 1994 |
1995 | 1995 |
1996 | 1996 |
1997 | 1997 |
1998 | 1998 |
1999 | 1999 |
2000 | 2000 |
2001 | 2001 |
2002 | 2002 |
2003 | 2003 |
2004 | 2004 |
2005 | 2005 |
2006 | 2006 |
2007 | 2007 |
2008 | 2008 |
2009 | 2009 |
2010 | 2010 |
2011 | 2011 |
2012 | 2012 |
2013 | 2013 |
2014 | 2014 |
2015 | 2015 |
2016 | 2016 |
2017 | 2017 |
2018 | 2018 |
2019 | 2019 |
2020 | 2020 |
2021 | 2021 |
2022 | 2022 |
2023 | 2023 |
2024 | 2024 |
2025 | 2025 |
2026 | 2026 |
2027 | 2027 |
2028 | 2028 |
2029 | 2029 |
2030 | 2030 |
2031 | 2031 |
2032 | 2032 |
2033 | 2033 |
2034 | 2034 |
2035 | 2035 |
2036 | 2036 |
2037 | 2037 |
2038 | 2038 |
2039 | 2039 |
2040 | 2040 |
2041 | 2041 |
2042 | 2042 |
2043 | 2043 |
2044 | 2044 |
2045 | 2045 |
2046 | 2046 |
2047 | 2047 |
2048 | 2048 |
2049 | 2049 |
2050 | 2050 |
2051 | 2051 |
2052 | 2052 |
2053 | 2053 |
2054 | 2054 |
2055 | 2055 |
2056 | 2056 |
2057 | 2057 |
2058 | 2058 |
2059 | 2059 |
Patient Birth Date Year String¶
-
name:
patientBirthDateYearString
, type:
String
, default:
1900
¶ The year of the patient birth as string. Can be modified manually only if ‘Patient Sex’ is ‘User Defined’. See DICOM tag Patient’s Birth Day (0010,0030).
Patient Birth Date Month¶
-
name:
patientBirthDateMonthEnum
, type:
Enum
, default:
01-January
¶ The selectable month of birth of the patient; ‘User Defined’ allows manual specification. See DICOM tag Patient’s Birth Day (0010,0030).
Values:
Title | Name |
---|---|
User Defined | User Defined |
01-January | 01-January |
02-February | 02-February |
03-March | 03-March |
04-April | 04-April |
05-May | 05-May |
06-June | 06-June |
07-July | 07-July |
08-August | 08-August |
09-September | 09-September |
10-October | 10-October |
11-November | 11-November |
12-December | 12-December |
Patient Birth Date Month String¶
-
name:
patientBirthDateMonthString
, type:
String
, default:
01-January
¶ The month of the patient birth as string. Can be modified manually only if ‘Patient Birth Date Month’ is ‘User Defined’. See DICOM tag Patient’s Birth Day (0010,0030).
Patient Birth Date Day¶
-
name:
patientBirthDateDayEnum
, type:
Enum
, default:
01
¶ The selectable Day of birth of the patient; ‘User Defined’ allows manual specification. See DICOM tag Patient’s Birth Day (0010,0030).
Values:
Title | Name |
---|---|
User Defined | User Defined |
01 | 01 |
02 | 02 |
03 | 03 |
04 | 04 |
05 | 05 |
06 | 06 |
07 | 07 |
08 | 08 |
09 | 09 |
10 | 10 |
11 | 11 |
12 | 12 |
13 | 13 |
14 | 14 |
15 | 15 |
16 | 16 |
17 | 17 |
18 | 18 |
19 | 19 |
20 | 20 |
21 | 21 |
22 | 22 |
23 | 23 |
24 | 24 |
25 | 25 |
26 | 26 |
27 | 27 |
28 | 28 |
29 | 29 |
30 | 30 |
31 | 31 |
Patient Birth Date Day String¶
-
name:
patientBirthDateDayString
, type:
String
, default:
01
¶ The day of the patient birth as string. Can be modified manually only if ‘Patient Birth Date Day’ is ‘User Defined’. See DICOM tag Patient’s Birth Day (0010,0030).
Patient Sex¶
-
name:
patientSexEnum
, type:
Enum
, default:
Other
¶ The selectable sex of the patient; ‘User Defined’ allows manual specification. See DICOM tag Patient Sex (0010,0040).
Values:
Title | Name |
---|---|
Other | Other |
Female | Female |
Male | Male |
User Defined | User Defined |
Patient Sex String¶
-
name:
patientSexString
, type:
String
, default:
Other
¶ The sex of the patient as string. Can be modified manually only if ‘Patient Sex’ is ‘User Defined’. See DICOM tag Patient Sex (0010,0040).
Study Instance UID¶
-
name:
studyInstanceUID
, type:
String
¶ DICOM tag: Study Instance UID (0020,000D) Unique identifier for the study. If available then see Update Automatically On Changes of StudyInstanceUID and C.12.2 Common Instance Reference Module in the DICOM standard for details and important dependent settings. Must contain up to 64 characters from ‘0’-‘9’ or ‘.’.
Auto¶
-
name:
autoCreateStudyInstanceUID
, type:
Bool
, default:
TRUE
¶ If enabled for each written file a new Study Instance UID is created. If disabled the currently set one is used.
Study Date¶
-
name:
studyDate
, type:
String
¶ DICOM tag: Study Date (0008,0020). The date the study started. May be empty.
Study Time¶
-
name:
studyTime
, type:
String
¶ DICOM tag: Study Time (0008,0030). The time the study started. May be empty.
Referring Physician Name¶
-
name:
referringPhysicianName
, type:
String
¶ DICOM tag: Referring Physician’s Name (0008,0090). Name of the patient’s referring physician. May be empty. See
Patients Name
for details about valid format.
Study ID¶
-
name:
studyID
, type:
String
¶ DICOM tag: Study ID (0020,0010). User or equipment generated study ID. May be empty.
Accession Number¶
-
name:
accessionNumber
, type:
String
¶ DICOM tag: Accession Number (0008,0050). A RIS generated number that identifies the order of the Study. May be empty.
Study Description¶
-
name:
studyDescription
, type:
String
¶ DICOM tag: Study Description (0008,1030). Institution-generated description or classification of the Study (component) performed. Optional, may be empty.
Series Number¶
-
name:
seriesNumber
, type:
String
¶ DICOM tag: Series Number (0020,0011). Integer number with at most 12 digits; tag must exist and in most contexts it must have a non-empty value; in a few IODs it is allowed to be empty.
Inherit Series Number¶
-
name:
inheritSeriesNumber
, type:
Bool
, default:
TRUE
¶ Sometimes it is not desired to inherit the Series Number tag from the input, because it’s set by the module user. For this purpose it can be disabled.
Warning
- If the Series Number tag does not match the tag in the referenced data, most DICOM viewers will not show presentation states silently. Therefore it is strongly recommended to leave this flag enabled.
Laterality¶
-
name:
laterality
, type:
Enum
, default:
DoNotWriteTagValue
¶ DICOM tag: Laterality (0020,0060). Allowed values: ‘L’ (Left), ‘R’ (Right), and empty value (WriteEmptyTagValue). Note that not writing the tag value may violate the DICOM standard under some circumstances.
Values:
Title | Name |
---|---|
Do Not Write Tag Value | DoNotWriteTagValue |
Write Empty Tag Value | WriteEmptyTagValue |
L | L |
R | R |
Use Empty Laterality Tag If Not Found On Inheritance¶
-
name:
useEmptyLateralityTagIfNotFoundOnInheritance
, type:
Bool
, default:
TRUE
¶ In may contexts the Laterality tag (0020,0060) must be available but is allowed to be empty, however, often it cannot be inherited since it is not part of the DICOM. This field allows to inherit a state that always an empty tag value is written instead of skipping it which perhaps would violate the DICOM standard. Also depends on other Laterality tags.
Laterality Checks¶
-
name:
lateralityChecks
, type:
Enum
, default:
AsWarning
¶ The combinations of values of Laterality tag(s) and BodyPartExamined cannot be checked reliably in all situations; therefore a deactivation or only warning logs may be useful in some cases.
Values:
Title | Name |
---|---|
As Error | AsError |
As Warning | AsWarning |
Ignore | Ignore |
Series Description¶
-
name:
seriesDescription
, type:
String
¶ DICOM tag: Series Description (0008,103E). Optional, may be empty.
Write Body Part Examined¶
-
name:
writeBodyPartExamined
, type:
Bool
, default:
FALSE
¶ If enabled then the Body Part Examined (0018,0015) tag is written into output files, otherwise not.
Body Part Examined¶
-
name:
bodyPartExamined
, type:
String
¶ DICOM tag: Body Part Examined (0018,0015). Text description of the part of the body examined. See Annex L ‘Correspondence of Anatomic Region Codes and Body Part Examined Defined Terms’ in PS3.16 for Defined Terms
Presentation Creation Date¶
-
name:
presentationCreationDate
, type:
String
¶ DICOM tag: Presentation Creation Date (0070,0082). Date on which this presentation was created. This date may be different from the date the DICOM SOP Instance was created, since the presentations state information contained may have been recorded earlier.
Presentation Creation Time¶
-
name:
presentationCreationTime
, type:
String
¶ DICOM tag: Presentation Creation Time (0070,0083). Time on which this presentation was created. This time may be different from the time the DICOM SOP Instance was created, since the presentations state information contained may have been recorded earlier.
Auto Set Up Presentation Creation Date¶
-
name:
autoSetUpPresentationCreationDate
, type:
Bool
, default:
TRUE
¶ If enabled then the
Presentation Creation Date
is set to the current date when pressingInherit DICOM Information (CTRL+R)
, otherwise it is left as it is.
Auto Set Up Presentation Creation Time¶
-
name:
autoSetUpPresentationCreationTime
, type:
Bool
, default:
TRUE
¶ If enabled then the
Presentation Creation Time
is set to the current date when pressingInherit DICOM Information (CTRL+R)
, otherwise it is left as it is.
Set Current Date¶
-
name:
setCurrentDate
, type:
Trigger
¶ Sets
Presentation Creation Date
to the current date.
Set Current Time¶
-
name:
setCurrentTime
, type:
Trigger
¶ Sets
Presentation Creation Time
to the current time.
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.
Sop Class UID¶
-
name:
sopClassUID
, type:
String
, persistent:
no
¶ 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
, persistent:
no
¶ 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.
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.