Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support datasets that have non-ASCII character set #233

Closed
fedorov opened this issue Mar 30, 2017 · 62 comments
Closed

Support datasets that have non-ASCII character set #233

fedorov opened this issue Mar 30, 2017 · 62 comments
Labels

Comments

@fedorov
Copy link
Member

fedorov commented Mar 30, 2017

Problem (reported by Felix Nensa):

Converter will fail when non-ASCII characters are present in the attribute values, even though this is allowed by the standard.

Solution (suggested by @michaelonken):

If you load the data with DCMTK and you compiled with libiconv support
(or as recently introduced libicu), you can convert any DICOM dataset
to utf-8 by using convertToUTF8(). If successful (i.e. the charset is
valid in the file) all strings returned will be returned as UTF-8.

Need to discuss how to support this in Slicer though. Also, not clear from @michaelonken response whether this will be done transparently by DCMTK when acquisition context is propagated using DcmSegmentation::import().

@fedorov fedorov added the bug label Mar 30, 2017
@pieper
Copy link
Member

pieper commented Mar 30, 2017

I believe right now we do not use libiconv or icu in Slicer's build of DCMTK, so that might need to be addressed (Slicer uses some CTK code that does conversion to unicode using Qt).

That said, I wonder if DCMQI needs to actually worry about character encodings - maybe it can just copy data from input to output? Where in the code do the non-ASCII lead to a problem? Maybe it's only in the file paths and not in the attribute values (we should get a reproducible example from Felix in can case if possible).

@fedorov
Copy link
Member Author

fedorov commented Mar 30, 2017

@pieper, yes, it needn't, in theory - I believe it is just this line (at least for segmentations) https://github.com/QIICR/dcmqi/blob/master/libsrc/ImageSEGConverter.cpp#L35

dcmqi does not touch those strings that are transferred from the source DICOMs. I need to test - perhaps enabling libicu will "magically" fix this issue. As I mentioned, it is not clear what exactly Michael implied.

@pieper
Copy link
Member

pieper commented Mar 30, 2017

@michaelonken can tell me if I'm wrong, but I got the impression that dcmtk will build with libicu if it's installed but won't 'superbuild' it. From a quick look at the ICU site I suspect that building and packaging libicu on all the systems we support might be non-trivial (just because distributing binaries is always non-trivial).

@fedorov
Copy link
Member Author

fedorov commented Mar 30, 2017

Steve, it is my impression too. Yes, it does not look like an easy fix on dcmqi side, even if we leave Slicer out of the picture. Can we discuss how to deal with this sometime next week?

@fedorov
Copy link
Member Author

fedorov commented Mar 30, 2017

Notes from @pieper

Subject: Re: Character set handling in Slicer, was Re: DICOM-SEG issues with DICOM Tags
To: David Clunie
Cc: Felix Nensa, Andrey Fedorov, Simon Bogner, Christian Herz, Michael Onken, Ron Kikinis MD

Thanks for the info David and Michael - I did some more research so let me summarize my findings/understanding:

  • DCMTK, Qt, and CTK as built and used by Slicer seem to handle several international character sets pretty well, but fail on ISO/IEC 2022

  • ISO/IEC 2022 [1] is an older technology and may not be important to support

  • supporting ISO/IEC 2022 appears to require adding libicu [2] to DCMTK, meaning an additional dependency to the CTK superbuild, which is already very complicated. It looks like there is also some support in Qt [3] but I don't know how easy that would be to use.

  • there are other parts of Slicer's infrastructure, like the Subject Hierarchy and DICOM export that do not yet support the more standard character encodings (they display correctly in the database but not when loaded in Slicer). These are higher priorities to fix.

  • I didn't look at dcmqi, but if as Felix reports this also has trouble with international encoding than this will also need to be addressed.

  • I'll mention as a side note that Ron has collaborators in the Canary Islands and he says they just received EU funding for Slicer development with a special requirement for improving internationalization, so perhaps we can pass this information over to them and share the effort.

I guess we can discuss this on a future qiicr call to decide the best course of action. It looks to me like there are some tractable steps that will address the most common and important use cases, while others we can just ignore.

-Steve

[1] https://en.wikipedia.org/wiki/ISO/IEC_2022
[2] http://site.icu-project.org/
[3] http://doc.qt.io/qt-5/codecs-jis.html

@michaelonken
Copy link
Member

michaelonken commented Mar 31, 2017

@pieper

DCMTK uses CMake's find_package in order to find libicu, and uses it if available. libiconv, which can be used as an alternative has to be configured manually by setting libiconv include and libdir during CMake configuration (those path are also pre-set for the libiconv that is in the support package for DCMTK 3.6.0 but that is outdated).

I know that libiconv on Windows needs some patching in order to compile it but it's possible.

I don't know abut libicu compiling or packaging; that has been added to DCMTK just recently and I never used it myself.

DCMTK does not make use of Superbuild features, i.e. you need to have any third party libs installed if you want to use them.

@michaelonken
Copy link
Member

@fedorov

The line with the import() call you quoted is the right one.

And you raise a good point: The import() call imports all character as-is from the input files but does not set a new Specific Character Set in the segmentation object at all. Probably one should copy the character set from the imported dataset (setting the same in the Segmentation), or give an extra parameter to import() that could be the desired destination charset of the segmentation. The latter would fail if charset support is not compiled into DCMTK and the charsets from import and given parameter do not already match. Of course it also fails if conversion is not possible (should not happen when targeting UTF-8 though I guess).

@fedorov
Copy link
Member Author

fedorov commented Apr 3, 2017

@michaelonken so what is the default charset used when creating a segmentation?

Would the problem be solved if the default charset was set to UTF-8, or would it still require the support for iconv/libicu enabled in DCMTK?

@michaelonken
Copy link
Member

It's ASCIII, by attribute Specific Character Set, ie the attribute is not set to a value, so the ASCIII DICOM default kicks.

@pieper
Copy link
Member

pieper commented Apr 3, 2017 via email

@michaelonken
Copy link
Member

No matter whether with or without iconv or icu, it's ascii unless you set Specific Character Set to a value (SOP Common Module).

An automatic charset detection does not work in general, so this must always be a user task. Unless you import from existing datasets, as this is the case for the import() call.

If we would take over Specific Character Set in import(), the user afterwards must take care to follow that imported charset. That's why it could make sense to convert (in or after such an import() call) to UTF 8,so you already know what you get as a user, without checking Specific Character Set after import.

@michaelonken
Copy link
Member

Steve, yes, copying is the safe way, but if you set other charset enabled tag values afterwards, you have to follow that charset! On the other hand there are not many I could think of from the top of my head

@michaelonken
Copy link
Member

(not only afterwards, but of course in general, ie any values that you set and that are not overwritten by import() must match the imported charset)

@fedorov
Copy link
Member Author

fedorov commented Apr 13, 2017

@luckfamousa we discussed this issue with @michaelonken - DCMTK will be fixed to make sure that the SEG objects we create will use the same character set as the source dataset. We will update the issue when this update propagates into dcmqi.

@michaelonken
Copy link
Member

It's now in DCMTK and will be on the public git within this week. I'll drop you a mail, Andrey.

@fedorov
Copy link
Member Author

fedorov commented Apr 24, 2017

from @michaelonken:

I finally rebased the the latest DCMTK testing commits to master and published them in the public git:
http://git.dcmtk.org/?p=dcmtk.git;a=summary
This is the related commit:
http://git.dcmtk.org/?p=dcmtk.git;a=commit;h=acc98d5199260a9f13a5ef1b4ab611608a689823

@fedorov
Copy link
Member Author

fedorov commented Apr 24, 2017

@che85 can you test this by linking to the updated DCMTK and running a converter on a dataset that has non-ASCII characters in the source images?

@che85
Copy link
Member

che85 commented Apr 24, 2017

Sure I can do that.

@che85
Copy link
Member

che85 commented Apr 24, 2017

Do we have any example data for this issue?

@fedorov
Copy link
Member Author

fedorov commented Apr 24, 2017

No, we don't, but I am sure you can make something with your German keyboard layout :)

You can use dcmodify from DCMTK to change PatientName to something that has non-ascii characters.

@che85
Copy link
Member

che85 commented Apr 24, 2017

Hehe yeah I can make something up.

@pieper
Copy link
Member

pieper commented Apr 24, 2017 via email

@che85
Copy link
Member

che85 commented Apr 24, 2017

@pieper I just changed the patient name in your PieperMRHead... ;)

@fedorov
Copy link
Member Author

fedorov commented Apr 24, 2017

@che85 it will be good to test with the datasets Steve pointed to as well.

@che85
Copy link
Member

che85 commented Apr 24, 2017

Yes I am going to test with both as well as both dcmqi versions (with/without updated dcmtk)

@che85
Copy link
Member

che85 commented Apr 24, 2017

@michaelonken I am still getting errors while writing a segmentation dataset

I changed the patient name as follows

dcmodify -m "(0010,0010)"="Ägidius^Günther" *.dcm
W: PatientName (0010,0010) violates VR definition in PatientModule
FATAL ERROR: Writing of the SEG dataset failed! Please report the problem to the developers, ideally accompanied by a de-identified dataset allowing to reproduce the problem!

@che85
Copy link
Member

che85 commented Apr 24, 2017

@dclunie korean_agfa_infinitt_2008-3 does not work with itkimage2segimage:

Input image size: [2320, 2828, 1]
W: StudyID (0020,0010) absent in GeneralStudyModule (type 2)
W: FrameOfReferenceUID (0020,0052) absent in FrameOfReferenceModule (type 1)
W: PositionReferenceIndicator (0020,1040) absent in FrameOfReferenceModule (type 2)
Directions: 1 0 0
0 1 0
0 0 1

Condition failed: Tag not found in /Users/christian/sources/cpp/dcmqi/include/dcmqi/ConverterBase.h:279
libc++abi.dylib: terminating with uncaught exception of type int

The missing tag is DCM_ImagePositionPatient

Executing dciodvfy with that DICOM dataset gives the following output

Warning - Missing attribute or value that would be needed to build DICOMDIR - Study ID
Warning - Value dubious for this VR - (0x0010,0x0010) PN Patient's Name  PN [0] = <)C??????> - Retired Person Name form
Warning - Retired attribute - (0x0008,0x0000) UL Group Length 
Warning - Retired attribute - (0x0010,0x0000) UL Group Length 
Warning - Retired attribute - (0x0018,0x0000) UL Group Length 
Warning - Retired attribute - (0x0019,0x0000) UL Group Length 
Warning - Retired attribute - (0x0020,0x0000) UL Group Length 
Warning - Retired attribute - (0x0028,0x0000) UL Group Length 
Warning - Retired attribute - (0x2020,0x0000) UL Group Length 
Warning - Retired attribute - (0x300a,0x0000) UL Group Length 
Warning - Retired attribute - (0x300e,0x0000) UL Group Length 
Warning - Retired attribute - (0x7fe0,0x0000) UL Group Length 
Warning - Dicom dataset contains retired attributes
CRImage
Error - Missing attribute Type 2 Required Element=<StudyID> Module=<GeneralStudy>
Warning - Value is zero for value 1 of attribute <Patient's Size>
Warning - Value is zero for value 1 of attribute <Patient's Weight>
Error - Attribute present when condition unsatisfied (which may not be present otherwise) Type 2C Conditional Element=<Laterality> Module=<GeneralSeries>
Warning - is only permitted to be empty when actually unknown; should be absent (not empty) if an unpaired body part, and have a value if a paired body part - attribute <Laterality>
Error - Empty attribute (no value) Type 1C Conditional Element=<PixelAspectRatio> Module=<ImagePixelMacro>
Error - May not be present when Imager Pixel Spacing is present - attribute <PixelAspectRatio>
Warning - Value is zero for value 1 of attribute <KVP>
Warning - Value is zero for value 1 of attribute <Exposure>
Warning - Unrecognized defined term <OD REL> for value 1 of attribute <Rescale Type>
Warning - Attribute is not present in standard DICOM IOD - (0x0018,0x1041) DS Contrast/Bolus Volume 
Warning - Attribute is not present in standard DICOM IOD - (0x0018,0x1044) DS Contrast/Bolus Total Dose 
Warning - Attribute is not present in standard DICOM IOD - (0x0028,0x3003) LO LUT Explanation 
Warning - Attribute is not present in standard DICOM IOD - (0x2020,0x0020) CS Polarity 
Warning - Attribute is not present in standard DICOM IOD - (0x300a,0x0212) IS Source Number 
Warning - Attribute is not present in standard DICOM IOD - (0x300a,0x0214) CS Source Type 
Warning - Attribute is not present in standard DICOM IOD - (0x300e,0x0002) CS Approval Status 
Warning - Dicom dataset contains attributes not present in standard DICOM IOD - this is a Standard Extended SOP Class

@michaelonken
Copy link
Member

@che85 Which character set does your console use? I guess UTF-8? What character set is in the file that you are changing the name in (i.e. value of attribute Specific Character Set)?

@fedorov
Copy link
Member Author

fedorov commented Apr 25, 2017

Ah, right - of course! @che85 the testing approach I suggested with manually changing attribute values is not valid! It only makes sense to test with those datasets that have consistent character set, such as those from David. Sorry for a misleading suggestion.

@che85
Copy link
Member

che85 commented Apr 25, 2017

Oh you mean because of the token?

@fedorov
Copy link
Member Author

fedorov commented Apr 25, 2017

yes, I think so. No worries, sorry about the confusion on my side!

@fedorov
Copy link
Member Author

fedorov commented Apr 25, 2017

@che85 what is the hash of dcmtk that you used?

@che85
Copy link
Member

che85 commented Apr 25, 2017

d8ed091cda2b815226eafe41f5b4fe3bd22f8d5d

@fedorov
Copy link
Member Author

fedorov commented Apr 25, 2017

I will make a PR for Slicer dcmtk update

@pieper
Copy link
Member

pieper commented Apr 25, 2017

Yes, if you think this is important to update in Slicer you should go ahead and update the dcmtk hash to match. Be sure to include a description of why in the commit message, ideally with a link to this thread and the DCMTK issues/commits that prompted the need for updating DCMTK.

@fedorov
Copy link
Member Author

fedorov commented Apr 25, 2017

@che85 oh, wait - you were saying your were in the process of testing Slicer build against the updated dcmtk. How did that go?

@che85
Copy link
Member

che85 commented Apr 25, 2017

That didn't well. I am not sure if it's connected to current changes on the Slicer master of dcmtk. That's why you could just create the PR and see if the Build system succeeds.

[ 43%] Built target qMRMLWidgets
make[3]: *** [all] Error 2
make[2]: *** [Slicer-prefix/src/Slicer-stamp/Slicer-build] Error 2
make[1]: *** [CMakeFiles/Slicer.dir/all] Error 2
make: *** [all] Error 2

@che85
Copy link
Member

che85 commented Apr 25, 2017

I will give further information about the error when I build again with -j1

@fedorov
Copy link
Member Author

fedorov commented Apr 25, 2017

I will give further information about the error

That would be helpful! :)

We should test locally, since Slicer CI will only test on Linux (at best, since this is a superbuild dependency, and I am not sure how they test those).

@che85
Copy link
Member

che85 commented Apr 25, 2017

Ok seems like it's related to my local dcmtk

[ 92%] Linking CXX executable ../../../../bin/PETStandardUptakeValueComputationTest
duplicate symbol _yylex_destroy in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yylex in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyget_text in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyset_out in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyget_out in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyrestart in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yy_scan_bytes in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yy_switch_to_buffer in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yy_scan_buffer in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yy_flush_buffer in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yy_delete_buffer in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yy_create_buffer in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyset_lineno in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyget_lineno in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyset_in in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyget_in in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyset_debug in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyget_debug in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yy_scan_string in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyget_leng in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yypop_buffer_state in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yypush_buffer_state in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyfree in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyalloc in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
duplicate symbol _yyrealloc in:
    ../../../../../VTKv7-build/lib/libvtkWrappingTools-7.1.a(vtkParse.tab.c.o)
    /Users/christian/sources/cpp/dcmtk/Build/lib/libdcmdata.a(vrscanl.c.o)
ld: 25 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[5]: *** [bin/PETStandardUptakeValueComputationTest] Error 1
make[4]: *** [Modules/CLI/PETStandardUptakeValueComputation/Testing/CMakeFiles/PETStandardUptakeValueComputationTest.dir/all] Error 2
make[3]: *** [all] Error 2
make[2]: *** [Slicer-prefix/src/Slicer-stamp/Slicer-build] Error 2
make[1]: *** [CMakeFiles/Slicer.dir/all] Error 2
make: *** [all] Error 2

@fedorov
Copy link
Member Author

fedorov commented Apr 26, 2017

I launched a build before leaving office, will update tomorrow!

@che85
Copy link
Member

che85 commented Apr 26, 2017

Just did a clean build and it all works. CMake, CMakeCache and make is still a phenomenon to me...

@jcfr
Copy link
Contributor

jcfr commented Apr 26, 2017

When error like this happen, using the following allow sometimes to get a better understanding:

VERBOSE=1 make NameOfTheTargetThatFail/fast

Did the error you reported (25 duplicate symbols for architecture x86_64) happen when you updated the version of DCMTK within Slicer ?

In the mean time did you updated XCode or any of the library on your machine ? If anything changes in your environment, it is reasonable to expect doing a clean build, ...

It is also possible there are issues in the build system of DCMTK or VTK. What should I do to try to reproduce in my existing build tree ?

@che85
Copy link
Member

che85 commented Apr 26, 2017

I guess it was caused by building DCMTK for OSX_DEPLOYMENT_TARGET 10.12 where I build Slicer for 10.9, after that I build DCMTK for 10.9 and Slicer again and got the above mentioned errors.... I should have cleaned up the build directory

@jcfr
Copy link
Contributor

jcfr commented Apr 26, 2017

I see ... I am not if it would make sense to improve CMake to check if deployment target matches. May be we could add some extra check at the Slicer level to prevent similar error from occurring.

At that stage, I don't know what make sense.

@fedorov
Copy link
Member Author

fedorov commented Apr 26, 2017

My build succeeded as well. I will make a PR to update Slicer.

@fedorov
Copy link
Member Author

fedorov commented Apr 26, 2017

@che85 just realized this - can you please test if this also works while creating pmap? It should, since the changes applied to the component shared between seg and pmap, but it's good to confirm this.

@che85
Copy link
Member

che85 commented Apr 26, 2017

@fedorov I tried with pmap and it works just fine.

P.S. We still don't have MeasurementMethodCode in our meta information generator (http://qiicr.org/dcmqi/#/pmap). That's why itkimage2paramap failed in the first place.

fedorov added a commit to fedorov/Slicer-legacy that referenced this issue Apr 26, 2017
This update is needed to address a bug that prevented proper handling of character
set while importing attributes into DICOM Segmentation object. This was a critical
bug for the dcmqi library, and in turn for QuantitativeReporting extension. See
detailed discussion at QIICR/dcmqi#233.

