Features of Version 16:
It is possible that multiple implementors may define Private Elements with the same (odd) group number. To avoid conflicts, Private Elements shall be assigned Private Data Element Tags according to the following rules.
- Private Creator Data Elements numbered (gggg,0010-00FF) (gggg is odd) shall be used to reserve a block of Elements with Group Number gggg for use by an individual implementor. The implementor shall insert an identification code in the first unused (unassigned) Element in this series to reserve a block of Private Elements. The VR of the private identification code shall be LO (Long String) and the VM shall be equal to 1.
- Private Creator Data Element (gggg,0010), is a Type 1 Data Element that identifies the implementor reserving element (gggg,1000-10FF), Private Creator Data Element (gggg,0011) identifies the implementor reserving elements (gggg,1100-11FF), and so on, until Private Creator Data Element (gggg,00FF) identifies the implementor reserving elements (gggg,FF00-FFFF).
- Encoders of Private Data Elements shall be able to dynamically assign private data to any available (unreserved) block(s) within the Private group, and specify this assignment through the blocks corresponding Private Creator Data Element(s). Decoders of Private Data shall be able to accept reserved blocks with a given Private Creator identification code at any position within the Private group specified by the blocks corresponding Private Creator Data Element.
Use the CreatePrivateCreatorDataElement Method to create a Private Creator Data Element to reserve 256 private data elements for your own use. These tags will be odd numbers (all of the predefined tags are even numbers). For example, suppose you want to add the following three private elements to a DICOM data set:
- (0017,1201)
- (0017,1203)
- (0017,1205)
You would first reserve the elements by adding the corresponding private creator data element (0017,0012).
When using the CreatePrivateCreatorDataElement Method, the created private creator data element is on the same level as element (A DicomElement in the data set. The Private Creator Data Element will be inserted at the same level as this item.). If element is null, the private creator data element is created at the top or first level.
This method is used together with any of the following functions:
- GetNextUnusedPrivateTag Method
- FindFirstPrivateCreatorDataElement Method
- FindNextPrivateCreatorDataElement Method
to create private elements in a DICOM data set.
Use the FindFirstPrivateElement Method along with the FindNextPrivateElement Method to find any or all the private elements reserved by the CreatePrivateCreatorDataElement Method.
Note:
a) The versions of the standard prior to V3.0 described shadow groups. These were groups with a group number one greater than the standard groups. Elimination of conflicts in Private Data Element Tags have made this distinction obsolete and this terminology has been retired.
b) The versions of the standard prior to V3.0 specified private group element numbers (gggg,10FF-7FFF) reserved for manufacturers and private group element numbers (gggg, 8100-FFFF) reserved for users. Elimination of conflicts in Private Data Element Tags has made this distinction obsolete and this specification has been retired.
- Elements with Tags (0001,xxxx), (0003,xxxx), (0005,xxxx), and (0007,xxxx) shall not be used.
Since each Item within a sequence is a self contained Data Set (see Section 7.5 in PS 3.5 of the DICOM Standard on the nesting of Data Sets via Sequences of Items), any Item which contains Private Data Elements shall also have Private Creator Data Elements reserving blocks of Elements for those Private Data Elements. The scope of the reservation is just within the Item. Items do not inherit the Private Data Element reservations made by Private Creator Data Elements in the Data Set in which the Item is nested.