Configuration

You can use the Merge DICOM Toolkit "out of the box" by using its supplied utility programs and sample applications. In this section we discuss how to configure the toolkit and to use the utility programs. The sample applications are described in the provided source code.

Merge DICOM toolkit is highly configurable, and understanding its configuration files is critical to using the library effectively. Four configuration files are used by the toolkit: an initialization file, an application profile, a system profile, and a service profile.

Each of the four toolkit initialization files follows the same format. The format of the initialization files is the same format that is used by others in the industry. Configuration files are broken down into sections for easier organization and grouping of parameters. Each section has a section heading enclosed in square brackets. Next, parameters are defined by putting the parameter name to the left of an equal sign and its initial value to the right. Zero of more spaces may precede and follow the equal sign. Figure 9 illustrates the format of an ini file.

Notice that parameter names are relative to their header sections. For example, PARAMETER_1 and PARAMETER_2 are defined twice in the above example "ini" file. But, since each is defined in a different section, they are considered different entities.

Each of the four configuration files are discussed separately below. Only the key configurable parameters are summarized here. For detailed descriptions of all configuration files and their parameters, scroll down to the appropriate section of this page.

Initialization File

The Merge DICOM Initialization File (usually called merge.ini) provides the DICOM Toolkit with its top-level configuration. It specifies the location of the other three configuration files, along with message and error logging characteristics.

All Merge DICOM applications require access to the Initialization File. Your Java programs access the Initialization File differently than do C applications, such as the utility programs distributed with the Merge DICOM Toolkit.

The C utility programs access the merge.ini file by accessing the MERGE_INI environment variable. You must set the MERGE_INI environmental variable to point to the Initialization File.

Merge DICOM applications written in Java do not use the MERGE_INI environment variable. Instead, they determine the location of the Initialization File in any way that is appropriate and then pass the location to the Class Library, using the static initialize() method of the MC class.

The initialization file contains one [MergeCOM3] section that points to the location of the other three Merge DICOM initialization files, specifies characteristics of the message/error log kept by the DICOM Toolkit library, turns particular types of logging on and off, and specifies where the messages are logged (file, screen, both, or neither). In most cases the INFO, WARNING, and ERROR messages will be sufficient. The Tn_MESSAGE settings (where n is an integer between 1 and 9 ) turn on lower-level protocol tracing capabilities. These capabilities can prove useful when running into difficulties communicating with other implementations of DICOM over a network and can be used by Merge OEM service engineers in diagnosing lower-level network problems.

Note: The trace logging levels are intended strictly for debugging purposes. If left on, they can seriously degrade toolkit performance. In particular, the T2, T7 and T9 levels should be turned off in normal operation.

The following parameters are recognized by Merge DICOM toolkit in the initialization file.

Name Section Description
BLANK_FILL_LOG_FILE MergeCOM3 This parameter informs the toolkit whether or not to expand the log file to its maximum size on initialization. Setting this value to 'NO' will decrease the time spent in the initialization call but increase the time spent doing actual logging while the application is running.

DEFAULT: YES

ERROR_MESSAGE MergeCOM3 This parameter instructs the toolkit to which destination (File, Screen and/or Memory) to log error messages.
INFO_MESSAGE MergeCOM3 This parameter instructs the toolkit to which destination (File, Screen and/or Memory or none) to log information messages.
LOG_FILE MergeCOM3 This is the name of the Merge DICOM message log file. The file will be [re-]created by Merge DICOM toolkit when the it is initialized.

The path to the file can be specified using environment variables (including the pseudo environment variable MC3INIDIR which does not need to be set as the toolkit will resolve it internally to the directory where the merge.ini file resides).

Unicode paths can now be specified through the environment variables. Both Windows style (%) and Unix style ($) notations for the environment variables are accepted.

DEFAULT: ./merge.log

LOG_FILE_BACKUP MergeCOM3 This is a boolean parameter that tells Merge DICOM toolkit to create a backup of the log file before starting a new log. If “ON”, any existing log file is renamed with a file extension of .Lnn where nn is an integer number between 01 and 99.

DEFAULT: OFF.

LOG_FILE_LINE_LENGTH MergeCOM3 This option specifies the number of characters that occur on a line within the merge.log file.

DEFAULT: 78

MINIMUM: 16

MAXIMUM: 254

LOG_FILE_SIZE MergeCOM3 This is the number of lines which will be created for the log file. If BLANK_FILL_LOG_FILE is set to YES, the file is initialized to all binary zeros before the first message is logged.

DEFAULT: 1000

MINIMUM: 100

MAXIMUM: 30720 (30 * 1024)

LOG_MEMORY_SIZE MergeCOM3 This is the number of lines of length equal to LOG_FILE_LINE_LENGTH which will be created for the memory log. Note that this option is ignored when using the Java Class Library.

DEFAULT: 1024

MERGECOM_3_APPLICATIONS MergeCOM3 File containing the Merge DICOM application configurations.

The path to the file can be specified using environment variables (including the pseudo environment variable MC3INIDIR which does not need to be set as the toolkit will resolve it internally to the directory where the merge.ini file resides).

Unicode paths can now be specified through the environment variables. Both Windows style (%) and Unix style ($) notations for the environment variables are accepted.

MERGECOM_3_PROFILE MergeCOM3 File containing the Merge DICOM system profile parameters.

The path to the file can be specified using environment variables (including the pseudo environment variable MC3INIDIR which does not need to be set as the toolkit will resolve it internally to the directory where the merge.ini file resides).

Unicode paths can now be specified through the environment variables. Both Windows style (%) and Unix style ($) notations for the environment variables are accepted.

MERGECOM_3_SERVICES MergeCOM3 File containing the Merge DICOM system service and message definitions.

The path to the file can be specified using environment variables (including the pseudo environment variable MC3INIDIR which does not need to be set as the toolkit will resolve it internally to the directory where the merge.ini file resides).

Unicode paths can now be specified through the environment variables. Both Windows style (%) and Unix style ($) notations for the environment variables are accepted.

NUM_HISTORICAL_LOG_FILES MergeCOM3 This parameter informs the toolkit of the number of historical log files to keep. The valid range of number for this parameter is 1 - 99. The historical log files are named basename .L01 to basename .L XX where basename .L XX is the latest log file. The basename is determined by the LOG_FILE parameter. When the maximum number of historical log files is met, the oldest log file is deleted and the log files are renamed. Note that a new log file is created each time the library is initialized. This parameter is only used when LOG_FILE_BACKUP is set to YES.
T2_MESSAGE MergeCOM3 This level logs the entire contents of messages sent or received over the network in a text format.
T3_MESSAGE MergeCOM3 This logging level parameter informs the toolkit to log messages relating to association negotiation.
T4_MESSAGE MergeCOM3 This logging level parameter informs the toolkit to log messages when incoming associations are automatically rejected.
T5_MESSAGE MergeCOM3 This logging level parameter informs the toolkit to log messages relating to regular and extended validation.
T6_MESSAGE MergeCOM3 This logging level parameter informs the toolkit to log messages relating to configuration.
T7_MESSAGE MergeCOM3 This logging level parameter informs the toolkit to log messages relating to logging of command level attributes in messages sent or received.
T8_MESSAGE MergeCOM3 This logging level parameter informs the toolkit to log messages relating to the streaming in and out of messages and file objects.
T9_MESSAGE MergeCOM3 This logging level parameter informs the toolkit to log messages relating to PDU’s sent and received. NOTE: Receipt and transmission of P-DATA PDU’s are logged; not the actual PDU itself.
WARNING_MESSAGE MergeCOM3 This parameter instructs the toolkit to which destination (File, Screen and/or Memory or none) to log warning messages.
NOTE:The destination for the logging from the T2_MESSAGE to T9_MESSAGE trace levels can be one or more of File, Screen and Memory or none.

Application Profile

The Merge DICOM Application Profile (usually called mergecom.app) specifies the characteristics of your own application entity and the AE's your application will connect with over a network. The name and location of this file is specified in the [MergeCOM3] section of the Merge DICOM initialization file.

DICOM AE Title

When your application acts as a client (SCU), you must specify in the Application Profile the network address of the server (SCP) Application Entities you wish to connect (open an association) with. Your client refers to the application entity by a DICOM Application Entity Title and this is the same way it is referred to in the application profile. The AE title consists of a string of characters containing no spaces and having a length of 16 characters or less. A section of the profile exists for each Server AE you wish to connect with.

For example, if your application is an image source and also performs query and retrieval of images from two separate DICOM AE's, it might contain sections like the following:

[Acme_Store_SCP]
PORT_NUMBER = 104
HOST_NAME = acme_sun1
SERVICE_LIST = Storage_Service_List

[Acme_QR_SCP]
PORT_NUMBER = 104
HOST_NAME = acme_hp2
SERVICE_LIST = Query_Service_List

Acme_Store_SCP and Acme_QR_SCP are the AE titles for the applications you wish to connect with. The storage server runs on a computer having the host name acme_sun1, while the query/retrieve server runs on a computer with the host name acme_hp2. Both servers listen on port 104 (the standard DICOM listen port). The host name and port combined, make up the TCP/IP network address for a listening server application.

Service List

The SERVICE_LIST is set to the name of another section in the application profile that lists the DICOM services that will be negotiated with that application entity. For example, in this case these sections might look like:

[Storage_Service_List]
SERVICES_SUPPORTED = 11 # Services in list
SERVICE_1 = STANDARD_MR
SERVICE_2 = STANDARD_CR
SERVICE_3 = STANDARD_CT
SERVICE_4 = STANDARD_CURVE
SERVICE_5 = STANDARD_MODALITY_LUT
SERVICE_6 = STANDARD_OVERLAY
SERVICE_7 = STANDARD_SEC_CAPTURE
SERVICE_8 = STANDARD_US
SERVICE_9 = STANDARD_US_MF
SERVICE_10 = STANDARD_VOI_LUT
SERVICE_11 = STANDARD_NM

[Query_Service_List]
SERVICES_SUPPORTED = 2 # Services in list
SERVICE_1 = STUDY_ROOT_FIND
SERVICE_2 = STUDY_ROOT_MOVE

[Storage_Service_List] lists the storage services that will be requested, while [Query_Service_List] lists the type of query/retrieve that will be requested. These service names are the strings used in Merge DICOM Toolkit to identify standard DICOM services. Any services listed must be defined in the Service Profile, discussed below.

Dynamic Service Lists

You may also dynamically create service lists at run time, using the methods of the MCproposedContext and MCproposedContextList classes. This is discussed in more detail in the Association Management section.

A service list also needs to be defined for each of your own server AE's. Even though you do not need a section for your server AE Title (since it is running on your local machine), you do need to specify a service list that your application supports as an SCP. If your application also acts as a storage server, for example, it could use [Storage_Service_List]. You also need to specify a listen port for your server AE in the System Profile, which is discussed below.

Transfer Syntax List

For DICOM Toolkit users, Merge DICOM toolkit allows for the defining of the transfer syntaxes supported for each service in a service list. This functionality is implemented through the use of transfer syntax lists. The basic service lists discussed above can be modified to include these transfer syntax lists. The following is an example service list that has transfer syntaxes specified for each service:

[Storage_Service_List]
SERVICES_SUPPORTED = 3 # Services in list
SERVICE_1 = STANDARD_MR
SYNTAX_LIST_1 = MR_Syntax_List
SERVICE_2 = STANDARD_US
SYNTAX_LIST_2 = US_Syntax_List
SERVICE_3 = STANDARD_CT
SYNTAX_LIST_3 = CT_Syntax_List