$ git shortlog DCMTK-3.6.1_20161102..d8ed091 --no-merges
Jan Schlamelcher (82):
      Enhanced C++11 compliance of OFvariant.
      Added macros for controlling compiler diagnostics.
      Suppressed some unnecessary warnings.
      Adjusted a previous commit for older GCC versions.
      Added some missing files to the install steps.
      Added compiler version checks to ofdiag.h etc.
      Suppressed an inappropriate Visual Studio warning.
      Added support for additional compiler diagnostics.
      Several fixes for OFnumeric_limits.
      Suppressed silly Visual Studio warnings in OFvariant.
      Suppressed warnings in OFThread's unit test.
      Fixed an OFnumeric_limits problem regarding C++11.
      Refactored character set conversion classes.
      Several fixes regarding character set conversion.
      Fixed a comment in OFCharacterEncoding.
      Fixed dcm2json when compiling as shared libraries.
      Fixed oflog character set conversion defines.
      Added magic word and version checks to dcmqrdb.
      Added additional information to DcmVR.
      Refactored DcmCharString based classes using DcmVR.
      Added DcmSpecificCharacterSet state checking methods.
      Fixed: ST is also affected by specific character set.
      Refactored dcmqrdb element list to use new/delete.
      Added Specific Character Set to the dcmqrdb index.
      Minor fixes in code comments of yesterdays commits.
      Added missing comment header to several unit tests.
      Added comparison operators for OFDateTime.
      Added string to number helper functions.
      Refactored string to date and time conversion.
      Introduced DcmAttributeMatching.
      Added character set conversion support to dcmqrdb.
      Fixed date time parsing regarding time zones.
      Moved dcmqrdb's trimString() function to OFStandard.
      Added support for additional Matching Keys.
      Added support for Issuer of Patient ID to dcmqrdb.
      Fixed Q/R matching on failed character set conversion.
      Workaround for clang non-type template argument issue.
      Fixed wrong value range check in extractDigits().
      Fixed Visual Studio linker problem with DLLs.
      Fixed digits10 not being a compile time constant.
      Documented dcmqrdb's new character set features.
      Fixed formatting errors in dcmqrscp's man page.
      Updated Makefile dependencies.
      Updated man pages for new development snapshot.
      Updated DCMTK_ABI_VERSION for new development snapshot.
      Updated CHANGES.361 for new development snapshot.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed CMake unit tests when BUILD_APPS was disabled.
      Fixed installing manpages with CMake.
      Fixed previous commit support for old CMake versions.
      Fixed inspecting fundamental arithmetic types.
      Fixed build date definition problem regarding Xcode.
      Modified config to prefer CMake's own FindXXX modules.
      Fixed incorrect usage of FindICU.cmake.
      Replaced OFauto_ptr with OFunique_ptr.
      Updated Makefile dependencies.
      Fixed problems regarding Windows include magic.
      Enhanced the way <windows.h> is included.
      Fixed misleading commit introduced by copy and paste.
      Added dcmpstat and dcmwlm test applications to CMake.
      Refactored DSRListOfItems::EmptyItem.
      Suppressed an inappropriate Visual Studio warning.
      Fixed linking some dcmsr unit tests with MSVC.
      Added test-exhaustive target for CMake.
      Added configure tests for some reentrant functions.
      Refactored low level network API usage.
      Added double quotes around paths in CMake files.
      Added CMake config tests for int64_t and uint64_t.
      Modified CMake configuration regarding MinGW.
      Added config tests for including libc.h and math.h.
      Fixed CTest failing tests that did not compile.
      Fixed a mistake in the code generating arith.h.
      Refactored cross compiling support with MinGW/Wine.
      Fixed and refactored cross compiling for Android.
      Fixed and refactored running the unit tests via CTest.
      Refactored getMACAddress() and its use.
      Fixed a misplaced dllexport/dllimport declaration.
      Workaround for Clang regarding OFerror_category.
      Added some CMake config tests and removed a macro.

Joerg Riesmeier (169):
      Added support for InstanceCreatorUID to readXML().
      Added support for missing "ReportType" values.
      Removed check on arrays being not a null pointer.
      Made "ReportType" optional in XML Schema.
      Made getNumberOfVerifyingObservers() const.
      Added new method hasVerifyingObservers().
      Renamed empty() methods to isEmpty().
      Various Doxygen-related fixes to documentation.
      Enabled Doxygen's WARN_NO_PARAMDOC option.
      Fixed Doxygen-related issues in the documentation.
      Added missing documentation for return values.
      Fixed code value for "Pulse Sequence Name" (CP-1578).
      Added four Color Palette SOP Instances (CP-1584).
      Added support for recently approved CPs.
      Added initial support for Supplement 195.
      Added support for CP-1584 to data dictionary.
      Added support for new UID from Supplement 169.
      Added "Simplified Adult Echo SR" to known types.
      Use macro _LIBICONV_VERSION instead of variable.
      Added support for new SR IOD from Supplement 169.
      Replaced non-ASCII characters.
      Replaced tab characters by spaces.
      Fixed wrong identation with tab characters.
      Replaced non-ASCII character in comment header.
      Added note/warning on size of class instance.
      Fixed wrong reference to conventonal JPEG format.
      Fixed warning re. overloaded virtual function.
      Re-added tab characters removed by last commit.
      Rebuilt Makefile dependencies.
      Fixed issue with option "--display-overlay 0".
      Removed additional library dependencies.
      Updated data dictionary for DICOM 2016e.
      Updated code definitions for DICOM 2016e.
      Now use code constant CODE_DCM_PulseSequenceName.
      Added comments on transfer syntax name changes.
      Updated Context Group classes for DICOM 2016e.
      Updated "dcmrt" classes based on DICOM 2016e.
      Check return value of fgets() to avoid warnings.
      Check return value of write() to avoid warning.
      Replaced boolean modes in convertCharacterSet().
      Added missing API documentation for Doxygen.
      Added tests for "new" Chinese characters sets.
      Added missing character sets to XML Schema.
      Added "Simplified Adult Echo SR" to ReportType.
      Added missing API documentation (Doxygen).
      Limit number of entries in optimization LUT.
      Added (missing) comments.
      Changed the way an unused parameter is treated.
      Fixed various documentation issues.
      Updated note on character set conversion options.
      Fixed source code formatting (where appropriate).
      Renamed isAvailable() and getVersionString().
      Added missing period at the end of descriptions.
      Fixed wrong check on GLIBC macro.
      Added comments on ICU conversions flags.
      Avoid compiler warning on unused parameter.
      Various minor fixes to new "dcm2json" tool.
      Further fixes to source code formatting.
      Removed unused configure variable/definition.
      Fixed incomplete renaming of command line options.
      Added a section on the rendering limitations.
      Let git ignore recently introduced dcm2json tool.
      Added Manpage of recently introduced dcm2json tool.
      Removed "dcmwlm/wwwapps" from ".gitignore".
      Added another character set test (for ISO-IR 58).
      Updated documentation regarding HT delimiter.
      Fixed issue with wrong detection of delimiters.
      Added another character set test (for ISO-IR 149).
      Removed DCMTK's implementation of tempnam().
      Do not set TCP send and receive buffer length.
      Updated latest tested CMake version.
      Fixed warnings reported by VisualStudio 2015.
      Replaced binary ("&") by boolean ("&&") AND.
      Fixed maximum number of bytes to read from stdin.
      Do not disable Nagle algorithm by default.
      Do not pass simple const parameters by reference.
      Simplified output of default option values.
      Minor corrections to documentation/comments.
      Added #warning on DONT_DISABLE_NAGLE_ALGORITHM.
      Made send() and recv() timeout configurable.
      Added new option --socket-timeout to storescu/scp.
      Fixed typos in API documentation.
      Added missing header include (without OpenSSL).
      Removed unused variable from writeJsonOpener().
      Included missing standard header "assert".
      Enhanced comments on charset to library mapping.
      Disable exception throwing in destructor.
      Replaced remaining tabs by spaces.
      Minor cleanup in dump output of TLS connections.
      Added missing brackets to "if( || )" statement.
      Pass value of correct type to "size" parameter.
      Changed type for index/number of sequence items.
      Added explicit typecast to function parameter.
      Removed obsolete macro (Windows 95 workaround).
      Removed gethostbyname from compatibility header.
      Added support for recently approved CP-1619.
      Made sure that a value is loaded before modified.
      Minor fixes for reasons of consistency.
      Use DCM_MaxReadLength as the default value.
      Removed useless "option block" for single option.
      Updated credits with regard to the Debian package.
      Removed obsolete command line options.
      Fixed bug introduced with last commit (crash).
      Fixed description of option --prefer-mpeg4-bd.
      Shortened description of MPEG xfer options.
      Added further support for Supplement 195 (HEVC).
      Check returned status of chooseRepresentation().
      Fixed typo in command line option check.
      Added support for unkown VR "??" in dump file.
      Fixed wrong indentation of new options.
      Fixed wrong name of Storage SOP Class.
      Added new sample association negotiation profile.
      Fixes for non-patient DICOM Storage Objects.
      Further fixes regarding non-patient objects.
      Cleanup of comments (retired DICOM SOP Classes).
      Further enhanced support for non-patient objects.
      Allow for sending non-patient DICOM objects.
      Fixed name numberOfAllDcmStorageSOPClassUIDs.
      Added two missing SOP Classes to modality table.
      Fixed crash while processing an invalid DICOMDIR.
      Enhanced logging in case of error.
      Various documentation fixes to newDicomElement().
      Updated copyright date after previous commit.
      Added trailing "." after first sentence (Doxygen).
      Added parentheses around boolean operations.
      Fixed typo, tab character and trailing space.
      Removed documentation of macro STRICT_COMPARE.
      Updated documentation of getOFDateTimeFromString().
      Updated documentation of getOFTimeFromString().
      Further fixes to API documentation.
      Added "Issuer of Patient ID" to documentation.
      Removed outdated comment on DB_FindAttr struct.
      Moved dcm2json tool to the top (alphabetic order).
      Fixed output of network debug information.
      Manual fixes to data dictionary (DICOM 2017a).
      Added comment on "specific character set" options.
      Removed redundant "TransferSyntax" suffix.
      Fixed wrong comment on private GE transfer syntax.
      Updated code definitions for "SRT".
      Updated the code meaning of a "UCUM" code.
      Fixed copyright date.
      Removed trailing spaces.
      Re-added call of endOptionBlock().
      Updated data dictionary for DICOM 2017a.
      Updated code definitions for DICOM 2017a.
      Updated "dcmrt" classes based on DICOM 2017a.
      Fixed indentation and removed trailing spaces.
      Added standard comments to new CMake files.
      Fixed warning reported by gcc 4.8.5 (Linux).
      Fixed warnings reported by gcc with "-Wshadow".
      Removed unused variable "checkAllStrings".
      Fixed warnings on unused parameters.
      Enhanced logging of interface class DSRDocument.
      Replaced spaces by tabs in comment header.
      Documented that --write-ow is now the default.
      Updated Manpage after --write-us has been added.
      Documented new default value of --data-files-path.
      Removed trailing spaces added by last commit.
      Fixed issue reading XML template identification.
      Fixed minor issues in manpage.
      Enhanced XSD definition of "DecimalString".
      Enhanced XSD definition of "UniqueIdentifier".
      Fixed timezone issue with setISOFormattedTime().
      Fixed API documentation of newDicomElement().
      Separated test for dcmGenerateUniqueIdentifier().
      Disabled check of VR for unsupported charsets.
      Added missing object file to Makefile (Autoconf).
      Fixed non-ASCII character (German umlaut).
      Updated latest tested CMake version.

Marco Eichelberg (58):
      Updated dcmsign to correctly compile with OpenSSL 1.1.0.
      Updated dcmtls and dcmpstat to compile with OpenSSL 1.1.0.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Fixed minor formatting issues.
      Removed unnecessary call to getBaseTag().
      JPEG encoder now writes SOF1 marker in 8-bit ext sequential TS.
      Fixed empty pixel data bug in DcmPixelData::write().
      JPEG decoder now decompresses incomplete bitstreams.
      Improved 8/12/16 bit JPEG code consistency.
      Added legal remark concerning HP's JPEG-LS patents.
      movescu now returns non-zero if c-move was unsuccessful.
      Documented new movescu return codes in man page.
      Fixed signed/unsigned comparison in dcmqrdb module.
      Minor change needed to compile on Cygwin 2.6.0.
      Increased buffer sizes to avoid buffer overflows.
      Use fseek() instead of rewind() on Win32/Cygwin.
      Fixed integer underflow condition.
      Fixed DJDecoderRegistration::registerCodecs().
      Fixed minor integer over/undeflows reported by clang.
      Length check for DICOM implementation version name.
      Fixed responding aetitle in ASC_dumpParameters().
      Delete partially received DICOM objects after error.
      Replaced unlink() with OFStandard::deleteFile().
      Added partial support for GE private transfer syntax.
      Added support for GE private transfer syntax.
      Added support for writing GE private transfer syntax.
      Fixed warnings reported by VS 2017.
      Fixed linker warnings reported by VS 2017.
      OFMutex on Win32 now based on cricital sections.
      Updated macro documentation.
      Parser can now be stopped before a certain tag.
      Updated API documentation.
      Fixed bug introduced with commit f58cfe9.
      JPEG/JPEG-LS padding now uses extended EOI marker.
      Minor API change in dcmjpls.
      Fixed policy CMP0017 warning in CMake 3.7.2.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed DLL compilation of libcharls.
      Fixed bug in dcmsign certification validation code.
      Changed wlmscpfs default data path to current dir.
      dcmquant now by default generates OW LUT data.
      Fixed server socket options on WIN32.
      Explicitly include <winsock2.h> on Windows.
      DCMTK now uses SOCKET data type on Windows.
      Added timeout handler to DUL FSM state 5.
      Fixed conversion of OF/OD to OB in big endian.
      Updated COPYRIGHT file.
      Now setting LossyImageCompression when decompressing.
      Prevent infinite loop in DUL_AbortAssociation.
      Socket handle now always passed as 64-bit on Win32.
      getMacAddress() on Windows now uses GetAdaptersInfo.
      Fixed private tag issue with dump2dcm and xml2dcm.
      Updated Makefile.
      Updated CREDITS.

Michael Onken (36):
      Renamed min() to min2() (macro name clash).
      Avoid warning regarding hidden virtual method.
      Fixed installation of DCMTKConfigVersion.cmake.
      Better SCP timeouts, test, cleanups and more docs.
      Fixed various documentation issues.
      Avoid warnings about shadowed names.
      Fixed warnings about overloaded virtual functions.
      Fixed warning about unused parameter.
      Print conn. timeout to TRACE instead DEBUG level.
      Avoid another variable shadow warning.
      Fixed (harmless) shadowed variable
      Fixed potential NULL pointer and implicit casts.
      Added hints that memory has to be freed by caller.
      Added missing documentation.
      Fixed User Identification Negotiation ack message.
      Fixed minor documnetation issue.
      Fixed minor documentation issue.
      Report error in case of wrong Pixel Data encoding.
      Fixed parameter type, and docs.
      Fixed dcumentation one more time.
      Moved latest post-read checks to DcmDataset.
      Fixed crash in debug mode (const pointer misuse).
      Remove unused files from build system.
      Rebuilt dependencies.
      Hide public element constructors setting length.
      Fixed missing assignment from last commit.
      Added error message when writing sequences.
      Fixed wrong buffer size for sprintf.
      Allow private tags creation in newDicomElement().
      Fixed module name in documentation.
      Added support for final text CP-1619.
      Fix backslash quoting for Windows --fork mode.
      Check override keys in img2dcm library code.
      Warn if patient name may lead to broken dir name.
      Take over charset on import. Minor changes.
      Ensure SPS/RP Description/Code is never empty.

Nikolas Goldhammer (2):
      Fixed OFStandard::atof() not handling "NaN".
      Introduced OFerror_code and related functionalities.

OFFIS DICOM Team (1):
      Fixed typo in method name and API docs.

Sebastian Grallert (10):
      Fixed suppressing overflow warnings with Clang.
      Added support for the DICOM JSON Model (part 18 F).
      Added MPEG-4 transfer syntax options to several apps.
      Removed unused command line parameters from dcm2json.
      Fixed and enhanced documentation of JSON functions.
      Added command line options for HEVC/H.265.
      Small fix for HEVC/H.265 commit.
      Again, a small fix for HEVC/H.265 commit.
      Added unique section labels in DCMTK man pages.
      Fixed the encoding section in dcm2json man page.

Thorben Hasenpusch (1):
      Fixed OFSemaphore for macOS.
fedorov added a commit to fedorov/Slicer-legacy that referenced this issue Apr 26, 2017
This update is needed to address a bug that prevented proper handling of character
set while importing attributes into DICOM Segmentation object. This was a critical
bug for the dcmqi library, and in turn for QuantitativeReporting extension. See
detailed discussion at QIICR/dcmqi#233.

$ git shortlog DCMTK-3.6.1_20161102..d8ed091 --no-merges
Jan Schlamelcher (82):
      Enhanced C++11 compliance of OFvariant.
      Added macros for controlling compiler diagnostics.
      Suppressed some unnecessary warnings.
      Adjusted a previous commit for older GCC versions.
      Added some missing files to the install steps.
      Added compiler version checks to ofdiag.h etc.
      Suppressed an inappropriate Visual Studio warning.
      Added support for additional compiler diagnostics.
      Several fixes for OFnumeric_limits.
      Suppressed silly Visual Studio warnings in OFvariant.
      Suppressed warnings in OFThread's unit test.
      Fixed an OFnumeric_limits problem regarding C++11.
      Refactored character set conversion classes.
      Several fixes regarding character set conversion.
      Fixed a comment in OFCharacterEncoding.
      Fixed dcm2json when compiling as shared libraries.
      Fixed oflog character set conversion defines.
      Added magic word and version checks to dcmqrdb.
      Added additional information to DcmVR.
      Refactored DcmCharString based classes using DcmVR.
      Added DcmSpecificCharacterSet state checking methods.
      Fixed: ST is also affected by specific character set.
      Refactored dcmqrdb element list to use new/delete.
      Added Specific Character Set to the dcmqrdb index.
      Minor fixes in code comments of yesterdays commits.
      Added missing comment header to several unit tests.
      Added comparison operators for OFDateTime.
      Added string to number helper functions.
      Refactored string to date and time conversion.
      Introduced DcmAttributeMatching.
      Added character set conversion support to dcmqrdb.
      Fixed date time parsing regarding time zones.
      Moved dcmqrdb's trimString() function to OFStandard.
      Added support for additional Matching Keys.
      Added support for Issuer of Patient ID to dcmqrdb.
      Fixed Q/R matching on failed character set conversion.
      Workaround for clang non-type template argument issue.
      Fixed wrong value range check in extractDigits().
      Fixed Visual Studio linker problem with DLLs.
      Fixed digits10 not being a compile time constant.
      Documented dcmqrdb's new character set features.
      Fixed formatting errors in dcmqrscp's man page.
      Updated Makefile dependencies.
      Updated man pages for new development snapshot.
      Updated DCMTK_ABI_VERSION for new development snapshot.
      Updated CHANGES.361 for new development snapshot.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed CMake unit tests when BUILD_APPS was disabled.
      Fixed installing manpages with CMake.
      Fixed previous commit support for old CMake versions.
      Fixed inspecting fundamental arithmetic types.
      Fixed build date definition problem regarding Xcode.
      Modified config to prefer CMake's own FindXXX modules.
      Fixed incorrect usage of FindICU.cmake.
      Replaced OFauto_ptr with OFunique_ptr.
      Updated Makefile dependencies.
      Fixed problems regarding Windows include magic.
      Enhanced the way <windows.h> is included.
      Fixed misleading commit introduced by copy and paste.
      Added dcmpstat and dcmwlm test applications to CMake.
      Refactored DSRListOfItems::EmptyItem.
      Suppressed an inappropriate Visual Studio warning.
      Fixed linking some dcmsr unit tests with MSVC.
      Added test-exhaustive target for CMake.
      Added configure tests for some reentrant functions.
      Refactored low level network API usage.
      Added double quotes around paths in CMake files.
      Added CMake config tests for int64_t and uint64_t.
      Modified CMake configuration regarding MinGW.
      Added config tests for including libc.h and math.h.
      Fixed CTest failing tests that did not compile.
      Fixed a mistake in the code generating arith.h.
      Refactored cross compiling support with MinGW/Wine.
      Fixed and refactored cross compiling for Android.
      Fixed and refactored running the unit tests via CTest.
      Refactored getMACAddress() and its use.
      Fixed a misplaced dllexport/dllimport declaration.
      Workaround for Clang regarding OFerror_category.
      Added some CMake config tests and removed a macro.

