JBoss

JMX MBean View

Back to Agent View Refresh MBean View

MBean description:

DICOM Storage SCP. Provides a DICOM storage service to receive DICOM objects from remote DICOM applications. Typically these objects are images received from modalities. You can also configure what DICOM SOP classes are accepted by the StoreScp service using the AcceptedImageSOPClasses and AcceptedOtherSOPClasses atributes. The dcm4chee.archive=DCMServer must be deployed first because the StoreScp registers itself against this server.

List of MBean attributes:

Name Type Access Value Description
Name java.lang.String R StoreScpService The class name of the MBean
State int R 3 The status of the MBean
StateString java.lang.String R Started The status of the MBean in text form
CalledAETitles java.lang.String RW List of accepted called AE titles, separated by \(backslash). For example, DCM4CHEE\DCM4CHEE2.
CallingAETitles java.lang.String RW List of accepted calling AE titles, separated by \(backslash).
ANY = accept any.
CONFIGURED_AETS = accept any configured AE Title.
UnrestrictedAppendPermissionsToAETitles java.lang.String RW AE Titles of C-STORE SCUs with Append Permissions on all archived Studies, independent of Study Permissions to roles of the user associated to the active association. Separate multiple values by \(backslash). ANY = Disable restriction of storage to existing Studies according granted Study Permissions.
WarnForCoercedAETitles java.lang.String RW List of the AE titles for the Storage SCUs for which a warning status, B000, is returned if data elements were coerced. Separate multiple values by \(backslash). NONE = no calling AE titles.
AcceptMismatchAffectedSOPInstanceUIDCallingAETiles java.lang.String RW List of the AE titles for the Storage SCUs from which storage requests with Affected SOP Instance UID in the command differs from the SOP Instance UID are accepted. Separate multiple values by \(backslash). NONE = no calling AE titles.
DefaultFileSystemGroupID java.lang.String RW ID of default file system group, used for storage of received object from Storage SCUs, for which no specific file system group is defined in an AE configuration entry.
AcceptMissingPatientID boolean RW True False Accept storage of objects/images without patient ID
AcceptMissingPatientName boolean RW True False Accept storage of objects/images without patient name
GeneratePatientID java.lang.String RW Generate a patient ID from a hash of the patient name and birth date and/or study instance uid, if the received object contains no patient ID, or if it is received from one Storage SCU listend in GeneratePatientIDForUnscheduledFromAETitles and does not contain a reference to a Scheduled Procedure Step.
Use ### and/or $$$ as a placeholder for the decimal hash value of patient name and/or study instance uid. For example, PACS-##########.
NONE = do not generate patient IDs.
Issuer of Patient ID for generated Patient IDs will be set to the Issuer of Patient ID associated to the Storage SCP (=Called) AE by its AE configuration entry. If no Issuer of Patient ID is configured for the Storage SCP, Issuer of Patient ID is set to the value configured by attribute IssuerOfPatientIDGeneratedPatientID.
IssuerOfPatientIDGeneratedPatientID java.lang.String RW Issuer of Patient ID for generated Patient ID's, if no Issuer of Patient ID is associated with the Storage SCP (=Called) AE by its AE Configuration entry.
SupplementIssuerOfPatientID boolean RW True False Supplement received objects containing a Patient ID, but no Issuer of Patient ID, with a value for Issuer of Patient ID, if such is associated with the Storage SCU AE by its AE Configuration entry.
SupplementIssuerOfAccessionNumber boolean RW True False Supplement received objects containing an Accession Number, but no Issuer of Accession Number Sequence, with such Sequence containing one item with Local Namespace Enitity ID, Universial Enitity ID and Universial Enitity ID Type, if such is associated with the Storage SCU AE by its AE Configuration entry.
SupplementInstitutionName boolean RW True False If the Storage SCU AE has a value configured for Institution within the database AE Configuration, use this value to supplement objects received from the AE which do not contain an Institution Name (DICOM tag (0008,0080)).
SupplementInstitutionalDepartmentName boolean RW True False If the Storage SCU AE has a value configured for Department within the database AE Configuration, use this value to supplement objects received from the AE which do not contain an Institutional Department Name (DICOM tag (0008,1040)).
SupplementByHostName boolean RW True False If there is no Issuer of Patient ID, Issuer of Accession Number Sequence item, Institution Name, Institutional Department Name associated to the Storage SCU AE by an AE configuration entry with matching AE Title, AE configuration entries which host name is equals to the host name of the Storage SCU AE will be considered to determine the associated Issuer of Patient ID, Issuer of Accession Number Sequence item, Institution Name or Institutional Department Name. If there are several AE configuration entries with matching host name with different non-zero values for Issuer of Patient ID, Issuer of Accession Number Sequence item, Institution Name or Institutional Department Name, no Issuer of Patient ID, Issuer of Accession Number Sequence item, Institution Name or Institutional Department Name will be supplemented.
SupplementByHostAddress boolean RW True False If there is no Issuer of Patient ID, Issuer of Accession Number Sequence item, Institution Name, Institutional Department Name associated to the Storage SCU AE by an AE configuration entry with matching AE Title, AE configuration entries which host name is equals to the IP address of the Storage SCU AE will be considered to determine the associated Issuer of Patient ID, Issuer of Accession Number Sequence item, Institution Name or Institutional Department Name. If there are several AE configuration entries with matching host name with different non-zero values for Issuer of Patient ID, Issuer of Accession Number Sequence item, Institution Name or Institutional Department Name, no Issuer of Patient ID, Issuer of Accession Number Sequence item, Institution Name or Institutional Department Name will be supplemented.
GeneratePatientIDForUnscheduledFromAETitles java.lang.String RW List of AE titles of Storage SCUs for which the Patient ID in received objects without Scheduled Procedure Step reference shall be replaced by a new generated Patient ID. Separate multiple values by "\"(backslash).
If the list is prefixed by "!\", the Patient ID in objects without Scheduled Procedure Step reference received from any Storage SCU, except which AE title is specified in the list, will be replaced by a new generated Patient ID.
"NONE" = do not replace Patient IDs in objects received from any Storage SCU.
PatientMatching java.lang.String RW Defines which Patient Attributes in the first received DICOM Composite Objects of a DICOM Study shall be considered for the selection of an existing Patient records in the archive to which the new Study will be associated.