[MR_Syntax_List]
SYNTAXES_SUPPORTED = 4 # Number of Syntaxes
SYNTAX_1 = JPEG_BASELINE
SYNTAX_2 = EXPLICIT_BIG_ENDIAN
SYNTAX_3 = EXPLICIT_LITTLE_ENDIAN
SYNTAX_4 = IMPLICIT_LITTLE_ENDIAN

[US_Syntax_List]
SYNTAXES_SUPPORTED = 2 # Number of Syntaxes
SYNTAX_1 = RLE
SYNTAX_2 = IMPLICIT_LITTLE_ENDIAN

[CT_Syntax_List]
SYNTAXES_SUPPORTED = 2 # Number of Syntaxes
SYNTAX_1 = EXPLICIT_LITTLE_ENDIAN
SYNTAX_2 = IMPLICIT_LITTLE_ENDIAN

[Storage_Service_List] lists some standard storage service class services used by Merge DICOM toolkit. The SYNTAX_LIST_N parameter has been added to this example to specify a transfer syntax list for each service. This optional parameter is set to the name of another section in the application profile which lists a group of DICOM transfer syntaxes to be negotiated. When this parameter is not set, the default non-compressed transfers syntaxes (implicit VR little endian, explicit VR little endian, and explicit VR big endian) are negotiated.

The [MR_Syntax_List], [US_Syntax_List], and [CT_Syntax_List] sections each define a separate transfer syntax list for the MR, US, and CT services respectively. Merge DICOM Toolkit currently supports all transfer syntaxes specified in the DICOM standard. The names used for these transfer syntaxes are defined in the System profile parameters table below.

The MCtransferSyntax and MCtransferSyntaxList classes can be used to create dynamic transfer syntax lists or to obtain information from the configuration files. This is discussed in more detail in the Association Management section.

Transfer syntax priority during association negotiation

For server (SCP) applications, the order in which transfer syntaxes are specified in a transfer syntax list dictates the priority Merge DICOM toolkit places on them during association negotiation. For example, in the [US_Syntax_List] specified above, if a client (SCU) proposed the Ultrasound storage service with the RLE compressed transfer syntax and the implicit VR little endian transfer syntax, Merge DICOM toolkit would select the RLE transfer syntax because it was listed first in the transfer syntax list.

When a transfer syntax list is not specified in a service list the priority Merge DICOM Toolkit places on transfer syntaxes during association negotiation is dependant on the hardware platform. On little endian machines (Intel and DEC Alpha based systems) the priority order is: Explicit VR Little Endian, Implicit VR Little Endian, and Explicit VR Big Endian. On big endian machines the priority order is: Explicit VR Big Endian, Explicit VR Little Endian, and Implicit VR Little Endian.

Role negotiation

Merge DICOM toolkit also supports DICOM role negotiation through its service lists. Whereas in previous examples, the same service list could be used for both client (SCU) and server (SCP), these service lists are specific to the role to be negotiated for each service.

[SCU_Service_List]
SERVICES_SUPPORTED = 1 # Services in list
SERVICE_1 = STORAGE_COMMITMENT_PUSH
ROLE_1 = SCU

[SCP_Service_List]
SERVICES_SUPPORTED = 1 # Services in list
SERVICE_1 = STORAGE_COMMITMENT_PUSH
ROLE_1 = SCP

In this case, the [SCU_Service_List] supports the Storage Commitment Push SOP class as an SCU and the [SCP_Service_List] supports the Storage Commitment Push SOP class as an SCP. Merge DICOM toolkit will negotiate the association based on the settings for these roles.

The role for a service can be defined as SCU, SCP, BOTH, or be undefined. The following table contains a complete listing of configurable roles for both requestors and acceptors along with the resultant negotiated roles. Note that in some cases a service will be rejected because the roles being negotiated do not match.

Requestor’s Configured Role Acceptor’s Configured Role Requestor’s Negotiated Role Acceptor’s Negotiated Role
SCU SCP SCU SCP
SCU Rejected Rejected
BOTH SCU SCP
NOT DEFINED SCU SCP
SCP SCP Rejected Rejected
SCU SCP SCU
BOTH SCP SCU
NOT DEFINED Rejected Rejected
BOTH SCP SCU SCP
SCU SCP SCU
BOTH BOTH BOTH
NOT DEFINED SCP SCP
NOT DEFINED SCP SCU SCP
SCU Rejected Rejected
BOTH SCU SCP
NOT DEFINED SCU SCP

Application Profile Sections

The application profile contains the following sections:

Section Description
<remote_application_title> Section describing a remote DICOM Application Entity title(s). The remote Application Entity titles listed here must be 1 to 16 bytes in length with no embedded spaces. Simply, this section is where you list the DICOM applications you want to communicate with.
<service_list_name> List(s) of DICOM services that will be provided by the Application Entities listed in the [<remote_application_title>] sections. The service names listed here must be 1 to 33 bytes in length with no embedded spaces. Simply, this section is where you list the services that are provided by the remote DICOM applications.
<syntax_list_name> List(s) of DICOM transfer syntaxes that will be supported by the services listed in the [<service_list_name>] sections.

Application Profile Parameters

The application profile contains the following parameters:

Parameter Section Description
PORT_NUMBER <remote_application_title> This parameter is the TCP/IP port on which the remote DICOM system listens for connections. The commonly used port number is 104.
HOST_NAME <remote_application_title> This parameter is the name of the remote host as it is known to your TCP/IP system. The parameters value must be 1 to 19 bytes in length with no embedded spaces. NOTE that a numeric internet address may be used: e.g. 192.204.32.1
SERVICE_LIST <remote_application_title> This parameter is the name of a section in the application profile which provides a list of services for which local applications will negotiate when attempting to establish an association. The parameters value names must be 1 to 33 bytes in length with no embedded spaces.

The SERVICE_LIST section of the Application Profile is used to describe the DICOM services that will be negotiated by the listed Application Entity. The parameter values are text strings recognizable by the Merge DICOM toolkit. These strings are defined in detail in message.txt file included in the distribution. The following is a list of currently supported services:

