Package com.pixelmed.dicom

# Class UIDGenerator

java.lang.Object
com.pixelmed.dicom.UIDGenerator

public class UIDGenerator extends Object

A class for generating new UIDs, deterministically or not, including potentially reproducible Study, Series and SOP Instance UIDs.

## Constructor Summary

Constructors
Constructor
Description
`UIDGenerator()`
Create a UID generator.
`UIDGenerator(String stamp)`
Create a UID generator.

## Method Summary

Modifier and Type
Method
Description
`String`
`getAnotherNewUID()`
Get a different new UID for any purpose.
`String`
`getNewSeriesInstanceUID(String studyID, String seriesNumber)`
Get a Series Instance UID.
`String`
`getNewSOPInstanceUID(String studyID, String seriesNumber, String instanceNumber)`
Get a SOP Instance UID.
`String`
`getNewStudyInstanceUID(String studyID)`
Get a Study Instance UID.
`String`
`getNewUID()`
Get a new UID for any purpose.
`static final void`
`main(String[] arg)`
Test generating SOP Instance UIDs.
`void`
`newStamp()`
Reinitialize the UID generator with a new stamp using random and installation specific elements to create a unique root.

### Methods inherited from class java.lang.Object

`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### UIDGenerator

public UIDGenerator()

Create a UID generator.

This will use random and installation specific elements to create a unique root.

### UIDGenerator

public UIDGenerator(String stamp)

Create a UID generator.

This will use the supplied stamp rather than generating a unique root, to create repeatable UIDs.

Parameters:
  `stamp` - a String of dotted numeric values in UID form

## Method Details

### newStamp

public void newStamp()

Reinitialize the UID generator with a new stamp using random and installation specific elements to create a unique root.

For example, use between invocations of getNewUID().

### getNewUID

public String getNewUID() throws DicomException

Get a new UID for any purpose.

This will always be the same for this instance of the UIDGenerator, unless newStamp() has been called since the last time.

Returns:
  the UID
Throws:
  `DicomException` - if result is too long or otherwise not a valid UID

### getAnotherNewUID

public String getAnotherNewUID() throws DicomException

Get a different new UID for any purpose.

This will never be the same twice, since newStamp() is called.

Returns:
  the UID
Throws:
  `DicomException` - if result is too long or otherwise not a valid UID

### getNewStudyInstanceUID

public String getNewStudyInstanceUID(String studyID) throws DicomException

Get a Study Instance UID.

This will be the same for this instance of the UIDGenerator and the same parameter values.

Only use this if you really need reproducible UIDs; otherwise use getNewUID().

Parameters:
  `studyID` - least significant 4 digits of leading numeric part is used
Returns:
  the UID
Throws:
  `DicomException` - if result is too long or otherwise not a valid UID

### getNewSeriesInstanceUID

public String getNewSeriesInstanceUID(String studyID, String seriesNumber) throws DicomException

Get a Series Instance UID.

This will be the same for this instance of the UIDGenerator and the same parameter values.

Only use this if you really need reproducible UIDs; otherwise use getNewUID().

Parameters:
  `studyID` - least significant 4 digits of leading numeric part is used
  `seriesNumber` - least significant 4 digits of leading numeric part is used
Returns:
  the UID
Throws:
  `DicomException` - if result is too long or otherwise not a valid UID

### getNewSOPInstanceUID

public String getNewSOPInstanceUID(String studyID, String seriesNumber, String instanceNumber) throws DicomException

Get a SOP Instance UID.

This will be the same for this instance of the UIDGenerator and the same parameter values.

Only use this if you really need reproducible UIDs; otherwise use getNewUID().

Parameters:
  `studyID` - least significant 4 digits of leading numeric part is used
  `seriesNumber` - least significant 4 digits of leading numeric part is used
  `instanceNumber` - least significant 4 digits of leading numeric part is used
Returns:
  the UID
Throws:
  `DicomException` - if result is too long or otherwise not a valid UID

### main

public static final void main(String[] arg)

Test generating SOP Instance UIDs.

Parameters:
  `arg` - a single numeric argument that is the number of UIDs to generate