Joerg Riesmeier (169):
      Added support for InstanceCreatorUID to readXML().
      Added support for missing "ReportType" values.
      Removed check on arrays being not a null pointer.
      Made "ReportType" optional in XML Schema.
      Made getNumberOfVerifyingObservers() const.
      Added new method hasVerifyingObservers().
      Renamed empty() methods to isEmpty().
      Various Doxygen-related fixes to documentation.
      Enabled Doxygen's WARN_NO_PARAMDOC option.
      Fixed Doxygen-related issues in the documentation.
      Added missing documentation for return values.
      Fixed code value for "Pulse Sequence Name" (CP-1578).
      Added four Color Palette SOP Instances (CP-1584).
      Added support for recently approved CPs.
      Added initial support for Supplement 195.
      Added support for CP-1584 to data dictionary.
      Added support for new UID from Supplement 169.
      Added "Simplified Adult Echo SR" to known types.
      Use macro _LIBICONV_VERSION instead of variable.
      Added support for new SR IOD from Supplement 169.
      Replaced non-ASCII characters.
      Replaced tab characters by spaces.
      Fixed wrong identation with tab characters.
      Replaced non-ASCII character in comment header.
      Added note/warning on size of class instance.
      Fixed wrong reference to conventonal JPEG format.
      Fixed warning re. overloaded virtual function.
      Re-added tab characters removed by last commit.
      Rebuilt Makefile dependencies.
      Fixed issue with option "--display-overlay 0".
      Removed additional library dependencies.
      Updated data dictionary for DICOM 2016e.
      Updated code definitions for DICOM 2016e.
      Now use code constant CODE_DCM_PulseSequenceName.
      Added comments on transfer syntax name changes.
      Updated Context Group classes for DICOM 2016e.
      Updated "dcmrt" classes based on DICOM 2016e.
      Check return value of fgets() to avoid warnings.
      Check return value of write() to avoid warning.
      Replaced boolean modes in convertCharacterSet().
      Added missing API documentation for Doxygen.
      Added tests for "new" Chinese characters sets.
      Added missing character sets to XML Schema.
      Added "Simplified Adult Echo SR" to ReportType.
      Added missing API documentation (Doxygen).
      Limit number of entries in optimization LUT.
      Added (missing) comments.
      Changed the way an unused parameter is treated.
      Fixed various documentation issues.
      Updated note on character set conversion options.
      Fixed source code formatting (where appropriate).
      Renamed isAvailable() and getVersionString().
      Added missing period at the end of descriptions.
      Fixed wrong check on GLIBC macro.
      Added comments on ICU conversions flags.
      Avoid compiler warning on unused parameter.
      Various minor fixes to new "dcm2json" tool.
      Further fixes to source code formatting.
      Removed unused configure variable/definition.
      Fixed incomplete renaming of command line options.
      Added a section on the rendering limitations.
      Let git ignore recently introduced dcm2json tool.
      Added Manpage of recently introduced dcm2json tool.
      Removed "dcmwlm/wwwapps" from ".gitignore".
      Added another character set test (for ISO-IR 58).
      Updated documentation regarding HT delimiter.
      Fixed issue with wrong detection of delimiters.
      Added another character set test (for ISO-IR 149).
      Removed DCMTK's implementation of tempnam().
      Do not set TCP send and receive buffer length.
      Updated latest tested CMake version.
      Fixed warnings reported by VisualStudio 2015.
      Replaced binary ("&") by boolean ("&&") AND.
      Fixed maximum number of bytes to read from stdin.
      Do not disable Nagle algorithm by default.
      Do not pass simple const parameters by reference.
      Simplified output of default option values.
      Minor corrections to documentation/comments.
      Added #warning on DONT_DISABLE_NAGLE_ALGORITHM.
      Made send() and recv() timeout configurable.
      Added new option --socket-timeout to storescu/scp.
      Fixed typos in API documentation.
      Added missing header include (without OpenSSL).
      Removed unused variable from writeJsonOpener().
      Included missing standard header "assert".
      Enhanced comments on charset to library mapping.
      Disable exception throwing in destructor.
      Replaced remaining tabs by spaces.
      Minor cleanup in dump output of TLS connections.
      Added missing brackets to "if( || )" statement.
      Pass value of correct type to "size" parameter.
      Changed type for index/number of sequence items.
      Added explicit typecast to function parameter.
      Removed obsolete macro (Windows 95 workaround).
      Removed gethostbyname from compatibility header.
      Added support for recently approved CP-1619.
      Made sure that a value is loaded before modified.
      Minor fixes for reasons of consistency.
      Use DCM_MaxReadLength as the default value.
      Removed useless "option block" for single option.
      Updated credits with regard to the Debian package.
      Removed obsolete command line options.
      Fixed bug introduced with last commit (crash).
      Fixed description of option --prefer-mpeg4-bd.
      Shortened description of MPEG xfer options.
      Added further support for Supplement 195 (HEVC).
      Check returned status of chooseRepresentation().
      Fixed typo in command line option check.
      Added support for unkown VR "??" in dump file.
      Fixed wrong indentation of new options.
      Fixed wrong name of Storage SOP Class.
      Added new sample association negotiation profile.
      Fixes for non-patient DICOM Storage Objects.
      Further fixes regarding non-patient objects.
      Cleanup of comments (retired DICOM SOP Classes).
      Further enhanced support for non-patient objects.
      Allow for sending non-patient DICOM objects.
      Fixed name numberOfAllDcmStorageSOPClassUIDs.
      Added two missing SOP Classes to modality table.
      Fixed crash while processing an invalid DICOMDIR.
      Enhanced logging in case of error.
      Various documentation fixes to newDicomElement().
      Updated copyright date after previous commit.
      Added trailing "." after first sentence (Doxygen).
      Added parentheses around boolean operations.
      Fixed typo, tab character and trailing space.
      Removed documentation of macro STRICT_COMPARE.
      Updated documentation of getOFDateTimeFromString().
      Updated documentation of getOFTimeFromString().
      Further fixes to API documentation.
      Added "Issuer of Patient ID" to documentation.
      Removed outdated comment on DB_FindAttr struct.
      Moved dcm2json tool to the top (alphabetic order).
      Fixed output of network debug information.
      Manual fixes to data dictionary (DICOM 2017a).
      Added comment on "specific character set" options.
      Removed redundant "TransferSyntax" suffix.
      Fixed wrong comment on private GE transfer syntax.
      Updated code definitions for "SRT".
      Updated the code meaning of a "UCUM" code.
      Fixed copyright date.
      Removed trailing spaces.
      Re-added call of endOptionBlock().
      Updated data dictionary for DICOM 2017a.
      Updated code definitions for DICOM 2017a.
      Updated "dcmrt" classes based on DICOM 2017a.
      Fixed indentation and removed trailing spaces.
      Added standard comments to new CMake files.
      Fixed warning reported by gcc 4.8.5 (Linux).
      Fixed warnings reported by gcc with "-Wshadow".
      Removed unused variable "checkAllStrings".
      Fixed warnings on unused parameters.
      Enhanced logging of interface class DSRDocument.
      Replaced spaces by tabs in comment header.
      Documented that --write-ow is now the default.
      Updated Manpage after --write-us has been added.
      Documented new default value of --data-files-path.
      Removed trailing spaces added by last commit.
      Fixed issue reading XML template identification.
      Fixed minor issues in manpage.
      Enhanced XSD definition of "DecimalString".
      Enhanced XSD definition of "UniqueIdentifier".
      Fixed timezone issue with setISOFormattedTime().
      Fixed API documentation of newDicomElement().
      Separated test for dcmGenerateUniqueIdentifier().
      Disabled check of VR for unsupported charsets.
      Added missing object file to Makefile (Autoconf).
      Fixed non-ASCII character (German umlaut).
      Updated latest tested CMake version.

Marco Eichelberg (58):
      Updated dcmsign to correctly compile with OpenSSL 1.1.0.
      Updated dcmtls and dcmpstat to compile with OpenSSL 1.1.0.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Fixed minor formatting issues.
      Removed unnecessary call to getBaseTag().
      JPEG encoder now writes SOF1 marker in 8-bit ext sequential TS.
      Fixed empty pixel data bug in DcmPixelData::write().
      JPEG decoder now decompresses incomplete bitstreams.
      Improved 8/12/16 bit JPEG code consistency.
      Added legal remark concerning HP's JPEG-LS patents.
      movescu now returns non-zero if c-move was unsuccessful.
      Documented new movescu return codes in man page.
      Fixed signed/unsigned comparison in dcmqrdb module.
      Minor change needed to compile on Cygwin 2.6.0.
      Increased buffer sizes to avoid buffer overflows.
      Use fseek() instead of rewind() on Win32/Cygwin.
      Fixed integer underflow condition.
      Fixed DJDecoderRegistration::registerCodecs().
      Fixed minor integer over/undeflows reported by clang.
      Length check for DICOM implementation version name.
      Fixed responding aetitle in ASC_dumpParameters().
      Delete partially received DICOM objects after error.
      Replaced unlink() with OFStandard::deleteFile().
      Added partial support for GE private transfer syntax.
      Added support for GE private transfer syntax.
      Added support for writing GE private transfer syntax.
      Fixed warnings reported by VS 2017.
      Fixed linker warnings reported by VS 2017.
      OFMutex on Win32 now based on cricital sections.
      Updated macro documentation.
      Parser can now be stopped before a certain tag.
      Updated API documentation.
      Fixed bug introduced with commit f58cfe9.
      JPEG/JPEG-LS padding now uses extended EOI marker.
      Minor API change in dcmjpls.
      Fixed policy CMP0017 warning in CMake 3.7.2.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed DLL compilation of libcharls.
      Fixed bug in dcmsign certification validation code.
      Changed wlmscpfs default data path to current dir.
      dcmquant now by default generates OW LUT data.
      Fixed server socket options on WIN32.
      Explicitly include <winsock2.h> on Windows.
      DCMTK now uses SOCKET data type on Windows.
      Added timeout handler to DUL FSM state 5.
      Fixed conversion of OF/OD to OB in big endian.
      Updated COPYRIGHT file.
      Now setting LossyImageCompression when decompressing.
      Prevent infinite loop in DUL_AbortAssociation.
      Socket handle now always passed as 64-bit on Win32.
      getMacAddress() on Windows now uses GetAdaptersInfo.
      Fixed private tag issue with dump2dcm and xml2dcm.
      Updated Makefile.
      Updated CREDITS.

Michael Onken (36):
      Renamed min() to min2() (macro name clash).
      Avoid warning regarding hidden virtual method.
      Fixed installation of DCMTKConfigVersion.cmake.
      Better SCP timeouts, test, cleanups and more docs.
      Fixed various documentation issues.
      Avoid warnings about shadowed names.
      Fixed warnings about overloaded virtual functions.
      Fixed warning about unused parameter.
      Print conn. timeout to TRACE instead DEBUG level.
      Avoid another variable shadow warning.
      Fixed (harmless) shadowed variable
      Fixed potential NULL pointer and implicit casts.
      Added hints that memory has to be freed by caller.
      Added missing documentation.
      Fixed User Identification Negotiation ack message.
      Fixed minor documnetation issue.
      Fixed minor documentation issue.
      Report error in case of wrong Pixel Data encoding.
      Fixed parameter type, and docs.
      Fixed dcumentation one more time.
      Moved latest post-read checks to DcmDataset.
      Fixed crash in debug mode (const pointer misuse).
      Remove unused files from build system.
      Rebuilt dependencies.
      Hide public element constructors setting length.
      Fixed missing assignment from last commit.
      Added error message when writing sequences.
      Fixed wrong buffer size for sprintf.
      Allow private tags creation in newDicomElement().
      Fixed module name in documentation.
      Added support for final text CP-1619.
      Fix backslash quoting for Windows --fork mode.
      Check override keys in img2dcm library code.
      Warn if patient name may lead to broken dir name.
      Take over charset on import. Minor changes.
      Ensure SPS/RP Description/Code is never empty.

Nikolas Goldhammer (2):
      Fixed OFStandard::atof() not handling "NaN".
      Introduced OFerror_code and related functionalities.

OFFIS DICOM Team (1):
      Fixed typo in method name and API docs.

Sebastian Grallert (10):
      Fixed suppressing overflow warnings with Clang.
      Added support for the DICOM JSON Model (part 18 F).
      Added MPEG-4 transfer syntax options to several apps.
      Removed unused command line parameters from dcm2json.
      Fixed and enhanced documentation of JSON functions.
      Added command line options for HEVC/H.265.
      Small fix for HEVC/H.265 commit.
      Again, a small fix for HEVC/H.265 commit.
      Added unique section labels in DCMTK man pages.
      Fixed the encoding section in dcm2json man page.

Thorben Hasenpusch (1):
      Fixed OFSemaphore for macOS.
fedorov added a commit to fedorov/Slicer-legacy that referenced this issue Apr 26, 2017
This update is needed to address a bug that prevented proper handling of character
set while importing attributes into DICOM Segmentation object. This was a critical
bug for the dcmqi library, and in turn for QuantitativeReporting extension. See
detailed discussion at QIICR/dcmqi#233.

$ git shortlog DCMTK-3.6.1_20161102..d8ed091 --no-merges
Jan Schlamelcher (82):
      Enhanced C++11 compliance of OFvariant.
      Added macros for controlling compiler diagnostics.
      Suppressed some unnecessary warnings.
      Adjusted a previous commit for older GCC versions.
      Added some missing files to the install steps.
      Added compiler version checks to ofdiag.h etc.
      Suppressed an inappropriate Visual Studio warning.
      Added support for additional compiler diagnostics.
      Several fixes for OFnumeric_limits.
      Suppressed silly Visual Studio warnings in OFvariant.
      Suppressed warnings in OFThread's unit test.
      Fixed an OFnumeric_limits problem regarding C++11.
      Refactored character set conversion classes.
      Several fixes regarding character set conversion.
      Fixed a comment in OFCharacterEncoding.
      Fixed dcm2json when compiling as shared libraries.
      Fixed oflog character set conversion defines.
      Added magic word and version checks to dcmqrdb.
      Added additional information to DcmVR.
      Refactored DcmCharString based classes using DcmVR.
      Added DcmSpecificCharacterSet state checking methods.
      Fixed: ST is also affected by specific character set.
      Refactored dcmqrdb element list to use new/delete.
      Added Specific Character Set to the dcmqrdb index.
      Minor fixes in code comments of yesterdays commits.
      Added missing comment header to several unit tests.
      Added comparison operators for OFDateTime.
      Added string to number helper functions.
      Refactored string to date and time conversion.
      Introduced DcmAttributeMatching.
      Added character set conversion support to dcmqrdb.
      Fixed date time parsing regarding time zones.
      Moved dcmqrdb's trimString() function to OFStandard.
      Added support for additional Matching Keys.
      Added support for Issuer of Patient ID to dcmqrdb.
      Fixed Q/R matching on failed character set conversion.
      Workaround for clang non-type template argument issue.
      Fixed wrong value range check in extractDigits().
      Fixed Visual Studio linker problem with DLLs.
      Fixed digits10 not being a compile time constant.
      Documented dcmqrdb's new character set features.
      Fixed formatting errors in dcmqrscp's man page.
      Updated Makefile dependencies.
      Updated man pages for new development snapshot.
      Updated DCMTK_ABI_VERSION for new development snapshot.
      Updated CHANGES.361 for new development snapshot.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed CMake unit tests when BUILD_APPS was disabled.
      Fixed installing manpages with CMake.
      Fixed previous commit support for old CMake versions.
      Fixed inspecting fundamental arithmetic types.
      Fixed build date definition problem regarding Xcode.
      Modified config to prefer CMake's own FindXXX modules.
      Fixed incorrect usage of FindICU.cmake.
      Replaced OFauto_ptr with OFunique_ptr.
      Updated Makefile dependencies.
      Fixed problems regarding Windows include magic.
      Enhanced the way <windows.h> is included.
      Fixed misleading commit introduced by copy and paste.
      Added dcmpstat and dcmwlm test applications to CMake.
      Refactored DSRListOfItems::EmptyItem.
      Suppressed an inappropriate Visual Studio warning.
      Fixed linking some dcmsr unit tests with MSVC.
      Added test-exhaustive target for CMake.
      Added configure tests for some reentrant functions.
      Refactored low level network API usage.
      Added double quotes around paths in CMake files.
      Added CMake config tests for int64_t and uint64_t.
      Modified CMake configuration regarding MinGW.
      Added config tests for including libc.h and math.h.
      Fixed CTest failing tests that did not compile.
      Fixed a mistake in the code generating arith.h.
      Refactored cross compiling support with MinGW/Wine.
      Fixed and refactored cross compiling for Android.
      Fixed and refactored running the unit tests via CTest.
      Refactored getMACAddress() and its use.
      Fixed a misplaced dllexport/dllimport declaration.
      Workaround for Clang regarding OFerror_category.
      Added some CMake config tests and removed a macro.