Merge DICOM Service Parameter DICOM Service Class
ACQUISITION_CONTEXT_SR Storage
ADVANCED_BLENDING_PRESENTATION_STATE Storage
ARTERIAL_PULSE_WAVEFORM Storage
AUTOREFRACTION_MEASUREMENTS Storage
BASIC_ANNOTATION_BOX Print Management
BASIC_COLOR_IMAGE_BOX Print Management
BASIC_FILM_BOX Print Management
BASIC_FILM_SESSION Print Management
BASIC_GRAYSCALE_IMAGE_BOX Print Management
BASIC_PRINT_IMAGE_OVERLAY_BOX Print Management
BASIC_STRUCTURED_DISPLAY Storage
BODY_POSITION_WAVEFORM Storage
BREAST_IMAGING_RPI_QUERY Relevant Patient Information Query
BREAST_PROJ_PRESENT Storage
BREAST_PROJ_PROCESS Storage
BREAST_TOMO_IMAGE_STORAGE Storage
C_ARM_PHOTON_ELECTRON_RADIATION Storage
C_ARM_PHOTON_ELECTRON_RADIATION_RECORD Storage
CARDIAC_RPI_QUERY Relevant Patient Information Query
CHEST_CAD_SR Storage
COLON_CAD_SR Storage
COLOR_PALETTE_FIND Query/Retrieve
COLOR_PALETTE_GET Query/Retrieve
COLOR_PALETTE_MOVE Query/Retrieve
COLOR_PALETTE_STORAGE Storage
COMPOSITE_INST_RET_NO_BULK_GET Query/Retrieve
COMPOSITE_INSTANCE_ROOT_RET_GET Query/Retrieve
COMPOSITE_INSTANCE_ROOT_RET_MOVE Query/Retrieve
COMPOSITING_PLANAR_MPR_VOLUMETRIC_PS Storage
COMPREHENSIVE_3D_SR Storage
CONTENT_ASSESSMENT_RESULTS Storage
CORNEAL_TOPOGRAPHY_MAP Storage
CT_DEFINED_PROCEDURE_PROTOCOL Storage
CT_PERFORMED_PROCEDURE_PROTOCOL Storage
DEFINED_PROCEDURE_PROTOCOL_FIND Query/Retrieve
DEFINED_PROCEDURE_PROTOCOL_GET Query/Retrieve
DEFINED_PROCEDURE_PROTOCOL_MOVE Query/Retrieve
DEFORMABLE_SPATIAL_REGISTRATION Storage
DERMOSCOPIC_PHOTOGRAPHY_IMAGE Storage
DETACHED_INTERP_MANAGEMENT Results Management
DETACHED_PATIENT_MANAGEMENT Patient Management
DETACHED_RESULTS_MANAGEMENT Results Management
DETACHED_STUDY_MANAGEMENT Study Management
DETACHED_VISIT_MANAGEMENT Patient Management
DICOMDIR Media Storage
DISPLAY_SYSTEM Display System Management
ELECTROMYOGRAM_WAVEFORM Storage
ELECTROOCULOGRAM_WAVEFORM Storage
ENCAPSULATED_CDA Storage
ENCAPSULATED_MTL Storage
ENCAPSULATED_OBJ Storage
ENCAPSULATED_STL Storage
ENHANCED_CONTINUOUS_RT_IMAGE Storage
ENHANCED_CT_IMAGE Storage
ENHANCED_MR_COLOR_IMAGE Storage
ENHANCED_MR_IMAGE Storage
ENHANCED_PET_IMAGE Storage
ENHANCED_RT_IMAGE Storage
ENHANCED_US_VOLUME Storage
ENHANCED_XA_IMAGE Storage
ENHANCED_XRAY_RADIATION_DOSE_SR Storage
ENHANCED_XRF_IMAGE Storage
EXTENSIBLE_SR Storage
G_P_PERFORMED_PROCEDURE_STEP_RETIRED Study Management
G_P_SCHEDULED_PROCEDURE_STEP_RETIRED Study Management
G_P_WORKLIST_RETIRED Basic Worklist Management
GENERAL_AUDIO_WAVEFORM Storage
GENERAL_RPI_QUERY Relevant Patient Information Query
GENERIC_IMPLANT_TEMPLATE Storage
GENERIC_IMPLANT_TEMPLATE_FIND Query/Retrieve
GENERIC_IMPLANT_TEMPLATE_GET Query/Retrieve
GENERIC_IMPLANT_TEMPLATE_MOVE Query/Retrieve
GRAYSCALE_PLANAR_MPR_VOLUMETRIC_PS Storage
HANGING_PROTOCOL Hanging Protocol Storage
HANGING_PROTOCOL_FIND Hanging Protocol Query/Retrieve
HANGING_PROTOCOL_GET Hanging Protocol Query/Retrieve
HANGING_PROTOCOL_MOVE Hanging Protocol Query/Retrieve
IMAGE_OVERLAY_BOX_RETIRED Print Management
IMPLANT_ASSEMBLY_TEMPLATE Storage
IMPLANT_ASSEMBLY_TEMPLATE_FIND Query/Retrieve
IMPLANT_ASSEMBLY_TEMPLATE_GET Query/Retrieve
IMPLANT_ASSEMBLY_TEMPLATE_MOVE Query/Retrieve
IMPLANT_TEMPLATE_GROUP Storage
IMPLANT_TEMPLATE_GROUP_FIND Query/Retrieve
IMPLANT_TEMPLATE_GROUP_GET Query/Retrieve
IMPLANT_TEMPLATE_GROUP_MOVE Query/Retrieve
IMPLANTATION_PLAN_SR_DOCUMENT Storage
INSTANCE_AVAIL_NOTIFICATION Instance Availability Notification
INTRAOCULAR_LENS_CALCULATIONS Storage
INVENTORY Storage
INVENTORY_CREATION Storage Management
INVENTORY_FIND Query/Retrieve
INVENTORY_GET Query/Retrieve
INVENTORY_MOVE Query/Retrieve
KERATOMETRY_MEASUREMENTS Storage
KEY_OBJECT_SELECTION_DOC Storage
LEGACY_CONVERTED_ENHANCED_CT_IMAGE Storage
LEGACY_CONVERTED_ENHANCED_MR_IMAGE Storage
LEGACY_CONVERTED_ENHANCED_PET_IMAGE Storage
LENSOMETRY_MEASUREMENTS Storage
MACULAR_GRID_THIICKNESS_VOLUME Storage
MAMMOGRAPHY_CAD_SR Storage
MEDIA_CREATION_MANAGEMENT Media Creation Management
MICROSCOPY_BULK_SIMPLE_ANNOTATIONS Storage
MODALITY_WORKLIST_FIND Modality Worklist
MR_SPECTROSCOPY Storage
MULTI_CHANNEL_RESPIRATORY_WAVEFORM Storage
MULTIPLE_VOLUME_RENDERING_VOLUMETRIC_PRESENTATION_STATE Storage
OPHT_VIS_FIELD_STATIC_PERIM_MEAS Storage
OPHTHALMIC_AXIAL_MEASUREMENTS Storage
OPHTHALMIC_OCT_BSCAN_VOLUME_ANALYSIS Storage
OPHTHALMIC_OCT_EN_FACE_IMAGE Storage
OPHTHALMIC_TOMOGRAPHY_IMAGE Storage
OPM_THICKNESS_MAP Storage
PARAMETRIC_MAP Storage
PATIENT_RADIATION_DOSE_SR Storage
PATIENT_ROOT_QR_FIND Query/Retrieve
PATIENT_ROOT_QR_GET Query/Retrieve
PATIENT_ROOT_QR_MOVE Query/Retrieve
PATIENT_STUDY_ONLY_QR_FIND_RETIRED Query/Retrieve
PATIENT_STUDY_ONLY_QR_GET_RETIRED Query/Retrieve
PATIENT_STUDY_ONLY_QR_MOVE_RETIRED Query/Retrieve
PERFORMED_IMAGING_AGENT_ADMINISTRATION_SR Storage
PERFORMED_PROCEDURE_STEP Study Management
PERFORMED_PROCEDURE_STEP_NOTIFY Study Management
PERFORMED_PROCEDURE_STEP_RETRIEVE Study Management
PLANNED_IMAGING_AGENT_ADMINISTRATION_SR Storage
PRESENTATION_LUT Print Management
PRINT_JOB Print Management
PRINT_QUEUE_MANAGEMENT Print Management
PRINTER Print Management
PRINTER_CONFIGURATION Print Management
PROCEDURAL_EVENT_LOGGING Application Event Logging
PROCEDURE_LOG Storage
PRODUCT_CHARACTERISTICS_QUERY Query/Retrieve
PROTOCOL_APPROVAL Storage
PROTOCOL_APPROVAL_FIND Query/Retrieve
PROTOCOL_APPROVAL_GET Query/Retrieve
PROTOCOL_APPROVAL_MOVE Query/Retrieve
PULL_PRINT_REQUEST Print Management
RADIOPHARMACEUTICAL_RADIATION_DOSE_SR Print Management
RAW_DATA Storage
REAL_WORLD_VALUE_MAPPING Storage
REFERENCED_IMAGE_BOX Print Management
REPOSITORY_QUERY Query/Retrieve
RESPIRATORY_WAVEFORM Storage
ROBOTIC_ARM_RADIATION Storage
ROBOTIC_ARM_RADIATION_RECORD Storage
ROUTINE_SCALP_ELECTROENCEPHALOGRAM_WAVEFORM Storage
RT_BEAMS_DELIVERY_INSTRUCTION Storage
RT_BRACHY_APP_SETUP_DELIVERY_INSTR Storage
RT_CONVENTIONAL_MACHINE_VERIFICATION Verification
RT_ION_MACHINE_VERIFICATION Verification
RT_PATIENT_POSITION_ACQUISITION_INSTRUCTION Storage
RT_PHYSICIAN_INTENT Storage
RT_RADIATION_RECORD_SET Storage
RT_RADIATION_SALVAGE_RECORD Storage
RT_RADIATION_SET Storage
RT_RADIATION_SET_DELIVERY_INSTRUCTION Storage
RT_SEGMENT_ANNOTATION Storage
RT_TREATMENT_PREPARATION Storage
SC_MULTIFRAME_GRAYSCALE_BYTE Storage
SC_MULTIFRAME_GRAYSCALE_WORD Storage
SC_MULTIFRAME_SINGLE_BIT Storage
SC_MULTIFRAME_TRUE_COLOR Storage
SEGMENTATION Storage
SEGMENTED_VOLUME_RENDERING_VOLUMETRIC_PRESENTATION_STATE Storage
SIMPLIFIED_ADULT_ECHO_SR Storage
SLEEP_ELECTROENCEPHALOGRAM_WAVEFORM Storage
SPATIAL_FIDUCIALS Storage
SPATIAL_REGISTRATION Storage
SPECTACLE_PRESCRIPTION_REPORT Storage
STANDARD_BASIC_TEXT_SR Storage
STANDARD_BLENDING_SOFTCOPY_PS Storage
STANDARD_COLOR_SOFTCOPY_PS Storage
STANDARD_COMPREHENSIVE_SR Storage
STANDARD_CR Storage
STANDARD_CT Storage
STANDARD_CURVE Storage
STANDARD_DX_PRESENT Storage
STANDARD_DX_PROCESS Storage
STANDARD_ECHO Verification
STANDARD_ENCAPSULATED_PDF Storage
STANDARD_ENHANCED_SR Storage
STANDARD_GRAYSCALE_SOFTCOPY_PS Storage
STANDARD_HARDCOPY_COLOR Storage
STANDARD_HARDCOPY_GRAYSCALE Storage
STANDARD_IO_PRESENT Storage
STANDARD_IO_PROCESS Storage
STANDARD_IVOCT_PRESENT Storage
STANDARD_IVOCT_PROCESS Storage
STANDARD_MG_PRESENT Storage
STANDARD_MG_PROCESS Storage
STANDARD_MODALITY_LUT Storage
STANDARD_MR Storage
STANDARD_NM Storage
STANDARD_NM_RETIRED Storage
STANDARD_OPHTHALMIC_16_BIT Storage
STANDARD_OPHTHALMIC_8_BIT Storage
STANDARD_OVERLAY Storage
STANDARD_PET Storage
STANDARD_PET_CURVE Storage
STANDARD_PRINT_STORAGE Storage
STANDARD_PSEUDOCOLOR_SOFTCOPY_PS Storage
STANDARD_RT_BEAMS_TREAT Storage
STANDARD_RT_BRACHY_TREAT Storage
STANDARD_RT_DOSE Storage
STANDARD_RT_IMAGE Storage
STANDARD_RT_ION_BEAMS_TREAT Storage
STANDARD_RT_ION_PLAN Storage
STANDARD_RT_PLAN Storage
STANDARD_RT_STRUCTURE_SET Storage
STANDARD_RT_TREAT_SUM Storage
STANDARD_SEC_CAPTURE Storage
STANDARD_US Storage
STANDARD_US_MF Storage
STANDARD_US_MF_RETIRED Storage
STANDARD_US_RETIRED Storage
STANDARD_VIDEO_ENDOSCOPIC Storage
STANDARD_VIDEO_MICROSCOPIC Storage
STANDARD_VIDEO_PHOTOGRAPHIC Storage
STANDARD_VL_ENDOSCOPIC Storage
STANDARD_VL_MICROSCOPIC Storage
STANDARD_VL_PHOTOGRAPHIC Storage
STANDARD_VL_SLIDE_MICROSCOPIC Storage
STANDARD_VOI_LUT Storage
STANDARD_WAVEFORM_12_LEAD_ECG Storage
STANDARD_WAVEFORM_AMBULATORY_ECG Storage
STANDARD_WAVEFORM_BASIC_VOICE_AUDIO Storage
STANDARD_WAVEFORM_CARDIAC_EP Storage
STANDARD_WAVEFORM_GENERAL_ECG Storage
STANDARD_WAVEFORM_HEMODYNAMIC Storage
STANDARD_XRAY_ANGIO Storage
STANDARD_XRAY_ANGIO_BIPLANE Storage
STANDARD_XRAY_RF Storage
STEREOMETRIC_RELATIONSHIP Storage
STORAGE_COMMITMENT_PULL Storage Commitment
STORAGE_COMMITMENT_PUSH Storage Commitment
STUDY_COMPONENT_MANAGEMENT Study Management
STUDY_CONTENT_NOTIFICATION Study Content Notification
STUDY_ROOT_QR_FIND Query/Retrieve
STUDY_ROOT_QR_GET Query/Retrieve
STUDY_ROOT_QR_MOVE Query/Retrieve
SUBJ_REFRACTION_MEASUREMENTS Storage
SUBSTANCE_ADMIN_LOGGING Storage
SUBSTANCE_APPROVAL_QUERY Storage
SURFACE_SCAN_MESH Storage
SURFACE_SCAN_POINT_CLOUD Storage
SURFACE_SEGMENTATION Storage
TOMOTHERAPEUTIC_RADIATION Storage
TOMOTHERAPEUTIC_RADIATION_RECORD Storage
TRACTOGRAPHY_RESULTS Storage
UPS_EVENT_SOP Unified Procedure Step Management
UPS_EVENT_SOP_TRIAL_RETIRED Unified Procedure Step Management
UPS_PULL_SOP Unified Procedure Step Management
UPS_PULL_SOP_TRIAL_RETIRED Unified Procedure Step Management
UPS_PUSH_SOP Unified Procedure Step Management
UPS_PUSH_SOP_TRIAL_RETIRED Unified Procedure Step Management
UPS_QUERY_SOP Unified Procedure Step Management
UPS_WATCH_SOP Unified Procedure Step Management
UPS_WATCH_SOP_TRIAL_RETIRED Unified Procedure Step Management
VARIABLE_MODALITY_LUT_SOFTCOPY_PRESENTATION_STATE Storage
VISUAL_ACUITY_MEASUREMENTS Storage
VL_WHOLE_SLIDE_MICROSCOPY_IMAGE Storage
VOI_LUT_BOX Print Management
VOLUME_RENDERING_VOLUMETRIC_PRESENTATION_STATE Storage
WIDE_FIELD_OPHTHALMIC_PHOTO_3D_COORDINATES Print Management
WIDE_FIELD_OPHTHALMIC_PHOTO_STEREOGRAPHIC_PROJ Print Management
XA_DEFINED_PROCEDURE_PROTOCOL Print Management
XA_PERFORMED_PROCEDURE_PROTOCOL Print Management
XA_XRF_GRAYSCALE_SOFTCOPY_PS Storage
XRAY_3D_ANGIO_IMAGE Storage
XRAY_3D_CRANIO_IMAGE Storage
XRAY_RADIATION_DOSE_SR Storage
BASIC_COLOR_PRINT_MANAGEMENT (META_SOP) Print Management
BASIC_GRAYSCALE_PRINT_MANAGEMENT (META_SOP) Print Management
DETACHED_PATIENT_MANAGEMENT_META (META_SOP) Patient Management
DETACHED_RESULTS_MANAGEMENT_META (META_SOP) Results Management
G_P_WORKLIST_MANAGEMENT_META_RETIRED (META_SOP) Basic Worklist Management
PULL_STORED_PRINT_MANAGEMENT (META_SOP) Print Management
REF_COLOR_PRINT_MANAGEMENT (META_SOP) Print Management
REF_GRAYSCALE_PRINT_MANAGEMENT (META_SOP) Print Management
STUDY_MANAGEMENT (META_SOP) Study Management