Format: 'pid'['?']',issuer'['?'][',' ['['] demograhic-matches [']'] ]
demograhic-matches ::= demograhic-match['|' ...]
demograhic-match ::= [ignore',']demograhic-fields
ignore ::= 'ignore("' regular-expression '")'
demograhic-fields ::= demograhic-field['?'][',' ...]
demograhic-field ::= 'familyname'['(1)'] | 'givenname'['(1)'] | 'middlename'['(1)'] | 'nameprefix'['(1)'] | 'namesuffix'['(1)'] | birthdate | sex

Multiple alternative demograhic-matches can be specified using '|' as delimiter.

Substrings specified by 'ignore("' regular-expression '")' will be ignored for matching patient name components.

A '(1)' suffix of the attribute name specifies that only the first character need to match.

A question mark('?') after a attribute name specifies that a missing value in received DICOM objects will match with any value for that attribute in existing Patient Records, as Patient Records with missing values for that attribute will match with any value for that attribute in received DICOM objects. Attribute names without question marks specifies, that DICOM objects without values for such attributes will not match any existing Patient Record, and Patient Records without values for such attributes will not get selected on receive of any DICOM Composite Object.

With 'pid?', you have to configure the Patient's family name complex ('familyname') as additional matching criterium.

Surrounding demograhic-matches by brackets('[]') defines, that demographic fields shall *not* be considered for the selection of an existing Patient record, if the Patient ID is qualified by an Issuer/Authority in the received DICOM Composite Object *and* in the matching Patient Record.

Without surrounding brackets('[]'), the specified demograhic-match will be considered even if the Patient ID is qualified by an Issuer/Authority in the received DICOM Composite Object and there is an existing Patient Record with such Patient ID and Issuer/Authority: If the Patient Record does not also match in the specified demographic attributes, it will not be selected, but Patient ID and Issuer/Authority in the received DICOM Composite Object will be replace by a new Patient ID generated according configured GeneratePatientID and by configured IssuerOfGeneratedPatientID. If StoreOriginalPatientIDInOtherPatientIDsSequence = true, the original Patient ID and Issuer of Patient ID in the received DICOM Composite Object will be stored in an item of the Other Patient IDs Sequence.

