Project

General

Profile

Feature #362 » e771a0565.diff

Harald Roesen, 2026-04-10 11:02

View differences:

dcmdata/apps/dump2dcm.cc
if (opt_overwriteUIDs || !dataset->tagExistsWithValue(DCM_StudyInstanceUID))
{
OFLOG_INFO(dump2dcmLogger, "generating new Study Instance UID");
dataset->putAndInsertString(DCM_StudyInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT));
dataset->putAndInsertString(DCM_StudyInstanceUID, dcmGenerateRootBasedUID(uid, SITE_STUDY_UID_ROOT));
}
if (opt_overwriteUIDs || !dataset->tagExistsWithValue(DCM_SeriesInstanceUID))
{
OFLOG_INFO(dump2dcmLogger, "generating new Series Instance UID");
dataset->putAndInsertString(DCM_SeriesInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT));
dataset->putAndInsertString(DCM_SeriesInstanceUID, dcmGenerateRootBasedUID(uid, SITE_SERIES_UID_ROOT));
}
if (opt_overwriteUIDs || !dataset->tagExistsWithValue(DCM_SOPInstanceUID))
{
OFLOG_INFO(dump2dcmLogger, "generating new SOP Instance UID");
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT));
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateRootBasedUID(uid, SITE_INSTANCE_UID_ROOT));
/* make sure that the file meta information is updated correspondingly */
if (opt_writeMode == EWM_fileformat)
opt_writeMode = EWM_updateMeta;
dcmdata/apps/json2dcm.cc
if (overwriteUIDs || !dataset->tagExistsWithValue(DCM_StudyInstanceUID))
{
OFLOG_INFO(json2dcmLogger, "generating new Study Instance UID");
dataset->putAndInsertString(DCM_StudyInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT));
dataset->putAndInsertString(DCM_StudyInstanceUID, dcmGenerateRootBasedUID(uid, SITE_STUDY_UID_ROOT));
}
if (overwriteUIDs || !dataset->tagExistsWithValue(DCM_SeriesInstanceUID))
{
OFLOG_INFO(json2dcmLogger, "generating new Series Instance UID");
dataset->putAndInsertString(DCM_SeriesInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT));
dataset->putAndInsertString(DCM_SeriesInstanceUID, dcmGenerateRootBasedUID(uid, SITE_SERIES_UID_ROOT));
}
if (overwriteUIDs || !dataset->tagExistsWithValue(DCM_SOPInstanceUID))
{
OFLOG_INFO(json2dcmLogger, "generating new SOP Instance UID");
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT));
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateRootBasedUID(uid, SITE_INSTANCE_UID_ROOT));
/* make sure that the file meta information is updated correspondingly */
if (writeMode == EWM_fileformat)
dcmdata/apps/mdfdsman.cc
OFCondition result;
char uid[100];
if (uidKey == DCM_StudyInstanceUID)
dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT);
dcmGenerateRootBasedUID(uid, SITE_STUDY_UID_ROOT);
else if (uidKey == DCM_SeriesInstanceUID)
dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT);
dcmGenerateRootBasedUID(uid, SITE_SERIES_UID_ROOT);
else if (uidKey == DCM_SOPInstanceUID)
{
dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT);
dcmGenerateRootBasedUID(uid, SITE_INSTANCE_UID_ROOT);
// force meta-header to refresh SOP Class/Instance UIDs.
DcmItem* meta_info = dfile->getMetaInfo();
if (meta_info)
dcmdata/apps/xml2dcm.cc
if (opt_overwriteUIDs || !dataset->tagExistsWithValue(DCM_StudyInstanceUID))
{
OFLOG_INFO(xml2dcmLogger, "generating new Study Instance UID");
dataset->putAndInsertString(DCM_StudyInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT));
dataset->putAndInsertString(DCM_StudyInstanceUID, dcmGenerateRootBasedUID(uid, SITE_STUDY_UID_ROOT));
}
if (opt_overwriteUIDs || !dataset->tagExistsWithValue(DCM_SeriesInstanceUID))
{
OFLOG_INFO(xml2dcmLogger, "generating new Series Instance UID");
dataset->putAndInsertString(DCM_SeriesInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT));
dataset->putAndInsertString(DCM_SeriesInstanceUID, dcmGenerateRootBasedUID(uid, SITE_SERIES_UID_ROOT));
}
if (opt_overwriteUIDs || !dataset->tagExistsWithValue(DCM_SOPInstanceUID))
{
OFLOG_INFO(xml2dcmLogger, "generating new SOP Instance UID");
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT));
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateRootBasedUID(uid, SITE_INSTANCE_UID_ROOT));
}
}
OFLOG_INFO(xml2dcmLogger, "writing DICOM output file: " << opt_ofname);
dcmdata/docs/dcmdata.dox
DcmFileFormat fileformat;
DcmDataset *dataset = fileformat.getDataset();
dataset->putAndInsertString(DCM_SOPClassUID, UID_SecondaryCaptureImageStorage);
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT));
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateRootBasedUID(uid, SITE_INSTANCE_UID_ROOT));
dataset->putAndInsertString(DCM_PatientName, "Doe^John");
/* ... */
dataset->putAndInsertUint8Array(DCM_PixelData, pixelData, pixelLength);
dcmdata/include/dcmtk/dcmdata/dcuid.h
#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
#include "dcmtk/ofstd/ofmem.h"
#include "dcmtk/ofstd/oftypes.h"
#include "dcmtk/ofstd/ofuuidgn.h"
#include "dcmtk/dcmdata/dcdefine.h"
// include this file in doxygen documentation
......
*/
DCMTK_DCMDATA_EXPORT OFBool dcmIsImageStorageSOPClassUID(const char* uid);
/** creates a Unique Identifier in uid and returns uid.
* uid must be at least 65 bytes. Care is taken to make sure
/** creates an UID (Unique IDentifier) in \p uid and returns \p uid.
* \p uid must be at least 65 bytes. Care is taken to make sure
* that the generated UID is 64 characters or less.
* If a prefix string is not passed as the second argument a
* default of SITE_INSTANCE_UID_ROOT (see below) will be used.
* Otherwise the supplied prefix string will appear at the beginning
* of uid.
* of \p uid.
* The UID is created by appending to the prefix the following:
* - the host ID (if obtainable, zero otherwise),
* - the process ID (if obtainable, zero otherwise),
* - the system calendar time, and
* - an accumulating counter for this process.
* @param uid pointer to buffer of 65 or more characters in which the UID is returned
* @param prefix prefix for UID creation
* @return pointer to UID, identical to uid parameter
* @param[in, out] uid pointer to buffer of 65 or more characters in which the UID is returned
* @param[in] prefix prefix for UID creation
* @return uid
*/
DCMTK_DCMDATA_EXPORT char *dcmGenerateRootBasedUID(char *uid, const char* prefix=NULL);
/**
* wrapper for @ref dcmGenerateRootBasedUID.
*/
DCMTK_DCMDATA_EXPORT char *dcmGenerateUniqueIdentifier(char *uid, const char* prefix=NULL);
/**
* creates an UID (Unique IDentifier) in \p uid and returns \p uid.
* \p uid must be at least 65 bytes. Care is taken to make sure that the
* generated UID is 64 characters or less.
* If \p ptr holds an OFUUID, i. e. it is not empty, its @ref OFUUID::NotationOID
* will be used as returned UID. If \p ptr is neither valid nor provided, an
* @ref OFUUID is created on behalf of this function and used in case of success.
* In case of @ref OFUUID creation failure, the returned UID is the result
* of the call to @ref dcmGenerateRootBasedUID(\p uid).
* @param[in, out] uid pointer to buffer of 65 or more characters in which the UID is returned
* @param[in] ptr shared pointer holding an OFUUID
* @return uid
*/
DCMTK_DCMDATA_EXPORT char *dcmGenerateUUIDBasedUID(char *uid, const OFshared_ptr<OFUUID> ptr={});
/** performs a table lookup and returns a short modality identifier
* that can be used for building file names etc.
* Identifiers are defined for all storage SOP classes.
dcmdata/libi2d/i2d.cc
if (cond.bad() || value.empty())
{
char newUID[100];
dcmGenerateUniqueIdentifier(newUID, SITE_SERIES_UID_ROOT);
dcmGenerateRootBasedUID(newUID, SITE_SERIES_UID_ROOT);
cond = dset->putAndInsertOFStringArray(DCM_SeriesInstanceUID, newUID);
if (cond.bad())
return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to write Series Instance UID to file");
......
if (cond.bad() || value.empty())
{
char newUID[100];
dcmGenerateUniqueIdentifier(newUID, SITE_STUDY_UID_ROOT);
dcmGenerateRootBasedUID(newUID, SITE_STUDY_UID_ROOT);
cond = dset->putAndInsertOFStringArray(DCM_StudyInstanceUID, newUID);
if (cond.bad())
return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to write Study Instance UID to file");
......
if (cond.bad() || value.empty())
{
char newUID[100];
dcmGenerateUniqueIdentifier(newUID, SITE_INSTANCE_UID_ROOT);
dcmGenerateRootBasedUID(newUID, SITE_INSTANCE_UID_ROOT);
cond = dset->putAndInsertOFStringArray(DCM_SOPInstanceUID, newUID);
if (cond.bad())
return makeOFCondition(OFM_dcmdata, 18, OF_error, "Unable to write SOP Instance UID to file");
dcmdata/libi2d/i2dplop.cc
// compute defaults for some type 1 attributes
char newUID[70];
dcmGenerateUniqueIdentifier(newUID);
dcmGenerateRootBasedUID(newUID);
OFDateTime now = OFDateTime::getCurrentDateTime();
OFString contentDate;
OFString contentTime;
dcmdata/libsrc/dccodec.cc
if (result.good()) result = dataset->putAndInsertString(DCM_SOPClassUID, UID_SecondaryCaptureImageStorage);
// SOP Instance UID - only insert if missing.
dcmGenerateUniqueIdentifier(buf);
dcmGenerateRootBasedUID(buf);
if (result.good()) result = insertStringIfMissing(dataset, DCM_SOPInstanceUID, buf);
// Type 1 attributes - insert with value if missing
dcmGenerateUniqueIdentifier(buf, SITE_STUDY_UID_ROOT);
dcmGenerateRootBasedUID(buf, SITE_STUDY_UID_ROOT);
if (result.good()) result = insertStringIfMissing(dataset, DCM_StudyInstanceUID, buf);
dcmGenerateUniqueIdentifier(buf, SITE_SERIES_UID_ROOT);
dcmGenerateRootBasedUID(buf, SITE_SERIES_UID_ROOT);
if (result.good()) result = insertStringIfMissing(dataset, DCM_SeriesInstanceUID, buf);
if (result.good()) result = insertStringIfMissing(dataset, DCM_ConversionType, "WSD");
if (result.good()) result = insertStringIfMissing(dataset, DCM_Modality, "OT");
......
DcmElement *elem = new DcmUniqueIdentifier(DCM_SOPInstanceUID);
if (elem)
{
if (EC_Normal == (result = elem->putString(dcmGenerateUniqueIdentifier(new_uid))))
if (EC_Normal == (result = elem->putString(dcmGenerateRootBasedUID(new_uid))))
dataset->insert(elem, OFTrue); // replace SOP Instance UID
else delete elem;
} else result = EC_MemoryExhausted;
dcmdata/libsrc/dcencdoc.cc
if (studyUID_.empty())
{
dcmGenerateUniqueIdentifier(buf, SITE_STUDY_UID_ROOT);
dcmGenerateRootBasedUID(buf, SITE_STUDY_UID_ROOT);
studyUID_ = buf;
}
if (seriesUID_.empty())
{
dcmGenerateUniqueIdentifier(buf, SITE_SERIES_UID_ROOT);
dcmGenerateRootBasedUID(buf, SITE_SERIES_UID_ROOT);
seriesUID_ = buf;
}
......
{
DCMDATA_DEBUG("Frame of Reference UID " << DCM_FrameOfReferenceUID << " value missing, generating a new one."
);
dcmGenerateUniqueIdentifier(buf, SITE_SERIES_UID_ROOT);
dcmGenerateRootBasedUID(buf, SITE_SERIES_UID_ROOT);
frameOfReferenceUID_ = buf;
}
else
......
{
DCMDATA_DEBUG("Frame of Reference UID " << DCM_FrameOfReferenceUID << " value was faulty, generating a new one."
);
dcmGenerateUniqueIdentifier(buf, SITE_SERIES_UID_ROOT);
dcmGenerateRootBasedUID(buf, SITE_SERIES_UID_ROOT);
frameOfReferenceUID_ = buf;
}
}
......
if (result.good()) result = dataset->putAndInsertString(DCM_BurnedInAnnotation, annotation_ ? "YES" : "NO");
OFStandard::snprintf(buf, sizeof(buf), "%ld", OFstatic_cast(long, instance_));
if (result.good()) result = dataset->putAndInsertString(DCM_InstanceNumber, buf);
dcmGenerateUniqueIdentifier(buf, SITE_INSTANCE_UID_ROOT);
dcmGenerateRootBasedUID(buf, SITE_INSTANCE_UID_ROOT);
if (result.good()) result = dataset->putAndInsertString(DCM_StudyInstanceUID, studyUID_.c_str());
if (result.good()) result = dataset->putAndInsertString(DCM_SeriesInstanceUID, seriesUID_.c_str());
if (result.good()) result = dataset->putAndInsertString(DCM_SOPInstanceUID, buf);
dcmdata/libsrc/dcfilefo.cc
else if (elem->getLength() == 0)
{
char uid[128];
dcmGenerateUniqueIdentifier(uid); // from dcuid.h
dcmGenerateRootBasedUID(uid); // from dcuid.h
OFstatic_cast(DcmUniqueIdentifier *, elem)->putString(uid);
DCMDATA_DEBUG("DcmFileFormat::checkMetaHeaderValue() use new generated SOPInstanceUID [" << uid << "]");
}
dcmdata/libsrc/dcrleccd.cc
#include "dcmtk/dcmdata/dcpxitem.h" /* for class DcmPixelItem */
#include "dcmtk/dcmdata/dcvrpobw.h" /* for class DcmPolymorphOBOW */
#include "dcmtk/dcmdata/dcswap.h" /* for swapIfNecessary() */
#include "dcmtk/dcmdata/dcuid.h" /* for dcmGenerateUniqueIdentifer()*/
DcmRLECodecDecoder::DcmRLECodecDecoder()
dcmdata/libsrc/dcuid.cc
END_EXTERN_C
#include "dcmtk/ofstd/ofstream.h"
#include "dcmtk/ofstd/ofstring.h"
#include "dcmtk/dcmdata/dcuid.h"
#include "dcmtk/dcmdata/dctypes.h"
#include "dcmtk/ofstd/ofthread.h"
......
#include "dcmtk/ofstd/ofvector.h"
#include "dcmtk/ofstd/ofsockad.h"
/** struct for mapping UID values to keywords, names and properties
*/
struct UIDNameMap {
......
* Global variable storing the return value of gethostid().
* Since the variable is not declared in the header file it can only be used
* within this source file. Any access to or modification of its value is
* protected by a mutex (see dcmGenerateUniqueIdentifier()).
* protected by a mutex (see dcmGenerateRootBasedUID()).
*/
static unsigned long hostIdentifier = 0;
......
static void
addUIDComponent(char* uid, const char* s)
{
/* copy into UID as much of the contents of s as possible */
/* copy into uid as much of the contents of s as possible */
if (OFStandard::strlcat(uid, s, maxUIDLen + 1) >= maxUIDLen + 1) // maxUIDLen+1 because strlcat() wants the size of the buffer, not the permitted number of characters.
{
DCMDATA_WARN("Truncated UID in dcmGenerateUniqueIdentifier(), SITE_UID_ROOT too long?");
DCMDATA_WARN("Truncated UID in dcmGenerateRootBasedUID(), SITE_UID_ROOT too long?");
}
stripTrailing(uid, '.');
}
......
return (i < 0) ? OFstatic_cast(unsigned long, -i) : OFstatic_cast(unsigned long, i);
}
char* dcmGenerateUniqueIdentifier(char* uid, const char* prefix)
char* dcmGenerateRootBasedUID(char* uid, const char* prefix)
{
char buf[128]; /* be very safe */
......
uidCounterMutex.unlock();
#endif
if (prefix != NULL ) {
addUIDComponent(uid, prefix);
} else {
if (prefix == NULL) {
addUIDComponent(uid, SITE_INSTANCE_UID_ROOT);
} else {
addUIDComponent(uid, prefix);
}
OFStandard::snprintf(buf, sizeof(buf), ".%lu", hostIdentifier);
......
addUIDComponent(uid, buf);
OFStandard::snprintf(buf, sizeof(buf), ".%u", counter);
addUIDComponent(uid, buf);
return uid;
}
char* dcmGenerateUUIDBasedUID(char* uid, const OFshared_ptr<OFUUID> ptr)
{
uid[0] = '\0'; /* initialize */
const OFshared_ptr<OFUUID> uuid = (ptr ? ptr : OFUUIDGenerator::create());
if (uuid) {
const OFString oid = uuid->toString(OFUUID::NotationOID);
addUIDComponent(uid, oid.c_str());
return uid;
}
return dcmGenerateRootBasedUID(uid);
}
char* dcmGenerateUniqueIdentifier(char* uid, const char* prefix)
{
return dcmGenerateRootBasedUID(uid, prefix);
}
dcmdata/tests/tests.cc
OFTEST_REGISTER(dcmdata_attribute_matching);
OFTEST_REGISTER(dcmdata_newDicomElementPrivate);
OFTEST_REGISTER(dcmdata_generateUniqueIdentifier);
OFTEST_REGISTER(dcmdata_generateRootBasedUID);
OFTEST_REGISTER(dcmdata_generateUUIDBasedUID);
OFTEST_REGISTER(dcmdata_xferLookup_1);
OFTEST_REGISTER(dcmdata_xferLookup_2);
OFTEST_REGISTER(dcmdata_xferLookup_3);
dcmdata/tests/tgenuid.cc
*
* Author: Marco Eichelberg
*
* Purpose: test program for function dcmGenerateUniqueIdentifier
* Purpose: test program for functions dcmGenerateUniqueIdentifier, dcmGenerate*BasedUID
*
*/
#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
#include "dcmtk/ofstd/ofmem.h"
#include "dcmtk/ofstd/oftest.h"
#include "dcmtk/ofstd/ofuuidgn.h"
#include "dcmtk/dcmdata/dcuid.h"
static OFshared_ptr<OFUUID> empty_uuid_ptr();
static OFshared_ptr<OFUUID> filled_uuid_ptr();
static void test_unique_identifier(char* (*f)(char*, const char*), const char* d = NULL);
static void test_unique_identifier(char* (*f)(char *uid, const OFshared_ptr<OFUUID> ptr), OFshared_ptr<OFUUID> (*u)());
OFTEST(dcmdata_generateUniqueIdentifier)
{
test_unique_identifier(dcmGenerateUniqueIdentifier);
test_unique_identifier(dcmGenerateUniqueIdentifier, OFFIS_UID_ROOT);
test_unique_identifier(dcmGenerateUniqueIdentifier, SITE_UID_ROOT);
}
OFTEST(dcmdata_generateRootBasedUID)
{
test_unique_identifier(dcmGenerateRootBasedUID);
test_unique_identifier(dcmGenerateRootBasedUID, OFFIS_UID_ROOT);
test_unique_identifier(dcmGenerateRootBasedUID, SITE_UID_ROOT);
}
OFTEST(dcmdata_generateUUIDBasedUID)
{
test_unique_identifier(dcmGenerateUUIDBasedUID, empty_uuid_ptr);
test_unique_identifier(dcmGenerateUUIDBasedUID, filled_uuid_ptr);
}
static OFshared_ptr<OFUUID> empty_uuid_ptr() {
return OFshared_ptr<OFUUID>();
}
static OFshared_ptr<OFUUID> filled_uuid_ptr() {
return OFUUIDGenerator::create();
}
static void test_unique_identifier(char* (*f)(char*, const char*), const char* d) {
// test generation of UIDs. We generate 10000 UIDs in quick
// succession and check if they are pair-wise different.
// This will also catch any application error during UID generation.
char uid[65];
OFString previousuid;
// This variable name will be printed on the console if the test fails.
// In fact a generated UID is not unique if this variable is false!
OFBool generated_uid_is_not_unique;
for (size_t i = 0; i < 10000; ++i)
{
// generate UID
f(uid, d);
// compare with the previously generated UID, should be different.
generated_uid_is_not_unique = (previousuid != uid);
OFCHECK(generated_uid_is_not_unique);
previousuid = uid;
// if we have found a non-unique UID, the test has failed.
// Break out of the loop.
if (! generated_uid_is_not_unique) break;
}
}
static void test_unique_identifier(char* (*f)(char *uid, const OFshared_ptr<OFUUID> ptr), OFshared_ptr<OFUUID> (*u)()) {
// test generation of UIDs. We generate 10000 UIDs in quick
// succession and check if they are pair-wise different.
// This will also catch any application error during UID generation.
......
for (size_t i = 0; i < 10000; ++i)
{
// generate UID
dcmGenerateUniqueIdentifier(uid);
f(uid, u());
// compare with the previously generated UID, should be different.
generated_uid_is_not_unique = (previousuid != uid);
dcmfg/libsrc/concatenationcreator.cc
if (result.good())
{
char buf[100];
dcmGenerateUniqueIdentifier(buf, SITE_INSTANCE_UID_ROOT);
dcmGenerateRootBasedUID(buf, SITE_INSTANCE_UID_ROOT);
result = dstDataset.putAndInsertOFStringArray(DCM_SOPInstanceUID, buf);
}
return result;
......
// Create Concatenation UID
char buf[65];
m_dstConcatenationUID = dcmGenerateUniqueIdentifier(buf, SITE_INSTANCE_UID_ROOT);
m_dstConcatenationUID = dcmGenerateRootBasedUID(buf, SITE_INSTANCE_UID_ROOT);
// Set initial context, i.e. initialize for first frame
m_currentPerFrameItem = OFstatic_cast(DcmItem*, m_srcPerFrameFG->nextInContainer(NULL));
dcmfg/libsrc/concatenationloader.cc
if (uid.empty())
{
char buf[100];
dcmGenerateUniqueIdentifier(buf, SITE_INSTANCE_UID_ROOT);
dcmGenerateRootBasedUID(buf, SITE_INSTANCE_UID_ROOT);
uid = buf;
DCMFG_WARN("SOP Instance UID of Concatenation Source (0020,0242) not set, created new SOP Instance UID "
<< uid);
dcmimage/apps/dcmscale.cc
}
// create new SOP instance UID
char new_uid[100];
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateUniqueIdentifier(new_uid));
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateRootBasedUID(new_uid));
}
// ======================================================================
dcmimage/libsrc/dcmicmph.cc
OFString seriesInstanceUID;
OFString laterality;
OFString seriesNumber = "1";
seriesInstanceUID = dcmGenerateUniqueIdentifier(uidbuf);
seriesInstanceUID = dcmGenerateRootBasedUID(uidbuf);
cond = diffImage->putAndInsertOFStringArray(DCM_Modality, modality);
if (cond.bad()) return cond;
......
OFString instanceCreatorUID = "1.2.276.0.7230010.3.1.2.1787205428.20064.1535731842.951308";
OFString InstanceNumber = "1";
if (src->findAndGetOFStringArray(DCM_SpecificCharacterSet, specificCharacterSet).bad()) specificCharacterSet = "";
sOPInstanceUID = dcmGenerateUniqueIdentifier(uidbuf);
sOPInstanceUID = dcmGenerateRootBasedUID(uidbuf);
cond = diffImage->putAndInsertOFStringArray(DCM_SOPInstanceUID, sOPInstanceUID);
if (cond.bad()) return cond;
dcmimage/libsrc/diquant.cc
#include "dcmtk/dcmdata/dcdeftag.h" /* for tag constants */
#include "dcmtk/dcmdata/dcpixel.h" /* for DcmPixelData */
#include "dcmtk/dcmdata/dcsequen.h" /* for DcmSequenceOfItems */
#include "dcmtk/dcmdata/dcuid.h" /* for dcmGenerateUniqueIdentifier() */
#include "dcmtk/dcmdata/dcuid.h" /* for dcmGenerateRootBasedUID() */
#include "dcmtk/ofstd/ofstd.h"
dcmiod/libsrc/iodutil.cc
switch (level)
{
case 0:
dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT);
dcmGenerateRootBasedUID(uid, SITE_INSTANCE_UID_ROOT);
break;
case 1:
dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT);
dcmGenerateRootBasedUID(uid, SITE_SERIES_UID_ROOT);
break;
case 2:
dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT);
dcmGenerateRootBasedUID(uid, SITE_STUDY_UID_ROOT);
break;
default:
dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT);
dcmGenerateRootBasedUID(uid, SITE_STUDY_UID_ROOT);
}
return uid;
}
dcmiod/tests/tchecks.cc
return OFFalse;
}
char forUID[100];
if (iod.getFrameOfReference().setFrameOfReferenceUID(dcmGenerateUniqueIdentifier(forUID)).bad())
if (iod.getFrameOfReference().setFrameOfReferenceUID(dcmGenerateRootBasedUID(forUID)).bad())
{
OFCHECK_FAIL("Cannot set SOP Instance UID");
return OFFalse;
dcmnet/apps/storescp.cc
{
// create unique filename by generating a temporary UID and using ".X." as an infix
char buf[70];
dcmGenerateUniqueIdentifier(buf);
dcmGenerateRootBasedUID(buf);
OFStandard::snprintf(imageFileName, sizeof(imageFileName), "%s%c%s.X.%s%s", opt_outputDirectory.c_str(), PATH_SEPARATOR,
dcmSOPClassUIDToModality(req->AffectedSOPClassUID, "UNKNOWN"),
buf, opt_fileNameExtension.c_str());
dcmnet/apps/storescu.cc
{
OFString prefix = basePrefix + "." + intToString(counter);
char uidbuf[65];
OFString uid = dcmGenerateUniqueIdentifier(uidbuf, prefix.c_str());
OFString uid = dcmGenerateRootBasedUID(uidbuf, prefix.c_str());
return uid;
}
dcmnet/libsrc/dstorscp.cc
case FGM_UniqueFromNewUID:
{
char uidBuffer[70];
dcmGenerateUniqueIdentifier(uidBuffer);
dcmGenerateRootBasedUID(uidBuffer);
OFOStringStream stream;
stream << dcmSOPClassUIDToModality(sopClassUID.c_str(), "UNKNOWN")
<< ".X." << uidBuffer << FilenameExtension << OFStringStream_ends;
dcmpstat/apps/dcmprscu.cc
// a generated UID contains the process ID and current time.
// Adding it to the PRNG seed guarantees that we have different seeds for different processes.
char randomUID[65];
dcmGenerateUniqueIdentifier(randomUID);
dcmGenerateRootBasedUID(randomUID);
tLayer->addPRNGseed(randomUID, strlen(randomUID));
}
dcmpstat/apps/dcmpsrcv.cc
// Adding it to the PRNG seed guarantees that we have different seeds for
// different child processes.
char randomUID[65];
dcmGenerateUniqueIdentifier(randomUID);
dcmGenerateRootBasedUID(randomUID);
if (tLayer) tLayer->addPRNGseed(randomUID, strlen(randomUID));
#endif
handleClient(&assoc, dbfolder, networkBitPreserving, useTLS, opt_correctUIDPadding);
dcmpstat/apps/dcmpssnd.cc
// a generated UID contains the process ID and current time.
// Adding it to the PRNG seed guarantees that we have different seeds for different processes.
char randomUID[65];
dcmGenerateUniqueIdentifier(randomUID);
dcmGenerateRootBasedUID(randomUID);
tLayer->addPRNGseed(randomUID, strlen(randomUID));
}
dcmpstat/include/dcmtk/dcmpstat/dvpsdef.h
#define SET_UID(a_name) \
if (result==EC_Normal) \
{ \
if (a_name.getLength()==0) result = a_name.putString(dcmGenerateUniqueIdentifier(uid)); \
if (a_name.getLength()==0) result = a_name.putString(dcmGenerateRootBasedUID(uid)); \
}
#endif
dcmpstat/libsrc/dcmpstat.cc
OFString aString;
char *puid = NULL;
OFCondition result = sOPInstanceUID.putString(dcmGenerateUniqueIdentifier(uid));
OFCondition result = sOPInstanceUID.putString(dcmGenerateRootBasedUID(uid));
DVPSHelper::currentDate(aString);
DVPSHelper::setDefault(result, instanceCreationDate, aString.c_str());
DVPSHelper::currentTime(aString);
......
if ((result==EC_Normal)&&(replaceSOPInstanceUID ||(sOPInstanceUID.getLength()==0)))
{
sOPInstanceUID.putString(dcmGenerateUniqueIdentifier(uid));
sOPInstanceUID.putString(dcmGenerateRootBasedUID(uid));
DVPSHelper::currentDate(aString);
DVPSHelper::setDefault(result, instanceCreationDate, aString.c_str() );
DVPSHelper::currentTime(aString);
......
DVPSHelper::currentTime(aString);
result = presentationCreationTime.putString(aString.c_str());
}
if (result==EC_Normal) result = seriesInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT));
if (result==EC_Normal) result = sOPInstanceUID.putString(dcmGenerateUniqueIdentifier(uid));
if (result==EC_Normal) result = seriesInstanceUID.putString(dcmGenerateRootBasedUID(uid, SITE_SERIES_UID_ROOT));
if (result==EC_Normal) result = sOPInstanceUID.putString(dcmGenerateRootBasedUID(uid));
if (result==EC_Normal) result = seriesNumber.putString(DEFAULT_seriesNumber);
/* If no other character set is specified by the image, we use ISO_IR 100 as the default */
dcmpstat/libsrc/dviface.cc
if (EC_Normal==status) status = DVPSHelper::putStringValue(dataset, DCM_Modality, "OT");
if (EC_Normal==status) status = DVPSHelper::putStringValue(dataset, DCM_ConversionType, "WSD");
if (EC_Normal==status) status = DVPSHelper::putStringValue(dataset, DCM_PhotometricInterpretation, "MONOCHROME2");
dcmGenerateUniqueIdentifier(newuid);
dcmGenerateRootBasedUID(newuid);
if (EC_Normal==status) status = DVPSHelper::putStringValue(dataset, DCM_SOPInstanceUID, (instanceUID ? instanceUID : newuid));
dcmGenerateUniqueIdentifier(newuid, SITE_SERIES_UID_ROOT);
dcmGenerateRootBasedUID(newuid, SITE_SERIES_UID_ROOT);
if (EC_Normal==status) status = DVPSHelper::putStringValue(dataset, DCM_SeriesInstanceUID, newuid);
dcmGenerateUniqueIdentifier(newuid, SITE_STUDY_UID_ROOT);
dcmGenerateRootBasedUID(newuid, SITE_STUDY_UID_ROOT);
if (EC_Normal==status) status = DVPSHelper::putStringValue(dataset, DCM_StudyInstanceUID, newuid);
if (EC_Normal==status) status = DVPSHelper::putUint16Value(dataset, DCM_SamplesPerPixel, 1);
if (EC_Normal==status) status = DVPSHelper::putUint16Value(dataset, DCM_Rows, rows);
......
releaseDatabase();
char uid[100];
dcmGenerateUniqueIdentifier(uid);
dcmGenerateRootBasedUID(uid);
DcmQueryRetrieveDatabaseStatus dbStatus(STATUS_Success);
char imageFileName[MAXPATHLEN+1];
......
// SOP Common Module
if (EC_Normal==status) status = DVPSHelper::putStringValue(dataset, DCM_SOPClassUID, UID_RETIRED_HardcopyGrayscaleImageStorage);
dcmGenerateUniqueIdentifier(newuid);
dcmGenerateRootBasedUID(newuid);
theInstanceUID = (instanceUID ? instanceUID : newuid);
if (EC_Normal==status) status = DVPSHelper::putStringValue(dataset, DCM_SOPInstanceUID, theInstanceUID.c_str());
DVPSHelper::currentDate(aString);
......
releaseDatabase();
char uid[100];
dcmGenerateUniqueIdentifier(uid);
dcmGenerateRootBasedUID(uid);
DcmQueryRetrieveDatabaseStatus dbStatus(STATUS_Success);
char imageFileName[MAXPATHLEN+1];
......
{
if (instanceUID) status = pPrint->setInstanceUID(instanceUID); else
{
dcmGenerateUniqueIdentifier(newuid);
dcmGenerateRootBasedUID(newuid);
status = pPrint->setInstanceUID(newuid);
}
if (EC_Normal == status) status = pPrint->write(*dataset, writeRequestedImageSize, OFTrue, OFTrue, OFFalse);
......
releaseDatabase();
char uid[100];
dcmGenerateUniqueIdentifier(uid);
dcmGenerateRootBasedUID(uid);
DcmQueryRetrieveDatabaseStatus dbStatus(STATUS_Success);
char imageFileName[MAXPATHLEN+1];
dcmpstat/libsrc/dvpsib.cc
// SOP Common Module
if (EC_Normal==writeresult) writeresult = DVPSHelper::putStringValue(rspDataset, DCM_SOPClassUID, UID_RETIRED_HardcopyGrayscaleImageStorage);
if (EC_Normal==writeresult) writeresult = referencedSOPClassUID.putString(UID_RETIRED_HardcopyGrayscaleImageStorage);
dcmGenerateUniqueIdentifier(newuid);
dcmGenerateRootBasedUID(newuid);
if (EC_Normal==writeresult) writeresult = DVPSHelper::putStringValue(rspDataset, DCM_SOPInstanceUID, newuid);
if (EC_Normal==writeresult) writeresult = referencedSOPInstanceUID.putString(newuid);
DVPSHelper::currentDate(aString);
dcmpstat/libsrc/dvpsibl.cc
OFListConstIterator(DVPSImageBoxContent *) first = arg.list_.begin();
OFListConstIterator(DVPSImageBoxContent *) last = arg.list_.end();
while (first != last)
{
{
list_.push_back((*first)->clone());
++first;
}
......
OFListIterator(DVPSImageBoxContent *) first = list_.begin();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
while (first != last)
{
{
delete (*first);
first = list_.erase(first);
}
......
DVPSImageBoxContent *newImage = NULL;
DcmSequenceOfItems *dseq=NULL;
DcmItem *ditem=NULL;
if (EC_Normal == dset.search(DCM_RETIRED_ImageBoxContentSequence, stack, ESM_fromHere, OFFalse) && (stack.top()->ident() == EVR_SQ))
{
dseq=(DcmSequenceOfItems *)stack.top();
......
} else result = EC_MemoryExhausted;
}
}
}
}
return result;
}
OFCondition DVPSImageBoxContent_PList::write(
DcmItem &dset,
OFBool writeRequestedImageSize,
OFBool writeRequestedImageSize,
size_t numItems,
OFBool ignoreEmptyImages,
OFBool writeReferencedPLUTSQ)
......
DcmItem *ditem=NULL;
OFBool working = OFTrue;
unsigned long numWritten = 0;
dseq = new DcmSequenceOfItems(DCM_RETIRED_ImageBoxContentSequence);
if (dseq)
{
......
if (ditem)
{
result = (*first)->write(*ditem, writeRequestedImageSize, writeReferencedPLUTSQ);
if (result==EC_Normal)
if (result==EC_Normal)
{
dseq->insert(ditem);
dseq->insert(ditem);
numWritten++;
} else delete ditem;
} else result = EC_MemoryExhausted;
......
if (size()==0) return EC_IllegalCall; // can't write if sequence is empty
OFCondition result = EC_Normal;
unsigned long counter = 1;
OFListIterator(DVPSImageBoxContent *) first = list_.begin();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
while ((first != last)&&(EC_Normal == result))
{
{
result = (*first)->createDefaultValues(renumber, counter++, ignoreEmptyImages);
++first;
}
......
OFCondition DVPSImageBoxContent_PList::addImageBox(DVPSImageBoxContent * box)
{
list_.push_back(box);
return(EC_Normal);
return(EC_Normal);
}
OFCondition DVPSImageBoxContent_PList::setRequestedDecimateCropBehaviour(DVPSDecimateCropBehaviour value)
......
OFListIterator(DVPSImageBoxContent *) first = list_.begin();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
while (first != last)
{
{
result = (*first)->setRequestedDecimateCropBehaviour(value);
if (EC_Normal != result) return result;
++first;
......
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->hasAdditionalSettings();
return OFFalse;
return OFFalse;
}
OFCondition DVPSImageBoxContent_PList::setImagePolarity(size_t idx, const char *value)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->setPolarity(value);
return EC_IllegalCall;
return EC_IllegalCall;
}
OFCondition DVPSImageBoxContent_PList::setImageRequestedSize(size_t idx, const char *value)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->setRequestedImageSize(value);
return EC_IllegalCall;
return EC_IllegalCall;
}
OFCondition DVPSImageBoxContent_PList::setImageMagnificationType(size_t idx, const char *value)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->setMagnificationType(value);
return EC_IllegalCall;
return EC_IllegalCall;
}
OFCondition DVPSImageBoxContent_PList::setImageSmoothingType(size_t idx, const char *value)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->setSmoothingType(value);
return EC_IllegalCall;
return EC_IllegalCall;
}
OFCondition DVPSImageBoxContent_PList::setImageConfigurationInformation(size_t idx, const char *value)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->setConfigurationInformation(value);
return EC_IllegalCall;
return EC_IllegalCall;
}
OFCondition DVPSImageBoxContent_PList::setImageSOPInstanceUID(size_t idx, const char *value)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->setSOPInstanceUID(value);
return EC_IllegalCall;
return EC_IllegalCall;
}
const char *DVPSImageBoxContent_PList::getImagePolarity(size_t idx)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->getPolarity();
return NULL;
return NULL;
}
const char *DVPSImageBoxContent_PList::getImageRequestedSize(size_t idx)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->getRequestedImageSize();
return NULL;
return NULL;
}
const char *DVPSImageBoxContent_PList::getImageMagnificationType(size_t idx)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->getMagnificationType();
return NULL;
return NULL;
}
const char *DVPSImageBoxContent_PList::getImageSmoothingType(size_t idx)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->getSmoothingType();
return NULL;
return NULL;
}
const char *DVPSImageBoxContent_PList::getImageConfigurationInformation(size_t idx)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->getConfigurationInformation();
return NULL;
return NULL;
}
const char *DVPSImageBoxContent_PList::getSOPInstanceUID(size_t idx)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->getSOPInstanceUID();
return NULL;
return NULL;
}
const char *DVPSImageBoxContent_PList::getReferencedPresentationLUTInstanceUID(size_t idx)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->getReferencedPresentationLUTInstanceUID();
return NULL;
return NULL;
}
OFCondition DVPSImageBoxContent_PList::setAllImagesToDefault()
......
++first;
if (EC_Normal != result) return result;
}
return result;
return result;
}
OFCondition DVPSImageBoxContent_PList::getImageReference(size_t idx, const char *&studyUID, const char *&seriesUID, const char *&instanceUID)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->getImageReference(studyUID, seriesUID, instanceUID);
return EC_IllegalCall;
return EC_IllegalCall;
}
OFCondition DVPSImageBoxContent_PList::prepareBasicImageBox(size_t idx, DcmItem &dset)
{
DVPSImageBoxContent *box = getImageBox(idx);
if (box) return box->prepareBasicImageBox(dset);
return EC_IllegalCall;
return EC_IllegalCall;
}
OFBool DVPSImageBoxContent_PList::presentationLUTInstanceUIDisUsed(const char *uid)
......
OFString uidS;
if (uid) uidS = uid;
const char *c;
OFListIterator(DVPSImageBoxContent *) first = list_.begin();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
while (first != last)
{
c = (*first)->getReferencedPresentationLUTInstanceUID();
......
OFString aString;
OFBool found;
OFListIterator(char *) uidfirst;
OFListIterator(char *) uidlast;
OFListIterator(char *) uidlast;
OFListIterator(DVPSImageBoxContent *) first = list_.begin();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
while (first != last)
{
c = (*first)->getReferencedPresentationLUTInstanceUID();
if ((c == NULL)||(strlen(c)==0)) c = filmBox;
aString = c; // aString now contains the UID of the P-LUT to be used for this image, if any.
uidfirst = uidList.begin();
uidlast = uidList.end();
uidlast = uidList.end();
found = OFFalse;
while (uidfirst != uidlast)
{
if (aString == (*uidfirst))
if (aString == (*uidfirst))
{
found = OFTrue;
break;
......
OFBool DVPSImageBoxContent_PList::printSCPCreate(
unsigned long numBoxes,
DcmUniqueIdentifier& studyUID,
DcmUniqueIdentifier& seriesUID,
DcmUniqueIdentifier& studyUID,
DcmUniqueIdentifier& seriesUID,
const char *aetitle)
{
clear();
......
box = new DVPSImageBoxContent();
if (box)
{
if ((EC_Normal == box->setSOPInstanceUID(dcmGenerateUniqueIdentifier(uid))) &&
if ((EC_Normal == box->setSOPInstanceUID(dcmGenerateRootBasedUID(uid))) &&
(EC_Normal == box->setUIDsAndAETitle(studyUID, seriesUID, aetitle)))
{
list_.push_back(box);
......
DcmItem *ditem=NULL;
DcmUniqueIdentifier *uid=NULL;
const char *instanceUID=NULL;
dseq = new DcmSequenceOfItems(DCM_ReferencedImageBoxSequence);
if (dseq)
{
......
if (ditem)
{
uid = new DcmUniqueIdentifier(DCM_ReferencedSOPClassUID);
if (uid) result = uid->putString(UID_BasicGrayscaleImageBoxSOPClass); else result = EC_MemoryExhausted;
if (uid) result = uid->putString(UID_BasicGrayscaleImageBoxSOPClass); else result = EC_MemoryExhausted;
if (EC_Normal == result) result = ditem->insert(uid, OFTrue /*replaceOld*/); else delete uid;
uid = new DcmUniqueIdentifier(DCM_ReferencedSOPInstanceUID);
instanceUID = (*first)->getSOPInstanceUID();
if (uid && instanceUID) result = uid->putString(instanceUID); else result = EC_MemoryExhausted;
if (uid && instanceUID) result = uid->putString(instanceUID); else result = EC_MemoryExhausted;
if (EC_Normal == result) result = ditem->insert(uid, OFTrue /*replaceOld*/); else delete uid;
if (result==EC_Normal) dseq->insert(ditem); else delete ditem;
......
{
OFBool result = OFTrue;
OFListConstIterator(DVPSImageBoxContent *) first = list_.begin();
OFListConstIterator(DVPSImageBoxContent *) last = list_.end();
OFListConstIterator(DVPSImageBoxContent *) last = list_.end();
while (first != last)
{
result = result && (*first)->matchesPresentationLUT(align);
++first;
}
}
return result;
}
......
DVPSImageBoxContent *DVPSImageBoxContent_PList::duplicateImageBox(const char *uid)
{
if (uid == NULL) return NULL;
OFString aString(uid);
OFListIterator(DVPSImageBoxContent *) first = list_.begin();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
while (first != last)
{
if (aString == (*first)->getSOPInstanceUID()) return (*first)->clone();
++first;
}
}
return NULL;
}
OFBool DVPSImageBoxContent_PList::haveImagePositionClash(const char *uid, Uint16 position)
{
if (uid == NULL) return OFFalse;
OFString aString(uid);
OFListIterator(DVPSImageBoxContent *) first = list_.begin();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
while (first != last)
{
if (((*first)->getImageBoxPosition() == position)&&(aString != (*first)->getSOPInstanceUID())) return OFTrue; //clash
++first;
}
}
return OFFalse;
}
......
OFString aString(newImageBox->getSOPInstanceUID());
OFListIterator(DVPSImageBoxContent *) first = list_.begin();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
while (first != last)
{
if (aString == (*first)->getSOPInstanceUID())
......
first = list_.erase(first);
}
else ++first;
}
}
list_.push_back(newImageBox);
}
OFBool DVPSImageBoxContent_PList::emptyPageWarning()
{
OFListIterator(DVPSImageBoxContent *) first = list_.begin();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
OFListIterator(DVPSImageBoxContent *) last = list_.end();
while (first != last)
{
if ((*first)->getImageBoxPosition() > 0) return OFFalse;
dcmpstat/libsrc/dvpspll.cc
// no match, store new LUT
char uid[100];
dcmGenerateUniqueIdentifier(uid);
dcmGenerateRootBasedUID(uid);
myLUT->setSOPInstanceUID(uid);
list_.push_back(myLUT);
result = myLUT->getSOPInstanceUID();
dcmpstat/libsrc/dvpsprt.cc
strncpy(rsp.msg.NCreateRSP.AffectedSOPInstanceUID, rq.msg.NCreateRQ.AffectedSOPInstanceUID, sizeof(DIC_UI));
} else {
// we generate our own instance UID
dcmGenerateUniqueIdentifier(rsp.msg.NCreateRSP.AffectedSOPInstanceUID);
dcmGenerateRootBasedUID(rsp.msg.NCreateRSP.AffectedSOPInstanceUID);
}
rsp.msg.NCreateRSP.DataSetType = DIMSE_DATASET_NULL;
OFBool omitFlag = dviface.getTargetPrintSCPOmitSOPClassUIDFromCreateResponse(cfgname);
......
peerTitle, usePLUTinFilmSession, presentationLUTList))
filmSession = newSession;
char uid[100];
studyInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT));
psSeriesInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT));
imageSeriesInstanceUID.putString(dcmGenerateUniqueIdentifier(uid));
studyInstanceUID.putString(dcmGenerateRootBasedUID(uid, SITE_STUDY_UID_ROOT));
psSeriesInstanceUID.putString(dcmGenerateRootBasedUID(uid, SITE_SERIES_UID_ROOT));
imageSeriesInstanceUID.putString(dcmGenerateRootBasedUID(uid));
} else {
DCMPSTAT_WARN("cannot create film session, out of memory.");
rsp.msg.NCreateRSP.DimseStatus = STATUS_N_ProcessingFailure;
......
}
DVPSHelper::putStringValue(dset, DCM_SOPClassUID, PSTAT_DIMSE_LOG_STORAGE_UID);
DVPSHelper::putStringValue(dset, DCM_SOPInstanceUID, dcmGenerateUniqueIdentifier(uid));
DVPSHelper::putStringValue(dset, DCM_SOPInstanceUID, dcmGenerateRootBasedUID(uid));
DVPSHelper::currentDate(aString);
DVPSHelper::putStringValue(dset, DCM_InstanceCreationDate, aString.c_str());
DVPSHelper::currentTime(aString);
dcmpstat/libsrc/dvpssp.cc
if ((result==EC_Normal)&&(sOPInstanceUID.getLength()==0))
{
result = sOPInstanceUID.putString(dcmGenerateUniqueIdentifier(uid));
result = sOPInstanceUID.putString(dcmGenerateRootBasedUID(uid));
DVPSHelper::currentDate(aString);
if (result==EC_Normal) result = instanceCreationDate.putString(aString.c_str());
DVPSHelper::currentTime(aString);
......
if ((result==EC_Normal)&&(studyInstanceUID.getLength()==0))
{
result = studyInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT));
result = studyInstanceUID.putString(dcmGenerateRootBasedUID(uid, SITE_STUDY_UID_ROOT));
DVPSHelper::currentDate(aString);
if (result==EC_Normal) result = studyDate.putString(aString.c_str());
DVPSHelper::currentTime(aString);
......
{
// generate a new UID for the "global" presentation LUT
char uid[100];
dcmGenerateUniqueIdentifier(uid);
dcmGenerateRootBasedUID(uid);
globalPresentationLUT.setSOPInstanceUID(uid);
result = referencedPresentationLUTInstanceUID.putString(uid);
}
......
{
char instanceuid[100];
const char *lutUID = presentationLUTList.addPresentationLUT(presentationlut, inversePLUT);
return imageBoxContentList.addImageBox(dcmGenerateUniqueIdentifier(instanceuid),
return imageBoxContentList.addImageBox(dcmGenerateRootBasedUID(instanceuid),
retrieveaetitle, refstudyuid, refseriesuid, refsopclassuid,
refsopinstanceuid, requestedimagesize, patientid, lutUID);
}
......
if (displayformat && text)
{
char newuid[70];
dcmGenerateUniqueIdentifier(newuid);
dcmGenerateRootBasedUID(newuid);
deleteAnnotations();
result = annotationContentList.addAnnotationBox(newuid, text, position);
if (EC_Normal==result) result = annotationDisplayFormatID.putString(displayformat);
dcmsign/libsrc/dcsignat.cc
if (result.good())
{
char newUID[66];
dcmGenerateUniqueIdentifier(newUID);
dcmGenerateRootBasedUID(newUID);
DcmUniqueIdentifier *elemSigUID = new DcmUniqueIdentifier(DCM_DigitalSignatureUID);
if (elemSigUID)
{
dcmsr/apps/xml2dsr.cc
if (opt_overwriteUIDs || !dataset->tagExistsWithValue(DCM_StudyInstanceUID))
{
OFLOG_INFO(xml2dsrLogger, "generating new Study Instance UID");
dataset->putAndInsertString(DCM_StudyInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT));
dataset->putAndInsertString(DCM_StudyInstanceUID, dcmGenerateRootBasedUID(uid, SITE_STUDY_UID_ROOT));
}
if (opt_overwriteUIDs || !dataset->tagExistsWithValue(DCM_SeriesInstanceUID))
{
OFLOG_INFO(xml2dsrLogger, "generating new Series Instance UID");
dataset->putAndInsertString(DCM_SeriesInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT));
dataset->putAndInsertString(DCM_SeriesInstanceUID, dcmGenerateRootBasedUID(uid, SITE_SERIES_UID_ROOT));
}
if (opt_overwriteUIDs || !dataset->tagExistsWithValue(DCM_SOPInstanceUID))
{
OFLOG_INFO(xml2dsrLogger, "generating new SOP Instance UID");
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT));
dataset->putAndInsertString(DCM_SOPInstanceUID, dcmGenerateRootBasedUID(uid, SITE_INSTANCE_UID_ROOT));
}
}
/* write DICOM file */
dcmsr/libsrc/dsrdoc.cc
{
if (verboseMode)
DCMSR_DEBUG(" Generating new value for SOP Instance UID");
SOPInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT));
SOPInstanceUID.putString(dcmGenerateRootBasedUID(uid, SITE_INSTANCE_UID_ROOT));
/* set instance creation date to current date (YYYYMMDD) */
InstanceCreationDate.putOFStringArray(currentDate(tmpString));
/* set instance creation time to current time (HHMMSS) */
......
{
if (verboseMode)
DCMSR_DEBUG(" Generating new value for Study Instance UID");
StudyInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT));
StudyInstanceUID.putString(dcmGenerateRootBasedUID(uid, SITE_STUDY_UID_ROOT));
}
/* create new series instance UID if required */
if (SeriesInstanceUID.isEmpty())
{
if (verboseMode)
DCMSR_DEBUG(" Generating new value for Series Instance UID");
SeriesInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT));
SeriesInstanceUID.putString(dcmGenerateRootBasedUID(uid, SITE_SERIES_UID_ROOT));
}
/* check and set content date if required */
ofstd/include/dcmtk/ofstd/ofuuid.h
} Notation;
/**
* A OFFUID with all bits set to zero (0).
* An OFUUID with all bits set to zero (0).
*/
static OFUUID const nil;
/**
* A OFFUID with all bits set to one (1).
* An OFUUID with all bits set to one (1).
*/
static OFUUID const max;
......
/**
* Checks if this OFUUID is equal to @ref OFUUID::max.
* See <a href="https://www.rfc-editor.org/info/rfc9562"> RFC 9562</a>,
* See <a href="https://www.rfc-editor.org/info/rfc9562">RFC 9562</a>,
* section 5.10 for details.
*
* @return OFTrue iff all bits of @ref data_ are one (1).
......
/**
* Checks if this OFUUID is equal to @ref OFUUID::nil.
* See <a href="https://www.rfc-editor.org/info/rfc9562"> RFC 9562</a>,
* See <a href="https://www.rfc-editor.org/info/rfc9562">RFC 9562</a>,
* section 5.9 for details.
*
* @return OFTrue iff all bits of @ref data_ are zero (0).
ofstd/include/dcmtk/ofstd/ofuuidgn.h
*
* @return A OFshared_ptr encapsulating a newly created OFUUID instance.
* @warning The returned object may contain a null pointer (@ref
* OFnullptr_t).
* OFnullptr_t).
*/
static OFshared_ptr<OFUUID> create(rnd8 const & = getRND8);
ofstd/libsrc/ofuuidgn.cc
ms_since_unix_epoch.ladd(OFstatic_cast(Uint32, uli.LowPart));
ms_since_unix_epoch.hadd(OFstatic_cast(Uint32, uli.HighPart));
#else
#else
// struct timeval {
// time_t tv_sec; /* seconds */
    (1-1/1)