Transfer syntax lists are contained in the service lists. The following is a list of the currently supported transfer syntaxes:

Merge DICOM Transfer Syntax Parameter Description
DEFLATED_EXPLICIT_LITTLE_ENDIAN Deflated Explicit VR Little Endian
EXPLICIT_BIG_ENDIAN Explicit VR Big Endian
EXPLICIT_LITTLE_ENDIAN Explicit VR Little Endian
HEVC_H265_M10P_LEVEL_5_1 HEVC/H.265 Main 10 Profile / Level 5.1
HEVC_H265_MP_LEVEL_5_1 HEVC/H.265 Main Profile / Level 5.1
IMPLICIT_BIG_ENDIAN Implicit VR Big Endian
IMPLICIT_LITTLE_ENDIAN Implicit VR Little Endian: Default Transfer Syntax for DICOM
JPEG_2000 JPEG 2000, Lossless or Lossy
JPEG_2000_LOSSLESS_ONLY JPEG 2000, Lossless
JPEG_2000_MC JPEG 2000 Part 2 Multi-component Image Compression
JPEG_2000_MC_LOSSLESS_ONLY JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only)
JPEG_BASELINE JPEG Baseline (Process 1): Default Transfer Syntax for Lossy JPEG 8 Bit Image Compression
JPEG_EXTENDED_2_4 JPEG Extended (Process 2 & 4): Default Transfer Syntax for Lossy JPEG 12 Bit Image Compression (Process 4 only)
JPEG_EXTENDED_3_5 JPEG Extended (Process 3 & 5)
JPEG_EXTENDED_HIER_16_18 JPEG Extended, Hierarchical (Process 16 & 18)
JPEG_EXTENDED_HIER_17_19 JPEG Extended, Hierarchical (Process 17 & 19)
JPEG_FULL_PROG_HIER_24_26 JPEG Full Progression, Hierarchical (Process 24 & 26)
JPEG_FULL_PROG_HIER_25_27 JPEG Full Progression, Hierarchical (Process 25 & 27)
JPEG_FULL_PROG_NON_HIER_10_12 JPEG Full Progression, Non-Hierarchical (Process 10 & 12)
JPEG_FULL_PROG_NON_HIER_11_13 JPEG Full Progression, Non-Hierarchical (Process 11 & 13)
JPEG_LOSSLESS_HIER_14 JPEG Lossless, Hierarchical, First-Order Prediction (Process 14 [Selection Value 1]): Default Transfer Syntax for Lossless JPEG Image Compression
JPEG_LOSSLESS_HIER_28 JPEG Lossless, Hierarchical (Process 28)
JPEG_LOSSLESS_HIER_29 JPEG Lossless, Hierarchical (Process 29)
JPEG_LOSSLESS_NON_HIER_14 JPEG Lossless, Non-Hierarchical (Process 14)
JPEG_LOSSLESS_NON_HIER_15 JPEG Lossless, Non-Hierarchical (Process 15)
JPEG_SPEC_HIER_20_22 JPEG Spectral Selection, Hierarchical (Process 20 & 22)
JPEG_SPEC_HIER_21_23 JPEG Spectral Selection, Hierarchical (Process 21 & 23)
JPEG_SPEC_NON_HIER_6_8 JPEG Spectral Selection, Non-Hierarchical (Process 6 & 8)
JPEG_SPEC_NON_HIER_7_9 JPEG Spectral Selection, Non-Hierarchical (Process 7 & 9)
JPEG_LS_LOSSLESS JPEG LS Lossless
JPEG_LS_LOSSY JPEG LS Lossy (Near-Lossless)
MPEG2_MPHL MPEG2 Main Profile / High Level
MPEG2_MPML MPEG2 Main Profile / Main Level
MPEG4_AVC_H264_BDC_HP_LEVEL_4_1 MPEG-4 AVC/H.264 BD-compatible High Profile / Level 4.1
MPEG4_AVC_H264_HP_LEVEL_4_1 MPEG-4 AVC/H.264 High Profile / Level 4.1
MPEG4_AVC_H264_HP_LEVEL_4_2_2D MPEG-4 AVC/H.264 High Profile / Level 4.2 For 2D Video
MPEG4_AVC_H264_HP_LEVEL_4_2_3D MPEG-4 AVC/H.264 High Profile / Level 4.2 For 3D Video
MPEG4_AVC_H264_STEREO_HP_LEVEL_4_2 MPEG-4 AVC/H.264 Stereo High Profile / Level 4.2
PRIVATE_SYNTAX_1 Private transfer syntax 1 with the characteristics specified by the PRIVATE_SYNTAX_1_LITTLE_ENDIAN, PRIVATE_SYNTAX_1_EXPLICIT_VR, and PRIVATE_SYNTAX_1_ENCAPSULATED configuration options.
PRIVATE_SYNTAX_2 Private transfer syntax 2 with the characteristics specified by the PRIVATE_SYNTAX_2_LITTLE_ENDIAN, PRIVATE_SYNTAX_2_EXPLICIT_VR, and PRIVATE_SYNTAX_2_ENCAPSULATED configuration options.
RLE Run length Encoding
SMPTE_ST_2110_20_UNCOMPRESSED_INTERLACED_ACTIVE_VIDEO SMPTE ST 2110-20 Uncompressed Interlaced Active Video
SMPTE_ST_2110_20_UNCOMPRESSED_PROGRESSIVE_ACTIVE_VIDEO SMPTE ST 2110-20 Uncompressed Progressive Active Video
SMPTE_ST_2110_30_PCM_DIGITAL_AUDIO SMPTE ST 2110-30 PCM Digital Audio

System Profile

The Merge DICOM System Profile (usually called mergecom.pro) contains configuration parameters for the DICOM Toolkit Library itself. The name and location of this file are specified in the [MergeCOM3] section of the Merge DICOM initialization file.

Many of these parameters should never need to be modified by the user, including low-level protocol settings such as time-outs. Only the parameters that should be understood by every user of the toolkit are discussed here; for a description of all parameters, see the tables below.

The following are a few notes to keep in mind concerning the System Profile.
- You must specify your own unique DICOM Implementation Class UID and place it in this file along with an optional Implementation Version. These need to be documented in your DICOM conformance statement.
- There are several exception options specified at both the association and DIMSE levels of DICOM communication. You should not have to modify these options in normal circumstances and doing so could make your application non DICOM conformant.
- The DICOM Upper Layer section network time-outs can be modified. This is useful on slower or less-predictable networks (e.g. WAN’s).
- The section of the System Profile dealing with transport parameters is important. This is where you specify the TCP/IP listen port for a DICOM server (SCP) application.

Most importantly, you must place the license number you received when you purchased the toolkit in the [ASSOC_PARMS] section of the system profile. For example, if the license you received with your toolkit was DA53-31D34 you would need to set it in the [ASSOC_PARMS] section as follows:

[ASSOC_PARMS]
LICENSE = DA53-31D34
IMPLEMENTATION_CLASS_UID = 2.16.840.1.113669.2.1.2
IMPLEMENTATION_VERSION = MyApp_v2.3.4
ACCEPT_MUTLPLE_PRES_CONTEXTS = Yes

The toolkit sample applications, and your own applications that use the DICOM Toolkit Library will not work without a valid license number.

The above example of the [ASSOC_PARMS] section of the system profile also contains example implementation class UID and implementation version configuration values. The implementation class UID is intended by the DICOM standard to be unique for major revisions of an application entity. The implementation version is intended to be unique for the minor revisions of an application entity. These configuration values are used during association negotiation by Merge DICOM toolkit and are intended to aid in tracking versions of applications in the field.

The ACCEPT_MULTIPLE_PRES_CONTEXTS configuration value is used by server (SCP) applications. This value determines if multiple presentation contexts can be negotiated for a single DICOM Service. This option is discussed below.

As mentioned earlier, a listen port must be identified for your server AE. Port 104 is the standard DICOM listen port. This, along with the number of simultaneous connections you wish your server to support, is specified in the [TRANSPORT_PARMS] section. MAX_PENDING_CONNECTIONS specifies the number of outstanding connection requests that can be queued before they are serviced. This setting does not limit the number of actual connections the toolkit can handle simultaneously. The number of simultaneous incoming or outgoing connections is limited only by the local system's available resources. If an application intends to limit the number of simultaneous connections, it must implement the logic to do so.

[TRANSPORT_PARMS]
TCPIP_LISTEN_PORT = 104
MAX_PENDING_CONNECTIONS = 5

An important section of the System Profile is the [MESSAGE_PARMS]section:

[MESSAGE_PARMS]
LARGE_DATA_STORE = FILE # | MEM Default = FILE
LARGE_DATA_SIZE = 200
OBOW_BUFFER_SIZE = 4096
DICTIONARY_FILE = /users/mc3adv/mrgcom3.dct
MSG_INFO_FILE = /users/mc3adv/mrgcom3.msg
TEMP_FILE_DIRECTORY = /users/mc3adv/tmp_files/

Dealing with large data

The LARGE_DATA_STORE parameter informs the toolkit where it should store large data; either in memory, or in temporary files on disk. Large data is defined as a value for an attribute larger than LARGE_DATA_SIZE bytes.

If you are running your process on a resource rich system that supplies plenty of physical and virtual memory, you should select LARGE_DATA_STORE = MEM to improve the performance. On resource poor systems or the messages the application processes contain very large values, LARGE_DATA_STORE = FILE should be used to avoid "out of memory" conditions. In this case, the DICOM Toolkit will manage the large data in temporary files located in the TEMP_FILE_DIRECTORY you specify.

Custom Value Storage

Large data that is of value representation OB (Other string of Bytes) or OW (Other string of 16-bit Words) or OF (Other Float String) is treated specially by the toolkit. Pixel Data, Curves, and Overlays are composed of this type of data. You can let the toolkit manage OB/OW/OL data for you like any other large data, or register your own value storage to deal with such data as it is being received or transmitted over the network. The use of custom value storage is covered in the "Developing DICOM applications" section.

The OBOW_BUFFER_SIZE is used to tell the toolkit what size ‘chunks’ in bytes of OB/OW/OF data it should read in before either writing the data to a temporary file or passing it to your Callback Class. Choosing a large number for OBOW_BUFFER_SIZE means less time spent by your application process writing to temporary files or making callbacks, but results in a larger process size. If you need to use temporary files or callbacks, you should tune this parameter to maximize performance within the constraints of your runtime environment.

The DICTIONARY_FILE parameter specifies the location and name of the DICOM Data Dictionary used by the toolkit. If the path specified by this setting is relative the toolkit considers it relative to the location of the toolkit's initialization file.

Another binary file supplied with the toolkit is the message info file. This file contains binary encoded message object models and is accessed when the toolkit validates a message. The message info file is a binary file supplied with your toolkit with the default name of mrgcom3.msg. The MSG_INFO_FILE parameter specifies the location and name of the message info file.

