From ead9ed19896ae7671ac212809292c850cca09e18 Mon Sep 17 00:00:00 2001 From: neurolabusc Date: Fri, 25 Oct 2024 08:50:00 -0400 Subject: [PATCH] strncat not strcat (https://github.com/rordenlab/dcm2niix/issues/883) --- BIDS/README.md | 2 +- console/nii_dicom.h | 4 ++-- console/nii_dicom_batch.cpp | 5 ++--- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/BIDS/README.md b/BIDS/README.md index 132f478e..54fa7db6 100644 --- a/BIDS/README.md +++ b/BIDS/README.md @@ -189,7 +189,7 @@ The term ECAT in the comments suggests that values are defined by the [ECAT7](ht |------------------------------|------|----------------------------------|------------| | IsotopeHalfLife | | ECAT | D | | Dosage | | ECAT | D | -| FrameTimesStart | s | DICOM tag 0008,0022 | D | +| FrameTimesStart | s | DICOM tag 0008,0022 | B | | TracerRadionuclide | | DICOM tag 0008,0100 or 0008,0104 | B | | Radiopharmaceutical | | DICOM tag 0018,0031 or ECAT | D | | InjectedRadioactivity | MBq | DICOM tag 0018,1074 | B | diff --git a/console/nii_dicom.h b/console/nii_dicom.h index fa8ce8b4..6934aeed 100644 --- a/console/nii_dicom.h +++ b/console/nii_dicom.h @@ -50,7 +50,7 @@ extern "C" { #define kCPUsuf " " // unknown CPU #endif -#define kDCMdate "v1.0.20241024" +#define kDCMdate "v1.0.20241025" #define kDCMvers kDCMdate " " kJP2suf kLSsuf kCCsuf kCPUsuf static const int kMaxEPI3D = 1024; // maximum number of EPI images in Siemens Mosaic @@ -259,7 +259,7 @@ struct TDICOMdata { float pixelPaddingValue; // used for both FloatPixelPaddingValue (0028, 0122) and PixelPaddingValue (0028, 0120); NaN if not present. double imagingFrequency, acquisitionDuration, triggerDelayTime, RWVScale, RWVIntercept, dateTime, acquisitionTime, acquisitionDate, bandwidthPerPixelPhaseEncode; char parallelAcquisitionTechnique[kDICOMStr], radiopharmaceutical[kDICOMStr], convolutionKernel[kDICOMStr], unitsPT[kDICOMStr], tracerRadionuclide[kDICOMStr], decayCorrection[kDICOMStr], attenuationCorrectionMethod[kDICOMStr], reconstructionMethod[kDICOMStr], transferSyntax[kDICOMStr]; - char deidentificationMethod[kDICOMStr], prescanReuseString[kDICOMStr], imageOrientationText[kDICOMStr], pulseSequenceName[kDICOMStr], coilElements[kDICOMStr], coilName[kDICOMStr], phaseEncodingDirectionDisplayedUIH[kDICOMStr], imageBaseName[kDICOMStr], stationName[kDICOMStr], studyDescription[kDICOMStr], softwareVersions[kDICOMStr], deviceSerialNumber[kDICOMStr], institutionName[kDICOMStr], referringPhysicianName[kDICOMStr], instanceUID[kDICOMStr], seriesInstanceUID[kDICOMStr], studyInstanceUID[kDICOMStr], bodyPartExamined[kDICOMStr], procedureStepDescription[kDICOMStr], imageTypeText[kDICOMStr], imageType[kDICOMStr], institutionalDepartmentName[kDICOMStr], manufacturersModelName[kDICOMStr], patientID[kDICOMStr], patientOrient[kDICOMStr], patientName[kDICOMStr], accessionNumber[kDICOMStr], seriesDescription[kDICOMStr], studyID[kDICOMStr], sequenceName[kDICOMStr], protocolName[kDICOMStr], sequenceVariant[kDICOMStr], scanningSequence[kDICOMStr], patientBirthDate[kDICOMStr], patientAge[kDICOMStr], studyDate[kDICOMStr], studyTime[kDICOMStr]; + char deidentificationMethod[kDICOMStr], prescanReuseString[kDICOMStr], imageOrientationText[kDICOMStr], pulseSequenceName[kDICOMStr], coilElements[kDICOMStr], coilName[kDICOMStr], phaseEncodingDirectionDisplayedUIH[kDICOMStr], imageBaseName[kDICOMStr], stationName[kDICOMStr], studyDescription[kDICOMStr], softwareVersions[kDICOMStr], deviceSerialNumber[kDICOMStr], institutionName[kDICOMStr], referringPhysicianName[kDICOMStr], instanceUID[kDICOMStr], seriesInstanceUID[kDICOMStr], studyInstanceUID[kDICOMStr], bodyPartExamined[kDICOMStr], procedureStepDescription[kDICOMStrLarge], imageTypeText[kDICOMStr], imageType[kDICOMStr], institutionalDepartmentName[kDICOMStr], manufacturersModelName[kDICOMStr], patientID[kDICOMStr], patientOrient[kDICOMStr], patientName[kDICOMStr], accessionNumber[kDICOMStr], seriesDescription[kDICOMStr], studyID[kDICOMStr], sequenceName[kDICOMStr], protocolName[kDICOMStr], sequenceVariant[kDICOMStr], scanningSequence[kDICOMStr], patientBirthDate[kDICOMStr], patientAge[kDICOMStr], studyDate[kDICOMStr], studyTime[kDICOMStr]; char deepLearningText[kDICOMStrLarge], scanOptions[kDICOMStrLarge], institutionAddress[kDICOMStrLarge], imageComments[kDICOMStrLarge]; uint32_t dimensionIndexValues[MAX_NUMBER_OF_DIMENSIONS]; int deID_CS_n; diff --git a/console/nii_dicom_batch.cpp b/console/nii_dicom_batch.cpp index 2aec8038..ed0d53c0 100644 --- a/console/nii_dicom_batch.cpp +++ b/console/nii_dicom_batch.cpp @@ -6861,9 +6861,8 @@ void reportProtocolBlockGE(struct TDICOMdata *d, const char *filename, int isVer char ioptGE[3000] = ""; char seqName[kDICOMStr] = ""; geProtocolBlock(filename, d->protocolBlockStartGE, d->protocolBlockLengthGE, isVerbose, &sliceOrderGE, &viewOrderGE, &mbAccel, &nSlices, &groupDelay, ioptGE, seqName); - // if (strlen(d->procedureStepDescription) < 2) - // strcpy(d->procedureStepDescription, seqName); - strcat(d->procedureStepDescription, seqName); // issue790 + size_t remaining_space = kDICOMStr - strlen(d->procedureStepDescription) - 1; //issue883 + strncat(d->procedureStepDescription, seqName, remaining_space); // issue790 #endif } // bidsGE