Main DICOM Tags in DB

Introduction

By default, Orthanc is saving a predefined subset of DICOM Tags in the DB. These are called the MainDicomTags.

Since they are stored in DB, these tags can be retrieved very quickly and can conveniently be used for filtering/finding resources while, to access other DICOM tags, Orthanc needs to re-open the DICOM file which is much slower.

As of Orthanc 1.4.2 (and later), the predefined list is:

  • Patients:
    • PatientName

    • PatentID

    • PatientBirthDate

    • PatientSex

    • OtherPatientIDs

  • Studies:
    • StudyDate

    • StudyTime

    • StudyID

    • StudyDescription

    • AccessionNumber

    • StudyInstanceUID

    • RequestedProcedureDescription

    • InstitutionName

    • RequestingPhysician

    • ReferringPhysicianName

  • Series:
    • SeriesDate

    • SeriesTime

    • Modality

    • Manufacturer

    • StationName

    • SeriesDescription

    • BodyPartExamined

    • SequenceName

    • ProtocolName

    • SeriesNumber

    • CardiacNumberOfImages

    • ImagesInAcquisition

    • NumberOfTemporalPositions

    • NumberOfSlices

    • NumberOfTimeSlices

    • SeriesInstanceUID

    • ImageOrientationPatient

    • SeriesType

    • OperatorsName

    • PerformedProcedureStepDescription

    • AcquisitionDeviceProcessingDescription

    • ContrastBolusAgent

  • Instances:
    • InstanceCreationDate

    • InstanceCreationTime

    • AcquisitionNumber

    • ImageIndex

    • InstanceNumber

    • NumberOfFrames

    • TemporalPositionIdentifier

    • SOPInstanceUID

    • ImagePositionPatient

    • ImageComments

    • ImageOrientationPatient

Adding more tags in DB

Since version 1.11.0, it is possible to customize a list of ExtraMainDicomTags to include in the DB through a new configuration option.

Since version 1.11.1, it is possible to include sequences in ExtraMainDicomTags. However, this should be considered as an “experimental” feature and you should not store large sequences (> 64KB) or sequences containing binary tags.

Here is a sample configuration to optimize C-Find queries at study level e.g from OSIRIX/Horos. They request SpecificCharacterSet and PerformingPhysicianName that are not stored in Orthanc DB by default:

{
    "ExtraMainDicomTags" : {
    "Instance" : [
    ],
    "Series" : [
    ],
    "Study": [
        "SpecificCharacterSet",
        "PerformingPhysicianName"
    ],
    "Patient": []
    }
}

This configuration will apply only to newly added resources in Orthanc. If you want to apply this change to resources already in Orthanc, you may call the /studies/../reconstruct API route or use the Housekeeper plugin to automate this reconstruction process.

Note : These ExtraMainDicomTags are not used when searching for resources in Orthanc, they are only used when returning results. E.g. if you have added a StudyDescription at Series level and perform a /tools/find at Series level with a filter on the StudyDescription tag, Orthanc will still use the StudyDescription recorded at Study level during the search but will use the StudyDescription recorded at Series level when returning the responses.

Note: You should only include tags from the same or from a higher level: E.g. Storing StudyDescription at Series level is possible since all series are supposed to share the same StudyDescription. But, adding SeriesDescription at Study level will lead to unpredictible results. Orthanc will not check that the tags levels are adequate.

Note: As of Orthanc 1.12.4, it is not possible to store Private DICOM tags in the ExtraMainDicomTags.

Warnings

Since Orthanc 1.11.0, Orthanc issues a warning everytime it opens a DICOM file to access a DICOM tag that could have been saved in DB.

Orthanc will also issue a warning everytime it accesses a resource that has been saved with a ExtraMainDicomTags configuration that is different from the current one inviting you to call the /reconstruct route to fix this.

These warnings can be enabled/disabled through this configuration:

{
    "Warnings" : {
        "W001_TagsBeingReadFromStorage": true,
        "W002_InconsistentDicomTagsInDb": true
    }
}

DICOMWeb

Below is a sample configuration that is well suited to optimize DICOMWeb routes in general in case you are using the MainDicomTags metadata mode. However, note that, from version 1.15 of the DICOMWeb plugin, you should favor the Full mode:

{
    "ExtraMainDicomTags" : {
    "Instance" : [
        "Rows",
        "Columns",
        "ImageType",
        "SOPClassUID",
        "ContentDate",
        "ContentTime",
        "FrameOfReferenceUID",
        "PixelSpacing",
        "SpecificCharacterSet",
        "BitsAllocated",
        "BitsStored"
    ],
    "Series" : [
        "TimezoneOffsetFromUTC",
        "PerformedProcedureStepStartDate",
        "PerformedProcedureStepStartTime",
        "RequestAttributesSequence"
    ],
    "Study": [
        "TimezoneOffsetFromUTC"
    ],
    "Patient": []
    }
}