It is often useful to capture the raw data that is transmitted across the network to help determine exactly what each side of an association is sending. Network sniffer programs are often used to capture this data, but they are often not useful when the data is being transmitted over a secure network connection, as the data is often encrypted. Merge DICOM toolkit provides a network capture facility that will capture network data as it is sent or received. The data that is captured to one or more files and is formatted such that it can be analyzed using the MergeDPM© utility.

Refer to the table below for a description of the configuration parameters that are used to configure the network capture facility. They are included in the [TRANSPORT_PARMS] section.

The following 6 tables contain the lists of parameters supported in each section of the system profile:

[ASSOC_PARMS] section of system profile parameters
Name Description
ACCEPT_ANY_APPLICATION_TITLE † If set to YES, the remote system need not specify a correct DICOM application title when requesting an association. If set to NO a correct application title must be used. When this value is set to YES, the toolkit will report the remote application as connecting to the first application registered.

DEFAULT: NO
ACCEPT_ANY_CONTEXT_NAME † If set to YES, the remote system need not specify the LOCAL_APPL_CONTEXT_NAME when requesting an association. If set to NO, the correct context name must be used.

DEFAULT: NO
ACCEPT_ANY_HOSTNAME If set to YES, the toolkit will not check if applications connecting to an SCP can have their hostname resolved through the SCP’s hostfile or domain name server. If set to NO, the toolkit will automatically reject associations from unknown hosts.

DEFAULT: NO
ACCEPT_ANY_PRESENTATION_CONTEXT † If set to YES, the toolkit will not validate that the presentation context ID contained in a message’s PDU header information matches the ID of the presentation context negotiated for the type of message contained in the PDU. If set to NO, the toolkit will abort associations when these values do not match.

DEFAULT: NO
ACCEPT_DIFFERENT_IC_UID † If set to NO, the remote system must specify the local IMPLEMENTATION_CLASS_UID when requesting an association. If set to YES, a different implementation class UID may be used.

DEFAULT: YES
ACCEPT_DIFFERENT_VERSION † If set to NO, the remote system must specify the local IMPLEMENTATION_VERSION when requesting an association. If set to YES, a different implementation version may be used.

DEFAULT: YES
ACCEPT_LIST_OF_APPLICATION_TITLES List of AE titles which the remote system might use when requesting an association. The parameters line should contain all AE titles separated by one of predefined delimiters: ',' '\' '/' ';'. The length of each AE title can not exceed 16 characters.

Example: ACCEPT_LIST_OF_APPLICATION_TITLES = MERGE_STORE_SCP/MERGE_STORE_SCU/MERGE_STORE_RQ

DEFAULT: <none>
ACCEPT_MULTIPLE_PRES_CONTEXTS If set to YES, SCP applications will allow multiple presentation contexts to be negotiated for a single DICOM service. If set to NO, an SCP will only accept a single presentation context for a DICOM service.

DEFAULT: YES
ACCEPT_RELATED_GENERAL_SERVICES This parameter sets the Merge DICOM Toolkit behavior in regards to support for DICOM Supplement 90. Supplement 90 defines a method for association requestors to specify the generalized version of a SOP Class. When set to YES, Merge DICOM Toolkit will allow association acceptors to accept a presentation context whose generalized SOP Class is supported; however, the customized SOP Class is not specifically supported.

DEFAULT: NO
ACCEPT_STORAGE_SERVICE_CONTEXTS This parameter sets the Merge DICOM Toolkit behavior in regards to support for DICOM Supplement 90. When set to YES, Merge DICOM Toolkit will accept any presentation context which is defined as a Storage Service Class SOP Class.

DEFAULT: NO
ALLOW_EMPTY_PDV_LENGTH The DICOM standard specifies that PDVs shall not be sent without any content in the fragment. The toolkit however can send and accept empty PDVs. To enforce the standard requirement, this setting should be set to No.

DEFAULT: YES
AUTO_ECHO_SUPPORT If set to YES, the toolkit automatically handles C-ECHO requests when the application doesn't explicitly include STANDARD_ECHO in its supported service list. If set to NO, the toolkit rejects C-ECHO requests when the application doesn't explicitly include STANDARD_ECHO in its supported service list.

DEFAULT: YES
DEFLATED_EXPLICIT_LITTLE_ENDIAN_SYNTAX This value defines the UID of the Deflated explicit VR little endian transfer syntax.

DEFAULT: 1.2.840.10008.1.2.1.99
DESIRED_LAST_PDU_SIZE This parameter allows the user to configure the length of the last PDU sent. This allows for interoperability with other DICOM implementations that may be intolerant with either a zero or two byte final PDU length. The default value used is 8.

Note: Starting with release 3.5.1, this configuration option has a limited effect.

EXPLICIT_BIG_ENDIAN_SYNTAX This value defines the UID of the explicit VR big endian transfer syntax.

DEFAULT: 1.2.840.10008.1.2.2
EXPLICIT_LITTLE_ENDIAN_SYNTAX This value defines the UID of the explicit VR little endian transfer syntax.

DEFAULT: 1.2.840.10008.1.2.1
HARD_CLOSE_TCP_IP_CONNECTION This parameter specifies how TCP/IP connections are closed by the toolkit. When set to YES, TCP/IP connections are instantaneously closed with an RST packet. When set to NO, TCP/IP connections are closed gracefully with a FIN packet. Note, that in the NO case the toolkit must wait for an operating system dependent amount of time for the response to the FIN packet.

DEFAULT: YES
HEVC_H265_M10P_LEVEL_5_1_SYNTAX This value defines the UID for HEVC/H.265 Main 10 Profile / Level 5.1 transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.108
HEVC_H265_MP_LEVEL_5_1_SYNTAX This value defines the UID for HEVC/H.265 Main Profile / Level 5.1 transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.107
IMPLEMENTATION_CLASS_UID The DICOM Implementation Class UID (as specified in your DICOM conformance statement).
IMPLEMENTATION_VERSION The Implementation Version Number (as specified in your DICOM conformance statement).
IMPLICIT_BIG_ENDIAN_SYNTAX The implicit big endian transfer syntax is not defined by the DICOM standard. This value is provided to supply compatibility with private implementations.

DEFAULT: <none>
IMPLICIT_LITTLE_ENDIAN_SYNTAX The implicit little endian transfer syntax is the default network transfer syntax of the DICOM standard. The implicit little endian transfer syntax must always be defined.

DEFAULT: 1.2.840.10008.1.2
JPEG_2000_LOSSLESS_ONLY_SYNTAX This value defines the UID for JPEG 2000, Lossless transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.90
JPEG_2000_MC_LOSSLESS_ONLY_SYNTAX This value defines the UID for JPEG 2000 Part 2 Multi-component Image Compression (Lossless Only) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.92
JPEG_2000_MC_SYNTAX This value defines the UID for JPEG 2000 Part 2 Multi-component Image Compression transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.93
JPEG_2000_SYNTAX This value defines the UID for JPEG 2000 transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.91
JPEG_BASELINE_SYNTAX This value defines the UID for JPEG Baseline (Process 1) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.50
JPEG_EXTENDED_2_4_SYNTAX This value defines the UID for JPEG Extended (Process 2 & 4) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.51
JPEG_EXTENDED_3_5_SYNTAX This value defines the UID for JPEG Extended (Process 3 & 5) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.52
JPEG_EXTENDED_HIER_16_18_SYNTAX This value defines the UID for JPEG Extended, Hierarchical (Process 16 & 18) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.59
JPEG_EXTENDED_HIER_17_19_SYNTAX This value defines the UID for JPEG Extended, Hierarchical (Process 17 & 19) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.60
JPEG_FULL_PROG_HIER_24_26_SYNTAX This value defines the UID for JPEG Full Progression, Hierarchical (Process 24 & 26) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.63
JPEG_FULL_PROG_HIER_25_27_SYNTAX This value defines the UID for JPEG Full Progression, Hierarchical (Process 25 & 27) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.64
JPEG_FULL_PROG_NON_HIER_10_12_SYNTAX This value defines the UID for JPEG Full Progression, Non-Hierarchical (Process 10 & 12) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.55
JPEG_FULL_PROG_NON_HIER_11_13_SYNTAX This value defines the UID for JPEG Full Progression, Non-Hierarchical (Process 11 & 13) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.56
JPEG_LOSSLESS_HIER_14_SYNTAX This value defines the UID for JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14, Selection Value 1) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.70
JPEG_LOSSLESS_HIER_28_SYNTAX This value defines the UID for JPEG Lossless, Hierarchical (Process 28) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.65
JPEG_LOSSLESS_HIER_29_SYNTAX This value defines the UID for JPEG Lossless, Hierarchical (Process 29) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.66
JPEG_LOSSLESS_NON_HIER_14_SYNTAX This value defines the UID for JPEG Lossless, Non-Hierarchical (Process 14) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.57
JPEG_LOSSLESS_NON_HIER_15_SYNTAX This value defines the UID for JPEG Lossless, Non-Hierarchical (Process 15) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.58
JPEG_LS_LOSSLESS_SYNTAX This value defines the UID for JPEG LS Lossless transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.80
JPEG_LS_LOSSY_SYNTAX This value defines the UID for JPEG LS Lossy (Near Lossless) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.81
JPEG_SPEC_HIER_20_22_SYNTAX This value defines the UID for JPEG Spectral Selection, Hierarchical (Process 20 & 22) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.61

JPEG_SPEC_HIER_21_23_SYNTAX This value defines the UID for JPEG Spectral Selection, Hierarchical (Process 21 & 23) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.62
JPEG_SPEC_NON_HIER_6_8_SYNTAX This value defines the UID for JPEG Spectral Selection, Non Hierarchical (Process 6 & 8) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.53
JPEG_SPEC_NON_HIER_7_9_SYNTAX This value defines the UID for JPEG Spectral Selection, Non Hierarchical (Process 7 & 9) transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.54
JPIP_REFERENCED_DEFLATE_SYNTAX This value defines the UID for JPIP Referenced Deflate transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.95
JPIP_REFERENCED_SYNTAX This value defines the UID for JPIP Referenced transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.94
LICENSE The Merge DICOM Toolkit license number that was supplied when the toolkit was purchased.
LOCAL_APPL_CONTEXT_NAME The DICOM Application Context Name (UID) (as specified in the DICOM Standard).

DEFAULT: 1.2.840.10008.3.1.1.1
MPEG2_MPHL_SYNTAX This value defines the UID for MPEG2 Main Profile @ High Level transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.101
MPEG2_MPML_SYNTAX This value defines the UID for MPEG2 Main Profile @ Main Level transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.100
MPEG4_AVC_H264_BDC_HP_LEVEL_4_1_SYNTAX This value defines the UID for MPEG-4 AVC/H.264 BD compatible High Profile / Level 4.1 transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.103
MPEG4_AVC_H264_HP_LEVEL_4_1_SYNTAX This value defines the UID for MPEG-4 AVC/H.264 High Profile / Level 4.1 transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.102
MPEG4_AVC_H264_HP_LEVEL_4_2_2D_SYNTAX This value defines the UID for MPEG-4 AVC/H.264 High Profile / Level 4.2 For 2D Video transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.104
MPEG4_AVC_H264_HP_LEVEL_4_2_3D_SYNTAX This value defines the UID for MPEG-4 AVC/H.264 High Profile / Level 4.2 For 3D Video transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.105
MPEG4_AVC_H264_STEREO_HP_LEVEL_4_2_SYNTAX This value defines the UID for MPEG-4 AVC/H.264 Stereo High Profile / Level 4.2 transfer syntax.

