This function moves the Current Data Element to the next Data Element in the Data Set.
Declaration:
|
Copy Code
|
AT_ERRCOUNT ACCUAPI MED_DCM_DS_move_next(
const HIGEAR hIGear,
const AT_MODE level_op,
LPAT_DCM_TAG lpTag;
LPAT_DCM_VR lpVR,
LPAT_DCM_VL lpVL,
LPWORD lpLevel,
LPDWORD lpICount,
LPLONG lpNumRemaining
);
|
Arguments:
Name |
Type |
Description |
hIGear |
const HIGEAR |
HIGEAR handle to the image. |
level_op |
const AT_MODE |
A variable of type AT_MODE that tells the function how to move when it comes to an SQ. SQs are like indented outline items, allowing for hierarchies of Data Elements. Set this to one of the following constants:
- MED_DCM_MOVE_LEVEL_FIXED: This setting tells the function to move only within the same level as the previous Current DE. An SQ and all its Data Elements are skipped over. If you are in a SQ, you can only move about the SQ.
- MED_DCM_MOVE_LEVEL_FLOAT: This setting tells the function to move up or down as needed to get to the next DE. If the next DE is an SQ the Current DE moves down into it. At the end of the SQ, the Current DE will move back out to the lower levels (for example, from Level 2 to Level 1).
|
lpTag |
LPAT_DCM_TAG |
A far pointer that returns a 32-bit value of type AT_DCM_TAG indicating the numerical value of the Tag of the Current Data Element; set this to NULL if you do not need this information. The numerical values of the DICOM Tags are defined in enumIGMedTag enumeration. |
lpVR |
LPAT_DCM_VR |
A far pointer which returns the new current VR (Value Representation). Set to NULL if you don't need this information. See enumIGMedVR for possible VR values. |
lpVL |
LPAT_DCM_VL |
A far pointer which returns the length of the Data Field, in bytes. |
lpLevel |
LPWORD |
A far pointer to a WORD which returns the level in the hierarchy of the new Current Data Element; set to NULL, if you do not need this information. |
lpICount |
LPDWORD |
Returns the Item Count of the data; set to NULL if you don't need this information. |
lpNumRemaining |
LPLONG |
A far pointer to a LONG that returns the number of DE remaining until the end is reached. If the returned value is 0, you are now at last DE, if the returned value is -1, you have attempted to move past the last DE. |
Return Value:
Returns the number of ImageGear errors that occurred during the function call.
Supported Raster Image Formats:
This function does not process image pixels.
The image must have a DICOM DataSet attached to it. Use MED_DCM_DS_exists to check whether the image contains a DataSet.
Example:
|
Copy Code
|
AT_ERRCOUNT nErrcount;
HIGEAR hIGear;
BOOL IsLast;
AT_DCM_TAG lpTag;
AT_DCM_VR lpVR;
AT_DCM_VL lpVL;
DWORD lpICount;
DWORD size_of_lpData;
IsLast = FALSE:
MED_DCM_DS_move_first(hIGear, &lpTag, &lpVR, &lpVL, &lpICount);
/* iterate through all Data Elements returning the Tag, VR, VL and item count of each one.
End the loop when lpIsLast == TRUE */
while (IsLast == FALSE) {
MED_DCM_DS_curr_data_get(hIGear, lpData, size_of_lpData);
MED_DCM_DS_move_next(hIGear, &lpTag, &lpVR, &lpVL, &lpICount, &lpIsLast);
|
}
Remarks:
The value of lpNumRemaining tells you whether the Tag has now become the last Tag in the list.
The level_op setting determines whether the Current Data Element can move from level to level, or it has to stay on the same level.