Joerg Riesmeier (169):
      Added support for InstanceCreatorUID to readXML().
      Added support for missing "ReportType" values.
      Removed check on arrays being not a null pointer.
      Made "ReportType" optional in XML Schema.
      Made getNumberOfVerifyingObservers() const.
      Added new method hasVerifyingObservers().
      Renamed empty() methods to isEmpty().
      Various Doxygen-related fixes to documentation.
      Enabled Doxygen's WARN_NO_PARAMDOC option.
      Fixed Doxygen-related issues in the documentation.
      Added missing documentation for return values.
      Fixed code value for "Pulse Sequence Name" (CP-1578).
      Added four Color Palette SOP Instances (CP-1584).
      Added support for recently approved CPs.
      Added initial support for Supplement 195.
      Added support for CP-1584 to data dictionary.
      Added support for new UID from Supplement 169.
      Added "Simplified Adult Echo SR" to known types.
      Use macro _LIBICONV_VERSION instead of variable.
      Added support for new SR IOD from Supplement 169.
      Replaced non-ASCII characters.
      Replaced tab characters by spaces.
      Fixed wrong identation with tab characters.
      Replaced non-ASCII character in comment header.
      Added note/warning on size of class instance.
      Fixed wrong reference to conventonal JPEG format.
      Fixed warning re. overloaded virtual function.
      Re-added tab characters removed by last commit.
      Rebuilt Makefile dependencies.
      Fixed issue with option "--display-overlay 0".
      Removed additional library dependencies.
      Updated data dictionary for DICOM 2016e.
      Updated code definitions for DICOM 2016e.
      Now use code constant CODE_DCM_PulseSequenceName.
      Added comments on transfer syntax name changes.
      Updated Context Group classes for DICOM 2016e.
      Updated "dcmrt" classes based on DICOM 2016e.
      Check return value of fgets() to avoid warnings.
      Check return value of write() to avoid warning.
      Replaced boolean modes in convertCharacterSet().
      Added missing API documentation for Doxygen.
      Added tests for "new" Chinese characters sets.
      Added missing character sets to XML Schema.
      Added "Simplified Adult Echo SR" to ReportType.
      Added missing API documentation (Doxygen).
      Limit number of entries in optimization LUT.
      Added (missing) comments.
      Changed the way an unused parameter is treated.
      Fixed various documentation issues.
      Updated note on character set conversion options.
      Fixed source code formatting (where appropriate).
      Renamed isAvailable() and getVersionString().
      Added missing period at the end of descriptions.
      Fixed wrong check on GLIBC macro.
      Added comments on ICU conversions flags.
      Avoid compiler warning on unused parameter.
      Various minor fixes to new "dcm2json" tool.
      Further fixes to source code formatting.
      Removed unused configure variable/definition.
      Fixed incomplete renaming of command line options.
      Added a section on the rendering limitations.
      Let git ignore recently introduced dcm2json tool.
      Added Manpage of recently introduced dcm2json tool.
      Removed "dcmwlm/wwwapps" from ".gitignore".
      Added another character set test (for ISO-IR 58).
      Updated documentation regarding HT delimiter.
      Fixed issue with wrong detection of delimiters.
      Added another character set test (for ISO-IR 149).
      Removed DCMTK's implementation of tempnam().
      Do not set TCP send and receive buffer length.
      Updated latest tested CMake version.
      Fixed warnings reported by VisualStudio 2015.
      Replaced binary ("&") by boolean ("&&") AND.
      Fixed maximum number of bytes to read from stdin.
      Do not disable Nagle algorithm by default.
      Do not pass simple const parameters by reference.
      Simplified output of default option values.
      Minor corrections to documentation/comments.
      Added #warning on DONT_DISABLE_NAGLE_ALGORITHM.
      Made send() and recv() timeout configurable.
      Added new option --socket-timeout to storescu/scp.
      Fixed typos in API documentation.
      Added missing header include (without OpenSSL).
      Removed unused variable from writeJsonOpener().
      Included missing standard header "assert".
      Enhanced comments on charset to library mapping.
      Disable exception throwing in destructor.
      Replaced remaining tabs by spaces.
      Minor cleanup in dump output of TLS connections.
      Added missing brackets to "if( || )" statement.
      Pass value of correct type to "size" parameter.
      Changed type for index/number of sequence items.
      Added explicit typecast to function parameter.
      Removed obsolete macro (Windows 95 workaround).
      Removed gethostbyname from compatibility header.
      Added support for recently approved CP-1619.
      Made sure that a value is loaded before modified.
      Minor fixes for reasons of consistency.
      Use DCM_MaxReadLength as the default value.
      Removed useless "option block" for single option.
      Updated credits with regard to the Debian package.
      Removed obsolete command line options.
      Fixed bug introduced with last commit (crash).
      Fixed description of option --prefer-mpeg4-bd.
      Shortened description of MPEG xfer options.
      Added further support for Supplement 195 (HEVC).
      Check returned status of chooseRepresentation().
      Fixed typo in command line option check.
      Added support for unkown VR "??" in dump file.
      Fixed wrong indentation of new options.
      Fixed wrong name of Storage SOP Class.
      Added new sample association negotiation profile.
      Fixes for non-patient DICOM Storage Objects.
      Further fixes regarding non-patient objects.
      Cleanup of comments (retired DICOM SOP Classes).
      Further enhanced support for non-patient objects.
      Allow for sending non-patient DICOM objects.
      Fixed name numberOfAllDcmStorageSOPClassUIDs.
      Added two missing SOP Classes to modality table.
      Fixed crash while processing an invalid DICOMDIR.
      Enhanced logging in case of error.
      Various documentation fixes to newDicomElement().
      Updated copyright date after previous commit.
      Added trailing "." after first sentence (Doxygen).
      Added parentheses around boolean operations.
      Fixed typo, tab character and trailing space.
      Removed documentation of macro STRICT_COMPARE.
      Updated documentation of getOFDateTimeFromString().
      Updated documentation of getOFTimeFromString().
      Further fixes to API documentation.
      Added "Issuer of Patient ID" to documentation.
      Removed outdated comment on DB_FindAttr struct.
      Moved dcm2json tool to the top (alphabetic order).
      Fixed output of network debug information.
      Manual fixes to data dictionary (DICOM 2017a).
      Added comment on "specific character set" options.
      Removed redundant "TransferSyntax" suffix.
      Fixed wrong comment on private GE transfer syntax.
      Updated code definitions for "SRT".
      Updated the code meaning of a "UCUM" code.
      Fixed copyright date.
      Removed trailing spaces.
      Re-added call of endOptionBlock().
      Updated data dictionary for DICOM 2017a.
      Updated code definitions for DICOM 2017a.
      Updated "dcmrt" classes based on DICOM 2017a.
      Fixed indentation and removed trailing spaces.
      Added standard comments to new CMake files.
      Fixed warning reported by gcc 4.8.5 (Linux).
      Fixed warnings reported by gcc with "-Wshadow".
      Removed unused variable "checkAllStrings".
      Fixed warnings on unused parameters.
      Enhanced logging of interface class DSRDocument.
      Replaced spaces by tabs in comment header.
      Documented that --write-ow is now the default.
      Updated Manpage after --write-us has been added.
      Documented new default value of --data-files-path.
      Removed trailing spaces added by last commit.
      Fixed issue reading XML template identification.
      Fixed minor issues in manpage.
      Enhanced XSD definition of "DecimalString".
      Enhanced XSD definition of "UniqueIdentifier".
      Fixed timezone issue with setISOFormattedTime().
      Fixed API documentation of newDicomElement().
      Separated test for dcmGenerateUniqueIdentifier().
      Disabled check of VR for unsupported charsets.
      Added missing object file to Makefile (Autoconf).
      Fixed non-ASCII character (German umlaut).
      Updated latest tested CMake version.

Marco Eichelberg (58):
      Updated dcmsign to correctly compile with OpenSSL 1.1.0.
      Updated dcmtls and dcmpstat to compile with OpenSSL 1.1.0.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Fixed minor formatting issues.
      Removed unnecessary call to getBaseTag().
      JPEG encoder now writes SOF1 marker in 8-bit ext sequential TS.
      Fixed empty pixel data bug in DcmPixelData::write().
      JPEG decoder now decompresses incomplete bitstreams.
      Improved 8/12/16 bit JPEG code consistency.
      Added legal remark concerning HP's JPEG-LS patents.
      movescu now returns non-zero if c-move was unsuccessful.
      Documented new movescu return codes in man page.
      Fixed signed/unsigned comparison in dcmqrdb module.
      Minor change needed to compile on Cygwin 2.6.0.
      Increased buffer sizes to avoid buffer overflows.
      Use fseek() instead of rewind() on Win32/Cygwin.
      Fixed integer underflow condition.
      Fixed DJDecoderRegistration::registerCodecs().
      Fixed minor integer over/undeflows reported by clang.
      Length check for DICOM implementation version name.
      Fixed responding aetitle in ASC_dumpParameters().
      Delete partially received DICOM objects after error.
      Replaced unlink() with OFStandard::deleteFile().
      Added partial support for GE private transfer syntax.
      Added support for GE private transfer syntax.
      Added support for writing GE private transfer syntax.
      Fixed warnings reported by VS 2017.
      Fixed linker warnings reported by VS 2017.
      OFMutex on Win32 now based on cricital sections.
      Updated macro documentation.
      Parser can now be stopped before a certain tag.
      Updated API documentation.
      Fixed bug introduced with commit f58cfe9.
      JPEG/JPEG-LS padding now uses extended EOI marker.
      Minor API change in dcmjpls.
      Fixed policy CMP0017 warning in CMake 3.7.2.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed DLL compilation of libcharls.
      Fixed bug in dcmsign certification validation code.
      Changed wlmscpfs default data path to current dir.
      dcmquant now by default generates OW LUT data.
      Fixed server socket options on WIN32.
      Explicitly include <winsock2.h> on Windows.
      DCMTK now uses SOCKET data type on Windows.
      Added timeout handler to DUL FSM state 5.
      Fixed conversion of OF/OD to OB in big endian.
      Updated COPYRIGHT file.
      Now setting LossyImageCompression when decompressing.
      Prevent infinite loop in DUL_AbortAssociation.
      Socket handle now always passed as 64-bit on Win32.
      getMacAddress() on Windows now uses GetAdaptersInfo.
      Fixed private tag issue with dump2dcm and xml2dcm.
      Updated Makefile.
      Updated CREDITS.

Michael Onken (36):
      Renamed min() to min2() (macro name clash).
      Avoid warning regarding hidden virtual method.
      Fixed installation of DCMTKConfigVersion.cmake.
      Better SCP timeouts, test, cleanups and more docs.
      Fixed various documentation issues.
      Avoid warnings about shadowed names.
      Fixed warnings about overloaded virtual functions.
      Fixed warning about unused parameter.
      Print conn. timeout to TRACE instead DEBUG level.
      Avoid another variable shadow warning.
      Fixed (harmless) shadowed variable
      Fixed potential NULL pointer and implicit casts.
      Added hints that memory has to be freed by caller.
      Added missing documentation.
      Fixed User Identification Negotiation ack message.
      Fixed minor documnetation issue.
      Fixed minor documentation issue.
      Report error in case of wrong Pixel Data encoding.
      Fixed parameter type, and docs.
      Fixed dcumentation one more time.
      Moved latest post-read checks to DcmDataset.
      Fixed crash in debug mode (const pointer misuse).
      Remove unused files from build system.
      Rebuilt dependencies.
      Hide public element constructors setting length.
      Fixed missing assignment from last commit.
      Added error message when writing sequences.
      Fixed wrong buffer size for sprintf.
      Allow private tags creation in newDicomElement().
      Fixed module name in documentation.
      Added support for final text CP-1619.
      Fix backslash quoting for Windows --fork mode.
      Check override keys in img2dcm library code.
      Warn if patient name may lead to broken dir name.
      Take over charset on import. Minor changes.
      Ensure SPS/RP Description/Code is never empty.

Nikolas Goldhammer (2):
      Fixed OFStandard::atof() not handling "NaN".
      Introduced OFerror_code and related functionalities.

OFFIS DICOM Team (1):
      Fixed typo in method name and API docs.

Sebastian Grallert (10):
      Fixed suppressing overflow warnings with Clang.
      Added support for the DICOM JSON Model (part 18 F).
      Added MPEG-4 transfer syntax options to several apps.
      Removed unused command line parameters from dcm2json.
      Fixed and enhanced documentation of JSON functions.
      Added command line options for HEVC/H.265.
      Small fix for HEVC/H.265 commit.
      Again, a small fix for HEVC/H.265 commit.
      Added unique section labels in DCMTK man pages.
      Fixed the encoding section in dcm2json man page.

Thorben Hasenpusch (1):
      Fixed OFSemaphore for macOS.
fedorov added a commit to fedorov/Slicer-legacy that referenced this issue Apr 27, 2017
This update is needed to address a bug that prevented proper handling of character
set while importing attributes into DICOM Segmentation object. This was a critical
bug for the dcmqi library, and in turn for QuantitativeReporting extension. See
detailed discussion at QIICR/dcmqi#233.

$ git shortlog DCMTK-3.6.1_20161102..d8ed091 --no-merges
Jan Schlamelcher (82):
      Enhanced C++11 compliance of OFvariant.
      Added macros for controlling compiler diagnostics.
      Suppressed some unnecessary warnings.
      Adjusted a previous commit for older GCC versions.
      Added some missing files to the install steps.
      Added compiler version checks to ofdiag.h etc.
      Suppressed an inappropriate Visual Studio warning.
      Added support for additional compiler diagnostics.
      Several fixes for OFnumeric_limits.
      Suppressed silly Visual Studio warnings in OFvariant.
      Suppressed warnings in OFThread's unit test.
      Fixed an OFnumeric_limits problem regarding C++11.
      Refactored character set conversion classes.
      Several fixes regarding character set conversion.
      Fixed a comment in OFCharacterEncoding.
      Fixed dcm2json when compiling as shared libraries.
      Fixed oflog character set conversion defines.
      Added magic word and version checks to dcmqrdb.
      Added additional information to DcmVR.
      Refactored DcmCharString based classes using DcmVR.
      Added DcmSpecificCharacterSet state checking methods.
      Fixed: ST is also affected by specific character set.
      Refactored dcmqrdb element list to use new/delete.
      Added Specific Character Set to the dcmqrdb index.
      Minor fixes in code comments of yesterdays commits.
      Added missing comment header to several unit tests.
      Added comparison operators for OFDateTime.
      Added string to number helper functions.
      Refactored string to date and time conversion.
      Introduced DcmAttributeMatching.
      Added character set conversion support to dcmqrdb.
      Fixed date time parsing regarding time zones.
      Moved dcmqrdb's trimString() function to OFStandard.
      Added support for additional Matching Keys.
      Added support for Issuer of Patient ID to dcmqrdb.
      Fixed Q/R matching on failed character set conversion.
      Workaround for clang non-type template argument issue.
      Fixed wrong value range check in extractDigits().
      Fixed Visual Studio linker problem with DLLs.
      Fixed digits10 not being a compile time constant.
      Documented dcmqrdb's new character set features.
      Fixed formatting errors in dcmqrscp's man page.
      Updated Makefile dependencies.
      Updated man pages for new development snapshot.
      Updated DCMTK_ABI_VERSION for new development snapshot.
      Updated CHANGES.361 for new development snapshot.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed CMake unit tests when BUILD_APPS was disabled.
      Fixed installing manpages with CMake.
      Fixed previous commit support for old CMake versions.
      Fixed inspecting fundamental arithmetic types.
      Fixed build date definition problem regarding Xcode.
      Modified config to prefer CMake's own FindXXX modules.
      Fixed incorrect usage of FindICU.cmake.
      Replaced OFauto_ptr with OFunique_ptr.
      Updated Makefile dependencies.
      Fixed problems regarding Windows include magic.
      Enhanced the way <windows.h> is included.
      Fixed misleading commit introduced by copy and paste.
      Added dcmpstat and dcmwlm test applications to CMake.
      Refactored DSRListOfItems::EmptyItem.
      Suppressed an inappropriate Visual Studio warning.
      Fixed linking some dcmsr unit tests with MSVC.
      Added test-exhaustive target for CMake.
      Added configure tests for some reentrant functions.
      Refactored low level network API usage.
      Added double quotes around paths in CMake files.
      Added CMake config tests for int64_t and uint64_t.
      Modified CMake configuration regarding MinGW.
      Added config tests for including libc.h and math.h.
      Fixed CTest failing tests that did not compile.
      Fixed a mistake in the code generating arith.h.
      Refactored cross compiling support with MinGW/Wine.
      Fixed and refactored cross compiling for Android.
      Fixed and refactored running the unit tests via CTest.
      Refactored getMACAddress() and its use.
      Fixed a misplaced dllexport/dllimport declaration.
      Workaround for Clang regarding OFerror_category.
      Added some CMake config tests and removed a macro.

