Is there any limit for the data that can be inserted into a private DICOM Tag?

4

I am creating a Secondary Capture DICOM file which has many private tags. The contents of a file (which is of 69 Mb) is is read as binary and inserted into a private tag (0099,1016) and the VR is set to OB. The size of the DICOM file thus created is about 75 MB.

Once the file is saved successfully, I am sending the same to PACS (I am using DCM4CHEE as the PACS) using C_STORE. But PACS throws an internal error (status 0x0110) and C_STORE operation fails.

PACS ERROR Logs:

Received: 
C-STORE-RSP
(0x00000000,"0x000000CA") # Group 0000 Length
(0x00000002,"1.2.840.10008.5.1.4.1.1.7") # Affected SOP Class UID
(0x00000100,"0x8001") # Command Field
(0x00000120,"0x013D") # Message ID Being Responded To
(0x00000800,"0x0101") # Data Set Type
(0x00000900,"0x0110") # Status
**(0x00000902,"rPos:26014 (0099,1016) OB #69899172, value length [69899172] exc") # Error Comment**
(0x00001000,"1.2.840.113747.37041.480038180.780.2459492811.3") # Affected SOP Instance UID

Is this issue related to the DCM4CHEE or with the DICOM file? Is there any limit for the contents that can be inserted into a private DICOM tag?

c++
dicom
dcm4che
asked on Stack Overflow May 27, 2015 by Kiran Joshy • edited Jun 20, 2020 by Community

2 Answers

2

The VR of OB can have value up to 4,294,967,295 which equals 2^32 – 1 and you are well within the range. Are you following the rules for encoding the private data elements as specified in PS 3.5 section 7.8? It requires you to reserve a block of Elements by used of Private Creator Data Elements (gggg,0010-00FF). In your case you need to add Private Creator Data Elements (0099, 0010) to reserve private elements (0099,1000-10FF).

answered on Stack Overflow May 28, 2015 by LEADTOOLS Support
0

See LEADTOOLS answer for DICOM details. In DCM4CHEE, there is a parameter that limits the size of non-pixel data attributes. You can change it under

http<s>://<server>:<port>/jmx-console/

Log in and select the service=StoreScp under the dcm4chee.archive heading. Change the value for MaximumValueLength.

That said, your DCM4CHEE instance only has so much memory. The higher you make this value (and make use of it) the more likely you'll run out of memory and have a different error returned.

You may want to break your item into fragments or sequence items, and then stitch them back together when you retrieve the data.

answered on Stack Overflow May 29, 2015 by cneller

User contributions licensed under CC BY-SA 3.0