Feature #362 » e771a0565.diff
| 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 */
|
||