Warning:Improper configuration may cause study assignments to wrong patient.

Default: pid,issuer?[familyname,givenname,middlename?,birthdate]

StoreOriginalPatientIDInOtherPatientIDsSequence boolean RW True False Specifies, if the original Patient ID and Issuer of Patient ID in the received DICOM Composite Object will be stored in an item of the Other Patient IDs Sequence, if they have to be replaced by a new generated Patient ID, caused by an already existing Patient Record with matching Patient ID and Issuer of Patient ID, but not matching demographic fields.
StoreOriginalPatientIDInOriginalAttrsSeq boolean RW True False Specifies, if the original Patient ID and Issuer of Patient ID in the received DICOM Composite Object will be stored in an item of the Original Attributes Sequence, if they have to be replaced by a new generated Patient ID, caused by an already existing Patient Record with matching Patient ID and Issuer of Patient ID, but not matching demographic fields.
StudyDateInFilePath boolean RW True False Use Study Date in received objects to structure directories of the storage file system. Otherwise - or if the received object does not contain a Study Date - the current date, when receiving the object, is used. (s.a. attributes YearInFilePath, MonthInFilePath, DayInFilePath, HourInFilePath)
SourceAETInFilePath boolean RW True False Include Source AE Title in storage directory structure.
YearInFilePath boolean RW True False Use the year of Study or receiving Date to structure directories of the storage file system. (s.a. attributes StudyDateInFilePath, MonthInFilePath, DayInFilePath, HourInFilePath)
MonthInFilePath boolean RW True False Use the year of Study or receiving Date to structure directories of the storage file system. (s.a. attributes StudyDateInFilePath, YearInFilePath, DayInFilePath, HourInFilePath)
DayInFilePath boolean RW True False Use the year of Study or receiving Date to structure directories of the storage file system. (s.a. attributes StudyDateInFilePath, YearInFilePath, MonthInFilePath, HourInFilePath)
HourInFilePath boolean RW True False Use the year of Study or receiving Date to structure directories of the storage file system. (s.a. attributes StudyDateInFilePath, YearInFilePath, MonthInFilePath, DayInFilePath)
ReferencedDirectoryPath java.lang.String RW Used to split directory path (mount point) from file path in the (0040,E010) Retrieve URI of objects received with private Transfer Syntax: 1.2.40.0.13.1.1.2.4.94/Dcm4che URI Referenced. A relative path name is resolved relative to archive-install-directory/server/default/. Alternatively an URI can be specified. In any case, there must be already a file system configured, which directory path match the value. If an URI is specified, the (0040,E010) Retrieve URI in received objects must start with the value + '/'. If a directory path is specified, the Retrieve URI must start with 'file:' + absolute directory path. Otherwise the storage will fail.
Multiple path/URI can be specified (one per line)
ALL means All configured filesystems of ReferencedFileSystemGroupID
ReferencedFileSystemGroupID java.lang.String RW ID of file system group to with the file system configured in ReferencedDirectoryPath belongs.
ReadReferencedFile boolean RW True False Specifies if the file referenced by (0040,E010) Retrieve URI is parsed to supplement attributes in the C-STORE RQ with all attributes from the filed DICOM object. Only effective for receiving objects encoded with private Transfer Syntax: 1.2.40.0.13.1.1.2.4.94/Dcm4che URI Referenced.
Md5sumReferencedFile boolean RW True False Specifies if the MD5 file check sum for the file referenced by (0040,E010) Retrieve URI is calculated. Only effective for receiving objects encoded with private Transfer Syntax: 1.2.40.0.13.1.1.2.4.94/Dcm4che URI Referenced and with attribute ReadReferencedFile = true.
Md5sum boolean RW True False Generates MD5 file check sum during storage and keep it in DB record
SyncFileBeforeCStoreRSP boolean RW True False Flush file system buffers after storage of received objects before sending successful C-STORE RSP. Excludes possibility of truncated files on disk, caused by a system crash just after storage of a received object because the OS disk cache may not yet have written to the storage device, at the expense of storage performance.
SyncFileAfterCStoreRSP boolean RW True False Flush file system buffers after storage of received objects after sending successful C-STORE RSP. Minimize likilihood of truncated files on disk, caused by a system crash just after storage of a received object because the OS disk cache may not yet have written to the storage device, without significant decrease of storage performance. Only effective, if SyncFileBeforeCStoreRSP is false.
StoreDuplicatesIfDifferentMD5 boolean RW True False Store a duplicate object if the MD5 sum of the new object differs from the MD5 sum of the existing file. If the MD5 sum does not match, the files may be corrupted.
StoreDuplicatesIfDifferentHost boolean RW True False Store duplicate objects if the existing files are NOT located on this host.
CompressionRules java.lang.String RW List of image compression rules. First matching rule for a received uncompressed image defines its compression. Enables to set compression methods dependent on Calling/Called AE Title in the A-Associate RQ from the Storage SCU and on values of particular image attributes (s. Attributes for compression conditions below).

