#include #include int main() { std::string lorem_ipsum = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do " "eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut " "enim ad minim veniam, quis nostrud exercitation ullamco laboris " "nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in " "reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla " "pariatur. Excepteur sint occaecat cupidatat non proident, sunt in " "culpa qui officia deserunt mollit anim id est laborum."; std::string long_string = lorem_ipsum; while (long_string.size() < 4000) { long_string += " " + lorem_ipsum; } DcmDataset data; OFCondition result; result = data.chooseRepresentation(EXS_LittleEndianExplicit, nullptr); if (!result.good()) { return 2; } result = data.putAndInsertString(DCM_SpecificCharacterSet, "ISO_IR 192"); if (!result.good()) { return 2; } result = data.putAndInsertString(DCM_DetectorDescription, long_string.data(), long_string.size(), true); if (!result.good()) { return 2; } result = data.convertToUTF8(); if (!result.good()) { return 2; } const char* value = nullptr; result = data.findAndGetString(DCM_DetectorDescription, value); if (!result.good()) { return 2; } std::string new_string = value; std::cout << "Results match: " << (long_string == new_string ? "yes": "no") << std::endl; std::cout << "Original size: " << long_string.size() << std::endl; std::cout << "Converted size: " << new_string.size() << std::endl; std::cout << "Original: ..." << long_string.substr(1000, 48) << std::endl; std::cout << "Converted: ..." << new_string.substr(1000, 48) << std::endl; return long_string == new_string ? 1 : 0; }