Joerg Riesmeier (169):
      Added support for InstanceCreatorUID to readXML().
      Added support for missing "ReportType" values.
      Removed check on arrays being not a null pointer.
      Made "ReportType" optional in XML Schema.
      Made getNumberOfVerifyingObservers() const.
      Added new method hasVerifyingObservers().
      Renamed empty() methods to isEmpty().
      Various Doxygen-related fixes to documentation.
      Enabled Doxygen's WARN_NO_PARAMDOC option.
      Fixed Doxygen-related issues in the documentation.
      Added missing documentation for return values.
      Fixed code value for "Pulse Sequence Name" (CP-1578).
      Added four Color Palette SOP Instances (CP-1584).
      Added support for recently approved CPs.
      Added initial support for Supplement 195.
      Added support for CP-1584 to data dictionary.
      Added support for new UID from Supplement 169.
      Added "Simplified Adult Echo SR" to known types.
      Use macro _LIBICONV_VERSION instead of variable.
      Added support for new SR IOD from Supplement 169.
      Replaced non-ASCII characters.
      Replaced tab characters by spaces.
      Fixed wrong identation with tab characters.
      Replaced non-ASCII character in comment header.
      Added note/warning on size of class instance.
      Fixed wrong reference to conventonal JPEG format.
      Fixed warning re. overloaded virtual function.
      Re-added tab characters removed by last commit.
      Rebuilt Makefile dependencies.
      Fixed issue with option "--display-overlay 0".
      Removed additional library dependencies.
      Updated data dictionary for DICOM 2016e.
      Updated code definitions for DICOM 2016e.
      Now use code constant CODE_DCM_PulseSequenceName.
      Added comments on transfer syntax name changes.
      Updated Context Group classes for DICOM 2016e.
      Updated "dcmrt" classes based on DICOM 2016e.
      Check return value of fgets() to avoid warnings.
      Check return value of write() to avoid warning.
      Replaced boolean modes in convertCharacterSet().
      Added missing API documentation for Doxygen.
      Added tests for "new" Chinese characters sets.
      Added missing character sets to XML Schema.
      Added "Simplified Adult Echo SR" to ReportType.
      Added missing API documentation (Doxygen).
      Limit number of entries in optimization LUT.
      Added (missing) comments.
      Changed the way an unused parameter is treated.
      Fixed various documentation issues.
      Updated note on character set conversion options.
      Fixed source code formatting (where appropriate).
      Renamed isAvailable() and getVersionString().
      Added missing period at the end of descriptions.
      Fixed wrong check on GLIBC macro.
      Added comments on ICU conversions flags.
      Avoid compiler warning on unused parameter.
      Various minor fixes to new "dcm2json" tool.
      Further fixes to source code formatting.
      Removed unused configure variable/definition.
      Fixed incomplete renaming of command line options.
      Added a section on the rendering limitations.
      Let git ignore recently introduced dcm2json tool.
      Added Manpage of recently introduced dcm2json tool.
      Removed "dcmwlm/wwwapps" from ".gitignore".
      Added another character set test (for ISO-IR 58).
      Updated documentation regarding HT delimiter.
      Fixed issue with wrong detection of delimiters.
      Added another character set test (for ISO-IR 149).
      Removed DCMTK's implementation of tempnam().
      Do not set TCP send and receive buffer length.
      Updated latest tested CMake version.
      Fixed warnings reported by VisualStudio 2015.
      Replaced binary ("&") by boolean ("&&") AND.
      Fixed maximum number of bytes to read from stdin.
      Do not disable Nagle algorithm by default.
      Do not pass simple const parameters by reference.
      Simplified output of default option values.
      Minor corrections to documentation/comments.
      Added #warning on DONT_DISABLE_NAGLE_ALGORITHM.
      Made send() and recv() timeout configurable.
      Added new option --socket-timeout to storescu/scp.
      Fixed typos in API documentation.
      Added missing header include (without OpenSSL).
      Removed unused variable from writeJsonOpener().
      Included missing standard header "assert".
      Enhanced comments on charset to library mapping.
      Disable exception throwing in destructor.
      Replaced remaining tabs by spaces.
      Minor cleanup in dump output of TLS connections.
      Added missing brackets to "if( || )" statement.
      Pass value of correct type to "size" parameter.
      Changed type for index/number of sequence items.
      Added explicit typecast to function parameter.
      Removed obsolete macro (Windows 95 workaround).
      Removed gethostbyname from compatibility header.
      Added support for recently approved CP-1619.
      Made sure that a value is loaded before modified.
      Minor fixes for reasons of consistency.
      Use DCM_MaxReadLength as the default value.
      Removed useless "option block" for single option.
      Updated credits with regard to the Debian package.
      Removed obsolete command line options.
      Fixed bug introduced with last commit (crash).
      Fixed description of option --prefer-mpeg4-bd.
      Shortened description of MPEG xfer options.
      Added further support for Supplement 195 (HEVC).
      Check returned status of chooseRepresentation().
      Fixed typo in command line option check.
      Added support for unkown VR "??" in dump file.
      Fixed wrong indentation of new options.
      Fixed wrong name of Storage SOP Class.
      Added new sample association negotiation profile.
      Fixes for non-patient DICOM Storage Objects.
      Further fixes regarding non-patient objects.
      Cleanup of comments (retired DICOM SOP Classes).
      Further enhanced support for non-patient objects.
      Allow for sending non-patient DICOM objects.
      Fixed name numberOfAllDcmStorageSOPClassUIDs.
      Added two missing SOP Classes to modality table.
      Fixed crash while processing an invalid DICOMDIR.
      Enhanced logging in case of error.
      Various documentation fixes to newDicomElement().
      Updated copyright date after previous commit.
      Added trailing "." after first sentence (Doxygen).
      Added parentheses around boolean operations.
      Fixed typo, tab character and trailing space.
      Removed documentation of macro STRICT_COMPARE.
      Updated documentation of getOFDateTimeFromString().
      Updated documentation of getOFTimeFromString().
      Further fixes to API documentation.
      Added "Issuer of Patient ID" to documentation.
      Removed outdated comment on DB_FindAttr struct.
      Moved dcm2json tool to the top (alphabetic order).
      Fixed output of network debug information.
      Manual fixes to data dictionary (DICOM 2017a).
      Added comment on "specific character set" options.
      Removed redundant "TransferSyntax" suffix.
      Fixed wrong comment on private GE transfer syntax.
      Updated code definitions for "SRT".
      Updated the code meaning of a "UCUM" code.
      Fixed copyright date.
      Removed trailing spaces.
      Re-added call of endOptionBlock().
      Updated data dictionary for DICOM 2017a.
      Updated code definitions for DICOM 2017a.
      Updated "dcmrt" classes based on DICOM 2017a.
      Fixed indentation and removed trailing spaces.
      Added standard comments to new CMake files.
      Fixed warning reported by gcc 4.8.5 (Linux).
      Fixed warnings reported by gcc with "-Wshadow".
      Removed unused variable "checkAllStrings".
      Fixed warnings on unused parameters.
      Enhanced logging of interface class DSRDocument.
      Replaced spaces by tabs in comment header.
      Documented that --write-ow is now the default.
      Updated Manpage after --write-us has been added.
      Documented new default value of --data-files-path.
      Removed trailing spaces added by last commit.
      Fixed issue reading XML template identification.
      Fixed minor issues in manpage.
      Enhanced XSD definition of "DecimalString".
      Enhanced XSD definition of "UniqueIdentifier".
      Fixed timezone issue with setISOFormattedTime().
      Fixed API documentation of newDicomElement().
      Separated test for dcmGenerateUniqueIdentifier().
      Disabled check of VR for unsupported charsets.
      Added missing object file to Makefile (Autoconf).
      Fixed non-ASCII character (German umlaut).
      Updated latest tested CMake version.

Marco Eichelberg (58):
      Updated dcmsign to correctly compile with OpenSSL 1.1.0.
      Updated dcmtls and dcmpstat to compile with OpenSSL 1.1.0.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Fixed minor formatting issues.
      Removed unnecessary call to getBaseTag().
      JPEG encoder now writes SOF1 marker in 8-bit ext sequential TS.
      Fixed empty pixel data bug in DcmPixelData::write().
      JPEG decoder now decompresses incomplete bitstreams.
      Improved 8/12/16 bit JPEG code consistency.
      Added legal remark concerning HP's JPEG-LS patents.
      movescu now returns non-zero if c-move was unsuccessful.
      Documented new movescu return codes in man page.
      Fixed signed/unsigned comparison in dcmqrdb module.
      Minor change needed to compile on Cygwin 2.6.0.
      Increased buffer sizes to avoid buffer overflows.
      Use fseek() instead of rewind() on Win32/Cygwin.
      Fixed integer underflow condition.
      Fixed DJDecoderRegistration::registerCodecs().
      Fixed minor integer over/undeflows reported by clang.
      Length check for DICOM implementation version name.
      Fixed responding aetitle in ASC_dumpParameters().
      Delete partially received DICOM objects after error.
      Replaced unlink() with OFStandard::deleteFile().
      Added partial support for GE private transfer syntax.
      Added support for GE private transfer syntax.
      Added support for writing GE private transfer syntax.
      Fixed warnings reported by VS 2017.
      Fixed linker warnings reported by VS 2017.
      OFMutex on Win32 now based on cricital sections.
      Updated macro documentation.
      Parser can now be stopped before a certain tag.
      Updated API documentation.
      Fixed bug introduced with commit f58cfe9.
      JPEG/JPEG-LS padding now uses extended EOI marker.
      Minor API change in dcmjpls.
      Fixed policy CMP0017 warning in CMake 3.7.2.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed DLL compilation of libcharls.
      Fixed bug in dcmsign certification validation code.
      Changed wlmscpfs default data path to current dir.
      dcmquant now by default generates OW LUT data.
      Fixed server socket options on WIN32.
      Explicitly include <winsock2.h> on Windows.
      DCMTK now uses SOCKET data type on Windows.
      Added timeout handler to DUL FSM state 5.
      Fixed conversion of OF/OD to OB in big endian.
      Updated COPYRIGHT file.
      Now setting LossyImageCompression when decompressing.
      Prevent infinite loop in DUL_AbortAssociation.
      Socket handle now always passed as 64-bit on Win32.
      getMacAddress() on Windows now uses GetAdaptersInfo.
      Fixed private tag issue with dump2dcm and xml2dcm.
      Updated Makefile.
      Updated CREDITS.

Michael Onken (36):
      Renamed min() to min2() (macro name clash).
      Avoid warning regarding hidden virtual method.
      Fixed installation of DCMTKConfigVersion.cmake.
      Better SCP timeouts, test, cleanups and more docs.
      Fixed various documentation issues.
      Avoid warnings about shadowed names.
      Fixed warnings about overloaded virtual functions.
      Fixed warning about unused parameter.
      Print conn. timeout to TRACE instead DEBUG level.
      Avoid another variable shadow warning.
      Fixed (harmless) shadowed variable
      Fixed potential NULL pointer and implicit casts.
      Added hints that memory has to be freed by caller.
      Added missing documentation.
      Fixed User Identification Negotiation ack message.
      Fixed minor documnetation issue.
      Fixed minor documentation issue.
      Report error in case of wrong Pixel Data encoding.
      Fixed parameter type, and docs.
      Fixed dcumentation one more time.
      Moved latest post-read checks to DcmDataset.
      Fixed crash in debug mode (const pointer misuse).
      Remove unused files from build system.
      Rebuilt dependencies.
      Hide public element constructors setting length.
      Fixed missing assignment from last commit.
      Added error message when writing sequences.
      Fixed wrong buffer size for sprintf.
      Allow private tags creation in newDicomElement().
      Fixed module name in documentation.
      Added support for final text CP-1619.
      Fix backslash quoting for Windows --fork mode.
      Check override keys in img2dcm library code.
      Warn if patient name may lead to broken dir name.
      Take over charset on import. Minor changes.
      Ensure SPS/RP Description/Code is never empty.

Nikolas Goldhammer (2):
      Fixed OFStandard::atof() not handling "NaN".
      Introduced OFerror_code and related functionalities.

OFFIS DICOM Team (1):
      Fixed typo in method name and API docs.

Sebastian Grallert (10):
      Fixed suppressing overflow warnings with Clang.
      Added support for the DICOM JSON Model (part 18 F).
      Added MPEG-4 transfer syntax options to several apps.
      Removed unused command line parameters from dcm2json.
      Fixed and enhanced documentation of JSON functions.
      Added command line options for HEVC/H.265.
      Small fix for HEVC/H.265 commit.
      Again, a small fix for HEVC/H.265 commit.
      Added unique section labels in DCMTK man pages.
      Fixed the encoding section in dcm2json man page.

Thorben Hasenpusch (1):
      Fixed OFSemaphore for macOS.
fedorov added a commit to fedorov/Slicer-legacy that referenced this issue Apr 27, 2017
This update is needed to address a bug that prevented proper handling of character
set while importing attributes into DICOM Segmentation object. This was a critical
bug for the dcmqi library, and in turn for QuantitativeReporting extension. See
detailed discussion at QIICR/dcmqi#233.

$ git shortlog DCMTK-3.6.1_20161102..d8ed091 --no-merges
Jan Schlamelcher (82):
      Enhanced C++11 compliance of OFvariant.
      Added macros for controlling compiler diagnostics.
      Suppressed some unnecessary warnings.
      Adjusted a previous commit for older GCC versions.
      Added some missing files to the install steps.
      Added compiler version checks to ofdiag.h etc.
      Suppressed an inappropriate Visual Studio warning.
      Added support for additional compiler diagnostics.
      Several fixes for OFnumeric_limits.
      Suppressed silly Visual Studio warnings in OFvariant.
      Suppressed warnings in OFThread's unit test.
      Fixed an OFnumeric_limits problem regarding C++11.
      Refactored character set conversion classes.
      Several fixes regarding character set conversion.
      Fixed a comment in OFCharacterEncoding.
      Fixed dcm2json when compiling as shared libraries.
      Fixed oflog character set conversion defines.
      Added magic word and version checks to dcmqrdb.
      Added additional information to DcmVR.
      Refactored DcmCharString based classes using DcmVR.
      Added DcmSpecificCharacterSet state checking methods.
      Fixed: ST is also affected by specific character set.
      Refactored dcmqrdb element list to use new/delete.
      Added Specific Character Set to the dcmqrdb index.
      Minor fixes in code comments of yesterdays commits.
      Added missing comment header to several unit tests.
      Added comparison operators for OFDateTime.
      Added string to number helper functions.
      Refactored string to date and time conversion.
      Introduced DcmAttributeMatching.
      Added character set conversion support to dcmqrdb.
      Fixed date time parsing regarding time zones.
      Moved dcmqrdb's trimString() function to OFStandard.
      Added support for additional Matching Keys.
      Added support for Issuer of Patient ID to dcmqrdb.
      Fixed Q/R matching on failed character set conversion.
      Workaround for clang non-type template argument issue.
      Fixed wrong value range check in extractDigits().
      Fixed Visual Studio linker problem with DLLs.
      Fixed digits10 not being a compile time constant.
      Documented dcmqrdb's new character set features.
      Fixed formatting errors in dcmqrscp's man page.
      Updated Makefile dependencies.
      Updated man pages for new development snapshot.
      Updated DCMTK_ABI_VERSION for new development snapshot.
      Updated CHANGES.361 for new development snapshot.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed CMake unit tests when BUILD_APPS was disabled.
      Fixed installing manpages with CMake.
      Fixed previous commit support for old CMake versions.
      Fixed inspecting fundamental arithmetic types.
      Fixed build date definition problem regarding Xcode.
      Modified config to prefer CMake's own FindXXX modules.
      Fixed incorrect usage of FindICU.cmake.
      Replaced OFauto_ptr with OFunique_ptr.
      Updated Makefile dependencies.
      Fixed problems regarding Windows include magic.
      Enhanced the way <windows.h> is included.
      Fixed misleading commit introduced by copy and paste.
      Added dcmpstat and dcmwlm test applications to CMake.
      Refactored DSRListOfItems::EmptyItem.
      Suppressed an inappropriate Visual Studio warning.
      Fixed linking some dcmsr unit tests with MSVC.
      Added test-exhaustive target for CMake.
      Added configure tests for some reentrant functions.
      Refactored low level network API usage.
      Added double quotes around paths in CMake files.
      Added CMake config tests for int64_t and uint64_t.
      Modified CMake configuration regarding MinGW.
      Added config tests for including libc.h and math.h.
      Fixed CTest failing tests that did not compile.
      Fixed a mistake in the code generating arith.h.
      Refactored cross compiling support with MinGW/Wine.
      Fixed and refactored cross compiling for Android.
      Fixed and refactored running the unit tests via CTest.
      Refactored getMACAddress() and its use.
      Fixed a misplaced dllexport/dllimport declaration.
      Workaround for Clang regarding OFerror_category.
      Added some CMake config tests and removed a macro.

Joerg Riesmeier (169):
      Added support for InstanceCreatorUID to readXML().
      Added support for missing "ReportType" values.
      Removed check on arrays being not a null pointer.
      Made "ReportType" optional in XML Schema.
      Made getNumberOfVerifyingObservers() const.
      Added new method hasVerifyingObservers().
      Renamed empty() methods to isEmpty().
      Various Doxygen-related fixes to documentation.
      Enabled Doxygen's WARN_NO_PARAMDOC option.
      Fixed Doxygen-related issues in the documentation.
      Added missing documentation for return values.
      Fixed code value for "Pulse Sequence Name" (CP-1578).
      Added four Color Palette SOP Instances (CP-1584).
      Added support for recently approved CPs.
      Added initial support for Supplement 195.
      Added support for CP-1584 to data dictionary.
      Added support for new UID from Supplement 169.
      Added "Simplified Adult Echo SR" to known types.
      Use macro _LIBICONV_VERSION instead of variable.
      Added support for new SR IOD from Supplement 169.
      Replaced non-ASCII characters.
      Replaced tab characters by spaces.
      Fixed wrong identation with tab characters.
      Replaced non-ASCII character in comment header.
      Added note/warning on size of class instance.
      Fixed wrong reference to conventonal JPEG format.
      Fixed warning re. overloaded virtual function.
      Re-added tab characters removed by last commit.
      Rebuilt Makefile dependencies.
      Fixed issue with option "--display-overlay 0".
      Removed additional library dependencies.
      Updated data dictionary for DICOM 2016e.
      Updated code definitions for DICOM 2016e.
      Now use code constant CODE_DCM_PulseSequenceName.
      Added comments on transfer syntax name changes.
      Updated Context Group classes for DICOM 2016e.
      Updated "dcmrt" classes based on DICOM 2016e.
      Check return value of fgets() to avoid warnings.
      Check return value of write() to avoid warning.
      Replaced boolean modes in convertCharacterSet().
      Added missing API documentation for Doxygen.
      Added tests for "new" Chinese characters sets.
      Added missing character sets to XML Schema.
      Added "Simplified Adult Echo SR" to ReportType.
      Added missing API documentation (Doxygen).
      Limit number of entries in optimization LUT.
      Added (missing) comments.
      Changed the way an unused parameter is treated.
      Fixed various documentation issues.
      Updated note on character set conversion options.
      Fixed source code formatting (where appropriate).
      Renamed isAvailable() and getVersionString().
      Added missing period at the end of descriptions.
      Fixed wrong check on GLIBC macro.
      Added comments on ICU conversions flags.
      Avoid compiler warning on unused parameter.
      Various minor fixes to new "dcm2json" tool.
      Further fixes to source code formatting.
      Removed unused configure variable/definition.
      Fixed incomplete renaming of command line options.
      Added a section on the rendering limitations.
      Let git ignore recently introduced dcm2json tool.
      Added Manpage of recently introduced dcm2json tool.
      Removed "dcmwlm/wwwapps" from ".gitignore".
      Added another character set test (for ISO-IR 58).
      Updated documentation regarding HT delimiter.
      Fixed issue with wrong detection of delimiters.
      Added another character set test (for ISO-IR 149).
      Removed DCMTK's implementation of tempnam().
      Do not set TCP send and receive buffer length.
      Updated latest tested CMake version.
      Fixed warnings reported by VisualStudio 2015.
      Replaced binary ("&") by boolean ("&&") AND.
      Fixed maximum number of bytes to read from stdin.
      Do not disable Nagle algorithm by default.
      Do not pass simple const parameters by reference.
      Simplified output of default option values.
      Minor corrections to documentation/comments.
      Added #warning on DONT_DISABLE_NAGLE_ALGORITHM.
      Made send() and recv() timeout configurable.
      Added new option --socket-timeout to storescu/scp.
      Fixed typos in API documentation.
      Added missing header include (without OpenSSL).
      Removed unused variable from writeJsonOpener().
      Included missing standard header "assert".
      Enhanced comments on charset to library mapping.
      Disable exception throwing in destructor.
      Replaced remaining tabs by spaces.
      Minor cleanup in dump output of TLS connections.
      Added missing brackets to "if( || )" statement.
      Pass value of correct type to "size" parameter.
      Changed type for index/number of sequence items.
      Added explicit typecast to function parameter.
      Removed obsolete macro (Windows 95 workaround).
      Removed gethostbyname from compatibility header.
      Added support for recently approved CP-1619.
      Made sure that a value is loaded before modified.
      Minor fixes for reasons of consistency.
      Use DCM_MaxReadLength as the default value.
      Removed useless "option block" for single option.
      Updated credits with regard to the Debian package.
      Removed obsolete command line options.
      Fixed bug introduced with last commit (crash).
      Fixed description of option --prefer-mpeg4-bd.
      Shortened description of MPEG xfer options.
      Added further support for Supplement 195 (HEVC).
      Check returned status of chooseRepresentation().
      Fixed typo in command line option check.
      Added support for unkown VR "??" in dump file.
      Fixed wrong indentation of new options.
      Fixed wrong name of Storage SOP Class.
      Added new sample association negotiation profile.
      Fixes for non-patient DICOM Storage Objects.
      Further fixes regarding non-patient objects.
      Cleanup of comments (retired DICOM SOP Classes).
      Further enhanced support for non-patient objects.
      Allow for sending non-patient DICOM objects.
      Fixed name numberOfAllDcmStorageSOPClassUIDs.
      Added two missing SOP Classes to modality table.
      Fixed crash while processing an invalid DICOMDIR.
      Enhanced logging in case of error.
      Various documentation fixes to newDicomElement().
      Updated copyright date after previous commit.
      Added trailing "." after first sentence (Doxygen).
      Added parentheses around boolean operations.
      Fixed typo, tab character and trailing space.
      Removed documentation of macro STRICT_COMPARE.
      Updated documentation of getOFDateTimeFromString().
      Updated documentation of getOFTimeFromString().
      Further fixes to API documentation.
      Added "Issuer of Patient ID" to documentation.
      Removed outdated comment on DB_FindAttr struct.
      Moved dcm2json tool to the top (alphabetic order).
      Fixed output of network debug information.
      Manual fixes to data dictionary (DICOM 2017a).
      Added comment on "specific character set" options.
      Removed redundant "TransferSyntax" suffix.
      Fixed wrong comment on private GE transfer syntax.
      Updated code definitions for "SRT".
      Updated the code meaning of a "UCUM" code.
      Fixed copyright date.
      Removed trailing spaces.
      Re-added call of endOptionBlock().
      Updated data dictionary for DICOM 2017a.
      Updated code definitions for DICOM 2017a.
      Updated "dcmrt" classes based on DICOM 2017a.
      Fixed indentation and removed trailing spaces.
      Added standard comments to new CMake files.
      Fixed warning reported by gcc 4.8.5 (Linux).
      Fixed warnings reported by gcc with "-Wshadow".
      Removed unused variable "checkAllStrings".
      Fixed warnings on unused parameters.
      Enhanced logging of interface class DSRDocument.
      Replaced spaces by tabs in comment header.
      Documented that --write-ow is now the default.
      Updated Manpage after --write-us has been added.
      Documented new default value of --data-files-path.
      Removed trailing spaces added by last commit.
      Fixed issue reading XML template identification.
      Fixed minor issues in manpage.
      Enhanced XSD definition of "DecimalString".
      Enhanced XSD definition of "UniqueIdentifier".
      Fixed timezone issue with setISOFormattedTime().
      Fixed API documentation of newDicomElement().
      Separated test for dcmGenerateUniqueIdentifier().
      Disabled check of VR for unsupported charsets.
      Added missing object file to Makefile (Autoconf).
      Fixed non-ASCII character (German umlaut).
      Updated latest tested CMake version.