Syntax:
<compression rules> := (<compression rule> <EOL>)+

<compression rule> := [<conditions>] <compression>

<conditions> := '[' <condition> {',' <condition>} ']'

<condition> := <attribute> ['!']'=' <value> {'|' <value>}

<attribute> := 'calling' | 'called' | 'pmi' | 'cuid' | 'imgtype' | 'bodypart'

<compression> := 'NONE' | 'JPLL' | 'JLSL' | 'J2KR' | ('JPLY' ['(' <quality> ':' <description> ':' <ratio> ')'])

<quality> := used compression quality between 0.0 and 1.0, 0.75 by default.

<description> := description stored in attribute Derivation Description (0008,2111), "JPEG Lossy Compression with quality=0.75" by default.

<ratio> := estimated compression ratio stored in attribute Lossy Image Compression Ratio (0028,2112), 5.0 by default.

Supported compression modes:

  • NONE - do not apply compression.
  • JPLL - JPEG Lossless
  • JLSL - JPEG-LS Lossless
  • J2KR - JPEG 2000 Lossless
  • JPLY - JPEG Lossy

Attributes for compression conditions:

  • calling - Calling AE title in A-Associate RQ from Storage SCU.
  • called - Called AE title in A-Associate RQ from Storage SCU.
  • pmi - Photometric Interpretation (0028,0004) of image.
  • cuid - SOP Class UID (0008,0016) of image.
  • imgtype - Image Type (0008,0008) of image.
  • bodypart - Body Part Examined (0018,0015) of image.

The value of the attribute MaxConcurrentCodec of the Compression Service also effects the on-the-fly compression and decompression during the store of images by the Storage SCP.