DEFAULT: 1.2.840.10008.1.2.4.106
PDU_MAXIMUM_LENGTH * The maximum size of Protocol Data Units that can be received by this Merge DICOM Toolkit implementation. This value will also place a limit on how large PDU values being sent can be. Setting this so that a PDU fits within an even multiple of the default TCP/IP MSS (Maximum Segment Size) of 1460 will optimize network performance. Note that 6 bytes for the PDU header must be added to the configured maximum PDU size when calculating a multiple of the MSS.

Note also to see the TCPIP_SEND_BUFFER_SIZE and TCPIP_RECEIVE_BUFFER_SIZE configuration values for improving performance.

Example: (1460*44)-6 = 64234 PDU Size

DEFAULT: 64234
MINIMUM: 4K
MAXIMUM: NONE
PRIVATE_SYNTAX_1_ENCAPSULATED When set to YES, Merge DICOM Toolkit will interpret private transfer syntax 1 as having its pixel data tag (7fe0,0010) being encoded as undefined length in the same manner as the JPEG and RLE transfer syntaxes are encoded.

DEFAULT: NO
PRIVATE_SYNTAX_1_EXPLICIT_VR When set to YES, Merge DICOM Toolkit will interpret private transfer syntax 1 as being encoded in explicit VR format.

DEFAULT: YES
PRIVATE_SYNTAX_1_LITTLE_ENDIAN When set to YES, Merge DICOM Toolkit will interpret private transfer syntax 1 as being encoded in little endian format.

DEFAULT: YES
PRIVATE_SYNTAX_1_SYNTAX The unique identifier (UID) Merge DICOM Toolkit will use to identify private transfer syntax 1. When this value is set to “”, private transfer syntax support is shut off.

DEFAULT: <none>
PRIVATE_SYNTAX_2_ENCAPSULATED When set to YES, Merge DICOM Toolkit will interpret private transfer syntax 2 as having its pixel data tag (7fe0,0010) being encoded as undefined length in the same manner as the JPEG and RLE transfer syntaxes are encoded.

DEFAULT: NO
PRIVATE_SYNTAX_2_EXPLICIT_VR When set to YES, Merge DICOM Toolkit will interpret private transfer syntax 2 as being encoded in explicit VR format.

DEFAULT: YES
PRIVATE_SYNTAX_2_LITTLE_ENDIAN When set to YES, Merge DICOM Toolkit will interpret private transfer syntax 2 as being encoded in little endian format.

DEFAULT: YES
PRIVATE_SYNTAX_2_SYNTAX The unique identifier (UID) Merge DICOM Toolkit will use to identify private transfer syntax 2. When this value is set to “”, private transfer syntax support is shut off.

DEFAULT: <none>
RLE_SYNTAX This value defines the UID of the RLE Lossless transfer syntax.

DEFAULT: 1.2.840.10008.1.2.5
SMPTE_ST_2110_20_UNCOMPRESSED_INTERLACED_ACTIVE_VIDEO_SYNTAX This value defines the UID for SMPTE ST 2110-20 Uncompressed Interlaced Active Video transfer syntax.

DEFAULT: 1.2.840.10008.1.2.7.2
SMPTE_ST_2110_20_UNCOMPRESSED_PROGRESSIVE_ACTIVE_VIDEO_SYNTAX This value defines the UID for SMPTE ST 2110-20 Uncompressed Progressive Active Video transfer syntax.

DEFAULT: 1.2.840.10008.1.2.7.1
SMPTE_ST_2110_30_PCM_DIGITAL_AUDIO_SYNTAX This value defines the UID for SMPTE ST 2110-30 PCM Digital Audio transfer syntax.

DEFAULT: 1.2.840.10008.1.2.7.3
† These options allow for non-standard DICOM operations. Such exceptions, if used, should be noted in your DICOM conformance statement.
* Performance tuning.

[DIMSE_PARMS] section of system profile parameters
Name Description
INITIATOR_NAME † The DICOM standard has retired the old ACR/NEMA Initiator Name attribute in command messages. To generate such an attribute in command messages, specify an initiator name. <none> means do not put initiator name in messages.

DEFAULT: <none>
RECEIVER_NAME † The DICOM standard has retired the old ACR/NEMA Receiver Name attribute in command messages. To generate such an attribute in command messages, specify a receiver name. <none> means do not put receiver name in messages.

DEFAULT: <none>
SEND_ECHO_PRIORITY † The DICOM standard has retired the message priority attribute in echo command messages. To generate such an attribute in command messages, specify YES. To NOT use message priority in echo messages, specify NO.

DEFAULT: NO
SEND_LENGTH_TO_END † The DICOM standard has retired the old Group-Length-To-End attribute in command messages. To generate such an attribute in command messages, specify YES. If you do not want to generate Group Length To End, specify NO.

DEFAULT: NO
SEND_MSG_ID_RESPONSE † The DICOM standard has retired the message ID attribute in response command messages. To generate such an attribute in command messages, specify YES. To NOT use message ID in response messages, specify NO.

DEFAULT: NO
SEND_RECOGNITION_CODE † The DICOM standard has retired the old Recognition Code attribute in command messages. To generate such an attribute in command messages, specify YES. If you do not want to generate such an attribute, specify NO.

DEFAULT: NO
SEND_RESPONSE_PRIORITY † The DICOM standard has retired the message priority attribute in response messages. To generate such an attribute in response messages, specify YES. To NOT use message priority in response messages, specify NO.

DEFAULT: NO
SEND_SOP_CLASS_UID † Certain DICOM service classes demand that the affected SOP class UID be present in the message. To prevent the library from ensuring that this is done, specify NO. To ensure that Affected SOP class UID is present, specify YES.

DEFAULT: YES
SEND_SOP_INSTANCE_UID † Certain DICOM service classes demand that the affected SOP instance UID be present in the message. To prevent the library from ensuring that this is done, specify NO. To ensure that Affected SOP instance UID is present, specify YES.

DEFAULT: YES
† These options allow for non-standard DICOM operations. Such exceptions, if used, should be noted in your DICOM conformance statement.

[DUL_PARMS] section of system profile parameters
Name Description
ARTIM_TIMEOUT The number of seconds to use as a time out waiting for an association request or waiting for the peer to shut down an association.

DEFAULT: 30
ASSOC_REPLY_TIMEOUT The number of seconds to wait for a reply to an associate request.

DEFAULT: 15
CONNECT_TIMEOUT The number of seconds to wait for a network connect to be accepted.

DEFAULT: 15
INACTIVITY_TIMEOUT The number of seconds to wait in between packets of data received over the network after the initial packet of data in a message is received. Used by read-to-stream methods.

DEFAULT: 15
INSURE_EVEN_UID_LENGTH † Set to NO, if odd-length UIDs in PDU’s should NOT be padded with a NULL to ensure even length unique Ids. Set to YES to ensure even UIDs in PDUs.

DEFAULT: NO
RELEASE_TIMEOUT The number of seconds to wait for a reply to an associate release.

DEFAULT: 15
WRITE_TIMEOUT The number of seconds to wait for a network write to be accepted.

DEFAULT: 15
† These options allow for non-standard DICOM operations. Such exceptions, if used, should be noted in your DICOM conformance statement.

[MEDIA_PARMS] section of system profile parameters
Name Description
DICOMDIR_STREAM_STORAGE When set to yes, DICOMDIRs read in leave their directory records internally in “stream” format and are not parsed until the directory record is referenced. This can greatly reduce memory usage when reading in large DICOMDIRs when the entire DICOMDIR is not referenced.

DEFAULT: NO
EXPORT_GROUP_LENGTHS_TO_MEDIA * When set to NO, do not write group length attributes with MC_Write_File() and MC_Write_File_By_Callback().

DEFAULT: YES
EXPORT_PRIVATE_ATTRIBUTES_TO_MEDIA When set to NO, disable the exporting of private attributes to DICOM media files.

DEFAULT: YES
EXPORT_UN_VR_TO_MEDIA When set to NO, disable the exporting of attributes with a VR of UN to DICOM media files.

DEFAULT: YES
EXPORT_UNDEFINED_LENGTH_SQ_IN_DICOMDIR * When set to NO, DICOMDIRs files are created with their sequence attributes having defined lengths. Setting this option to Yes will increase performance.

DEFAULT: YES
* Performance tuning.

[MESSAGE_PARMS] section of system profile parameters
Name Description
ALLOW_COMMA_IN_DS_FL_FD_STRINGS When set to Yes, a comma or a period will be allowed String values for attributes with a VR of DS, FL or FD. When set to No, only a period will be acceptable as a decimal separator. Note that the toolkit will always ensure that DS attributes use a period decimal separator when streaming to the network or to a file, regardless of current locale settings.

DEFAULT: NO
ALLOW_INVALID_PRIVATE_ATTRIBUTES When reading messages or file objects, this parameter specifies if private attributes encoded in an invalid format should be ignored or parsed.

DEFAULT: NO
ALLOW_INVALID_PRIVATE_CREATOR_CODES When reading messages or file objects, this parameter specifies if private creator codes encoded with invalid characters should be ignored or parsed.

DEFAULT: NO
ALLOW_OUT_OF_RANGE_BITS_JPEG_LOSSLESS During decompression of JPEG lossless images, the Pegasus decompressor may discover that the original compressor had failed to mask off the out-of-range bits for the image bit depth. However, if all other lossless JPEG computations are correct, the original image, including such incorrect out-of-range bits, can be losslessly recovered. The Pegasus decompressor will return a warning status, along with the fully decoded image.

If this flag is set by the application, the out-of-range bits in output pixels will not be masked off, but returned in the decoded image. Without this flag, out-of-range bits will be masked off to keep pixel values in range.

DEFAULT: NO
ATT_00081190_USE_UT_VR In the 2014b edition of the DICOM Standard, the value representation of attribute (0008,1190) Retrieve URL was changed from UT to the newly introduced UR. For backward compatibility, this parameter specifies that, when reading messages or file objects, the attribute is expected to have the old UT value representation.

DEFAULT: NO
ATT_00287FE0_USE_UT_VR In the 2014b edition of the DICOM Standard, the value representation of attribute (0028,7FE0) Pixel Data Provider URL was changed from UT to the newly introduced UR. For backward compatibility, this parameter specifies that, when reading messages or file objects, the attribute is expected to have the old UT value representation.

DEFAULT: NO
ATT_0040E010_USE_UT_VR In the 2014b edition of the DICOM Standard, the value representation of attribute (0040,E010) Retrieve URI was changed from UT to the newly introduced UR. For backward compatibility, this parameter specifies that, when reading messages or file objects, the attribute is expected to have the old UT value representation.

DEFAULT: NO
ATT_0074100A_USE_ST_VR In the 2014b edition of the DICOM Standard, the value representation of attribute (0074,100A) Contact URI was changed from ST to the newly introduced UR. For backward compatibility, this parameter specifies that, when reading messages or file objects, the attribute is expected to have the old ST value representation.

DEFAULT: NO
CALCULATE_DEFINED_LENGTH_FOR_CB This parameter is applied when a registered callback function expects the data length to be provided to it and the data length is undefined. If the parameter is set to No, the undefined length will be passed as is to the callback function. If the parameter value is Yes, the toolkit will calculate the actual value of the data length before passing it tot the callback function.

DEFAULT: NO
CALLBACK_MIN_DATA_SIZE When using a value storage object to store large data such as pixel data, this option specifies the minimum size of value for which the callback function should be used. This option was specifically added so pixel data contained in icons are not managed with a callback function.

