The IDLffDicomEx::GetPrivateVR function method returns the Value Representation (VR) of a private DICOM attribute. This method uses a private code defined by the author of the private tag, a group number, and part of the element tag instead of a standard DICOM attribute tag to identify the private DICOM attribute.
GetPrivateVR will fail if you attempt to return a VR for an attribute that does not exist or an attribute that has been removed. If you are not sure an attribute exists use IDLffDicomEx::QueryPrivateValue before calling GetPrivateVR.
Syntax
Result = Obj->[IDLffDicomEx::]GetPrivateValueLength(PrivateCode, Group, Element [, SEQID=integer] )
Return Value
Returns a string indicating the Value Representation of the attribute. See Value Representations for details on each type of VR.
Arguments
PrivateCode
A string identification code that identifies the private block of data. Within a given private group PrivateCode labels are stored sequentially in the element addresses ranging from '0010' to '00FF'. For example, the string value stored at DICOM tag address '0029,0010' is the PrivateCode for the block of data tagged at '0029,1000' ‑ '0029,10FF'. The label stored at '0029,0011' would be the PrivateCode for the data in tags '0029,1100' - '0029,11 FF'.
Group
A string identifying the group tag number of the private attribute (the first four digits of a DICOM tag). This must be an odd number and in the form 'XXXX'.
Element
A string identifying the last two digits of the element associated with the private attribute. This must be in the form 'XX'. Valid values are 10 - FF.
The first two digits of the Element are implicit in the PrivateCode argument.
Keywords
SEQID
Set this keyword only if the private attribute exists within a sequence. Use this keyword to specify a sequence identifier as follows:
- Set to a non-zero value (a sequence identifier) indicating the sequence in which the value is contained. This sequence identifier may have been returned via a previous call to the GetPrivateValue method.
- Set to 0 or do not specify this keyword to indicate the private attribute exists at the root level of the DICOM file. This is the default.
Example
The following example uses GetPrivateValueCount to cycle through a multi-valued private attribute that has been added to a file. The VR and value of each item is printed to the Output Log window.
Note: To avoid errors caused by trying to write to an existing file, the cloned image is not saved to the database. To save the changes, call the IDLffDicomEx::Commit method.
PRO dicom_getprivate_value_doc
sFile = DIALOG_PICKFILE( $
PATH=FILEPATH('',SUBDIRECTORY=['examples','data']), $
TITLE='Select DICOM Patient File', FILTER='*.dcm', $
GET_PATH=path)
oImg = OBJ_NEW('IDLffDicomEx', path + 'aImgClone.dcm', $
CLONE=sfile)
arr = [11, 12, 13, 14]
oImg->SetPrivateValue, 'Private Test', '0053', '10', 'SS', arr
vSeqId = oImg->AddPrivateSequence('VOI Min,Max', '0055', '12')
oImg->SetPrivateValue, 'VOI Min,Max', '0055', '13', 'IS', '215', $
SEQID=vSeqID
oImg->SetPrivateValue, 'VOI Min,Max', '0055', '14', 'IS', '234', $
SEQID=vSeqID
vValue = oImg->GetPrivateValue('Private Test', '0053', '10')
vVR = oImg->GetPrivateVR('Private Test', '0053', '10')
vCount = oImg->GetPrivateValueCount('Private Test', '0053', '10')
FOR i = 1, vCount DO BEGIN
Print, 'Value number', i, + ' is ', vValue[i-1], + $
' and VR is ', vVR
ENDFOR
OBJ_DESTROY, oImg
END
The following appears in the Output Log window.
Value number 1 is 11 and VR is SS
Value number 2 is 12 and VR is SS
Value number 3 is 13 and VR is SS
Value number 4 is 14 and VR is SS
Version History