NAME

Dicom::UID::Generator - DICOM UID generator.

SYNOPSIS

use Dicom::UID::Generator;

my $obj = Dicom::UID::Generator->new(%params);
my $uid = $obj->create_series_instance_uid;
my $uid = $obj->create_sop_instance_uid;
my $uid = $obj->create_study_instance_uid;
my $uid = $obj->create_uid($prefix);

METHODS

new(%params)
Constructor.
  • library_number

    DICOM library number.
    Default value is undef.
  • model_number

    Device model number.
    Default value is undef.
  • serial_number

    Device serial number.
    Default value is undef.
  • timezone

    Time zone for time in UID..
    Default value is 'Europe/Prague'.
  • uid_counter

    UID counter number for part of final UID.
    Default value is 0.
create_series_instance_uid()
Get DICOM Series Instance UID.
Returns string.
create_sop_instance_uid()
Get DICOM SOP Instance UID.
Returns string.
create_study_instance_uid()
Get DICOM Study Instance UID.
Returns string.
create_uid($prefix)
Get DICOM UID defined by prefix.
Returns string.

ERRORS

new():
        From Class::Utils::set_params():
                Unknown parameter '%s'.

EXAMPLE

use strict;
use warnings;

use Dicom::UID::Generator;

# Object.
my $obj = Dicom::UID::Generator->new(
      'library_number' => 999,
      'model_number' => '001',
      'serial_number' => 123,
);

# Get Series Instance UID.
my $series_instance_uid = $obj->create_series_instance_uid;

# Get Study Instance UID.
my $study_instance_uid = $obj->create_study_instance_uid;

# Get SOP Instance UID.
my $sop_instance_uid = $obj->create_sop_instance_uid;

# Print out.
print "Study Instance UID: $study_instance_uid\n";
print "Series Instance UID: $series_instance_uid\n";
print "SOP Instance UID: $sop_instance_uid\n";

# Output like:
# Study Instance UID: 999.001.123.1.2.976.20160825112022726.2
# Series Instance UID: 999.001.123.1.3.976.20160825112022647.1
# SOP Instance UID: 999.001.123.1.4.976.20160825112022727.3

# Comments:
# 999 is DICOM library number.
# 001 is device model number.
# 123 is device serial number.
# 1.2, 1.3, 1.4 are hardcoded resolutions of DICOM UID type.
# 976 is PID of process.
# 20160825112022726 is timestamp.
# last number is number of 'uid_counter' parameter.

DEPENDENCIES

Class::Utils, DateTime::HiRes, English, Readonly,

SEE ALSO

Task::Dicom

Install the Dicom modules.

REPOSITORY

https://github.com/michal-josef-spacek/Dicom-UID-Generator

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© Michal Josef Špaček 2016

BSD 2-Clause License

VERSION

0.02