Marco Eichelberg (58):
      Updated dcmsign to correctly compile with OpenSSL 1.1.0.
      Updated dcmtls and dcmpstat to compile with OpenSSL 1.1.0.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Fixed minor formatting issues.
      Removed unnecessary call to getBaseTag().
      JPEG encoder now writes SOF1 marker in 8-bit ext sequential TS.
      Fixed empty pixel data bug in DcmPixelData::write().
      JPEG decoder now decompresses incomplete bitstreams.
      Improved 8/12/16 bit JPEG code consistency.
      Added legal remark concerning HP's JPEG-LS patents.
      movescu now returns non-zero if c-move was unsuccessful.
      Documented new movescu return codes in man page.
      Fixed signed/unsigned comparison in dcmqrdb module.
      Minor change needed to compile on Cygwin 2.6.0.
      Increased buffer sizes to avoid buffer overflows.
      Use fseek() instead of rewind() on Win32/Cygwin.
      Fixed integer underflow condition.
      Fixed DJDecoderRegistration::registerCodecs().
      Fixed minor integer over/undeflows reported by clang.
      Length check for DICOM implementation version name.
      Fixed responding aetitle in ASC_dumpParameters().
      Delete partially received DICOM objects after error.
      Replaced unlink() with OFStandard::deleteFile().
      Added partial support for GE private transfer syntax.
      Added support for GE private transfer syntax.
      Added support for writing GE private transfer syntax.
      Fixed warnings reported by VS 2017.
      Fixed linker warnings reported by VS 2017.
      OFMutex on Win32 now based on cricital sections.
      Updated macro documentation.
      Parser can now be stopped before a certain tag.
      Updated API documentation.
      Fixed bug introduced with commit f58cfe9.
      JPEG/JPEG-LS padding now uses extended EOI marker.
      Minor API change in dcmjpls.
      Fixed policy CMP0017 warning in CMake 3.7.2.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed DLL compilation of libcharls.
      Fixed bug in dcmsign certification validation code.
      Changed wlmscpfs default data path to current dir.
      dcmquant now by default generates OW LUT data.
      Fixed server socket options on WIN32.
      Explicitly include <winsock2.h> on Windows.
      DCMTK now uses SOCKET data type on Windows.
      Added timeout handler to DUL FSM state 5.
      Fixed conversion of OF/OD to OB in big endian.
      Updated COPYRIGHT file.
      Now setting LossyImageCompression when decompressing.
      Prevent infinite loop in DUL_AbortAssociation.
      Socket handle now always passed as 64-bit on Win32.
      getMacAddress() on Windows now uses GetAdaptersInfo.
      Fixed private tag issue with dump2dcm and xml2dcm.
      Updated Makefile.
      Updated CREDITS.

Michael Onken (36):
      Renamed min() to min2() (macro name clash).
      Avoid warning regarding hidden virtual method.
      Fixed installation of DCMTKConfigVersion.cmake.
      Better SCP timeouts, test, cleanups and more docs.
      Fixed various documentation issues.
      Avoid warnings about shadowed names.
      Fixed warnings about overloaded virtual functions.
      Fixed warning about unused parameter.
      Print conn. timeout to TRACE instead DEBUG level.
      Avoid another variable shadow warning.
      Fixed (harmless) shadowed variable
      Fixed potential NULL pointer and implicit casts.
      Added hints that memory has to be freed by caller.
      Added missing documentation.
      Fixed User Identification Negotiation ack message.
      Fixed minor documnetation issue.
      Fixed minor documentation issue.
      Report error in case of wrong Pixel Data encoding.
      Fixed parameter type, and docs.
      Fixed dcumentation one more time.
      Moved latest post-read checks to DcmDataset.
      Fixed crash in debug mode (const pointer misuse).
      Remove unused files from build system.
      Rebuilt dependencies.
      Hide public element constructors setting length.
      Fixed missing assignment from last commit.
      Added error message when writing sequences.
      Fixed wrong buffer size for sprintf.
      Allow private tags creation in newDicomElement().
      Fixed module name in documentation.
      Added support for final text CP-1619.
      Fix backslash quoting for Windows --fork mode.
      Check override keys in img2dcm library code.
      Warn if patient name may lead to broken dir name.
      Take over charset on import. Minor changes.
      Ensure SPS/RP Description/Code is never empty.

Nikolas Goldhammer (2):
      Fixed OFStandard::atof() not handling "NaN".
      Introduced OFerror_code and related functionalities.

OFFIS DICOM Team (1):
      Fixed typo in method name and API docs.

Sebastian Grallert (10):
      Fixed suppressing overflow warnings with Clang.
      Added support for the DICOM JSON Model (part 18 F).
      Added MPEG-4 transfer syntax options to several apps.
      Removed unused command line parameters from dcm2json.
      Fixed and enhanced documentation of JSON functions.
      Added command line options for HEVC/H.265.
      Small fix for HEVC/H.265 commit.
      Again, a small fix for HEVC/H.265 commit.
      Added unique section labels in DCMTK man pages.
      Fixed the encoding section in dcm2json man page.

Thorben Hasenpusch (1):
      Fixed OFSemaphore for macOS.
fedorov added a commit to fedorov/Slicer-legacy that referenced this issue Apr 27, 2017
This update is needed to address a bug that prevented proper handling of character
set while importing attributes into DICOM Segmentation object. This was a critical
bug for the dcmqi library, and in turn for QuantitativeReporting extension. See
detailed discussion at QIICR/dcmqi#233.

$ git shortlog DCMTK-3.6.1_20161102..d8ed091 --no-merges
Jan Schlamelcher (82):
      Enhanced C++11 compliance of OFvariant.
      Added macros for controlling compiler diagnostics.
      Suppressed some unnecessary warnings.
      Adjusted a previous commit for older GCC versions.
      Added some missing files to the install steps.
      Added compiler version checks to ofdiag.h etc.
      Suppressed an inappropriate Visual Studio warning.
      Added support for additional compiler diagnostics.
      Several fixes for OFnumeric_limits.
      Suppressed silly Visual Studio warnings in OFvariant.
      Suppressed warnings in OFThread's unit test.
      Fixed an OFnumeric_limits problem regarding C++11.
      Refactored character set conversion classes.
      Several fixes regarding character set conversion.
      Fixed a comment in OFCharacterEncoding.
      Fixed dcm2json when compiling as shared libraries.
      Fixed oflog character set conversion defines.
      Added magic word and version checks to dcmqrdb.
      Added additional information to DcmVR.
      Refactored DcmCharString based classes using DcmVR.
      Added DcmSpecificCharacterSet state checking methods.
      Fixed: ST is also affected by specific character set.
      Refactored dcmqrdb element list to use new/delete.
      Added Specific Character Set to the dcmqrdb index.
      Minor fixes in code comments of yesterdays commits.
      Added missing comment header to several unit tests.
      Added comparison operators for OFDateTime.
      Added string to number helper functions.
      Refactored string to date and time conversion.
      Introduced DcmAttributeMatching.
      Added character set conversion support to dcmqrdb.
      Fixed date time parsing regarding time zones.
      Moved dcmqrdb's trimString() function to OFStandard.
      Added support for additional Matching Keys.
      Added support for Issuer of Patient ID to dcmqrdb.
      Fixed Q/R matching on failed character set conversion.
      Workaround for clang non-type template argument issue.
      Fixed wrong value range check in extractDigits().
      Fixed Visual Studio linker problem with DLLs.
      Fixed digits10 not being a compile time constant.
      Documented dcmqrdb's new character set features.
      Fixed formatting errors in dcmqrscp's man page.
      Updated Makefile dependencies.
      Updated man pages for new development snapshot.
      Updated DCMTK_ABI_VERSION for new development snapshot.
      Updated CHANGES.361 for new development snapshot.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed CMake unit tests when BUILD_APPS was disabled.
      Fixed installing manpages with CMake.
      Fixed previous commit support for old CMake versions.
      Fixed inspecting fundamental arithmetic types.
      Fixed build date definition problem regarding Xcode.
      Modified config to prefer CMake's own FindXXX modules.
      Fixed incorrect usage of FindICU.cmake.
      Replaced OFauto_ptr with OFunique_ptr.
      Updated Makefile dependencies.
      Fixed problems regarding Windows include magic.
      Enhanced the way <windows.h> is included.
      Fixed misleading commit introduced by copy and paste.
      Added dcmpstat and dcmwlm test applications to CMake.
      Refactored DSRListOfItems::EmptyItem.
      Suppressed an inappropriate Visual Studio warning.
      Fixed linking some dcmsr unit tests with MSVC.
      Added test-exhaustive target for CMake.
      Added configure tests for some reentrant functions.
      Refactored low level network API usage.
      Added double quotes around paths in CMake files.
      Added CMake config tests for int64_t and uint64_t.
      Modified CMake configuration regarding MinGW.
      Added config tests for including libc.h and math.h.
      Fixed CTest failing tests that did not compile.
      Fixed a mistake in the code generating arith.h.
      Refactored cross compiling support with MinGW/Wine.
      Fixed and refactored cross compiling for Android.
      Fixed and refactored running the unit tests via CTest.
      Refactored getMACAddress() and its use.
      Fixed a misplaced dllexport/dllimport declaration.
      Workaround for Clang regarding OFerror_category.
      Added some CMake config tests and removed a macro.

Joerg Riesmeier (169):
      Added support for InstanceCreatorUID to readXML().
      Added support for missing "ReportType" values.
      Removed check on arrays being not a null pointer.
      Made "ReportType" optional in XML Schema.
      Made getNumberOfVerifyingObservers() const.
      Added new method hasVerifyingObservers().
      Renamed empty() methods to isEmpty().
      Various Doxygen-related fixes to documentation.
      Enabled Doxygen's WARN_NO_PARAMDOC option.
      Fixed Doxygen-related issues in the documentation.
      Added missing documentation for return values.
      Fixed code value for "Pulse Sequence Name" (CP-1578).
      Added four Color Palette SOP Instances (CP-1584).
      Added support for recently approved CPs.
      Added initial support for Supplement 195.
      Added support for CP-1584 to data dictionary.
      Added support for new UID from Supplement 169.
      Added "Simplified Adult Echo SR" to known types.
      Use macro _LIBICONV_VERSION instead of variable.
      Added support for new SR IOD from Supplement 169.
      Replaced non-ASCII characters.
      Replaced tab characters by spaces.
      Fixed wrong identation with tab characters.
      Replaced non-ASCII character in comment header.
      Added note/warning on size of class instance.
      Fixed wrong reference to conventonal JPEG format.
      Fixed warning re. overloaded virtual function.
      Re-added tab characters removed by last commit.
      Rebuilt Makefile dependencies.
      Fixed issue with option "--display-overlay 0".
      Removed additional library dependencies.
      Updated data dictionary for DICOM 2016e.
      Updated code definitions for DICOM 2016e.
      Now use code constant CODE_DCM_PulseSequenceName.
      Added comments on transfer syntax name changes.
      Updated Context Group classes for DICOM 2016e.
      Updated "dcmrt" classes based on DICOM 2016e.
      Check return value of fgets() to avoid warnings.
      Check return value of write() to avoid warning.
      Replaced boolean modes in convertCharacterSet().
      Added missing API documentation for Doxygen.
      Added tests for "new" Chinese characters sets.
      Added missing character sets to XML Schema.
      Added "Simplified Adult Echo SR" to ReportType.
      Added missing API documentation (Doxygen).
      Limit number of entries in optimization LUT.
      Added (missing) comments.
      Changed the way an unused parameter is treated.
      Fixed various documentation issues.
      Updated note on character set conversion options.
      Fixed source code formatting (where appropriate).
      Renamed isAvailable() and getVersionString().
      Added missing period at the end of descriptions.
      Fixed wrong check on GLIBC macro.
      Added comments on ICU conversions flags.
      Avoid compiler warning on unused parameter.
      Various minor fixes to new "dcm2json" tool.
      Further fixes to source code formatting.
      Removed unused configure variable/definition.
      Fixed incomplete renaming of command line options.
      Added a section on the rendering limitations.
      Let git ignore recently introduced dcm2json tool.
      Added Manpage of recently introduced dcm2json tool.
      Removed "dcmwlm/wwwapps" from ".gitignore".
      Added another character set test (for ISO-IR 58).
      Updated documentation regarding HT delimiter.
      Fixed issue with wrong detection of delimiters.
      Added another character set test (for ISO-IR 149).
      Removed DCMTK's implementation of tempnam().
      Do not set TCP send and receive buffer length.
      Updated latest tested CMake version.
      Fixed warnings reported by VisualStudio 2015.
      Replaced binary ("&") by boolean ("&&") AND.
      Fixed maximum number of bytes to read from stdin.
      Do not disable Nagle algorithm by default.
      Do not pass simple const parameters by reference.
      Simplified output of default option values.
      Minor corrections to documentation/comments.
      Added #warning on DONT_DISABLE_NAGLE_ALGORITHM.
      Made send() and recv() timeout configurable.
      Added new option --socket-timeout to storescu/scp.
      Fixed typos in API documentation.
      Added missing header include (without OpenSSL).
      Removed unused variable from writeJsonOpener().
      Included missing standard header "assert".
      Enhanced comments on charset to library mapping.
      Disable exception throwing in destructor.
      Replaced remaining tabs by spaces.
      Minor cleanup in dump output of TLS connections.
      Added missing brackets to "if( || )" statement.
      Pass value of correct type to "size" parameter.
      Changed type for index/number of sequence items.
      Added explicit typecast to function parameter.
      Removed obsolete macro (Windows 95 workaround).
      Removed gethostbyname from compatibility header.
      Added support for recently approved CP-1619.
      Made sure that a value is loaded before modified.
      Minor fixes for reasons of consistency.
      Use DCM_MaxReadLength as the default value.
      Removed useless "option block" for single option.
      Updated credits with regard to the Debian package.
      Removed obsolete command line options.
      Fixed bug introduced with last commit (crash).
      Fixed description of option --prefer-mpeg4-bd.
      Shortened description of MPEG xfer options.
      Added further support for Supplement 195 (HEVC).
      Check returned status of chooseRepresentation().
      Fixed typo in command line option check.
      Added support for unkown VR "??" in dump file.
      Fixed wrong indentation of new options.
      Fixed wrong name of Storage SOP Class.
      Added new sample association negotiation profile.
      Fixes for non-patient DICOM Storage Objects.
      Further fixes regarding non-patient objects.
      Cleanup of comments (retired DICOM SOP Classes).
      Further enhanced support for non-patient objects.
      Allow for sending non-patient DICOM objects.
      Fixed name numberOfAllDcmStorageSOPClassUIDs.
      Added two missing SOP Classes to modality table.
      Fixed crash while processing an invalid DICOMDIR.
      Enhanced logging in case of error.
      Various documentation fixes to newDicomElement().
      Updated copyright date after previous commit.
      Added trailing "." after first sentence (Doxygen).
      Added parentheses around boolean operations.
      Fixed typo, tab character and trailing space.
      Removed documentation of macro STRICT_COMPARE.
      Updated documentation of getOFDateTimeFromString().
      Updated documentation of getOFTimeFromString().
      Further fixes to API documentation.
      Added "Issuer of Patient ID" to documentation.
      Removed outdated comment on DB_FindAttr struct.
      Moved dcm2json tool to the top (alphabetic order).
      Fixed output of network debug information.
      Manual fixes to data dictionary (DICOM 2017a).
      Added comment on "specific character set" options.
      Removed redundant "TransferSyntax" suffix.
      Fixed wrong comment on private GE transfer syntax.
      Updated code definitions for "SRT".
      Updated the code meaning of a "UCUM" code.
      Fixed copyright date.
      Removed trailing spaces.
      Re-added call of endOptionBlock().
      Updated data dictionary for DICOM 2017a.
      Updated code definitions for DICOM 2017a.
      Updated "dcmrt" classes based on DICOM 2017a.
      Fixed indentation and removed trailing spaces.
      Added standard comments to new CMake files.
      Fixed warning reported by gcc 4.8.5 (Linux).
      Fixed warnings reported by gcc with "-Wshadow".
      Removed unused variable "checkAllStrings".
      Fixed warnings on unused parameters.
      Enhanced logging of interface class DSRDocument.
      Replaced spaces by tabs in comment header.
      Documented that --write-ow is now the default.
      Updated Manpage after --write-us has been added.
      Documented new default value of --data-files-path.
      Removed trailing spaces added by last commit.
      Fixed issue reading XML template identification.
      Fixed minor issues in manpage.
      Enhanced XSD definition of "DecimalString".
      Enhanced XSD definition of "UniqueIdentifier".
      Fixed timezone issue with setISOFormattedTime().
      Fixed API documentation of newDicomElement().
      Separated test for dcmGenerateUniqueIdentifier().
      Disabled check of VR for unsupported charsets.
      Added missing object file to Makefile (Autoconf).
      Fixed non-ASCII character (German umlaut).
      Updated latest tested CMake version.