DEFAULT: 1
COMPRESSION_ALLOW_FRAGS Configuration Parameter for the standard (default) compressor. The Pegasus libraries allow compressed image data to be returned as it continues to compress more image data. This may result in an image frame having one or more fragments. This is perfectly legal, however some viewers may not be able to display the image if they do not support multiple fragments per frame.

DEFAULT: YES
COMPRESSION_CHROM_FACTOR Configuration Parameter for the standard (default) compressor. Values 0 through 255. The chrominance compression factor is used to adjust the default chrominance quantization table values. When ChromFactor is 32, the default chrominance quantization table values are used as is. A value of 255 corresponds to high compression, low quality.

DEFAULT: 32
COMPRESSION_J2K_LOSSY_QUALITY Configuration Parameter for the standard (default) compressor. When JPEG_2000 with COMPRESSION_WHEN_J2K_USE_LOSSY = Yes, and COMPRESSION_J2K_LOSSY_USE_QUALITY = Yes, a quality can be specified. Valid values are 1 to 10, 1 being highest quality image.

DEFAULT: 1
COMPRESSION_J2K_LOSSY_RATIO Configuration Parameter for the standard (default) compressor. When JPEG_2000 with COMPRESSION_WHEN_J2K_USE_LOSSY = Yes, and COMPRESSION_J2K_LOSSY_USE_QUALITY = No, a ratio can be specified. The compressor attempts to reduce the image size to 1/COMPRESSION_J2K_LOSSY_RATIO.

DEFAULT: 10
COMPRESSION_J2K_LOSSY_USE_QUALITY Configuration Parameter for the standard (default) compressor. When JPEG_2000 with COMPRESSION_WHEN_J2K_USE_LOSSY = Yes, this indicates which metric should be used for lossy compression, ratio or quality.

DEFAULT: YES
COMPRESSION_LUM_FACTOR Configuration Parameter for the standard (default) compressor. Values 0 through 255. 0 is the highest quality, giving a quantization table of all 1’s. 32 corresponds to the standard quantization tables. For values between 0 and 128, the standard tables are scaled linearly. For values between 128 and 255, the standard tables are scaled non-linearly and the compression increases (and the quality decreases) by a very large amount.

DEFAULT: 32
COMPRESSION_RGB_TRANSFORM_FORMAT This parameter allows the user to select the output format when doing Lossy JPEG compression of RGB images. The value can be set to YBR_FULL or YBR_FULL_422 to specifiy what photometric interpretion Merge DICOM Toolkit should compress into when compressing RGB images.

DEFAULT: YBR_FULL_422
COMPRESSION_USE_HEADER_QUERY If set to YES, it instructs the toolkit to give precedence to the image parameters (rows, columns, etc.) from the JPEG header, in case disagreement is suspected between the the DICOM header the JPEG header. If set to NO, the DICOM header will be used.

DEFAULT: NO
COMPRESSION_WHEN_J2K_USE_LOSSY Configuration Parameter for the standard (default) compressor. When JPEG_2000 is used as a transfer syntax, this could mean either lossy or lossless compression. This parameter specifies the intended syntax.

DEFAULT: No
CREATE_OFFSET_TABLE This parameter specifies if an offset table is created when MCattributeSet.duplicate() is used to compress a DICOM message or file. It also specifies if an offset table is created when the MCattributeSet.addEncapsulatedFrame() method is used.

DEFAULT: Yes
DECODER_TAG_FILTER Specifies the list of tags to be ignored when reading DICOM files or messages. The values are separated by commas and can be specified in different formats:
  • Single tag, e.g.: 00080020
  • Tag range, e.g.: 00080020-000800FF
  • Single group, e.g.: G0020
  • Group range, e.g: G0020-G0022
  • All private as: PRIVATE
All ranges are inclusive, meaning that G0020-G0022 will filter groups 20 and 22.

DEFAULT: (empty)
DECODER_PRIVATE_TAG_WHITELIST Specifies the list of private tags to be allowed during reading DICOM files or messages. The values are separated by commas and can be specified in different formats:
  • Single tag, e.g.: 00090001
  • Tag range, e.g.: 00090000-000900FF
  • Single group, e.g.: G0021
  • Group range, e.g.: G0021-G0025
All ranges are inclusive, meaning that G0021-G0025 will allow all private groups in the range including 21 and 25.

DEFAULT: (empty)
DEFLATE_ALLOW_FLUSH Allows deflate to flush data occasionally to limit buffering.

DEFAULT: Yes
DEFLATE_COMPRESSION_LEVEL Allows the compression level of deflate to be specified when using deflated explicit VR little endian transfer syntax. 0 is no compression, 1 is fastest, and 9 compresses best.

DEFAULT: -1
DICTIONARY_ACCESS This parameter specifies whether or not the DICOM dictionary is to be loaded into memory or accessed from the dictionary file. FILE means access information directly from the dictionary file. MEM means load the dictionary into memory and access it there.

Note: Starting with the 3.5.1 Merge DICOM Toolkit release, dictionary access is always memory based and can no longer be file based. This option is now ignored.

DEFAULT: MEM
DICTIONARY_FILE This parameter specifies the name (path) of the DICOM dictionary. An absolute or relative path may be specified.

The path to the file can also be specified using environment variables (including the pseudo environment variable MC3INIDIR which does not need to be set as the toolkit will resolve it internally to the directory where the merge.ini file resides).

Unicode paths can now be specified through the environment variables. Both Windows style (%) and Unix style ($) notations for the environment variables are accepted.

Note: This parameter is ignored if the dictionary has been pre-compiled.

DEFAULT: ../mc3msg/mrgcom3.dct
DUPLICATE_ENCAPSULATED_ICON When duplicating to an encapsulated transfer syntax, this configuration value specifies whether an ICON IMAGE SEQUENCE should also be encapsulated.

DEFAULT: NO
ELIMINATE_ITEM_REFERENCES * This parameter specifies the behavior of the message/item/file handling methods MCattributeSet.dispose() and MCattributeSet.clear(). If this parameter is set to YES, the above methods will search for references in every currently open object to delete when they encounter an item to free within an object.

DEFAULT: NO
EMPTY_PRIVATE_CREATOR_CODES If set to NO, private creator codes contained in messages are not emptied when the MC_Empty_Message() or MC_Empty_File() function calls are made.

Note: This setting has no effect in the Java version of the Merge DICOM Toolkit.

DEFAULT: YES
EXPLICIT_VR_TO_UN_FOR_LENGTH_GT_64K If set to YES, the toolkit will allow encoding in explicit VR of data elements whose VR is none of OB, OW, OD, OF, SQ or UT and whose value length exceeds 65534 bytes by effectively changing the VR to UN (as per CP-1066). If set to NO, the attempt to encode such date elements will result in an MC_INVALID_LENGTH_FOR_VR error.

DEFAULT: NO
EXPORT_EMPTY_PRIVATE_CREATOR_CODES If set to NO it prevents the toolkit from exporting private creator data elements which don't have any private attributes in the private block. If set to YES, exporting private creator data elements with empty private blocks is allowed.

DEFAULT: YES
EXPORT_GROUP_LENGTHS_TO_NETWORK * When set to NO, the toolkit does not export group length attributes when streaming messages to network.

DEFAULT: YES
EXPORT_PRIVATE_ATTRIBUTES_TO_NETWORK When set to NO, disable the exporting of private attributes when streaming messages to network.

DEFAULT: YES
EXPORT_UN_VR_TO_NETWORK When set to NO, disable the exporting of attributes with a VR of UN when streaming messages to network.

DEFAULT: YES
EXPORT_UNDEFINED_LENGTH_SQ * If YES, messages transferred over the network or written to disk have their sequence attributes encoded as undefined length. This increases performance of the library.

DEFAULT: NO
FLATE_GROW_OUTPUT_BUF_SIZE * The size that the output buffer of deflate or inflate should grow to when its size is insufficient. An Info message is logged each time the buffer grows.

DEFAULT: 1024
FORCE_JAVA_BIG_ENDIAN If set to YES, OW/OF/OD data are delivered in Big Endian to Java; otherwise in the endian of the host machine.

DEFAULT: YES
FORCE_OPEN_EMPTY_ITEM * When set to YES, MCitem() constructor will create the new attribute set empty. The up-front performance cost of the call will be reduced, but so will be the amount of validation done when adding tags to the item. Setting this value to YES will also improve the performance of the DICOMDIR directory classes.

DEFAULT: NO
IGNORE_JPEG_BAD_SUFFIX Configuration Parameter for MC_Standard_Decompressor to deal with lossless JPEG images whose suffix have been invalidly written according to the JPEG specification. These images have a 16-zero-bit suffix following a -32768 prefix where the JPEG spec says the suffix is omitted following a -32768 prefix. The following are the valid settings:

-1 = Default, fail on these images
0 = Ignore when user detects such images
1 = Let the toolkit detect and ignore automatically
LARGE_DATA_SIZE Defines “Large Data” to the toolkit. “Large Data” is defined as an attribute value which has a length of LARGE_DATA_SIZE or more.

DEFAULT: 200
LARGE_DATA_STORE This parameter specifies where “Large Data” values should be stored. FILE means store the values in temporary files. MEM means store the values in memory.

Note: Embedded systems should ignore this parameter and always use MEM.

DEFAULT: MEM
LIST_SQ_DEPTH_LIMIT Limit the depth of sequences listing. This parameter should be set to the maximum number of levels any sequence should be listed.

DEFAULT: is 0 - means do not limit the listing of sequences
LIST_UN_ATTRIBUTES If No, attributes with Unknown VR will not be listed by MCattributeSet.list() and T2 logging option.

DEFAULT: Yes
LIST_VALUE_LIMIT Limit the size of listed values by MCattributeSet.list() or T2 logging option. This parameter should be set to the maximum number of lines to be printed for any attribute in the list.

DEFAULT: 0 - means show the whole value.
MSG_FILE_ITEM_OBJ_TRACE This parameter allows the tracking of the creation, referencing and freeing of message, file and item objects. This option can be used if the user suspects a memory leak in their application from not freeing one of these object types. The logging is done at the T1 trace level which must be enabled in the merge.ini file.

DEFAULT: NO
MSG_INFO_FILE This parameter specifies the name (path) of the DICOM message information file. An absolute or relative path may be specified.

The path to the file can also be specified using environment variables (including the pseudo environment variable MC3INIDIR which does not need to be set as the toolkit will resolve it internally to the directory where the merge.ini file resides).

Unicode paths can now be specified through the environment variables. Both Windows style (%) and Unix style ($) notations for the environment variables are accepted.

Note: This parameter is ignored if the message database has been pre-compiled.

DEFAULT: ../mc3msg/mrgcom3.msg
NULL_TYPE3_VALIDATION This parameter specifies how the toolkit will validate a single NULL value in a type 3 attribute with VM > 1. Valid values are ERR, WARN and INFO.

DEFAULT: ERR
OBOW_BUFFER_SIZE This parameter specifies the number of bytes of “Large Data” that should be buffered before they are written to disk. This value is only used when the parameter LARGE_DATA_STORE is set to FILE.

DEFAULT: 4096
PEGASUS_DISP_REG_NAME When using your own Pegasus license to remove the 3 frames/second limitation, this should have the company name that was used to generate your Pegasus license.
PEGASUS_DISP_REGISTRATION When using your own Pegasus license to remove the 3 frames/second limitation, this should have the registration code that goes with the Pegasus dispatcher.
PEGASUS_NUMBER_OF_THREADS Certain Pegasus opcodes can operate in a multithreaded manner. Use this setting to specify the number of threads to be used by the opcode.

