Skip to content

dicomtrolley.fields

Fields that can be returned for Study, Series and Instance levels

Notes

Valid fields per level have all been taken from the Vitrea Connection 8.2.0.1 manual. These list might be different for different software.

InstanceLevel

attributes can be returned if query_level=INSTANCE

Source code in dicomtrolley/fields.py
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
class InstanceLevel:
    """attributes can be returned if query_level=INSTANCE"""

    fields = {
        "SOPInstanceUID",
        "SOPClassUID",
        "Rows",
        "Columns",
        "NumberOfFrames",
        "BitsAllocated",
        "ContentDate",
        "ContentTime",
        "ObservationDateTime",
        "ConceptNameCodeSequence",
        "ContentLabel",
        "ContentDescription",
        "PresentationCreationDate",
        "PresentationCreationTime",
        "ContentCreatorName",
        "RetrieveURI",
        "TransferSyntaxUID",
        "InstanceNumber",
        "Manufacturer",
        "StationName",
        "ManufacturerModelName",
        "DeviceSerialNumber",
        "InstitutionAddress",
        "CorrectedImage",
        "SoftwareVersions",
        "DateOfLastCalibration",
        "TimeOfLastCalibration",
        "PixelPaddingValue",
    }

SeriesLevel

attributes can be returned if query_level=SERIES, or query_level=INSTANCE

Source code in dicomtrolley/fields.py
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
class SeriesLevel:
    """attributes can be returned if query_level=SERIES, or query_level=INSTANCE"""

    fields = {
        "SeriesInstanceUID",
        "Modality",
        "SeriesDate",
        "SeriesTime",
        "SeriesDescription",
        "Laterality",
        "AnatomicRegionSequence",
        "BodyPartExamined",
        "FrameOfReferenceUID",
        "PerformedProcedureStepDescription",
        "ProtocolName",
        "PerformingPhysicianName",
        "PerformedProcedureStepStartDate",
        "PerformedProcedureStepStartTime",
        "OperatorsName",
        "PerformedProcedureStepStatus",
        "PresentationIntentType",
        "SeriesNumber",
        "SeriesType",
        "SmallestPixelValueInSeries",
        "SpatialResolution",
        "NumberOfSeriesRelatedInstances",
    }

SeriesLevelPromotable

Instance level attributes that may be returned even if query_level=SERIES

These attributes are promotable from the Image-level to the Series-level metadata if the attribute value for all SOP instances in that series contain the same value. Therefore, these attributes may be returned in a query_level=SERIES query, but only when this condition is satisfied.

Notes

Including any of these attributes as return keys in a Series-level query will cause the full study metadata to be loaded from disk, even if the corresponding attribute was promoted to the study summary MINT metadata. This means there is an extra read from disk in addition to the database, so the performance of such queries may be slightly slower than queries for other Series-level attributes.

Source code in dicomtrolley/fields.py
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
class SeriesLevelPromotable:
    """Instance level attributes that may be returned even if query_level=SERIES

    These attributes are promotable from the Image-level to the Series-level metadata
    if the attribute value for all SOP instances in that series contain the same
    value. Therefore, these attributes may be returned in a query_level=SERIES query,
    but only when this condition is satisfied.

    Notes
    -----
    Including any of these attributes as return keys in a Series-level query will
    cause the full study metadata to be loaded from disk, even if the corresponding
    attribute was promoted to the study summary MINT metadata. This means there is an
    extra read from disk in addition to the database, so the performance of such
    queries may be slightly slower than queries for other Series-level attributes.
    """

    fields = {
        "Manufacturer",
        "ManufacturerModelName",
        "CorrectedImage",
        "DeviceSerialNumber",
        "InstitutionAddress",
        "SoftwareVersions",
        "StationName",
        "DateOfLastCalibration",
        "TimeOfLastCalibration",
    }

StudyLevel

All fields that can be returned for query_level=STUDY, SERIES or INSTANCE.

Notes

From manual: Note that if a specified attribute is not in the study, the attribute will not be returned. If the specified attribute is in the study but does not have a value, it will be returned without a value.

Source code in dicomtrolley/fields.py
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
class StudyLevel:
    """All fields that can be returned for query_level=STUDY, SERIES or INSTANCE.

    Notes
    -----
    From manual:
    Note that if a specified attribute is not in the study, the attribute will not
    be returned. If the specified attribute is in the study but does not have a
    value, it will be returned without a value.
    """

    fields = {
        "PatientID",
        "IssuerOfPatientID",
        "IssuerOfPatientIDQualifiersSequence",
        "PatientName",
        "PatientSex",
        "PatientBirthDate",
        "PatientBirthTime",
        "StudyInstanceUID",
        "AccessionNumber",
        "IssuerOfAccessionNumberSequence",
        "StudyID",
        "StudyDate",
        "StudyTime",
        "ModalitiesInStudy",
        "ReferringPhysicianName",
        "RequestedProcedureID",
        "StudyDescription",
        "InstanceAvailability",
        "InstitutionName",
        "StudyStatusID",
        "ConfidentialityCode",
        "ProcedureCodeSequence",
        "ReasonForPerformedProcedureCodeSequence",
        "OtherPatientIDsSequence",
        "InstitutionalDepartmentName",
        "NumberOfStudyRelatedSeries",
        "NumberOfStudyRelatedInstances",
        "SOPClassesInStudy",
        "CurrentPatientLocation",
        "SourceApplicationEntityTitle",
    }