Marco Eichelberg (58):
      Updated dcmsign to correctly compile with OpenSSL 1.1.0.
      Updated dcmtls and dcmpstat to compile with OpenSSL 1.1.0.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Fixed minor formatting issues.
      Removed unnecessary call to getBaseTag().
      JPEG encoder now writes SOF1 marker in 8-bit ext sequential TS.
      Fixed empty pixel data bug in DcmPixelData::write().
      JPEG decoder now decompresses incomplete bitstreams.
      Improved 8/12/16 bit JPEG code consistency.
      Added legal remark concerning HP's JPEG-LS patents.
      movescu now returns non-zero if c-move was unsuccessful.
      Documented new movescu return codes in man page.
      Fixed signed/unsigned comparison in dcmqrdb module.
      Minor change needed to compile on Cygwin 2.6.0.
      Increased buffer sizes to avoid buffer overflows.
      Use fseek() instead of rewind() on Win32/Cygwin.
      Fixed integer underflow condition.
      Fixed DJDecoderRegistration::registerCodecs().
      Fixed minor integer over/undeflows reported by clang.
      Length check for DICOM implementation version name.
      Fixed responding aetitle in ASC_dumpParameters().
      Delete partially received DICOM objects after error.
      Replaced unlink() with OFStandard::deleteFile().
      Added partial support for GE private transfer syntax.
      Added support for GE private transfer syntax.
      Added support for writing GE private transfer syntax.
      Fixed warnings reported by VS 2017.
      Fixed linker warnings reported by VS 2017.
      OFMutex on Win32 now based on cricital sections.
      Updated macro documentation.
      Parser can now be stopped before a certain tag.
      Updated API documentation.
      Fixed bug introduced with commit f58cfe9.
      JPEG/JPEG-LS padding now uses extended EOI marker.
      Minor API change in dcmjpls.
      Fixed policy CMP0017 warning in CMake 3.7.2.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed DLL compilation of libcharls.
      Fixed bug in dcmsign certification validation code.
      Changed wlmscpfs default data path to current dir.
      dcmquant now by default generates OW LUT data.
      Fixed server socket options on WIN32.
      Explicitly include <winsock2.h> on Windows.
      DCMTK now uses SOCKET data type on Windows.
      Added timeout handler to DUL FSM state 5.
      Fixed conversion of OF/OD to OB in big endian.
      Updated COPYRIGHT file.
      Now setting LossyImageCompression when decompressing.
      Prevent infinite loop in DUL_AbortAssociation.
      Socket handle now always passed as 64-bit on Win32.
      getMacAddress() on Windows now uses GetAdaptersInfo.
      Fixed private tag issue with dump2dcm and xml2dcm.
      Updated Makefile.
      Updated CREDITS.

Michael Onken (36):
      Renamed min() to min2() (macro name clash).
      Avoid warning regarding hidden virtual method.
      Fixed installation of DCMTKConfigVersion.cmake.
      Better SCP timeouts, test, cleanups and more docs.
      Fixed various documentation issues.
      Avoid warnings about shadowed names.
      Fixed warnings about overloaded virtual functions.
      Fixed warning about unused parameter.
      Print conn. timeout to TRACE instead DEBUG level.
      Avoid another variable shadow warning.
      Fixed (harmless) shadowed variable
      Fixed potential NULL pointer and implicit casts.
      Added hints that memory has to be freed by caller.
      Added missing documentation.
      Fixed User Identification Negotiation ack message.
      Fixed minor documnetation issue.
      Fixed minor documentation issue.
      Report error in case of wrong Pixel Data encoding.
      Fixed parameter type, and docs.
      Fixed dcumentation one more time.
      Moved latest post-read checks to DcmDataset.
      Fixed crash in debug mode (const pointer misuse).
      Remove unused files from build system.
      Rebuilt dependencies.
      Hide public element constructors setting length.
      Fixed missing assignment from last commit.
      Added error message when writing sequences.
      Fixed wrong buffer size for sprintf.
      Allow private tags creation in newDicomElement().
      Fixed module name in documentation.
      Added support for final text CP-1619.
      Fix backslash quoting for Windows --fork mode.
      Check override keys in img2dcm library code.
      Warn if patient name may lead to broken dir name.
      Take over charset on import. Minor changes.
      Ensure SPS/RP Description/Code is never empty.

Nikolas Goldhammer (2):
      Fixed OFStandard::atof() not handling "NaN".
      Introduced OFerror_code and related functionalities.

OFFIS DICOM Team (1):
      Fixed typo in method name and API docs.

Sebastian Grallert (10):
      Fixed suppressing overflow warnings with Clang.
      Added support for the DICOM JSON Model (part 18 F).
      Added MPEG-4 transfer syntax options to several apps.
      Removed unused command line parameters from dcm2json.
      Fixed and enhanced documentation of JSON functions.
      Added command line options for HEVC/H.265.
      Small fix for HEVC/H.265 commit.
      Again, a small fix for HEVC/H.265 commit.
      Added unique section labels in DCMTK man pages.
      Fixed the encoding section in dcm2json man page.

Thorben Hasenpusch (1):
      Fixed OFSemaphore for macOS.
jcfr pushed a commit to Slicer/SlicerGitSVNArchive that referenced this issue Apr 27, 2017
This update is needed to address a bug that prevented proper handling of character
set while importing attributes into DICOM Segmentation object. This was a critical
bug for the dcmqi library, and in turn for QuantitativeReporting extension. See
detailed discussion at QIICR/dcmqi#233.

$ git shortlog DCMTK-3.6.1_20161102..d8ed091 --no-merges
Jan Schlamelcher (82):
      Enhanced C++11 compliance of OFvariant.
      Added macros for controlling compiler diagnostics.
      Suppressed some unnecessary warnings.
      Adjusted a previous commit for older GCC versions.
      Added some missing files to the install steps.
      Added compiler version checks to ofdiag.h etc.
      Suppressed an inappropriate Visual Studio warning.
      Added support for additional compiler diagnostics.
      Several fixes for OFnumeric_limits.
      Suppressed silly Visual Studio warnings in OFvariant.
      Suppressed warnings in OFThread's unit test.
      Fixed an OFnumeric_limits problem regarding C++11.
      Refactored character set conversion classes.
      Several fixes regarding character set conversion.
      Fixed a comment in OFCharacterEncoding.
      Fixed dcm2json when compiling as shared libraries.
      Fixed oflog character set conversion defines.
      Added magic word and version checks to dcmqrdb.
      Added additional information to DcmVR.
      Refactored DcmCharString based classes using DcmVR.
      Added DcmSpecificCharacterSet state checking methods.
      Fixed: ST is also affected by specific character set.
      Refactored dcmqrdb element list to use new/delete.
      Added Specific Character Set to the dcmqrdb index.
      Minor fixes in code comments of yesterdays commits.
      Added missing comment header to several unit tests.
      Added comparison operators for OFDateTime.
      Added string to number helper functions.
      Refactored string to date and time conversion.
      Introduced DcmAttributeMatching.
      Added character set conversion support to dcmqrdb.
      Fixed date time parsing regarding time zones.
      Moved dcmqrdb's trimString() function to OFStandard.
      Added support for additional Matching Keys.
      Added support for Issuer of Patient ID to dcmqrdb.
      Fixed Q/R matching on failed character set conversion.
      Workaround for clang non-type template argument issue.
      Fixed wrong value range check in extractDigits().
      Fixed Visual Studio linker problem with DLLs.
      Fixed digits10 not being a compile time constant.
      Documented dcmqrdb's new character set features.
      Fixed formatting errors in dcmqrscp's man page.
      Updated Makefile dependencies.
      Updated man pages for new development snapshot.
      Updated DCMTK_ABI_VERSION for new development snapshot.
      Updated CHANGES.361 for new development snapshot.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed CMake unit tests when BUILD_APPS was disabled.
      Fixed installing manpages with CMake.
      Fixed previous commit support for old CMake versions.
      Fixed inspecting fundamental arithmetic types.
      Fixed build date definition problem regarding Xcode.
      Modified config to prefer CMake's own FindXXX modules.
      Fixed incorrect usage of FindICU.cmake.
      Replaced OFauto_ptr with OFunique_ptr.
      Updated Makefile dependencies.
      Fixed problems regarding Windows include magic.
      Enhanced the way <windows.h> is included.
      Fixed misleading commit introduced by copy and paste.
      Added dcmpstat and dcmwlm test applications to CMake.
      Refactored DSRListOfItems::EmptyItem.
      Suppressed an inappropriate Visual Studio warning.
      Fixed linking some dcmsr unit tests with MSVC.
      Added test-exhaustive target for CMake.
      Added configure tests for some reentrant functions.
      Refactored low level network API usage.
      Added double quotes around paths in CMake files.
      Added CMake config tests for int64_t and uint64_t.
      Modified CMake configuration regarding MinGW.
      Added config tests for including libc.h and math.h.
      Fixed CTest failing tests that did not compile.
      Fixed a mistake in the code generating arith.h.
      Refactored cross compiling support with MinGW/Wine.
      Fixed and refactored cross compiling for Android.
      Fixed and refactored running the unit tests via CTest.
      Refactored getMACAddress() and its use.
      Fixed a misplaced dllexport/dllimport declaration.
      Workaround for Clang regarding OFerror_category.
      Added some CMake config tests and removed a macro.

Joerg Riesmeier (169):
      Added support for InstanceCreatorUID to readXML().
      Added support for missing "ReportType" values.
      Removed check on arrays being not a null pointer.
      Made "ReportType" optional in XML Schema.
      Made getNumberOfVerifyingObservers() const.
      Added new method hasVerifyingObservers().
      Renamed empty() methods to isEmpty().
      Various Doxygen-related fixes to documentation.
      Enabled Doxygen's WARN_NO_PARAMDOC option.
      Fixed Doxygen-related issues in the documentation.
      Added missing documentation for return values.
      Fixed code value for "Pulse Sequence Name" (CP-1578).
      Added four Color Palette SOP Instances (CP-1584).
      Added support for recently approved CPs.
      Added initial support for Supplement 195.
      Added support for CP-1584 to data dictionary.
      Added support for new UID from Supplement 169.
      Added "Simplified Adult Echo SR" to known types.
      Use macro _LIBICONV_VERSION instead of variable.
      Added support for new SR IOD from Supplement 169.
      Replaced non-ASCII characters.
      Replaced tab characters by spaces.
      Fixed wrong identation with tab characters.
      Replaced non-ASCII character in comment header.
      Added note/warning on size of class instance.
      Fixed wrong reference to conventonal JPEG format.
      Fixed warning re. overloaded virtual function.
      Re-added tab characters removed by last commit.
      Rebuilt Makefile dependencies.
      Fixed issue with option "--display-overlay 0".
      Removed additional library dependencies.
      Updated data dictionary for DICOM 2016e.
      Updated code definitions for DICOM 2016e.
      Now use code constant CODE_DCM_PulseSequenceName.
      Added comments on transfer syntax name changes.
      Updated Context Group classes for DICOM 2016e.
      Updated "dcmrt" classes based on DICOM 2016e.
      Check return value of fgets() to avoid warnings.
      Check return value of write() to avoid warning.
      Replaced boolean modes in convertCharacterSet().
      Added missing API documentation for Doxygen.
      Added tests for "new" Chinese characters sets.
      Added missing character sets to XML Schema.
      Added "Simplified Adult Echo SR" to ReportType.
      Added missing API documentation (Doxygen).
      Limit number of entries in optimization LUT.
      Added (missing) comments.
      Changed the way an unused parameter is treated.
      Fixed various documentation issues.
      Updated note on character set conversion options.
      Fixed source code formatting (where appropriate).
      Renamed isAvailable() and getVersionString().
      Added missing period at the end of descriptions.
      Fixed wrong check on GLIBC macro.
      Added comments on ICU conversions flags.
      Avoid compiler warning on unused parameter.
      Various minor fixes to new "dcm2json" tool.
      Further fixes to source code formatting.
      Removed unused configure variable/definition.
      Fixed incomplete renaming of command line options.
      Added a section on the rendering limitations.
      Let git ignore recently introduced dcm2json tool.
      Added Manpage of recently introduced dcm2json tool.
      Removed "dcmwlm/wwwapps" from ".gitignore".
      Added another character set test (for ISO-IR 58).
      Updated documentation regarding HT delimiter.
      Fixed issue with wrong detection of delimiters.
      Added another character set test (for ISO-IR 149).
      Removed DCMTK's implementation of tempnam().
      Do not set TCP send and receive buffer length.
      Updated latest tested CMake version.
      Fixed warnings reported by VisualStudio 2015.
      Replaced binary ("&") by boolean ("&&") AND.
      Fixed maximum number of bytes to read from stdin.
      Do not disable Nagle algorithm by default.
      Do not pass simple const parameters by reference.
      Simplified output of default option values.
      Minor corrections to documentation/comments.
      Added #warning on DONT_DISABLE_NAGLE_ALGORITHM.
      Made send() and recv() timeout configurable.
      Added new option --socket-timeout to storescu/scp.
      Fixed typos in API documentation.
      Added missing header include (without OpenSSL).
      Removed unused variable from writeJsonOpener().
      Included missing standard header "assert".
      Enhanced comments on charset to library mapping.
      Disable exception throwing in destructor.
      Replaced remaining tabs by spaces.
      Minor cleanup in dump output of TLS connections.
      Added missing brackets to "if( || )" statement.
      Pass value of correct type to "size" parameter.
      Changed type for index/number of sequence items.
      Added explicit typecast to function parameter.
      Removed obsolete macro (Windows 95 workaround).
      Removed gethostbyname from compatibility header.
      Added support for recently approved CP-1619.
      Made sure that a value is loaded before modified.
      Minor fixes for reasons of consistency.
      Use DCM_MaxReadLength as the default value.
      Removed useless "option block" for single option.
      Updated credits with regard to the Debian package.
      Removed obsolete command line options.
      Fixed bug introduced with last commit (crash).
      Fixed description of option --prefer-mpeg4-bd.
      Shortened description of MPEG xfer options.
      Added further support for Supplement 195 (HEVC).
      Check returned status of chooseRepresentation().
      Fixed typo in command line option check.
      Added support for unkown VR "??" in dump file.
      Fixed wrong indentation of new options.
      Fixed wrong name of Storage SOP Class.
      Added new sample association negotiation profile.
      Fixes for non-patient DICOM Storage Objects.
      Further fixes regarding non-patient objects.
      Cleanup of comments (retired DICOM SOP Classes).
      Further enhanced support for non-patient objects.
      Allow for sending non-patient DICOM objects.
      Fixed name numberOfAllDcmStorageSOPClassUIDs.
      Added two missing SOP Classes to modality table.
      Fixed crash while processing an invalid DICOMDIR.
      Enhanced logging in case of error.
      Various documentation fixes to newDicomElement().
      Updated copyright date after previous commit.
      Added trailing "." after first sentence (Doxygen).
      Added parentheses around boolean operations.
      Fixed typo, tab character and trailing space.
      Removed documentation of macro STRICT_COMPARE.
      Updated documentation of getOFDateTimeFromString().
      Updated documentation of getOFTimeFromString().
      Further fixes to API documentation.
      Added "Issuer of Patient ID" to documentation.
      Removed outdated comment on DB_FindAttr struct.
      Moved dcm2json tool to the top (alphabetic order).
      Fixed output of network debug information.
      Manual fixes to data dictionary (DICOM 2017a).
      Added comment on "specific character set" options.
      Removed redundant "TransferSyntax" suffix.
      Fixed wrong comment on private GE transfer syntax.
      Updated code definitions for "SRT".
      Updated the code meaning of a "UCUM" code.
      Fixed copyright date.
      Removed trailing spaces.
      Re-added call of endOptionBlock().
      Updated data dictionary for DICOM 2017a.
      Updated code definitions for DICOM 2017a.
      Updated "dcmrt" classes based on DICOM 2017a.
      Fixed indentation and removed trailing spaces.
      Added standard comments to new CMake files.
      Fixed warning reported by gcc 4.8.5 (Linux).
      Fixed warnings reported by gcc with "-Wshadow".
      Removed unused variable "checkAllStrings".
      Fixed warnings on unused parameters.
      Enhanced logging of interface class DSRDocument.
      Replaced spaces by tabs in comment header.
      Documented that --write-ow is now the default.
      Updated Manpage after --write-us has been added.
      Documented new default value of --data-files-path.
      Removed trailing spaces added by last commit.
      Fixed issue reading XML template identification.
      Fixed minor issues in manpage.
      Enhanced XSD definition of "DecimalString".
      Enhanced XSD definition of "UniqueIdentifier".
      Fixed timezone issue with setISOFormattedTime().
      Fixed API documentation of newDicomElement().
      Separated test for dcmGenerateUniqueIdentifier().
      Disabled check of VR for unsupported charsets.
      Added missing object file to Makefile (Autoconf).
      Fixed non-ASCII character (German umlaut).
      Updated latest tested CMake version.

Marco Eichelberg (58):
      Updated dcmsign to correctly compile with OpenSSL 1.1.0.
      Updated dcmtls and dcmpstat to compile with OpenSSL 1.1.0.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Fixed minor formatting issues.
      Removed unnecessary call to getBaseTag().
      JPEG encoder now writes SOF1 marker in 8-bit ext sequential TS.
      Fixed empty pixel data bug in DcmPixelData::write().
      JPEG decoder now decompresses incomplete bitstreams.
      Improved 8/12/16 bit JPEG code consistency.
      Added legal remark concerning HP's JPEG-LS patents.
      movescu now returns non-zero if c-move was unsuccessful.
      Documented new movescu return codes in man page.
      Fixed signed/unsigned comparison in dcmqrdb module.
      Minor change needed to compile on Cygwin 2.6.0.
      Increased buffer sizes to avoid buffer overflows.
      Use fseek() instead of rewind() on Win32/Cygwin.
      Fixed integer underflow condition.
      Fixed DJDecoderRegistration::registerCodecs().
      Fixed minor integer over/undeflows reported by clang.
      Length check for DICOM implementation version name.
      Fixed responding aetitle in ASC_dumpParameters().
      Delete partially received DICOM objects after error.
      Replaced unlink() with OFStandard::deleteFile().
      Added partial support for GE private transfer syntax.
      Added support for GE private transfer syntax.
      Added support for writing GE private transfer syntax.
      Fixed warnings reported by VS 2017.
      Fixed linker warnings reported by VS 2017.
      OFMutex on Win32 now based on cricital sections.
      Updated macro documentation.
      Parser can now be stopped before a certain tag.
      Updated API documentation.
      Fixed bug introduced with commit f58cfe9.
      JPEG/JPEG-LS padding now uses extended EOI marker.
      Minor API change in dcmjpls.
      Fixed policy CMP0017 warning in CMake 3.7.2.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed DLL compilation of libcharls.
      Fixed bug in dcmsign certification validation code.
      Changed wlmscpfs default data path to current dir.
      dcmquant now by default generates OW LUT data.
      Fixed server socket options on WIN32.
      Explicitly include <winsock2.h> on Windows.
      DCMTK now uses SOCKET data type on Windows.
      Added timeout handler to DUL FSM state 5.
      Fixed conversion of OF/OD to OB in big endian.
      Updated COPYRIGHT file.
      Now setting LossyImageCompression when decompressing.
      Prevent infinite loop in DUL_AbortAssociation.
      Socket handle now always passed as 64-bit on Win32.
      getMacAddress() on Windows now uses GetAdaptersInfo.
      Fixed private tag issue with dump2dcm and xml2dcm.
      Updated Makefile.
      Updated CREDITS.