CheckPendingSeriesStoredInterval java.lang.String RW Interval in hours (#h), minutes (#m) or seconds (#s) in which the data base is polled for new received Series, for which Series Stored Notifications were not yet emitted.
isRunning boolean R False Current state if CheckPendingSeriesStored task is running. Used to avoid concurrency!
SeriesStoredNotificationDelay java.lang.String RW Minimal delay in hours (#h), minutes (#m) or seconds (#s) between the receive of the last object of a Series and the emission of a Series Stored Notification for that Series. Shall not be configured smaller than the maximal time between the receive of two objects belonging to the same Series to avoid emission of multiple Series Stored Notifications for one Series.
SerializeDBUpdate boolean RW True False Serialize updates of DB records for received objects in one association. May decreases Storage Performance!
UpdateDatabaseMaximumRetries int RW Maximum number of retries to update the database records for new received objects, before a processing failure is returned to the Storage SCU.
UpdateDatabasePerformedRetries int R 0 Maximum number of retries actually performed to update the database records for new received objects.
UpdateDatabaseRetryInterval long RW Delay in milliseconds between retries to update the database records for new received objects.
AcceptedImageSOPClasses java.lang.String RW List of image SOP Classes that the Store SCP service accepts. Use either the SOP Class UID value, or the name specified in DICOM Part 6, Annex A Registry of DICOM unique identifiers, concatenating individual words without spaces.
AcceptedTransferSyntaxForImageSOPClasses java.lang.String RW List of Transfer Syntaxes for Image SOP Classes that Store SCP service accepts. Order defines selection preference. Use either the Transfer Syntaxes UID value or following defined symbolic names: ImplicitVRLittleEndian, ExplicitVRLittleEndian, DeflatedExplicitVRLittleEndian, ExplicitVRBigEndian, JPEGBaseline, JPEGExtended, JPEGLossless (=Process 14 [Selection Value 1]), JPEGLossless14, JPEGLSLossless, JPEGLSLossy, JPEG2000Lossless, JPEG2000Lossy, RLELossless, Dcm4cheURIReferenced NoPixelData NoPixelDataDeflate
AcceptedVideoSOPClasses java.lang.String RW List of Video SOP Classes that the Store SCP service accepts. Use either the SOP Class UID value, or the name specified in DICOM Part 6, Annex A Registry of DICOM unique identifiers, concatenating individual words without spaces.
AcceptedTransferSyntaxForVideoSOPClasses java.lang.String RW List of Transfer Syntaxes for Video SOP Classes that Store SCP service accepts. Order defines selection preference. Use either the Transfer Syntaxes UID value or following defined symbolic names: JPEGBaseline, MPEG2, MPEG2HL, MPEG4, MPEG4BD, Dcm4cheURIReferenced NoPixelData NoPixelDataDeflate
AcceptedWaveformSOPClasses java.lang.String RW List of Waveform SOP Classes that the Store SCP service accepts. Use either the SOP Class UID value, or the name specified in DICOM Part 6, Annex A Registry of DICOM unique identifiers, concatenating individual words without spaces.
AcceptedTransferSyntaxForWaveformSOPClasses java.lang.String RW List of Transfer Syntaxes for Waveform SOP Classes that Store SCP service accepts. Order defines selection preference. Use either the Transfer Syntaxes UID value or following defined symbolic names: ImplicitVRLittleEndian, ExplicitVRLittleEndian, DeflatedExplicitVRLittleEndian, ExplicitVRBigEndian, Dcm4cheURIReferenced
AcceptedSRSOPClasses java.lang.String RW List of Structured Report Document SOP Classes that the Store SCP service accepts. Use either the SOP Class UID value, or the name specified in DICOM Part 6, Annex A Registry of DICOM unique identifiers, concatenating individual words without spaces.
AcceptedTransferSyntaxForSRSOPClasses java.lang.String RW List of Transfer Syntaxes for Structured Report Document SOP Classes that Store SCP service accepts. Order defines selection preference. Use either the Transfer Syntaxes UID value or following defined symbolic names: ImplicitVRLittleEndian, ExplicitVRLittleEndian, DeflatedExplicitVRLittleEndian, ExplicitVRBigEndian, Dcm4cheURIReferenced
AcceptedOtherSOPClasses java.lang.String RW List of other (than Image, Video, Waveform, Structured Report) SOP Classes that the Store SCP service accepts. Use either the SOP Class UID value, or the name specified in DICOM Part 6, Annex A Registry of DICOM unique identifiers, concatenating individual words without spaces.
AcceptedTransferSyntaxForOtherSOPClasses java.lang.String RW List of Transfer Syntaxes for other (than Image, Video, Waveform, Structured Report) SOP Classes that Store SCP service accepts. Order defines selection preference. Use either the Transfer Syntaxes UID value or following defined symbolic names: ImplicitVRLittleEndian, ExplicitVRLittleEndian, DeflatedExplicitVRLittleEndian, ExplicitVRBigEndian, Dcm4cheURIReferenced
CheckIncorrectWorklistEntry boolean RW True False Check if a received instance should be ignored due to 'Incorrect Worklist Entry Selected'.
OnlyWellKnownInstancesCallingAETs java.lang.String RW List of the AE titles for the Storage SCUs from which storage requests with unknown SOP Instance UID are ignored.
This can be used to avoid getting wrong instances from systems (e.g. central archive) that are not aware of changes of this archive.
Separate multiple values by \(backslash). NONE = no calling AE titles.
MaximumPDULength int RW Maximum protocol data unit (PDU) package length for receiving PDUs. Attention: This property should be set to equal values for all DICOM SCP services with same called AE Title(s)! Otherwise it is non-deterministic, which configured value is effective!
MaximumOperationsInvoked int RW The maximum number of outstanding operations and/or sub-operations it allows the Association-requester to invoke asynchronously. A value of zero indicates an unlimited number of outstanding operations. Attention: This property should be set to equal values for all DICOM SCP services with same called AE Title(s)! Otherwise it is non-deterministic, which configured value is effective!
MaximumOperationsPerformed int RW The maximum number of outstanding operations and/or sub-operations it allows the Association-requester to perform asynchronously. A value of zero indicates an unlimited number of outstanding operations. Attention: This property should be set to equal values for all DICOM SCP services with same called AE Title(s)! Otherwise it is non-deterministic, which configured value is effective!
MaximumValueLength int RW Maximum value length of non-pixel data attributes of received objects. Storage of objects with attributes with larger value length will fail.
BufferSize int RW Size of byte buffer used for copying data from TCP channel to file.
LogAETitles java.lang.String RW List of the AE titles for the Storage SCUs for which XMLized object attributes are logged into files AET/timestamp-cstorerq.xml in the log directory. Useful for creation of XSL stylesheets for attribute coercion. Separate multiple values by \ (backslash). NONE = no calling AE titles.
CoerceConfigDirectory java.lang.String RW Directory where configuration files for attribute coercion are located: if XSL stylesheet "cstorerq.xsl" exists in this directory or in a sub-directory equal to the AE Title of a Storage SCU, attributes from this SCU will be coerced according these stylesheets. A relative path name is resolved relative to archive-install-directory/server/default/.
WriteCoercionXmlLog boolean RW True False Enable logging of coercions in separate log files.
FileName: <LOG_DIR>/coercion/<timestamp>.<xsl file>.[in]|[out]
Coercion logs are only written for Calling AETs specified in LogAETitles!
CoerceBeforeWrite boolean RW True False Perform attribute coercion prior to writing to online filesystem.
TimerIDCheckPendingSeriesStored java.lang.String RW Used internally. Do NOT modify.
SchedulerServiceName javax.management.ObjectName RW View MBean Used internally. Do NOT modify.
FileSystemMgtServiceNamePrefix java.lang.String RW Used internally. Do NOT modify.
MwlScuServiceName javax.management.ObjectName RW View MBean Used internally. Do NOT modify.
DcmServerName javax.management.ObjectName RW View MBean Used internally. Do NOT modify.
TemplatesServiceName javax.management.ObjectName RW View MBean Used internally. Do NOT modify.
PerfMonServiceName javax.management.ObjectName RW Used internally. Do NOT modify.
AEServiceName javax.management.ObjectName RW View MBean Used internally. Do NOT modify.

List of MBean operations:


void create()

Standard MBean lifecycle method


void start()

The start lifecycle operation


void stop()

The stop lifecycle operation


void destroy()

The destroy lifecycle operation


void jbossInternalLifecycle()

The detyped lifecycle operation (for internal use only)

Param ParamType ParamValue ParamDescription
method java.lang.String The lifecycle operation

void resetMaxCountUpdateDatabaseRetries()

Reset Update Database - Performed Retries to 0.


void importFile()

Import a DICOM file (internal use only)

Param ParamType ParamValue ParamDescription
fileDTO org.dcm4chex.archive.ejb.interfaces.FileDTO Transfer object for File
ds org.dcm4che.data.Dataset Dataset.
prevSeriesInstanceUID java.lang.String Previous Series Instance UID - triggers SeriesStored Notification if different to Series Instance UID in Dataset
last boolean True False mark last object to import - triggers SeriesStored Notification

org.dcm4chex.archive.ejb.interfaces.FileDTO makeFile()

Create empty file in storage directory (internal use only) of specified file system group

Param ParamType ParamValue ParamDescription
fsgroupid java.lang.String FileSystemGroupID
ds org.dcm4che.data.Dataset Dataset