DEFAULT: 1
PEGASUS_OP_*_NAME When using your own Pegasus license to remove the 3 frames/second limitation, this should have the company name that was used to generate your Pegasus license.
PEGASUS_OP_*_REGISTRATION When using your own Pegasus license to remove the 3 frames/second limitation, this should have the registration code that goes with its respective PEGASUS_OP_*_NAME.
PEGASUS_OPCODE_PATH This parameter specifies the directory where Pegasus opcode DLLs are to be loaded from. The opcode DLL refers to files like picn6220 and not the dispatcher DLL picn20. If the option is empty, the SSM/DLL is loaded from the same directory as the dispatcher DLL. If these files are not found, opcode SSM/DLL is loaded using the directory order Windows uses when loading DLLs. The SSM/DLL is loaded from the current directory if ‘.’ is specified.

DEFAULT: (empty)
REJECT_INVALID_VR This parameter specifies whether or not to reject invalid VR values in DICOM messages. If set to Yes, the parsing is aborted and the data set is rejected with a status of MC_INVALID_VR. This is useful in some scenarios when invalid attribute VR and length can result in runaway read/copy operations which may lead to crashes.

DEFAULT: No
RELEASE_SQ_ITEMS If set to NO, existing item IDs will not be freed when setting a null value or an empty value or a new value to a sequence attribute. Setting it to YES will allow sequence items that have no other references to be freed.

DEFAULT: No
REMOVE_PADDING_CHARS When set to Yes, Merge DICOM Toolkit will remove space padding characters from all text based attributes. This removal will occur when the attribute is encoded with one of the MCattributeSet class setValue() or addValue() methods, or when the attribute is read with one of the streaming or network read methods.

DEFAULT: No
REMOVE_SINGLE_TRAILING_SPACE If set to YES, the toolkit will strip a single trailing padding space character from an attribute value of string type. Otherwise it will not.

DEFAULT: YES
RETURN_COMMA_IN_DS_FL_FD_STRINGS When set to Yes, Merge DICOM Toolkit will return a comma character as a decimal separator when a String value is requested for an attribute with a VR of DS, FL, or FD. When set to No, a period will always be returned for the decimal separator. Note that DS values will always be properly encoded with a period in DICOM message objects.

DEFAULT: No
TEMP_FILE_DIRECTORY This parameter specifies the directory in which temporary files should be created. This parameter is used only if LARGE_DATA_STORE = FILE. An absolute or relative path may be specified.

The path to the directory can also be specified using environment variables (including the pseudo environment variable MC3INIDIR which does not need to be set as the toolkit will resolve it internally to the directory where the merge.ini file resides).

Unicode paths can now be specified through the environment variables. Both Windows style (%) and Unix style ($) notations for the environment variables are accepted.

DEFAULT: ./
TOLERATE_INVALID_IN_DEFAULT_CHARSET This parameter specifies if non-ASCII characters are to be tolerated in the default repertoire. When set to Yes, the validation of the attribute/message will not be enforced, but a warning message will still be logged.

DEFAULT: Yes
UN_VR_CODE VR Code to use for attributes with unknown VRs. This may be set to ‘OB’ if an implementation does not understand ‘UN’.

DEFAULT: UN
VALID VALUES: UN, OB
UPDATE_GROUP_0028_ON_DUPLICATE When set to Yes, the group 0028 attributes within a message will be updated when duplicating a message or file with MCattributeSet.duplicate() and the standard compressor or decompressor. The Photometric Interpretation will be updated as appropriate, and the Lossy Image Compression, Lossy Image Compression Ratio and Lossy Image Compression Method tags will be updated if Lossy Image Compression was applied to the image.

DEFAULT: No
USE_FREE_DATA_CALLBACK If set to Yes, the MCvalueStorage.reset() method is called when the memory associated with the storage is to be freed, because the enclosing message, file, or item is being freed.

DEFAULT: No
WORK_BUFFER_SIZE * This parameter specifies the amount of data that is buffered in the toolkit before being stored internally or passed to the application.

Setting this option to values larger than 28K will in most cases cause the toolkit to use the operating system‘s memory management scheme instead of the toolkit’s internal mechanism.

DEFAULT: 28K
* Performance tuning.

[TRANSPORT_PARMS] section of system profile parameters
Name Description
CAPTURE_FILE This parameter specifies the base name to use for capture files. (Capture files are generated if the NETWORK_CAPTURE value is set to Yes.) If only one capture file is requested (see NUMBER_OF_CAP_FILES), the capture file will have the name specified. If more than one is requested, nnn will be appended to the base file name specified (e.g. merge001.cap)

DEFAULT: merge.cap (in the current directory)

Note: Use of this parameter is deprecated.
CAPTURE_FILE_SIZE This parameter specifies the maximum size (in kilobytes) that capture files are allowed to grow (capture files are generated if the NETWORK_CAPTURE value is set to Yes). If more than one capture file is requested (see NUMBER_OF_CAP_FILES), each file generated will have this maximum size. If a value less than 1 is specified only one capture file of unlimited length will be generated.

DEFAULT: 0

Note: Use of this parameter is deprecated.
COMBINE_DATA_WITH_HEADER This parameter specifies if you would like the 12 byte PDU header combined with the PDU data. This is only for data given to the network layer that is <= 256 bytes.

Note: Starting with release 3.5.1, this configuration option no longer has an effect. All PDU headers and data are now combined.
IP_TYPE This parameter specifies the preferred IP type for network communications. When set to IPV4, Merge DICOM Toolkit will attempt to utilize only IPV4 network connections. When set to IPV6, Merge DICOM Toolkit will attempt to use only IPV6 network connections. When set to AVAILABLE in an SCP, Merge DICOM Toolkit will prefer IPV6 if it is enabled in the operating system over IPV4. If IPV6 is used, the socket is put into dual stack mode, if supported by the operating system, to accept connections from both IPV4 and IPV6. When set to AVAILABLE in an SCU, Merge DICOM Toolkit will use the available type of IP networking.

DEFAULT: AVAILABLE
VALID VALUES: AVAILABLE, IPV4, IPV6
MAX_PENDING_CONNECTIONS This parameter specifies the maximum number of open listen channels. Its value is used as the second argument of a TCP listen() call.

DEFAULT: 5
NETWORK_CAPTURE This parameter specifies whether or not network data should be captured in files suitable to be read by the MergeDPM utility. Use these parameters to customize the network capture:
  • CAPTURE_FILE
  • CAPTURE_FILE_SIZE
  • NUMBER_OF_CAP_FILES
  • REWRITE_CAPTURE_FILES
DEFAULT: No

Note: As the MergeDPM utility has long been retired, use of all these parameters related to network capture is deprecated.
NUMBER_OF_CAP_FILES This parameter specifies the number of capture files to generate (capture files are generated if the NETWORK_CAPTURE value is set to Yes). Each capture file generated will have maximum size specified by CAPTURE_FILE_SIZE. If CAPTURE_FILE_SIZE is less than 1 (unlimited size) this parameter’s value is ignored.

DEFAULT: 1

Note: Use of this parameter is deprecated.
REWRITE_CAPTURE_FILES This parameter specifies whether or not the capture files should be rewritten when all files have reached the maximum size specified by CAPTURE_FILE_SIZE (capture files are generated if the NETWORK_CAPTURE value is set to Yes). If Yes is specified, the oldest file will be rewritten. If No is specified and all requested files have been written (see NUMBER_OF_CAP_FILES), no more data will be captured.

DEFAULT: Yes

Note: Use of this parameter is deprecated.
TCPIP_DISABLE_NAGLE This parameter specifies if the Nagle Algorithm should be used when sending packets at the TCP/IP level. Most operating systems enable this by default. It allows small segments of data to delay sending a fixed amount of time to possibly be combined with other small segments and be sent as one larger packet. Disabling this may cause high network traffic.

DEFAULT: NO
TCPIP_LISTEN_PORT This parameter specifies the TCP/IP port on which server applications are to listen for associate requests.

DEFAULT: 104
TCPIP_RECEIVE_BUFFER_SIZE * This parameter specifies the TCP/IP receive buffer size for each connection. Note that the maximum values for this constant and TCPIP_SEND_BUFFER_SIZE are operating system dependent. If the values of these options are set too high, a message will be logged to the toolkit's log files, although no errors will be returned through the toolkit's API.

Larger values for these constants will greatly improve network performance on networks with minimal network activity. Note that for optimum performance, these values should be at least slightly larger than the PDU_MAXIMUM_LENGTH configuration value.

Note also that setting these values to an even multiple of the TCP/IP MSS (Maximum Segment Size) of 1460 bytes can help increase performance.

Note also that some operating systems such as Linux have auto¬¬-tuning of TCP/IP buffer sizes implemented when an explicit TCP/IP Send and Receive buffer size are not set. These options can be set to zero to disable Merge DICOM Toolkit's setting of each buffer size.

DEFAULT: 131400
MAXIMUM: Operating System dependent
TCPIP_SEND_BUFFER_SIZE * This parameter specifies the TCP/IP send buffer size for each connection. Note that the maximum values for this constant and TCPIP_RECEIVE_BUFFER_SIZE are operating system dependent. If the values of these options are set too high, a message will be logged to the toolkit's log files, although no errors will be returned through the toolkit's API.

Larger values for these constants will greatly improve network performance on networks with minimal network activity. Note that for optimum performance, these values should be at least slightly larger than the PDU_MAXIMUM_LENGTH configuration value.

Note also that setting these values to an even multiple of the TCP/IP MSS (Maximum Segment Size) of 1460 bytes can help increase performance.

Note also that some operating systems such as Linux have auto-tuning of TCP/IP buffer sizes implemented when an explicit TCP/IP Send and Receive buffer size are not set. These options can be set to zero to disable Merge DICOM Toolkit's setting of each buffer size.

DEFAULT: 131400
MAXIMUM: Operating System dependent
* Performance tuning.

Service Profile

The Service Profile (usually called mergecom.srv) informs the toolkit what types of services and commands it supports, and what the corresponding message info files are. This file also lists the meta-services and items supported by the toolkit. Items are the nested ‘sub-messages’ contained within attributes of a message having the VR Sequence of Item (SQ) and will be discussed in greater detail later. The name and location of the service profile are specified in the [MergeCOM3] section of the Merge DICOM initialization file.

The service profile, along with the data dictionary and message info files, is generated from the Merge DICOM Database and should be modified by other means only by very experienced or specialized users.

In most cases, it will not be necessary to modify the Service Profile. However, if you are using an extended toolkit to create your own private services, you will need to add specifications for these private services to the Service Profile.

The location of the Service Profile is provided by the MERGECOM_3_SERVICES parameter of the [MergeCOM3] section of the MERGE.INI file.

The Service Profile contains the following sections:

Name Description
[SERVICE_TABLE] List of service names and numbers. This list registers every service available to an Application Entity. The parameters associated with [SERVICE_LIST] are NUMBER_OF_SERVICES_SUPPORTED (the number of service names that will be listed immediately following NUMBER_OF_SERVICES_SUPPORTED) and one entry for each supported service.
[<service_number>] One section number for each of the above services registered in [SERVICE_TABLE]. Each section contains a Service Name, a DICOM SOP Class UID for the Service, a flag that tells whether it is a BASE or META Service (SOP) and a list of commands supported for that service.
[ITEM_TABLE] One item name and number for each DICOM item that can be encoded in an attribute of Value representation SQ (Sequence of Items).


Copyright © 2023 Merge Healthcare Solutions Inc. All Rights Reserved.