Michael Onken (36):
      Renamed min() to min2() (macro name clash).
      Avoid warning regarding hidden virtual method.
      Fixed installation of DCMTKConfigVersion.cmake.
      Better SCP timeouts, test, cleanups and more docs.
      Fixed various documentation issues.
      Avoid warnings about shadowed names.
      Fixed warnings about overloaded virtual functions.
      Fixed warning about unused parameter.
      Print conn. timeout to TRACE instead DEBUG level.
      Avoid another variable shadow warning.
      Fixed (harmless) shadowed variable
      Fixed potential NULL pointer and implicit casts.
      Added hints that memory has to be freed by caller.
      Added missing documentation.
      Fixed User Identification Negotiation ack message.
      Fixed minor documnetation issue.
      Fixed minor documentation issue.
      Report error in case of wrong Pixel Data encoding.
      Fixed parameter type, and docs.
      Fixed dcumentation one more time.
      Moved latest post-read checks to DcmDataset.
      Fixed crash in debug mode (const pointer misuse).
      Remove unused files from build system.
      Rebuilt dependencies.
      Hide public element constructors setting length.
      Fixed missing assignment from last commit.
      Added error message when writing sequences.
      Fixed wrong buffer size for sprintf.
      Allow private tags creation in newDicomElement().
      Fixed module name in documentation.
      Added support for final text CP-1619.
      Fix backslash quoting for Windows --fork mode.
      Check override keys in img2dcm library code.
      Warn if patient name may lead to broken dir name.
      Take over charset on import. Minor changes.
      Ensure SPS/RP Description/Code is never empty.

Nikolas Goldhammer (2):
      Fixed OFStandard::atof() not handling "NaN".
      Introduced OFerror_code and related functionalities.

OFFIS DICOM Team (1):
      Fixed typo in method name and API docs.

Sebastian Grallert (10):
      Fixed suppressing overflow warnings with Clang.
      Added support for the DICOM JSON Model (part 18 F).
      Added MPEG-4 transfer syntax options to several apps.
      Removed unused command line parameters from dcm2json.
      Fixed and enhanced documentation of JSON functions.
      Added command line options for HEVC/H.265.
      Small fix for HEVC/H.265 commit.
      Again, a small fix for HEVC/H.265 commit.
      Added unique section labels in DCMTK man pages.
      Fixed the encoding section in dcm2json man page.

Thorben Hasenpusch (1):
      Fixed OFSemaphore for macOS.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25979 3bd1e089-480b-0410-8dfb-8563597acbee
@che85 che85 closed this as completed May 8, 2017
fedorov pushed a commit to fedorov/Slicer-legacy that referenced this issue May 18, 2017
This update is needed to address a bug that prevented proper handling of character
set while importing attributes into DICOM Segmentation object. This was a critical
bug for the dcmqi library, and in turn for QuantitativeReporting extension. See
detailed discussion at QIICR/dcmqi#233.

$ git shortlog DCMTK-3.6.1_20161102..d8ed091 --no-merges
Jan Schlamelcher (82):
      Enhanced C++11 compliance of OFvariant.
      Added macros for controlling compiler diagnostics.
      Suppressed some unnecessary warnings.
      Adjusted a previous commit for older GCC versions.
      Added some missing files to the install steps.
      Added compiler version checks to ofdiag.h etc.
      Suppressed an inappropriate Visual Studio warning.
      Added support for additional compiler diagnostics.
      Several fixes for OFnumeric_limits.
      Suppressed silly Visual Studio warnings in OFvariant.
      Suppressed warnings in OFThread's unit test.
      Fixed an OFnumeric_limits problem regarding C++11.
      Refactored character set conversion classes.
      Several fixes regarding character set conversion.
      Fixed a comment in OFCharacterEncoding.
      Fixed dcm2json when compiling as shared libraries.
      Fixed oflog character set conversion defines.
      Added magic word and version checks to dcmqrdb.
      Added additional information to DcmVR.
      Refactored DcmCharString based classes using DcmVR.
      Added DcmSpecificCharacterSet state checking methods.
      Fixed: ST is also affected by specific character set.
      Refactored dcmqrdb element list to use new/delete.
      Added Specific Character Set to the dcmqrdb index.
      Minor fixes in code comments of yesterdays commits.
      Added missing comment header to several unit tests.
      Added comparison operators for OFDateTime.
      Added string to number helper functions.
      Refactored string to date and time conversion.
      Introduced DcmAttributeMatching.
      Added character set conversion support to dcmqrdb.
      Fixed date time parsing regarding time zones.
      Moved dcmqrdb's trimString() function to OFStandard.
      Added support for additional Matching Keys.
      Added support for Issuer of Patient ID to dcmqrdb.
      Fixed Q/R matching on failed character set conversion.
      Workaround for clang non-type template argument issue.
      Fixed wrong value range check in extractDigits().
      Fixed Visual Studio linker problem with DLLs.
      Fixed digits10 not being a compile time constant.
      Documented dcmqrdb's new character set features.
      Fixed formatting errors in dcmqrscp's man page.
      Updated Makefile dependencies.
      Updated man pages for new development snapshot.
      Updated DCMTK_ABI_VERSION for new development snapshot.
      Updated CHANGES.361 for new development snapshot.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed dcmqrdb falsely retrying response conversion.
      Fixed previous commit.
      Fixed CMake unit tests when BUILD_APPS was disabled.
      Fixed installing manpages with CMake.
      Fixed previous commit support for old CMake versions.
      Fixed inspecting fundamental arithmetic types.
      Fixed build date definition problem regarding Xcode.
      Modified config to prefer CMake's own FindXXX modules.
      Fixed incorrect usage of FindICU.cmake.
      Replaced OFauto_ptr with OFunique_ptr.
      Updated Makefile dependencies.
      Fixed problems regarding Windows include magic.
      Enhanced the way <windows.h> is included.
      Fixed misleading commit introduced by copy and paste.
      Added dcmpstat and dcmwlm test applications to CMake.
      Refactored DSRListOfItems::EmptyItem.
      Suppressed an inappropriate Visual Studio warning.
      Fixed linking some dcmsr unit tests with MSVC.
      Added test-exhaustive target for CMake.
      Added configure tests for some reentrant functions.
      Refactored low level network API usage.
      Added double quotes around paths in CMake files.
      Added CMake config tests for int64_t and uint64_t.
      Modified CMake configuration regarding MinGW.
      Added config tests for including libc.h and math.h.
      Fixed CTest failing tests that did not compile.
      Fixed a mistake in the code generating arith.h.
      Refactored cross compiling support with MinGW/Wine.
      Fixed and refactored cross compiling for Android.
      Fixed and refactored running the unit tests via CTest.
      Refactored getMACAddress() and its use.
      Fixed a misplaced dllexport/dllimport declaration.
      Workaround for Clang regarding OFerror_category.
      Added some CMake config tests and removed a macro.

Joerg Riesmeier (169):
      Added support for InstanceCreatorUID to readXML().
      Added support for missing "ReportType" values.
      Removed check on arrays being not a null pointer.
      Made "ReportType" optional in XML Schema.
      Made getNumberOfVerifyingObservers() const.
      Added new method hasVerifyingObservers().
      Renamed empty() methods to isEmpty().
      Various Doxygen-related fixes to documentation.
      Enabled Doxygen's WARN_NO_PARAMDOC option.
      Fixed Doxygen-related issues in the documentation.
      Added missing documentation for return values.
      Fixed code value for "Pulse Sequence Name" (CP-1578).
      Added four Color Palette SOP Instances (CP-1584).
      Added support for recently approved CPs.
      Added initial support for Supplement 195.
      Added support for CP-1584 to data dictionary.
      Added support for new UID from Supplement 169.
      Added "Simplified Adult Echo SR" to known types.
      Use macro _LIBICONV_VERSION instead of variable.
      Added support for new SR IOD from Supplement 169.
      Replaced non-ASCII characters.
      Replaced tab characters by spaces.
      Fixed wrong identation with tab characters.
      Replaced non-ASCII character in comment header.
      Added note/warning on size of class instance.
      Fixed wrong reference to conventonal JPEG format.
      Fixed warning re. overloaded virtual function.
      Re-added tab characters removed by last commit.
      Rebuilt Makefile dependencies.
      Fixed issue with option "--display-overlay 0".
      Removed additional library dependencies.
      Updated data dictionary for DICOM 2016e.
      Updated code definitions for DICOM 2016e.
      Now use code constant CODE_DCM_PulseSequenceName.
      Added comments on transfer syntax name changes.
      Updated Context Group classes for DICOM 2016e.
      Updated "dcmrt" classes based on DICOM 2016e.
      Check return value of fgets() to avoid warnings.
      Check return value of write() to avoid warning.
      Replaced boolean modes in convertCharacterSet().
      Added missing API documentation for Doxygen.
      Added tests for "new" Chinese characters sets.
      Added missing character sets to XML Schema.
      Added "Simplified Adult Echo SR" to ReportType.
      Added missing API documentation (Doxygen).
      Limit number of entries in optimization LUT.
      Added (missing) comments.
      Changed the way an unused parameter is treated.
      Fixed various documentation issues.
      Updated note on character set conversion options.
      Fixed source code formatting (where appropriate).
      Renamed isAvailable() and getVersionString().
      Added missing period at the end of descriptions.
      Fixed wrong check on GLIBC macro.
      Added comments on ICU conversions flags.
      Avoid compiler warning on unused parameter.
      Various minor fixes to new "dcm2json" tool.
      Further fixes to source code formatting.
      Removed unused configure variable/definition.
      Fixed incomplete renaming of command line options.
      Added a section on the rendering limitations.
      Let git ignore recently introduced dcm2json tool.
      Added Manpage of recently introduced dcm2json tool.
      Removed "dcmwlm/wwwapps" from ".gitignore".
      Added another character set test (for ISO-IR 58).
      Updated documentation regarding HT delimiter.
      Fixed issue with wrong detection of delimiters.
      Added another character set test (for ISO-IR 149).
      Removed DCMTK's implementation of tempnam().
      Do not set TCP send and receive buffer length.
      Updated latest tested CMake version.
      Fixed warnings reported by VisualStudio 2015.
      Replaced binary ("&") by boolean ("&&") AND.
      Fixed maximum number of bytes to read from stdin.
      Do not disable Nagle algorithm by default.
      Do not pass simple const parameters by reference.
      Simplified output of default option values.
      Minor corrections to documentation/comments.
      Added #warning on DONT_DISABLE_NAGLE_ALGORITHM.
      Made send() and recv() timeout configurable.
      Added new option --socket-timeout to storescu/scp.
      Fixed typos in API documentation.
      Added missing header include (without OpenSSL).
      Removed unused variable from writeJsonOpener().
      Included missing standard header "assert".
      Enhanced comments on charset to library mapping.
      Disable exception throwing in destructor.
      Replaced remaining tabs by spaces.
      Minor cleanup in dump output of TLS connections.
      Added missing brackets to "if( || )" statement.
      Pass value of correct type to "size" parameter.
      Changed type for index/number of sequence items.
      Added explicit typecast to function parameter.
      Removed obsolete macro (Windows 95 workaround).
      Removed gethostbyname from compatibility header.
      Added support for recently approved CP-1619.
      Made sure that a value is loaded before modified.
      Minor fixes for reasons of consistency.
      Use DCM_MaxReadLength as the default value.
      Removed useless "option block" for single option.
      Updated credits with regard to the Debian package.
      Removed obsolete command line options.
      Fixed bug introduced with last commit (crash).
      Fixed description of option --prefer-mpeg4-bd.
      Shortened description of MPEG xfer options.
      Added further support for Supplement 195 (HEVC).
      Check returned status of chooseRepresentation().
      Fixed typo in command line option check.
      Added support for unkown VR "??" in dump file.
      Fixed wrong indentation of new options.
      Fixed wrong name of Storage SOP Class.
      Added new sample association negotiation profile.
      Fixes for non-patient DICOM Storage Objects.
      Further fixes regarding non-patient objects.
      Cleanup of comments (retired DICOM SOP Classes).
      Further enhanced support for non-patient objects.
      Allow for sending non-patient DICOM objects.
      Fixed name numberOfAllDcmStorageSOPClassUIDs.
      Added two missing SOP Classes to modality table.
      Fixed crash while processing an invalid DICOMDIR.
      Enhanced logging in case of error.
      Various documentation fixes to newDicomElement().
      Updated copyright date after previous commit.
      Added trailing "." after first sentence (Doxygen).
      Added parentheses around boolean operations.
      Fixed typo, tab character and trailing space.
      Removed documentation of macro STRICT_COMPARE.
      Updated documentation of getOFDateTimeFromString().
      Updated documentation of getOFTimeFromString().
      Further fixes to API documentation.
      Added "Issuer of Patient ID" to documentation.
      Removed outdated comment on DB_FindAttr struct.
      Moved dcm2json tool to the top (alphabetic order).
      Fixed output of network debug information.
      Manual fixes to data dictionary (DICOM 2017a).
      Added comment on "specific character set" options.
      Removed redundant "TransferSyntax" suffix.
      Fixed wrong comment on private GE transfer syntax.
      Updated code definitions for "SRT".
      Updated the code meaning of a "UCUM" code.
      Fixed copyright date.
      Removed trailing spaces.
      Re-added call of endOptionBlock().
      Updated data dictionary for DICOM 2017a.
      Updated code definitions for DICOM 2017a.
      Updated "dcmrt" classes based on DICOM 2017a.
      Fixed indentation and removed trailing spaces.
      Added standard comments to new CMake files.
      Fixed warning reported by gcc 4.8.5 (Linux).
      Fixed warnings reported by gcc with "-Wshadow".
      Removed unused variable "checkAllStrings".
      Fixed warnings on unused parameters.
      Enhanced logging of interface class DSRDocument.
      Replaced spaces by tabs in comment header.
      Documented that --write-ow is now the default.
      Updated Manpage after --write-us has been added.
      Documented new default value of --data-files-path.
      Removed trailing spaces added by last commit.
      Fixed issue reading XML template identification.
      Fixed minor issues in manpage.
      Enhanced XSD definition of "DecimalString".
      Enhanced XSD definition of "UniqueIdentifier".
      Fixed timezone issue with setISOFormattedTime().
      Fixed API documentation of newDicomElement().
      Separated test for dcmGenerateUniqueIdentifier().
      Disabled check of VR for unsupported charsets.
      Added missing object file to Makefile (Autoconf).
      Fixed non-ASCII character (German umlaut).
      Updated latest tested CMake version.

Marco Eichelberg (58):
      Updated dcmsign to correctly compile with OpenSSL 1.1.0.
      Updated dcmtls and dcmpstat to compile with OpenSSL 1.1.0.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Added code for handling VOI LUT Sequences with OB/OW VR.
      Fixed minor formatting issues.
      Removed unnecessary call to getBaseTag().
      JPEG encoder now writes SOF1 marker in 8-bit ext sequential TS.
      Fixed empty pixel data bug in DcmPixelData::write().
      JPEG decoder now decompresses incomplete bitstreams.
      Improved 8/12/16 bit JPEG code consistency.
      Added legal remark concerning HP's JPEG-LS patents.
      movescu now returns non-zero if c-move was unsuccessful.
      Documented new movescu return codes in man page.
      Fixed signed/unsigned comparison in dcmqrdb module.
      Minor change needed to compile on Cygwin 2.6.0.
      Increased buffer sizes to avoid buffer overflows.
      Use fseek() instead of rewind() on Win32/Cygwin.
      Fixed integer underflow condition.
      Fixed DJDecoderRegistration::registerCodecs().
      Fixed minor integer over/undeflows reported by clang.
      Length check for DICOM implementation version name.
      Fixed responding aetitle in ASC_dumpParameters().
      Delete partially received DICOM objects after error.
      Replaced unlink() with OFStandard::deleteFile().
      Added partial support for GE private transfer syntax.
      Added support for GE private transfer syntax.
      Added support for writing GE private transfer syntax.
      Fixed warnings reported by VS 2017.
      Fixed linker warnings reported by VS 2017.
      OFMutex on Win32 now based on cricital sections.
      Updated macro documentation.
      Parser can now be stopped before a certain tag.
      Updated API documentation.
      Fixed bug introduced with commit f58cfe9.
      JPEG/JPEG-LS padding now uses extended EOI marker.
      Minor API change in dcmjpls.
      Fixed policy CMP0017 warning in CMake 3.7.2.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed warnings reported by VS 2017 x64.
      Fixed DLL compilation of libcharls.
      Fixed bug in dcmsign certification validation code.
      Changed wlmscpfs default data path to current dir.
      dcmquant now by default generates OW LUT data.
      Fixed server socket options on WIN32.
      Explicitly include <winsock2.h> on Windows.
      DCMTK now uses SOCKET data type on Windows.
      Added timeout handler to DUL FSM state 5.
      Fixed conversion of OF/OD to OB in big endian.
      Updated COPYRIGHT file.
      Now setting LossyImageCompression when decompressing.
      Prevent infinite loop in DUL_AbortAssociation.
      Socket handle now always passed as 64-bit on Win32.
      getMacAddress() on Windows now uses GetAdaptersInfo.
      Fixed private tag issue with dump2dcm and xml2dcm.
      Updated Makefile.
      Updated CREDITS.

Michael Onken (36):
      Renamed min() to min2() (macro name clash).
      Avoid warning regarding hidden virtual method.
      Fixed installation of DCMTKConfigVersion.cmake.
      Better SCP timeouts, test, cleanups and more docs.
      Fixed various documentation issues.
      Avoid warnings about shadowed names.
      Fixed warnings about overloaded virtual functions.
      Fixed warning about unused parameter.
      Print conn. timeout to TRACE instead DEBUG level.
      Avoid another variable shadow warning.
      Fixed (harmless) shadowed variable
      Fixed potential NULL pointer and implicit casts.
      Added hints that memory has to be freed by caller.
      Added missing documentation.
      Fixed User Identification Negotiation ack message.
      Fixed minor documnetation issue.
      Fixed minor documentation issue.
      Report error in case of wrong Pixel Data encoding.
      Fixed parameter type, and docs.
      Fixed dcumentation one more time.
      Moved latest post-read checks to DcmDataset.
      Fixed crash in debug mode (const pointer misuse).
      Remove unused files from build system.
      Rebuilt dependencies.
      Hide public element constructors setting length.
      Fixed missing assignment from last commit.
      Added error message when writing sequences.
      Fixed wrong buffer size for sprintf.
      Allow private tags creation in newDicomElement().
      Fixed module name in documentation.
      Added support for final text CP-1619.
      Fix backslash quoting for Windows --fork mode.
      Check override keys in img2dcm library code.
      Warn if patient name may lead to broken dir name.
      Take over charset on import. Minor changes.
      Ensure SPS/RP Description/Code is never empty.

Nikolas Goldhammer (2):
      Fixed OFStandard::atof() not handling "NaN".
      Introduced OFerror_code and related functionalities.

OFFIS DICOM Team (1):
      Fixed typo in method name and API docs.

Sebastian Grallert (10):
      Fixed suppressing overflow warnings with Clang.
      Added support for the DICOM JSON Model (part 18 F).
      Added MPEG-4 transfer syntax options to several apps.
      Removed unused command line parameters from dcm2json.
      Fixed and enhanced documentation of JSON functions.
      Added command line options for HEVC/H.265.
      Small fix for HEVC/H.265 commit.
      Again, a small fix for HEVC/H.265 commit.
      Added unique section labels in DCMTK man pages.
      Fixed the encoding section in dcm2json man page.

Thorben Hasenpusch (1):
      Fixed OFSemaphore for macOS.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@25979 3bd1e089-480b-0410-8dfb-8563597acbee
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants