[med-svn] [dcmtk] 04/11: New upstream version 3.6.1~20161102

Gert Wollny gert-guest at moszumanska.debian.org
Sun Nov 13 12:34:59 UTC 2016


This is an automated email from the git hooks/post-receive script.

gert-guest pushed a commit to branch master
in repository dcmtk.

commit e8ca983b14a7dd30759eed8e747f8993fcb53a60
Author: Gert Wollny <gw.fossdev at gmail.com>
Date:   Mon Nov 7 12:40:51 2016 +0100

    New upstream version 3.6.1~20161102
---
 CMake/3rdparty.cmake                               |    4 +-
 CMake/DCMTKConfig.cmake.in                         |    7 -
 CMake/dcmtkPrepare.cmake                           |    4 +-
 CMakeLists.txt                                     |    2 +-
 Makefile                                           |   70 +-
 README                                             |    4 +-
 VERSION                                            |    2 +-
 config/Makefile.def.in                             |    4 +-
 config/modules                                     |    2 +-
 dcmdata/apps/xml2dcm.cc                            |    6 +
 dcmdata/data/dicom.dic                             |   89 +-
 dcmdata/include/dcmtk/dcmdata/dcdeftag.h           |   89 +-
 dcmdata/include/dcmtk/dcmdata/dcerror.h            |    2 +-
 dcmdata/include/dcmtk/dcmdata/dcuid.h              |    7 +
 dcmdata/libsrc/dcdictbi.cc                         |  330 +-
 dcmdata/libsrc/dcuid.cc                            |   13 +
 dcmfg/include/dcmtk/dcmfg/fgderimg.h               |   69 +-
 dcmfg/include/dcmtk/dcmfg/fgfracon.h               |    4 +-
 dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h         |  157 +
 dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h  |  174 +
 dcmfg/include/dcmtk/dcmfg/fginterface.h            |   18 +-
 .../include/dcmtk/dcmfg/fgparametricmapframetype.h |  124 +
 .../include/dcmtk/dcmfg/fgrealworldvaluemapping.h  |   61 +-
 dcmfg/include/dcmtk/dcmfg/fgtypes.h                |    6 +-
 dcmfg/include/dcmtk/dcmfg/stack.h                  |    4 -
 dcmfg/libsrc/CMakeLists.txt                        |    3 +
 dcmfg/libsrc/Makefile.dep                          |  415 ++-
 dcmfg/libsrc/fg.cc                                 |    3 +-
 dcmfg/libsrc/fgbase.cc                             |    1 -
 dcmfg/libsrc/fgderimg.cc                           |  108 +-
 dcmfg/libsrc/fgfact.cc                             |   14 +-
 dcmfg/libsrc/fgfracon.cc                           |    6 +-
 dcmfg/libsrc/fgframeanatomy.cc                     |  203 ++
 dcmfg/libsrc/fgframevoilut.cc                      |    2 +-
 dcmfg/libsrc/fgidentpixeltransform.cc              |  229 ++
 dcmfg/libsrc/fgimagedatatype.cc                    |   15 +-
 dcmfg/libsrc/fginterface.cc                        |   40 +-
 dcmfg/libsrc/fgparametricmapframetype.cc           |  145 +
 dcmfg/libsrc/fgpixmsr.cc                           |    2 +-
 dcmfg/libsrc/fgplanor.cc                           |    2 +-
 dcmfg/libsrc/fgplanorvol.cc                        |    2 +-
 dcmfg/libsrc/fgplanpo.cc                           |    2 +-
 dcmfg/libsrc/fgplanposvol.cc                       |    2 +-
 dcmfg/libsrc/fgrealworldvaluemapping.cc            |   99 +-
 dcmfg/libsrc/fgseg.cc                              |    2 +-
 dcmfg/libsrc/fgtypes.cc                            |   10 +-
 dcmfg/libsrc/fgusimagedescription.cc               |    2 +-
 dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h         |    4 +-
 dcmimgle/libsrc/dimoimg.cc                         |    2 +-
 dcmiod/include/dcmtk/dcmiod/iodcommn.h             |   51 +-
 dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h  |  478 +++
 dcmiod/include/dcmtk/dcmiod/iodimage.h             |  257 +-
 dcmiod/include/dcmtk/dcmiod/iodmacro.h             |  182 +-
 dcmiod/include/dcmtk/dcmiod/iodutil.h              |   28 +-
 dcmiod/include/dcmtk/dcmiod/modbase.h              |   37 +-
 dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h |    2 +
 dcmiod/include/dcmtk/dcmiod/modenhequipment.h      |   51 +-
 dcmiod/include/dcmtk/dcmiod/modequipment.h         |   47 +-
 .../dcmtk/dcmiod/modfloatingpointimagepixel.h      |  246 ++
 dcmiod/include/dcmtk/dcmiod/modfor.h               |    9 +-
 dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h      |    2 +-
 dcmiod/include/dcmtk/dcmiod/modimagepixel.h        |  108 +-
 dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h    |  168 +
 dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h |  281 ++
 .../include/dcmtk/dcmiod/modmultiframedimension.h  |    3 +-
 dcmiod/include/dcmtk/dcmiod/modsynchronisation.h   |   23 +
 dcmiod/libsrc/CMakeLists.txt                       |    4 +-
 dcmiod/libsrc/Makefile.dep                         |  279 +-
 dcmiod/libsrc/Makefile.in                          |   13 +-
 dcmiod/libsrc/iodcommn.cc                          |   77 +-
 dcmiod/libsrc/iodcontentitemmacro.cc               |  800 ++++
 dcmiod/libsrc/iodimage.cc                          |   89 -
 dcmiod/libsrc/iodmacro.cc                          |  372 +-
 dcmiod/libsrc/modbase.cc                           |   48 +-
 dcmiod/libsrc/modcommoninstanceref.cc              |   14 +-
 dcmiod/libsrc/modenhequipment.cc                   |   10 +-
 dcmiod/libsrc/modequipment.cc                      |   17 +-
 dcmiod/libsrc/modfloatingpointimagepixel.cc        |  260 ++
 dcmiod/libsrc/modfor.cc                            |   23 +-
 dcmiod/libsrc/modimagepixel.cc                     |  192 +-
 dcmiod/libsrc/modimagepixelbase.cc                 |  138 +
 dcmiod/libsrc/modmultiframedimension.cc            |   31 +-
 dcmiod/libsrc/modmultiframefg.cc                   |    2 -
 dcmiod/libsrc/modsynchronization.cc                |   57 +-
 dcmiod/libsrc/modusfor.cc                          |    3 +-
 dcmiod/tests/CMakeLists.txt                        |    2 +-
 dcmiod/tests/Makefile.dep                          |  140 +
 dcmiod/tests/Makefile.in                           |    2 +-
 dcmiod/tests/tests.cc                              |    1 +
 dcmiod/tests/timagepixel.cc                        |   34 +
 dcmjpeg/libsrc/ddpiimpl.cc                         |    4 +-
 dcmjpeg/libsrc/djcodece.cc                         |   12 +-
 dcmjpls/libcharls/decodstr.h                       |   70 +-
 dcmjpls/libcharls/encodstr.h                       |   65 +-
 dcmjpls/libcharls/header.cc                        |   22 +-
 dcmjpls/libcharls/intrface.cc                      |   61 +-
 dcmjpls/libcharls/intrface.h                       |    4 +-
 dcmjpls/libcharls/pubtypes.h                       |    3 +-
 dcmjpls/libcharls/scan.h                           |   33 +-
 dcmjpls/libcharls/streams.h                        |   65 +-
 dcmjpls/libcharls/util.h                           |    1 +
 dcmjpls/libsrc/djcodece.cc                         |   38 +-
 dcmnet/docs/movescu.man                            |    2 +
 dcmnet/docs/storescp.man                           |    2 +
 dcmnet/etc/storescp.cfg                            |    2 +
 dcmnet/etc/storescu.cfg                            |    2 +
 dcmnet/libsrc/dstorscu.cc                          |    2 +
 dcmnet/libsrc/dulparse.cc                          |    6 +-
 dcmpmap/CMakeLists.txt                             |   10 +
 dcmpmap/Makefile.in                                |   86 +
 dcmpmap/configure                                  |   53 +
 dcmpmap/data/Makefile.in                           |   23 +
 dcmpmap/docs/Makefile.in                           |   23 +
 dcmpmap/docs/dcmpmap.dox                           |  527 +++
 dcmpmap/etc/Makefile.in                            |   23 +
 dcmpmap/include/CMakeLists.txt                     |    2 +
 dcmpmap/include/Makefile.in                        |   27 +
 dcmpmap/include/dcmtk/dcmpmap/dpmdef.h             |   37 +
 .../dcmtk/dcmpmap/dpmmodparametricmapimage.h       |  304 ++
 .../dcmtk/dcmpmap/dpmmodparametricmapseries.h      |  133 +
 .../include/dcmtk/dcmpmap/dpmparametricmapbase.h   |  249 ++
 .../include/dcmtk/dcmpmap/dpmparametricmapiod.h    |  305 ++
 dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h           |  137 +
 dcmpmap/libsrc/CMakeLists.txt                      |    5 +
 {dcmseg => dcmpmap}/libsrc/Makefile.dep            |  353 +-
 {dcmiod => dcmpmap}/libsrc/Makefile.in             |   19 +-
 dcmpmap/libsrc/dpmmodparametricmapimage.cc         |  289 ++
 dcmpmap/libsrc/dpmmodparametricmapseries.cc        |  124 +
 dcmpmap/libsrc/dpmparametricmapbase.cc             |  227 ++
 dcmpmap/libsrc/dpmparametricmapiod.cc              | 1063 ++++++
 dcmpmap/libsrc/dpmtypes.cc                         |  111 +
 {dcmseg/libsrc => dcmpmap/tests}/Makefile.dep      |  428 ++-
 dcmpmap/tests/Makefile.in                          |   29 +
 dcmpstat/apps/dcmprscu.cc                          |   10 +-
 dcmpstat/libsrc/dviface.cc                         |   15 +-
 dcmpstat/libsrc/dvpshlp.cc                         |    2 +-
 dcmqrdb/docs/dcmqrscp.man                          |    2 +
 dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h           |   36 +-
 dcmrt/apps/Makefile.dep                            |   44 +-
 dcmrt/include/dcmtk/dcmrt/drtdose.h                |  449 ++-
 dcmrt/include/dcmtk/dcmrt/drtimage.h               |  515 ++-
 dcmrt/include/dcmtk/dcmrt/drtionpl.h               |  505 ++-
 dcmrt/include/dcmtk/dcmrt/drtiontr.h               |  489 ++-
 dcmrt/include/dcmtk/dcmrt/drtplan.h                |  505 ++-
 dcmrt/include/dcmtk/dcmrt/drtstrct.h               |  489 ++-
 dcmrt/include/dcmtk/dcmrt/drttreat.h               |  489 ++-
 dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h           |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h            |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtads.h             |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtafs.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtags.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h            |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtas1.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtas5.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtas6.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtas7.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtass.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbads.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbas.h             |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h             |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h             |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h           |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbs.h              |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbss.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h           |   18 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h           |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtccs.h             |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtces.h             |    6 +-
 .../dcmtk/dcmrt/seq/{drtas6.h => drtcgis.h}        |   78 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtchs.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcims.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcis.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h            |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcos.h             |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcps.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcs.h              |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtcss.h             |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h             |   22 +-
 .../dcmtk/dcmrt/seq/{drtrcs.h => drtdddps.h}       |  119 +-
 .../dcmtk/dcmrt/seq/{drtrshs6.h => drtddps.h}      |   99 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtdias.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h           |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtds.h              |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h           |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtdss.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drteas.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtecs.h             |  150 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtes.h              |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtfds.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtfes.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtfms.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtgas.h             |    6 +-
 .../dcmtk/dcmrt/seq/{drtopis.h => drtgpis.h}       |   52 +-
 dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtiais.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtians.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtibls.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtibs.h             |   53 +-
 dcmrt/include/dcmtk/dcmrt/seq/drticpds.h           |   68 +-
 dcmrt/include/dcmtk/dcmrt/seq/drticps.h            |   45 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtics.h             |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtiis.h             |   24 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtircs.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtitts.h            |   98 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtiws.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtmas.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtmls.h             |   12 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtmps.h             |    6 +-
 .../dcmtk/dcmrt/seq/{drtiais.h => drtmris.h}       |   66 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtmss.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h            |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtoas.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtois.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtopis.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtos.h              |   23 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h            |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h             |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h           |   21 +-
 .../dcmtk/dcmrt/seq/{drtiws.h => drtpdeds.h}       |  165 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtpics.h            |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h           |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtporis.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h            |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h            |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h           |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtpss.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtqds.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtras.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h            |   61 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h            |   61 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrds.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrics.h            |   37 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrims.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtris.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrms.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h            |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h           |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrps.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrros.h            |   21 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h           |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h          |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h          |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h          |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h            |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrses.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrss.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrws.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h           |   42 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtscris.h           |    6 +-
 .../dcmtk/dcmrt/seq/{drtcbars.h => drtscs.h}       |   55 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h            |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtsds.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtshds.h            |    6 +-
 .../dcmtk/dcmrt/seq/{drtris.h => drtsins.h}        |   26 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtsis.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtsns.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h           |   22 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h            |   22 +-
 .../dcmtk/dcmrt/seq/{drtopis.h => drtspgis.h}      |   40 +-
 .../dcmtk/dcmrt/seq/{drtarics.h => drtsptcs.h}     |   55 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtss.h              |    6 +-
 .../dcmtk/dcmrt/seq/{drtarics.h => drtssrcs.h}     |   55 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h            |    6 +-
 .../dcmtk/dcmrt/seq/{drtrsts.h => drtsss.h}        |   70 +-
 dcmrt/include/dcmtk/dcmrt/seq/drttms0.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drttms9.h            |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drttscds.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h           |   53 +-
 dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drttts.h             |    6 +-
 .../dcmtk/dcmrt/seq/{drtrsns.h => drtudis.h}       |   50 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtvls.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtwps.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h             |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h           |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtws.h              |    6 +-
 dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h             |    6 +-
 dcmrt/libsrc/CMakeLists.txt                        |    2 +-
 dcmrt/libsrc/Makefile.dep                          | 3857 ++++++++++++++------
 dcmrt/libsrc/Makefile.in                           |   59 +-
 dcmrt/libsrc/drtaadcs.cc                           |   35 +-
 dcmrt/libsrc/drtadcs.cc                            |   35 +-
 dcmrt/libsrc/drtads.cc                             |   35 +-
 dcmrt/libsrc/drtafs.cc                             |    6 +-
 dcmrt/libsrc/drtags.cc                             |    6 +-
 dcmrt/libsrc/drtajcs.cc                            |   35 +-
 dcmrt/libsrc/drtas1.cc                             |    6 +-
 dcmrt/libsrc/drtas5.cc                             |    6 +-
 dcmrt/libsrc/drtas6.cc                             |    6 +-
 dcmrt/libsrc/drtas7.cc                             |    6 +-
 dcmrt/libsrc/drtass.cc                             |    6 +-
 dcmrt/libsrc/drtbads.cc                            |    6 +-
 dcmrt/libsrc/drtbas.cc                             |   35 +-
 dcmrt/libsrc/drtbcps.cc                            |    6 +-
 dcmrt/libsrc/drtbl2.cc                             |   39 +-
 dcmrt/libsrc/drtbl5.cc                             |   39 +-
 dcmrt/libsrc/drtbldls.cc                           |    6 +-
 dcmrt/libsrc/drtbldps.cc                           |    6 +-
 dcmrt/libsrc/drtblds1.cc                           |    6 +-
 dcmrt/libsrc/drtblds5.cc                           |    6 +-
 dcmrt/libsrc/drtblds6.cc                           |    6 +-
 dcmrt/libsrc/drtbldts.cc                           |    6 +-
 dcmrt/libsrc/drtbrcss.cc                           |   35 +-
 dcmrt/libsrc/drtbrdrs.cc                           |    6 +-
 dcmrt/libsrc/drtbrs.cc                             |    6 +-
 dcmrt/libsrc/drtbs.cc                              |    6 +-
 dcmrt/libsrc/drtbss.cc                             |    6 +-
 dcmrt/libsrc/drtbvcps.cc                           |   27 +-
 dcmrt/libsrc/drtcbars.cc                           |   35 +-
 dcmrt/libsrc/drtccs.cc                             |   35 +-
 dcmrt/libsrc/drtcctus.cc                           |    6 +-
 dcmrt/libsrc/drtcdrs.cc                            |    6 +-
 dcmrt/libsrc/drtces.cc                             |    6 +-
 dcmrt/libsrc/{drtcctus.cc => drtcgis.cc}           |  183 +-
 dcmrt/libsrc/drtchs.cc                             |    6 +-
 dcmrt/libsrc/drtcims.cc                            |    6 +-
 dcmrt/libsrc/drtcis.cc                             |    6 +-
 dcmrt/libsrc/drtcncs.cc                            |   35 +-
 dcmrt/libsrc/drtcos.cc                             |   39 +-
 dcmrt/libsrc/drtcpas.cc                            |    6 +-
 dcmrt/libsrc/drtcpis.cc                            |    6 +-
 dcmrt/libsrc/drtcps.cc                             |    6 +-
 dcmrt/libsrc/drtcs.cc                              |    6 +-
 dcmrt/libsrc/drtcsas.cc                            |    6 +-
 dcmrt/libsrc/drtcshs.cc                            |    6 +-
 dcmrt/libsrc/drtcsis.cc                            |    6 +-
 dcmrt/libsrc/drtcss.cc                             |   35 +-
 dcmrt/libsrc/drtdcs.cc                             |   35 +-
 dcmrt/libsrc/{drtas6.cc => drtdddps.cc}            |  229 +-
 dcmrt/libsrc/{drtiais.cc => drtddps.cc}            |  222 +-
 dcmrt/libsrc/drtdias.cc                            |    6 +-
 dcmrt/libsrc/drtdimcs.cc                           |   35 +-
 dcmrt/libsrc/drtdimrs.cc                           |    6 +-
 dcmrt/libsrc/drtdirs.cc                            |    6 +-
 dcmrt/libsrc/drtdose.cc                            |  473 ++-
 dcmrt/libsrc/drtdrs.cc                             |    6 +-
 dcmrt/libsrc/drtds.cc                              |   35 +-
 dcmrt/libsrc/drtdspcs.cc                           |   35 +-
 dcmrt/libsrc/drtdss.cc                             |    6 +-
 dcmrt/libsrc/drtdvhs.cc                            |    6 +-
 dcmrt/libsrc/drtdvrrs.cc                           |    6 +-
 dcmrt/libsrc/drteas.cc                             |    6 +-
 dcmrt/libsrc/drtecs.cc                             |  269 +-
 dcmrt/libsrc/drtes.cc                              |    6 +-
 dcmrt/libsrc/drtfds.cc                             |    6 +-
 dcmrt/libsrc/drtfes.cc                             |    6 +-
 dcmrt/libsrc/drtfgs.cc                             |    6 +-
 dcmrt/libsrc/drtfgss.cc                            |    6 +-
 dcmrt/libsrc/drtfms.cc                             |    6 +-
 dcmrt/libsrc/drtfsss.cc                            |    6 +-
 dcmrt/libsrc/drtgas.cc                             |    6 +-
 dcmrt/libsrc/{drtopis.cc => drtgpis.cc}            |  165 +-
 dcmrt/libsrc/drthsdrs.cc                           |    6 +-
 dcmrt/libsrc/drtiais.cc                            |    6 +-
 dcmrt/libsrc/drtians.cc                            |    6 +-
 dcmrt/libsrc/drtiblds.cc                           |    6 +-
 dcmrt/libsrc/drtibls.cc                            |    6 +-
 dcmrt/libsrc/drtibs.cc                             |   71 +-
 dcmrt/libsrc/drticpds.cc                           |  111 +-
 dcmrt/libsrc/drticps.cc                            |   73 +-
 dcmrt/libsrc/drtics.cc                             |   35 +-
 dcmrt/libsrc/drtiis.cc                             |   45 +-
 dcmrt/libsrc/drtimage.cc                           |  583 ++-
 dcmrt/libsrc/drtionpl.cc                           |  481 ++-
 dcmrt/libsrc/drtiontr.cc                           |  463 ++-
 dcmrt/libsrc/drtipiqs.cc                           |    6 +-
 dcmrt/libsrc/drtircs.cc                            |    6 +-
 dcmrt/libsrc/drtiseis.cc                           |    6 +-
 dcmrt/libsrc/drtitts.cc                            |  160 +-
 dcmrt/libsrc/drtiwps.cc                            |    6 +-
 dcmrt/libsrc/drtiws.cc                             |    6 +-
 dcmrt/libsrc/drtlsds.cc                            |    6 +-
 dcmrt/libsrc/drtlsds6.cc                           |    6 +-
 dcmrt/libsrc/drtlsds7.cc                           |    6 +-
 dcmrt/libsrc/drtmacds.cc                           |    6 +-
 dcmrt/libsrc/drtmas.cc                             |   11 +-
 dcmrt/libsrc/drtmdrs.cc                            |    6 +-
 dcmrt/libsrc/drtmls.cc                             |   18 +-
 dcmrt/libsrc/drtmps.cc                             |    6 +-
 dcmrt/libsrc/{drtrsrs.cc => drtmris.cc}            |  161 +-
 dcmrt/libsrc/drtmss.cc                             |    6 +-
 dcmrt/libsrc/drtmucs.cc                            |   35 +-
 dcmrt/libsrc/drtoas.cc                             |    6 +-
 dcmrt/libsrc/drtois.cc                             |    6 +-
 dcmrt/libsrc/drtopis.cc                            |    6 +-
 dcmrt/libsrc/drtos.cc                              |   13 +-
 dcmrt/libsrc/drtpbcs.cc                            |   35 +-
 dcmrt/libsrc/drtpcs.cc                             |   35 +-
 dcmrt/libsrc/drtpcxs.cc                            |    6 +-
 dcmrt/libsrc/drtpdecs.cc                           |   13 +-
 dcmrt/libsrc/drtpdeds.cc                           |  764 ++++
 dcmrt/libsrc/drtpfms.cc                            |    6 +-
 dcmrt/libsrc/drtpics.cc                            |   35 +-
 dcmrt/libsrc/drtplan.cc                            |  481 ++-
 dcmrt/libsrc/drtporcs.cc                           |   35 +-
 dcmrt/libsrc/drtporis.cc                           |    6 +-
 dcmrt/libsrc/drtppcs.cc                            |   35 +-
 dcmrt/libsrc/drtprsis.cc                           |    6 +-
 dcmrt/libsrc/drtpscs.cc                            |   35 +-
 dcmrt/libsrc/drtpsics.cc                           |   35 +-
 dcmrt/libsrc/drtpss.cc                             |    6 +-
 dcmrt/libsrc/drtpsss.cc                            |    6 +-
 dcmrt/libsrc/drtpvis.cc                            |    6 +-
 dcmrt/libsrc/drtqds.cc                             |    6 +-
 dcmrt/libsrc/drtras.cc                             |    6 +-
 dcmrt/libsrc/drtrbas2.cc                           |    6 +-
 dcmrt/libsrc/drtrbas8.cc                           |    6 +-
 dcmrt/libsrc/drtrbls.cc                            |    6 +-
 dcmrt/libsrc/drtrbos1.cc                           |    6 +-
 dcmrt/libsrc/drtrbos6.cc                           |    6 +-
 dcmrt/libsrc/drtrbos7.cc                           |    6 +-
 dcmrt/libsrc/drtrbs2.cc                            |    6 +-
 dcmrt/libsrc/drtrbs4.cc                            |  102 +-
 dcmrt/libsrc/drtrbs8.cc                            |  102 +-
 dcmrt/libsrc/drtrcdrs.cc                           |    6 +-
 dcmrt/libsrc/drtrcos.cc                            |    6 +-
 dcmrt/libsrc/drtrcps.cc                            |    6 +-
 dcmrt/libsrc/drtrcs.cc                             |    6 +-
 dcmrt/libsrc/drtrdros.cc                           |    6 +-
 dcmrt/libsrc/drtrdrs1.cc                           |    6 +-
 dcmrt/libsrc/drtrdrs6.cc                           |    6 +-
 dcmrt/libsrc/drtrdrs8.cc                           |    6 +-
 dcmrt/libsrc/drtrds.cc                             |    6 +-
 dcmrt/libsrc/drtrecs.cc                            |    6 +-
 dcmrt/libsrc/drtrfgs.cc                            |    6 +-
 dcmrt/libsrc/drtrfors.cc                           |    6 +-
 dcmrt/libsrc/drtrics.cc                            |   44 +-
 dcmrt/libsrc/drtrims.cc                            |    6 +-
 dcmrt/libsrc/drtris.cc                             |    6 +-
 dcmrt/libsrc/drtrlsds.cc                           |    6 +-
 dcmrt/libsrc/drtrmdrs.cc                           |    6 +-
 dcmrt/libsrc/drtrms.cc                             |    6 +-
 dcmrt/libsrc/drtrmss6.cc                           |    6 +-
 dcmrt/libsrc/drtrmss7.cc                           |    6 +-
 dcmrt/libsrc/drtrpcs.cc                            |   35 +-
 dcmrt/libsrc/drtrpis.cc                            |    6 +-
 dcmrt/libsrc/drtrppcs.cc                           |   35 +-
 dcmrt/libsrc/drtrpphs.cc                           |    6 +-
 dcmrt/libsrc/drtrpps.cc                            |    6 +-
 dcmrt/libsrc/drtrppss.cc                           |    6 +-
 dcmrt/libsrc/drtrps.cc                             |    6 +-
 dcmrt/libsrc/drtrris1.cc                           |    6 +-
 dcmrt/libsrc/drtrris6.cc                           |    6 +-
 dcmrt/libsrc/drtrris9.cc                           |    6 +-
 dcmrt/libsrc/drtrrms.cc                            |    6 +-
 dcmrt/libsrc/drtrros.cc                            |   13 +-
 dcmrt/libsrc/drtrrpcs.cc                           |   35 +-
 dcmrt/libsrc/drtrrros.cc                           |    6 +-
 dcmrt/libsrc/drtrrs.cc                             |    6 +-
 dcmrt/libsrc/drtrrshs.cc                           |    6 +-
 dcmrt/libsrc/drtrrtps.cc                           |    6 +-
 dcmrt/libsrc/drtrrtps3.cc                          |    6 +-
 dcmrt/libsrc/drtrrtps4.cc                          |    6 +-
 dcmrt/libsrc/drtrrtps5.cc                          |    6 +-
 dcmrt/libsrc/drtrscs.cc                            |   35 +-
 dcmrt/libsrc/drtrsers.cc                           |    6 +-
 dcmrt/libsrc/drtrses.cc                            |    6 +-
 dcmrt/libsrc/drtrshs.cc                            |    6 +-
 dcmrt/libsrc/drtrshs6.cc                           |    6 +-
 dcmrt/libsrc/drtrshs7.cc                           |    6 +-
 dcmrt/libsrc/drtrsis.cc                            |    6 +-
 dcmrt/libsrc/drtrsns.cc                            |    6 +-
 dcmrt/libsrc/drtrsos.cc                            |    6 +-
 dcmrt/libsrc/drtrsrs.cc                            |    6 +-
 dcmrt/libsrc/drtrss.cc                             |    6 +-
 dcmrt/libsrc/drtrsss.cc                            |    6 +-
 dcmrt/libsrc/drtrsts.cc                            |    6 +-
 dcmrt/libsrc/drtrtrs2.cc                           |    6 +-
 dcmrt/libsrc/drtrtrs4.cc                           |    6 +-
 dcmrt/libsrc/drtrvis.cc                            |    6 +-
 dcmrt/libsrc/drtrws.cc                             |    6 +-
 dcmrt/libsrc/drtrwvms.cc                           |   64 +-
 dcmrt/libsrc/drtscris.cc                           |    6 +-
 dcmrt/libsrc/{drtccs.cc => drtscs.cc}              |  243 +-
 dcmrt/libsrc/drtsdcs.cc                            |   35 +-
 dcmrt/libsrc/drtsds.cc                             |    6 +-
 dcmrt/libsrc/drtshds.cc                            |    6 +-
 dcmrt/libsrc/{drtrds.cc => drtsins.cc}             |  111 +-
 dcmrt/libsrc/drtsis.cc                             |    6 +-
 dcmrt/libsrc/drtsns.cc                             |    6 +-
 dcmrt/libsrc/drtspccs.cc                           |   35 +-
 dcmrt/libsrc/drtspcs.cc                            |   35 +-
 dcmrt/libsrc/{drtopis.cc => drtspgis.cc}           |  153 +-
 dcmrt/libsrc/{drtarics.cc => drtsptcs.cc}          |  240 +-
 dcmrt/libsrc/drtss.cc                              |    6 +-
 dcmrt/libsrc/{drtpics.cc => drtssrcs.cc}           |  231 +-
 dcmrt/libsrc/drtssrs.cc                            |    6 +-
 dcmrt/libsrc/{drtrrs.cc => drtsss.cc}              |  162 +-
 dcmrt/libsrc/drtstrct.cc                           |  463 ++-
 dcmrt/libsrc/drttms0.cc                            |    6 +-
 dcmrt/libsrc/drttms9.cc                            |    6 +-
 dcmrt/libsrc/drttreat.cc                           |  463 ++-
 dcmrt/libsrc/drttscds.cc                           |    6 +-
 dcmrt/libsrc/drttsibs.cc                           |   71 +-
 dcmrt/libsrc/drttsmds.cc                           |    6 +-
 dcmrt/libsrc/drttts.cc                             |    6 +-
 dcmrt/libsrc/{drtsns.cc => drtudis.cc}             |  144 +-
 dcmrt/libsrc/drtvls.cc                             |    6 +-
 dcmrt/libsrc/drtwps.cc                             |    6 +-
 dcmrt/libsrc/drtwrs.cc                             |    6 +-
 dcmrt/libsrc/drtwrsrs.cc                           |    6 +-
 dcmrt/libsrc/drtws.cc                              |    6 +-
 dcmrt/libsrc/drtxrs.cc                             |    6 +-
 dcmrt/tests/Makefile.dep                           |   78 +-
 dcmseg/include/dcmtk/dcmseg/segdoc.h               |   31 +-
 dcmseg/libsrc/Makefile.dep                         |   28 +-
 dcmseg/libsrc/segdoc.cc                            |   58 +-
 dcmsr/apps/xml2dsr.cc                              |    9 +
 dcmsr/include/dcmtk/dcmsr/cmr/cid100.h             |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h           |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h           |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid11.h              |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid244.h             |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid29.h              |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h            |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h            |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h            |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid42.h              |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h            |   24 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h            |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h            |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h            |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h            |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h            |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h            |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h            |    4 +-
 dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h            |    4 +-
 dcmsr/include/dcmtk/dcmsr/codes/dcm.h              |   77 +-
 dcmsr/include/dcmtk/dcmsr/codes/ncit.h             |    4 +-
 dcmsr/include/dcmtk/dcmsr/codes/umls.h             |    7 +-
 dcmsr/include/dcmtk/dcmsr/dsrcodvl.h               |    4 +
 dcmsr/include/dcmtk/dcmsr/dsrdoc.h                 |    4 +
 dcmsr/include/dcmtk/dcmsr/dsrsoprf.h               |    2 +-
 dcmsr/include/dcmtk/dcmsr/dsrtlist.h               |   41 +
 dcmsr/include/dcmtk/dcmsr/dsrtypes.h               |    3 +
 dcmsr/include/dcmtk/dcmsr/dsrxmld.h                |    7 +
 dcmsr/libcmr/cid100.cc                             |    4 +-
 dcmsr/libcmr/cid10013.cc                           |    4 +-
 dcmsr/libcmr/cid10033.cc                           |    4 +-
 dcmsr/libcmr/cid11.cc                              |    4 +-
 dcmsr/libcmr/cid244.cc                             |    4 +-
 dcmsr/libcmr/cid29.cc                              |    4 +-
 dcmsr/libcmr/cid4020.cc                            |    4 +-
 dcmsr/libcmr/cid4021.cc                            |    4 +-
 dcmsr/libcmr/cid4031.cc                            |    4 +-
 dcmsr/libcmr/cid42.cc                              |    4 +-
 dcmsr/libcmr/cid5000.cc                            |   28 +-
 dcmsr/libcmr/cid6147.cc                            |    4 +-
 dcmsr/libcmr/cid7021.cc                            |    4 +-
 dcmsr/libcmr/cid7181.cc                            |    4 +-
 dcmsr/libcmr/cid7445.cc                            |    4 +-
 dcmsr/libcmr/cid7452.cc                            |    4 +-
 dcmsr/libcmr/cid7453.cc                            |    4 +-
 dcmsr/libcmr/cid7464.cc                            |    4 +-
 dcmsr/libcmr/cid7469.cc                            |    4 +-
 dcmsr/libsrc/dsrdoc.cc                             |   40 +-
 dcmsr/libsrc/dsrtypes.cc                           |  153 +-
 dcmsr/libsrc/dsrxmld.cc                            |   15 +-
 dcmsr/tests/CMakeLists.txt                         |    2 +-
 dcmsr/tests/Makefile.dep                           |   46 +
 dcmsr/tests/Makefile.in                            |    3 +-
 dcmsr/tests/tests.cc                               |    2 +
 dcmsr/tests/tsrlist.cc                             |   68 +
 dcmtract/docs/dcmtract.dox                         |    3 +-
 dcmtract/libsrc/Makefile.dep                       |   22 +-
 docs/CHANGES.361                                   | 1067 ++++++
 doxygen/htmldocs.cfg                               |    2 +-
 doxygen/htmldocs.dox                               |    1 +
 doxygen/manpages.cfg                               |    2 +-
 doxygen/manpages/man1/dcm2pdf.1                    |    2 +-
 doxygen/manpages/man1/dcm2pnm.1                    |    2 +-
 doxygen/manpages/man1/dcm2xml.1                    |    2 +-
 doxygen/manpages/man1/dcmcjpeg.1                   |    2 +-
 doxygen/manpages/man1/dcmcjpls.1                   |    2 +-
 doxygen/manpages/man1/dcmconv.1                    |    2 +-
 doxygen/manpages/man1/dcmcrle.1                    |    2 +-
 doxygen/manpages/man1/dcmdjpeg.1                   |    2 +-
 doxygen/manpages/man1/dcmdjpls.1                   |    2 +-
 doxygen/manpages/man1/dcmdrle.1                    |    2 +-
 doxygen/manpages/man1/dcmdspfn.1                   |    2 +-
 doxygen/manpages/man1/dcmdump.1                    |    2 +-
 doxygen/manpages/man1/dcmftest.1                   |    2 +-
 doxygen/manpages/man1/dcmgpdir.1                   |    2 +-
 doxygen/manpages/man1/dcmj2pnm.1                   |    2 +-
 doxygen/manpages/man1/dcml2pnm.1                   |    2 +-
 doxygen/manpages/man1/dcmmkcrv.1                   |    2 +-
 doxygen/manpages/man1/dcmmkdir.1                   |    2 +-
 doxygen/manpages/man1/dcmmklut.1                   |    2 +-
 doxygen/manpages/man1/dcmodify.1                   |    2 +-
 doxygen/manpages/man1/dcmp2pgm.1                   |    2 +-
 doxygen/manpages/man1/dcmprscp.1                   |    2 +-
 doxygen/manpages/man1/dcmprscu.1                   |    2 +-
 doxygen/manpages/man1/dcmpschk.1                   |    2 +-
 doxygen/manpages/man1/dcmpsmk.1                    |    2 +-
 doxygen/manpages/man1/dcmpsprt.1                   |    2 +-
 doxygen/manpages/man1/dcmpsrcv.1                   |    2 +-
 doxygen/manpages/man1/dcmpssnd.1                   |    2 +-
 doxygen/manpages/man1/dcmqridx.1                   |    2 +-
 doxygen/manpages/man1/dcmqrscp.1                   |    4 +-
 doxygen/manpages/man1/dcmqrti.1                    |    2 +-
 doxygen/manpages/man1/dcmquant.1                   |    2 +-
 doxygen/manpages/man1/dcmrecv.1                    |    2 +-
 doxygen/manpages/man1/dcmscale.1                   |    2 +-
 doxygen/manpages/man1/dcmsend.1                    |    2 +-
 doxygen/manpages/man1/dcmsign.1                    |    2 +-
 doxygen/manpages/man1/dcod2lum.1                   |    2 +-
 doxygen/manpages/man1/dconvlum.1                   |    2 +-
 doxygen/manpages/man1/drtdump.1                    |    2 +-
 doxygen/manpages/man1/dsr2html.1                   |    2 +-
 doxygen/manpages/man1/dsr2xml.1                    |    2 +-
 doxygen/manpages/man1/dsrdump.1                    |    2 +-
 doxygen/manpages/man1/dump2dcm.1                   |    2 +-
 doxygen/manpages/man1/echoscu.1                    |    2 +-
 doxygen/manpages/man1/findscu.1                    |    2 +-
 doxygen/manpages/man1/getscu.1                     |    2 +-
 doxygen/manpages/man1/img2dcm.1                    |    2 +-
 doxygen/manpages/man1/movescu.1                    |    4 +-
 doxygen/manpages/man1/pdf2dcm.1                    |    2 +-
 doxygen/manpages/man1/storescp.1                   |    4 +-
 doxygen/manpages/man1/storescu.1                   |    2 +-
 doxygen/manpages/man1/termscu.1                    |    2 +-
 doxygen/manpages/man1/wlmscpfs.1                   |    2 +-
 doxygen/manpages/man1/xml2dcm.1                    |    2 +-
 doxygen/manpages/man1/xml2dsr.1                    |    2 +-
 oflog/include/dcmtk/oflog/oflog.h                  |    4 +-
 oflog/libsrc/oflog.cc                              |    4 +-
 ofstd/include/dcmtk/ofstd/oftraits.h               |    2 +-
 ofstd/include/dcmtk/ofstd/oftuple.h                |    3 +-
 ofstd/include/dcmtk/ofstd/ofutil.h                 |  353 +-
 ofstd/include/dcmtk/ofstd/ofvriant.h               |  736 ++++
 ofstd/include/dcmtk/ofstd/variadic/helpers.h       |   91 +
 ofstd/include/dcmtk/ofstd/variadic/variant.h       |  426 +++
 ofstd/libsrc/ofstd.cc                              |    2 +
 ofstd/tests/CMakeLists.txt                         |    2 +-
 ofstd/tests/Makefile.dep                           |   15 +
 ofstd/tests/Makefile.in                            |    2 +-
 ofstd/tests/tests.cc                               |    1 +
 ofstd/tests/tthread.cc                             |  114 +-
 ofstd/tests/tvariant.cc                            |  110 +
 724 files changed, 30434 insertions(+), 6191 deletions(-)

diff --git a/CMake/3rdparty.cmake b/CMake/3rdparty.cmake
index 9fcca77..b40f88b 100755
--- a/CMake/3rdparty.cmake
+++ b/CMake/3rdparty.cmake
@@ -1,4 +1,4 @@
-IF(WIN32)
+IF(WIN32 AND NOT MINGW)
 
   # For Windows, we don't used FIND_PACKAGE because DCMTK usually is used with its
   # own set of 3rd-party support libraries that can be downloaded from DCMTK's
@@ -139,7 +139,7 @@ IF(WIN32)
     ENDIF(WITH_LIBICONVINC)
   ENDIF(DCMTK_WITH_ICONV)
 
-ELSE(WIN32)
+ELSE(WIN32 AND NOT MINGW)
 
   # Find TIFF
   IF(DCMTK_WITH_TIFF)
diff --git a/CMake/DCMTKConfig.cmake.in b/CMake/DCMTKConfig.cmake.in
index b77a856..89188d2 100644
--- a/CMake/DCMTKConfig.cmake.in
+++ b/CMake/DCMTKConfig.cmake.in
@@ -33,15 +33,8 @@ SET(DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS @DCMTK_OVERWRITE_WIN32_COMPILER_FLAGS@)
 SET(DCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS @DCMTK_WIDE_CHAR_FILE_IO_FUNCTIONS@)
 SET(DCMTK_WIDE_CHAR_MAIN_FUNCTION @DCMTK_WIDE_CHAR_MAIN_FUNCTION@)
 
- at DCMTK_INCLUDE_DIR_CONFIGS@
-
 SET_AND_CHECK(DCMTK_TARGETS "@PACKAGE_DCMTK_CMKDIR_CONFIG@/DCMTKTargets.cmake")
 
-SET(DCMTK_INCLUDE_DIRS "")
-FOREACH(module config ${DCMTK_MODULES})
-  LIST(APPEND DCMTK_INCLUDE_DIRS ${DCMTK_${module}_INCLUDE_DIR})
-ENDFOREACH(module)
-
 @DCMTK_CONFIG_CODE@
 
 # Compatibility: This variable is deprecated
diff --git a/CMake/dcmtkPrepare.cmake b/CMake/dcmtkPrepare.cmake
index e66ac8a..40d28d2 100644
--- a/CMake/dcmtkPrepare.cmake
+++ b/CMake/dcmtkPrepare.cmake
@@ -42,7 +42,7 @@ SET(DCMTK_MINOR_VERSION 6)
 SET(DCMTK_BUILD_VERSION 1)
 # The ABI is not guaranteed to be stable between different snapshots/releases,
 # so this particular version number is increased for each snapshot or release.
-SET(DCMTK_ABI_VERSION 9)
+SET(DCMTK_ABI_VERSION 10)
 
 # Package "release" settings (some are currently unused and, therefore, disabled)
 SET(DCMTK_PACKAGE_NAME "dcmtk")
@@ -212,7 +212,7 @@ IF(COMMAND CMAKE_POLICY)
 ENDIF(COMMAND CMAKE_POLICY)
 
 # pass optional build date to compiler
-ADD_DEFINITIONS(-DDCMTK_BUILD_DATE=\\\"2016-06-30\\\")
+ADD_DEFINITIONS(-DDCMTK_BUILD_DATE=\\\"2016-11-02\\\")
 
 # make OFString(NULL) safe by default
 ADD_DEFINITIONS(-DUSE_NULL_SAFE_OFSTRING)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e79ed77..c1d9272 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,7 +15,7 @@ INCLUDE(CMake/dcmtkPrepare.cmake NO_POLICY_SCOPE)
 
 SET(DCMTK_MODULES ofstd oflog dcmdata dcmimgle
   dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr
-  dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmiod dcmfg dcmseg dcmtract
+  dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmiod dcmfg dcmseg dcmtract dcmpmap
   CACHE STRING "List of modules that should be built.")
 
 #-----------------------------------------------------------------------------
diff --git a/Makefile b/Makefile
index 83aaaf4..19429f9 100644
--- a/Makefile
+++ b/Makefile
@@ -9,39 +9,39 @@ include $(configdir)/Makefile.def
 
 .NOTPARALLEL:
 
-all:  config-all ofstd-all oflog-all dcmdata-all dcmiod-all dcmfg-all dcmseg-all dcmimgle-all dcmimage-all dcmjpeg-all dcmjpls-all dcmtls-all dcmnet-all dcmsr-all dcmsign-all dcmwlm-all dcmqrdb-all dcmpstat-all dcmrt-all dcmtract-all
+all:  config-all ofstd-all oflog-all dcmdata-all dcmiod-all dcmfg-all dcmseg-all dcmimgle-all dcmimage-all dcmjpeg-all dcmjpls-all dcmtls-all dcmnet-all dcmsr-all dcmsign-all dcmwlm-all dcmqrdb-all dcmpstat-all dcmrt-all dcmtract-all dcmpmap-all
 
-libsrc-all:  ofstd-libsrc-all oflog-libsrc-all dcmdata-libsrc-all dcmiod-libsrc-all dcmfg-libsrc-all dcmseg-libsrc-all dcmimgle-libsrc-all dcmimage-libsrc-all dcmjpeg-libsrc-all dcmjpls-libsrc-all dcmtls-libsrc-all dcmnet-libsrc-all dcmsr-libsrc-all dcmsign-libsrc-all dcmwlm-libsrc-all dcmqrdb-libsrc-all dcmpstat-libsrc-all dcmrt-libsrc-all dcmtract-libsrc-all
+libsrc-all:  ofstd-libsrc-all oflog-libsrc-all dcmdata-libsrc-all dcmiod-libsrc-all dcmfg-libsrc-all dcmseg-libsrc-all dcmimgle-libsrc-all dcmimage-libsrc-all dcmjpeg-libsrc-all dcmjpls-libsrc-all dcmtls-libsrc-all dcmnet-libsrc-all dcmsr-libsrc-all dcmsign-libsrc-all dcmwlm-libsrc-all dcmqrdb-libsrc-all dcmpstat-libsrc-all dcmrt-libsrc-all dcmtract-libsrc-all dcmpmap-libsrc-all
 
-tests-all:  config-tests-all ofstd-tests-all oflog-tests-all dcmdata-tests-all dcmiod-tests-all dcmfg-tests-all dcmseg-tests-all dcmimgle-tests-all dcmimage-tests-all dcmjpeg-tests-all dcmjpls-tests-all dcmtls-tests-all dcmnet-tests-all dcmsr-tests-all dcmsign-tests-all dcmwlm-tests-all dcmqrdb-tests-all dcmpstat-tests-all dcmrt-tests-all dcmtract-tests-all
+tests-all:  config-tests-all ofstd-tests-all oflog-tests-all dcmdata-tests-all dcmiod-tests-all dcmfg-tests-all dcmseg-tests-all dcmimgle-tests-all dcmimage-tests-all dcmjpeg-tests-all dcmjpls-tests-all dcmtls-tests-all dcmnet-tests-all dcmsr-tests-all dcmsign-tests-all dcmwlm-tests-all dcmqrdb-tests-all dcmpstat-tests-all dcmrt-tests-all dcmtract-tests-all dcmpmap-tests-all
 
-install:  config-install ofstd-install oflog-install dcmdata-install dcmiod-install dcmfg-install dcmseg-install dcmimgle-install dcmimage-install dcmjpeg-install dcmjpls-install dcmtls-install dcmnet-install dcmsr-install dcmsign-install dcmwlm-install dcmqrdb-install dcmpstat-install dcmrt-install dcmtract-install dcmtk-install-doc install-man
+install:  config-install ofstd-install oflog-install dcmdata-install dcmiod-install dcmfg-install dcmseg-install dcmimgle-install dcmimage-install dcmjpeg-install dcmjpls-install dcmtls-install dcmnet-install dcmsr-install dcmsign-install dcmwlm-install dcmqrdb-install dcmpstat-install dcmrt-install dcmtract-install dcmpmap-install dcmtk-install-doc install-man
 
 install-all: install install-lib install-html
 
-install-bin:  config-install-bin ofstd-install-bin oflog-install-bin dcmdata-install-bin dcmiod-install-bin dcmfg-install-bin dcmseg-install-bin dcmimgle-install-bin dcmimage-install-bin dcmjpeg-install-bin dcmjpls-install-bin dcmtls-install-bin dcmnet-install-bin dcmsr-install-bin dcmsign-install-bin dcmwlm-install-bin dcmqrdb-install-bin dcmpstat-install-bin dcmrt-install-bin dcmtract-install-bin
+install-bin:  config-install-bin ofstd-install-bin oflog-install-bin dcmdata-install-bin dcmiod-install-bin dcmfg-install-bin dcmseg-install-bin dcmimgle-install-bin dcmimage-install-bin dcmjpeg-install-bin dcmjpls-install-bin dcmtls-install-bin dcmnet-install-bin dcmsr-install-bin dcmsign-install-bin dcmwlm-install-bin dcmqrdb-install-bin dcmpstat-install-bin dcmrt-install-bin dcmtract-install-bin dcmpmap-install-bin
 
-install-doc:  config-install-doc ofstd-install-doc oflog-install-doc dcmdata-install-doc dcmiod-install-doc dcmfg-install-doc dcmseg-install-doc dcmimgle-install-doc dcmimage-install-doc dcmjpeg-install-doc dcmjpls-install-doc dcmtls-install-doc dcmnet-install-doc dcmsr-install-doc dcmsign-install-doc dcmwlm-install-doc dcmqrdb-install-doc dcmpstat-install-doc dcmrt-install-doc dcmtract-install-doc
+install-doc:  config-install-doc ofstd-install-doc oflog-install-doc dcmdata-install-doc dcmiod-install-doc dcmfg-install-doc dcmseg-install-doc dcmimgle-install-doc dcmimage-install-doc dcmjpeg-install-doc dcmjpls-install-doc dcmtls-install-doc dcmnet-install-doc dcmsr-install-doc dcmsign-install-doc dcmwlm-install-doc dcmqrdb-install-doc dcmpstat-install-doc dcmrt-install-doc dcmtract-install-doc dcmpmap-install-doc
 
-install-data:  config-install-data ofstd-install-data oflog-install-data dcmdata-install-data dcmiod-install-data dcmfg-install-data dcmseg-install-data dcmimgle-install-data dcmimage-install-data dcmjpeg-install-data dcmjpls-install-data dcmtls-install-data dcmnet-install-data dcmsr-install-data dcmsign-install-data dcmwlm-install-data dcmqrdb-install-data dcmpstat-install-data dcmrt-install-data dcmtract-install-data
+install-data:  config-install-data ofstd-install-data oflog-install-data dcmdata-install-data dcmiod-install-data dcmfg-install-data dcmseg-install-data dcmimgle-install-data dcmimage-install-data dcmjpeg-install-data dcmjpls-install-data dcmtls-install-data dcmnet-install-data dcmsr-install-data dcmsign-install-data dcmwlm-install-data dcmqrdb-install-data dcmpstat-install-data dcmrt-install-data dcmtract-install-data dcmpmap-install-data
 
-install-etc:  config-install-etc ofstd-install-etc oflog-install-etc dcmdata-install-etc dcmiod-install-etc dcmfg-install-etc dcmseg-install-etc dcmimgle-install-etc dcmimage-install-etc dcmjpeg-install-etc dcmjpls-install-etc dcmtls-install-etc dcmnet-install-etc dcmsr-install-etc dcmsign-install-etc dcmwlm-install-etc dcmqrdb-install-etc dcmpstat-install-etc dcmrt-install-etc dcmtract-install-etc
+install-etc:  config-install-etc ofstd-install-etc oflog-install-etc dcmdata-install-etc dcmiod-install-etc dcmfg-install-etc dcmseg-install-etc dcmimgle-install-etc dcmimage-install-etc dcmjpeg-install-etc dcmjpls-install-etc dcmtls-install-etc dcmnet-install-etc dcmsr-install-etc dcmsign-install-etc dcmwlm-install-etc dcmqrdb-install-etc dcmpstat-install-etc dcmrt-install-etc dcmtract-install-etc dcmpmap-install-etc
 
-install-lib:  config-install-lib ofstd-install-lib oflog-install-lib dcmdata-install-lib dcmiod-install-lib dcmfg-install-lib dcmseg-install-lib dcmimgle-install-lib dcmimage-install-lib dcmjpeg-install-lib dcmjpls-install-lib dcmtls-install-lib dcmnet-install-lib dcmsr-install-lib dcmsign-install-lib dcmwlm-install-lib dcmqrdb-install-lib dcmpstat-install-lib dcmrt-install-lib dcmtract-install-lib
+install-lib:  config-install-lib ofstd-install-lib oflog-install-lib dcmdata-install-lib dcmiod-install-lib dcmfg-install-lib dcmseg-install-lib dcmimgle-install-lib dcmimage-install-lib dcmjpeg-install-lib dcmjpls-install-lib dcmtls-install-lib dcmnet-install-lib dcmsr-install-lib dcmsign-install-lib dcmwlm-install-lib dcmqrdb-install-lib dcmpstat-install-lib dcmrt-install-lib dcmtract-install-lib dcmpmap-install-lib
 
-install-include:  config-install-include ofstd-install-include oflog-install-include dcmdata-install-include dcmiod-install-include dcmfg-install-include dcmseg-install-include dcmimgle-install-include dcmimage-install-include dcmjpeg-install-include dcmjpls-install-include dcmtls-install-include dcmnet-install-include dcmsr-install-include dcmsign-install-include dcmwlm-install-include dcmqrdb-install-include dcmpstat-install-include dcmrt-install-include dcmtract-install-include
+install-include:  config-install-include ofstd-install-include oflog-install-include dcmdata-install-include dcmiod-install-include dcmfg-install-include dcmseg-install-include dcmimgle-install-include dcmimage-install-include dcmjpeg-install-include dcmjpls-install-include dcmtls-install-include dcmnet-install-include dcmsr-install-include dcmsign-install-include dcmwlm-install-include dcmqrdb-install-include dcmpstat-install-include dcmrt-install-include dcmtract-install-include dcmpma [...]
 
-install-support:  config-install-support ofstd-install-support oflog-install-support dcmdata-install-support dcmiod-install-support dcmfg-install-support dcmseg-install-support dcmimgle-install-support dcmimage-install-support dcmjpeg-install-support dcmjpls-install-support dcmtls-install-support dcmnet-install-support dcmsr-install-support dcmsign-install-support dcmwlm-install-support dcmqrdb-install-support dcmpstat-install-support dcmrt-install-support dcmtract-install-support
+install-support:  config-install-support ofstd-install-support oflog-install-support dcmdata-install-support dcmiod-install-support dcmfg-install-support dcmseg-install-support dcmimgle-install-support dcmimage-install-support dcmjpeg-install-support dcmjpls-install-support dcmtls-install-support dcmnet-install-support dcmsr-install-support dcmsign-install-support dcmwlm-install-support dcmqrdb-install-support dcmpstat-install-support dcmrt-install-support dcmtract-install-support dcmpma [...]
 
 check: tests-all
 	$(MAKE) -s check-nosilent
 
-check-nosilent:  config-check ofstd-check oflog-check dcmdata-check dcmiod-check dcmfg-check dcmseg-check dcmimgle-check dcmimage-check dcmjpeg-check dcmjpls-check dcmtls-check dcmnet-check dcmsr-check dcmsign-check dcmwlm-check dcmqrdb-check dcmpstat-check dcmrt-check dcmtract-check
+check-nosilent:  config-check ofstd-check oflog-check dcmdata-check dcmiod-check dcmfg-check dcmseg-check dcmimgle-check dcmimage-check dcmjpeg-check dcmjpls-check dcmtls-check dcmnet-check dcmsr-check dcmsign-check dcmwlm-check dcmqrdb-check dcmpstat-check dcmrt-check dcmtract-check dcmpmap-check
 
 check-exhaustive: tests-all
 	$(MAKE) -s check-nosilent-exhaustive
 
-check-nosilent-exhaustive:  config-check-exhaustive ofstd-check-exhaustive oflog-check-exhaustive dcmdata-check-exhaustive dcmiod-check-exhaustive dcmfg-check-exhaustive dcmseg-check-exhaustive dcmimgle-check-exhaustive dcmimage-check-exhaustive dcmjpeg-check-exhaustive dcmjpls-check-exhaustive dcmtls-check-exhaustive dcmnet-check-exhaustive dcmsr-check-exhaustive dcmsign-check-exhaustive dcmwlm-check-exhaustive dcmqrdb-check-exhaustive dcmpstat-check-exhaustive dcmrt-check-exhaustive dc [...]
+check-nosilent-exhaustive:  config-check-exhaustive ofstd-check-exhaustive oflog-check-exhaustive dcmdata-check-exhaustive dcmiod-check-exhaustive dcmfg-check-exhaustive dcmseg-check-exhaustive dcmimgle-check-exhaustive dcmimage-check-exhaustive dcmjpeg-check-exhaustive dcmjpls-check-exhaustive dcmtls-check-exhaustive dcmnet-check-exhaustive dcmsr-check-exhaustive dcmsign-check-exhaustive dcmwlm-check-exhaustive dcmqrdb-check-exhaustive dcmpstat-check-exhaustive dcmrt-check-exhaustive dc [...]
 
 dcmtk-install-doc:
 	$(configdir)/mkinstalldirs $(DESTDIR)$(docdir)
@@ -91,7 +91,7 @@ help:
 	@echo ""
 	@echo "The following modules are available:"
 	@echo ""
-	@echo "ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract"
+	@echo "ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract dcmpmap"
 
 config-all:
 	(cd config && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" all)
@@ -873,6 +873,45 @@ dcmtract-check:
 dcmtract-check-exhaustive:
 	(cd dcmtract && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" check-exhaustive)
 
+dcmpmap-all:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" all)
+
+dcmpmap-libsrc-all:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" libsrc-all)
+
+dcmpmap-tests-all:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" tests-all)
+
+dcmpmap-install:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install)
+
+dcmpmap-install-bin:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-bin)
+
+dcmpmap-install-doc:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-doc)
+
+dcmpmap-install-data:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-data)
+
+dcmpmap-install-etc:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-etc)
+
+dcmpmap-install-lib:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-lib)
+
+dcmpmap-install-include:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-include)
+
+dcmpmap-install-support:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" install-support)
+
+dcmpmap-check:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" check)
+
+dcmpmap-check-exhaustive:
+	(cd dcmpmap && $(MAKE) ARCH="$(ARCH)" DESTDIR="$(DESTDIR)" check-exhaustive)
+
 dependencies:
 	-(cd config && $(MAKE) dependencies)
 	(cd ofstd && $(MAKE) dependencies)
@@ -894,6 +933,7 @@ dependencies:
 	(cd dcmpstat && $(MAKE) dependencies)
 	(cd dcmrt && $(MAKE) dependencies)
 	(cd dcmtract && $(MAKE) dependencies)
+	(cd dcmpmap && $(MAKE) dependencies)
 
 clean:
 	(cd ofstd && $(MAKE) clean)
@@ -915,6 +955,7 @@ clean:
 	(cd dcmpstat && $(MAKE) clean)
 	(cd dcmrt && $(MAKE) clean)
 	(cd dcmtract && $(MAKE) clean)
+	(cd dcmpmap && $(MAKE) clean)
 	(cd doxygen && $(MAKE) clean)
 	-(cd config && $(MAKE) clean)
 	rm -f $(TRASH)
@@ -939,6 +980,7 @@ distclean:
 	(cd dcmpstat && $(MAKE) distclean)
 	(cd dcmrt && $(MAKE) distclean)
 	(cd dcmtract && $(MAKE) distclean)
+	(cd dcmpmap && $(MAKE) distclean)
 	(cd doxygen && $(MAKE) distclean)
 	-(cd config && $(MAKE) distclean)
 	rm -f $(TRASH)
diff --git a/README b/README
index d8317ef..452a5de 100644
--- a/README
+++ b/README
@@ -16,13 +16,15 @@ DCMTK contains the following sub-packages, each in its own sub-directory:
     dcmjpeg  - a compression/decompression library and utility apps
     dcmjpls  - a compression/decompression library and utility apps
     dcmnet   - a networking library and utility apps
+    dcmpmap  - a library for working with parametric map objects
     dcmpstat - a presentation state library and utility apps
     dcmqrdb  - an image database server
     dcmrt    - a radiation therapy library and utility apps
     dcmseg   - a library for working with segmentation objects
     dcmsign  - a digital signature library and utility apps
-    dcmsr    - a structured report library and utility apps
+    dcmsr    - a structured reporting library and utility apps
     dcmtls   - security extensions for the network library
+    dcmtract - a library for working with tractography results
     dcmwlm   - a modality worklist database server
     oflog    - a logging library based on log4cplus
     ofstd    - a library of general purpose classes
diff --git a/VERSION b/VERSION
index b0cf8e9..fccf833 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-3.6.1_20160630
+3.6.1_20161102
diff --git a/config/Makefile.def.in b/config/Makefile.def.in
index cbec746..f35932c 100644
--- a/config/Makefile.def.in
+++ b/config/Makefile.def.in
@@ -52,10 +52,10 @@ DEBUG = @DEBUG@
 #
 
 # We want the old behavior of OFString(NULL) for now, no crashes.
-GLOBALDEFS = @DEFS@ -DDCMTK_BUILD_DATE=\"2016-06-30\" -DUSE_NULL_SAFE_OFSTRING -DDCMTK_BUILD_IN_PROGRESS
+GLOBALDEFS = @DEFS@ -DDCMTK_BUILD_DATE=\"2016-11-02\" -DUSE_NULL_SAFE_OFSTRING -DDCMTK_BUILD_IN_PROGRESS
 
 #
-# ARCH defines special machine archtecture compiler settings
+# ARCH defines special machine architecture compiler settings
 # (e.g. -arch i386 on NeXT)
 #
 
diff --git a/config/modules b/config/modules
index 698a4b1..1676820 100644
--- a/config/modules
+++ b/config/modules
@@ -1 +1 @@
-ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract
+ofstd oflog dcmdata dcmiod dcmfg dcmseg dcmimgle dcmimage dcmjpeg dcmjpls dcmtls dcmnet dcmsr dcmsign dcmwlm dcmqrdb dcmpstat dcmrt dcmtract dcmpmap
diff --git a/dcmdata/apps/xml2dcm.cc b/dcmdata/apps/xml2dcm.cc
index 4b16159..e6cd321 100644
--- a/dcmdata/apps/xml2dcm.cc
+++ b/dcmdata/apps/xml2dcm.cc
@@ -787,9 +787,15 @@ int main(int argc, char *argv[])
 
         cmd.beginOptionBlock();
         if (cmd.findOption("--dont-overwrite-uids"))
+        {
+            app.checkDependence("--dont-overwrite-uids", "--generate-new-uids", opt_generateUIDs);
             opt_overwriteUIDs = OFFalse;
+        }
         if (cmd.findOption("--overwrite-uids"))
+        {
+            app.checkDependence("--overwrite-uids", "--generate-new-uids", opt_generateUIDs);
             opt_overwriteUIDs = OFTrue;
+        }
         cmd.endOptionBlock();
 
         /* output options */
diff --git a/dcmdata/data/dicom.dic b/dcmdata/data/dicom.dic
index e0f8c86..362bf6c 100644
--- a/dcmdata/data/dicom.dic
+++ b/dcmdata/data/dicom.dic
@@ -21,8 +21,8 @@
 # DICONDE (Digital Imaging and Communication in Nondestructive Evaluation) and
 # DICOS (Digital Imaging and Communications in Security) standard.
 #
-# Generated automatically from DICOM PS 3.6-2016c and PS 3.7-2016c
-# File created on 2016-06-13 09:52:04 by J. Riesmeier on thinkpad.
+# Generated automatically from DICOM PS 3.6-2016d and PS 3.7-2016d
+# File created on 2016-10-04 11:49:44 by J. Riesmeier on thinkpad.
 #
 # In addition, the data dictionary entries from the following final text
 # supplements and correction items (CP) have been incorporated:
@@ -168,6 +168,9 @@
 (0008,0123)	SQ	ContextGroupIdentificationSequence	1	DICOM
 (0008,0124)	SQ	MappingResourceIdentificationSequence	1	DICOM
 (0008,0201)	SH	TimezoneOffsetFromUTC	1	DICOM
+(0008,0220)	SQ	ResponsibleGroupCodeSequence	1	DICOM
+(0008,0221)	CS	EquipmentModality	1	DICOM
+(0008,0222)	LO	ManufacturerRelatedModelGroup	1	DICOM
 (0008,0300)	SQ	PrivateDataElementCharacteristicsSequence	1	DICOM
 (0008,0301)	US	PrivateGroupReference	1	DICOM
 (0008,0302)	LO	PrivateCreatorReference	1	DICOM
@@ -176,6 +179,15 @@
 (0008,0305)	SQ	DeidentificationActionSequence	1	DICOM
 (0008,0306)	US	IdentifyingPrivateElements	1-n	DICOM
 (0008,0307)	CS	DeidentificationAction	1	DICOM
+(0008,0308)	US	PrivateDataElement	1	DICOM
+(0008,0309)	UL	PrivateDataElementValueMultiplicity	1-3	DICOM
+(0008,030A)	CS	PrivateDataElementValueRepresentation	1	DICOM
+(0008,030B)	UL	PrivateDataElementNumberOfItems	1-2	DICOM
+(0008,030C)	UC	PrivateDataElementName	1	DICOM
+(0008,030D)	UC	PrivateDataElementKeyword	1	DICOM
+(0008,030E)	UT	PrivateDataElementDescription	1	DICOM
+(0008,030F)	UT	PrivateDataElementEncoding	1	DICOM
+(0008,0310)	SQ	PrivateDataElementDefinitionSequence	1	DICOM
 (0008,1010)	SH	StationName	1	DICOM
 (0008,1030)	LO	StudyDescription	1	DICOM
 (0008,1032)	SQ	ProcedureCodeSequence	1	DICOM
@@ -298,6 +310,9 @@
 (0010,1010)	AS	PatientAge	1	DICOM
 (0010,1020)	DS	PatientSize	1	DICOM
 (0010,1021)	SQ	PatientSizeCodeSequence	1	DICOM
+(0010,1022)	DS	PatientBodyMassIndex	1	DICOM
+(0010,1023)	DS	MeasuredAPDimension	1	DICOM
+(0010,1024)	DS	MeasuredLateralDimension	1	DICOM
 (0010,1030)	DS	PatientWeight	1	DICOM
 (0010,1040)	LO	PatientAddress	1	DICOM
 (0010,1060)	PN	PatientMotherBirthName	1	DICOM
@@ -352,6 +367,8 @@
 (0012,0083)	SQ	ConsentForClinicalTrialUseSequence	1	DICOM
 (0012,0084)	CS	DistributionType	1	DICOM
 (0012,0085)	CS	ConsentForDistributionFlag	1	DICOM
+(0012,0086)	DA	EthicsCommitteeApprovalEffectivenessStartDate	1	DICOM
+(0012,0087)	DA	EthicsCommitteeApprovalEffectivenessEndDate	1	DICOM
 (0014,0025)	ST	ComponentManufacturingProcedure	1	DICOM/DICONDE
 (0014,0028)	ST	ComponentManufacturer	1	DICOM/DICONDE
 (0014,0030)	DS	MaterialThickness	1-n	DICOM/DICONDE
@@ -596,6 +613,8 @@
 (0018,1006)	LO	GridID	1	DICOM
 (0018,1007)	LO	CassetteID	1	DICOM
 (0018,1008)	LO	GantryID	1	DICOM
+(0018,1009)	UT	UniqueDeviceIdentifier	1	DICOM
+(0018,100A)	SQ	UDISequence	1	DICOM
 (0018,1010)	LO	SecondaryCaptureDeviceID	1	DICOM
 (0018,1012)	DA	DateOfSecondaryCapture	1	DICOM
 (0018,1014)	TM	TimeOfSecondaryCapture	1	DICOM
@@ -1066,7 +1085,7 @@
 (0018,9320)	SH	ImageFilter	1	DICOM
 (0018,9321)	SQ	CTExposureSequence	1	DICOM
 (0018,9322)	FD	ReconstructionPixelSpacing	2	DICOM
-(0018,9323)	CS	ExposureModulationType	1	DICOM
+(0018,9323)	CS	ExposureModulationType	1-n	DICOM
 (0018,9324)	FD	EstimatedDoseSaving	1	DICOM
 (0018,9325)	SQ	CTXRayDetailsSequence	1	DICOM
 (0018,9326)	SQ	CTPositionSequence	1	DICOM
@@ -1252,6 +1271,65 @@
 (0018,980E)	SQ	TransducerBeamSteeringCodeSequence	1	DICOM
 (0018,980F)	SQ	TransducerApplicationCodeSequence	1	DICOM
 (0018,9810)	xs	ZeroVelocityPixelValue	1	DICOM
+(0018,9900)	LO	ReferenceLocationLabel	1	DICOM
+(0018,9901)	UT	ReferenceLocationDescription	1	DICOM
+(0018,9902)	SQ	ReferenceBasisCodeSequence	1	DICOM
+(0018,9903)	SQ	ReferenceGeometryCodeSequence	1	DICOM
+(0018,9904)	DS	OffsetDistance	1	DICOM
+(0018,9905)	CS	OffsetDirection	1	DICOM
+(0018,9906)	SQ	PotentialScheduledProtocolCodeSequence	1	DICOM
+(0018,9907)	SQ	PotentialRequestedProcedureCodeSequence	1	DICOM
+(0018,9908)	UC	PotentialReasonsForProcedure	1-n	DICOM
+(0018,9909)	SQ	PotentialReasonsForProcedureCodeSequence	1	DICOM
+(0018,990A)	UC	PotentialDiagnosticTasks	1-n	DICOM
+(0018,990B)	SQ	ContraindicationsCodeSequence	1	DICOM
+(0018,990C)	SQ	ReferencedDefinedProtocolSequence	1	DICOM
+(0018,990D)	SQ	ReferencedPerformedProtocolSequence	1	DICOM
+(0018,990E)	SQ	PredecessorProtocolSequence	1	DICOM
+(0018,990F)	UT	ProtocolPlanningInformation	1	DICOM
+(0018,9910)	UT	ProtocolDesignRationale	1	DICOM
+(0018,9911)	SQ	PatientSpecificationSequence	1	DICOM
+(0018,9912)	SQ	ModelSpecificationSequence	1	DICOM
+(0018,9913)	SQ	ParametersSpecificationSequence	1	DICOM
+(0018,9914)	SQ	InstructionSequence	1	DICOM
+(0018,9915)	US	InstructionIndex	1	DICOM
+(0018,9916)	LO	InstructionText	1	DICOM
+(0018,9917)	UT	InstructionDescription	1	DICOM
+(0018,9918)	CS	InstructionPerformedFlag	1	DICOM
+(0018,9919)	DT	InstructionPerformedDateTime	1	DICOM
+(0018,991A)	UT	InstructionPerformanceComment	1	DICOM
+(0018,991B)	SQ	PatientPositioningInstructionSequence	1	DICOM
+(0018,991C)	SQ	PositioningMethodCodeSequence	1	DICOM
+(0018,991D)	SQ	PositioningLandmarkSequence	1	DICOM
+(0018,991E)	UI	TargetFrameOfReferenceUID	1	DICOM
+(0018,991F)	SQ	AcquisitionProtocolElementSpecificationSequence	1	DICOM
+(0018,9920)	SQ	AcquisitionProtocolElementSequence	1	DICOM
+(0018,9921)	US	ProtocolElementNumber	1	DICOM
+(0018,9922)	LO	ProtocolElementName	1	DICOM
+(0018,9923)	UT	ProtocolElementCharacteristicsSummary	1	DICOM
+(0018,9924)	UT	ProtocolElementPurpose	1	DICOM
+(0018,9930)	CS	AcquisitionMotion	1	DICOM
+(0018,9931)	SQ	AcquisitionStartLocationSequence	1	DICOM
+(0018,9932)	SQ	AcquisitionEndLocationSequence	1	DICOM
+(0018,9933)	SQ	ReconstructionProtocolElementSpecificationSequence	1	DICOM
+(0018,9934)	SQ	ReconstructionProtocolElementSequence	1	DICOM
+(0018,9935)	SQ	StorageProtocolElementSpecificationSequence	1	DICOM
+(0018,9936)	SQ	StorageProtocolElementSequence	1	DICOM
+(0018,9937)	LO	RequestedSeriesDescription	1	DICOM
+(0018,9938)	US	SourceAcquisitionProtocolElementNumber	1-n	DICOM
+(0018,9939)	US	SourceAcquisitionBeamNumber	1-n	DICOM
+(0018,993A)	US	SourceReconstructionProtocolElementNumber	1-n	DICOM
+(0018,993B)	SQ	ReconstructionStartLocationSequence	1	DICOM
+(0018,993C)	SQ	ReconstructionEndLocationSequence	1	DICOM
+(0018,993D)	SQ	ReconstructionAlgorithmSequence	1	DICOM
+(0018,993E)	SQ	ReconstructionTargetCenterLocationSequence	1	DICOM
+(0018,9941)	UT	ImageFilterDescription	1	DICOM
+(0018,9942)	FD	CTDIvolNotificationTrigger	1	DICOM
+(0018,9943)	FD	DLPNotificationTrigger	1	DICOM
+(0018,9944)	CS	AutoKVPSelectionType	1	DICOM
+(0018,9945)	FD	AutoKVPUpperBound	1	DICOM
+(0018,9946)	FD	AutoKVPLowerBound	1	DICOM
+(0018,9947)	CS	ProtocolDefinedPatientPosition	1	DICOM
 (0018,A001)	SQ	ContributingEquipmentSequence	1	DICOM
 (0018,A002)	DT	ContributionDateTime	1	DICOM
 (0018,A003)	ST	ContributionDescription	1	DICOM
@@ -1274,6 +1352,7 @@
 (0020,0200)	UI	SynchronizationFrameOfReferenceUID	1	DICOM
 (0020,0242)	UI	SOPInstanceUIDOfConcatenationSource	1	DICOM
 (0020,1002)	IS	ImagesInAcquisition	1	DICOM
+(0020,103F)	LO	TargetPositionReferenceIndicator	1	DICOM
 (0020,1040)	LO	PositionReferenceIndicator	1	DICOM
 (0020,1041)	DS	SliceLocation	1	DICOM
 (0020,1200)	IS	NumberOfPatientRelatedStudies	1	DICOM
@@ -2573,6 +2652,7 @@
 (0070,031A)	UI	FiducialUID	1	DICOM
 (0070,031C)	SQ	FiducialSetSequence	1	DICOM
 (0070,031E)	SQ	FiducialSequence	1	DICOM
+(0070,031F)	SQ	FiducialsPropertyCategoryCodeSequence	1	DICOM
 (0070,0401)	US	GraphicLayerRecommendedDisplayCIELabValue	3	DICOM
 (0070,0402)	SQ	BlendingSequence	1	DICOM
 (0070,0403)	FL	RelativeOpacity	1	DICOM
@@ -2890,6 +2970,7 @@
 (0082,0035)	SQ	RecommendedDefaultValueSequence	1	DICOM
 (0082,0036)	CS	ConstraintViolationSignificance	1	DICOM
 (0082,0037)	UT	ConstraintViolationCondition	1	DICOM
+(0082,0038)	CS	ModifiableConstraintFlag	1	DICOM
 (0088,0130)	SH	StorageMediaFileSetID	1	DICOM
 (0088,0140)	UI	StorageMediaFileSetUID	1	DICOM
 (0088,0200)	SQ	IconImageSequence	1	DICOM
@@ -3096,7 +3177,6 @@
 (3006,00B6)	SQ	ROIElementalCompositionSequence	1	DICOM
 (3006,00B7)	US	ROIElementalCompositionAtomicNumber	1	DICOM
 (3006,00B8)	FL	ROIElementalCompositionAtomicMassFraction	1	DICOM
-(3006,00B9)	SQ	AdditionalRTROIIdentificationCodeSequence	1	DICOM
 (3006,00C6)	DS	FrameOfReferenceTransformationMatrix	16	DICOM
 (3006,00C8)	LO	FrameOfReferenceTransformationComment	1	DICOM
 (3008,0010)	SQ	MeasuredDoseReferenceSequence	1	DICOM
@@ -4111,6 +4191,7 @@
 (2130,0080)	SQ	RETIRED_PresentationLUTContentSequence	1	DICOM/retired
 (2130,00A0)	SQ	RETIRED_ProposedStudySequence	1	DICOM/retired
 (2130,00C0)	SQ	RETIRED_OriginalImageSequence	1	DICOM/retired
+(3006,00B9)	SQ	RETIRED_AdditionalRTROIIdentificationCodeSequence	1	DICOM/retired
 (3006,00C0)	SQ	RETIRED_FrameOfReferenceRelationshipSequence	1	DICOM/retired
 (3006,00C2)	UI	RETIRED_RelatedFrameOfReferenceUID	1	DICOM/retired
 (3006,00C4)	CS	RETIRED_FrameOfReferenceTransformationType	1	DICOM/retired
diff --git a/dcmdata/include/dcmtk/dcmdata/dcdeftag.h b/dcmdata/include/dcmtk/dcmdata/dcdeftag.h
index 87606fc..a1c7807 100644
--- a/dcmdata/include/dcmtk/dcmdata/dcdeftag.h
+++ b/dcmdata/include/dcmtk/dcmdata/dcdeftag.h
@@ -4,7 +4,7 @@
 **
 **   User: joergr
 **   Host: thinkpad
-**   Date: 2016-06-13 09:57:12
+**   Date: 2016-10-04 12:15:57
 **   Prog: /home/joergr/Source/dcmtk-full/public/dcmdata/libsrc/mkdeftag
 **
 **   From: ../data/dicom.dic
@@ -17,12 +17,12 @@
 
 #include "dcmtk/dcmdata/dctagkey.h"
 
-#define DCM_DICT_DEFTAG_BUILD_DATE "2016-06-13 09:57:12"
+#define DCM_DICT_DEFTAG_BUILD_DATE "2016-10-04 12:15:57"
 
 
 /*
 ** Fixed Tags in ascending (gggg,eeee) order.
-** Number of entries: 4085
+** Number of entries: 4166
 ** Tags with a repeating component (repeating tags) are listed later.
 */
 #define DCM_CommandGroupLength                   DcmTagKey(0x0000, 0x0000)
@@ -181,6 +181,9 @@
 #define DCM_ContextGroupIdentificationSequence   DcmTagKey(0x0008, 0x0123)
 #define DCM_MappingResourceIdentificationSequence DcmTagKey(0x0008, 0x0124)
 #define DCM_TimezoneOffsetFromUTC                DcmTagKey(0x0008, 0x0201)
+#define DCM_ResponsibleGroupCodeSequence         DcmTagKey(0x0008, 0x0220)
+#define DCM_EquipmentModality                    DcmTagKey(0x0008, 0x0221)
+#define DCM_ManufacturerRelatedModelGroup        DcmTagKey(0x0008, 0x0222)
 #define DCM_PrivateDataElementCharacteristicsSequence DcmTagKey(0x0008, 0x0300)
 #define DCM_PrivateGroupReference                DcmTagKey(0x0008, 0x0301)
 #define DCM_PrivateCreatorReference              DcmTagKey(0x0008, 0x0302)
@@ -189,6 +192,15 @@
 #define DCM_DeidentificationActionSequence       DcmTagKey(0x0008, 0x0305)
 #define DCM_IdentifyingPrivateElements           DcmTagKey(0x0008, 0x0306)
 #define DCM_DeidentificationAction               DcmTagKey(0x0008, 0x0307)
+#define DCM_PrivateDataElement                   DcmTagKey(0x0008, 0x0308)
+#define DCM_PrivateDataElementValueMultiplicity  DcmTagKey(0x0008, 0x0309)
+#define DCM_PrivateDataElementValueRepresentation DcmTagKey(0x0008, 0x030a)
+#define DCM_PrivateDataElementNumberOfItems      DcmTagKey(0x0008, 0x030b)
+#define DCM_PrivateDataElementName               DcmTagKey(0x0008, 0x030c)
+#define DCM_PrivateDataElementKeyword            DcmTagKey(0x0008, 0x030d)
+#define DCM_PrivateDataElementDescription        DcmTagKey(0x0008, 0x030e)
+#define DCM_PrivateDataElementEncoding           DcmTagKey(0x0008, 0x030f)
+#define DCM_PrivateDataElementDefinitionSequence DcmTagKey(0x0008, 0x0310)
 #define DCM_RETIRED_NetworkID                    DcmTagKey(0x0008, 0x1000)
 #define DCM_StationName                          DcmTagKey(0x0008, 0x1010)
 #define DCM_StudyDescription                     DcmTagKey(0x0008, 0x1030)
@@ -333,6 +345,9 @@
 #define DCM_PatientAge                           DcmTagKey(0x0010, 0x1010)
 #define DCM_PatientSize                          DcmTagKey(0x0010, 0x1020)
 #define DCM_PatientSizeCodeSequence              DcmTagKey(0x0010, 0x1021)
+#define DCM_PatientBodyMassIndex                 DcmTagKey(0x0010, 0x1022)
+#define DCM_MeasuredAPDimension                  DcmTagKey(0x0010, 0x1023)
+#define DCM_MeasuredLateralDimension             DcmTagKey(0x0010, 0x1024)
 #define DCM_PatientWeight                        DcmTagKey(0x0010, 0x1030)
 #define DCM_PatientAddress                       DcmTagKey(0x0010, 0x1040)
 #define DCM_RETIRED_InsurancePlanIdentification  DcmTagKey(0x0010, 0x1050)
@@ -388,6 +403,8 @@
 #define DCM_ConsentForClinicalTrialUseSequence   DcmTagKey(0x0012, 0x0083)
 #define DCM_DistributionType                     DcmTagKey(0x0012, 0x0084)
 #define DCM_ConsentForDistributionFlag           DcmTagKey(0x0012, 0x0085)
+#define DCM_EthicsCommitteeApprovalEffectivenessStartDate DcmTagKey(0x0012, 0x0086)
+#define DCM_EthicsCommitteeApprovalEffectivenessEndDate DcmTagKey(0x0012, 0x0087)
 #define DCM_RETIRED_CADFileFormat                DcmTagKey(0x0014, 0x0023)
 #define DCM_RETIRED_ComponentReferenceSystem     DcmTagKey(0x0014, 0x0024)
 #define DCM_ComponentManufacturingProcedure      DcmTagKey(0x0014, 0x0025)
@@ -640,6 +657,8 @@
 #define DCM_GridID                               DcmTagKey(0x0018, 0x1006)
 #define DCM_CassetteID                           DcmTagKey(0x0018, 0x1007)
 #define DCM_GantryID                             DcmTagKey(0x0018, 0x1008)
+#define DCM_UniqueDeviceIdentifier               DcmTagKey(0x0018, 0x1009)
+#define DCM_UDISequence                          DcmTagKey(0x0018, 0x100a)
 #define DCM_SecondaryCaptureDeviceID             DcmTagKey(0x0018, 0x1010)
 #define DCM_RETIRED_HardcopyCreationDeviceID     DcmTagKey(0x0018, 0x1011)
 #define DCM_DateOfSecondaryCapture               DcmTagKey(0x0018, 0x1012)
@@ -1319,6 +1338,65 @@
 #define DCM_TransducerBeamSteeringCodeSequence   DcmTagKey(0x0018, 0x980e)
 #define DCM_TransducerApplicationCodeSequence    DcmTagKey(0x0018, 0x980f)
 #define DCM_ZeroVelocityPixelValue               DcmTagKey(0x0018, 0x9810)
+#define DCM_ReferenceLocationLabel               DcmTagKey(0x0018, 0x9900)
+#define DCM_ReferenceLocationDescription         DcmTagKey(0x0018, 0x9901)
+#define DCM_ReferenceBasisCodeSequence           DcmTagKey(0x0018, 0x9902)
+#define DCM_ReferenceGeometryCodeSequence        DcmTagKey(0x0018, 0x9903)
+#define DCM_OffsetDistance                       DcmTagKey(0x0018, 0x9904)
+#define DCM_OffsetDirection                      DcmTagKey(0x0018, 0x9905)
+#define DCM_PotentialScheduledProtocolCodeSequence DcmTagKey(0x0018, 0x9906)
+#define DCM_PotentialRequestedProcedureCodeSequence DcmTagKey(0x0018, 0x9907)
+#define DCM_PotentialReasonsForProcedure         DcmTagKey(0x0018, 0x9908)
+#define DCM_PotentialReasonsForProcedureCodeSequence DcmTagKey(0x0018, 0x9909)
+#define DCM_PotentialDiagnosticTasks             DcmTagKey(0x0018, 0x990a)
+#define DCM_ContraindicationsCodeSequence        DcmTagKey(0x0018, 0x990b)
+#define DCM_ReferencedDefinedProtocolSequence    DcmTagKey(0x0018, 0x990c)
+#define DCM_ReferencedPerformedProtocolSequence  DcmTagKey(0x0018, 0x990d)
+#define DCM_PredecessorProtocolSequence          DcmTagKey(0x0018, 0x990e)
+#define DCM_ProtocolPlanningInformation          DcmTagKey(0x0018, 0x990f)
+#define DCM_ProtocolDesignRationale              DcmTagKey(0x0018, 0x9910)
+#define DCM_PatientSpecificationSequence         DcmTagKey(0x0018, 0x9911)
+#define DCM_ModelSpecificationSequence           DcmTagKey(0x0018, 0x9912)
+#define DCM_ParametersSpecificationSequence      DcmTagKey(0x0018, 0x9913)
+#define DCM_InstructionSequence                  DcmTagKey(0x0018, 0x9914)
+#define DCM_InstructionIndex                     DcmTagKey(0x0018, 0x9915)
+#define DCM_InstructionText                      DcmTagKey(0x0018, 0x9916)
+#define DCM_InstructionDescription               DcmTagKey(0x0018, 0x9917)
+#define DCM_InstructionPerformedFlag             DcmTagKey(0x0018, 0x9918)
+#define DCM_InstructionPerformedDateTime         DcmTagKey(0x0018, 0x9919)
+#define DCM_InstructionPerformanceComment        DcmTagKey(0x0018, 0x991a)
+#define DCM_PatientPositioningInstructionSequence DcmTagKey(0x0018, 0x991b)
+#define DCM_PositioningMethodCodeSequence        DcmTagKey(0x0018, 0x991c)
+#define DCM_PositioningLandmarkSequence          DcmTagKey(0x0018, 0x991d)
+#define DCM_TargetFrameOfReferenceUID            DcmTagKey(0x0018, 0x991e)
+#define DCM_AcquisitionProtocolElementSpecificationSequence DcmTagKey(0x0018, 0x991f)
+#define DCM_AcquisitionProtocolElementSequence   DcmTagKey(0x0018, 0x9920)
+#define DCM_ProtocolElementNumber                DcmTagKey(0x0018, 0x9921)
+#define DCM_ProtocolElementName                  DcmTagKey(0x0018, 0x9922)
+#define DCM_ProtocolElementCharacteristicsSummary DcmTagKey(0x0018, 0x9923)
+#define DCM_ProtocolElementPurpose               DcmTagKey(0x0018, 0x9924)
+#define DCM_AcquisitionMotion                    DcmTagKey(0x0018, 0x9930)
+#define DCM_AcquisitionStartLocationSequence     DcmTagKey(0x0018, 0x9931)
+#define DCM_AcquisitionEndLocationSequence       DcmTagKey(0x0018, 0x9932)
+#define DCM_ReconstructionProtocolElementSpecificationSequence DcmTagKey(0x0018, 0x9933)
+#define DCM_ReconstructionProtocolElementSequence DcmTagKey(0x0018, 0x9934)
+#define DCM_StorageProtocolElementSpecificationSequence DcmTagKey(0x0018, 0x9935)
+#define DCM_StorageProtocolElementSequence       DcmTagKey(0x0018, 0x9936)
+#define DCM_RequestedSeriesDescription           DcmTagKey(0x0018, 0x9937)
+#define DCM_SourceAcquisitionProtocolElementNumber DcmTagKey(0x0018, 0x9938)
+#define DCM_SourceAcquisitionBeamNumber          DcmTagKey(0x0018, 0x9939)
+#define DCM_SourceReconstructionProtocolElementNumber DcmTagKey(0x0018, 0x993a)
+#define DCM_ReconstructionStartLocationSequence  DcmTagKey(0x0018, 0x993b)
+#define DCM_ReconstructionEndLocationSequence    DcmTagKey(0x0018, 0x993c)
+#define DCM_ReconstructionAlgorithmSequence      DcmTagKey(0x0018, 0x993d)
+#define DCM_ReconstructionTargetCenterLocationSequence DcmTagKey(0x0018, 0x993e)
+#define DCM_ImageFilterDescription               DcmTagKey(0x0018, 0x9941)
+#define DCM_CTDIvolNotificationTrigger           DcmTagKey(0x0018, 0x9942)
+#define DCM_DLPNotificationTrigger               DcmTagKey(0x0018, 0x9943)
+#define DCM_AutoKVPSelectionType                 DcmTagKey(0x0018, 0x9944)
+#define DCM_AutoKVPUpperBound                    DcmTagKey(0x0018, 0x9945)
+#define DCM_AutoKVPLowerBound                    DcmTagKey(0x0018, 0x9946)
+#define DCM_ProtocolDefinedPatientPosition       DcmTagKey(0x0018, 0x9947)
 #define DCM_ContributingEquipmentSequence        DcmTagKey(0x0018, 0xa001)
 #define DCM_ContributionDateTime                 DcmTagKey(0x0018, 0xa002)
 #define DCM_ContributionDescription              DcmTagKey(0x0018, 0xa003)
@@ -1361,6 +1439,7 @@
 #define DCM_RETIRED_AcquisitionsInStudy          DcmTagKey(0x0020, 0x1004)
 #define DCM_RETIRED_ImagesInStudy                DcmTagKey(0x0020, 0x1005)
 #define DCM_RETIRED_Reference                    DcmTagKey(0x0020, 0x1020)
+#define DCM_TargetPositionReferenceIndicator     DcmTagKey(0x0020, 0x103f)
 #define DCM_PositionReferenceIndicator           DcmTagKey(0x0020, 0x1040)
 #define DCM_SliceLocation                        DcmTagKey(0x0020, 0x1041)
 #define DCM_RETIRED_OtherStudyNumbers            DcmTagKey(0x0020, 0x1070)
@@ -2866,6 +2945,7 @@
 #define DCM_FiducialUID                          DcmTagKey(0x0070, 0x031a)
 #define DCM_FiducialSetSequence                  DcmTagKey(0x0070, 0x031c)
 #define DCM_FiducialSequence                     DcmTagKey(0x0070, 0x031e)
+#define DCM_FiducialsPropertyCategoryCodeSequence DcmTagKey(0x0070, 0x031f)
 #define DCM_GraphicLayerRecommendedDisplayCIELabValue DcmTagKey(0x0070, 0x0401)
 #define DCM_BlendingSequence                     DcmTagKey(0x0070, 0x0402)
 #define DCM_RelativeOpacity                      DcmTagKey(0x0070, 0x0403)
@@ -3188,6 +3268,7 @@
 #define DCM_RecommendedDefaultValueSequence      DcmTagKey(0x0082, 0x0035)
 #define DCM_ConstraintViolationSignificance      DcmTagKey(0x0082, 0x0036)
 #define DCM_ConstraintViolationCondition         DcmTagKey(0x0082, 0x0037)
+#define DCM_ModifiableConstraintFlag             DcmTagKey(0x0082, 0x0038)
 #define DCM_StorageMediaFileSetID                DcmTagKey(0x0088, 0x0130)
 #define DCM_StorageMediaFileSetUID               DcmTagKey(0x0088, 0x0140)
 #define DCM_IconImageSequence                    DcmTagKey(0x0088, 0x0200)
@@ -3441,7 +3522,7 @@
 #define DCM_ROIElementalCompositionSequence      DcmTagKey(0x3006, 0x00b6)
 #define DCM_ROIElementalCompositionAtomicNumber  DcmTagKey(0x3006, 0x00b7)
 #define DCM_ROIElementalCompositionAtomicMassFraction DcmTagKey(0x3006, 0x00b8)
-#define DCM_AdditionalRTROIIdentificationCodeSequence DcmTagKey(0x3006, 0x00b9)
+#define DCM_RETIRED_AdditionalRTROIIdentificationCodeSequence DcmTagKey(0x3006, 0x00b9)
 #define DCM_RETIRED_FrameOfReferenceRelationshipSequence DcmTagKey(0x3006, 0x00c0)
 #define DCM_RETIRED_RelatedFrameOfReferenceUID   DcmTagKey(0x3006, 0x00c2)
 #define DCM_RETIRED_FrameOfReferenceTransformationType DcmTagKey(0x3006, 0x00c4)
diff --git a/dcmdata/include/dcmtk/dcmdata/dcerror.h b/dcmdata/include/dcmtk/dcmdata/dcerror.h
index 5aa0262..328c15f 100644
--- a/dcmdata/include/dcmtk/dcmdata/dcerror.h
+++ b/dcmdata/include/dcmtk/dcmdata/dcerror.h
@@ -70,7 +70,7 @@ const unsigned short OFM_dcmiod   = 29;
 const unsigned short OFM_dcmseg   = 30;
 const unsigned short OFM_dcmfg    = 31;
 const unsigned short OFM_dcmtract = 32;
-
+const unsigned short OFM_dcmpmap  = 33;
 
 // condition constants
 
diff --git a/dcmdata/include/dcmtk/dcmdata/dcuid.h b/dcmdata/include/dcmtk/dcmdata/dcuid.h
index c8b8e00..83590da 100644
--- a/dcmdata/include/dcmtk/dcmdata/dcuid.h
+++ b/dcmdata/include/dcmtk/dcmdata/dcuid.h
@@ -487,6 +487,8 @@ DCMTK_DCMDATA_EXPORT unsigned long dcmGuessModalityBytes(const char *sopClassUID
 #define UID_RETIRED_StandalonePETCurveStorage                      "1.2.840.10008.5.1.4.1.1.129"
 #define UID_EnhancedPETImageStorage                                "1.2.840.10008.5.1.4.1.1.130"
 #define UID_BasicStructuredDisplayStorage                          "1.2.840.10008.5.1.4.1.1.131"
+#define UID_CTDefinedProcedureProtocolStorage                      "1.2.840.10008.5.1.4.1.1.200.1"
+#define UID_CTPerformedProcedureProtocolStorage                    "1.2.840.10008.5.1.4.1.1.200.2"
 #define UID_RTImageStorage                                         "1.2.840.10008.5.1.4.1.1.481.1"
 #define UID_RTDoseStorage                                          "1.2.840.10008.5.1.4.1.1.481.2"
 #define UID_RTStructureSetStorage                                  "1.2.840.10008.5.1.4.1.1.481.3"
@@ -592,6 +594,11 @@ DCMTK_DCMDATA_EXPORT unsigned long dcmGuessModalityBytes(const char *sopClassUID
 #define UID_MOVEImplantTemplateGroupInformationModel               "1.2.840.10008.5.1.4.45.3"
 #define UID_GETImplantTemplateGroupInformationModel                "1.2.840.10008.5.1.4.45.4"
 
+// Defined Procedure Protocol Query/Retrieve
+#define UID_FINDDefinedProcedureProtocolInformationModel           "1.2.840.10008.5.1.4.20.1"
+#define UID_MOVEDefinedProcedureProtocolInformationModel           "1.2.840.10008.5.1.4.20.2"
+#define UID_GETDefinedProcedureProtocolInformationModel            "1.2.840.10008.5.1.4.20.3"
+
 // Print Management
 #define UID_BasicFilmSessionSOPClass                               "1.2.840.10008.5.1.1.1"
 #define UID_BasicFilmBoxSOPClass                                   "1.2.840.10008.5.1.1.2"
diff --git a/dcmdata/libsrc/dcdictbi.cc b/dcmdata/libsrc/dcdictbi.cc
index 42ae3c2..724a358 100644
--- a/dcmdata/libsrc/dcdictbi.cc
+++ b/dcmdata/libsrc/dcdictbi.cc
@@ -4,7 +4,7 @@
 **
 **   User: joergr
 **   Host: thinkpad
-**   Date: 2016-06-13 09:57:11
+**   Date: 2016-10-04 12:15:57
 **   Prog: /home/joergr/Source/dcmtk-full/public/dcmdata/libsrc/mkdictbi
 **
 **   From: ../data/dicom.dic
@@ -700,6 +700,18 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_SH, "TimezoneOffsetFromUTC", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0008, 0x0220, 0x0008, 0x0220,
+      EVR_SQ, "ResponsibleGroupCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x0221, 0x0008, 0x0221,
+      EVR_CS, "EquipmentModality", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x0222, 0x0008, 0x0222,
+      EVR_LO, "ManufacturerRelatedModelGroup", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0008, 0x0300, 0x0008, 0x0300,
       EVR_SQ, "PrivateDataElementCharacteristicsSequence", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -732,6 +744,42 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_CS, "DeidentificationAction", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0008, 0x0308, 0x0008, 0x0308,
+      EVR_US, "PrivateDataElement", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x0309, 0x0008, 0x0309,
+      EVR_UL, "PrivateDataElementValueMultiplicity", 1, 3, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x030a, 0x0008, 0x030a,
+      EVR_CS, "PrivateDataElementValueRepresentation", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x030b, 0x0008, 0x030b,
+      EVR_UL, "PrivateDataElementNumberOfItems", 1, 2, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x030c, 0x0008, 0x030c,
+      EVR_UC, "PrivateDataElementName", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x030d, 0x0008, 0x030d,
+      EVR_UC, "PrivateDataElementKeyword", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x030e, 0x0008, 0x030e,
+      EVR_UT, "PrivateDataElementDescription", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x030f, 0x0008, 0x030f,
+      EVR_UT, "PrivateDataElementEncoding", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0008, 0x0310, 0x0008, 0x0310,
+      EVR_SQ, "PrivateDataElementDefinitionSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0008, 0x1000, 0x0008, 0x1000,
       EVR_AE, "RETIRED_NetworkID", 1, 1, "DICOM/retired",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -2102,6 +2150,18 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_SQ, "PatientSizeCodeSequence", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0010, 0x1022, 0x0010, 0x1022,
+      EVR_DS, "PatientBodyMassIndex", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0010, 0x1023, 0x0010, 0x1023,
+      EVR_DS, "MeasuredAPDimension", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0010, 0x1024, 0x0010, 0x1024,
+      EVR_DS, "MeasuredLateralDimension", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0010, 0x1030, 0x0010, 0x1030,
       EVR_DS, "PatientWeight", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -2740,6 +2800,14 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_CS, "ConsentForDistributionFlag", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0012, 0x0086, 0x0012, 0x0086,
+      EVR_DA, "EthicsCommitteeApprovalEffectivenessStartDate", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0012, 0x0087, 0x0012, 0x0087,
+      EVR_DA, "EthicsCommitteeApprovalEffectivenessEndDate", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
 #ifdef ENABLE_PRIVATE_TAGS
   , { 0x0013, 0x0000, 0x0013, 0x0000,
       EVR_LT, "ModifyingPhysician", 1, 1, "PrivateTag",
@@ -3912,6 +3980,14 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_LO, "GantryID", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0018, 0x1009, 0x0018, 0x1009,
+      EVR_UT, "UniqueDeviceIdentifier", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x100a, 0x0018, 0x100a,
+      EVR_SQ, "UDISequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0018, 0x1010, 0x0018, 0x1010,
       EVR_LO, "SecondaryCaptureDeviceID", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -5885,7 +5961,7 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
   , { 0x0018, 0x9323, 0x0018, 0x9323,
-      EVR_CS, "ExposureModulationType", 1, 1, "DICOM",
+      EVR_CS, "ExposureModulationType", 1, -1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
   , { 0x0018, 0x9324, 0x0018, 0x9324,
@@ -6628,6 +6704,242 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_xs, "ZeroVelocityPixelValue", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0018, 0x9900, 0x0018, 0x9900,
+      EVR_LO, "ReferenceLocationLabel", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9901, 0x0018, 0x9901,
+      EVR_UT, "ReferenceLocationDescription", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9902, 0x0018, 0x9902,
+      EVR_SQ, "ReferenceBasisCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9903, 0x0018, 0x9903,
+      EVR_SQ, "ReferenceGeometryCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9904, 0x0018, 0x9904,
+      EVR_DS, "OffsetDistance", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9905, 0x0018, 0x9905,
+      EVR_CS, "OffsetDirection", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9906, 0x0018, 0x9906,
+      EVR_SQ, "PotentialScheduledProtocolCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9907, 0x0018, 0x9907,
+      EVR_SQ, "PotentialRequestedProcedureCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9908, 0x0018, 0x9908,
+      EVR_UC, "PotentialReasonsForProcedure", 1, -1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9909, 0x0018, 0x9909,
+      EVR_SQ, "PotentialReasonsForProcedureCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x990a, 0x0018, 0x990a,
+      EVR_UC, "PotentialDiagnosticTasks", 1, -1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x990b, 0x0018, 0x990b,
+      EVR_SQ, "ContraindicationsCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x990c, 0x0018, 0x990c,
+      EVR_SQ, "ReferencedDefinedProtocolSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x990d, 0x0018, 0x990d,
+      EVR_SQ, "ReferencedPerformedProtocolSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x990e, 0x0018, 0x990e,
+      EVR_SQ, "PredecessorProtocolSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x990f, 0x0018, 0x990f,
+      EVR_UT, "ProtocolPlanningInformation", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9910, 0x0018, 0x9910,
+      EVR_UT, "ProtocolDesignRationale", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9911, 0x0018, 0x9911,
+      EVR_SQ, "PatientSpecificationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9912, 0x0018, 0x9912,
+      EVR_SQ, "ModelSpecificationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9913, 0x0018, 0x9913,
+      EVR_SQ, "ParametersSpecificationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9914, 0x0018, 0x9914,
+      EVR_SQ, "InstructionSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9915, 0x0018, 0x9915,
+      EVR_US, "InstructionIndex", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9916, 0x0018, 0x9916,
+      EVR_LO, "InstructionText", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9917, 0x0018, 0x9917,
+      EVR_UT, "InstructionDescription", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9918, 0x0018, 0x9918,
+      EVR_CS, "InstructionPerformedFlag", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9919, 0x0018, 0x9919,
+      EVR_DT, "InstructionPerformedDateTime", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x991a, 0x0018, 0x991a,
+      EVR_UT, "InstructionPerformanceComment", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x991b, 0x0018, 0x991b,
+      EVR_SQ, "PatientPositioningInstructionSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x991c, 0x0018, 0x991c,
+      EVR_SQ, "PositioningMethodCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x991d, 0x0018, 0x991d,
+      EVR_SQ, "PositioningLandmarkSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x991e, 0x0018, 0x991e,
+      EVR_UI, "TargetFrameOfReferenceUID", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x991f, 0x0018, 0x991f,
+      EVR_SQ, "AcquisitionProtocolElementSpecificationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9920, 0x0018, 0x9920,
+      EVR_SQ, "AcquisitionProtocolElementSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9921, 0x0018, 0x9921,
+      EVR_US, "ProtocolElementNumber", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9922, 0x0018, 0x9922,
+      EVR_LO, "ProtocolElementName", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9923, 0x0018, 0x9923,
+      EVR_UT, "ProtocolElementCharacteristicsSummary", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9924, 0x0018, 0x9924,
+      EVR_UT, "ProtocolElementPurpose", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9930, 0x0018, 0x9930,
+      EVR_CS, "AcquisitionMotion", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9931, 0x0018, 0x9931,
+      EVR_SQ, "AcquisitionStartLocationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9932, 0x0018, 0x9932,
+      EVR_SQ, "AcquisitionEndLocationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9933, 0x0018, 0x9933,
+      EVR_SQ, "ReconstructionProtocolElementSpecificationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9934, 0x0018, 0x9934,
+      EVR_SQ, "ReconstructionProtocolElementSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9935, 0x0018, 0x9935,
+      EVR_SQ, "StorageProtocolElementSpecificationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9936, 0x0018, 0x9936,
+      EVR_SQ, "StorageProtocolElementSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9937, 0x0018, 0x9937,
+      EVR_LO, "RequestedSeriesDescription", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9938, 0x0018, 0x9938,
+      EVR_US, "SourceAcquisitionProtocolElementNumber", 1, -1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9939, 0x0018, 0x9939,
+      EVR_US, "SourceAcquisitionBeamNumber", 1, -1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x993a, 0x0018, 0x993a,
+      EVR_US, "SourceReconstructionProtocolElementNumber", 1, -1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x993b, 0x0018, 0x993b,
+      EVR_SQ, "ReconstructionStartLocationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x993c, 0x0018, 0x993c,
+      EVR_SQ, "ReconstructionEndLocationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x993d, 0x0018, 0x993d,
+      EVR_SQ, "ReconstructionAlgorithmSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x993e, 0x0018, 0x993e,
+      EVR_SQ, "ReconstructionTargetCenterLocationSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9941, 0x0018, 0x9941,
+      EVR_UT, "ImageFilterDescription", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9942, 0x0018, 0x9942,
+      EVR_FD, "CTDIvolNotificationTrigger", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9943, 0x0018, 0x9943,
+      EVR_FD, "DLPNotificationTrigger", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9944, 0x0018, 0x9944,
+      EVR_CS, "AutoKVPSelectionType", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9945, 0x0018, 0x9945,
+      EVR_FD, "AutoKVPUpperBound", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9946, 0x0018, 0x9946,
+      EVR_FD, "AutoKVPLowerBound", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
+  , { 0x0018, 0x9947, 0x0018, 0x9947,
+      EVR_CS, "ProtocolDefinedPatientPosition", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0018, 0xa001, 0x0018, 0xa001,
       EVR_SQ, "ContributingEquipmentSequence", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -11050,6 +11362,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_LO, "RETIRED_Reference", 1, -1, "DICOM/retired",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0020, 0x103f, 0x0020, 0x103f,
+      EVR_LO, "TargetPositionReferenceIndicator", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0020, 0x1040, 0x0020, 0x1040,
       EVR_LO, "PositionReferenceIndicator", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -21786,6 +22102,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_SQ, "FiducialSequence", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0070, 0x031f, 0x0070, 0x031f,
+      EVR_SQ, "FiducialsPropertyCategoryCodeSequence", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
   , { 0x0070, 0x0401, 0x0070, 0x0401,
       EVR_US, "GraphicLayerRecommendedDisplayCIELabValue", 3, 3, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
@@ -23074,6 +23394,10 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       EVR_UT, "ConstraintViolationCondition", 1, 1, "DICOM",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
+  , { 0x0082, 0x0038, 0x0082, 0x0038,
+      EVR_CS, "ModifiableConstraintFlag", 1, 1, "DICOM",
+      DcmDictRange_Unspecified, DcmDictRange_Unspecified,
+      NULL }
 #ifdef ENABLE_PRIVATE_TAGS
   , { 0x0087, 0x0010, 0x0087, 0x0010,
       EVR_CS, "MediaType", 1, 1, "PrivateTag",
@@ -24757,7 +25081,7 @@ static const DBI_SimpleEntry simpleBuiltinDict[] = {
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
   , { 0x3006, 0x00b9, 0x3006, 0x00b9,
-      EVR_SQ, "AdditionalRTROIIdentificationCodeSequence", 1, 1, "DICOM",
+      EVR_SQ, "RETIRED_AdditionalRTROIIdentificationCodeSequence", 1, 1, "DICOM/retired",
       DcmDictRange_Unspecified, DcmDictRange_Unspecified,
       NULL }
   , { 0x3006, 0x00c0, 0x3006, 0x00c0,
diff --git a/dcmdata/libsrc/dcuid.cc b/dcmdata/libsrc/dcuid.cc
index 18bbad1..6da9f04 100644
--- a/dcmdata/libsrc/dcuid.cc
+++ b/dcmdata/libsrc/dcuid.cc
@@ -158,7 +158,9 @@ static const UIDNameMap uidNameMap[] = {
     { UID_ComputedRadiographyImageStorage,                     "ComputedRadiographyImageStorage" },
     { UID_ContentAssessmentResultsStorage,                     "ContentAssessmentResultsStorage" },
     { UID_CornealTopographyMapStorage,                         "CornealTopographyMapStorage" },
+    { UID_CTDefinedProcedureProtocolStorage,                   "CTDefinedProcedureProtocolStorage" },
     { UID_CTImageStorage,                                      "CTImageStorage" },
+    { UID_CTPerformedProcedureProtocolStorage,                 "CTPerformedProcedureProtocolStorage" },
     { UID_DeformableSpatialRegistrationStorage,                "DeformableSpatialRegistrationStorage" },
     { UID_DigitalIntraOralXRayImageStorageForPresentation,     "DigitalIntraOralXRayImageStorageForPresentation" },
     { UID_DigitalIntraOralXRayImageStorageForProcessing,       "DigitalIntraOralXRayImageStorageForProcessing" },
@@ -362,6 +364,11 @@ static const UIDNameMap uidNameMap[] = {
     { UID_MOVEImplantTemplateGroupInformationModel,            "MOVEImplantTemplateGroupInformationModel" },
     { UID_GETImplantTemplateGroupInformationModel,             "GETImplantTemplateGroupInformationModel" },
 
+    // Defined Procedure Protocol Query/Retrieve
+    { UID_FINDDefinedProcedureProtocolInformationModel,        "FINDDefinedProcedureProtocolInformationModel" },
+    { UID_MOVEDefinedProcedureProtocolInformationModel,        "MOVEDefinedProcedureProtocolInformationModel" },
+    { UID_GETDefinedProcedureProtocolInformationModel,         "GETDefinedProcedureProtocolInformationModel" },
+
     // Print
     { UID_BasicAnnotationBoxSOPClass,                          "BasicAnnotationBoxSOPClass" },
     { UID_BasicColorImageBoxSOPClass,                          "BasicColorImageBoxSOPClass" },
@@ -561,7 +568,9 @@ const char* dcmAllStorageSOPClassUIDs[] = {
     UID_ComputedRadiographyImageStorage,
     UID_ContentAssessmentResultsStorage,
     UID_CornealTopographyMapStorage,
+    UID_CTDefinedProcedureProtocolStorage,
     UID_CTImageStorage,
+    UID_CTPerformedProcedureProtocolStorage,
     UID_DeformableSpatialRegistrationStorage,
     UID_DigitalIntraOralXRayImageStorageForPresentation,
     UID_DigitalIntraOralXRayImageStorageForProcessing,
@@ -823,6 +832,8 @@ const char* dcmLongSCUStorageSOPClassUIDs[] = {
 //  UID_CompositingPlanarMPRVolumetricPresentationStateStorage,
 //  UID_ContentAssessmentResultsStorage,
 //  UID_CornealTopographyMapStorage,
+//  UID_CTDefinedProcedureProtocolStorage,
+//  UID_CTPerformedProcedureProtocolStorage,
 //  UID_ExtensibleSRStorage,
 //  UID_GrayscalePlanarMPRVolumetricPresentationStateStorage
 //  UID_LegacyConvertedEnhancedCTImageStorage,
@@ -1085,7 +1096,9 @@ static const DcmModalityTable modalities[] = {
     { UID_ComputedRadiographyImageStorage,                         "CR",  2048 * 2048 * 2 },
     { UID_ContentAssessmentResultsStorage,                         "AS",  4096 },
     { UID_CornealTopographyMapStorage,                             "CM",  512 * 512 },
+    { UID_CTDefinedProcedureProtocolStorage,                       "PPd", 4096 },
     { UID_CTImageStorage,                                          "CT",  512 * 512 * 2 },
+    { UID_CTPerformedProcedureProtocolStorage,                     "PPp", 4096 },
     { UID_DeformableSpatialRegistrationStorage,                    "RGd", 4096 },
     { UID_DigitalIntraOralXRayImageStorageForPresentation,         "DXo", 1024 * 1024 * 2 },
     { UID_DigitalIntraOralXRayImageStorageForProcessing,           "DPo", 1024 * 1024 * 2 },
diff --git a/dcmfg/include/dcmtk/dcmfg/fgderimg.h b/dcmfg/include/dcmtk/dcmfg/fgderimg.h
index 1b4c9c5..24b312e 100644
--- a/dcmfg/include/dcmtk/dcmfg/fgderimg.h
+++ b/dcmfg/include/dcmtk/dcmfg/fgderimg.h
@@ -169,41 +169,76 @@ public:
    */
   virtual OFCondition check() const;
 
-  /** Convenience function to add item representing reference to a file. No
+  /** Convenience function to add item representing reference to an object. No
    *  restrictions are set which frames or segments from this image has been
    *  actually used. However, such information could be added to the source
    *  image item later by modifying the resulting item being handed back to the
    *  caller.
-   * @param file Files that should be referenced by their UID, must be readable.
-   * @param purposeOfReference Code representing the purpose of reference
-   *        (Defined CID 7202)
-   * @param resultSourceImageItem The created derivation image item if
-   *        successful, NULL otherwise
-   * @return EC_Normal if adding works, error code otherwise
+   *  @param  file Files that should be referenced by their UID, must be readable.
+   *  @param  purposeOfReference Code representing the purpose of reference
+   *          (Defined CID 7202)
+   *  @param  resultSourceImageItem The created derivation image item if
+   *          successful, NULL otherwise
+   *  @return EC_Normal if adding works, error code otherwise
    */
   virtual OFCondition addSourceImageItem(const OFString& file,
                                          const CodeSequenceMacro& purposeOfReference,
                                          SourceImageItem*& resultSourceImageItem);
 
-  /** Convenience function to add items representing references to some files
+  /** Convenience function to add item representing reference to an object. No
+   *  restrictions are set which frames or segments from this image has been
+   *  actually used. However, such information could be added to the source
+   *  image item later by modifying the resulting item being handed back to the
+   *  caller.
+   *  @param  dataset DICOM dataset that should be referenced by their UID
+   *  @param  purposeOfReference Code representing the purpose of reference
+   *          (Defined CID 7202)
+   *  @param  resultSourceImageItem The created derivation image item if
+   *          successful, NULL otherwise
+   *  @return EC_Normal if adding works, error code otherwise
+   */
+  virtual OFCondition addSourceImageItem(DcmDataset *dataset,
+                                         const CodeSequenceMacro& purposeOfReference,
+                                         SourceImageItem*& resultSourceImageItem);
+
+  /** Convenience function to add items representing references to some objects
    *  which all have the same purpose of reference (code). No restrictions are
    *  set which frames or segments from those images have been actually used.
    *  However, such information could be added to the source image item later by
-    * modifying the resulting item handed back to the caller.
-    * @param files List of files that should be referenced by their UIDs.
-    * @param purposeOfReference Code representing the purpose of reference
-    *        (Defined CID 7202)
-    * @param resultSourceImageItems The created derivation image items (one per
-    *        file) if successful, NULL otherwise
-    * @param skipFileErrors If OFTrue, then files that could not be added will
-    *        not lead to error.
-    * @return EC_Normal if adding works, error code otherwise
+   *  modifying the resulting item handed back to the caller.
+   *  @param  files List of files that should be referenced by their UIDs.
+   *  @param  purposeOfReference Code representing the purpose of reference
+    *         (Defined CID 7202)
+   *  @param  resultSourceImageItems The created derivation image items (one per
+   *          file) if successful, NULL otherwise
+   *  @param  skipFileErrors If OFTrue, then files that could not be added will
+   *          not lead to error.
+   *  @return EC_Normal if adding works, error code otherwise
    */
   virtual OFCondition addSourceImageItems(const OFVector<OFString>& files,
                                           const CodeSequenceMacro& purposeOfReference,
                                           OFVector<SourceImageItem*>& resultSourceImageItems,
                                           const OFBool skipFileErrors = OFFalse);
 
+  /** Convenience function to add items representing references to some objects
+   *  which all have the same purpose of reference (code). No restrictions are
+   *  set which frames or segments from those images have been actually used.
+   *  However, such information could be added to the source image item later by
+   *  modifying the resulting item handed back to the caller.
+   *  @param  datasets List of datasets that should be referenced by their UIDs.
+   *  @param  purposeOfReference Code representing the purpose of reference
+   *          (Defined CID 7202)
+   *  @param  resultSourceImageItems The created derivation image items (one per
+   *          file) if successful, NULL otherwise
+   *  @param  skipErrors If OFTrue, then files that could not be added will
+   *          not lead to error.
+   *  @return EC_Normal if adding works, error code otherwise
+   */
+  virtual OFCondition addSourceImageItems(const OFVector<DcmDataset*>& datasets,
+                                          const CodeSequenceMacro& purposeOfReference,
+                                          OFVector<SourceImageItem*>& resultSourceImageItems,
+                                          const OFBool skipErrors = OFFalse);
+
    /** Get Derivation Description
     *  @param  value Reference to variable in which the value should be stored
     *  @param  pos Index of the value to get (0..vm-1), -1 for all components
diff --git a/dcmfg/include/dcmtk/dcmfg/fgfracon.h b/dcmfg/include/dcmtk/dcmfg/fgfracon.h
index 09abd86..2aea984 100644
--- a/dcmfg/include/dcmtk/dcmfg/fgfracon.h
+++ b/dcmfg/include/dcmtk/dcmfg/fgfracon.h
@@ -279,14 +279,14 @@ public:
 
   /** Set one of the Dimension Index Values
    *  @param  value Value that should be set (lowest index starts with 1)
-   *  @param  pos The position of the value that should be set (lowest index
+   *  @param  dim The position of the value that should be set (lowest index
    *          starts with 0), i.e.\ select the 1st, 2nd, ..nth dimension
    *  @param  checkValue Check 'value'. Not evaluated (here for consistency
    *          with other setter functions).
    *  @return EC_Normal, if value was set, error otherwise
    */
   virtual OFCondition setDimensionIndexValues(const Uint32& value,
-                                              const unsigned int pos,
+                                              const unsigned int dim,
                                               const OFBool checkValue = OFTrue);
 
   /** Set Temporal Position Index
diff --git a/dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h b/dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h
new file mode 100644
index 0000000..c29a78e
--- /dev/null
+++ b/dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h
@@ -0,0 +1,157 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmfg
+ *
+ *  Author:  Michael Onken
+ *
+ *  Purpose: Class for managing Frame Anatomy Functional Group
+ *
+ */
+
+#ifndef FGFRAMEANATOMY_H
+#define FGFRAMEANATOMY_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcitem.h"
+#include "dcmtk/dcmiod/iodmacro.h"
+#include "dcmtk/dcmfg/fgbase.h"
+
+/** Class representing the Frame Anatomy Functional Group Macro
+ */
+class DCMTK_DCMFG_EXPORT FGFrameAnatomy : public FGBase
+{
+public:
+
+  /** Enumerated values for attribute "Laterality"
+   */
+  enum LATERALITY
+  {
+    /// Undefined (e.g.\ value not set)
+    LATERALITY_UNDEFINED,
+    /// Invalid Laterality, e.g. when invalid value is read from file
+    LATERALITY_INVALID,
+    /// Right body part
+    LATERALITY_R,
+    /// Left body part
+    LATERALITY_L,
+    /// Unpaired body part
+    LATERALITY_UNPAIRED,
+    /// Both, left and right
+    LATERALITY_BOTH
+  };
+
+  /** Constructor, creates empty Frame Anatomy Functional Group
+   */
+  FGFrameAnatomy();
+
+  /** Virtual destructor, frees memory
+   */
+  virtual ~FGFrameAnatomy();
+
+  /** Returns a deep copy of this object
+   *  @return Deep copy of this object
+   */
+  virtual FGBase *clone() const;
+
+  /** Returns shared type of this group (can be shared or per-frame)
+   *  @return Always returns DcmFGTypes::EFGS_BOTH;
+   */
+  virtual DcmFGTypes::E_FGSharedType getSharedType() const {return DcmFGTypes::EFGS_BOTH;}
+
+  /** Clear all data
+   */
+  virtual void clearData();
+
+  /** Check whether data in functional group is valid
+   *  @return EC_Normal if data is valid, error otherwise
+   */
+  virtual OFCondition check() const;
+
+  /** Read functional group from given item
+   *  @param  item The item to read from, must contain Frame Anatomy Sequence
+   *  @return EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& item);
+
+  /** Write functional group to given item
+   *  @param  item The item to write Frame Anatomy Sequence to
+   *  @return EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& item);
+
+  // --- get() functionality ---
+
+  /** Get Laterality
+   *  @param  value Reference to variable in which the value should be stored
+   *  @return EC_Normal if successful, an error code otherwise (i.e. if
+   *          value is LATERALITY_INVALID).
+   */
+  virtual OFCondition getLaterality(LATERALITY& value);
+
+  /** Get anatomy information
+   *  @return Reference to anatomic information
+   */
+  virtual GeneralAnatomyMacro& getAnatomy();
+
+  // --- set() functionality ---
+
+  /** Set Laterality
+   *  @param  value Value to be set
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setLaterality(const LATERALITY& value);
+
+  /** Comparison operator that compares the normalized value of this object
+   *  with a given object of the same type, i.e.\ the elements within both
+   *  functional groups (this and rhs parameter) are compared by value!
+   *  Both objects (this and rhs) need to have the same type (i.e.\ both
+   *  FGUnknown) to be comparable. This function is used in order
+   *  to decide whether a functional group already exists, or is new. This
+   *  is used in particular to find out whether a given functional group
+   *  can be shared (i.e.\ the same information already exists as shared
+   *  functional group) or is different from the same shared group. In that
+   *  case the shared functional group must be distributed into per-frame
+   *  functional groups, instead. The exact implementation for implementing
+   *  the comparison is not relevant. However, it must be a comparison
+   *  by value.
+   *  @param  rhs the right hand side of the comparison
+   *  @return 0 if the object values are equal.
+   *          -1 if either the value of the first component that does not match
+   *          is lower in the this object, or all compared components match
+   *          but this component is shorter. Also returned if this type and
+   *          rhs type (DcmFGTypes::E_FGType) do not match.
+   *          1 if either the value of the first component that does not match
+   *          is greater in this object, or all compared components match
+   *          but this component is longer.
+   */
+  virtual int compare(const FGBase& rhs) const;
+
+  static LATERALITY str2Laterality(const OFString& lat);
+
+  static OFString laterality2Str(const LATERALITY lat);
+
+  static OFBool isLateralityValid(const LATERALITY lat);
+
+private:
+
+  /* Content of Frame Anatomy Macro */
+
+  /// Frame Laterality (DS, VM 1, Required type 1)
+  LATERALITY m_FrameLaterality;
+
+  /// General Anatomy Mandatory Macro
+  GeneralAnatomyMacro m_Anatomy;
+};
+
+#endif // FGFRAMEANATOMY_H
diff --git a/dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h b/dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h
new file mode 100644
index 0000000..5778ccd
--- /dev/null
+++ b/dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h
@@ -0,0 +1,174 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmfg
+ *
+ *  Author:  Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Identity Pixel Value Transformation Functional Group
+ *
+ */
+
+#ifndef FGIDENTPIXELTRANSFORM_H
+#define FGIDENTPIXELTRANSFORM_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcitem.h"
+#include "dcmtk/dcmfg/fgbase.h"
+#include "dcmtk/dcmdata/dcvrds.h"
+#include "dcmtk/dcmdata/dcvrlo.h"
+
+
+/** Class representing the Identity Pixel Value Transformation Functional Group Macro.
+ */
+class DCMTK_DCMFG_EXPORT FGIdentityPixelValueTransformation : public FGBase
+{
+public:
+
+  /** Constructor, creates Identity Pixel Value Transformation Functional Group.
+   *  All values (Rescale Slope, Intercept and Type) are set to their only valid
+   *  enumerated value listed in the standard, i.e. slope = 1, intercept = 0 and
+   *  type = "US".
+   */
+  FGIdentityPixelValueTransformation();
+
+  /** Destructor, frees memory
+   */
+  virtual ~FGIdentityPixelValueTransformation();
+
+  /** Returns a deep copy of this object
+   *  @return  Deep copy of this object
+   */
+  virtual FGBase *clone() const;
+
+  /** Get shared type of this functional group (can be both, per-frame and
+   *  shared)
+   *  @return Always returns EFGS_BOTH
+   */
+  virtual DcmFGTypes::E_FGSharedType getSharedType() const {return DcmFGTypes::EFGS_BOTH;}
+
+  /** Clears all data
+   */
+  virtual void clearData();
+
+  /** Check whether functional group contains valid data
+   *  @return EC_Normal if data is valid, error otherwise
+   */
+  virtual OFCondition check() const;
+
+  /** Read functional group from given item, i.e.\ read Identity Pixel Value
+   *  Transformation Sequence. Clears existing data before reading.
+   *  @param  item The item to read from
+   *  @return EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& item);
+
+  /** Write functional group to given item, i.e.\ write Identity Pixel Value Transformation Sequence
+   *  @param  item The item to write to
+   *  @return EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& item);
+
+  /** Get RescaleIntercept
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRescaleIntercept(OFString &value,
+                                          const signed long pos = 0) const;
+
+  /** Get RescaleSlope
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRescaleSlope(OFString &value,
+                                      const signed long pos = 0) const;
+
+  /** Get RescaleType
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRescaleType(OFString &value,
+                                     const signed long pos = 0) const;
+
+  /** Comparison operator that compares the normalized value of this object
+   *  with a given object of the same type, i.e.\ the elements within both
+   *  functional groups (this and rhs parameter) are compared by value!
+   *  Both objects (this and rhs) need to have the same type (i.e.\ both
+   *  FGUnknown) to be comparable. This function is used in order
+   *  to decide whether a functional group already exists, or is new. This
+   *  is used in particular to find out whether a given functional group
+   *  can be shared (i.e.\ the same information already exists as shared
+   *  functional group) or is different from the same shared group. In that
+   *  case the shared functional group must be distributed into per-frame
+   *  functional groups, instead. The exact implementation for implementing
+   *  the comparison is not relevant. However, it must be a comparison
+   *  by value.
+   *  @param  rhs the right hand side of the comparison
+   *  @return 0 if the object values are equal.
+   *          -1 if either the value of the first component that does not match
+   *          is lower in the this object, or all compared components match
+   *          but this component is shorter. Also returned if this type and
+   *          rhs type (DcmFGTypes::E_FGType) do not match.
+   *          1 if either the value of the first component that does not match
+   *          is greater in this object, or all compared components match
+   *          but this component is longer.
+   */
+  virtual int compare(const FGBase& rhs) const;
+
+protected:
+
+  /** Set RescaleIntercept. Hidden from user since value must always be equal
+   *  to 1 (automatically set on write).
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (DS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRescaleIntercept(const OFString &value,
+                                          const OFBool checkValue = OFTrue);
+
+  /** Set RescaleSlope. Hidden from user since value must always be equal
+   *  to 1 (automatically set on write).
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (DS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRescaleSlope(const OFString &value,
+                                      const OFBool checkValue = OFTrue);
+
+  /** Set RescaleType. Hidden from user since value must always be equal
+   *  to "US" for "unspecified" (automatically set on write).
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (LO) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRescaleType(const OFString &value,
+                                     const OFBool checkValue = OFTrue);
+
+private:
+
+  /* Content of Identity Pixel Value Transformation Functional Group Macro */
+
+  /// RescaleIntercept (DS, VM 1, Required type 1)
+  DcmDecimalString m_RescaleIntercept;
+
+  /// RescaleSlope (DS, VM 1, Required type 1)
+  DcmDecimalString m_RescaleSlope;
+
+  /// RescaleType (LO, VM 1, Required type 1)
+  DcmLongString m_RescaleType;
+};
+
+#endif // FGIDENTPIXELTRANSFORM_H
diff --git a/dcmfg/include/dcmtk/dcmfg/fginterface.h b/dcmfg/include/dcmtk/dcmfg/fginterface.h
index 5af1df1..ba2c3da 100644
--- a/dcmfg/include/dcmtk/dcmfg/fginterface.h
+++ b/dcmfg/include/dcmtk/dcmfg/fginterface.h
@@ -134,7 +134,7 @@ public:
 
   /** Add functional group that should be shared for all frames. This will
    *  delete all per-frame groups of the same type if existing.
-   *  @param  group   The group to be added (copy is performed)
+   *  @param  group   The group to be added. The group is copied.
    *  @return EC_Normal, if adding was successful, error otherwise
    */
   virtual OFCondition addShared(const FGBase& group);
@@ -148,7 +148,9 @@ public:
    *  overwritten.
    *  @param  frameNo The frame number this group should be added for (starts
    *          from 0)
-   *  @param  group The group to be added
+   *  @param  group The group to be added. The group is copied when adding,
+   *          so the ownership stays with the caller, no matter what the
+   *          method returns.
    *  @return EC_Normal, if adding was successful, error otherwise
    */
   virtual OFCondition addPerFrame(const Uint32 frameNo,
@@ -162,7 +164,8 @@ public:
   virtual OFBool deleteShared(const DcmFGTypes::E_FGType fgType);
 
   /** Deletes per-frame functional group of the given type for a specific frame
-   *  @param frameNo The frame number for the functional group of interest
+   *  @param frameNo The frame number for the functional group of interest.
+   *         First frame is frame 0.
    *  @param fgType The type of functional group to delete
    *  @return OFTrue if group existed and could be deleted, OFFalse (group did
    *          not exist) otherwise
@@ -173,10 +176,17 @@ public:
   /** Deletes per-frame functional group for all frames
    *  @param  fgType The type of functional group to delete
    *  @return Number of per-frame groups deleted (usually equal to number of
-   *          images)
+   *          frames)
    */
   size_t deletePerFrame(const DcmFGTypes::E_FGType fgType);
 
+  /** Deletes all functional groups for a specific frame
+   *  @param frameNo The frame number whose functional groups should be deleted.
+   *         First frame is frame 0.
+   *  @return Number of per-frame groups deleted for this frame
+   */
+  size_t deleteFrame(const Uint32 frameNo);
+
 protected:
 
   /** Get shared functional group based on its type
diff --git a/dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h b/dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h
new file mode 100644
index 0000000..fd46346
--- /dev/null
+++ b/dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h
@@ -0,0 +1,124 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmfg
+ *
+ *  Author:  Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Parametric Map Frame Type Functional Group
+ *
+ */
+
+#ifndef FGPARAMETRICMAPFRAMETYPE_H
+#define FGPARAMETRICMAPFRAMETYPE_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcitem.h"
+#include "dcmtk/dcmfg/fgbase.h"
+#include "dcmtk/dcmdata/dcvrcs.h"
+
+/** Class representing the Parametric Map Frame Type Functional Group Macro.
+ */
+class DCMTK_DCMFG_EXPORT FGParametricMapFrameType : public FGBase
+{
+public:
+  /** Constructor, creates empty Parametric Map Frame Type Functional Group
+   */
+  FGParametricMapFrameType();
+
+  /** Destructor, frees memory
+   */
+  virtual ~FGParametricMapFrameType();
+
+  /** Returns a deep copy of this object
+   *  @return  Deep copy of this object
+   */
+  virtual FGBase *clone() const;
+
+  /** Get shared type of this functional group (can be both, per-frame and
+   *  shared)
+   *  @return Always returns EFGS_BOTH
+   */
+  virtual DcmFGTypes::E_FGSharedType getSharedType() const {return DcmFGTypes::EFGS_BOTH;}
+
+  /** Clears all data
+   */
+  virtual void clearData();
+
+  /** Check whether functional group contains valid data
+   *  @return EC_Normal if data is valid, error otherwise
+   */
+  virtual OFCondition check() const;
+
+  /** Read functional group from given item, i.e.\ read Parametric Map Frame Type Sequence
+   *  @param  item The item to read from
+   *  @return EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& item);
+
+  /** Write functional group to given item, i.e.\ write Parametric Map Frame Type Sequence
+   *  @param  item The item to write to
+   *  @return EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& item);
+
+  /** Get FrameType
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getFrameType(OFString &value,
+                                   const signed long pos = 0) const;
+
+  /** Set FrameType
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (4) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setFrameType(const OFString &value,
+                                   const OFBool checkValue = OFTrue);
+
+  /** Comparison operator that compares the normalized value of this object
+   *  with a given object of the same type, i.e.\ the elements within both
+   *  functional groups (this and rhs parameter) are compared by value!
+   *  Both objects (this and rhs) need to have the same type (i.e.\ both
+   *  FGUnknown) to be comparable. This function is used in order
+   *  to decide whether a functional group already exists, or is new. This
+   *  is used in particular to find out whether a given functional group
+   *  can be shared (i.e.\ the same information already exists as shared
+   *  functional group) or is different from the same shared group. In that
+   *  case the shared functional group must be distributed into per-frame
+   *  functional groups, instead. The exact implementation for implementing
+   *  the comparison is not relevant. However, it must be a comparison
+   *  by value.
+   *  @param  rhs the right hand side of the comparison
+   *  @return 0 if the object values are equal.
+   *          -1 if either the value of the first component that does not match
+   *          is lower in the this object, or all compared components match
+   *          but this component is shorter. Also returned if this type and
+   *          rhs type (DcmFGTypes::E_FGType) do not match.
+   *          1 if either the value of the first component that does not match
+   *          is greater in this object, or all compared components match
+   *          but this component is longer.
+   */
+  virtual int compare(const FGBase& rhs) const;
+
+private:
+
+  /* Content of Parametric Map Frame Type Functional Group Macro */
+
+  /// FrameType (CS, VM 4, Required type 1)
+  DcmCodeString m_FrameType;
+};
+
+#endif // FGPARAMETRICMAPFRAMETYPE_H
diff --git a/dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h b/dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h
index f585b2f..0465b53 100644
--- a/dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h
+++ b/dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h
@@ -27,6 +27,7 @@
 #include "dcmtk/dcmdata/dcitem.h"
 #include "dcmtk/dcmiod/modbase.h"
 #include "dcmtk/dcmiod/iodmacro.h"
+#include "dcmtk/dcmiod/iodcontentitemmacro.h"
 
 /** Class representing the Real World Value Mapping Functional Group that
  *  specifies the mapping of stored values to associated Real World values
@@ -131,7 +132,7 @@ private:
  * LUT Explanation (LO, 1, 1)
  * LUT Label (SH, 1, 1)
  * Measurement Units Code Sequence (SQ, 1, 1)
- * Not yet supported: Quantity Definition Sequence (SQ, 1, 3)
+ * Quantity Definition Sequence (SQ, 1, 3)
  */
 class DCMTK_DCMFG_EXPORT FGRealWorldValueMapping::RWVMItem : public IODComponent
 {
@@ -153,6 +154,11 @@ public:
    */
   RWVMItem(IODComponent* parent = NULL);
 
+  /** Copy Constructor
+   *  @param  rhs The item to copy from
+   */
+  RWVMItem(const RWVMItem& rhs);
+
   /** Clone this class (perform deep copy)
    *  @return Clone of this class or NULL (e.g.\ if memory exhausted)
    */
@@ -229,6 +235,22 @@ public:
   virtual OFCondition getRealWorldValueLastValueMapped(Sint32 &value,
                                                        const unsigned long pos = 0) const;
 
+  /** Get Double Float Real World Value First Value Mapped
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getDoubleFloatRealWorldValueFirstValueMapped(Float64& value,
+                                                                   const unsigned long pos = 0) const;
+
+  /** Get Double Float Real World Value Last Value Mapped
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getDoubleFloatRealWorldValueLastValueMapped(Float64& value,
+                                                                   const unsigned long pos = 0) const;
+
   /** Get Real World Value LUT Data
    *  @param  value Reference to variable in which the value should be stored
    *  @param  pos Index of the value to get (0..vm-1)
@@ -264,6 +286,12 @@ public:
    */
   virtual CodeSequenceMacro& getMeasurementUnitsCode();
 
+  /** Get a reference to the entire ConceptNameCodeSequence, including items
+   *  exceeding the value multiplicity restriction of "1"
+   *  @return a reference to the entire ConceptNameCodeSequence
+   */
+  virtual OFVector<ContentItemMacro*>& getEntireQuantityDefinitionSequence();
+
   // --- set() functionality ---
 
   /** Set Real World Value First Value Mapped
@@ -274,7 +302,7 @@ public:
    *          if enabled
    *  @return EC_Normal if successful, an error code otherwise
    */
-  virtual OFCondition setRealWorldValueFirstValueMappedUnsigned(const Uint16 &value,
+  virtual OFCondition setRealWorldValueFirstValueMappedUnsigned(const Uint16 value,
                                                                 const OFBool checkValue = OFTrue);
 
   /** Set Real World Value First Value Mapped
@@ -296,7 +324,7 @@ public:
    *          if enabled
    *  @return EC_Normal if successful, an error code otherwise
    */
-  virtual OFCondition setRealWorldValueLastValueMappedUnsigned(const Uint16 &value,
+  virtual OFCondition setRealWorldValueLastValueMappedUnsigned(const Uint16 value,
                                                                const OFBool checkValue = OFTrue);
 
   /** Set Real World Value Last Value Mapped
@@ -308,7 +336,25 @@ public:
    *  @return EC_Normal if successful, an error code otherwise
    */
   virtual OFCondition setRealWorldValueLastValueMappedSigned(const Sint16 &value,
-                                                        const OFBool checkValue = OFTrue);
+                                                             const OFBool checkValue = OFTrue);
+
+  /** Set Double Float Real World Value First Value Mapped
+   *  @param  value Value to be set
+   *  @param  checkValue Check 'value'. Does nothing, only for consistency with
+   *          other set() functions.
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value,
+                                                                  const OFBool checkValue = OFTrue);
+
+  /** Set Double Float Real World Value Last Value Mapped
+   *  @param  value Value to be set
+   *  @param  checkValue Check 'value'. Does nothing, only for consistency with
+   *          other set() functions.
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setDoubleFloatRealWorldValueLastValueMapped(const Float64 value,
+                                                                  const OFBool checkValue = OFTrue);
 
   /** Set Real World Value Intercept
    *  @param  value Value to be set
@@ -316,7 +362,7 @@ public:
    *          with other setter functions).
    *  @return EC_Normal if successful, an error code otherwise
    */
-  virtual OFCondition setRealWorldValueIntercept(const Float64& value,
+  virtual OFCondition setRealWorldValueIntercept(const Float64 value,
                                                  const OFBool checkValue = OFTrue);
 
   /** Set Real World Value Slope
@@ -325,7 +371,7 @@ public:
    *          with other setter functions).
    *  @return EC_Normal if successful, an error code otherwise
    */
-  virtual OFCondition setRealWorldValueSlope(const Float64& value,
+  virtual OFCondition setRealWorldValueSlope(const Float64 value,
                                              const OFBool checkValue = OFTrue);
 
   /** Set Real World Value LUT Data
@@ -367,7 +413,8 @@ private:
   /// Measurement Units Code Sequence
   CodeSequenceMacro m_MeasurementUnitsCode;
 
-  /// TODO Content Item Macro for Quantity Definition Sequence
+  /// Quantity Definition Sequence
+  OFVector<ContentItemMacro*> m_QuantityDefinitionSequence;
 };
 
 #endif // FGREALWORLDVALUEMAPPING_H
diff --git a/dcmfg/include/dcmtk/dcmfg/fgtypes.h b/dcmfg/include/dcmtk/dcmfg/fgtypes.h
index 451cfe7..22bdfca 100644
--- a/dcmfg/include/dcmtk/dcmfg/fgtypes.h
+++ b/dcmfg/include/dcmtk/dcmfg/fgtypes.h
@@ -48,7 +48,7 @@ extern DCMTK_DCMFG_EXPORT OFLogger DCM_dcmfgLogger;
  *  constant definitions  *
  *-----------------------*/
 
-/* Specific error conditions for module dcmfg.(TODO)
+/* Specific error conditions for module dcmfg.
  * These error codes can be used in addition to the general purpose
  * codes defined in module dcmdata.
  */
@@ -120,10 +120,14 @@ public:
     EFG_FRAMEPIXELSHIFT,
     /// "Frame VOI LUT" or "Frame VOI LUT with LUT" Macro (share same starting sequence)
     EFG_FRAMEVOILUTMETA,
+    /// Identity Pixel Value Transformation
+    EFG_IDENTITYPIXELVALUETRANSFORMATION,
     /// Image Data Type
     EFG_IMAGEDATATYPE,
     /// Irradiation Event Identification
     EFG_IRRADIATIONEVENTIDENT,
+    /// Parametric Map Frame Type
+    EFG_PARAMETRICMAPFRAMETYPE,
     /// Patient Orientation in Frame
     EFG_PATIENTORIENTINFRAME,
     /// Patient Physiological State
diff --git a/dcmfg/include/dcmtk/dcmfg/stack.h b/dcmfg/include/dcmtk/dcmfg/stack.h
index 6e3e107..a04b84a 100644
--- a/dcmfg/include/dcmtk/dcmfg/stack.h
+++ b/dcmfg/include/dcmtk/dcmfg/stack.h
@@ -76,8 +76,6 @@ public:
    */
   virtual ~FGStack();
 
-  // TODO add sorted iterators using views, for example
-
   /** Return const iterator to first frame (not sorted after stack position)
    *  @return Const iterator to first frame
    */
@@ -137,8 +135,6 @@ private:
   /// More than one frame can have the same in-stack position
   OFMap<Uint32, Uint32> m_FrameNumbers;
 
-  // TODO Maybe add a redundant data structures mapping in-stack positions
-  // to frame numbers in order to enable fast access?
 };
 
 #endif // STACKREADER_H
diff --git a/dcmfg/libsrc/CMakeLists.txt b/dcmfg/libsrc/CMakeLists.txt
index c37d868..6d2afe3 100644
--- a/dcmfg/libsrc/CMakeLists.txt
+++ b/dcmfg/libsrc/CMakeLists.txt
@@ -5,10 +5,13 @@ DCMTK_ADD_LIBRARY(dcmfg
   fgderimg
   fgfact
   fgfracon
+  fgframeanatomy
   fgframevoilut
+  fgidentpixeltransform
   fgimagedatatype
   fginterface
   fgpixmsr
+  fgparametricmapframetype
   fgplanor
   fgplanorvol
   fgplanpo
diff --git a/dcmfg/libsrc/Makefile.dep b/dcmfg/libsrc/Makefile.dep
index 62c13c9..8617090 100644
--- a/dcmfg/libsrc/Makefile.dep
+++ b/dcmfg/libsrc/Makefile.dep
@@ -429,6 +429,8 @@ fgfact.o: fgfact.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -459,11 +461,9 @@ fgfact.o: fgfact.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -494,13 +494,18 @@ fgfact.o: fgfact.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
  ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
  ../../ofstd/include/dcmtk/ofstd/ofmem.h ../include/dcmtk/dcmfg/fgbase.h \
- ../include/dcmtk/dcmfg/fgfracon.h ../include/dcmtk/dcmfg/fgframevoilut.h \
+ ../include/dcmtk/dcmfg/fgfracon.h \
+ ../include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../include/dcmtk/dcmfg/fgframevoilut.h \
+ ../include/dcmtk/dcmfg/fgidentpixeltransform.h \
  ../include/dcmtk/dcmfg/fgimagedatatype.h \
+ ../include/dcmtk/dcmfg/fgparametricmapframetype.h \
  ../include/dcmtk/dcmfg/fgpixmsr.h ../include/dcmtk/dcmfg/fgplanor.h \
  ../include/dcmtk/dcmfg/fgplanorvol.h ../include/dcmtk/dcmfg/fgplanpo.h \
  ../include/dcmtk/dcmfg/fgplanposvol.h ../include/dcmtk/dcmfg/fgseg.h \
  ../include/dcmtk/dcmfg/fgusimagedescription.h \
- ../include/dcmtk/dcmfg/fgrealworldvaluemapping.h
+ ../include/dcmtk/dcmfg/fgrealworldvaluemapping.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h
 fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
@@ -561,6 +566,8 @@ fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -590,11 +597,9 @@ fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -623,6 +628,131 @@ fgfracon.o: fgfracon.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../include/dcmtk/dcmfg/fgbase.h ../include/dcmtk/dcmfg/fgtypes.h \
  ../include/dcmtk/dcmfg/fgdefine.h
+fgframeanatomy.o: fgframeanatomy.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h ../include/dcmtk/dcmfg/fgbase.h \
+ ../include/dcmtk/dcmfg/fgtypes.h ../include/dcmtk/dcmfg/fgdefine.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
 fgframevoilut.o: fgframevoilut.cc \
  ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
@@ -684,6 +814,8 @@ fgframevoilut.o: fgframevoilut.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -714,11 +846,132 @@ fgframevoilut.o: fgframevoilut.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmfg/fgdefine.h
+fgidentpixeltransform.o: fgidentpixeltransform.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmfg/fgidentpixeltransform.h \
+ ../include/dcmtk/dcmfg/fgbase.h ../include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -807,6 +1060,8 @@ fgimagedatatype.o: fgimagedatatype.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -837,11 +1092,9 @@ fgimagedatatype.o: fgimagedatatype.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -933,6 +1186,8 @@ fginterface.o: fginterface.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
@@ -960,11 +1215,9 @@ fginterface.o: fginterface.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -994,6 +1247,129 @@ fginterface.o: fginterface.cc \
  ../include/dcmtk/dcmfg/fgtypes.h ../include/dcmtk/dcmfg/fgdefine.h \
  ../include/dcmtk/dcmfg/fg.h ../include/dcmtk/dcmfg/fgbase.h \
  ../include/dcmtk/dcmfg/fgfact.h
+fgparametricmapframetype.o: fgparametricmapframetype.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmfg/fgparametricmapframetype.h \
+ ../include/dcmtk/dcmfg/fgbase.h ../include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmfg/fgdefine.h
 fgpixmsr.o: fgpixmsr.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmfg/fgpixmsr.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
@@ -1300,6 +1676,8 @@ fgplanorvol.o: fgplanorvol.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -1330,11 +1708,9 @@ fgplanorvol.o: fgplanorvol.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -1544,6 +1920,8 @@ fgplanposvol.o: fgplanposvol.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -1574,11 +1952,9 @@ fgplanposvol.o: fgplanposvol.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -1730,6 +2106,7 @@ fgrealworldvaluemapping.o: fgrealworldvaluemapping.cc \
  ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
  ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
 fgseg.o: fgseg.cc ../../config/include/dcmtk/config/osconfig.h \
@@ -2048,6 +2425,8 @@ fgusimagedescription.o: fgusimagedescription.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -2078,11 +2457,9 @@ fgusimagedescription.o: fgusimagedescription.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -2185,6 +2562,8 @@ stackinterface.o: stackinterface.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -2215,11 +2594,9 @@ stackinterface.o: stackinterface.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
diff --git a/dcmfg/libsrc/fg.cc b/dcmfg/libsrc/fg.cc
index c7fe5da..31ab951 100644
--- a/dcmfg/libsrc/fg.cc
+++ b/dcmfg/libsrc/fg.cc
@@ -53,7 +53,8 @@ FGBase* FunctionalGroups::find(const DcmFGTypes::E_FGType fgType)
 {
   FGBase* group = NULL;
   FunctionalGroups::iterator it = m_groups.find(fgType);
-  if ( it != m_groups.end() )
+  FunctionalGroups::iterator end = m_groups.end();
+  if ( it != end )
   {
     group = (*it).second;
   }
diff --git a/dcmfg/libsrc/fgbase.cc b/dcmfg/libsrc/fgbase.cc
index 0e58526..3cb43c3 100644
--- a/dcmfg/libsrc/fgbase.cc
+++ b/dcmfg/libsrc/fgbase.cc
@@ -162,7 +162,6 @@ OFCondition FGUnknown::write(DcmItem& item)
 
 OFCondition FGUnknown::check() const
 {
-  // TODO
   return EC_Normal;
 }
 
diff --git a/dcmfg/libsrc/fgderimg.cc b/dcmfg/libsrc/fgderimg.cc
index e8776da..c517ea6 100644
--- a/dcmfg/libsrc/fgderimg.cc
+++ b/dcmfg/libsrc/fgderimg.cc
@@ -157,8 +157,15 @@ void FGDerivationImage::clearData()
 
 OFCondition FGDerivationImage::check() const
 {
-  // TODO
-  return EC_Normal;
+  OFCondition result;
+  OFVector<DerivationImageItem*>::const_iterator it = m_DerivationImageItems.begin();
+  while ( (it != m_DerivationImageItems.end()) && result.good() )
+  {
+    result = (*it)->check();
+    it++;
+  }
+
+  return result;
 }
 
 DerivationImageItem& DerivationImageItem::operator=(const DerivationImageItem& rhs)
@@ -243,7 +250,7 @@ OFCondition FGDerivationImage::read(DcmItem& item)
 
 OFCondition FGDerivationImage::write(DcmItem& item)
 {
-  OFCondition result = EC_Normal;
+  OFCondition result = check();
   DcmIODUtil::writeSubSequence<OFVector<DerivationImageItem*> >
   ( result,
     DCM_DerivationImageSequence,
@@ -288,8 +295,13 @@ void SourceImageItem::clearData()
 
 OFCondition SourceImageItem::check() const
 {
-  // TODO
-  return EC_Normal;
+  OFCondition result = OFconst_cast(ImageSOPInstanceReferenceMacro*, &m_ImageSOPInstanceReference)->check();
+  if (result.bad())
+  {
+    return result;
+  }
+
+  return OFconst_cast(CodeSequenceMacro*, &m_PurposeOfReferenceCode)->check();
 }
 
 
@@ -351,7 +363,7 @@ OFCondition SourceImageItem::write(DcmItem& itemOfSourceImageSequence)
 }
 
 
-/* -- Class DerivationImages Implementation -- */
+/* -- Class DerivationImageItem Implementation -- */
 
 DerivationImageItem::DerivationImageItem()
   : m_DerivationDescription(DCM_DerivationDescription),
@@ -459,10 +471,28 @@ int DerivationImageItem::compare(const DerivationImageItem& rhs) const
 
 OFCondition DerivationImageItem::check() const
 {
-  // TODO
-  return EC_Normal;
-}
+  if (m_DerivationCodeItems.size() == 0)
+  {
+    DCMFG_ERROR("Derivation Code Sequence in Derivation Image Functional Group Macro must have one or more items");
+    return FG_EC_InvalidData;
+  }
 
+  OFCondition result;
+  OFVector<CodeSequenceMacro*>::const_iterator it = m_DerivationCodeItems.begin();
+  while (it != m_DerivationCodeItems.end() && result.good())
+  {
+    result = (*it)->check();
+    it++;
+  }
+
+  OFVector<SourceImageItem*>::const_iterator ref = m_SourceImageItems.begin();
+  while ((ref != m_SourceImageItems.end()) && result.good())
+  {
+    result = (*ref)->check();
+    ref++;
+  }
+  return result;
+}
 
 
 DerivationImageItem::~DerivationImageItem()
@@ -475,17 +505,41 @@ OFCondition DerivationImageItem::addSourceImageItem(const OFString& file,
                                                     const CodeSequenceMacro& purposeOfReference,
                                                     SourceImageItem*& resultSourceImageItem)
 {
+  DcmFileFormat dcmff;
+  DcmDataset *dataset = NULL;
+  OFCondition result = dcmff.loadFile(file.c_str());
+  if (result.bad())
+  {
+    DCMFG_ERROR("Could not load file " << file << ": " << result.text());
+    return result;
+  }
+  dataset = dcmff.getDataset();
+  return addSourceImageItem(dataset, purposeOfReference, resultSourceImageItem);
+}
+
+
+OFCondition DerivationImageItem::addSourceImageItem(DcmDataset *dataset,
+                                                    const CodeSequenceMacro& purposeOfReference,
+                                                    SourceImageItem*& resultSourceImageItem)
+{
   // Create new source image item
   SourceImageItem *item = new SourceImageItem();
   if (item == NULL)
   {
     return EC_MemoryExhausted;
   }
+
+  // check code validity
+  if ( OFconst_cast(CodeSequenceMacro*, &purposeOfReference)->check().bad() )
+  {
+    DCMFG_ERROR("Purpose of Reference code within item of Derivation Image Sequence is invalid");
+    return FG_EC_InvalidData;
+  }
+
   item->getPurposeOfReferenceCode() = purposeOfReference;
-  // TODO: Check code for completeness, and context group?
   resultSourceImageItem = NULL;
   OFString sopClass, sopInstance, ts;
-  OFCondition result = DcmDataUtil::getSOPInstanceFromFile(file, sopClass, sopInstance, ts /*ignored*/);
+  OFCondition result = DcmDataUtil::getSOPInstanceFromDataset(dataset, EXS_Unknown, sopClass, sopInstance, ts /*ignored*/);
   {
     if ( result.good() ) result = item->getImageSOPInstanceReference().setReferencedSOPClassUID(sopClass);
     if ( result.good() ) result = item->getImageSOPInstanceReference().setReferencedSOPInstanceUID(sopInstance);
@@ -495,6 +549,11 @@ OFCondition DerivationImageItem::addSourceImageItem(const OFString& file,
     m_SourceImageItems.push_back(item);
     resultSourceImageItem = item;
   }
+  else
+  {
+    delete item;
+  }
+
   return result;
 }
 
@@ -504,11 +563,36 @@ OFCondition DerivationImageItem::addSourceImageItems(const OFVector< OFString >&
                                                      OFVector<SourceImageItem*>& resultSourceImageItems,
                                                      const OFBool skipErrors)
 {
-  // Add files
+  DcmFileFormat dcmff;
   OFCondition result;
+  DcmDataset *dataset = NULL;
+  OFVector<DcmDataset*> datasets;
   OFVector<OFString>::const_iterator it = files.begin();
   while (it != files.end())
   {
+    result = dcmff.loadFile((*it).c_str());
+    if (result.bad())
+    {
+      DCMFG_ERROR("Could not load file " << (*it) << ": " << result.text());
+      return result;
+    }
+    dataset = dcmff.getDataset();
+    datasets.push_back(dataset);
+    it++;
+  }
+  return addSourceImageItems(datasets, purposeOfReference, resultSourceImageItems, skipErrors);
+}
+
+
+OFCondition DerivationImageItem::addSourceImageItems(const OFVector<DcmDataset*>& datasets,
+                                                     const CodeSequenceMacro& purposeOfReference,
+                                                     OFVector<SourceImageItem*>& resultSourceImageItems,
+                                                     const OFBool skipErrors)
+  {
+  OFCondition result;
+  OFVector<DcmDataset*>::const_iterator it = datasets.begin();
+  while (it != datasets.end())
+  {
     SourceImageItem* resultItem = NULL;
     result = addSourceImageItem((*it), purposeOfReference, resultItem);
     if (result.good())
diff --git a/dcmfg/libsrc/fgfact.cc b/dcmfg/libsrc/fgfact.cc
index 6285a31..c8fcd30 100644
--- a/dcmfg/libsrc/fgfact.cc
+++ b/dcmfg/libsrc/fgfact.cc
@@ -24,8 +24,11 @@
 #include "dcmtk/dcmfg/fgfact.h"
 #include "dcmtk/dcmfg/fgderimg.h"
 #include "dcmtk/dcmfg/fgfracon.h"
+#include "dcmtk/dcmfg/fgframeanatomy.h"
 #include "dcmtk/dcmfg/fgframevoilut.h"
+#include "dcmtk/dcmfg/fgidentpixeltransform.h"
 #include "dcmtk/dcmfg/fgimagedatatype.h"
+#include "dcmtk/dcmfg/fgparametricmapframetype.h"
 #include "dcmtk/dcmfg/fgpixmsr.h"
 #include "dcmtk/dcmfg/fgplanor.h"
 #include "dcmtk/dcmfg/fgplanorvol.h"
@@ -62,11 +65,18 @@ FGBase* FGFactory::create(const DcmFGTypes::E_FGType fgtype)
     case DcmFGTypes::EFG_PIXELMEASURES:
       return new FGPixelMeasures();
       break;
+    case DcmFGTypes::EFG_FRAMEANATOMY:
+      return new FGFrameAnatomy();
+      break;
     case DcmFGTypes::EFG_FRAMECONTENT:
       return new FGFrameContent();
       break;
     case DcmFGTypes::EFG_FRAMEVOILUTMETA:      // Frame VOI LUT and Frame VOI LUT with LUT
       return new FGFrameVOILUT();
+      break;
+    case DcmFGTypes::EFG_PARAMETRICMAPFRAMETYPE:
+      return new FGParametricMapFrameType;
+      break;
     case DcmFGTypes::EFG_PLANEPOSPATIENT:
       return new FGPlanePosPatient();
       break;
@@ -80,6 +90,9 @@ FGBase* FGFactory::create(const DcmFGTypes::E_FGType fgtype)
     case DcmFGTypes::EFG_DERIVATIONIMAGE:
       return new FGDerivationImage();
       break;
+    case DcmFGTypes::EFG_IDENTITYPIXELVALUETRANSFORMATION:
+      return new FGIdentityPixelValueTransformation();
+      break;
     case DcmFGTypes::EFG_IMAGEDATATYPE:
       return new FGImageDataType();
       break;
@@ -93,7 +106,6 @@ FGBase* FGFactory::create(const DcmFGTypes::E_FGType fgtype)
       return new FGUSImageDescription();
       break;
     case DcmFGTypes::EFG_CARDIACSYNC:
-    case DcmFGTypes::EFG_FRAMEANATOMY:
     case DcmFGTypes::EFG_PIXELVALUETRANSMETA:  // Pixel Value Transformation Macro or Identity Pixel Value Transformation Macro
     case DcmFGTypes::EFG_CONTRASTBOLUSUSAGE:
     case DcmFGTypes::EFG_PIXELINTENSITYRELLUT:
diff --git a/dcmfg/libsrc/fgfracon.cc b/dcmfg/libsrc/fgfracon.cc
index 0d30731..e60124f 100644
--- a/dcmfg/libsrc/fgfracon.cc
+++ b/dcmfg/libsrc/fgfracon.cc
@@ -91,7 +91,7 @@ void FGFrameContent::clearData()
 
 OFCondition FGFrameContent::check() const
 {
-  // TODO
+  // Maybe add checks later
   return EC_Normal;
 }
 
@@ -315,7 +315,7 @@ OFCondition FGFrameContent::setRespiratoryCyclePosition(const OFString& value,
 }
 
 OFCondition FGFrameContent::setDimensionIndexValues(const Uint32& value,
-                                                    const unsigned int pos,
+                                                    const unsigned int dim,
                                                     const OFBool checkValue)
 {
   // no other meaningful checks possible in this context
@@ -325,7 +325,7 @@ OFCondition FGFrameContent::setDimensionIndexValues(const Uint32& value,
     DCMFG_ERROR("Cannot set dimension index value 0, must be >= 1)");
     return EC_InvalidValue;
   }
-  return m_DimensionIndexValues.putUint32(value, pos);
+  return m_DimensionIndexValues.putUint32(value, dim);
 }
 
 OFCondition FGFrameContent::setTemporalPositionIndex(const Uint32& value,
diff --git a/dcmfg/libsrc/fgframeanatomy.cc b/dcmfg/libsrc/fgframeanatomy.cc
new file mode 100644
index 0000000..405d2a1
--- /dev/null
+++ b/dcmfg/libsrc/fgframeanatomy.cc
@@ -0,0 +1,203 @@
+/*
+ *
+ *  Copyright (C) 2015-2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmfg
+ *
+ *  Author:  Michael Onken
+ *
+ *  Purpose: Class for managing Frame Anatomy Functional Group
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmfg/fgframeanatomy.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmiod/iodutil.h"
+
+
+FGFrameAnatomy::FGFrameAnatomy()
+: FGBase(DcmFGTypes::EFG_FRAMEANATOMY),
+  m_FrameLaterality(LATERALITY_UNDEFINED),
+  m_Anatomy("1" /* Use Mandatory version of macro, i.e. make "Anatomic Region Sequence type 1" */)
+{
+}
+
+
+FGFrameAnatomy::~FGFrameAnatomy()
+{
+  // nothing to do
+}
+
+
+FGBase* FGFrameAnatomy::clone() const
+{
+  FGFrameAnatomy* copy = new FGFrameAnatomy();
+  if (copy)
+  {
+    copy->m_FrameLaterality= this->m_FrameLaterality;
+    copy->m_Anatomy = this->m_Anatomy;
+  }
+  return copy;
+}
+
+
+void FGFrameAnatomy::clearData()
+{
+  m_FrameLaterality = LATERALITY_UNDEFINED;
+  m_Anatomy.clearData();
+}
+
+
+OFCondition FGFrameAnatomy::check() const
+{
+  if (!isLateralityValid(m_FrameLaterality))
+  {
+    DCMFG_ERROR("Frame Laterality invalid");
+    return FG_EC_InvalidData;
+  }
+  return OFconst_cast(GeneralAnatomyMacro*, &m_Anatomy)->check();
+}
+
+
+int FGFrameAnatomy::compare(const FGBase& rhs) const
+{
+  int result = FGBase::compare(rhs);
+  if (result != 0)
+    return result;
+
+  const FGFrameAnatomy* myRhs = OFstatic_cast(const FGFrameAnatomy*, &rhs);
+
+  // Compare all elements
+  if (m_FrameLaterality != myRhs->m_FrameLaterality)
+    return 1;
+
+  return m_Anatomy.compare(myRhs->m_Anatomy);
+}
+
+
+/// Read from Frame Content Sequence
+OFCondition FGFrameAnatomy::read(DcmItem& item)
+{
+  clearData();
+
+  OFCondition result;
+  DcmItem* seqItem = NULL;
+  result = getItemFromFGSequence(item, DCM_FrameAnatomySequence, 0, seqItem);
+  if (result.bad())
+    return result;
+
+  DcmCodeString elem(DCM_FrameLaterality);
+  DcmIODUtil::getAndCheckElementFromDataset(*seqItem, elem,   "1", "1", "FrameAnatomyMacro");
+  OFString val;
+  elem.getOFStringArray(val);
+  m_FrameLaterality = str2Laterality(val);
+
+  m_Anatomy.read(*seqItem);
+
+  return EC_Normal;
+}
+
+
+OFCondition FGFrameAnatomy::write(DcmItem& item)
+{
+  OFCondition result = check();
+  if (result.good())
+  {
+    DcmItem* seqItem = NULL;
+    OFCondition result = createNewFGSequence(item, DCM_FrameAnatomySequence, 0, seqItem);
+    if (result.good())
+    {
+      OFString lat = laterality2Str(m_FrameLaterality);
+      result = seqItem->putAndInsertOFStringArray(DCM_FrameLaterality, lat);
+      if (result.good())
+      {
+        result = m_Anatomy.write(*seqItem);
+      }
+    }
+  }
+
+  return result;
+}
+
+
+OFCondition FGFrameAnatomy::getLaterality(FGFrameAnatomy::LATERALITY& value)
+{
+  value = m_FrameLaterality;
+  return EC_Normal;
+}
+
+
+GeneralAnatomyMacro& FGFrameAnatomy::getAnatomy()
+{
+  return m_Anatomy;
+}
+
+
+OFCondition FGFrameAnatomy::setLaterality(const FGFrameAnatomy::LATERALITY& value)
+{
+  if (isLateralityValid(value))
+  {
+    m_FrameLaterality = value;
+    return EC_Normal;
+  }
+  else
+  {
+    return FG_EC_InvalidData;
+  }
+}
+
+
+OFString FGFrameAnatomy::laterality2Str(const FGFrameAnatomy::LATERALITY lat)
+{
+  switch(lat)
+  {
+    case LATERALITY_INVALID: return "Invalid";
+    case LATERALITY_L: return "L";
+    case LATERALITY_R: return "R";
+    case LATERALITY_BOTH: return "B";
+    case LATERALITY_UNDEFINED: return "Undefined";
+    case LATERALITY_UNPAIRED: return "U";
+    default: return "Invalid";
+  }
+}
+
+
+FGFrameAnatomy::LATERALITY FGFrameAnatomy::str2Laterality(const OFString& lat)
+{
+  if (lat == "L")
+    return LATERALITY_L;
+  if (lat == "R")
+    return LATERALITY_R;
+  if (lat == "U")
+    return LATERALITY_UNPAIRED;
+  if (lat == "B")
+    return LATERALITY_BOTH;
+
+  if (lat.empty())
+    return LATERALITY_UNDEFINED;
+
+  return LATERALITY_INVALID;
+
+}
+
+
+OFBool FGFrameAnatomy::isLateralityValid(const FGFrameAnatomy::LATERALITY lat)
+{
+  if ( (lat == LATERALITY_L) || (lat == LATERALITY_R) || (lat == LATERALITY_BOTH) ||
+       (lat == LATERALITY_UNPAIRED) )
+    return OFTrue;
+  else
+    return OFFalse;
+}
+
diff --git a/dcmfg/libsrc/fgframevoilut.cc b/dcmfg/libsrc/fgframevoilut.cc
index 3b22012..2b04ac0 100644
--- a/dcmfg/libsrc/fgframevoilut.cc
+++ b/dcmfg/libsrc/fgframevoilut.cc
@@ -67,7 +67,7 @@ void FGFrameVOILUT::clearData()
 
 OFCondition FGFrameVOILUT::check() const
 {
-  // TODO
+  // For now attribute-based checks in read() and write() are sufficient
   return EC_Normal;
 }
 
diff --git a/dcmfg/libsrc/fgidentpixeltransform.cc b/dcmfg/libsrc/fgidentpixeltransform.cc
new file mode 100644
index 0000000..ef5f6d4
--- /dev/null
+++ b/dcmfg/libsrc/fgidentpixeltransform.cc
@@ -0,0 +1,229 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Identity Pixel Value Transformation
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmfg/fgidentpixeltransform.h"
+
+FGIdentityPixelValueTransformation::FGIdentityPixelValueTransformation()
+: FGBase(DcmFGTypes::EFG_UNDEFINED)
+, m_RescaleIntercept(DCM_RescaleIntercept)
+, m_RescaleSlope(DCM_RescaleSlope)
+, m_RescaleType(DCM_RescaleType)
+{
+  m_RescaleIntercept.putOFStringArray("0");
+  m_RescaleSlope.putOFStringArray("1");
+  m_RescaleType.putOFStringArray("US");
+}
+
+
+FGIdentityPixelValueTransformation::~FGIdentityPixelValueTransformation()
+{
+
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::check() const
+{
+  Float64 rs, ri;
+  rs = ri = 0;
+  OFString rt;
+  OFBool ok = OFTrue;
+  if (OFconst_cast(DcmDecimalString*, &m_RescaleIntercept)->getFloat64(ri).good())
+  {
+    if (ri != 0)
+    {
+      DCMFG_ERROR("Rescale Intercept in Identity Pixel Value Transformation FG must be 0 but is set to " << ri);
+      ok = OFFalse;
+    }
+  }
+  else
+  {
+    DCMFG_ERROR("Invalid or no value for Rescale Intercept in Identity Pixel Value Transformation FG (0 is the only valid value");
+    ok = OFFalse;
+  }
+
+  if (OFconst_cast(DcmDecimalString*, &m_RescaleSlope)->getFloat64(rs).good())
+  {
+    if (rs != 1)
+    {
+      DCMFG_ERROR("Rescale Slope in Identity Pixel Value Transformation FG must be 1 but is set to " << rs);
+      ok = OFFalse;
+    }
+  }
+  else
+  {
+    DCMFG_ERROR("Invalid or no value for Rescale Slope in Identity Pixel Value Transformation FG (1 is the only valid value");
+    ok = OFFalse;
+  }
+
+  if (OFconst_cast(DcmLongString*, &m_RescaleType)->getOFStringArray(rt).good())
+  {
+    if (rt != "US")
+    {
+      DCMFG_ERROR("Rescale Type in Identity Pixel Value Transformation FG must be \"US\" but is set to " << rt);
+      ok = OFFalse;
+    }
+  }
+  else
+  {
+    DCMFG_ERROR("Invalid or no value for Rescale Type in Identity Pixel Value Transformation FG (\"US\" is the only valid value");
+    ok = OFFalse;
+  }
+  if (ok)
+  {
+    return EC_Normal;
+  }
+  else
+  {
+    return FG_EC_InvalidData;
+  }
+}
+
+
+void FGIdentityPixelValueTransformation::clearData()
+{
+  m_RescaleIntercept.clear();
+  m_RescaleSlope.clear();
+  m_RescaleType.clear();
+}
+
+
+FGBase* FGIdentityPixelValueTransformation::clone() const
+{
+  if(FGIdentityPixelValueTransformation* copy = new FGIdentityPixelValueTransformation)
+  {
+    copy->m_RescaleIntercept = m_RescaleIntercept;
+    copy->m_RescaleSlope = m_RescaleSlope;
+    copy->m_RescaleType = m_RescaleType;
+    return copy;
+  }
+  return OFnullptr;
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::read(DcmItem& item)
+{
+  clearData();
+
+  DcmItem* seqItem;
+  OFCondition result;
+
+  seqItem = OFnullptr;
+  result = getItemFromFGSequence(item, DCM_PixelValueTransformationSequence, 0, seqItem);
+  if(result.bad())
+    return result;
+  DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_RescaleIntercept, "1", "1", "Identity Pixel Value Transformation");
+  DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_RescaleSlope, "1", "1", "Identity Pixel Value Transformation");
+  DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_RescaleType, "1", "1", "Identity Pixel Value Transformation");
+
+  return EC_Normal;
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::write(DcmItem& item)
+{
+  DcmItem* seqItem;
+  DCMFG_DEBUG("Identity Pixel Value Transformation Macro: Fixing values for Rescale Slope, Intercept and Type to enumerated values '1', '0' and 'US'");
+  m_RescaleSlope.putOFStringArray("1");
+  m_RescaleIntercept.putOFStringArray("0");
+  m_RescaleType.putOFStringArray("US");
+
+  seqItem = OFnullptr;
+  OFCondition result = createNewFGSequence(item, DCM_PixelValueTransformationSequence, 0, seqItem);
+  if(result.bad())
+    return result;
+  DcmIODUtil::copyElementToDataset(result, *seqItem, m_RescaleIntercept, "1", "1", "Identity Pixel Value Transformation");
+  DcmIODUtil::copyElementToDataset(result, *seqItem, m_RescaleSlope, "1", "1", "Identity Pixel Value Transformation");
+  DcmIODUtil::copyElementToDataset(result, *seqItem, m_RescaleType, "1", "1", "Identity Pixel Value Transformation");
+
+  return result;
+}
+
+
+int FGIdentityPixelValueTransformation::compare(const FGBase& rhs) const
+{
+  int result = FGBase::compare(rhs);
+  if(result == 0)
+  {
+    const FGIdentityPixelValueTransformation* myRhs = OFstatic_cast(const FGIdentityPixelValueTransformation*, &rhs);
+
+    // Compare all elements
+    result = m_RescaleIntercept.compare(myRhs->m_RescaleIntercept);
+    result = m_RescaleSlope.compare(myRhs->m_RescaleSlope);
+    result = m_RescaleType.compare(myRhs->m_RescaleType);
+  }
+
+  return result;
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::getRescaleIntercept(OFString &value,
+                                                                    const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromElement(m_RescaleIntercept, value, pos);
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::getRescaleSlope(OFString &value,
+                                                                const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromElement(m_RescaleSlope, value, pos);
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::getRescaleType(OFString &value,
+                                                               const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromElement(m_RescaleType, value, pos);
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::setRescaleIntercept(const OFString &value,
+                                                                    const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_RescaleIntercept.putString(value.c_str());
+  return result;
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::setRescaleSlope(const OFString &value,
+                                                                const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_RescaleSlope.putString(value.c_str());
+  return result;
+}
+
+
+OFCondition FGIdentityPixelValueTransformation::setRescaleType(const OFString &value,
+                                                               const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_RescaleType.putString(value.c_str());
+  return result;
+}
+
diff --git a/dcmfg/libsrc/fgimagedatatype.cc b/dcmfg/libsrc/fgimagedatatype.cc
index dc71962..af6ea14 100644
--- a/dcmfg/libsrc/fgimagedatatype.cc
+++ b/dcmfg/libsrc/fgimagedatatype.cc
@@ -74,7 +74,7 @@ void FGImageDataType::clearData()
 
 OFCondition FGImageDataType::check() const
 {
-  // TODO
+   // For now, checks in read() and write() are sufficient
   return EC_Normal;
 }
 
@@ -228,6 +228,19 @@ OFCondition FGImageDataType::write(DcmItem& item)
   {
     DcmIODUtil::copyElementToDataset(result, *seqItem, m_ZeroVelocityPixelValueUS, "1", "1C", "ImageDataTypeMacro");
   }
+  // Zero Velocity Pixel Value is required in case Data Type is TISSUE_VELOCITY,
+  // FLOW_VELOCITY or DIRECTION_POWER.
+  else
+  {
+    OFString val;
+    m_DataType.getOFStringArray(val);
+    if ( (val == "TISSUE_VELOCITY") || (val == "FLOW_VELOCITY") ||  (val == "DIRECTION_POWER") )
+    {
+      DCMFG_ERROR("Missing value for Zero Velocity Pixel Value (required if Data Type has" <<
+                  "the value TISSUE_VELOCITY, FLOW_VELOCITY or DIRECTION_POWER");
+      return FG_EC_InvalidData;
+    }
+  }
 
   return result;
 }
diff --git a/dcmfg/libsrc/fginterface.cc b/dcmfg/libsrc/fginterface.cc
index 0844711..c7c0802 100644
--- a/dcmfg/libsrc/fginterface.cc
+++ b/dcmfg/libsrc/fginterface.cc
@@ -250,11 +250,11 @@ OFCondition FGInterface::readPerFrameFG(DcmItem& dataset)
   }
 
   /* Read functional groups for each item (one per frame) */
-  for (size_t count = 0; count < numFrames; count++)
+  DcmItem *oneFrameItem = OFstatic_cast(DcmItem*, perFrame->nextInContainer(NULL));
+  Uint32 count = 0;
+  while (oneFrameItem != NULL)
   {
-    DcmItem* oneFrameItem = perFrame->getItem(count);
     OFauto_ptr<FunctionalGroups> perFrameGroups(new FunctionalGroups());
-    // FunctionalGroups* perFrameGroups = new FunctionalGroups();
     if (!oneFrameItem)
     {
       DCMFG_ERROR("Could not get functional group item for frame #" << count << " (internal error)");
@@ -278,6 +278,8 @@ OFCondition FGInterface::readPerFrameFG(DcmItem& dataset)
         DCMFG_ERROR("Could not read functional groups for frame #" << count << ": " << result.text());
       }
     }
+    oneFrameItem = OFstatic_cast(DcmItem*, perFrame->nextInContainer(oneFrameItem));
+    count++;
   }
   return EC_Normal; // for now we always return EC_Normal...
 }
@@ -353,7 +355,6 @@ OFCondition FGInterface::write(DcmItem& dataset)
 }
 
 
-// TODO: overload (templates?) to return correct derived class type?
 FGBase* FGInterface::getShared(const DcmFGTypes::E_FGType fgType)
 {
   return m_shared.find(fgType);
@@ -432,6 +433,25 @@ size_t FGInterface::deletePerFrame(const DcmFGTypes::E_FGType fgType)
 }
 
 
+size_t FGInterface::deleteFrame(const Uint32 frameNo)
+{
+  OFMap<Uint32, FunctionalGroups*>::iterator it = m_perFrame.find(frameNo);
+  if (it != m_perFrame.end())
+  {
+    if ( (*it).second )
+    {
+      FunctionalGroups::iterator fg = (*it).second->begin();
+      while (fg != (*it).second->end())
+      {
+        delete (*fg).second;
+        fg++;
+      }
+    }
+    m_perFrame.erase(it);
+  }
+  return OFFalse;
+}
+
 
 FunctionalGroups* FGInterface::getOrCreatePerFrameGroups(const Uint32 frameNo)
 {
@@ -512,7 +532,8 @@ OFCondition FGInterface::writeSharedFG(DcmItem& dataset)
   }
 
   FunctionalGroups::iterator it = m_shared.begin();
-  while ( (it != m_shared.end()) && result.good() )
+  FunctionalGroups::iterator end = m_shared.end();
+  while ( (it != end) && result.good() )
   {
     DCMFG_DEBUG("Writing shared group: " << DcmFGTypes::FGType2OFString((*it).second->getType()));
     result = (*it).second->write(*sharedFGItem);
@@ -623,10 +644,12 @@ OFBool FGInterface::check()
     // Every frame requires the FrameContent functional group, check "en passant"
     OFBool foundFrameContent = OFFalse;
     OFMap<Uint32, FunctionalGroups*>::iterator frameFG = m_perFrame.begin();
-    while (frameFG != m_perFrame.end())
+    OFMap<Uint32, FunctionalGroups*>::iterator end = m_perFrame.end();
+    while (frameFG != end)
     {
       FunctionalGroups::iterator group = (*frameFG).second->begin();
-      while (group !=  (*frameFG).second->end())
+      FunctionalGroups::iterator groupEnd = (*frameFG).second->end();
+      while (group != groupEnd)
       {
         // Check that per-frame group is not shared group at the same time
         DcmFGTypes::E_FGType groupType = group->second->getType();
@@ -660,7 +683,8 @@ OFBool FGInterface::check()
 
   // Check whether shared groups contain FGs that are only permitted per-frame
   FunctionalGroups::iterator it = m_shared.begin();
-  while (it != m_shared.begin())
+  FunctionalGroups::iterator end = m_shared.end();
+  while (it != end)
   {
     if ( (*it).second->getSharedType() == DcmFGTypes::EFGS_ONLYPERFRAME )
     {
diff --git a/dcmfg/libsrc/fgparametricmapframetype.cc b/dcmfg/libsrc/fgparametricmapframetype.cc
new file mode 100644
index 0000000..b60a57e
--- /dev/null
+++ b/dcmfg/libsrc/fgparametricmapframetype.cc
@@ -0,0 +1,145 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmfg
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Parametric Map Frame Type
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmfg/fgparametricmapframetype.h"
+
+FGParametricMapFrameType::FGParametricMapFrameType()
+: FGBase(DcmFGTypes::EFG_PARAMETRICMAPFRAMETYPE)
+, m_FrameType(DCM_FrameType)
+{
+
+}
+
+FGParametricMapFrameType::~FGParametricMapFrameType()
+{
+
+}
+
+void FGParametricMapFrameType::clearData()
+{
+  m_FrameType.clear();
+}
+
+FGBase* FGParametricMapFrameType::clone() const
+{
+  if(FGParametricMapFrameType* copy = new FGParametricMapFrameType)
+  {
+    copy->m_FrameType = m_FrameType;
+    return copy;
+  }
+  return OFnullptr;
+}
+
+OFCondition FGParametricMapFrameType::read(DcmItem& item)
+{
+  clearData();
+
+  DcmItem* seqItem;
+  OFCondition result;
+
+  seqItem = OFnullptr;
+  result = getItemFromFGSequence(item, DCM_ParametricMapFrameTypeSequence, 0, seqItem);
+  if(result.bad())
+    return result;
+  DcmIODUtil::getAndCheckElementFromDataset(*seqItem, m_FrameType, "4", "1", "Parametric Map Frame Type");
+
+  return EC_Normal;
+}
+
+
+OFCondition FGParametricMapFrameType::write(DcmItem& item)
+{
+  OFCondition result = check();
+  if (result.good())
+  {
+    DcmItem* seqItem;
+    seqItem = OFnullptr;
+    result = createNewFGSequence(item, DCM_ParametricMapFrameTypeSequence, 0, seqItem);
+    if(result.good())
+    {
+      DcmIODUtil::copyElementToDataset(result, *seqItem, m_FrameType, "4", "1", "Parametric Map Frame Type");
+    }
+  }
+  return result;
+}
+
+
+int FGParametricMapFrameType::compare(const FGBase& rhs) const
+{
+  int result = FGBase::compare(rhs);
+  if(result == 0)
+  {
+    const FGParametricMapFrameType* myRhs = OFstatic_cast(const FGParametricMapFrameType*, &rhs);
+
+    // Compare all elements
+    result = m_FrameType.compare(myRhs->m_FrameType);
+  }
+
+  return result;
+}
+
+
+OFCondition FGParametricMapFrameType::check() const
+{
+  DcmCodeString myFrameType = m_FrameType;
+  OFCondition result = myFrameType.checkValue("4");
+  if (result.good())
+  {
+    OFString val;
+    myFrameType.getOFString(val, 0);
+    if (val == "DERIVED")
+    {
+      val.clear();
+      myFrameType.getOFString(val, 1);
+      if (val == "PRIMARY")
+      {
+        val.clear();
+        myFrameType.getOFString(val, 1);
+        return EC_Normal;
+      }
+      else
+        DCMFG_ERROR("Frame Type' 2nd value must be \"PRIMARY\" but is \"" << val << "\"");
+    }
+    else
+      DCMFG_ERROR("Frame Type 1st value must be \"DERIVED\" but is \"" << val << "\"");
+  }
+  return FG_EC_InvalidData;
+}
+
+
+OFCondition FGParametricMapFrameType::getFrameType(OFString &value,
+                                                   const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromElement(m_FrameType, value, pos);
+}
+
+
+OFCondition FGParametricMapFrameType::setFrameType(const OFString &value,
+                                                   const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "4") : EC_Normal;
+  if (result.good())
+    result = m_FrameType.putString(value.c_str());
+  return result;
+}
diff --git a/dcmfg/libsrc/fgpixmsr.cc b/dcmfg/libsrc/fgpixmsr.cc
index 9fa1eec..24bb4dd 100644
--- a/dcmfg/libsrc/fgpixmsr.cc
+++ b/dcmfg/libsrc/fgpixmsr.cc
@@ -64,7 +64,7 @@ void FGPixelMeasures::clearData()
 
 OFCondition FGPixelMeasures::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
diff --git a/dcmfg/libsrc/fgplanor.cc b/dcmfg/libsrc/fgplanor.cc
index b46599d..49265b5 100644
--- a/dcmfg/libsrc/fgplanor.cc
+++ b/dcmfg/libsrc/fgplanor.cc
@@ -42,7 +42,7 @@ void FGPlaneOrientationPatient::clearData()
 
 OFCondition FGPlaneOrientationPatient::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
diff --git a/dcmfg/libsrc/fgplanorvol.cc b/dcmfg/libsrc/fgplanorvol.cc
index d5c038f..eccea15 100644
--- a/dcmfg/libsrc/fgplanorvol.cc
+++ b/dcmfg/libsrc/fgplanorvol.cc
@@ -60,7 +60,7 @@ void FGPlaneOrientationVolume::clearData()
 
 OFCondition FGPlaneOrientationVolume::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
diff --git a/dcmfg/libsrc/fgplanpo.cc b/dcmfg/libsrc/fgplanpo.cc
index 6fce31f..44fe208 100644
--- a/dcmfg/libsrc/fgplanpo.cc
+++ b/dcmfg/libsrc/fgplanpo.cc
@@ -71,7 +71,7 @@ void FGPlanePosPatient::clearData()
 
 OFCondition FGPlanePosPatient::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
diff --git a/dcmfg/libsrc/fgplanposvol.cc b/dcmfg/libsrc/fgplanposvol.cc
index 00eaf46..4a88836 100644
--- a/dcmfg/libsrc/fgplanposvol.cc
+++ b/dcmfg/libsrc/fgplanposvol.cc
@@ -58,7 +58,7 @@ void FGPlanePositionVolume::clearData()
 
 OFCondition FGPlanePositionVolume::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
diff --git a/dcmfg/libsrc/fgrealworldvaluemapping.cc b/dcmfg/libsrc/fgrealworldvaluemapping.cc
index a2e595a..08ba72e 100644
--- a/dcmfg/libsrc/fgrealworldvaluemapping.cc
+++ b/dcmfg/libsrc/fgrealworldvaluemapping.cc
@@ -64,7 +64,7 @@ void FGRealWorldValueMapping::clearData()
 
 OFCondition FGRealWorldValueMapping::check() const
 {
-  // TODO
+  // More checks checks for 1C conditions could be added
   return EC_Normal;
 }
 
@@ -122,7 +122,8 @@ OFVector< FGRealWorldValueMapping::RWVMItem* >& FGRealWorldValueMapping::getReal
 
 FGRealWorldValueMapping::RWVMItem::RWVMItem(IODComponent* parent)
 : IODComponent(parent),
-  m_MeasurementUnitsCode()
+  m_MeasurementUnitsCode(),
+  m_QuantityDefinitionSequence()
 {
   resetRules();
 }
@@ -132,33 +133,43 @@ FGRealWorldValueMapping::RWVMItem::RWVMItem(OFshared_ptr< DcmItem > item,
                                             OFshared_ptr< IODRules > rules,
                                             IODComponent* parent)
 : IODComponent(item, rules, parent),
-  m_MeasurementUnitsCode()
+  m_MeasurementUnitsCode(),
+  m_QuantityDefinitionSequence()
 {
   resetRules();
 }
 
 
-FGRealWorldValueMapping::RWVMItem* FGRealWorldValueMapping::RWVMItem::clone()
+FGRealWorldValueMapping::RWVMItem::RWVMItem(const FGRealWorldValueMapping::RWVMItem& rhs)
+: IODComponent(rhs)
 {
-  FGRealWorldValueMapping::RWVMItem* mapping = new FGRealWorldValueMapping::RWVMItem(*this);
-  if (mapping)
+  m_MeasurementUnitsCode = rhs.m_MeasurementUnitsCode;
+  OFVector<ContentItemMacro*>::const_iterator it = rhs.m_QuantityDefinitionSequence.begin();
+  while (it != rhs.m_QuantityDefinitionSequence.end())
   {
-    // We do not have a copy constructor or clone function on IODComponent
-    OFString code, meaning, scheme, version;
-    m_MeasurementUnitsCode.getCodeValue(code);
-    m_MeasurementUnitsCode.getCodeMeaning(meaning);
-    m_MeasurementUnitsCode.getCodingSchemeDesignator(scheme);
-    m_MeasurementUnitsCode.getCodingSchemeVersion(version);
-    mapping->m_MeasurementUnitsCode.set(code, scheme, meaning, version, OFFalse /* do not check */);
+    ContentItemMacro* macro = new ContentItemMacro(**it);
+    if (macro == NULL)
+    {
+      DCMFG_ERROR("Out of memory in copy constructor of FGRealWorldValueMapping::RWVMItem::RWVMItem");
+      return;
+    }
+    m_QuantityDefinitionSequence.push_back(macro);
+    it++;
   }
-  return mapping;
+}
+
+
+
+FGRealWorldValueMapping::RWVMItem* FGRealWorldValueMapping::RWVMItem::clone()
+{
+  return new FGRealWorldValueMapping::RWVMItem(*this);
 }
 
 
 
 FGRealWorldValueMapping::RWVMItem::~RWVMItem()
 {
-  // nothing to do
+  DcmIODUtil::freeContainer(m_QuantityDefinitionSequence);
 }
 
 
@@ -173,24 +184,29 @@ int FGRealWorldValueMapping::RWVMItem::compare(const IODComponent& rhs) const
   return IODComponent::compare(rhs);
 }
 
+
 void FGRealWorldValueMapping::RWVMItem::resetRules()
 {
   // parameters are tag, VM, type. Overwrite old rules if any.
-  m_Rules->addRule(new IODRule(DCM_RealWorldValueFirstValueMapped, "1","1",getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_RealWorldValueLastValueMapped, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_RealWorldValueFirstValueMapped, "1","1C",getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_RealWorldValueLastValueMapped, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DoubleFloatRealWorldValueFirstValueMapped, "1","1C",getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DoubleFloatRealWorldValueLastValueMapped, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_RealWorldValueIntercept, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_RealWorldValueSlope, "1","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_RealWorldValueLUTData, "1-n","1C", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_LUTExplanation, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_LUTLabel, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_MeasurementUnitsCodeSequence, "1","1", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
-  //m_Rules->addRule(new IODRule(DCM_QuantityDefinitionSequence, "1","3", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_QuantityDefinitionSequence, "1-n","3", getName(), DcmIODTypes::IE_INSTANCE), OFTrue);
 }
 
+
 OFCondition FGRealWorldValueMapping::RWVMItem::read(DcmItem& source,
                                                     const OFBool clearOldData)
 {
   DcmIODUtil::readSingleItem(source, DCM_MeasurementUnitsCodeSequence, m_MeasurementUnitsCode, "1", m_ModuleName);
+  DcmIODUtil::readSubSequence(source, DCM_QuantityDefinitionSequence, m_QuantityDefinitionSequence, m_Rules->getByTag(DCM_QuantityDefinitionSequence));
   return IODComponent::read(source, clearOldData);
 }
 
@@ -199,6 +215,7 @@ OFCondition FGRealWorldValueMapping::RWVMItem::write(DcmItem& destination)
 {
   OFCondition result;
   DcmIODUtil::writeSingleItem(result, DCM_MeasurementUnitsCodeSequence, m_MeasurementUnitsCode, *m_Item, "1", m_ModuleName);
+  DcmIODUtil::writeSubSequence(result, DCM_QuantityDefinitionSequence, m_QuantityDefinitionSequence, *m_Item, m_Rules->getByTag(DCM_QuantityDefinitionSequence));
   if (result.good()) result = IODComponent::write(destination);
   return result;
 }
@@ -212,12 +229,26 @@ OFCondition FGRealWorldValueMapping::RWVMItem::getRealWorldValueFirstValueMapped
 
 
 OFCondition FGRealWorldValueMapping::RWVMItem::getRealWorldValueLastValueMapped(Sint32& value,
-                                                                                 const unsigned long pos) const
+                                                                                const unsigned long pos) const
 {
   return getUSorSS(*m_Item, DCM_RealWorldValueLastValueMapped, pos, value);
 }
 
 
+OFCondition FGRealWorldValueMapping::RWVMItem::getDoubleFloatRealWorldValueFirstValueMapped(Float64& value,
+                                                                                            const unsigned long pos) const
+{
+  return (*m_Item).findAndGetFloat64(DCM_DoubleFloatRealWorldValueFirstValueMapped, value, pos);
+}
+
+
+OFCondition FGRealWorldValueMapping::RWVMItem::getDoubleFloatRealWorldValueLastValueMapped(Float64& value,
+                                                                                           const unsigned long pos) const
+{
+  return (*m_Item).findAndGetFloat64(DCM_DoubleFloatRealWorldValueFirstValueMapped, value, pos);
+}
+
+
 OFCondition FGRealWorldValueMapping::RWVMItem::getRealWorldValueLUTData(OFVector< Float64 >& values) const
 {
   DcmElement* elem = NULL;
@@ -263,7 +294,13 @@ CodeSequenceMacro& FGRealWorldValueMapping::RWVMItem::getMeasurementUnitsCode()
 }
 
 
-OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueFirstValueMappedUnsigned(const Uint16& value,
+OFVector<ContentItemMacro*> & FGRealWorldValueMapping::RWVMItem::getEntireQuantityDefinitionSequence()
+{
+  return m_QuantityDefinitionSequence;
+}
+
+
+OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueFirstValueMappedUnsigned(const Uint16 value,
                                                                                          const OFBool checkValue)
 {
   (void)checkValue;
@@ -299,7 +336,7 @@ OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedS
 }
 
 
-OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedUnsigned(const Uint16& value,
+OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedUnsigned(const Uint16 value,
                                                                                         const OFBool checkValue)
 {
   (void)checkValue;
@@ -311,7 +348,23 @@ OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueLastValueMappedU
 }
 
 
-OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueIntercept(const Float64& value,
+OFCondition FGRealWorldValueMapping::RWVMItem::setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value,
+                                                                                            const OFBool checkValue)
+{
+  (void)checkValue;
+  return (*m_Item).putAndInsertFloat64(DCM_DoubleFloatRealWorldValueFirstValueMapped, value);
+}
+
+
+OFCondition FGRealWorldValueMapping::RWVMItem::setDoubleFloatRealWorldValueLastValueMapped(const Float64 value,
+                                                                                           const OFBool checkValue)
+{
+  (void)checkValue;
+  return (*m_Item).putAndInsertFloat64(DCM_DoubleFloatRealWorldValueLastValueMapped, value);
+}
+
+
+OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueIntercept(const Float64 value,
                                                                           const OFBool checkValue)
 {
   (void)checkValue;
@@ -319,7 +372,7 @@ OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueIntercept(const
 }
 
 
-OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueSlope(const Float64& value,
+OFCondition FGRealWorldValueMapping::RWVMItem::setRealWorldValueSlope(const Float64 value,
                                                                       const OFBool checkValue)
 {
   (void)checkValue;
diff --git a/dcmfg/libsrc/fgseg.cc b/dcmfg/libsrc/fgseg.cc
index 4e28d64..72cfa40 100644
--- a/dcmfg/libsrc/fgseg.cc
+++ b/dcmfg/libsrc/fgseg.cc
@@ -57,7 +57,7 @@ void FGSegmentation::clearData()
 
 OFCondition FGSegmentation::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
diff --git a/dcmfg/libsrc/fgtypes.cc b/dcmfg/libsrc/fgtypes.cc
index eecd622..fc5ca7c 100644
--- a/dcmfg/libsrc/fgtypes.cc
+++ b/dcmfg/libsrc/fgtypes.cc
@@ -93,6 +93,8 @@ OFString DcmFGTypes::FGType2OFString(const DcmFGTypes::E_FGType fgType)
     case EFG_IRRADIATIONEVENTIDENT: return "Irradiation Event Identification Functional Group Macro"; break;
     /// Radiopharmaceutical Usage
     case EFG_RADIOPHARAMAUSAGE: return "Radiopharmaceutical Usage Functional Group Macro"; break;
+    /// Parametric Map Frame Type
+    case EFG_PARAMETRICMAPFRAMETYPE: return "Parametric Map Frame Type Functional Group Macro"; break;
     /// Patient Physiological State
     case EFG_PATIENTPHYSIOSTATE: return "Patient Physiological State Functional Group Macro"; break;
     /// Plane Position (Volume)
@@ -101,6 +103,8 @@ OFString DcmFGTypes::FGType2OFString(const DcmFGTypes::E_FGType fgType)
     case EFG_PLANEORIENTVOLUME: return "Plane Orientation (Volume) Functional Group Macro"; break;
     /// Temporal Position Macro
     case EFG_TEMPORALPOSITION: return "Temporal Position Functional Group Macro"; break;
+    /// Identity Pixel Value Transformation
+    case EFG_IDENTITYPIXELVALUETRANSFORMATION: return "Identity Pixel Value Transformation"; break;
     /// Image Data Type
     case EFG_IMAGEDATATYPE: return "Image Data Type Functional Group Macro"; break;
     /// Unassigned Shared Converted Attributes Macro
@@ -116,7 +120,7 @@ OFString DcmFGTypes::FGType2OFString(const DcmFGTypes::E_FGType fgType)
 
 DcmFGTypes::E_FGType DcmFGTypes::tagKey2FGType(const DcmTagKey& key)
 {
-  // TODO: Use neat value to enum trick from Alexandrescu in order to have switch statement instead?
+  // Note: Use neat value to enum trick from Alexandrescu in order to have switch statement instead?
   if (key == DCM_PixelMeasuresSequence)
     return EFG_PIXELMEASURES;
   else if (key == DCM_FrameContentSequence)
@@ -155,12 +159,16 @@ DcmFGTypes::E_FGType DcmFGTypes::tagKey2FGType(const DcmTagKey& key)
     return EFG_RADIOPHARAMAUSAGE;
   else if (key == DCM_PatientPhysiologicalStateSequence)
     return EFG_PATIENTPHYSIOSTATE;
+  else if (key == DCM_ParametricMapFrameTypeSequence)
+    return EFG_PARAMETRICMAPFRAMETYPE;
   else if (key == DCM_PlanePositionVolumeSequence)
     return EFG_PLANEPOSITIONVOLUME;
   else if (key == DCM_PlaneOrientationVolumeSequence)
     return EFG_PLANEORIENTVOLUME;
   else if (key == DCM_TemporalPositionSequence)
     return EFG_TEMPORALPOSITION;
+  else if (key == DCM_PixelValueTransformationSequence)
+    return EFG_IDENTITYPIXELVALUETRANSFORMATION;
   else if (key == DCM_ImageDataTypeSequence)
     return EFG_IMAGEDATATYPE;
   else if (key == DCM_UnassignedSharedConvertedAttributesSequence)
diff --git a/dcmfg/libsrc/fgusimagedescription.cc b/dcmfg/libsrc/fgusimagedescription.cc
index e5ffa4e..439e339 100644
--- a/dcmfg/libsrc/fgusimagedescription.cc
+++ b/dcmfg/libsrc/fgusimagedescription.cc
@@ -64,7 +64,7 @@ void FGUSImageDescription::clearData()
 
 OFCondition FGUSImageDescription::check() const
 {
-  // TODO
+  // Checks in read() and write() are sufficient for now
   return EC_Normal;
 }
 
diff --git a/dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h b/dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h
index ba3e71e..cf4a611 100644
--- a/dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h
+++ b/dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h
@@ -348,7 +348,7 @@ class DiMonoOutputPixelTemplate
                         if (dlut != NULL)                                               // perform display transformation
                         {
                             DCMIMGLE_TRACE("monochrome rendering: VOI LUT #1 - UNTESTED");
-                            if (low > high)                                             // invers
+                            if (low > high)                                             // inverse
                                 value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, plut->getAbsMaxRange() - plut->getValue(value2) - 1)));
                             else                                                        // normal
                                 value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, plut->getValue(value2))));
@@ -361,7 +361,7 @@ class DiMonoOutputPixelTemplate
                         if (dlut != NULL)                                               // perform display transformation
                         {
                             DCMIMGLE_TRACE("monochrome rendering: VOI LUT #3 - UNTESTED");
-                            if (low > high)                                             // invers
+                            if (low > high)                                             // inverse
                                 value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, vlut->getAbsMaxRange() - minvalue - 1)));
                             else                                                        // normal
                                 value = OFstatic_cast(T3, dlut->getValue(OFstatic_cast(Uint16, minvalue)));
diff --git a/dcmimgle/libsrc/dimoimg.cc b/dcmimgle/libsrc/dimoimg.cc
index bfb8e1f..0db68be 100644
--- a/dcmimgle/libsrc/dimoimg.cc
+++ b/dcmimgle/libsrc/dimoimg.cc
@@ -1901,7 +1901,7 @@ DiImage *DiMonoImage::createOutputImage(const unsigned long frame,
     if ((OutputData != NULL) && (OutputData->getData() != NULL))
     {
 
-        DiImage *image = new DiMono2Image(this, OutputData, frame, bits, OutputData->getItemSize() * 8);
+        DiImage *image = new DiMono2Image(this, OutputData, frame, bits, OFstatic_cast(int, OutputData->getItemSize() * 8));
         if (image != NULL)
             OutputData->removeDataReference();              // output data is now handled by new mono image
         return image;
diff --git a/dcmiod/include/dcmtk/dcmiod/iodcommn.h b/dcmiod/include/dcmtk/dcmiod/iodcommn.h
index d4cd872..19d5f37 100644
--- a/dcmiod/include/dcmtk/dcmiod/iodcommn.h
+++ b/dcmiod/include/dcmtk/dcmiod/iodcommn.h
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2015, Open Connections GmbH
+ *  Copyright (C) 2015-2016, Open Connections GmbH
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation are maintained by
@@ -48,6 +48,11 @@ public:
    */
   DcmIODCommon();
 
+  /** Copy Constructor
+   *  @param  rhs The object to copy from
+   */
+  DcmIODCommon(const DcmIODCommon& rhs);
+
   /** Get rules handled by this IOD
    *  @return The rules
    */
@@ -177,6 +182,46 @@ public:
                              OFBool readFoR = OFFalse,
                              OFBool readSeries = OFFalse);
 
+  /** Import common module attributes from DICOM file but only read Patient, Study,
+   *  Series and/or Frame of Reference level portions. The current content
+   *  is not deleted before reading. If the log stream is set and valid the
+   *  reason for any error might be obtained from the error/warning output.
+   *  This function is deprecated and might be removed in later versions of
+   *  DCMTK. Use the import() call offering the same parameters and
+   *  functionality, instead.
+   *  @param  filename The filename to read from.
+   *  @param  usePatient If OFTrue, Patient level information is imported
+   *  @param  useStudy If OFTrue, Study level information is imported
+   *  @param  useSeries If OFTrue, Series level information is imported
+   *  @param  useFoR If OFTrue, Frame of Reference information is imported
+   *  @return EC_Normal if reading was successful (i.e.\ if any information could
+   *          be read), otherwise an error is returned
+   */
+  OFCondition importPatientStudyFoR(const OFString& filename,
+                                    const OFBool usePatient,
+                                    const OFBool useStudy,
+                                    const OFBool useSeries,
+                                    const OFBool useFoR = OFFalse);
+
+  /** Import common module attributes from DICOM file but only read Patient, Study,
+   *  Series and/or Frame of Reference level portions. The current content
+   *  is not deleted before reading. If the log stream is set and valid the
+   *  reason for any error might be obtained from the error/warning output.
+   *  @param  filename The filename to read from
+   *  @param  usePatient If OFTrue, Patient level information is imported
+   *  @param  useStudy If OFTrue, Study level information is imported
+   *  @param  useSeries If OFTrue, Series level information is imported
+   *  @param  useFoR If OFTrue, Frame of Reference information is imported
+   *  @return EC_Normal if reading was successful (i.e.\ if any information could
+   *          be read), otherwise an error is returned
+   */
+  virtual OFCondition import(const OFString& filename,
+                             const OFBool usePatient,
+                             const OFBool useStudy,
+                             const OFBool useSeries,
+                             const OFBool useFoR = OFFalse);
+
+
   /** Write the attributes managed by this class to DICOM dataset.
    *  @param dataset  Reference to DICOM dataset to which the current document
    *                  should be  written. The dataset is not cleared
@@ -188,6 +233,10 @@ public:
 
 private:
 
+  /** Copy assignment disabled
+   */
+  DcmIODCommon& operator=(const DcmIODCommon&);
+
   /// The data hold by this class (shared with modules below)
   OFshared_ptr<DcmItem> m_Item;
 
diff --git a/dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h b/dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h
new file mode 100644
index 0000000..8646e96
--- /dev/null
+++ b/dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h
@@ -0,0 +1,478 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Content Item Macro
+ *
+ */
+
+#ifndef IODCONTENTITEMMACRO_H
+#define IODCONTENTITEMMACRO_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/ofstd/ofmem.h"
+#include "dcmtk/dcmiod/iodrules.h"
+#include "dcmtk/dcmiod/modbase.h"
+#include "dcmtk/dcmiod/iodmacro.h"
+#include "dcmtk/dcmiod/iodtypes.h"
+
+/** Class representing the Content Item Macro:
+ *
+ *  ValueType: (CS, 1, 1)
+ *  ConceptNameCodeSequence: (SQ, 1, 1)
+ *  DateTime: (DT, 1, 1C)
+ *  Date: (DA, 1, 1C)
+ *  Time: (TM, 1, 1C)
+ *  PersonName: (PN, 1, 1C)
+ *  UID: (UI, 1, 1C)
+ *  TextValue: (UT, 1, 1C)
+ *  ConceptCodeSequence: (SQ, 1, 1C)
+ *  NumericValue: (DS, 1-n, 1C)
+ *  FloatingPointValue: (FD, 1-n, 1C)
+ *  RationalNumeratorValue: (SL, 1-n, 1C)
+ *  RationalDenominatorValue: (UL, 1-n, 1C)
+ *  MeasurementUnitsCodeSequence: (SQ, 1, 1C)
+ *  ReferencedSOPSequence: (SQ, 1, 1C)
+ */
+class DCMTK_DCMIOD_EXPORT ContentItemMacro : public IODComponent
+{
+public:
+
+  enum ValueType
+  {
+     // Value is empty and not provided
+     VT_EMPTY,
+     // Value is provided but not known to the implementation
+     VT_UNKNOWN,
+     VT_DATE,
+     VT_TIME,
+     VT_DATETIME,
+     VT_PNAME,
+     VT_UIDREF,
+     VT_TEXT,
+     VT_CODE,
+     VT_NUMERIC,
+     VT_COMPOSITE,
+     VT_IMAGE
+   };
+
+  /** Class representing an item within the Content Item Macro's Referenced
+   *  SOP Sequence
+   */
+  class DCMTK_DCMIOD_EXPORT ReferencedSOPSequenceItem : public IODComponent
+  {
+  public:
+
+    /** Constructor
+     *  @param  item The item to be used for data storage. If NULL, the
+     *          class creates an empty data container.
+     *  @param  rules The rule set for this class. If NULL, the class creates
+     *          one from scratch and adds its values.
+     *  @param  parent The parent of the IOD component (NULL if none or unknown)
+     */
+    ReferencedSOPSequenceItem(OFshared_ptr<DcmItem> item,
+                              OFshared_ptr<IODRules> rules,
+                              IODComponent* parent = NULL);
+
+    /** Constructor
+     *  @param  parent The parent of the IOD component (NULL if none or unknown)
+     */
+    ReferencedSOPSequenceItem(IODComponent* parent = NULL);
+
+    /** Copy Constructor, performs deep copy
+     *  @param  rhs The parent of the IOD component (NULL if none or unknown)
+     */
+    ReferencedSOPSequenceItem(const ReferencedSOPSequenceItem& rhs);
+
+    /** Virtual Destructor
+     */
+    virtual ~ReferencedSOPSequenceItem();
+
+    /** Read attributes from given item into this class
+     *  @param source  The source to read from
+     *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+     *         old data is overwritten (or amended)
+     *  @result EC_Normal if reading was successful, error otherwise
+     */
+    virtual OFCondition read(DcmItem& source,
+                            const OFBool clearOldData = OFTrue);
+
+    /** Write attributes from this class into given item
+     *  @param  destination The item to write to
+     *  @result EC_Normal if writing was successful, error otherwise
+     */
+    virtual OFCondition write(DcmItem& destination);
+
+    /** Resets rules to their original values
+     */
+    virtual void resetRules();
+
+    /** Get name of macro
+     *  @return Name of the component ("ReferencedSOPSequenceItem")
+     */
+    virtual OFString getName() const;
+
+    /** Get SOPInstanceReferenceMacro
+     *  @return a reference to the included SOPInstanceReferenceMacro
+     */
+    virtual SOPInstanceReferenceMacro& getSOPInstanceReferenceMacro();
+
+    /** Get ReferencedFrameNumber
+     *  @param  value Reference to variable in which the value should be stored
+     *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+     *  @return EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getReferencedFrameNumber(OFString &value,
+                                                 const signed long pos = 0) const;
+
+    /** Get ReferencedSegmentNumber
+     *  @param  value Reference to variable in which the value should be stored
+     *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+     *  @return EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getReferencedSegmentNumber(Uint16 &value,
+                                                   const signed long pos = 0) const;
+
+    /** Set ReferencedFrameNumber
+     *  @param  value Value to be set (single value only) or "" for no value
+     *  @param  checkValue Check 'value' for conformance with VR (IS) and VM (1-n) if enabled
+     *  @return EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setReferencedFrameNumber(const OFString &value,
+                                                 const OFBool checkValue = OFTrue);
+
+    /** Set ReferencedSegmentNumber
+     *  @param  value Value to be set (single value only) or "" for no value
+     *  @param  checkValue Check 'value' for conformance with VR (US) and VM (1-n) if enabled
+     *  @return EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setReferencedSegmentNumber(const Uint16 value,
+                                                   const OFBool checkValue = OFTrue);
+
+  protected:
+
+    /// The name of this item ("ReferencedSOPSequenceItem")
+    static const OFString m_ComponentName;
+
+    /// SOP Instance Reference Macro
+    SOPInstanceReferenceMacro m_SOPInstanceReferenceMacro;
+  };
+
+  /** Constructor
+   *  @param  item The item to be used for data storage. If NULL, the
+   *          class creates an empty data container.
+   *  @param  rules The rule set for this class. If NULL, the class creates
+   *          one from scratch and adds its values.
+   */
+  ContentItemMacro(OFshared_ptr<DcmItem> item,
+                   OFshared_ptr<IODRules> rules);
+
+  /** Constructor
+   */
+  ContentItemMacro();
+
+  /** Destructor
+   */
+  virtual ~ContentItemMacro();
+
+  ContentItemMacro(const ContentItemMacro& rhs);
+
+  /** Resets rules to their original values
+   */
+  virtual void resetRules();
+
+  /** Get name of module ("ContentItemMacro")
+   *  @return Name of the module ("ContentItemMacro")
+   */
+  virtual OFString getName() const;
+
+  /** Read attributes from given item into this class
+   *  @param source  The source to read from
+   *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+   *         old data is overwritten (or amended)
+   *  @result EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& source,
+                           const OFBool clearOldData = OFTrue);
+
+  /** Write attributes from this class into given item
+   *  @param  destination The item to write to
+   *  @result EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& destination);
+
+  /** Get ValueType
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getValueType(OFString &value,
+                                   const signed long pos = 0) const;
+
+  /** Get ValueType
+   *  @param  value Reference to variable in which the value should be stored
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getValueType(ValueType &value) const;
+
+  /** Get reference to the ConceptNameCodeSequence
+   *  @return a reference to the ConceptNameCodeSequence
+   */
+  virtual CodeSequenceMacro* getConceptNameCodeSequence();
+
+  /** Get a reference to the entire ConceptNameCodeSequence, including items
+   *  exceeding the value multiplicity restriction of "1"
+   *  @return a reference to the entire ConceptNameCodeSequence
+   */
+  virtual OFVector<CodeSequenceMacro*>& getEntireConceptNameCodeSequence();
+
+  /** Get DateTime
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getDateTime(OFString &value,
+                                  const signed long pos = 0) const;
+
+  /** Get Date
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getDate(OFString &value,
+                              const signed long pos = 0) const;
+
+  /** Get Time
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getTime(OFString &value,
+                              const signed long pos = 0) const;
+
+  /** Get PersonName
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getPersonName(OFString &value,
+                                    const signed long pos = 0) const;
+
+  /** Get UID
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getUID(OFString &value,
+                             const signed long pos = 0) const;
+
+  /** Get TextValue
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getTextValue(OFString &value,
+                                   const signed long pos = 0) const;
+
+  /** Get reference to the ConceptCodeSequence
+   *  @return a reference to the ConceptCodeSequence
+   */
+  virtual CodeSequenceMacro* getConceptCodeSequence();
+
+  /** Get a reference to the entire ConceptCodeSequence, including items
+   *  exceeding the value multiplicity restriction of "1"
+   *  @return a reference to the entire ConceptCodeSequence
+   */
+  virtual OFVector<CodeSequenceMacro*>& getEntireConceptCodeSequence();
+
+  /** Get NumericValue
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getNumericValue(OFString &value,
+                                      const signed long pos = 0) const;
+
+  /** Get FloatingPointValue
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getFloatingPointValue(Float64 &value,
+                                            const signed long pos = 0) const;
+
+  /** Get RationalNumeratorValue
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRationalNumeratorValue(Sint32 &value,
+                                                const signed long pos = 0) const;
+
+  /** Get RationalDenominatorValue
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRationalDenominatorValue(Uint32 &value,
+                                                  const signed long pos = 0) const;
+
+  /** Get reference to the MeasurementUnitsCodeSequence
+   *  @return a reference to the MeasurementUnitsCodeSequence
+   */
+  virtual CodeSequenceMacro* getMeasurementUnitsCodeSequence();
+
+  /** Get a reference to the entire MeasurementUnitsCodeSequence, including items
+   *  exceeding the value multiplicity restriction of "1"
+   *  @return a reference to the entire MeasurementUnitsCodeSequence
+   */
+  virtual OFVector<CodeSequenceMacro*>& getEntireMeasurementUnitsCodeSequence();
+
+  /** Get reference to the ReferencedSOPSequence
+   *  @return a reference to the ReferencedSOPSequence
+   */
+  virtual ReferencedSOPSequenceItem* getReferencedSOPSequence();
+
+  /** Get a reference to the entire ReferencedSOPSequence, including items
+   *  exceeding the value multiplicity restriction of "1"
+   *  @return a reference to the entire ReferencedSOPSequence
+   */
+  virtual OFVector<ReferencedSOPSequenceItem*>& getEntireReferencedSOPSequence();
+
+  /** Set ValueType
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setValueType(const OFString &value,
+                                   const OFBool checkValue = OFTrue);
+
+  /** Set ValueType
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value'. Does nothing, here for consistency with
+   *          other set() functions.
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setValueType(const ValueType value,
+                                   const OFBool checkValue = OFTrue);
+
+  /** Set DateTime
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (DT) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setDateTime(const OFString &value,
+                                  const OFBool checkValue = OFTrue);
+
+  /** Set Date
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (DA) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setDate(const OFString &value,
+                              const OFBool checkValue = OFTrue);
+
+  /** Set Time
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (TM) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setTime(const OFString &value,
+                              const OFBool checkValue = OFTrue);
+
+  /** Set PersonName
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (PN) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setPersonName(const OFString &value,
+                                    const OFBool checkValue = OFTrue);
+
+  /** Set UID
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (UI) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setUID(const OFString &value,
+                             const OFBool checkValue = OFTrue);
+
+  /** Set TextValue
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (UT) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setTextValue(const OFString &value,
+                                   const OFBool checkValue = OFTrue);
+
+  /** Set NumericValue
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (DS) and VM (1-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setNumericValue(const OFString &value,
+                                      const OFBool checkValue = OFTrue);
+
+  /** Set FloatingPointValue
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  pos Index of the value to be set (starting from 0)
+   *  @param  checkValue Check 'value' for conformance with VR (FD) and VM (1-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setFloatingPointValue(const Float64 value,
+                                            const unsigned long pos = 0,
+                                            const OFBool checkValue = OFTrue);
+
+  /** Set RationalNumeratorValue
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  pos Index of the value to be set (starting from 0)
+   *  @param  checkValue Check 'value' for conformance with VR (SL) and VM (1-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRationalNumeratorValue(const Sint32 value,
+                                                const unsigned long pos = 0,
+                                                const OFBool checkValue = OFTrue);
+
+  /** Set RationalDenominatorValue
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  pos Index of the value to be set (starting from 0)
+   *  @param  checkValue Check 'value' for conformance with VR (UL) and VM (1-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRationalDenominatorValue(const Uint32 value,
+                                                  const unsigned long pos = 0,
+                                                  const OFBool checkValue = OFTrue);
+
+  virtual OFString toString();
+
+protected:
+
+  /// The name of this module ("ContentItemMacro")
+  static const OFString m_ModuleName;
+
+  /// ConceptNameCodeSequence
+  OFVector<CodeSequenceMacro*> m_ConceptNameCodeSequence;
+
+  /// ConceptCodeSequence
+  OFVector<CodeSequenceMacro*> m_ConceptCodeSequence;
+
+  /// MeasurementUnitsCodeSequence
+  OFVector<CodeSequenceMacro*> m_MeasurementUnitsCodeSequence;
+
+  /// ReferencedSOPSequence
+  OFVector<ReferencedSOPSequenceItem*> m_ReferencedSOPSequence;
+};
+
+#endif // IODCONTENTITEMMACRO_H
diff --git a/dcmiod/include/dcmtk/dcmiod/iodimage.h b/dcmiod/include/dcmtk/dcmiod/iodimage.h
index 6b0ac4e..7760c4b 100644
--- a/dcmiod/include/dcmtk/dcmiod/iodimage.h
+++ b/dcmiod/include/dcmtk/dcmiod/iodimage.h
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2015, Open Connections GmbH
+ *  Copyright (C) 2015-2016, Open Connections GmbH
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation are maintained by
@@ -23,44 +23,117 @@
 #define IODIMAGE_H
 
 #include "dcmtk/config/osconfig.h"
+#include "dcmtk/ofstd/ofutil.h"
+#include "dcmtk/ofstd/ofvriant.h"
 #include "dcmtk/dcmiod/iodcommn.h"
 #include "dcmtk/dcmiod/modgeneralimage.h"
-#include "dcmtk/dcmiod/modimagepixel.h"
+#include "dcmtk/dcmiod/modimagepixelvariant.h"
+
+class IODDoubleFloatingPointImagePixelModule;
+class IODFloatingPointImagePixelModule;
+template<typename>
+class IODImagePixelModule;
 
 /** Class for managing common image IOD attributes. At the moment support for
  *  the palette-related attributes and the smallest/largest image pixel value
  *  attributes is still missing. Also, pixel data must be handled separately.
+ *  However, pixel-data related attributes are provided by the Image Pixel
+ *  Module, the Floating Point Image Pixel Module or the Double Floating Point
+ *  Image Pixel Module, based on the provided template parameter.
  *  Modules supported on top of DcmIODCommon: General Image Module and
  *  Image Pixel Module.
  */
-class DCMTK_DCMIOD_EXPORT DcmIODImage :
-  public DcmIODCommon
+#ifdef DCMTK_USE_CXX11_STL
+template<typename T,typename... Types>
+struct DcmIODImageHasType
+: std::false_type {};
+
+template<typename T,typename... Types>
+struct DcmIODImageHasType<T,T,Types...>
+: std::true_type {};
+
+template<typename T,typename T0,typename... Types>
+struct DcmIODImageHasType<T,T0,Types...>
+: DcmIODImageHasType<T,Types...>::type {};
+
+template<typename... Types>
+#else
+template<OFVARIADIC_DECLARE_TEMPLATE_PARAMETER_PACK_WITH_DEFAULTS(T)>
+#endif
+class DcmIODImage : public DcmIODCommon
 {
 
 public:
 
-  /** Constructor
+  /** typedef for old compilers that do not define the type 'DcmIODImage' in
+   *  derived classes.
    */
-  DcmIODImage();
+  typedef DcmIODImage IODImage;
 
-  /** Get General Image Module
-   *  @return Reference to General Image Module
+  /** A good comment would be nice, but I have nothing in mind
    */
-  IODGeneralImageModule& getGeneralImage();
+#ifdef DCMTK_USE_CXX11_STL
+  using IODImagePixelModuleType = IODImagePixelVariant<Types...>;
+#else
+  typedef IODImagePixelVariant<OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)> IODImagePixelModuleType;
+#endif
 
-  /** Get Image Pixel Module
-   * @return Reference to Image Pixel Module
+  /** Constructor, creates new DcmIODImage instance with integer-based pixel data.
    */
-  IODImagePixelModule& getImagePixel();
+  DcmIODImage()
+  : DcmIODCommon()
+  , m_GeneralImage(getData(), getRules())
+  , m_ImagePixel()
+  {
+
+  }
+
+  /** Constructor, constructs new DcmIODImage instance with integer, float or
+   *  double based Image Pixel Module (i. e. Image Pixel Module, Floating Point
+   *  Image Pixel Module or the Double Floating Point Image Pixel Module), based
+   *  on the provided Image Pixel module type.
+   */
+  template<typename ImagePixel>
+  DcmIODImage(OFin_place_type_t(ImagePixel))
+  : DcmIODCommon()
+  , m_GeneralImage(getData(), getRules())
+  , m_ImagePixel(ImagePixel(getData(), getRules()))
+  {
+
+  }
 
   /** Virtual Destructor
    */
-  virtual ~DcmIODImage();
+  virtual ~DcmIODImage()
+  {
+
+  }
+
+  /** Get General Image Module
+   *  @return Reference to General Image Module
+   */
+  IODGeneralImageModule& getGeneralImage()
+  {
+    return m_GeneralImage;
+  }
+
+  /** Get Image Pixel Module (variant)
+   *  @return Reference to Image Pixel Module
+   */
+  IODImagePixelModuleType& getImagePixel()
+  {
+    return m_ImagePixel;
+  }
 
   /** Clear (removes) all attributes handled by the modules of this IOD.
    *  IOD Rules are not reset.
    */
-  virtual void clearData();
+  virtual void clearData()
+  {
+    DcmIODCommon::clearData();
+    m_GeneralImage.clearData();
+    m_ImagePixel.clearData();
+  }
 
   /** Read common image module attributes (all those handled by this class)
    *  from given item. Reads attributes from base class DcmIODCommon before.
@@ -71,25 +144,169 @@ public:
    *          should be read
    *  @return EC_Normal if successful, an error code otherwise
    */
-  virtual OFCondition read(DcmItem &dataset);
+  virtual OFCondition read(DcmItem &dataset)
+  {
+     // re-initialize object
+     clearData();
+
+     // read from base classes
+     DcmIODCommon::read(dataset);
+     m_GeneralImage.read(dataset, OFTrue /* clear old data */);
+
+     return readFloatingPointDoubleImagePixel<IODDoubleFloatingPointImagePixelModule>(dataset);
+  }
 
   /** Write current common image module's attributes to DICOM dataset. Also
    *  writes attributes of base class DcmIODCommon afterwards.
-   *  @param  dataset Reference to DICOM dataset to which the current document
-   *          should be written.  The dataset is not cleared before writing
+   *  @param  dataset Reference to DICOM dataset to which the current data
+   *          should be written. The dataset is not cleared before writing
    *          to it!
    *  @return EC_Normal if successful, an error code otherwise
    */
-  virtual OFCondition write(DcmItem &dataset);
+  virtual OFCondition write(DcmItem &dataset)
+  {
+    OFCondition result = EC_Normal;
+
+    // Write base class attributes to dataset
+    result = DcmIODCommon::write(dataset);
+
+    // Write extra modules to dataset
+    if (result.good())
+      result = m_GeneralImage.write(dataset);
+    if (result.good())
+      result = m_ImagePixel.write(dataset);
+
+    return result;
+  }
 
 private:
 
+  template<typename T>
+#ifdef DCMTK_USE_CXX11_STL
+  typename std::enable_if<DcmIODImageHasType<T,Types...>::value,OFCondition>::type
+#else
+  OFTypename OFenable_if
+  <
+    (OFvariadic_find_type<T,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value != -1),
+    OFCondition
+  >::type
+#endif
+  readFloatingPointDoubleImagePixel(DcmItem& dataset)
+  {
+    if (dataset.tagExists(DCM_DoubleFloatPixelData))
+      return OFget<T>(&(m_ImagePixel = T(getData(),getRules())))->read(dataset);
+    return readFloatingPointImagePixel<IODFloatingPointImagePixelModule>(dataset);
+  }
+
+  template<typename T>
+#ifdef DCMTK_USE_CXX11_STL
+  typename std::enable_if<!DcmIODImageHasType<T,Types...>::value,OFCondition>::type
+#else
+  OFTypename OFenable_if
+  <
+    (OFvariadic_find_type<T,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value == -1),
+    OFCondition
+  >::type
+#endif
+  readFloatingPointDoubleImagePixel(DcmItem& dataset)
+  {
+    return readFloatingPointImagePixel<IODFloatingPointImagePixelModule>(dataset);
+  }
+
+  template<typename T>
+#ifdef DCMTK_USE_CXX11_STL
+  typename std::enable_if<DcmIODImageHasType<T,Types...>::value,OFCondition>::type
+#else
+  OFTypename OFenable_if
+  <
+    (OFvariadic_find_type<T,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value != -1),
+    OFCondition
+  >::type
+#endif
+  readFloatingPointImagePixel(DcmItem& dataset)
+  {
+    if (dataset.tagExists(DCM_FloatPixelData))
+      return OFget<T>(&(m_ImagePixel = T(getData(),getRules())))->read(dataset);
+    return readIntegerImagePixel(dataset);
+  }
+
+  template<typename T>
+#ifdef DCMTK_USE_CXX11_STL
+  typename std::enable_if<!DcmIODImageHasType<T,Types...>::value,OFCondition>::type
+#else
+  OFTypename OFenable_if
+  <
+    (OFvariadic_find_type<T,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value == -1),
+    OFCondition
+  >::type
+#endif
+  readFloatingPointImagePixel(DcmItem& dataset)
+  {
+    return readIntegerImagePixel(dataset);
+  }
+
+  OFCondition readIntegerImagePixel(DcmItem& dataset)
+  {
+    Uint16 allocated, representation;
+    if
+    (
+      dataset.tagExists(DCM_PixelData) &&
+      dataset.findAndGetUint16(DCM_BitsAllocated, allocated).good() &&
+      dataset.findAndGetUint16(DCM_PixelRepresentation, representation).good()
+    )
+    switch ((allocated > 8 ? 2 : 0) | (representation ? 1 : 0))
+    {
+    case 0:
+      return readImagePixel<Uint8>(dataset);
+    case 1:
+      return readImagePixel<Sint8>(dataset);
+    case 2:
+      return readImagePixel<Uint16>(dataset);
+    case 3:
+      return readImagePixel<Sint16>(dataset);
+    default:
+      break;
+    }
+    return IOD_EC_InvalidPixelData;
+  }
+
+  template<typename T>
+#ifdef DCMTK_USE_CXX11_STL
+  typename std::enable_if<DcmIODImageHasType<T,Types...>::value,OFCondition>::type
+#else
+  OFTypename OFenable_if
+  <
+    (OFvariadic_find_type<IODImagePixelModule<T>,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value != -1),
+    OFCondition
+  >::type
+#endif
+  readImagePixel(DcmItem& dataset)
+  {
+    return OFget<IODImagePixelModule<T> >(&(m_ImagePixel = IODImagePixelModule<T>(getData(),getRules())))->read(dataset);
+  }
+
+  template<typename T>
+#ifdef DCMTK_USE_CXX11_STL
+  typename std::enable_if<!DcmIODImageHasType<T,Types...>::value,OFCondition>::type
+#else
+  OFTypename OFenable_if
+  <
+    (OFvariadic_find_type<IODImagePixelModule<T>,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>::value == -1),
+    OFCondition
+  >::type
+#endif
+  readImagePixel(DcmItem& dataset)
+  {
+    // Avoid compiler warning about unused parameter
+    OFstatic_cast(void, dataset);
+    return IOD_EC_InvalidPixelData;
+  }
+
   /// General Image Module
   IODGeneralImageModule m_GeneralImage;
 
   /// Image Pixel Module
-  IODImagePixelModule   m_ImagePixel;
-
+  IODImagePixelModuleType m_ImagePixel;
 };
 
 #endif // IODIMAGE_H
diff --git a/dcmiod/include/dcmtk/dcmiod/iodmacro.h b/dcmiod/include/dcmtk/dcmiod/iodmacro.h
index 709c23d..9d4f5d2 100644
--- a/dcmiod/include/dcmtk/dcmiod/iodmacro.h
+++ b/dcmiod/include/dcmtk/dcmiod/iodmacro.h
@@ -57,7 +57,6 @@ public:
    */
   CodeSequenceMacro(const CodeSequenceMacro& rhs);
 
-
   /** Convenience constructor to set initial values
    *  @param  item The item to be used for data storage. If NULL, the
    *          class creates an empty data container.
@@ -136,6 +135,14 @@ public:
     */
   virtual OFCondition getCodeMeaning(OFString &value,
                                      const signed long pos = 0);
+
+  /** Returns whether code is empty, i.e. no component of the Code Sequence Macro
+   *  is set. This can be used in order to find out whether someone actually
+   *  wanted to fill in a valid code as opposed of leaving it unset.
+   *  @return OFTrue if no component of this class is set, OFFalse otherwise.
+   */
+  virtual OFBool empty();
+
   /** Set Code Value
    *  @param  value The value to set
    *  @param  checkValue If OFTrue, VM and VR of value are checked
@@ -183,6 +190,8 @@ public:
                           const OFString &schemeVersion = "",
                           const OFBool checkValue = OFTrue);
 
+  virtual OFString toString();
+
 };
 
 
@@ -211,13 +220,13 @@ public:
 
   /** Constructor
    *  @param  modifierType Denotes type of Modifier Code Sequence (i.e. 1, 1C,
-   *          2, 2C or 3), default is 3
+   *          2, 2C or 3)
    *  @param  modifierVM Denotes how many items are allowed in the Modifier Code
    *          Sequence
    *  @param  modifierSeq Tag of the sequence that holds the modifier codes.
    *          The default is the Modifier Code Sequence.
    */
-  CodeWithModifiers(const OFString& modifierType = "3",
+  CodeWithModifiers(const OFString& modifierType,
                     const OFString& modifierVM = "1-n",
                     const DcmTagKey& modifierSeq = DCM_ModifierCodeSequence);
 
@@ -302,6 +311,9 @@ public:
 
 private:
 
+  /// Private undefined default constructor
+  CodeWithModifiers();
+
   /// Items of Modifier Code Sequence
   OFVector<CodeSequenceMacro*> m_Modifiers;
 
@@ -316,6 +328,7 @@ private:
 };
 
 
+
 /** Class implementing the SOP Instance Reference Macro
  */
 class DCMTK_DCMIOD_EXPORT SOPInstanceReferenceMacro : public IODComponent
@@ -555,8 +568,6 @@ private:
 
 
 /** Class representing the Image SOP Instance Reference Macro
- *  TODO: Change implementation to use IODComponent class inherited anyway
- *  from SOPInstanceReferenceMacro
  */
 class DCMTK_DCMIOD_EXPORT ImageSOPInstanceReferenceMacro : public SOPInstanceReferenceMacro
 {
@@ -690,146 +701,9 @@ private:
 };
 
 
-/** Class representing an item within the the Primary Anatomic Structure Macro
- */
-class DCMTK_DCMIOD_EXPORT PrimaryAnatomicStructureMacroItem
-{
-
-public:
-
-  /** Constructor
-   */
-  PrimaryAnatomicStructureMacroItem();
-
-  /** Copy constructor
-   *  @param  rhs The item to copy from
-   */
-  PrimaryAnatomicStructureMacroItem(const PrimaryAnatomicStructureMacroItem& rhs);
-
-  /** Virtual destructor
-   */
-  virtual ~PrimaryAnatomicStructureMacroItem();
-
-  /** Clear (removes) all attributes handled by the modules of this component.
-   */
-  virtual void clearData();
-
-  /** Check whether this component's data satisfies the underlying
-   *  rules
-   *  @param  quiet If OFTrue, not error / warning messages will be produced.
-   *          Only the returned error code will indicate error or OK. Per
-   *          default, logging output is produced.
-   *  @result EC_Normal if rules are satisfied, error otherwise
-   */
-  virtual OFCondition check(const OFBool quiet = OFFalse);
-
-  /** Return the Anatomic Structure Code
-   *  @return Reference to the anatomic structure code
-   */
-  virtual CodeSequenceMacro& getAnatomicStructure();
-
-  /** Return the Anatomic Structure Modifier Codes
-   *  @return The Anatomic Structure Modifier Codes
-   */
-  virtual OFVector<CodeSequenceMacro*>& getAnatomicStructureModifier();
-
-  /** Reads Primary Anatomic Region Sequence Item from given item
-   *  @param  source The item to read from
-   *  @param  clearOldData If OFTrue, old data is cleared first, otherwise it is
-   *          kept where not overwritten
-   *  @return EC_Normal if successful, error otherwise
-   */
-  virtual OFCondition read(DcmItem& source,
-                           const OFBool clearOldData = OFTrue);
-
-  /** Write Anatomic Region Sequence Item to given item
-   * @param  item The item to write to
-   * @return EC_Normal if successful, error otherwise
-   */
-  virtual OFCondition write(DcmItem& item);
-
-  /** Assignment operator (performs deep copy)
-   *  @param  rhs The item to copy from
-   *  @return result
-   */
-  PrimaryAnatomicStructureMacroItem& operator=(const PrimaryAnatomicStructureMacroItem &rhs);
-
-private:
-
-  /// Primary Anatomic Structure Sequence Item
-  CodeSequenceMacro m_AnatomicStructure;
-
-  /// Primary Anatomic Structure Structure Modifier Sequence (SQ, 1-n, 3)
-  OFVector<CodeSequenceMacro*> m_AnatomicStructureModifier;
-
-};
-
-
 /** Class representing the Primary Anatomic Structure Macro
  */
-class DCMTK_DCMIOD_EXPORT PrimaryAnatomicStructureMacro
-{
-
-public:
-
-  /** Constructor
-   */
-  PrimaryAnatomicStructureMacro();
-
-  /** Copy constructor
-   *  @param  rhs The macro to copy from
-   */
-  PrimaryAnatomicStructureMacro(const PrimaryAnatomicStructureMacro& rhs);
-
-  /** Virtual destructor
-   */
-  virtual ~PrimaryAnatomicStructureMacro();
-
-  /** Clear (removes) all attributes handled by the modules of this component.
-   */
-  virtual void clearData();
-
-  /** Check whether this component's data satisfies the underlying
-   *  rules
-   *  @param  quiet If OFTrue, not error / warning messages will be produced.
-   *          Only the returned error code will indicate error or OK. Per
-   *          default, logging output is produced.
-   *  @result EC_Normal if rules are satisfied, error otherwise
-   */
-  virtual OFCondition check(const OFBool quiet = OFFalse);
-
-  /** Return Primary Anatomic Structure items
-   *  @return Reference to items of this macro
-   */
-  virtual OFVector<PrimaryAnatomicStructureMacroItem*>& getPrimaryAnatomicStructure();
-
-  /** Reads Primary Anatomic Region Sequence (i.e.\ this macro) from given item
-   *  @param  source The item to read from
-   *  @param  clearOldData If OFTrue, old data is cleared first, otherwise it is
-   *          kept where not overwritten
-   *  @return EC_Normal if reading was fine, error otherwise
-   */
-  virtual OFCondition read(DcmItem& source,
-                           const OFBool clearOldData = OFTrue);
-
-  /** Write Anatomic Region Sequence (i.e.\ this macro) to given item
-   *  @param  item The item to write to
-   *  @return EC_Normal if writing was fine, error otherwise
-   */
-  virtual OFCondition write(DcmItem& item);
-
-  /** Assignment operator
-   *  @param  rhs The macro to copy from
-   *  @result Reference to "this" object
-   */
-  PrimaryAnatomicStructureMacro& operator=(const PrimaryAnatomicStructureMacro &rhs);
-
-private:
-
-  /// Primary Anatomic Structure Sequence (SQ, 0-1, 3)
-  OFVector<PrimaryAnatomicStructureMacroItem*> m_PrimaryAnatomicStructure;
-};
-
+typedef CodeWithModifiers PrimaryAnatomicStructureMacro;
 
 /** Class representing the General Anatomy Mandatory or Optional Macro
  */
@@ -847,7 +721,7 @@ public:
    */
   GeneralAnatomyMacro(const OFString& type);
 
-  /** Copy constructor
+  /** Copy constructor, creates deep copy.
    *  @param  rhs The macro to copy from
    */
   GeneralAnatomyMacro(const GeneralAnatomyMacro& rhs);
@@ -907,10 +781,24 @@ public:
    */
   GeneralAnatomyMacro& operator=(const GeneralAnatomyMacro &rhs);
 
+  /** Comparison operator that compares the normalized value of this object
+   *  with a given object of the same type, i.e.\ the elements within both
+   *  objects (this and rhs parameter) are compared by value.
+   *  @param  rhs the right hand side of the comparison
+   *  @return 0 if the object values are equal.
+   *          -1 if either the value of the first component that does not match
+   *          is lower in the rhs object, or all compared components match
+   *          but the rhs component is shorter.
+   *          1 if either the value of the first component that does not match
+   *          is greater in the rhs object, or all compared components match
+   *          but the rhs component is longer.
+   */
+  virtual int compare(const GeneralAnatomyMacro& rhs) const;
+
 private:
 
   /// Type (1,2,3) of Anatomic Region Sequence.
-  OFString m_Type; // TODO: Make enum?
+  OFString m_Type;
 
   /// Anatomic Region Sequence (SQ, 1, 1) (Code Sequence Macro within item of
   /// Anatomic Region Sequence))
@@ -1321,7 +1209,7 @@ private:
 
 /** Class representing the HL7 V2 Hierarchic Designator Macro
  */
-class HL7HierarchicDesignatorMacro : public IODComponent
+class DCMTK_DCMIOD_EXPORT HL7HierarchicDesignatorMacro : public IODComponent
 {
 
 public:
@@ -1405,7 +1293,7 @@ public:
 /** Class representing the Mandatory View and Slice Progression Direction Macro
  */
 
-class MandatoryViewAndSliceProgressionDirectionMacro : public IODComponent
+class DCMTK_DCMIOD_EXPORT MandatoryViewAndSliceProgressionDirectionMacro : public IODComponent
 {
 
 public:
diff --git a/dcmiod/include/dcmtk/dcmiod/iodutil.h b/dcmiod/include/dcmtk/dcmiod/iodutil.h
index d4f3c39..a51f317 100644
--- a/dcmiod/include/dcmtk/dcmiod/iodutil.h
+++ b/dcmiod/include/dcmtk/dcmiod/iodutil.h
@@ -29,6 +29,8 @@
 #include "dcmtk/dcmdata/dcsequen.h"
 #include "dcmtk/dcmdata/dcdatset.h"
 #include "dcmtk/dcmdata/dcdatutl.h"
+#include "dcmtk/ofstd/ofdate.h"
+#include "dcmtk/ofstd/oftime.h"
 #include "dcmtk/dcmiod/ioddef.h"
 #include "dcmtk/dcmiod/iodrules.h"
 #include "dcmtk/dcmiod/iodtypes.h"
@@ -755,12 +757,16 @@ public:
       /* If we do not have data, insert empty for type 2 */
       else if (type == "2")
       {
-          destination.insertEmptyElement(seqKey);
+        destination.insertEmptyElement(seqKey);
       }
       else if (type == "1C")
       {
         DCMIOD_TRACE("Skipping type 1C sequence " << seqKey << ": No data or incomplete data available");
       }
+      else if (type  == "3")
+      {
+        DCMIOD_TRACE("Skipping type 3 sequence " << seqKey << ": No data or incomplete data available");
+      }
       /* Check outcome */
       checkSubSequence(result, destination, seqKey, "1", type, module);
     }
@@ -864,6 +870,26 @@ public:
     }
   }
 
+
+  template <typename ModuleType>
+  static OFCondition setContentDateAndTimeNow(ModuleType& module)
+  {
+    OFDate date;
+    date.setCurrentDate();
+    OFString tempstr;
+    date.getISOFormattedDate(tempstr, OFFalse /* no delimiters */);
+    OFCondition result = module.setContentDate(tempstr);
+    if (result.good())
+    {
+      OFTime time;
+      time.setCurrentTime();
+      time.getISOFormattedTime(tempstr, OFTrue /* include seconds */, OFFalse, OFFalse, OFFalse);
+      result = module.setContentTime(tempstr);
+    }
+    return result;
+  }
+
+
   /** Function that takes a string representation of a tag key and
    *  converts it to a tag key instance if possible
    *  @param  keyString String of the format "(gggg,eeee)"
diff --git a/dcmiod/include/dcmtk/dcmiod/modbase.h b/dcmiod/include/dcmtk/dcmiod/modbase.h
index d372a66..2270c17 100644
--- a/dcmiod/include/dcmtk/dcmiod/modbase.h
+++ b/dcmiod/include/dcmtk/dcmiod/modbase.h
@@ -66,8 +66,8 @@ public:
   IODComponent(IODComponent* parent = NULL);
 
   /** Assignment operator, copies contained item and rule set from rhs to
-   *  "this" attribute set. Produces clone copy, i.e.\ the contained item
-   *  and the rule set is copied. The parent component is set to NULL.
+   *  "this" attribute set. Performs deep copy, i.e.\ the contained item
+   *  and the rule set are copied. The parent component is set to NULL.
    *  @param  rhs The IODComponent to be assigned
    *  @return Reference to this module
    */
@@ -192,22 +192,28 @@ public:
                            IODRules& rules,
                            DcmItem& destination,
                            const OFString& componentName);
+
 protected:
 
-    /// Shared pointer to the data handled by this class. The item may contain
-    /// more attributes than this class is actually responsible for
-    OFshared_ptr<DcmItem> m_Item;
+  /// Shared pointer to the data handled by this class. The item may contain
+  /// more attributes than this class is actually responsible for
+  OFshared_ptr<DcmItem> m_Item;
+
+  /// Rules describing the attributes governed by this class
+  OFshared_ptr<IODRules> m_Rules;
 
-    /// Rules describing the attributes governed by this class
-    OFshared_ptr<IODRules> m_Rules;
+  /// The parent component (may be NULL) of this class
+  IODComponent* m_Parent;
 
-    /// The parent component (may be NULL) of this class
-    IODComponent* m_Parent;
 };
 
 
 /** The class IODModule is an IODComponent without parent component since
  *  a module does always belong to the top level dataset.
+ *  Also, different from IODComponents, modules usually share data and
+ *  rules. This is taken into account in the assignment operator and
+ *  copy constructor which only create a shallow copy, i.e. modules
+ *  share the same data and rules afterwards.
  */
 class DCMTK_DCMIOD_EXPORT IODModule : public IODComponent
 {
@@ -229,6 +235,19 @@ public:
    */
   IODModule();
 
+  /** Copy constructor, creates shallow copy
+   *  @param  rhs The module to copy from
+   */
+  IODModule(const IODModule& rhs);
+
+  /** Assignment operator, creates shallow copy
+   *  @param  rhs The module to copy from
+   *  @return Returns reference to this object
+   */
+  IODModule& operator=(const IODModule& rhs);
+
+  /** Desctructor
+   */
   ~IODModule() {};
 };
 
diff --git a/dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h b/dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h
index 0991f45..cad4ca7 100644
--- a/dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h
+++ b/dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h
@@ -122,6 +122,8 @@ protected:
 
 private:
 
+  void freeMemory();
+
   /// Vector with all items of the Referenced Series Sequence
   OFVector<IODSeriesAndInstanceReferenceMacro::ReferencedSeriesItem*> m_ReferenceSeriesItems;
 
diff --git a/dcmiod/include/dcmtk/dcmiod/modenhequipment.h b/dcmiod/include/dcmtk/dcmiod/modenhequipment.h
index 78b9f5e..7721d3c 100644
--- a/dcmiod/include/dcmtk/dcmiod/modenhequipment.h
+++ b/dcmiod/include/dcmtk/dcmiod/modenhequipment.h
@@ -40,9 +40,9 @@ class DCMTK_DCMIOD_EXPORT IODEnhGeneralEquipmentModule : public IODModule
 public:
 
     /** Convenient struct containing all information required for setting
-     *  equipment information for use by external code)
+     *  enhanced equipment information (for use by external code)
      */
-    struct EquipmentInfo
+    struct DCMTK_DCMIOD_EXPORT EquipmentInfo
     {
 
       /** Default Constructor
@@ -51,39 +51,52 @@ public:
         m_Manufacturer(),
         m_ManufacturerModelName(),
         m_DeviceSerialNumber(),
-        m_SoftwareVersions() {};
+        m_SoftwareVersions() {}
 
       /** Convenience Constructor setting all values
        *  @param manufacturer Manufacturer
-       *  @param modelName Model name
+       *  @param manufacturerModelName Manufacturer's model name
        *  @param deviceSerialNumber Serial number
-       * *@param softwareVersions Software versions
+       *  @param softwareVersions Software versions
        */
       EquipmentInfo(const OFString& manufacturer,
-                    const OFString& modelName,
+                    const OFString& manufacturerModelName,
                     const OFString& deviceSerialNumber,
                     const OFString& softwareVersions) :
         m_Manufacturer(manufacturer),
-        m_ManufacturerModelName(modelName),
+        m_ManufacturerModelName(manufacturerModelName),
         m_DeviceSerialNumber(deviceSerialNumber),
-        m_SoftwareVersions(softwareVersions) {};
+        m_SoftwareVersions(softwareVersions) {}
 
-      // Manufacturer (VM 1)
+      /** Perform simple check whether all equipment data is filled in. Does not
+       *  check VR or VM (will be checked in write() routine, though)
+       *  @return OFTrue if data is complete, OFFalse otherwise
+       */
+      OFBool isDataComplete() const
+      {
+        if (m_Manufacturer.empty() || m_ManufacturerModelName.empty() || m_DeviceSerialNumber.empty() || m_SoftwareVersions.empty())
+        {
+          return OFFalse;
+        }
+        return OFTrue;
+      }
+
+      /// Manufacturer (VM 1)
       OFString m_Manufacturer;
 
-      // Manufacturer's Model Name (VM 1)
+      /// Manufacturer's Model Name (VM 1)
       OFString m_ManufacturerModelName;
 
-      // Device Serial Number (VM 1)
+      /// Device Serial Number (VM 1)
       OFString m_DeviceSerialNumber;
 
-      // Software Version(s) (VM 1-n)
+      /// Software Version(s) (VM 1-n)
       OFString m_SoftwareVersions;
     };
 
     /** Constructor
-     *  @param  item The item to be used for data storage. If NULL, the
-     *          class creates an empty data container.
+     *  @param  item The item to be used for data storage. If NULL, the class
+     *          creates an empty data container.
      *  @param  rules The rule set for this class. If NULL, the class creates
      *          one from scratch and adds its values.
      */
@@ -101,9 +114,9 @@ public:
     static OFCondition create(const EquipmentInfo& info,
                               IODEnhGeneralEquipmentModule* equipment);
 
-   /** Resets rules to their original values.
-    */
-   virtual void resetRules();
+    /** Resets rules to their original values.
+     */
+    virtual void resetRules();
 
     /** Get name of module
      *  @return Name of the module ("EnhancedEquipmentModule")
@@ -174,6 +187,10 @@ public:
     virtual OFCondition setSoftwareVersions(const OFString &value,
                                             const OFBool checkValue = OFTrue);
 
+    /** Set all equipment information at once
+     *  @param  info The equipment information to be set.
+     *  @return EC_Normal if values could be set, error otherwise
+     */
     virtual OFCondition set(const EquipmentInfo& info);
 
 private:
diff --git a/dcmiod/include/dcmtk/dcmiod/modequipment.h b/dcmiod/include/dcmtk/dcmiod/modequipment.h
index 8f6c694..f974c83 100644
--- a/dcmiod/include/dcmtk/dcmiod/modequipment.h
+++ b/dcmiod/include/dcmtk/dcmiod/modequipment.h
@@ -43,30 +43,50 @@ class DCMTK_DCMIOD_EXPORT IODGeneralEquipmentModule : public IODModule
 
 public:
 
-    /** Convenient struct containing all information required for setting
-     *  equipment information for use by external code)
+    /** Convenient struct containing commonly used equipment information
+     *  (for use by external code)
      */
-    struct EquipmentInfo
+    struct DCMTK_DCMIOD_EXPORT EquipmentInfo
     {
-      // Manufacturer (VM 1)
+
+      /** Default Constructor
+       */
+      EquipmentInfo() {}
+
+      /** Convenience Constructor setting commonly used values
+       *  @param manufacturer Manufacturer
+       *  @param manufacturerModelName Manufacturer's model name
+       *  @param deviceSerialNumber Serial number
+       *  @param softwareVersions Software versions
+       */
+      EquipmentInfo(const OFString& manufacturer,
+                    const OFString& manufacturerModelName,
+                    const OFString& deviceSerialNumber,
+                    const OFString& softwareVersions) :
+        m_Manufacturer(manufacturer),
+        m_ManufacturerModelName(manufacturerModelName),
+        m_DeviceSerialNumber(deviceSerialNumber),
+        m_SoftwareVersions(softwareVersions) {}
+
+      /// Manufacturer (VM 1)
       OFString m_Manufacturer;
 
-      // Manufacturer's Model Name (VM 1)
+      /// Manufacturer's Model Name (VM 1)
       OFString m_ManufacturerModelName;
 
-      // Device Serial Number (VM 1)
+      /// Device Serial Number (VM 1)
       OFString m_DeviceSerialNumber;
 
-      // Software Version(s) (VM 1-n)
+      /// Software Version(s) (VM 1-n)
       OFString m_SoftwareVersions;
     };
 
     /** Constructor
-    *  @param  item The item to be used for data storage. If NULL, the
-    *          class creates an empty data container.
-    *  @param  rules The rule set for this class. If NULL, the class creates
-    *          one from scratch and adds its values.
-    */
+     *  @param  item The item to be used for data storage. If NULL, the class
+     *          creates an empty data container.
+     *  @param  rules The rule set for this class. If NULL, the class creates
+     *          one from scratch and adds its values.
+     */
     IODGeneralEquipmentModule(OFshared_ptr<DcmItem> item,
                               OFshared_ptr<IODRules> rules);
 
@@ -84,7 +104,6 @@ public:
 
     /** Get name of module
      *  @return Name of the module ("GeneralEquipmentModule")
-     *          depending on configuration)
      */
     virtual OFString getName() const;
 
@@ -225,7 +244,7 @@ public:
 
 private:
 
-    /// Name of the modue ("GeneralEquipmentModule")
+    /// Name of the module ("GeneralEquipmentModule")
     OFString m_ModuleName;
 };
 
diff --git a/dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h b/dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h
new file mode 100644
index 0000000..0507228
--- /dev/null
+++ b/dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h
@@ -0,0 +1,246 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmiod
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Floating Point and Double Floating Point Image Pixel Module
+ *
+ */
+
+#ifndef MODFLOATINGPOINTIMAGEPIXEL_H
+#define MODFLOATINGPOINTIMAGEPIXEL_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmiod/modimagepixelbase.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+
+/** Class representing Floating Point Image Pixel Module:
+ *
+ *  Samples Per Pixel: (US, 1, 1)
+ *  Photometric Interpretation (CS, 1, 1)
+ *  Rows: (US, 1, 1)
+ *  Columns: (US, 1, 1)
+ *  Bits Allocated: (US, 1 1)
+ *  Pixel Aspect Ratio: (IS,  2, 1C)
+ *  Float Pixel Padding Value: (FL, 1, 3)
+ *  Float Pixel Padding Range Limit: (FL, 1, 1C)
+ */
+class DCMTK_DCMIOD_EXPORT IODFloatingPointImagePixelModule : public IODImagePixelBase
+{
+
+public:
+
+  /// Data type of pixels
+  typedef Float32 value_type;
+
+  static const DcmTagKey pixel_data_tag;
+
+  /** Constructor
+   *  @param  item The item to be used for data storage. If NULL, the
+   *          class creates an empty data container.
+   *  @param  rules The rule set for this class. If NULL, the class creates
+   *          one from scratch and adds its values.
+   */
+  IODFloatingPointImagePixelModule(OFshared_ptr<DcmItem> item,
+                                   OFshared_ptr<IODRules> rules);
+
+  /** Constructor
+   */
+  IODFloatingPointImagePixelModule();
+
+  /** Destructor
+   */
+  virtual ~IODFloatingPointImagePixelModule();
+
+  /** Read attributes from given item into this class
+   *  @param source  The source to read from
+   *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+   *         old data is overwritten (or amended)
+   *  @result EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& source,
+                           const OFBool clearOldData = OFTrue);
+
+  /** Write attributes from this class into given item
+   *  @param  destination The item to write to
+   *  @result EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& destination);
+
+  /** Resets rules to their original values
+   */
+  virtual void resetRules();
+
+  /** Get name of module
+   *  @return Name of the module ("FloatingPointImagePixelModule")
+   */
+  virtual OFString getName() const;
+
+  /** Get pixel data type, always returns DataType::FLOAT for this class.
+   *  @return The data type of the pixel data
+   */
+  virtual DataType getDataType() const;
+
+  /** Get Float Pixel Padding Value
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  virtual OFCondition getFloatPixelPaddingValue(Float32& value,
+                                                const signed long pos = 0);
+
+  /** Get Float Pixel Padding Range Limit
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  virtual OFCondition getFloatPixelPaddingRangeLimit(Float32& value,
+                                                     const signed long pos = 0);
+
+  /** Set Float Pixel Pixel Padding Value
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value' for conformance with VR (FL) and consistency
+   *    with other attributes if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setFloatPixelPaddingValue(const Float32 value,
+                                                const OFBool checkValue = OFTrue);
+
+  /** Set Float Pixel Padding Range Limit
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value' for conformance with VR (FL) and consistency
+   *    with other attributes if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setFloatPixelPaddingRangeLimit(const Float32 value,
+                                                     const OFBool checkValue = OFTrue);
+
+private:
+
+  /// This module's name ("FloatingPointImagePixelModule")
+  static const OFString m_ModuleName;
+
+};
+
+
+/** Class representing Double Floating Point Image Pixel Module:
+ *
+ *  Samples Per Pixel: (US, 1, 1)
+ *  Photometric Interpretation (CS, 1, 1)
+ *  Rows: (US, 1, 1)
+ *  Columns: (US, 1, 1)
+ *  Bits Allocated: (US, 1 1)
+ *  Pixel Aspect Ratio: (IS,  2, 1C)
+ *  Double Float Pixel Padding Value: (FD, 1, 3)
+ *  Double Float Pixel Padding Range Limit: (FD, 1, 1C)
+ */
+class DCMTK_DCMIOD_EXPORT IODDoubleFloatingPointImagePixelModule: public IODImagePixelBase
+{
+
+public:
+
+  /// Data type of pixels
+  typedef Float64 value_type;
+
+  static const DcmTagKey pixel_data_tag;
+
+  /** Constructor
+   *  @param  item The item to be used for data storage. If NULL, the
+   *          class creates an empty data container.
+   *  @param  rules The rule set for this class. If NULL, the class creates
+   *          one from scratch and adds its values.
+   */
+  IODDoubleFloatingPointImagePixelModule(OFshared_ptr<DcmItem> item,
+                                         OFshared_ptr<IODRules> rules);
+
+  /** Constructor
+   */
+  IODDoubleFloatingPointImagePixelModule();
+
+  /** Destructor
+   */
+  virtual ~IODDoubleFloatingPointImagePixelModule();
+
+  /** Read attributes from given item into this class
+   *  @param source  The source to read from
+   *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+   *         old data is overwritten (or amended)
+   *  @result EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& source,
+                           const OFBool clearOldData = OFTrue);
+
+  /** Write attributes from this class into given item
+   *  @param  destination The item to write to
+   *  @result EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& destination);
+
+  /** Resets rules to their original values
+   */
+  virtual void resetRules();
+
+  /** Get name of module
+   *  @return Name of the module ("DoubleFloatingPointImagePixelModule")
+   */
+  virtual OFString getName() const;
+
+  /** Get pixel data type, always returns DataType::DOUBLE for this class.
+   *  @return The data type of the pixel data
+   */
+  virtual DataType getDataType() const;
+
+  /** Get Double Float Pixel Padding Value
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  virtual OFCondition getDoubleFloatPixelPaddingValue(Float64& value,
+                                                       const signed long pos = 0);
+
+  /** Get Double Float Pixel Padding Range Limit
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  virtual OFCondition getDoubleFloatPixelPaddingRangeLimit(Float64& value,
+                                                            const signed long pos = 0);
+
+  /** Set Double Float Pixel Pixel Padding Value
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value' for conformance with VR (FD) and consistency
+   *    with other attributes if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setDoubleFloatPixelPaddingValue(const Float64 value,
+                                                      const OFBool checkValue = OFTrue);
+
+  /** Set Double Float Pixel Padding Range Limit
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value' for conformance with VR (FD) and consistency
+   *    with other attributes if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setDoubleFloatPixelPaddingRangeLimit(const Float64 value,
+                                                           const OFBool checkValue = OFTrue);
+
+private:
+
+  /// This module's name ("DoubleFloatingPointImagePixelModule")
+  static const OFString m_ModuleName;
+
+};
+
+#endif // MODFLOATINGPOINTIMAGEPIXEL_H
diff --git a/dcmiod/include/dcmtk/dcmiod/modfor.h b/dcmiod/include/dcmtk/dcmiod/modfor.h
index 7da8fc4..76d7519 100644
--- a/dcmiod/include/dcmtk/dcmiod/modfor.h
+++ b/dcmiod/include/dcmtk/dcmiod/modfor.h
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2015, Open Connections GmbH
+ *  Copyright (C) 2015-2016, Open Connections GmbH
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation are maintained by
@@ -97,6 +97,13 @@ public:
   virtual OFCondition setPositionReferenceIndicator(const OFString &value,
                                                     const OFBool checkValue = OFTrue);
 
+  /** Make sure that the module contains a Frame of Reference Instance UID, i.e.\
+   *  a new one is created if empty. An invalid UID is corrected if desired.
+   *  @param  correctInvalid Correct invalid UID if OFTrue, otherwise do nothing
+   *
+   */
+  void ensureFrameOfReferenceUID(const OFBool correctInvalid = OFFalse);
+
 
 private:
 
diff --git a/dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h b/dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h
index 5fa8114..70d289c 100644
--- a/dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h
+++ b/dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h
@@ -36,7 +36,7 @@
   * Study ID: (SH, 1, 2)
   * Accession Number: (SH, 1, 2)
   * Study Description: (LO, 1, 3)
-  * Issuer of Accession Number Sequence: (SQ, 3, 1)
+  * Issuer of Accession Number Sequence: (SQ, 1, 3)
   * Procedure Code Sequence: (SQ, 1-n, 3)
   * Reason for Performed Procedure Code Sequence: (SQ, 1-n, 3)
   */
diff --git a/dcmiod/include/dcmtk/dcmiod/modimagepixel.h b/dcmiod/include/dcmtk/dcmiod/modimagepixel.h
index d76be12..281edf5 100644
--- a/dcmiod/include/dcmtk/dcmiod/modimagepixel.h
+++ b/dcmiod/include/dcmtk/dcmiod/modimagepixel.h
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2015, Open Connections GmbH
+ *  Copyright (C) 2015-2016, Open Connections GmbH
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation are maintained by
@@ -23,9 +23,10 @@
 #define MODIMAGEPIXEL_H
 
 #include "dcmtk/config/osconfig.h"
-#include "dcmtk/dcmiod/modbase.h"
+#include "dcmtk/dcmiod/modimagepixelbase.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
 
-/** Class representing the General Image Module:
+/** Class representing the Image Pixel Module:
  *
  *  Samples Per Pixel: (US, 1, 1)
  *  Photometric Interpretation (CS, 1, 1)
@@ -40,11 +41,17 @@
  *  Pixel Aspect Ratio: (IS,  2, 1C)
  *  ICC Profile: (OB, 1, 3)
  */
-class DCMTK_DCMIOD_EXPORT IODImagePixelModule : public IODModule
+template<typename T>
+class DCMTK_DCMIOD_EXPORT IODImagePixelModule : public IODImagePixelBase
 {
 
 public:
 
+  /// Data type of pixels
+  typedef T value_type;
+
+  static const DcmTagKey pixel_data_tag;
+
   /** Constructor
    *  @param  item The item to be used for data storage. If NULL, the
    *          class creates an empty data container.
@@ -62,6 +69,21 @@ public:
    */
   virtual ~IODImagePixelModule();
 
+  /** Read attributes from given item into this class
+   *  @param source  The source to read from
+   *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+   *         old data is overwritten (or amended)
+   *  @result EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& source,
+                           const OFBool clearOldData = OFTrue);
+
+  /** Write attributes from this class into given item
+   *  @param  destination The item to write to
+   *  @result EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& destination);
+
   /** Resets rules to their original values
    */
   virtual void resetRules();
@@ -71,44 +93,10 @@ public:
    */
   virtual OFString getName() const;
 
-  /** Get Samples per Pixel
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  pos Index of the value to get (0..vm-1)
-   *  @return EC_Normal if successful, an error code otherwise
+  /** Get pixel data type, always returns DataType::INTEGER for this class.
+   *  @return The data type of the pixel data
    */
-  virtual OFCondition getSamplesPerPixel(Uint16 &value,
-                                         const signed long pos = 0);
-
-  /** Get Photometric Interpretation
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  pos Index of the value to get (0..vm-1)
-   *  @return EC_Normal if successful, an error code otherwise
-  */
-  virtual OFCondition getPhotometricInterpretation(OFString&value,
-                                                  const signed long pos = 0);
-
-  /** Get Rows
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  pos Index of the value to get (0..vm-1)
-   *  @return EC_Normal if successful, an error code otherwise
-   */
-  virtual OFCondition getRows(Uint16& value,
-                              const signed long pos = 0);
-
-  /** Get Columns
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  pos Index of the value to get (0..vm-1)
-   *  @return EC_Normal if successful, an error code otherwise
-   */
-  virtual OFCondition getColumns(Uint16& value,
-                                  const signed long pos = 0);
-   /** Get Bits Allocated
-    *  @param  value Reference to variable in which the value should be stored
-    *  @param  pos Index of the value to get (0..vm-1)
-    *  @return EC_Normal if successful, an error code otherwise
-    */
-  virtual OFCondition getBitsAllocated(Uint16& value,
-                                        const signed long pos = 0);
+  virtual DataType getDataType() const;
 
    /** Get Bits Stored
     *  @param  value Reference to variable in which the value should be stored
@@ -142,21 +130,13 @@ public:
   virtual OFCondition getPlanarConfiguration(Uint16& value,
                                              const signed long pos = 0);
 
-  /** Get Pixel Aspect Ratio
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  pos Index of the value to get (0..vm-1)
-   *  @return EC_Normal if successful, an error code otherwise
-  */
-  virtual OFCondition getPixelAspectRatio(Uint16& value,
-                                          const signed long pos = 0);
-
   /** Get ICC Profile
    *  @param  values Reference to variable in which the values should be stored
    *  @return EC_Normal if successful, an error code otherwise
    */
   virtual OFCondition getICCProfile(OFVector<Uint8>& values);
 
-  /** set Samples per Pixel
+  /** Set Samples per Pixel
    *  @param  value Reference to variable in which the value should be stored
    *  @param  checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled
    *  @return EC_Normal if successful, an error code otherwise
@@ -172,23 +152,6 @@ public:
   virtual OFCondition setPhotometricInterpretation(const OFString& value,
                                                    const OFBool checkValue = OFTrue);
 
-  /** Set Rows
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  checkValue Check 'value'. Not evaluated (here for consistency
-   *          with other setter functions).
-   *  @return EC_Normal if successful, an error code otherwise
-   */
-  virtual OFCondition setRows(const Uint16 value,
-                              const OFBool checkValue = OFTrue);
-
-  /** Set Columns
-   *  @param  value Reference to variable in which the value should be stored
-   *  @param  checkValue Check 'value'. Not evaluated (here for consistency
-   *          with other setter functions).
-   *  @return EC_Normal if successful, an error code otherwise
-   */
-  virtual OFCondition setColumns(const Uint16 value,
-                                 const OFBool checkValue = OFTrue);
   /** Set Bits Allocated
    *  @param  value Reference to variable in which the value should be stored
    *  @param  checkValue Check 'value'. Not evaluated (here for consistency
@@ -234,16 +197,6 @@ public:
   virtual OFCondition setPlanarConfiguration(const Uint16 value,
                                              const OFBool checkValue = OFTrue);
 
-  /** Set Pixel Aspect Ratio
-   *  @param  verticalPixelSize The vertical pixel size (no unit)
-   *  @param  horizontalPixelSize The horizontal pixel size (no unit)
-   *  @param  checkValue Check 'value' for conformance with VR (IS)
-   *  @return EC_Normal if successful, an error code otherwise
-   */
-  virtual OFCondition setPixelAspectRatio(const OFString& verticalPixelSize,
-                                          const OFString& horizontalPixelSize,
-                                          const OFBool checkValue = OFTrue);
-
   /** Set ICC Profile
    *  @param  values Reference to variable in which the values should be stored
    *  @param  length Length of array provided in values parameter
@@ -251,6 +204,7 @@ public:
    */
   virtual OFCondition setICCProfile(const Uint8* values,
                                     const size_t length);
+
 private:
 
   /// This module's name ("ImagePixelModule")
diff --git a/dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h b/dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h
new file mode 100644
index 0000000..7455e02
--- /dev/null
+++ b/dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h
@@ -0,0 +1,168 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmiod
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Base class for Image Pixel Module and related (e.g. Ploating Point)
+ *
+ */
+
+#ifndef MODIMAGEPIXELBASE_H
+#define MODIMAGEPIXELBASE_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmiod/modbase.h"
+
+/** Base class for deriving Image Pixel Module, Floating Point Image Pixel
+ *  Module and Double Floating Point Image Pixel (and maybe more later)
+ */
+class DCMTK_DCMIOD_EXPORT IODImagePixelBase : public IODModule
+{
+
+public:
+
+    enum DataType
+    {
+      DATA_TYPE_UNKNOWN,
+      DATA_TYPE_FLOAT,
+      DATA_TYPE_DOUBLE,
+      DATA_TYPE_INTEGER
+    };
+
+
+  /** Constructor
+   *  @param  item The item to be used for data storage. If NULL, the
+   *          class creates an empty data container.
+   *  @param  rules The rule set for this class. If NULL, the class creates
+   *          one from scratch and adds its values.
+   */
+  IODImagePixelBase(OFshared_ptr<DcmItem> item,
+                    OFshared_ptr<IODRules> rules);
+
+  /** Constructor
+   */
+  IODImagePixelBase();
+
+  /** Destructor
+   */
+  virtual ~IODImagePixelBase();
+
+  /** Resets rules to their original values
+   */
+  virtual void resetRules();
+
+  /** Get name of module
+   *  @return Name of the module ("ImagePixelModule")
+   */
+  virtual OFString getName() const;
+
+  /** Get pixel data type
+   *  @return The data type of the pixel data
+   */
+  virtual DataType getDataType() const = 0;
+
+  // -------------------------------------------------------------------------
+  // Getters for all attribute that appear in all Image Pixel Modules
+  // -------------------------------------------------------------------------
+
+  /** Get Samples per Pixel
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getSamplesPerPixel(Uint16 &value,
+                                         const signed long pos = 0);
+
+  /** Get Photometric Interpretation
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  virtual OFCondition getPhotometricInterpretation(OFString&value,
+                                                  const signed long pos = 0);
+
+  /** Get Rows
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRows(Uint16& value,
+                              const signed long pos = 0);
+
+  /** Get Columns
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getColumns(Uint16& value,
+                                  const signed long pos = 0);
+
+  /** Get Bits Allocated
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getBitsAllocated(Uint16& value,
+                                       const signed long pos = 0);
+
+  /** Get Pixel Aspect Ratio
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  virtual OFCondition getPixelAspectRatio(Uint16& value,
+                                          const signed long pos = 0);
+
+  // -------------------------------------------------------------------------
+  // Setters for all attribute that appear in all Image Pixel Modules and which
+  // do not have fixed values in sub classes.
+  // -------------------------------------------------------------------------
+
+  /** Set Rows
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value'. Not evaluated (here for consistency
+   *          with other setter functions).
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRows(const Uint16 value,
+                              const OFBool checkValue = OFTrue);
+
+  /** Set Columns
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value'. Not evaluated (here for consistency
+   *          with other setter functions).
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setColumns(const Uint16 value,
+                                 const OFBool checkValue = OFTrue);
+
+  /** Set Pixel Aspect Ratio
+   *  @param  verticalPixelSize The vertical pixel size (no unit)
+   *  @param  horizontalPixelSize The horizontal pixel size (no unit)
+   *  @param  checkValue Check 'value' for conformance with VR (IS)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setPixelAspectRatio(const OFString& verticalPixelSize,
+                                          const OFString& horizontalPixelSize,
+                                          const OFBool checkValue = OFTrue);
+
+private:
+
+  /// This module's name ("ImagePixelBase")
+  static const OFString m_ModuleName;
+
+};
+
+#endif // MODIMAGEPIXELBASE_H
diff --git a/dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h b/dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h
new file mode 100644
index 0000000..d6a5ba2
--- /dev/null
+++ b/dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h
@@ -0,0 +1,281 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmiod
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Base class for Image Pixel Module and related (e.g. Ploating Point)
+ *
+ */
+
+#ifndef MODIMAGEPIXELVARIANT_H
+#define MODIMAGEPIXELVARIANT_H
+
+#include "dcmtk/config/osconfig.h"
+
+#include "dcmtk/ofstd/ofvriant.h"
+#include "dcmtk/dcmiod/modimagepixelbase.h"
+
+
+/** Visitor for returning base class of given Image Pixel Module
+ */
+struct IODImagePixelVariantBaseVisitor
+{
+
+  /** Returns NULL since given argument is no pixel module at all
+   *  @return OFnullptr
+   */
+  IODImagePixelBase* operator()( OFmonostate& )
+  {
+    return OFnullptr;
+  }
+
+  /** Returns the base class pointer of all pixel modules
+   *  @param  base IODImagePixelBase pointer to given class instance
+   *  @return OFnullptr
+   */
+  IODImagePixelBase* operator()( IODImagePixelBase& base )
+  {
+    return &base;
+  }
+};
+
+/** Class representing different pixel modules from the DICOM standard:
+ *  The class Image Pixel Module, the Floating Point Image Pixel module
+ *  and the Double Floating Point Image Pixel module
+ */
+#ifdef DCMTK_USE_CXX11_STL
+template<typename... Types>
+class IODImagePixelVariant
+: public OFvariant<OFmonostate,Types...>
+#else
+template<OFVARIADIC_DECLARE_TEMPLATE_PARAMETER_PACK_WITH_DEFAULTS(T)>
+class IODImagePixelVariant
+: public OFvariant<OFmonostate,OFVARIADIC_TEMPLATE_PARAMETER_PACK(T)>
+#endif
+{
+
+public:
+
+  /** Constructor
+   */
+  IODImagePixelVariant()
+  : IODImagePixelVariant::variant()
+  {
+
+  }
+
+  /** Constructor, constructs pixel module based on given type
+   */
+  template<typename T>
+  IODImagePixelVariant(const T& t)
+  : IODImagePixelVariant::variant(t)
+  {
+
+  }
+
+  /** Destructor
+   */
+  ~IODImagePixelVariant()
+  {
+
+  }
+
+  /** Get name of module
+   *  @return Name of the actual module (e.g. "ImagePixelModule")
+   */
+  OFString getName() const
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getName();
+    return OFString();
+  }
+
+  /** Get pixel data type
+   *  @return The data type of the pixel data
+   */
+  IODImagePixelBase::DataType getDataType() const
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getDataType();
+    return IODImagePixelBase::DATA_TYPE_UNKNOWN;
+  }
+
+  /** Clear data (base class version)
+   */
+  void clearData()
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      pBase->clearData();
+  }
+
+  // -------------------------------------------------------------------------
+  // Getters for all attribute that appear in all Image Pixel Modules
+  // -------------------------------------------------------------------------
+
+  /** Get Samples per Pixel
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition getSamplesPerPixel(Uint16 &value,
+                                 const signed long pos = 0)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getSamplesPerPixel(value, pos);
+    return IOD_EC_InvalidPixelData;
+  }
+
+  /** Get Photometric Interpretation
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+  */
+  OFCondition getPhotometricInterpretation(OFString&value,
+                                           const signed long pos = 0)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getPhotometricInterpretation(value, pos);
+    return IOD_EC_InvalidPixelData;
+  }
+
+  /** Get Rows
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition getRows(Uint16& value,
+                      const signed long pos = 0)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getRows(value, pos);
+    return IOD_EC_InvalidPixelData;
+  }
+
+  /** Get Columns
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition getColumns(Uint16& value,
+                         const signed long pos = 0)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getColumns(value, pos);
+    return IOD_EC_InvalidPixelData;
+  }
+
+  /** Get Bits Allocated
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition getBitsAllocated(Uint16& value,
+                               const signed long pos = 0)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getBitsAllocated(value, pos);
+    return IOD_EC_InvalidPixelData;
+  }
+
+  /** Get Pixel Aspect Ratio
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition getPixelAspectRatio(Uint16& value,
+                                  const signed long pos = 0)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->getPixelAspectRatio(value, pos);
+    return IOD_EC_InvalidPixelData;
+  }
+
+  // -------------------------------------------------------------------------
+  // Setters for all attribute that appear in all Image Pixel Modules and which
+  // do not have fixed values in sub classes.
+  // -------------------------------------------------------------------------
+
+  /** Set Rows
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value'. Not evaluated (here for consistency
+   *          with other setter functions).
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition setRows(const Uint16 value,
+                      const OFBool checkValue = OFTrue)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->setRows(value, checkValue);
+    return IOD_EC_InvalidPixelData;
+
+  }
+
+  /** Set Columns
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  checkValue Check 'value'. Not evaluated (here for consistency
+   *          with other setter functions).
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition setColumns(const Uint16 value,
+                         const OFBool checkValue = OFTrue)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->setColumns(value, checkValue);
+    return IOD_EC_InvalidPixelData;
+
+  }
+
+  /** Set Pixel Aspect Ratio
+   *  @param  verticalPixelSize The vertical pixel size (no unit)
+   *  @param  horizontalPixelSize The horizontal pixel size (no unit)
+   *  @param  checkValue Check 'value' for conformance with VR (IS)
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  OFCondition setPixelAspectRatio(const OFString& verticalPixelSize,
+                                  const OFString& horizontalPixelSize,
+                                  const OFBool checkValue = OFTrue)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->setPixelAspectRatio(verticalPixelSize, horizontalPixelSize, checkValue);
+    return IOD_EC_InvalidPixelData;
+
+  }
+
+  /** Write pixel module base class data to given item
+   *  @param  dataset The item to write to (usually dataset level)
+   *  @return EC_Normal if successful, error otherwise
+   */
+  OFCondition write(DcmItem& dataset)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->write(dataset);
+    return IOD_EC_InvalidPixelData;
+
+  }
+
+  /** Read pixel module base class data from given item
+   *  @param  dataset The item to read from (usually dataset level)
+   *  @return EC_Normal if successful, error otherwise
+   */
+  OFCondition read(DcmItem& dataset)
+  {
+    if (IODImagePixelBase* pBase = OFvisit<IODImagePixelBase*>(IODImagePixelVariantBaseVisitor(), *this))
+      return pBase->read(dataset);
+    return IOD_EC_InvalidPixelData;
+  }
+
+};
+
+#endif // MODIMAGEPIXELBASE_H
diff --git a/dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h b/dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h
index 1d92731..83ff45e 100644
--- a/dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h
+++ b/dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h
@@ -261,7 +261,8 @@ public:
   /** Convenience method to add Dimension Index.
    *  @param  dimensionIndexPointer The Dimension Index Pointer attribute
    *  @param  dimensionOrganizationUID The Dimension Organization UID of the dimension organization
-   *          the pointer refers to
+   *          the pointer refers to. If UID does not exist yet (in the Dimension
+   *          Organization Sequence, it is created there automatically).
    *  @param  functionalGroupPointer The functional group where the pointer attribute can be found
    *  @param  dimensionDescriptionLabel The description label of this dimension (optional)
    *  @param  dimensionIndexPrivateCreator The private creator of the Dimension Index Pointer
diff --git a/dcmiod/include/dcmtk/dcmiod/modsynchronisation.h b/dcmiod/include/dcmtk/dcmiod/modsynchronisation.h
index cc78233..e4a2113 100644
--- a/dcmiod/include/dcmtk/dcmiod/modsynchronisation.h
+++ b/dcmiod/include/dcmtk/dcmiod/modsynchronisation.h
@@ -198,6 +198,29 @@ public:
     virtual OFCondition setNTPSourceAddress(const OFString &value,
                                             const OFBool checkValue = OFTrue);
 
+protected:
+
+  /** Check whether given string is a valid value for attribute
+   *  Acquisition Time Synchronized
+   *  @param  value The value to check
+   *  @return OFTrue if value is valid for this attribute, OFFalse otherwise
+   */
+  virtual OFBool isValidAcquisitionTimeSynchronized(const OFString& value);
+
+  /** Check whether given string is a valid value for attribute
+   *  Time Distribution Protocol
+   *  @param  value The value to check
+   *  @return OFTrue if value is valid for this attribute, OFFalse otherwise
+   */
+  virtual OFBool isValidTimeDistributionProtocol(const OFString& value);
+
+  /** Check whether given string is a valid value for attribute
+   *  Synchronization Trigger
+   *  @param  value The value to check
+   *  @return OFTrue if value is valid for this attribute, OFFalse otherwise
+   */
+  virtual OFBool isValidSynchronizationTrigger(const OFString& value);
+
 private:
 
     /// Module name "SynchronizationModule"
diff --git a/dcmiod/libsrc/CMakeLists.txt b/dcmiod/libsrc/CMakeLists.txt
index 51d62ff..15a9f58 100644
--- a/dcmiod/libsrc/CMakeLists.txt
+++ b/dcmiod/libsrc/CMakeLists.txt
@@ -1,9 +1,9 @@
 # create library from source files
 DCMTK_ADD_LIBRARY(dcmiod
   cielabutil
+  iodcontentitemmacro
   iodcommn
   iodmacro
-  iodimage
   iodrules
   iodreferences
   iodutil
@@ -15,12 +15,14 @@ DCMTK_ADD_LIBRARY(dcmiod
   modenhusimage
   modenhusseries
   modequipment
+  modfloatingpointimagepixel
   modfor
   modgeneralimage
   modgeneralseries
   modgeneralstudy
   modhelp
   modimagepixel
+  modimagepixelbase
   modmultiframefg
   modmultiframedimension
   modpatient
diff --git a/dcmiod/libsrc/Makefile.dep b/dcmiod/libsrc/Makefile.dep
index 21270be..944fe00 100644
--- a/dcmiod/libsrc/Makefile.dep
+++ b/dcmiod/libsrc/Makefile.dep
@@ -136,25 +136,21 @@ iodcommn.o: iodcommn.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/iodreferences.h \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
-iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmiod/iodimage.h ../include/dcmtk/dcmiod/iodcommn.h \
- ../include/dcmtk/dcmiod/iodrules.h \
+iodcontentitemmacro.o: iodcontentitemmacro.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
- ../../ofstd/include/dcmtk/ofstd/ofstream.h \
- ../../ofstd/include/dcmtk/ofstd/ofmap.h \
- ../../ofstd/include/dcmtk/ofstd/ofutil.h \
- ../../ofstd/include/dcmtk/ofstd/oftraits.h \
- ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
- ../../ofstd/include/dcmtk/ofstd/ofcond.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
- ../include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
  ../../oflog/include/dcmtk/oflog/oflog.h \
  ../../oflog/include/dcmtk/oflog/logger.h \
  ../../oflog/include/dcmtk/oflog/config.h \
@@ -179,39 +175,53 @@ iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
  ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/oflimits.h \
  ../../config/include/dcmtk/config/arith.h \
- ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/cielabutil.h \
- ../include/dcmtk/dcmiod/modpatient.h \
- ../../ofstd/include/dcmtk/ofstd/ofmem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
- ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmiod/iodcontentitemmacro.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../include/dcmtk/dcmiod/modbase.h ../include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
  ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
@@ -219,18 +229,10 @@ iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
- ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
@@ -254,22 +256,7 @@ iodimage.o: iodimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmiod/modbase.h \
- ../include/dcmtk/dcmiod/modpatientstudy.h \
- ../../ofstd/include/dcmtk/ofstd/ofoption.h \
- ../../ofstd/include/dcmtk/ofstd/ofalign.h \
- ../include/dcmtk/dcmiod/modgeneralstudy.h \
- ../include/dcmtk/dcmiod/iodmacro.h \
- ../include/dcmtk/dcmiod/modequipment.h \
- ../include/dcmtk/dcmiod/modgeneralseries.h \
- ../include/dcmtk/dcmiod/modfor.h ../include/dcmtk/dcmiod/modsopcommon.h \
- ../include/dcmtk/dcmiod/modcommoninstanceref.h \
- ../include/dcmtk/dcmiod/iodreferences.h \
- ../include/dcmtk/dcmiod/modgeneralimage.h \
- ../include/dcmtk/dcmiod/modimagepixel.h \
- ../include/dcmtk/dcmiod/iodutil.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
 iodmacro.o: iodmacro.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/iodmacro.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -453,6 +440,8 @@ iodreferences.o: iodreferences.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
  ../../ofstd/include/dcmtk/ofstd/ofutil.h \
@@ -628,6 +617,8 @@ iodutil.o: iodutil.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
  ../../ofstd/include/dcmtk/ofstd/ofutil.h \
@@ -641,9 +632,7 @@ iodutil.o: iodutil.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcuid.h
 modacquisitioncontext.o: modacquisitioncontext.cc \
  ../../config/include/dcmtk/config/osconfig.h \
@@ -832,6 +821,8 @@ modbase.o: modbase.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h
 modcommoninstanceref.o: modcommoninstanceref.cc \
  ../../config/include/dcmtk/config/osconfig.h \
@@ -1029,7 +1020,9 @@ modenhequipment.o: modenhequipment.cc \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
 modenhusimage.o: modenhusimage.cc \
  ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modenhusimage.h \
@@ -1349,7 +1342,83 @@ modequipment.o: modequipment.cc \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
+modfloatingpointimagepixel.o: modfloatingpointimagepixel.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmiod/modfloatingpointimagepixel.h \
+ ../include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/cielabutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
 modfor.o: modfor.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modfor.h ../include/dcmtk/dcmiod/modbase.h \
  ../../ofstd/include/dcmtk/ofstd/ofmem.h \
@@ -1420,7 +1489,9 @@ modfor.o: modfor.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
 modgeneralimage.o: modgeneralimage.cc \
  ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modgeneralimage.h \
@@ -1808,6 +1879,7 @@ modhelp.o: modhelp.cc ../../config/include/dcmtk/config/osconfig.h \
 modimagepixel.o: modimagepixel.cc \
  ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modimagepixel.h \
+ ../include/dcmtk/dcmiod/modimagepixelbase.h \
  ../include/dcmtk/dcmiod/modbase.h \
  ../../ofstd/include/dcmtk/ofstd/ofmem.h \
  ../../ofstd/include/dcmtk/ofstd/ofutil.h \
@@ -1877,7 +1949,84 @@ modimagepixel.o: modimagepixel.cc \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
+modimagepixelbase.o: modimagepixelbase.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../include/dcmtk/dcmiod/ioddef.h ../include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/cielabutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
 modmultiframedimension.o: modmultiframedimension.cc \
  ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modmultiframedimension.h \
@@ -1954,7 +2103,9 @@ modmultiframedimension.o: modmultiframedimension.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
 modmultiframefg.o: modmultiframefg.cc \
  ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modmultiframefg.h \
@@ -2547,7 +2698,9 @@ modsynchronization.o: modsynchronization.cc \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
 modusfor.o: modusfor.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/modusfor.h \
  ../../ofstd/include/dcmtk/ofstd/ofoption.h \
@@ -2621,4 +2774,6 @@ modusfor.o: modusfor.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmiod/iodutil.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h
diff --git a/dcmiod/libsrc/Makefile.in b/dcmiod/libsrc/Makefile.in
index 5cfeb14..64eb266 100644
--- a/dcmiod/libsrc/Makefile.in
+++ b/dcmiod/libsrc/Makefile.in
@@ -20,14 +20,13 @@ LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include -I$(dcmdatadir)/incl
 
 LOCALDEFS =
 
-objs =  cielabutil.o iodcommn.o  iodmacro.o iodimage.o iodrules.o iodutil.o \
-	iodtypes.o modacquisitioncontext.o modbase.o modcommoninstanceref.o \
+objs =  cielabutil.o iodcommn.o  iodcontentitemmacro.o iodmacro.o iodreferences.o iodrules.o \
+	iodtypes.o iodutil.o modacquisitioncontext.o modbase.o modcommoninstanceref.o \
 	modenhequipment.o modenhusimage.o modenhusseries.o modequipment.o \
-	modfor.o modgeneralimage.o modgeneralseries.o modgeneralstudy.o \
-	modhelp.o  modimagepixel.o  modmultiframefg.o  \
-	modmultiframedimension.o  modpatient.o  modpatientstudy.o \
-	modsegmentationseries.o  modsopcommon.o  modsynchronization.o \
-	modusfor.o
+	modfloatingpointimagepixel.o modfor.o modgeneralimage.o modgeneralseries.o \
+	modgeneralstudy.o modhelp.o  modimagepixelbase.o modimagepixel.o modmultiframedimension.o \
+	modmultiframefg.o modpatient.o  modpatientstudy.o modsegmentationseries.o modsopcommon.o \
+	modsynchronization.o modusfor.o
 
 
 library = libdcmiod.$(LIBEXT)
diff --git a/dcmiod/libsrc/iodcommn.cc b/dcmiod/libsrc/iodcommn.cc
index 467d91c..03c7f97 100644
--- a/dcmiod/libsrc/iodcommn.cc
+++ b/dcmiod/libsrc/iodcommn.cc
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2015, Open Connections GmbH
+ *  Copyright (C) 2015-2016, Open Connections GmbH
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation are maintained by
@@ -51,6 +51,32 @@ DcmIODCommon::DcmIODCommon()
 }
 
 
+DcmIODCommon::DcmIODCommon(const DcmIODCommon& rhs)
+: m_Item(rhs.m_Item),
+  m_Rules(rhs.m_Rules),
+  m_Patient(m_Item, m_Rules),
+  m_PatientStudy(m_Item, m_Rules),
+  m_Study(m_Item, m_Rules),
+  m_Equipment(m_Item, m_Rules),
+  m_Series(m_Item, m_Rules),
+  m_FrameOfReference(m_Item, m_Rules),
+  m_SOPCommon(m_Item, m_Rules),
+  m_CommonInstanceReferenceModule(m_Item, m_Rules),
+  m_Modules()
+{
+  // Set initial values for a new SOP instance
+  ensureInstanceUIDs(OFFalse);
+  m_Modules.push_back(&m_Patient);
+  m_Modules.push_back(&m_PatientStudy);
+  m_Modules.push_back(&m_Study);
+  m_Modules.push_back(&m_Equipment);
+  m_Modules.push_back(&m_Series);
+  m_Modules.push_back(&m_FrameOfReference);
+  m_Modules.push_back(&m_SOPCommon);
+  m_Modules.push_back(&m_CommonInstanceReferenceModule);
+}
+
+
 DcmIODCommon::~DcmIODCommon()
 {
 }
@@ -58,12 +84,13 @@ DcmIODCommon::~DcmIODCommon()
 
 void DcmIODCommon::clearData()
 {
-  OFVector<IODModule*>::iterator it = m_Modules.begin();
-  while (it != m_Modules.end())
-  {
-    (*it)->clearData();
-    it++;
-  }
+  // TODO
+//   OFVector<IODModule*>::iterator it = m_Modules.begin();
+//   while (it != m_Modules.end())
+//   {
+//     (*it)->clearData();
+//     it++;
+//   }
 }
 
 
@@ -178,6 +205,42 @@ OFCondition DcmIODCommon::import(DcmItem& dataset,
 }
 
 
+OFCondition DcmIODCommon::importPatientStudyFoR(const OFString& filename,
+                                                const OFBool usePatient,
+                                                const OFBool useStudy,
+                                                const OFBool useSeries,
+                                                const OFBool useFoR)
+{
+  DCMIOD_WARN("This function is deprecated and will be removed in later versions of DCMTK, please use import()");
+  return import(filename, usePatient, useStudy, useSeries, useFoR);
+}
+
+
+OFCondition DcmIODCommon::import(const OFString& filename,
+                                 const OFBool usePatient,
+                                 const OFBool useStudy,
+                                 const OFBool useSeries,
+                                 const OFBool useFoR)
+{
+  DcmFileFormat dcmff;
+  OFCondition result = dcmff.loadFile(filename.c_str());
+  if ( result.good() )
+  {
+    DcmDataset *dset = dcmff.getDataset();
+    if (dset != NULL)
+    {
+      result = import(*dset, usePatient, useStudy, useSeries, useFoR);
+    }
+    else
+    {
+      DCMIOD_ERROR("Unable to get dataset from file for copying patient, study, series and/or frame of reference information");
+      result = EC_IllegalCall;
+    }
+  }
+  return result;
+}
+
+
 void DcmIODCommon::ensureInstanceUIDs(const OFBool correctInvalid)
 {
   m_Study.ensureInstanceUID(correctInvalid);
diff --git a/dcmiod/libsrc/iodcontentitemmacro.cc b/dcmiod/libsrc/iodcontentitemmacro.cc
new file mode 100644
index 0000000..bc76df8
--- /dev/null
+++ b/dcmiod/libsrc/iodcontentitemmacro.cc
@@ -0,0 +1,800 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Content Item Macro
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/ofstd/ofstream.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmdata/dcvrcs.h"
+#include "dcmtk/dcmdata/dcvrdt.h"
+#include "dcmtk/dcmdata/dcvrda.h"
+#include "dcmtk/dcmdata/dcvrtm.h"
+
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmiod/iodcontentitemmacro.h"
+
+const OFString ContentItemMacro::ReferencedSOPSequenceItem::m_ComponentName = "ReferencedSOPSequenceItem";
+
+
+ContentItemMacro::ReferencedSOPSequenceItem::ReferencedSOPSequenceItem(OFshared_ptr<DcmItem> item,
+                                                     OFshared_ptr<IODRules> rules,
+                                                     IODComponent* parent)
+: IODComponent(item, rules, parent)
+{
+  // reset element rules
+  resetRules();
+}
+
+
+ContentItemMacro::ReferencedSOPSequenceItem::ReferencedSOPSequenceItem(IODComponent* parent)
+: IODComponent(parent)
+{
+  // reset element rules
+  resetRules();
+}
+
+
+ContentItemMacro::ReferencedSOPSequenceItem::ReferencedSOPSequenceItem(const ReferencedSOPSequenceItem& rhs)
+: IODComponent(rhs)
+{
+}
+
+
+ContentItemMacro::ReferencedSOPSequenceItem::~ReferencedSOPSequenceItem()
+{
+  // nothing to do
+}
+
+
+OFString ContentItemMacro::ReferencedSOPSequenceItem::getName() const
+{
+  return m_ComponentName;
+}
+
+
+void ContentItemMacro::ReferencedSOPSequenceItem::resetRules()
+{
+  // parameters are tag, VM, type. Overwrite old rules if any.
+  m_Rules->addRule(new IODRule(DCM_ReferencedFrameNumber, "1-n","1C", getName(), DcmIODTypes::IE_UNDEFINED), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ReferencedSegmentNumber, "1-n","1C", getName(), DcmIODTypes::IE_UNDEFINED), OFTrue);
+}
+
+
+OFCondition ContentItemMacro::ReferencedSOPSequenceItem::read(
+  DcmItem& source,
+  const OFBool clearOldData)
+{
+  if (clearOldData)
+    clearData();
+
+  IODComponent::read(source, OFFalse /* data already cleared */);
+  return EC_Normal;
+}
+
+
+OFCondition ContentItemMacro::ReferencedSOPSequenceItem::write(DcmItem& destination)
+{
+  OFCondition result = EC_Normal;
+
+  result = IODComponent::write(destination);
+
+  return result;
+}
+
+
+SOPInstanceReferenceMacro& ContentItemMacro::ReferencedSOPSequenceItem::getSOPInstanceReferenceMacro()
+{
+  return m_SOPInstanceReferenceMacro;
+}
+
+
+OFCondition ContentItemMacro::ReferencedSOPSequenceItem::getReferencedFrameNumber(
+  OFString &value,
+  const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_ReferencedFrameNumber, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::ReferencedSOPSequenceItem::getReferencedSegmentNumber(
+  Uint16 &value,
+  const signed long pos) const
+{
+  return m_Item->findAndGetUint16(DCM_ReferencedSegmentNumber, value, pos);
+}
+
+
+OFCondition ContentItemMacro::ReferencedSOPSequenceItem::setReferencedFrameNumber(
+  const OFString &value,
+  const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmIntegerString::checkStringValue(value, "1-n") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_ReferencedFrameNumber, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::ReferencedSOPSequenceItem::setReferencedSegmentNumber(
+  const Uint16 value,
+  const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertUint16(DCM_ReferencedSegmentNumber, value);
+}
+
+
+const OFString ContentItemMacro::m_ModuleName = "ContentItemMacro";
+
+
+ContentItemMacro::ContentItemMacro()
+: IODComponent()
+{
+  resetRules();
+}
+
+
+ContentItemMacro::ContentItemMacro(OFshared_ptr<DcmItem> item,
+                                   OFshared_ptr<IODRules> rules)
+: IODComponent(item, rules)
+{
+  // reset element rules
+  resetRules();
+}
+
+
+ContentItemMacro::ContentItemMacro(const ContentItemMacro& rhs)
+: IODComponent(rhs)
+{
+  if (this == &rhs)
+    return;
+
+  OFVector<CodeSequenceMacro*>::const_iterator it = rhs.m_ConceptCodeSequence.begin();
+  while (it != rhs.m_ConceptCodeSequence.end())
+  {
+    CodeSequenceMacro* macro = new CodeSequenceMacro(**it);
+    m_ConceptCodeSequence.push_back(macro);
+    it++;
+  }
+
+  it = rhs.m_ConceptNameCodeSequence.begin();
+  while (it != rhs.m_ConceptNameCodeSequence.end())
+  {
+    CodeSequenceMacro* macro = new CodeSequenceMacro(**it);
+    m_ConceptNameCodeSequence.push_back(macro);
+    it++;
+  }
+
+  it = rhs.m_MeasurementUnitsCodeSequence.begin();
+  while (it != rhs.m_MeasurementUnitsCodeSequence.end())
+  {
+    CodeSequenceMacro* macro = new CodeSequenceMacro(**it);
+    m_MeasurementUnitsCodeSequence.push_back(macro);
+    it++;
+  }
+
+  OFVector<ReferencedSOPSequenceItem*>::const_iterator m = rhs.m_ReferencedSOPSequence.begin();
+  while (m != rhs.m_ReferencedSOPSequence.end())
+  {
+    ReferencedSOPSequenceItem* item = new ReferencedSOPSequenceItem(**m);
+    m_ReferencedSOPSequence.push_back(item);
+    m++;
+  }
+
+}
+
+
+ContentItemMacro::~ContentItemMacro()
+{
+  DcmIODUtil::freeContainer(m_ConceptNameCodeSequence);
+  DcmIODUtil::freeContainer(m_ConceptCodeSequence);
+  DcmIODUtil::freeContainer(m_MeasurementUnitsCodeSequence);
+  DcmIODUtil::freeContainer(m_ReferencedSOPSequence);
+}
+
+
+OFString ContentItemMacro::getName() const
+{
+  return m_ModuleName;
+}
+
+
+void ContentItemMacro::resetRules()
+{
+  // parameters are tag, VM, type. Overwrite old rules if any.
+  m_Rules->addRule(new IODRule(DCM_ValueType, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ConceptNameCodeSequence, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DateTime, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Date, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Time, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PersonName, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_UID, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_TextValue, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ConceptCodeSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_NumericValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_FloatingPointValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_RationalNumeratorValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_RationalDenominatorValue, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_MeasurementUnitsCodeSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ReferencedSOPSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+}
+
+
+OFCondition ContentItemMacro::read(DcmItem& source,
+                                   const OFBool clearOldData)
+{
+  if (clearOldData)
+    clearData();
+
+  IODComponent::read(source, OFFalse /* data already cleared */);
+  DcmIODUtil::readSubSequence(source, DCM_ConceptNameCodeSequence, m_ConceptNameCodeSequence, m_Rules->getByTag(DCM_ConceptNameCodeSequence));
+  DcmIODUtil::readSubSequence(source, DCM_ConceptCodeSequence, m_ConceptCodeSequence, m_Rules->getByTag(DCM_ConceptCodeSequence));
+  DcmIODUtil::readSubSequence(source, DCM_MeasurementUnitsCodeSequence, m_MeasurementUnitsCodeSequence, m_Rules->getByTag(DCM_MeasurementUnitsCodeSequence));
+  DcmIODUtil::readSubSequence(source, DCM_ReferencedSOPSequence, m_ReferencedSOPSequence, m_Rules->getByTag(DCM_ReferencedSOPSequence));
+
+  return EC_Normal;
+}
+
+
+OFCondition ContentItemMacro::write(DcmItem& destination)
+{
+  OFCondition result = EC_Normal;
+
+  if(CodeSequenceMacro* pConceptNameCodeSequence = getConceptNameCodeSequence())
+    DcmIODUtil::writeSingleItem(result, DCM_ConceptNameCodeSequence, *pConceptNameCodeSequence, *m_Item, m_Rules->getByTag(DCM_ConceptNameCodeSequence));
+  if(CodeSequenceMacro* pConceptCodeSequence = getConceptCodeSequence())
+    DcmIODUtil::writeSingleItem(result, DCM_ConceptCodeSequence, *pConceptCodeSequence, *m_Item, m_Rules->getByTag(DCM_ConceptCodeSequence));
+  if(CodeSequenceMacro* pMeasurementUnitsCodeSequence = getMeasurementUnitsCodeSequence())
+    DcmIODUtil::writeSingleItem(result, DCM_MeasurementUnitsCodeSequence, *pMeasurementUnitsCodeSequence, *m_Item, m_Rules->getByTag(DCM_MeasurementUnitsCodeSequence));
+  if(ReferencedSOPSequenceItem* pReferencedSOPSequence = getReferencedSOPSequence())
+    DcmIODUtil::writeSingleItem(result, DCM_ReferencedSOPSequence, *pReferencedSOPSequence, *m_Item, m_Rules->getByTag(DCM_ReferencedSOPSequence));
+
+  if (result.good())
+  {
+    result = IODComponent::write(destination);
+  }
+
+  return result;
+}
+
+
+OFCondition ContentItemMacro::getValueType(OFString &value,
+                                           const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_ValueType, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getValueType(ValueType& value) const
+{
+  OFString str;
+  OFCondition result = DcmIODUtil::getStringValueFromItem(DCM_ValueType, *m_Item, str, 0);
+  if (result == EC_Normal)
+  {
+    if (!str.empty())
+    {
+      if (str == "DATE")
+        value = VT_DATE;
+      else if (str == "TIME")
+        value = VT_TIME;
+      else if (str == "DATETIME")
+        value = VT_DATETIME;
+      else if (str == "PNAME")
+        value = VT_PNAME;
+      else if (str == "UIDREF")
+        value = VT_UIDREF;
+      else if (str == "TEXT")
+        value = VT_TEXT;
+      else if (str == "CODE")
+        value = VT_CODE;
+      else if (str == "NUMERIC")
+        value = VT_NUMERIC;
+      else if (str == "COMPOSITE")
+        value = VT_COMPOSITE;
+      else if (str == "IMAGE")
+        value = VT_IMAGE;
+      else
+        value = VT_UNKNOWN;
+    }
+    else
+    {
+      value = VT_EMPTY;
+    }
+  }
+  else if (result == EC_TagNotFound)
+  {
+    value = VT_EMPTY;
+  }
+  else
+  {
+    DCMIOD_ERROR("Unexpected error, could not get Value Type: " << result.text());
+    value = VT_UNKNOWN;
+  }
+  return result;
+}
+
+
+CodeSequenceMacro* ContentItemMacro::getConceptNameCodeSequence()
+{
+  return m_ConceptNameCodeSequence.empty() ? OFnullptr : *m_ConceptNameCodeSequence.begin();
+}
+
+OFVector<CodeSequenceMacro*>& ContentItemMacro::getEntireConceptNameCodeSequence()
+{
+  return m_ConceptNameCodeSequence;
+}
+
+
+OFCondition ContentItemMacro::getDateTime(OFString &value,
+                                          const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_DateTime, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getDate(OFString &value,
+                                      const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_Date, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getTime(OFString &value,
+                                      const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_Time, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getPersonName(OFString &value,
+                                            const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_PersonName, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getUID(OFString &value,
+                                     const signed long pos) const
+{
+  return m_Item->findAndGetOFString(DCM_UID, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getTextValue(OFString &value,
+                                           const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_TextValue, *m_Item, value, pos);
+}
+
+
+CodeSequenceMacro* ContentItemMacro::getConceptCodeSequence()
+{
+  return m_ConceptCodeSequence.empty() ? OFnullptr : *m_ConceptCodeSequence.begin();
+}
+
+OFVector<CodeSequenceMacro*>& ContentItemMacro::getEntireConceptCodeSequence()
+{
+  return m_ConceptCodeSequence;
+}
+
+
+OFCondition ContentItemMacro::getNumericValue(OFString &value,
+                                              const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_NumericValue, *m_Item, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getFloatingPointValue(Float64 &value,
+                                                    const signed long pos) const
+{
+  return m_Item->findAndGetFloat64(DCM_FloatingPointValue, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getRationalNumeratorValue(Sint32 &value,
+                                                        const signed long pos) const
+{
+  return m_Item->findAndGetSint32(DCM_RationalNumeratorValue, value, pos);
+}
+
+
+OFCondition ContentItemMacro::getRationalDenominatorValue(Uint32 &value,
+                                                          const signed long pos) const
+{
+  return m_Item->findAndGetUint32(DCM_RationalDenominatorValue, value, pos);
+}
+
+
+CodeSequenceMacro* ContentItemMacro::getMeasurementUnitsCodeSequence()
+{
+  return m_MeasurementUnitsCodeSequence.empty() ? OFnullptr : *m_MeasurementUnitsCodeSequence.begin();
+}
+
+OFVector<CodeSequenceMacro*>& ContentItemMacro::getEntireMeasurementUnitsCodeSequence()
+{
+  return m_MeasurementUnitsCodeSequence;
+}
+
+
+ContentItemMacro::ReferencedSOPSequenceItem* ContentItemMacro::getReferencedSOPSequence()
+{
+  return m_ReferencedSOPSequence.empty() ? OFnullptr : *m_ReferencedSOPSequence.begin();
+}
+
+OFVector<ContentItemMacro::ReferencedSOPSequenceItem*>& ContentItemMacro::getEntireReferencedSOPSequence()
+{
+  return m_ReferencedSOPSequence;
+}
+
+
+OFCondition ContentItemMacro::setValueType(const OFString &value,
+                                           const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_ValueType, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setValueType(const ContentItemMacro::ValueType value,
+                                           const OFBool checkValue)
+{
+  (void)checkValue;
+  OFCondition result;
+  switch (value)
+  {
+    case VT_DATE:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "DATE");
+      break;
+    }
+    case VT_TIME:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "TIME");
+      break;
+    }
+    case VT_DATETIME:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "DATETIME");
+      break;
+    }
+    case VT_PNAME:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "PNAME");
+      break;
+    }
+    case VT_UIDREF:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "UIDREF");
+      break;
+    }
+    case VT_TEXT:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "TEXT");
+      break;
+    }
+    case VT_CODE:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "CODE");
+      break;
+    }
+    case VT_NUMERIC:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "NUMERIC");
+      break;
+    }
+    case VT_COMPOSITE:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "COMPOSITE");
+      break;
+    }
+    case VT_IMAGE:
+    {
+      result = m_Item->putAndInsertOFStringArray(DCM_ValueType, "IMAGE");
+      break;
+    }
+    default:
+    {
+      result = IOD_EC_InvalidElementValue;
+    }
+  }
+  return result;
+}
+
+
+
+OFCondition ContentItemMacro::setDateTime(const OFString &value,
+                                          const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_DateTime, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setDate(const OFString &value,
+                                      const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_Date, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setTime(const OFString &value,
+                                      const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_Time, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setPersonName(const OFString &value,
+                                            const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmPersonName::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_PersonName, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setUID(const OFString &value,
+                                     const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertOFStringArray(DCM_UID, value);
+}
+
+
+OFCondition ContentItemMacro::setTextValue(const OFString &value,
+                                           const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_TextValue, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setNumericValue(const OFString &value,
+                                              const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1-n") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_NumericValue, value);
+  return result;
+}
+
+
+OFCondition ContentItemMacro::setFloatingPointValue(const Float64 value,
+                                                    const unsigned long pos,
+                                                    const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertFloat64(DCM_FloatingPointValue, value, pos);
+}
+
+
+OFCondition ContentItemMacro::setRationalNumeratorValue(const Sint32 value,
+                                                        const unsigned long pos,
+                                                        const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertSint32(DCM_RationalNumeratorValue, value, pos);
+}
+
+
+OFCondition ContentItemMacro::setRationalDenominatorValue(const Uint32 value,
+                                                          const unsigned long pos,
+                                                          const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertUint32(DCM_RationalDenominatorValue, value, pos);
+}
+
+
+OFString ContentItemMacro::toString()
+{
+  ValueType vt;
+  getValueType(vt);
+  OFStringStream oss;
+  if (getConceptNameCodeSequence())
+  {
+    oss << getConceptNameCodeSequence()->toString() << ": ";
+  }
+  else
+  {
+    oss << "<no name>: ";
+  }
+  switch (vt)
+  {
+    case VT_CODE:
+      oss << "CODE: " << getConceptCodeSequence()->toString();
+      break;
+    case VT_COMPOSITE:
+    {
+      OFString sopClass, sopInstance, frameNumber;
+      if (getReferencedSOPSequence())
+      {
+        getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopClass);
+        getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopInstance);
+        getReferencedSOPSequence()->getReferencedFrameNumber(frameNumber);
+        oss << "COMPOSITE: " << sopClass << " / " << sopInstance;
+        if (!frameNumber.empty())
+        {
+          oss << " / Frames: " << frameNumber;
+        }
+        Uint16 val,pos;
+        val = pos = 0;
+        if (getReferencedSOPSequence()->getReferencedSegmentNumber(val, pos).good())
+        {
+          oss << " / Segments: ";
+          while (getReferencedSOPSequence()->getReferencedSegmentNumber(val, pos).good())
+          {
+            oss << val << " ";
+            pos++;
+          }
+        }
+      }
+      else
+      {
+        oss << "COMPOSITE: <None>";
+      }
+      break;
+    }
+    case VT_DATE:
+    {
+      OFString date;
+      getDate(date);
+      oss << "DATE: " << date;
+      break;
+    }
+    case VT_DATETIME:
+    {
+      OFString datetime;
+      getDateTime(datetime);
+      oss << "DATETIME: " << datetime;
+      break;
+    }
+    case VT_IMAGE:
+    {
+      OFString sopClass, sopInstance, frameNumber;
+      if (getReferencedSOPSequence())
+      {
+        getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopClass);
+        getReferencedSOPSequence()->getSOPInstanceReferenceMacro().getReferencedSOPClassUID(sopInstance);
+        getReferencedSOPSequence()->getReferencedFrameNumber(frameNumber);
+        oss << "IMAGE: " << sopClass << " / " << sopInstance;
+        if (!frameNumber.empty())
+        {
+          oss << " / Frames: " << frameNumber;
+        }
+      }
+      else
+      {
+        oss << "IMAGE: <None>";
+      }
+      break;
+    }
+    case VT_NUMERIC:
+    {
+      OFString val;
+      getNumericValue(val);
+      oss << "NUMERIC: " << val;
+      if (getMeasurementUnitsCodeSequence())
+      {
+        oss << ", Units: " << getMeasurementUnitsCodeSequence()->toString() << ")";
+      }
+      Uint16 pos =0;
+      Float64 fl64 = 0;
+      if (getFloatingPointValue(fl64, pos).good())
+      {
+        oss << ", Float value(s): " ;
+        do
+        {
+          oss << val << " ";
+          pos++;
+        } while (getFloatingPointValue(fl64, pos).good());
+      }
+      else
+      {
+        oss << ", Float value(s): <none>";
+      }
+      pos = 0;
+      Sint32 si32 = 0;
+      if (getRationalNumeratorValue(si32, pos).good())
+      {
+        oss << ", Numerator value(s): " ;
+        do
+        {
+          oss << val << " ";
+          pos++;
+        } while (getRationalNumeratorValue(si32, pos).good());
+      }
+      pos = 0;
+      Uint32 ui32 = 0;
+      if (getRationalDenominatorValue(ui32, pos).good())
+      {
+        oss << ", Denominator value(s): " ;
+        do
+        {
+          oss << val << " ";
+          pos++;
+        } while (getRationalDenominatorValue(ui32, pos).good());
+      }
+
+      break;
+    }
+    case VT_PNAME:
+    {
+      OFString val;
+      getPersonName(val);
+      oss << "PNAME: " << val;
+      break;
+    }
+    case VT_TEXT:
+    {
+      OFString val;
+      getTextValue(val);
+      oss << "TEXT: " << val;
+      break;
+    }
+    case VT_TIME:
+    {
+      OFString val;
+      getTime(val);
+      oss << "TIME: " << val;
+      break;
+    }
+    case VT_UIDREF:
+    {
+      OFString val;
+      getUID(val);
+      oss << "UIDREF: " << val;
+      break;
+    }
+    case VT_EMPTY:
+    {
+      oss << "<None>";
+      break;
+    }
+    case VT_UNKNOWN:
+    {
+      OFString val;
+      getValueType(val);
+      oss << "<Unknown: " << val << ">";
+      break;
+    }
+    default:
+    {
+      oss << "<Internal error>";
+    }
+  }
+  OFSTRINGSTREAM_GETOFSTRING(oss, val);
+  return val;
+}
+
diff --git a/dcmiod/libsrc/iodimage.cc b/dcmiod/libsrc/iodimage.cc
deleted file mode 100644
index 482f7cc..0000000
--- a/dcmiod/libsrc/iodimage.cc
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- *
- *  Copyright (C) 2015, Open Connections GmbH
- *  All rights reserved.  See COPYRIGHT file for details.
- *
- *  This software and supporting documentation are maintained by
- *
- *    OFFIS e.V.
- *    R&D Division Health
- *    Escherweg 2
- *    D-26121 Oldenburg, Germany
- *
- *
- *  Module: dcmiod
- *
- *  Author: Michael Onken
- *
- *  Purpose: Class repres. image IOD by exposing common image IOD attributes
- *
- */
-
-#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
-#include "dcmtk/dcmiod/iodimage.h"
-#include "dcmtk/dcmiod/iodutil.h"
-
-DcmIODImage::DcmIODImage()
-: m_GeneralImage(getData(), getRules()),
-  m_ImagePixel(getData(), getRules())
-{
-  // Nothing to do
-}
-
-
-IODGeneralImageModule& DcmIODImage::getGeneralImage()
-{
-  return m_GeneralImage;
-}
-
-
-IODImagePixelModule& DcmIODImage::getImagePixel()
-{
-  return m_ImagePixel;
-}
-
-
-DcmIODImage::~DcmIODImage()
-{
-  // IOD rules created in DcmIODImage are cleared in DcmIODCommon::~DcmIODCommon()
-}
-
-
-void DcmIODImage::clearData()
-{
-  // clear all attributes from base classes
-  DcmIODCommon::clearData();
-  m_GeneralImage.clearData();
-  m_ImagePixel.clearData();
-}
-
-
-OFCondition DcmIODImage::read(DcmItem &dataset)
-{
-  // re-initialize object
-  DcmIODImage::clearData();
-
-  // read from base classes
-  DcmIODCommon::read(dataset);
-  m_GeneralImage.read(dataset, OFTrue /* clear old data */);
-  m_ImagePixel.read(dataset, OFTrue /* clear old data */);
-
-  return EC_Normal;
-}
-
-
-OFCondition DcmIODImage::write(DcmItem &dataset)
-{
-  OFCondition result = EC_Normal;
-
-  // Write base class attributes to dataset
-  result = DcmIODCommon::write(dataset);
-
-  // Write extra modules to dataset
-  if (result.good())
-    result = m_GeneralImage.write(dataset);
-  if (result.good())
-    result = m_ImagePixel.write(dataset);
-
-  return result;
-}
diff --git a/dcmiod/libsrc/iodmacro.cc b/dcmiod/libsrc/iodmacro.cc
index c95174c..4386202 100644
--- a/dcmiod/libsrc/iodmacro.cc
+++ b/dcmiod/libsrc/iodmacro.cc
@@ -22,6 +22,7 @@
 #include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
 #include "dcmtk/dcmiod/iodmacro.h"
 #include "dcmtk/dcmiod/iodutil.h" // for static IOD helpers
+#include "dcmtk/ofstd/ofstream.h"
 
 
 // --------------------------- Code Sequence Macro ---------------------------
@@ -144,6 +145,30 @@ OFCondition CodeSequenceMacro::getCodeMeaning(OFString &value,
 }
 
 
+OFBool CodeSequenceMacro::empty()
+{
+  OFString val;
+  getCodeValue(val);
+  if (val.empty())
+  {
+    getCodingSchemeDesignator(val);
+    if (val.empty())
+    {
+      getCodingSchemeVersion(val);
+      if (val.empty())
+      {
+        getCodingSchemeDesignator(val);
+        if (val.empty())
+        {
+          return OFTrue;
+        }
+      }
+    }
+  }
+  return OFFalse;
+}
+
+
 // -- set dicom attributes --
 
 OFCondition CodeSequenceMacro::setCodeValue(const OFString &value,
@@ -204,6 +229,7 @@ OFCondition CodeSequenceMacro::set(const OFString& value,
   return result;
 }
 
+
 // ---------------------- CodeWithModifiers----------------------
 
 CodeWithModifiers::CodeWithModifiers(const OFString& modifierType,
@@ -265,7 +291,10 @@ OFCondition CodeWithModifiers::check(const OFBool quiet)
   }
   if (result.bad())
   {
-    DCMIOD_ERROR("Invalid code in Code Sequence Macro or its modifiers");
+    if (!quiet)
+    {
+      DCMIOD_ERROR("Invalid code in Code Sequence Macro or its modifiers");
+    }
   }
   return result;
 }
@@ -368,6 +397,20 @@ CodeWithModifiers::~CodeWithModifiers()
 }
 
 
+OFString CodeSequenceMacro::toString()
+{
+  OFString d,m,v;
+  getCodeValue(v);
+  getCodeMeaning(m);
+  getCodingSchemeDesignator(d);
+  OFStringStream oss;
+  oss << "(" << d << "," << v << "," << m << ")";
+  OFSTRINGSTREAM_GETOFSTRING(oss, msg);
+  return msg;
+
+}
+
+
 // ---------------------- SeriesAndInstanceReferenceMacro----------------------
 
 const OFString IODSeriesAndInstanceReferenceMacro::m_ComponentName = "SeriesAndInstanceReferenceMacro";
@@ -689,8 +732,7 @@ OFCondition ImageSOPInstanceReferenceMacro::create(const OFString& sopClassUID,
 OFCondition ImageSOPInstanceReferenceMacro::create(const OFString& sopClassUID,
                                                    const OFString& sopInstanceUID,
                                                    const OFVector< Uint16 >& refFramesOrSegments,
-                                                   ImageSOPInstanceReferenceMacro*& result
-                                                   )
+                                                   ImageSOPInstanceReferenceMacro*& result)
 {
   OFCondition cond = create(sopClassUID, sopInstanceUID, result);
   if (cond.good())
@@ -828,7 +870,7 @@ GeneralAnatomyMacro::GeneralAnatomyMacro(const OFString& type) :
   m_Type(type),
   m_AnatomicRegion(),
   m_AnatomicRegionModifier(),
-  m_PrimaryAnatomicStructure()
+  m_PrimaryAnatomicStructure("3" /* Modifier in Primary Anatomic Structure is always optional */, "1", DCM_PrimaryAnatomicStructureModifierSequence)
 {
   m_Type = type;
 }
@@ -838,12 +880,19 @@ GeneralAnatomyMacro::GeneralAnatomyMacro(const GeneralAnatomyMacro& rhs)
 :  m_Type(rhs.m_Type),
    m_AnatomicRegion(),
    m_AnatomicRegionModifier(),
-   m_PrimaryAnatomicStructure()
+   m_PrimaryAnatomicStructure("3" /* Modifier in Primary Anatomic Structure is always optional */, "1", DCM_PrimaryAnatomicStructureModifierSequence)
+{
+  *this = rhs;
+}
+
+
+GeneralAnatomyMacro& GeneralAnatomyMacro::operator=(const GeneralAnatomyMacro& rhs)
 {
   if (this != &rhs)
   {
+    clearData();
     m_Type = rhs.m_Type;
-    m_AnatomicRegion = m_AnatomicRegion;
+    m_AnatomicRegion = rhs.m_AnatomicRegion;
     m_PrimaryAnatomicStructure = rhs.m_PrimaryAnatomicStructure;
 
     OFVector<CodeSequenceMacro*>::const_iterator it = rhs.m_AnatomicRegionModifier.begin();
@@ -853,6 +902,7 @@ GeneralAnatomyMacro::GeneralAnatomyMacro(const GeneralAnatomyMacro& rhs)
       it++;
     }
   }
+  return *this;
 }
 
 
@@ -884,7 +934,12 @@ OFCondition GeneralAnatomyMacro::check(const OFBool quiet)
     if (result.bad()) return result;
     it++;
   }
-  result = m_PrimaryAnatomicStructure.check(quiet);
+  // Primary Anatomic Structure is optional (type 3), so only check if
+  // user intended to fill in something.
+  if (!m_PrimaryAnatomicStructure.empty())
+  {
+    result = m_PrimaryAnatomicStructure.check(quiet);
+  }
   return result;
 }
 
@@ -920,7 +975,10 @@ OFCondition GeneralAnatomyMacro::read(DcmItem& source,
   /* read Anatomic Region Sequence item into Code Sequence Macro */
   DcmIODUtil::readSingleItem<CodeSequenceMacro>(source, DCM_AnatomicRegionSequence, m_AnatomicRegion, m_Type, "GeneralAnatomyMacro");
 
-  /* Get the single item from Anatomic Region Sequence */
+  /* read Primary Anatomic Structure Macro (main level, i.e.\ original item) */
+  DcmIODUtil::readSingleItem(source, DCM_PrimaryAnatomicStructureSequence, m_PrimaryAnatomicStructure, "3", "GeneralAnatomyMacro");
+
+  /* Get the single item from Anatomic Region Sequence and read modifier if found */
   DcmItem* localItem = NULL;
   if ( source.findAndGetSequenceItem(DCM_AnatomicRegionSequence, localItem).bad() )
   {
@@ -936,9 +994,6 @@ OFCondition GeneralAnatomyMacro::read(DcmItem& source,
     "3",
     "GeneralAnatomyMacro" );
 
-  /* read Primary Anatomic Structure Macro (main level, i.e.\ original item) */
-  m_PrimaryAnatomicStructure.read(source);
-
   return result;
 }
 
@@ -950,295 +1005,60 @@ OFCondition GeneralAnatomyMacro::write(DcmItem& item)
 
   /* delete old data */
   item.findAndDeleteElement(DCM_AnatomicRegionSequence);
+  item.findAndDeleteElement(DCM_PrimaryAnatomicStructureSequence);
 
   /* Write sub structures */
   DcmIODUtil::writeSingleItem<CodeSequenceMacro>(result, DCM_AnatomicRegionSequence, m_AnatomicRegion, item, m_Type, "GeneralAnatomyMacro");
-  DcmIODUtil::writeSubSequence<OFVector<CodeSequenceMacro*> >
-  ( result,
-    DCM_AnatomicRegionModifierSequence,
-    m_AnatomicRegionModifier,
-    item,
-    "1-n",
-    "3",
-    "GeneralAnatomyMacro");
-  return result;
-}
-
-
-GeneralAnatomyMacro& GeneralAnatomyMacro::operator=(const GeneralAnatomyMacro& rhs)
-{
-  if (this != &rhs)
+  if (result.good())
   {
-    clearData();
-    m_Type = rhs.m_Type;
-    m_AnatomicRegion = rhs.m_AnatomicRegion;
-    m_PrimaryAnatomicStructure = rhs.m_PrimaryAnatomicStructure;
-
-    OFVector<CodeSequenceMacro*>::const_iterator it = rhs.m_AnatomicRegionModifier.begin();
-    while ( it != rhs.m_AnatomicRegionModifier.end() )
+    DcmItem* seqItem = NULL;
+    result = item.findAndGetSequenceItem(DCM_AnatomicRegionSequence, seqItem, 0);
+    if (result.good())
     {
-      m_AnatomicRegionModifier.push_back( new CodeSequenceMacro(**it) );
-      it++;
+      DcmIODUtil::writeSubSequence<OFVector<CodeSequenceMacro*> >
+      ( result,
+        DCM_AnatomicRegionModifierSequence,
+        m_AnatomicRegionModifier,
+        *seqItem,
+        "1-n",
+        "3",
+        "GeneralAnatomyMacro");
     }
   }
-  return *this;
-}
-
-
-// ---------------------- PrimaryAnatomicStructureMacroItem ------------------
-
-PrimaryAnatomicStructureMacroItem::PrimaryAnatomicStructureMacroItem() :
-  m_AnatomicStructure(),
-  m_AnatomicStructureModifier()
-{
+  DcmIODUtil::writeSingleItem(result, DCM_PrimaryAnatomicStructureSequence, m_PrimaryAnatomicStructure, item, "3", "GeneralAnatomyMacro");
+  return result;
 }
 
 
-PrimaryAnatomicStructureMacroItem::PrimaryAnatomicStructureMacroItem(const PrimaryAnatomicStructureMacroItem& rhs) :
-  m_AnatomicStructure(),
-  m_AnatomicStructureModifier()
+int GeneralAnatomyMacro::compare(const GeneralAnatomyMacro& rhs) const
 {
-  if (this != &rhs)
+  int result = m_AnatomicRegion.compare(rhs.m_AnatomicRegion);
+  if (result == 0)
   {
-    m_AnatomicStructure = rhs.m_AnatomicStructure;
-    OFVector<CodeSequenceMacro*>::const_iterator it = rhs.m_AnatomicStructureModifier.begin();
-    while ( it != rhs.m_AnatomicStructureModifier.begin() )
+    if (m_AnatomicRegionModifier.size() > rhs.m_AnatomicRegionModifier.size())
     {
-      m_AnatomicStructureModifier.push_back(new CodeSequenceMacro(**it));
-      it++;
+      return 1;
     }
-  }
-}
-
-
-PrimaryAnatomicStructureMacroItem& PrimaryAnatomicStructureMacroItem::operator=(const PrimaryAnatomicStructureMacroItem& rhs)
-{
-  if (this != &rhs)
-  {
-    clearData();
-    m_AnatomicStructure = rhs.m_AnatomicStructure;
-    OFVector<CodeSequenceMacro*>::const_iterator it = rhs.m_AnatomicStructureModifier.begin();
-    while ( it != rhs.m_AnatomicStructureModifier.begin() )
+    else if (m_AnatomicRegionModifier.size() < rhs.m_AnatomicRegionModifier.size())
     {
-      m_AnatomicStructureModifier.push_back(new CodeSequenceMacro(**it));
-      it++;
+      return -1;
     }
-  }
-  return *this;
-}
-
-
-PrimaryAnatomicStructureMacroItem::~PrimaryAnatomicStructureMacroItem()
-{
-  clearData();
-}
-
-
-void PrimaryAnatomicStructureMacroItem::clearData()
-{
-  m_AnatomicStructure.clearData();
-  m_AnatomicStructureModifier.clear();
-  DcmIODUtil::freeContainer(m_AnatomicStructureModifier);
-}
-
-
-OFCondition PrimaryAnatomicStructureMacroItem::check(const OFBool quiet)
-{
-  OFCondition result = m_AnatomicStructure.check();
-  if (result.bad()) return result;
-
-  OFVector<CodeSequenceMacro*>::iterator it = m_AnatomicStructureModifier.begin();
-  while (it != m_AnatomicStructureModifier.end())
-  {
-    result = (*it)->check(quiet);
-    if (result.bad())
-      return result;
-    it++;
-  }
-  return result;
-}
-
-
-
-CodeSequenceMacro& PrimaryAnatomicStructureMacroItem::getAnatomicStructure()
-{
-  return m_AnatomicStructure;
-}
-
-
-OFVector<CodeSequenceMacro*>& PrimaryAnatomicStructureMacroItem::getAnatomicStructureModifier()
-{
-  return m_AnatomicStructureModifier;
-}
 
-
-OFCondition PrimaryAnatomicStructureMacroItem::read(DcmItem& source,
-                                                    const OFBool clearOldData)
-{
-  OFCondition result = EC_Normal;
-
-  /* re-initialize object */
-  if (clearOldData)
-    clearData();
-
-  m_AnatomicStructure.read(source);
-
-  /* check whether cardinality of Primary Anatomic Structure Modifier Sequence and type is ok (produces warnings if not) */
-  DcmIODUtil::checkSubSequence(result, source, DCM_PrimaryAnatomicStructureModifierSequence, "1-n", "3", "PrimaryAnatomicStructureMacro");
-
-  /* read Primary Anatomic Structure Modifier Sequence */
-  DcmIODUtil::readSubSequence<OFVector<CodeSequenceMacro*> >
-  ( source, /* item of Primary Anatomic Structure Sequence */
-    DCM_PrimaryAnatomicStructureModifierSequence,
-    m_AnatomicStructureModifier,
-    "1-n",
-    "3",
-    "GeneralAnatomyMacro" );
-
-  return result;
-}
-
-
-/// Write Primary Anatomic Structure Sequence Item to given item
-OFCondition PrimaryAnatomicStructureMacroItem::write(DcmItem& source)
-{
-  OFCondition result;
-  m_AnatomicStructure.write(source);
-  DcmIODUtil::writeSubSequence<OFVector<CodeSequenceMacro*> >
-  (
-   result,
-   DCM_PrimaryAnatomicStructureModifierSequence,
-   m_AnatomicStructureModifier,
-   source,
-   "1-n",
-   "3",
-   "PrimaryAnatomicStructureMacro"
-  );
-  return result;
-}
-
-
-// ---------------------- PrimaryAnatomicStructureMacro ----------------------
-
-
-PrimaryAnatomicStructureMacro::PrimaryAnatomicStructureMacro() :
-  m_PrimaryAnatomicStructure()
-{
-
-}
-
-
-PrimaryAnatomicStructureMacro::PrimaryAnatomicStructureMacro(const PrimaryAnatomicStructureMacro& rhs)
-{
-  if (this != &rhs)
-  {
-    OFVector<PrimaryAnatomicStructureMacroItem*>::const_iterator it = rhs.m_PrimaryAnatomicStructure.begin();
-    while ( it != rhs.m_PrimaryAnatomicStructure.begin() )
+    for (size_t m = 0; m < m_AnatomicRegionModifier.size(); m++)
     {
-      m_PrimaryAnatomicStructure.push_back(new PrimaryAnatomicStructureMacroItem(**it));
-      it++;
+      rhs.m_AnatomicRegionModifier[m];
+      result = m_AnatomicRegionModifier[m]->compare(  *(rhs.m_AnatomicRegionModifier[m]) );
+      if (result != 0)
+      {
+        return result;
+      }
     }
+    result = m_PrimaryAnatomicStructure.compare(rhs.m_PrimaryAnatomicStructure);
   }
-}
-
-
-PrimaryAnatomicStructureMacro::~PrimaryAnatomicStructureMacro()
-{
-  clearData();
-}
-
-
-void PrimaryAnatomicStructureMacro::clearData()
-{
-  m_PrimaryAnatomicStructure.clear();
-}
-
-
-OFCondition PrimaryAnatomicStructureMacro::check(const OFBool quiet)
-{
-  OFCondition result;
-  OFVector<PrimaryAnatomicStructureMacroItem*>::iterator it = m_PrimaryAnatomicStructure.begin();
-  while (it != m_PrimaryAnatomicStructure.end())
-  {
-    result = (*it)->check(quiet);
-    if (result.bad()) return result;
-    it++;
-  }
-  return result;
-}
-
-
-OFVector<PrimaryAnatomicStructureMacroItem*>& PrimaryAnatomicStructureMacro::getPrimaryAnatomicStructure()
-{
-  return m_PrimaryAnatomicStructure;
-}
-
-
-/// Reads Primary Anatomic Region Sequence from given item
-OFCondition PrimaryAnatomicStructureMacro::read(DcmItem& source,
-                                                const OFBool clearOldData)
-{
-  OFCondition result;
-
-  if (clearOldData)
-    clearData();
-
-  // check for sequence and report warnings if not ok */
-  DcmIODUtil::checkSubSequence(result, source, DCM_PrimaryAnatomicStructureSequence, "1-n", "3", "PrimaryAnantomicStructureMacro");
-
-  // read sequence into member
-  DcmIODUtil::readSubSequence<OFVector<PrimaryAnatomicStructureMacroItem*> >
-  ( source,
-    DCM_PrimaryAnatomicStructureSequence,
-    m_PrimaryAnatomicStructure,
-    "1-n",
-    "3",
-    "PrimaryAnatomicStructureMacro"
-  );
-  return result;
-}
-
-
-/// Write Anatomic Region Sequence from given item
-OFCondition PrimaryAnatomicStructureMacro::write(DcmItem& item)
-{
-  OFCondition result = EC_Normal;
-
-  /* delete old data */
-  item.findAndDeleteElement(DCM_PrimaryAnatomicStructureSequence);
-  item.insertEmptyElement(DCM_PrimaryAnatomicStructureSequence);
-
-  DcmIODUtil::writeSubSequence<OFVector<PrimaryAnatomicStructureMacroItem*> >
-  (
-    result,
-    DCM_PrimaryAnatomicStructureSequence,
-    m_PrimaryAnatomicStructure,
-    item,
-    "1-n",
-    "3",
-    "PrimaryAnatomicStructureMacro"
-  );
-
   return result;
 }
 
 
-PrimaryAnatomicStructureMacro& PrimaryAnatomicStructureMacro::operator=(const PrimaryAnatomicStructureMacro& rhs)
-{
-  if (this != &rhs)
-  {
-    clearData();
-    OFVector<PrimaryAnatomicStructureMacroItem*>::const_iterator it = rhs.m_PrimaryAnatomicStructure.begin();
-    while ( it != rhs.m_PrimaryAnatomicStructure.begin() )
-    {
-      m_PrimaryAnatomicStructure.push_back(new PrimaryAnatomicStructureMacroItem(**it));
-      it++;
-    }
-  }
-  return *this;
-}
-
-
 // ---------------------- AlgorithmIdentificationMacro ----------------------
 
 
diff --git a/dcmiod/libsrc/modbase.cc b/dcmiod/libsrc/modbase.cc
index 4368674..d106ba2 100644
--- a/dcmiod/libsrc/modbase.cc
+++ b/dcmiod/libsrc/modbase.cc
@@ -27,6 +27,15 @@
 #include "dcmtk/dcmdata/dcdeftag.h"
 
 
+IODComponent::IODComponent(const IODComponent& rhs)
+: m_Item(OFstatic_cast(DcmItem*, rhs.m_Item->clone()))
+, m_Rules(rhs.m_Rules->clone())
+, m_Parent(OFnullptr)
+{
+
+}
+
+
 IODComponent::IODComponent(OFshared_ptr<DcmItem> item,
                            OFshared_ptr<IODRules> rules,
                            IODComponent* parent)
@@ -62,24 +71,14 @@ IODComponent& IODComponent::operator=(const IODComponent& rhs)
 {
   if (&rhs != this)
   {
-    m_Rules.reset( rhs.m_Rules->clone() );
-    m_Item.reset( OFstatic_cast(DcmItem*, rhs.m_Item->clone()) );
-    m_Parent = NULL;
+    m_Item.reset(OFstatic_cast(DcmItem*, rhs.m_Item->clone()));
+    m_Rules.reset(rhs.m_Rules->clone());
+    m_Parent = OFnullptr;
   }
   return *this;
 }
 
 
-IODComponent::IODComponent(const IODComponent& rhs)
-{
-
-  if (this == &rhs)
-    return;
-
-  *this = rhs;
-}
-
-
 void IODComponent::inventMissing()
 {
   // Try to fill in missing type 1 information
@@ -212,8 +211,8 @@ OFCondition IODComponent::read(DcmItem& source,
     if (isSequence)
     {
       DcmElement *elem = NULL;
-      source.findAndGetElement( (*rule)->getTagKey(), elem);
-      DcmIODUtil::checkElementValue(elem, (*rule)->getTagKey(), (*rule)->getVM(), (*rule)->getType(), EC_Normal, (*rule)->getModule().c_str());
+      OFCondition cond = source.findAndGetElement( (*rule)->getTagKey(), elem);
+      DcmIODUtil::checkElementValue(elem, (*rule)->getTagKey(), (*rule)->getVM(), (*rule)->getType(), cond, (*rule)->getModule().c_str());
     }
     else // Normal attributes are checked and copied over into this IOD component
     {
@@ -265,9 +264,28 @@ IODModule::IODModule(): IODComponent()
 }
 
 
+IODModule::IODModule(const IODModule& rhs)
+: IODComponent(rhs.m_Item, rhs.m_Rules, rhs.m_Parent)
+{
+
+}
+
+
 IODModule::IODModule(OFshared_ptr< DcmItem > item,
   OFshared_ptr< IODRules > rules)
 : IODComponent(item, rules, NULL /* No parent for modules */)
 {
   // nothing to do, IODComponent does the work
 }
+
+
+IODModule& IODModule::operator=(const IODModule& rhs)
+{
+  if (this != &rhs)
+  {
+    m_Item = rhs.m_Item;
+    m_Rules = rhs.m_Rules;
+    m_Parent = rhs.m_Parent;
+  }
+  return *this;
+}
diff --git a/dcmiod/libsrc/modcommoninstanceref.cc b/dcmiod/libsrc/modcommoninstanceref.cc
index 921e9fb..246b15e 100644
--- a/dcmiod/libsrc/modcommoninstanceref.cc
+++ b/dcmiod/libsrc/modcommoninstanceref.cc
@@ -45,7 +45,7 @@ IODCommonInstanceReferenceModule::IODCommonInstanceReferenceModule()
 
 IODCommonInstanceReferenceModule::~IODCommonInstanceReferenceModule()
 {
-  clearData();
+  freeMemory();
 }
 
 
@@ -69,12 +69,10 @@ OFVector<IODCommonInstanceReferenceModule::StudiesOtherInstancesItem *> & IODCom
 
 void IODCommonInstanceReferenceModule::clearData()
 {
-  DcmIODUtil::freeContainer(m_StudiesContainingOtherReferencedInstancesSequence);
-  DcmIODUtil::freeContainer(m_ReferenceSeriesItems);
+  freeMemory();
 }
 
 
-
 OFCondition IODCommonInstanceReferenceModule::read(DcmItem& source,
                                                    const OFBool clearOldData)
 {
@@ -204,7 +202,6 @@ void IODCommonInstanceReferenceModule::resetRules()
 }
 
 
-
 OFCondition IODCommonInstanceReferenceModule::addSeriesReference(
   OFVector<IODSeriesAndInstanceReferenceMacro::ReferencedSeriesItem*>& container,
   const IODReference& ref)
@@ -348,3 +345,10 @@ OFCondition IODCommonInstanceReferenceModule::StudiesOtherInstancesItem::setStud
     result = m_Item->putAndInsertOFStringArray(DCM_StudyInstanceUID, value);
   return result;
 }
+
+
+void IODCommonInstanceReferenceModule::freeMemory()
+{
+  DcmIODUtil::freeContainer(m_StudiesContainingOtherReferencedInstancesSequence);
+  DcmIODUtil::freeContainer(m_ReferenceSeriesItems);
+}
\ No newline at end of file
diff --git a/dcmiod/libsrc/modenhequipment.cc b/dcmiod/libsrc/modenhequipment.cc
index 6801c84..dcd71f4 100644
--- a/dcmiod/libsrc/modenhequipment.cc
+++ b/dcmiod/libsrc/modenhequipment.cc
@@ -58,16 +58,16 @@ OFCondition IODEnhGeneralEquipmentModule::create(const IODEnhGeneralEquipmentMod
 
 void IODEnhGeneralEquipmentModule::resetRules()
 {
-  m_Rules->addRule(new IODRule(DCM_Manufacturer, "1","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n","1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Manufacturer, "1", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n", "1", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
 }
 
 
 IODEnhGeneralEquipmentModule::~IODEnhGeneralEquipmentModule()
 {
-  clearData();
+  // Nothing to do
 }
 
 
diff --git a/dcmiod/libsrc/modequipment.cc b/dcmiod/libsrc/modequipment.cc
index 0d2abeb..ade432d 100644
--- a/dcmiod/libsrc/modequipment.cc
+++ b/dcmiod/libsrc/modequipment.cc
@@ -48,20 +48,19 @@ void IODGeneralEquipmentModule::resetRules()
 {
 
   // parameters are tag, VM, type. Overwrite old rules if any.
-  m_Rules->addRule(new IODRule(DCM_Manufacturer, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_InstitutionName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_InstitutionAddress, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_StationName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_InstitutionalDepartmentName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n","3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Manufacturer, "1", "2", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_InstitutionName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_InstitutionAddress, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_StationName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_InstitutionalDepartmentName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ManufacturerModelName, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DeviceSerialNumber, "1", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_SoftwareVersions, "1-n", "3", getName(), DcmIODTypes::IE_EQUIPMENT), OFTrue);
 }
 
 
 IODGeneralEquipmentModule::~IODGeneralEquipmentModule()
 {
-  clearData();
 }
 
 
diff --git a/dcmiod/libsrc/modfloatingpointimagepixel.cc b/dcmiod/libsrc/modfloatingpointimagepixel.cc
new file mode 100644
index 0000000..d5e1494
--- /dev/null
+++ b/dcmiod/libsrc/modfloatingpointimagepixel.cc
@@ -0,0 +1,260 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmiod
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Floating Point and Double Floating Point Image Pixel Module
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+#include "dcmtk/dcmiod/modfloatingpointimagepixel.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmdata/dcvrfl.h"
+#include "dcmtk/dcmdata/dcvrfd.h"
+#include "dcmtk/dcmiod/iodutil.h"
+
+const OFString IODFloatingPointImagePixelModule::m_ModuleName = "FloatingPointImagePixelModule";
+const DcmTagKey IODFloatingPointImagePixelModule::pixel_data_tag = DCM_FloatPixelData;
+const DcmTagKey IODDoubleFloatingPointImagePixelModule::pixel_data_tag = DCM_DoubleFloatPixelData;
+
+
+IODFloatingPointImagePixelModule::IODFloatingPointImagePixelModule(OFshared_ptr<DcmItem> item,
+                                                                   OFshared_ptr<IODRules> rules)
+: IODImagePixelBase(item, rules)
+{
+  // reset element rules
+  resetRules();
+  getData().putAndInsertUint16(DCM_BitsAllocated, 32);
+  getData().putAndInsertUint16(DCM_SamplesPerPixel, 1);
+  getData().putAndInsertUint16(DCM_PixelRepresentation, 1);
+  getData().putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2");
+}
+
+
+OFString IODFloatingPointImagePixelModule::getName() const
+{
+  return m_ModuleName;
+}
+
+
+IODFloatingPointImagePixelModule::IODFloatingPointImagePixelModule()
+: IODImagePixelBase()
+{
+  resetRules();
+}
+
+
+IODFloatingPointImagePixelModule::~IODFloatingPointImagePixelModule()
+{
+  // nothing to do
+}
+
+
+void IODFloatingPointImagePixelModule::resetRules()
+{
+  // Parameters this module is responsible for.
+  m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Rows, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Columns, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PixelAspectRatio, "2", "1C", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_FloatPixelPaddingValue, "1", "3", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_FloatPixelPaddingRangeLimit, "1", "1C", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue);
+}
+
+
+OFCondition IODFloatingPointImagePixelModule::read(DcmItem& source,
+                                                  const OFBool clearOldData)
+{
+  // Read common attributes
+  IODImagePixelBase::read(source, clearOldData);
+  // Read extra attributes of Floating Point Image Pixel Module
+  IODModule::read(source, clearOldData);
+  return EC_Normal;
+}
+
+
+OFCondition IODFloatingPointImagePixelModule::write(DcmItem& destination)
+{
+  // Write Photometric Interpretation fixed value for Floating Point Image Pixel Module
+  OFCondition result = m_Item->putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2");
+  // Write common attributes
+  if (result.good())
+  {
+    result = IODImagePixelBase::write(destination);
+  }
+  // Write extra attributes of Floating Poing Image Pixel Module
+  if (result.good())
+  {
+    result = IODModule::write(destination);
+  }
+  return result;
+}
+
+
+IODImagePixelBase::DataType IODFloatingPointImagePixelModule::getDataType() const
+{
+  return IODImagePixelBase::DATA_TYPE_FLOAT;
+}
+
+
+OFCondition IODFloatingPointImagePixelModule::getFloatPixelPaddingValue(Float32& value,
+                                                                        const long pos)
+{
+  return m_Item->findAndGetFloat32(DCM_FloatPixelPaddingValue, value, pos);
+}
+
+
+OFCondition IODFloatingPointImagePixelModule::getFloatPixelPaddingRangeLimit(Float32& value,
+                                                                             const long pos)
+{
+  return m_Item->findAndGetFloat32(DCM_FloatPixelPaddingRangeLimit, value, pos);
+}
+
+
+OFCondition IODFloatingPointImagePixelModule::setFloatPixelPaddingValue(const Float32 value,
+                                                                        const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertFloat32(DCM_FloatPixelPaddingValue, value);
+}
+
+
+OFCondition IODFloatingPointImagePixelModule::setFloatPixelPaddingRangeLimit(const Float32 value,
+                                                                             const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertFloat32(DCM_FloatPixelPaddingRangeLimit, value);
+}
+
+// ---------------- Double Floating Point Image Pixel Module ------------------
+
+const OFString IODDoubleFloatingPointImagePixelModule::m_ModuleName = "DoubleFloatingPointImagePixelModule";
+
+
+IODDoubleFloatingPointImagePixelModule::IODDoubleFloatingPointImagePixelModule(OFshared_ptr<DcmItem> item,
+                                                                               OFshared_ptr<IODRules> rules)
+: IODImagePixelBase(item, rules)
+{
+  // reset element rules
+  resetRules();
+
+  getData().putAndInsertUint16(DCM_BitsAllocated, 64);
+  getData().putAndInsertUint16(DCM_SamplesPerPixel, 1);
+  getData().putAndInsertUint16(DCM_PixelRepresentation, 1);
+  getData().putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2");
+}
+
+
+OFString IODDoubleFloatingPointImagePixelModule::getName() const
+{
+  return m_ModuleName;
+}
+
+
+IODDoubleFloatingPointImagePixelModule::IODDoubleFloatingPointImagePixelModule()
+: IODImagePixelBase()
+{
+  resetRules();
+}
+
+
+IODDoubleFloatingPointImagePixelModule::~IODDoubleFloatingPointImagePixelModule()
+{
+  // nothing to do
+}
+
+
+void IODDoubleFloatingPointImagePixelModule::resetRules()
+{
+  // Parameters are tag, VM, type. Overwrite old rules if any.
+  // Take over responsibility for Photometric Interpretation since we want to write
+  // "MONOCHROME2" as a fixed value.
+  m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1", "1", getName(), DcmIODTypes::IE_IMAGE, "MONOCHROME2"), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Rows, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Columns, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PixelAspectRatio, "2", "1C", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DoubleFloatPixelPaddingValue, "1", "3", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_DoubleFloatPixelPaddingRangeLimit, "1", "1C", m_ModuleName, DcmIODTypes::IE_IMAGE), OFTrue);
+}
+
+
+OFCondition IODDoubleFloatingPointImagePixelModule::read(DcmItem& source,
+                                                         const OFBool clearOldData)
+{
+  // Read common attributes
+  IODImagePixelBase::read(source, clearOldData);
+  // Read extra attributes of Floating Point Image Pixel Module
+  IODModule::read(source, clearOldData);
+  return EC_Normal;
+}
+
+
+OFCondition IODDoubleFloatingPointImagePixelModule::write(DcmItem& destination)
+{
+  // Write Photometric Interpretation fixed value for Floating Point Image Pixel Module
+  OFCondition result = m_Item->putAndInsertOFStringArray(DCM_PhotometricInterpretation, "MONOCHROME2");
+  // Write common attributes
+  if (result.good())
+  {
+    result = IODImagePixelBase::write(destination);
+  }
+  // Write extra attributes of Floating Poing Image Pixel Module
+  if (result.good())
+  {
+    result = IODModule::write(destination);
+  }
+  return result;
+}
+
+
+IODImagePixelBase::DataType IODDoubleFloatingPointImagePixelModule::getDataType() const
+{
+  return IODImagePixelBase::DATA_TYPE_DOUBLE;
+}
+
+
+OFCondition IODDoubleFloatingPointImagePixelModule::getDoubleFloatPixelPaddingValue(Float64& value,
+                                                                                    const long pos)
+{
+  return m_Item->findAndGetFloat64(DCM_FloatPixelPaddingValue, value, pos);
+}
+
+
+OFCondition IODDoubleFloatingPointImagePixelModule::getDoubleFloatPixelPaddingRangeLimit(Float64& value,
+                                                                                         const long pos)
+{
+  return m_Item->findAndGetFloat64(DCM_DoubleFloatPixelPaddingRangeLimit, value, pos);
+}
+
+
+OFCondition IODDoubleFloatingPointImagePixelModule::setDoubleFloatPixelPaddingValue(const Float64 value,
+                                                                                    const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertFloat64(DCM_DoubleFloatPixelPaddingValue, value);
+}
+
+
+OFCondition IODDoubleFloatingPointImagePixelModule::setDoubleFloatPixelPaddingRangeLimit(const Float64 value,
+                                                                                         const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertFloat64(DCM_DoubleFloatPixelPaddingRangeLimit, value);
+}
diff --git a/dcmiod/libsrc/modfor.cc b/dcmiod/libsrc/modfor.cc
index 3ca984d..3e33166 100644
--- a/dcmiod/libsrc/modfor.cc
+++ b/dcmiod/libsrc/modfor.cc
@@ -61,8 +61,7 @@ OFString IODFoRModule::getName() const
 
 IODFoRModule::~IODFoRModule()
 {
-  // clear rules from rule set
-  clearData();
+  // Nothing to do
 }
 
 
@@ -80,7 +79,6 @@ OFCondition IODFoRModule::getPositionReferenceIndicator(OFString& value,
 }
 
 
-
 OFCondition IODFoRModule::setFrameOfReferenceUID(const OFString &value,
                                                  const OFBool checkValue)
 {
@@ -100,3 +98,22 @@ OFCondition IODFoRModule::setPositionReferenceIndicator(const OFString &value,
   return result;
 }
 
+
+void IODFoRModule::ensureFrameOfReferenceUID(const OFBool correctInvalid)
+{
+  OFString uidstr;
+
+  // Create new Frame of Reference instance UID if required
+  if (getFrameOfReferenceUID(uidstr).bad() || uidstr.empty() )
+  {
+    setFrameOfReferenceUID(DcmIODUtil::createUID(1 /* Series Level */));
+  }
+  else if (!uidstr.empty() && correctInvalid)
+  {
+    if (DcmUniqueIdentifier::checkStringValue(uidstr, "1").bad())
+    {
+      setFrameOfReferenceUID(DcmIODUtil::createUID(1 /* Series Level */));
+    }
+  }
+}
+
diff --git a/dcmiod/libsrc/modimagepixel.cc b/dcmiod/libsrc/modimagepixel.cc
index c2a8c58..6343c5d 100644
--- a/dcmiod/libsrc/modimagepixel.cc
+++ b/dcmiod/libsrc/modimagepixel.cc
@@ -27,38 +27,46 @@
 #include "dcmtk/dcmdata/dcvris.h"
 #include "dcmtk/dcmiod/iodutil.h"
 
-const OFString IODImagePixelModule::m_ModuleName = "ImagePixelModule";
-
-
-IODImagePixelModule::IODImagePixelModule(OFshared_ptr<DcmItem> item,
-                                         OFshared_ptr<IODRules> rules)
-: IODModule(item, rules)
+template<typename T>
+const OFString IODImagePixelModule<T>::m_ModuleName = "ImagePixelModule";
+template<typename T>
+const DcmTagKey IODImagePixelModule<T>::pixel_data_tag = DCM_PixelData;
+
+template<typename T>
+IODImagePixelModule<T>::IODImagePixelModule(OFshared_ptr<DcmItem> item,
+                                            OFshared_ptr<IODRules> rules)
+: IODImagePixelBase(item, rules)
 {
   // reset element rules
   resetRules();
 }
 
-
-OFString IODImagePixelModule::getName() const
+template<typename T>
+OFString IODImagePixelModule<T>::getName() const
 {
   return m_ModuleName;
 }
 
-
-IODImagePixelModule::IODImagePixelModule()
-: IODModule()
+template<typename T>
+IODImagePixelModule<T>::IODImagePixelModule()
+: IODImagePixelBase()
 {
   resetRules();
 }
 
+template<typename T>
+IODImagePixelModule<T>::~IODImagePixelModule()
+{
+}
 
-void IODImagePixelModule::resetRules()
+template<typename T>
+void IODImagePixelModule<T>::resetRules()
 {
   // parameters are tag, VM, type. Overwrite old rules if any.
   m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_Rows, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
-  m_Rules->addRule(new IODRule(DCM_Columns, "1", "1n", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_Columns, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_BitsStored, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
   m_Rules->addRule(new IODRule(DCM_HighBit, "1", "1", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
@@ -68,83 +76,66 @@ void IODImagePixelModule::resetRules()
   m_Rules->addRule(new IODRule(DCM_ICCProfile, "1", "3", getName(), DcmIODTypes::IE_IMAGE), OFTrue);
 }
 
-
-IODImagePixelModule::~IODImagePixelModule()
+template<typename T>
+OFCondition IODImagePixelModule<T>::read(DcmItem& source,
+                                         const OFBool clearOldData)
 {
+  // Read common attributes
+  IODImagePixelBase::read(source, clearOldData);
+  // Read extra attributes of Image Pixel Module
+  IODModule::read(source, clearOldData);
+  return EC_Normal;
 }
 
-
-OFCondition IODImagePixelModule::getSamplesPerPixel(Uint16 &value,
-                                         const signed long pos)
+template<typename T>
+OFCondition IODImagePixelModule<T>::write(DcmItem& destination)
 {
-  return m_Item->findAndGetUint16(DCM_SamplesPerPixel, value, pos);
-}
-
-
-OFCondition IODImagePixelModule::getPhotometricInterpretation(OFString&value,
-                                                      const signed long pos)
-{
-  return DcmIODUtil::getStringValueFromItem(DCM_PhotometricInterpretation, *m_Item, value, pos);
-}
-
-
-OFCondition IODImagePixelModule::getRows(Uint16& value,
-                                 const signed long pos)
-{
-  return m_Item->findAndGetUint16(DCM_Rows, value, pos);
-}
-
-
-OFCondition IODImagePixelModule::getColumns(Uint16& value,
-                                    const signed long pos)
-{
-  return m_Item->findAndGetUint16(DCM_Columns, value, pos);
+  // Write common attributes
+  OFCondition result = IODImagePixelBase::write(destination);
+  // Write extra attributes of Image Pixel Module
+  if (result.good())
+  {
+    IODModule::write(destination);
+  }
+  return result;
 }
 
-
-OFCondition IODImagePixelModule::getBitsAllocated(Uint16& value,
-                                          const signed long pos)
+template<typename T>
+IODImagePixelBase::DataType IODImagePixelModule<T>::getDataType() const
 {
-  return m_Item->findAndGetUint16(DCM_BitsAllocated, value, pos);
+  return IODImagePixelBase::DATA_TYPE_INTEGER;
 }
 
-
-OFCondition IODImagePixelModule::getBitsStored(Uint16& value,
-                                       const signed long pos)
+template<typename T>
+OFCondition IODImagePixelModule<T>::getBitsStored(Uint16& value,
+                                                  const signed long pos)
 {
   return m_Item->findAndGetUint16(DCM_BitsStored, value, pos);
 }
 
-
-OFCondition IODImagePixelModule::getHighBit(Uint16& value,
-                                    const signed long pos)
+template<typename T>
+OFCondition IODImagePixelModule<T>::getHighBit(Uint16& value,
+                                            const signed long pos)
 {
   return m_Item->findAndGetUint16(DCM_HighBit, value, pos);
 }
 
-
-OFCondition IODImagePixelModule::getPixelRepresentation(Uint16& value,
-                                                  const signed long pos)
+template<typename T>
+OFCondition IODImagePixelModule<T>::getPixelRepresentation(Uint16& value,
+                                                        const signed long pos)
 {
   return m_Item->findAndGetUint16(DCM_PixelRepresentation, value, pos);
 }
 
-
-OFCondition IODImagePixelModule::getPlanarConfiguration(Uint16& value,
-                                                const signed long pos)
+template<typename T>
+OFCondition IODImagePixelModule<T>::getPlanarConfiguration(Uint16& value,
+                                                         const signed long pos)
 {
   return m_Item->findAndGetUint16(DCM_PlanarConfiguration, value, pos);
 }
 
-
-OFCondition IODImagePixelModule::getPixelAspectRatio(Uint16& value,
-                                            const signed long pos)
-{
-  return m_Item->findAndGetUint16(DCM_PixelAspectRatio, value, pos);
-}
-
-
-OFCondition IODImagePixelModule::getICCProfile(OFVector<Uint8>& values)
+template<typename T>
+OFCondition IODImagePixelModule<T>::getICCProfile(OFVector<Uint8>& values)
 {
   DcmElement* elem = NULL;
   OFCondition result = m_Item->findAndGetElement(DCM_ICCProfile, elem);
@@ -160,8 +151,8 @@ OFCondition IODImagePixelModule::getICCProfile(OFVector<Uint8>& values)
     return EC_TagNotFound;
 }
 
-
-OFCondition IODImagePixelModule::setSamplesPerPixel(const Uint16 value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setSamplesPerPixel(const Uint16 value,
                                                     const OFBool checkValue)
 {
   OFCondition result = EC_Normal;
@@ -183,12 +174,11 @@ OFCondition IODImagePixelModule::setSamplesPerPixel(const Uint16 value,
   if (result.good() )
     result = m_Item->putAndInsertUint16(DCM_SamplesPerPixel, value);
 
-  // TODO: Check consistency with photometric interpretation
   return result;
 }
 
-
-OFCondition IODImagePixelModule::setPhotometricInterpretation(const OFString& value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setPhotometricInterpretation(const OFString& value,
                                                               const OFBool checkValue)
 {
   OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -197,48 +187,32 @@ OFCondition IODImagePixelModule::setPhotometricInterpretation(const OFString& va
   return result;
 }
 
-
-OFCondition IODImagePixelModule::setRows(const Uint16 value,
-                                         const OFBool checkValue)
-{
-  (void)checkValue;
-  return m_Item->putAndInsertUint16(DCM_Rows, value);
-}
-
-
-OFCondition IODImagePixelModule::setColumns(const Uint16 value,
-                                            const OFBool checkValue)
-{
-  (void)checkValue;
-  return m_Item->putAndInsertUint16(DCM_Columns, value);
-}
-
-
-OFCondition IODImagePixelModule::setBitsAllocated(const Uint16 value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setBitsAllocated(const Uint16 value,
                                                   const OFBool checkValue)
 {
   (void)checkValue;
   return m_Item->putAndInsertUint16(DCM_BitsAllocated, value);
 }
 
-
-OFCondition IODImagePixelModule::setBitsStored(const Uint16 value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setBitsStored(const Uint16 value,
                                                const OFBool checkValue)
 {
   (void)checkValue;
   return m_Item->putAndInsertUint16(DCM_BitsStored, value);
 }
 
-
-OFCondition IODImagePixelModule::setHighBit(const Uint16 value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setHighBit(const Uint16 value,
                                             const OFBool checkValue)
 {
   (void)checkValue;
   return m_Item->putAndInsertUint16(DCM_HighBit, value);
 }
 
-
-OFCondition IODImagePixelModule::setPixelRepresentation(const Uint16 value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setPixelRepresentation(const Uint16 value,
                                                         const OFBool checkValue)
 {
   OFCondition result = EC_Normal;
@@ -257,8 +231,8 @@ OFCondition IODImagePixelModule::setPixelRepresentation(const Uint16 value,
   return result;
 }
 
-
-OFCondition IODImagePixelModule::setPlanarConfiguration(const Uint16 value,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setPlanarConfiguration(const Uint16 value,
                                                         const OFBool checkValue)
 {
   OFCondition result = EC_Normal;
@@ -277,26 +251,14 @@ OFCondition IODImagePixelModule::setPlanarConfiguration(const Uint16 value,
   return result;
 }
 
-
-OFCondition IODImagePixelModule::setPixelAspectRatio(const OFString& verticalPixelSize,
-                                                     const OFString& horizontalPixelSize,
-                                                     const OFBool checkValue)
-{
-  OFString concat = verticalPixelSize;
-  concat += "\\"; concat += horizontalPixelSize;
-  OFCondition cond;
-  if (checkValue)
-  {
-    cond = DcmIntegerString::checkStringValue(concat, "2");
-    // check for unsignedness, too?
-  }
-  if (cond.good()) m_Item->putAndInsertOFStringArray(DCM_PixelAspectRatio, concat);
-  return cond;
-}
-
-
-OFCondition IODImagePixelModule::setICCProfile(const Uint8* values,
+template<typename T>
+OFCondition IODImagePixelModule<T>::setICCProfile(const Uint8* values,
                                                const size_t length)
 {
   return m_Item->putAndInsertUint8Array(DCM_ICCProfile, values, length);
 }
+
+template class IODImagePixelModule<Uint8>;
+template class IODImagePixelModule<Sint8>;
+template class IODImagePixelModule<Uint16>;
+template class IODImagePixelModule<Sint16>;
diff --git a/dcmiod/libsrc/modimagepixelbase.cc b/dcmiod/libsrc/modimagepixelbase.cc
new file mode 100644
index 0000000..f35725e
--- /dev/null
+++ b/dcmiod/libsrc/modimagepixelbase.cc
@@ -0,0 +1,138 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmiod
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Base class for Image Pixel Module and related (e.g. Ploating Point)
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+#include "dcmtk/dcmiod/modimagepixelbase.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmdata/dcvrobow.h"
+#include "dcmtk/dcmdata/dcvrcs.h"
+#include "dcmtk/dcmdata/dcvris.h"
+#include "dcmtk/dcmiod/iodutil.h"
+
+const OFString IODImagePixelBase::m_ModuleName = "ImagePixelBase";
+
+
+IODImagePixelBase::IODImagePixelBase(OFshared_ptr<DcmItem> item,
+                                     OFshared_ptr<IODRules> rules)
+: IODModule(item, rules)
+{
+  // reset element rules
+  resetRules();
+}
+
+
+OFString IODImagePixelBase::getName() const
+{
+  return m_ModuleName;
+}
+
+
+IODImagePixelBase::IODImagePixelBase()
+: IODModule()
+{
+  resetRules();
+}
+
+
+IODImagePixelBase::~IODImagePixelBase()
+{
+}
+
+
+void IODImagePixelBase::resetRules()
+{
+  // all rules in sub classes
+}
+
+
+OFCondition IODImagePixelBase::getSamplesPerPixel(Uint16 &value,
+                                         const signed long pos)
+{
+  return m_Item->findAndGetUint16(DCM_SamplesPerPixel, value, pos);
+}
+
+
+OFCondition IODImagePixelBase::getPhotometricInterpretation(OFString&value,
+                                                      const signed long pos)
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_PhotometricInterpretation, *m_Item, value, pos);
+}
+
+
+OFCondition IODImagePixelBase::getRows(Uint16& value,
+                                 const signed long pos)
+{
+  return m_Item->findAndGetUint16(DCM_Rows, value, pos);
+}
+
+
+OFCondition IODImagePixelBase::getColumns(Uint16& value,
+                                    const signed long pos)
+{
+  return m_Item->findAndGetUint16(DCM_Columns, value, pos);
+}
+
+
+OFCondition IODImagePixelBase::getBitsAllocated(Uint16& value,
+                                          const signed long pos)
+{
+  return m_Item->findAndGetUint16(DCM_BitsAllocated, value, pos);
+}
+
+
+OFCondition IODImagePixelBase::getPixelAspectRatio(Uint16& value,
+                                            const signed long pos)
+{
+  return m_Item->findAndGetUint16(DCM_PixelAspectRatio, value, pos);
+}
+
+
+OFCondition IODImagePixelBase::setRows(const Uint16 value,
+                                         const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertUint16(DCM_Rows, value);
+}
+
+
+OFCondition IODImagePixelBase::setColumns(const Uint16 value,
+                                            const OFBool checkValue)
+{
+  (void)checkValue;
+  return m_Item->putAndInsertUint16(DCM_Columns, value);
+}
+
+
+OFCondition IODImagePixelBase::setPixelAspectRatio(const OFString& verticalPixelSize,
+                                                     const OFString& horizontalPixelSize,
+                                                     const OFBool checkValue)
+{
+  OFString concat = verticalPixelSize;
+  concat += "\\"; concat += horizontalPixelSize;
+  OFCondition cond;
+  if (checkValue)
+  {
+    cond = DcmIntegerString::checkStringValue(concat, "2");
+    // check for unsignedness, too?
+  }
+  if (cond.good()) m_Item->putAndInsertOFStringArray(DCM_PixelAspectRatio, concat);
+  return cond;
+}
diff --git a/dcmiod/libsrc/modmultiframedimension.cc b/dcmiod/libsrc/modmultiframedimension.cc
index 199dfa4..e6862a4 100644
--- a/dcmiod/libsrc/modmultiframedimension.cc
+++ b/dcmiod/libsrc/modmultiframedimension.cc
@@ -70,23 +70,48 @@ OFCondition IODMultiframeDimensionModule::addDimensionIndex(const DcmTagKey& dim
     return IOD_EC_MissingAttribute;
   }
 
+  // Add Dimension Organization by its UID if such organization does not exist yet
+  OFVector<DimensionOrganizationItem*>::iterator it = m_DimensionOrganizationSequence.begin();
+  while (it != m_DimensionOrganizationSequence.end())
+  {
+    OFString val;
+    (*it)->getDimensionOrganizationUID(val);
+    if (val == dimensionOrganizationUID)
+    {
+      break;
+    }
+    it++;
+  }
+  OFCondition result;
+  if (it == m_DimensionOrganizationSequence.end())
+  {
+    DimensionOrganizationItem* item = new DimensionOrganizationItem;
+    if (item == NULL)
+    {
+      return EC_MemoryExhausted;
+    }
+    result = item->setDimensionOrganizationUID(dimensionOrganizationUID);
+    if (result.bad())
+      return result;
+    m_DimensionOrganizationSequence.push_back(item);
+  }
+
+  // Create dimension and add it to this object
   DimensionIndexItem* dim = new DimensionIndexItem();
   if (!dim)
     return EC_MemoryExhausted;
 
-  OFCondition result = dim->setDimensionOrganizationUID(dimensionOrganizationUID);
+  result = dim->setDimensionOrganizationUID(dimensionOrganizationUID);
   if (result.good()) result = dim->setFunctionalGroupPointer(functionalGroupPointer);
   if (result.good()) result = dim->setDimensionIndexPointer(dimensionIndexPointer);
   if (result.good() && !dimensionIndexPrivateCreator.empty()) dim->setDimensionIndexPrivateCreator(dimensionIndexPrivateCreator);
   if (result.good() && !functionalGroupPrivateCreator.empty()) dim->setFunctionalGroupPrivateCreator(functionalGroupPrivateCreator);
   if (result.good() && !dimensionDescriptionLabel.empty()) dim->setDimensionDescriptionLabel(dimensionDescriptionLabel);
-
   if (result.bad())
   {
     DCMIOD_ERROR("Could not add Dimension Index: Invalid data values");
     delete dim;
   }
-
   m_DimensionIndexSequence.push_back(dim);
 
   return result;
diff --git a/dcmiod/libsrc/modmultiframefg.cc b/dcmiod/libsrc/modmultiframefg.cc
index 6f324e9..4b256ba 100644
--- a/dcmiod/libsrc/modmultiframefg.cc
+++ b/dcmiod/libsrc/modmultiframefg.cc
@@ -115,7 +115,6 @@ OFCondition IODMultiFrameFGModule::getRepresentativeFrameNumber(Uint16& value,
 
 OFCondition IODMultiFrameFGModule::setConcatenationInfo(const IODMultiFrameFGModule::ConcatenationInfo& concatenationInfo)
 {
-  // TODO: Checks?
   m_ConcatenationInfo = concatenationInfo;
   return EC_Normal;
 }
@@ -131,7 +130,6 @@ OFCondition IODMultiFrameFGModule::setInstanceNumber(const OFString& value,
 }
 
 
-
 OFCondition IODMultiFrameFGModule::setContentDate(const OFString& value,
                                                   const OFBool checkValue)
 {
diff --git a/dcmiod/libsrc/modsynchronization.cc b/dcmiod/libsrc/modsynchronization.cc
index 3aceba7..4d496e3 100644
--- a/dcmiod/libsrc/modsynchronization.cc
+++ b/dcmiod/libsrc/modsynchronization.cc
@@ -72,8 +72,6 @@ OFString IODSynchronizationModule::getName() const
 
 IODSynchronizationModule::~IODSynchronizationModule()
 {
-  // clear rules from rule set
-  clearData();
 }
 
 
@@ -152,11 +150,12 @@ OFCondition IODSynchronizationModule::setSynchronizationFrameofReferenceUID(cons
 OFCondition IODSynchronizationModule::setSynchronizationTrigger(const OFString &value,
                                                                 const OFBool checkValue)
 {
-  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
-  if (result.good())
-    result = m_Item->putAndInsertOFStringArray(DCM_SynchronizationTrigger, value);
-  // TODO: Further checks since this field has enumerated values
-  return result;
+  if (checkValue && !isValidSynchronizationTrigger(value))
+  {
+    DCMIOD_ERROR("Synchronization Trigger does not allow value " << value << " (enumerated values)");
+    return IOD_EC_InvalidElementValue;
+  }
+  return m_Item->putAndInsertOFStringArray(DCM_SynchronizationTrigger, value);
 }
 
 
@@ -186,11 +185,12 @@ OFCondition IODSynchronizationModule::setSynchronizationChannel(const OFPair<Uin
 OFCondition IODSynchronizationModule::setAcquisitionTimeSynchronized(const OFString &value,
                                                                      const OFBool checkValue)
 {
-  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
-  if (result.good())
-    result = m_Item->putAndInsertOFStringArray(DCM_AcquisitionTimeSynchronized, value);
-  // TODO: Further checks since this field has enumerated values
-  return result;
+  if (checkValue && !isValidAcquisitionTimeSynchronized(value))
+  {
+    DCMIOD_ERROR("Acquisition Time Synchronized must only allows values 'Y' and 'N' (enumerated values)");
+    return IOD_EC_InvalidElementValue;
+  }
+  return m_Item->putAndInsertOFStringArray(DCM_AcquisitionTimeSynchronized, value);
 }
 
 
@@ -207,14 +207,16 @@ OFCondition IODSynchronizationModule::setTimeSource(const OFString &value,
 OFCondition IODSynchronizationModule::setTimeDistributionProtocol(const OFString &value,
                                                                   const OFBool checkValue)
 {
-  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
-  if (result.good())
-    result = m_Item->putAndInsertOFStringArray(DCM_TimeDistributionProtocol, value);
-  // TODO: Further checks since this field has enumerated values
-  return result;
+  if (checkValue && !isValidTimeDistributionProtocol(value))
+  {
+    DCMIOD_ERROR("Time Distribution Protocol does not allow value " << value << " (enumerated values)");
+    return IOD_EC_InvalidElementValue;
+  }
+  return m_Item->putAndInsertOFStringArray(DCM_TimeDistributionProtocol, value);
 }
 
 
+
 OFCondition IODSynchronizationModule::setNTPSourceAddress(const OFString &value,
                                                           const OFBool checkValue)
 {
@@ -223,3 +225,24 @@ OFCondition IODSynchronizationModule::setNTPSourceAddress(const OFString &value,
     result = m_Item->putAndInsertOFStringArray(DCM_NTPSourceAddress, value);
   return result;
 }
+
+
+
+OFBool IODSynchronizationModule::isValidAcquisitionTimeSynchronized(const OFString& value)
+{
+  return ( (value == "Y") || (value == "N") );
+
+}
+
+
+OFBool IODSynchronizationModule::isValidTimeDistributionProtocol(const OFString& value)
+{
+  return ( (value == "NTP") || (value == "IRIG") || (value == "GPS") || (value == "SNTP") || (value == "PTP") );
+}
+
+
+OFBool IODSynchronizationModule::isValidSynchronizationTrigger(const OFString& value)
+{
+  return ( (value == "SOURCE") || (value == "EXTERNAL") || (value == "PASSTHRU") || (value == "NO TRIGGER") );
+}
+
diff --git a/dcmiod/libsrc/modusfor.cc b/dcmiod/libsrc/modusfor.cc
index 231cb61..8c570cf 100644
--- a/dcmiod/libsrc/modusfor.cc
+++ b/dcmiod/libsrc/modusfor.cc
@@ -70,8 +70,7 @@ OFString IODUSFoRModule::getName() const
 
 IODUSFoRModule::~IODUSFoRModule()
 {
-  // clear rules from rule set
-  clearData();
+  // Nothing to do
 }
 
 
diff --git a/dcmiod/tests/CMakeLists.txt b/dcmiod/tests/CMakeLists.txt
index 3a04022..1ebae73 100644
--- a/dcmiod/tests/CMakeLists.txt
+++ b/dcmiod/tests/CMakeLists.txt
@@ -1,5 +1,5 @@
 # declare executables
-DCMTK_ADD_EXECUTABLE(dcmiod_tests tests tcielabutil)
+DCMTK_ADD_EXECUTABLE(dcmiod_tests tests tcielabutil timagepixel)
 
 # make sure executables are linked to the corresponding libraries
 DCMTK_TARGET_LINK_MODULES(dcmiod_tests dcmiod dcmdata oflog ofstd)
diff --git a/dcmiod/tests/Makefile.dep b/dcmiod/tests/Makefile.dep
index 7ef8406..3cdb990 100644
--- a/dcmiod/tests/Makefile.dep
+++ b/dcmiod/tests/Makefile.dep
@@ -88,3 +88,143 @@ tests.o: tests.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/logmacro.h \
  ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h
+timagepixel.o: timagepixel.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../ofstd/include/dcmtk/ofstd/oftest.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
+ ../include/dcmtk/dcmiod/iodcommn.h ../include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../include/dcmtk/dcmiod/iodtypes.h ../include/dcmtk/dcmiod/ioddef.h \
+ ../include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmiod/modpatient.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmiod/modbase.h \
+ ../include/dcmtk/dcmiod/modpatientstudy.h \
+ ../../ofstd/include/dcmtk/ofstd/ofoption.h \
+ ../include/dcmtk/dcmiod/modgeneralstudy.h \
+ ../include/dcmtk/dcmiod/iodmacro.h \
+ ../include/dcmtk/dcmiod/modequipment.h \
+ ../include/dcmtk/dcmiod/modgeneralseries.h \
+ ../include/dcmtk/dcmiod/modfor.h ../include/dcmtk/dcmiod/modsopcommon.h \
+ ../include/dcmtk/dcmiod/modcommoninstanceref.h \
+ ../include/dcmtk/dcmiod/iodreferences.h \
+ ../include/dcmtk/dcmiod/modgeneralimage.h \
+ ../include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../include/dcmtk/dcmiod/modimagepixel.h \
+ ../include/dcmtk/dcmiod/modfloatingpointimagepixel.h
diff --git a/dcmiod/tests/Makefile.in b/dcmiod/tests/Makefile.in
index 9aab2c8..aa20c71 100644
--- a/dcmiod/tests/Makefile.in
+++ b/dcmiod/tests/Makefile.in
@@ -23,7 +23,7 @@ LIBDIRS = -L$(top_srcdir)/libsrc -L$(dcmioddir)/libsrc -L$(dcmdatadir)/libsrc \
 LOCALLIBS = -ldcmiod -ldcmdata -loflog -lofstd \
 	$(TIFFLIBS) $(PNGLIBS) $(ZLIBLIBS) $(ICONVLIBS)
 
-test_objs = tests.o tcielabutil.o
+test_objs = tests.o tcielabutil.o timagepixel.o
 objs = tests.o $(test_objs)
 progs = tests
 
diff --git a/dcmiod/tests/tests.cc b/dcmiod/tests/tests.cc
index 3f583bf..c1528a9 100644
--- a/dcmiod/tests/tests.cc
+++ b/dcmiod/tests/tests.cc
@@ -23,4 +23,5 @@
 #include "dcmtk/ofstd/oftest.h"
 
 OFTEST_REGISTER(dcmiod_tcielabutil);
+OFTEST_REGISTER(dcmiod_imagepixel);
 OFTEST_MAIN("dcmiod")
diff --git a/dcmiod/tests/timagepixel.cc b/dcmiod/tests/timagepixel.cc
new file mode 100644
index 0000000..2c4ed75
--- /dev/null
+++ b/dcmiod/tests/timagepixel.cc
@@ -0,0 +1,34 @@
+/*
+ *
+ *  Copyright (C) 2016, OFFIS e.V.
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation were developed by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmiod
+ *
+ *  Author:  Jan Schlamelcher
+ *
+ *  Purpose: Tests for dcmiod's color conversion functionalities
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+#include "dcmtk/ofstd/oftest.h"
+#include "dcmtk/dcmiod/iodimage.h"
+#include "dcmtk/dcmiod/modimagepixel.h"
+#include "dcmtk/dcmiod/modfloatingpointimagepixel.h"
+
+OFTEST(dcmiod_imagepixel)
+{
+  DcmIODImage<IODImagePixelModule<Uint8>,IODFloatingPointImagePixelModule> image1;
+  DcmIODImage<IODImagePixelModule<Uint8>,IODImagePixelModule<Uint8>,IODDoubleFloatingPointImagePixelModule> image2( OFin_place<IODImagePixelModule<Uint8> > );
+}
diff --git a/dcmjpeg/libsrc/ddpiimpl.cc b/dcmjpeg/libsrc/ddpiimpl.cc
index 8935e3f..7bd35ef 100644
--- a/dcmjpeg/libsrc/ddpiimpl.cc
+++ b/dcmjpeg/libsrc/ddpiimpl.cc
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2003-2014, OFFIS e.V.
+ *  Copyright (C) 2003-2016, OFFIS e.V.
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation were developed by
@@ -79,7 +79,7 @@ OFBool DicomDirImageImplementation::scaleImage(DcmItem *dataset,
     /* check parameters (at least the pointers) */
     if ((dataset != NULL) && (pixel != NULL) && (frame > 0))
     {
-        size_t flags = CIF_UsePartialAccessToPixelData | CIF_NeverAccessEmbeddedOverlays;
+        unsigned long flags = CIF_UsePartialAccessToPixelData | CIF_NeverAccessEmbeddedOverlays;
         if (decompressAll)
             flags |= CIF_DecompressCompletePixelData;
         /* open referenced image */
diff --git a/dcmjpeg/libsrc/djcodece.cc b/dcmjpeg/libsrc/djcodece.cc
index 43461aa..d3d2d0c 100644
--- a/dcmjpeg/libsrc/djcodece.cc
+++ b/dcmjpeg/libsrc/djcodece.cc
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2001-2015, OFFIS e.V.
+ *  Copyright (C) 2001-2016, OFFIS e.V.
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation were developed by
@@ -515,7 +515,7 @@ OFCondition DJCodecEncoder::encodeTrueLossless(
     }
 
     /* Set and check photometric interpretation (up to now: EPI_RGB)
-     * Only photometric interpretations, that are explicetly "supported" by the
+     * Only photometric interpretations, that are explicitly "supported" by the
      * IJG lib are set. For all others "unknown" is set. Some are even rejected here.
      */
     if (photometricInterpretation == "MONOCHROME1")
@@ -929,7 +929,7 @@ OFCondition DJCodecEncoder::encodeMonochromeImage(
   if (result.good()) result = adjustOverlays(dataset, dimage);
 
   // VOI transformations should only be applied on the dataset level, not
-  // in nested items such as the Icon Image Sequence where we don't exect
+  // in nested items such as the Icon Image Sequence where we don't expect
   // a VOI window or LUT to be present
   size_t windowType = 0;
   if (dataset->ident() == EVR_dataset)
@@ -958,7 +958,7 @@ OFCondition DJCodecEncoder::encodeMonochromeImage(
           if (classUID && ! cp->getConvertToSC())
           {
             // these three SOP classes use the X-Ray Image Module in which the meaning
-            // of the Modality LUT transformation is "inversersed" and, therefore,
+            // of the Modality LUT transformation is "inversed" and, therefore,
             // needs special handling.  This is not an issue if we're converting to
             // secondary capture anyway.
             if ((0 == strcmp(classUID, UID_XRayAngiographicImageStorage)) ||
@@ -1415,7 +1415,7 @@ OFCondition DJCodecEncoder::togglePlanarConfiguration8(
   const Uint16 samplesPerPixel,
   const Uint16 oldPlanarConfig)
 {
-  if ( (pixelData == NULL) )
+  if (pixelData == NULL)
     return EC_IllegalParameter;
   // allocate target buffer
   Uint8* px8 = new Uint8[numValues];
@@ -1451,7 +1451,7 @@ OFCondition DJCodecEncoder::togglePlanarConfiguration16(
   const Uint16 samplesPerPixel,
   const Uint16 oldPlanarConfig)
 {
-  if ( (pixelData == NULL) )
+  if (pixelData == NULL)
     return EC_IllegalParameter;
   // allocate target buffer
   Uint16* px16 = new Uint16[numValues];
diff --git a/dcmjpls/libcharls/decodstr.h b/dcmjpls/libcharls/decodstr.h
index 772af6f..d892c5e 100644
--- a/dcmjpls/libcharls/decodstr.h
+++ b/dcmjpls/libcharls/decodstr.h
@@ -19,10 +19,13 @@ class DecoderStrategy
 public:
 	DecoderStrategy(const JlsParameters& info) :
 		  _info(info),
-	      _processLine(0),
+		  _processLine(0),
 		  _readCache(0),
 		  _validBits(0),
-		  _position(0)
+		  _position(0),
+		  _size(0),
+		  _current_offset(0),
+		  _nextFFPosition(0)
 	  {
 	  }
 
@@ -31,14 +34,15 @@ public:
 	  }
 
 	  virtual void SetPresets(const JlsCustomParameters& presets) = 0;
-	  virtual size_t DecodeScan(void* outputData, const JlsRect& size, const void* compressedData, size_t byteCount, bool bCheck) = 0;
+	  virtual size_t DecodeScan(void* outputData, const JlsRect& size, BYTE **buf, size_t *buf_size, size_t offset, bool bCheck) = 0;
 
-	  void Init(BYTE* compressedBytes, size_t byteCount)
+	  void Init(BYTE **ptr, size_t *size, size_t offset)
 	  {
 		  _validBits = 0;
 		  _readCache = 0;
-		  _position = compressedBytes;
-		  _endPosition = compressedBytes + byteCount;
+		  _position = ptr;
+		  _size = size;
+		  _current_offset = offset;
 		  _nextFFPosition = FindNextFF();
 		  MakeValid();
 	  }
@@ -61,11 +65,11 @@ public:
 
 	  void EndScan()
 	  {
-		  if ((*_position) != 0xFF)
+		  if (current_value() != 0xFF)
 		  {
 			  ReadBit();
 
-			  if ((*_position) != 0xFF)
+			  if (current_value() != 0xFF)
 				throw JlsException(TooMuchCompressedData);
 		  }
 
@@ -77,11 +81,11 @@ public:
 	  inlinehint bool OptimizedRead()
 	  {
 		  // Easy & fast: if there is no 0xFF byte in sight, we can read without bitstuffing
-		  if (_position < _nextFFPosition - (sizeof(bufType)-1))
+		  if (_current_offset < _nextFFPosition - (sizeof(bufType)-1))
 		  {
-			  _readCache		 |= FromBigEndian<sizeof(bufType)>::Read(_position) >> _validBits;
+			  _readCache		 |= FromBigEndian<sizeof(bufType)>::Read(*_position + _current_offset) >> _validBits;
 			  int bytesToRead = (bufferbits - _validBits) >> 3;
-			  _position += bytesToRead;
+			  _current_offset += bytesToRead;
 			  _validBits += bytesToRead * 8;
 			  ASSERT(_validBits >= bufferbits - 8);
 			  return true;
@@ -104,7 +108,7 @@ public:
 
 		  do
 		  {
-			  if (_position >= _endPosition)
+			  if (_current_offset >= *_size)
 			  {
 				  if (_validBits <= 0)
 					  throw JlsException(InvalidCompressedData);
@@ -112,12 +116,12 @@ public:
 				  return;
 			  }
 
-			  bufType valnew	  = _position[0];
+			  bufType valnew	  = current_value();
 			  
 			  if (valnew == 0xFF)		
 			  {
 				  // JPEG bitstream rule: no FF may be followed by 0x80 or higher	    			 
-				 if (_position == _endPosition - 1 || (_position[1] & 0x80) != 0)
+				 if (_current_offset == *_size - 1 || ((*_position)[_current_offset + 1] & 0x80) != 0)
 				 {
 					 if (_validBits <= 0)
 					 	throw JlsException(InvalidCompressedData);
@@ -127,7 +131,7 @@ public:
 			  }
 
 			  _readCache		 |= valnew << (bufferbits - 8  - _validBits);
-			  _position   += 1;				
+			  _current_offset   += 1;
 			  _validBits		 += 8; 
 
 			  if (valnew == 0xFF)		
@@ -143,39 +147,39 @@ public:
 	  }
 
 
-	  BYTE* FindNextFF()
+	  size_t FindNextFF()
 	  {
-		  BYTE* pbyteNextFF = _position;
+		  size_t off = _current_offset;
 
-		  while (pbyteNextFF < _endPosition)
+		  while (off < *_size)
 	      {
-			  if (*pbyteNextFF == 0xFF) 
+			  if ((*_position)[off] == 0xFF)
 			  {				  
 				  break;
 			  }
-    		  pbyteNextFF++;
+		  off++;
 		  }
 		  
 
-		  return pbyteNextFF;
+		  return off;
 	  }
 
 
-	  BYTE* GetCurBytePos() const
+	  BYTE *GetCurBytePos() const
 	  {
 		  LONG  validBits = _validBits;
-		  BYTE* compressedBytes = _position;
+		  size_t off = _current_offset;
 
 		  for (;;)
 		  {
-			  LONG cbitLast = compressedBytes[-1] == 0xFF ? 7 : 8;
+			  LONG cbitLast = (*_position)[off - 1] == 0xFF ? 7 : 8;
 
 			  if (validBits < cbitLast )
-				  return compressedBytes;
+				  return (*_position) + off;
 
 			  validBits -= cbitLast; 
-			  compressedBytes--;
-		  }	
+			  off--;
+		  }
 	  }
 
 
@@ -273,12 +277,18 @@ protected:
 	OFauto_ptr<ProcessLine> _processLine;
 
 private:
+	BYTE current_value() const
+	{
+		return (*_position)[_current_offset];
+	}
+
 	// decoding
 	bufType _readCache;
 	LONG _validBits;
-	BYTE* _position;
-	BYTE* _nextFFPosition;
-	BYTE* _endPosition;
+	BYTE **_position;
+	size_t *_size;
+	size_t _current_offset;
+	size_t _nextFFPosition;
 };
 
 
diff --git a/dcmjpls/libcharls/encodstr.h b/dcmjpls/libcharls/encodstr.h
index ecc823c..786754e 100644
--- a/dcmjpls/libcharls/encodstr.h
+++ b/dcmjpls/libcharls/encodstr.h
@@ -5,7 +5,11 @@
 #ifndef CHARLS_ENCODERSTRATEGY
 #define CHARLS_ENCODERSTRATEGY
 
+#define INCLUDE_NEW
+#include "dcmtk/ofstd/ofstdinc.h"
+
 #include "dcmtk/ofstd/ofaptr.h"
+#include "dcmtk/ofstd/ofbmanip.h"
 #include "procline.h"
 #include "decodstr.h"
 
@@ -42,16 +46,17 @@ public:
 
     virtual void SetPresets(const JlsCustomParameters& presets) = 0;
     
-  virtual size_t EncodeScan(const void* pvoid, void* pvoidOut, size_t byteCount, void* pvoidCompare) = 0;
+  virtual size_t EncodeScan(const void* rawData, BYTE **ptr, size_t *size, size_t offset, bool compare) = 0;
 
 protected:
 
-  void Init(BYTE* compressedBytes, size_t byteCount)
+  void Init(BYTE **ptr, size_t *size, size_t offset)
   {
     bitpos = 32;
     valcurrent = 0;
-    _position = compressedBytes;
-      _compressedLength = byteCount;
+    _position = ptr;
+    _size = size;
+    _current_offset = offset;
   }
 
 
@@ -114,22 +119,18 @@ protected:
       if (_isFFWritten)
       {
         // JPEG-LS requirement (T.87, A.1) to detect markers: after a xFF value a single 0 bit needs to be inserted.
-        *_position = BYTE(valcurrent >> 25);
-        valcurrent = valcurrent << 7;     
-        bitpos += 7;  
+        write(BYTE(valcurrent >> 25));
+        valcurrent = valcurrent << 7;
+        bitpos += 7;
         _isFFWritten = false;
       }
       else
       {
-        *_position = BYTE(valcurrent >> 24);
+        write(BYTE(valcurrent >> 24));
+        _isFFWritten = (*_position)[_current_offset - 1] == 0xFF;
         valcurrent = valcurrent << 8;     
-        bitpos += 8;      
-        _isFFWritten = *_position == 0xFF;      
+        bitpos += 8;
       }
-      
-      _position++;
-      _compressedLength--;
-      _bytesWritten++;
 
     }
     
@@ -153,13 +154,45 @@ protected:
   JlsParameters _info;
   OFauto_ptr<ProcessLine> _processLine;
 private:
+  static BYTE *re_alloc(BYTE *old_ptr, size_t *old_size)
+  {
+    size_t new_size = *old_size * 2;
+#ifdef HAVE_STD__NOTHROW
+    BYTE *new_ptr = new(std::nothrow) BYTE[new_size];
+#else
+    BYTE *new_ptr = new BYTE[new_size];
+#endif
+    if (new_ptr == NULL) {
+      throw alloc_fail();
+    }
+
+    OFBitmanipTemplate<BYTE>::copyMem(old_ptr, new_ptr, *old_size);
+
+    delete[] old_ptr;
+
+    *old_size = new_size;
+
+    return new_ptr;
+  }
+
+  void write(BYTE value)
+  {
+    if (_current_offset == *_size) {
+      *_position = re_alloc(*_position, _size);
+    }
+
+    (*_position)[_current_offset] = value;
+    ++_current_offset;
+    ++_bytesWritten;
+  }
 
   unsigned int valcurrent;
   LONG bitpos;
-  size_t _compressedLength;
   
   // encoding
-  BYTE* _position;
+  BYTE **_position;
+  size_t *_size;
+  size_t _current_offset;
   bool _isFFWritten;
   size_t _bytesWritten;
 
diff --git a/dcmjpls/libcharls/header.cc b/dcmjpls/libcharls/header.cc
index 11c3879..f7c3dd1 100644
--- a/dcmjpls/libcharls/header.cc
+++ b/dcmjpls/libcharls/header.cc
@@ -145,9 +145,7 @@ JpegSegment* CreateMarkerStartOfFrame(Size size, LONG bitsPerSample, LONG ccomp)
 //
 JLSOutputStream::JLSOutputStream() :
 	_bCompare(false),
-	_pdata(NULL),
-	_cbyteOffset(0),
-	_cbyteLength(0),
+	_cbytesWritten(0),
 	_icompLast(0)
 {
 }
@@ -194,12 +192,14 @@ void JLSOutputStream::AddColorTransform(int i)
 //
 // Write()
 //
-size_t JLSOutputStream::Write(BYTE* pdata, size_t cbyteLength)
+size_t JLSOutputStream::Write(BYTE **ptr, size_t *size, size_t offset)
 {
-	_pdata = pdata;
-	_cbyteLength = cbyteLength;
+	_position = ptr;
+	_size = size;
+	_current_offset = offset;
 
 	WriteByte(0xFF);
+
 	WriteByte(JPEG_SOI);
 	
 	for (size_t i = 0; i < _segments.size(); ++i)
@@ -212,7 +212,7 @@ size_t JLSOutputStream::Write(BYTE* pdata, size_t cbyteLength)
 	WriteByte(0xFF);
 	WriteByte(JPEG_EOI);
 
-	return _cbyteOffset;
+	return _cbytesWritten;
 }
 
 
@@ -531,7 +531,9 @@ void JLSInputStream::ReadScan(void* pvout)
 {
 	OFauto_ptr<DecoderStrategy> qcodec = JlsCodecFactory<DecoderStrategy>().GetCodec(_info, _info.custom);
 	
-	_cbyteOffset += qcodec->DecodeScan(pvout, _rect, _pdata + _cbyteOffset, _cbyteLength - _cbyteOffset, _bCompare); 
+	BYTE **ptr = (BYTE **)&_pdata;
+	size_t *size = &_cbyteLength;
+	_cbyteOffset += qcodec->DecodeScan(pvout, _rect, ptr, size, _cbyteOffset, _bCompare);
 }
 
 
@@ -551,8 +553,8 @@ public:
 		JlsParameters info = _info;
 		info.components = _ccompScan;	
 		OFauto_ptr<EncoderStrategy> qcodec =JlsCodecFactory<EncoderStrategy>().GetCodec(info, _info.custom);
-		size_t cbyteWritten = qcodec->EncodeScan((BYTE*)_pvoidRaw, pstream->GetPos(), pstream->GetLength(), pstream->_bCompare ? pstream->GetPos() : NULL); 
-		pstream->Seek(cbyteWritten);
+		size_t cbyteWritten = qcodec->EncodeScan((BYTE*)_pvoidRaw, pstream->get_pos(), pstream->get_size(), pstream->get_offset(), pstream->_bCompare);
+		pstream->seek(cbyteWritten);
 	}
 
 
diff --git a/dcmjpls/libcharls/intrface.cc b/dcmjpls/libcharls/intrface.cc
index 91f75f1..be79740 100644
--- a/dcmjpls/libcharls/intrface.cc
+++ b/dcmjpls/libcharls/intrface.cc
@@ -37,13 +37,37 @@ JLS_ERROR CheckInput(const void* compressedData, size_t compressedLength, const
 	return CheckParameterCoherent(pparams);
 }
 
+JLS_ERROR CheckInput(const void* uncompressedData, size_t uncompressedLength, const JlsParameters* pparams)
+{
+	if (pparams == NULL)
+		return InvalidJlsParameters;
+
+	if (uncompressedData == NULL)
+		return InvalidJlsParameters;
+
+	if (pparams->width < 1 || pparams->width > 65535)
+		return ParameterValueNotSupported;
+
+	if (pparams->height < 1 || pparams->height > 65535)
+		return ParameterValueNotSupported;
+
+	int bytesperline = pparams->bytesperline < 0 ? -pparams->bytesperline : pparams->bytesperline;
+
+	if (uncompressedLength < size_t(bytesperline * pparams->height))
+		return InvalidJlsParameters;
+
+	return CheckParameterCoherent(pparams);
+}
+
 
 
 extern "C"
 {
 
-CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedLength, size_t* pcbyteWritten, const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams)
+CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(BYTE **buf, size_t *buf_size, size_t* pcbyteWritten, const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams)
 {
+	*pcbyteWritten = 0;
+
 	JlsParameters info = *pparams;
 	if(info.bytesperline == 0)
 	{
@@ -54,7 +78,7 @@ CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedL
 		}
 	}
 	
-	JLS_ERROR parameterError = CheckInput(compressedData, compressedLength, uncompressedData, uncompressedLength, &info);
+	JLS_ERROR parameterError = CheckInput(uncompressedData, uncompressedLength, &info);
 
 	if (parameterError != OK)
 		return parameterError;
@@ -86,9 +110,15 @@ CHARLS_IMEXPORT(JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedL
 		stream.AddScan(uncompressedData, &info);
 	}
 
-	
-	stream.Write((BYTE*)compressedData, compressedLength);
-	
+	try
+	{
+		stream.Write(buf, buf_size, 0);
+	}
+	catch (const alloc_fail&)
+	{
+		return MemoryAllocationFailure;
+	}
+
 	*pcbyteWritten = stream.GetBytesWritten();	
 	return OK;
 }
@@ -169,14 +199,23 @@ CHARLS_IMEXPORT(JLS_ERROR) JpegLsVerifyEncode(const void* uncompressedData, size
 	{
 		stream.AddScan(uncompressedData, &info);
 	}
-
-	OFVector<BYTE> rgbyteCompressed(compressedLength + 16);
-	
-	memcpy(&rgbyteCompressed[0], compressedData, compressedLength);
 	
+	size_t buf_size = compressedLength + 16;
+	BYTE *buf = new BYTE[buf_size];
+
+	memcpy(buf, compressedData, compressedLength);
+
 	stream.EnableCompare(true);
-	stream.Write(&rgbyteCompressed[0], compressedLength);
-	
+
+	try
+	{
+		stream.Write(&buf, &buf_size, 0);
+	}
+	catch (const alloc_fail&)
+	{
+		return MemoryAllocationFailure;
+	}
+
 	return OK;
 }
 
diff --git a/dcmjpls/libcharls/intrface.h b/dcmjpls/libcharls/intrface.h
index 5272aff..c8fdaa9 100644
--- a/dcmjpls/libcharls/intrface.h
+++ b/dcmjpls/libcharls/intrface.h
@@ -25,8 +25,8 @@
 extern "C" 
 {
 #endif
-  CHARLS_IMEXPORT(enum JLS_ERROR) JpegLsEncode(void* compressedData, size_t compressedLength, size_t* pcbyteWritten, 
-	    const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams);
+  CHARLS_IMEXPORT(enum JLS_ERROR) JpegLsEncode(BYTE **ptr, size_t *size, size_t* pcbyteWritten,
+		const void* uncompressedData, size_t uncompressedLength, struct JlsParameters* pparams);
 
   CHARLS_IMEXPORT(enum JLS_ERROR) JpegLsDecode(void* uncompressedData, size_t uncompressedLength, 
 		const void* compressedData, size_t compressedLength, 
diff --git a/dcmjpls/libcharls/pubtypes.h b/dcmjpls/libcharls/pubtypes.h
index 612738c..9e2fd48 100644
--- a/dcmjpls/libcharls/pubtypes.h
+++ b/dcmjpls/libcharls/pubtypes.h
@@ -17,7 +17,8 @@ enum JLS_ERROR
 	TooMuchCompressedData,
 	ImageTypeNotSupported,
 	UnsupportedBitDepthForTransform,
-	UnsupportedColorTransform
+	UnsupportedColorTransform,
+	MemoryAllocationFailure
 };
 
 
diff --git a/dcmjpls/libcharls/scan.h b/dcmjpls/libcharls/scan.h
index 589e299..5cd2515 100644
--- a/dcmjpls/libcharls/scan.h
+++ b/dcmjpls/libcharls/scan.h
@@ -262,15 +262,15 @@ public:
 
 	  void DoLine(SAMPLE* pdummy);
 	  void DoLine(Triplet<SAMPLE>* pdummy);
-	  void DoScan(BYTE* compressedBytes, size_t compressedLength);         
+	  void DoScan(BYTE **ptr, size_t *size, size_t offset);
 
 public:
 	ProcessLine* CreateProcess(void* pvoidOut);
 	void InitDefault();
 	void InitParams(LONG t1, LONG t2, LONG t3, LONG nReset);
 
-	size_t  EncodeScan(const void* rawData, void* pvoidOut, size_t compressedLength, void* pvoidCompare);
-	size_t  DecodeScan(void* rawData, const JlsRect& size, const void* compressedData, size_t compressedLength, bool bCompare);
+	size_t  EncodeScan(const void* rawData, BYTE **ptr, size_t *size, size_t offset, bool compare);
+	size_t  DecodeScan(void* rawData, const JlsRect& size, BYTE **buf, size_t *buf_size, size_t offset, bool bCompare);
 
 protected:
 	// codec parameters 
@@ -698,11 +698,11 @@ void JlsCodec<TRAITS,STRATEGY>::DoLine(Triplet<SAMPLE>*)
 // In ILV_NONE mode, DoScan is called for each component 
 
 template<class TRAITS, class STRATEGY>
-void JlsCodec<TRAITS,STRATEGY>::DoScan(BYTE* compressedBytes, size_t compressedLength)
+void JlsCodec<TRAITS,STRATEGY>::DoScan(BYTE **ptr, size_t *size, size_t offset)
 {		
 	_width = Info().width;
 
-	STRATEGY::Init(compressedBytes, compressedLength);
+	STRATEGY::Init(ptr, size, offset);
 
 	LONG pixelstride = _width + 4;
 	int components = Info().ilv == ILV_LINE ? Info().components : 1;
@@ -788,19 +788,17 @@ ProcessLine* JlsCodec<TRAITS,STRATEGY>::CreateProcess(void* pvoidOut)
 // Setup codec for encoding and calls DoScan
 
 template<class TRAITS, class STRATEGY>
-size_t JlsCodec<TRAITS,STRATEGY>::EncodeScan(const void* rawData, void* compressedData, size_t compressedLength, void* pvoidCompare)
+size_t JlsCodec<TRAITS,STRATEGY>::EncodeScan(const void* rawData, BYTE **ptr, size_t *size, size_t offset, bool compare)
 {
 	STRATEGY::_processLine = OFauto_ptr<ProcessLine>(CreateProcess(const_cast<void*>(rawData)));
-	
-	BYTE* compressedBytes = static_cast<BYTE*>(compressedData);
 
-	if (pvoidCompare != NULL)
+	if (compare)
 	{
-		STRATEGY::_qdecoder = OFauto_ptr<DecoderStrategy>(new JlsCodec<TRAITS,DecoderStrategy>(traits, Info()));		
-		STRATEGY::_qdecoder->Init((BYTE*)pvoidCompare, compressedLength); 
+		STRATEGY::_qdecoder = OFauto_ptr<DecoderStrategy>(new JlsCodec<TRAITS,DecoderStrategy>(traits, Info()));
+		STRATEGY::_qdecoder->Init(ptr, size, offset);
 	}
 
-	DoScan(compressedBytes, compressedLength);
+	DoScan(ptr, size, offset);
 	
 	return	STRATEGY::GetLength();
 
@@ -809,17 +807,16 @@ size_t JlsCodec<TRAITS,STRATEGY>::EncodeScan(const void* rawData, void* compress
 // Setup codec for decoding and calls DoScan
 
 template<class TRAITS, class STRATEGY>
-size_t JlsCodec<TRAITS,STRATEGY>::DecodeScan(void* rawData, const JlsRect& rect, const void* compressedData, size_t compressedLength, bool bCompare)
+size_t JlsCodec<TRAITS,STRATEGY>::DecodeScan(void* rawData, const JlsRect& rect, BYTE **ptr, size_t *size, size_t offset, bool bCompare)
 {
 	STRATEGY::_processLine = OFauto_ptr<ProcessLine>(CreateProcess(rawData));
 
-	BYTE* compressedBytes	= const_cast<BYTE*>(static_cast<const BYTE*>(compressedData));
 	_bCompare = bCompare;
 
 	BYTE rgbyte[20];
 
 	size_t readBytes = 0;
-	::memcpy(rgbyte, compressedBytes, 4);
+	::memcpy(rgbyte, *ptr + offset + readBytes, 4);
 	readBytes += 4;
 
 	size_t cbyteScanheader = rgbyte[3] - 2;
@@ -827,14 +824,14 @@ size_t JlsCodec<TRAITS,STRATEGY>::DecodeScan(void* rawData, const JlsRect& rect,
 	if (cbyteScanheader > sizeof(rgbyte))
 		throw JlsException(InvalidCompressedData);
 
-	::memcpy(rgbyte, compressedBytes, cbyteScanheader);
+	::memcpy(rgbyte, *ptr + offset + readBytes, cbyteScanheader);
 	readBytes += cbyteScanheader;
 
 	_rect = rect;
 
-	DoScan(compressedBytes + readBytes, compressedLength - readBytes);
+	DoScan(ptr, size, offset + readBytes);
 	
-	return STRATEGY::GetCurBytePos() - compressedBytes;
+	return STRATEGY::GetCurBytePos() - (*ptr + offset);
 }
 
 // Initialize the codec data structures. Depends on JPEG-LS parameters like T1-T3.
diff --git a/dcmjpls/libcharls/streams.h b/dcmjpls/libcharls/streams.h
index ea8e8ce..a2ef422 100644
--- a/dcmjpls/libcharls/streams.h
+++ b/dcmjpls/libcharls/streams.h
@@ -4,6 +4,9 @@
 #ifndef CHARLS_STREAMS
 #define CHARLS_STREAMS
 
+#define INCLUDE_NEW
+#include "dcmtk/ofstd/ofstdinc.h"
+
 #include "dcmtk/ofstd/ofvector.h"
 #include "dcmtk/ofstd/ofbmanip.h"
 #include "util.h"
@@ -48,24 +51,30 @@ public:
 	void AddLSE(const JlsCustomParameters* pcustom);
 	void AddColorTransform(int i);
 	size_t GetBytesWritten()
-		{ return _cbyteOffset; }
+		{ return _cbytesWritten; }
 
-	size_t GetLength()
-		{ return _cbyteLength - _cbyteOffset; }
+	size_t Write(BYTE **ptr, size_t *size, size_t offset);
+
+	BYTE **get_pos() { return _position; }
+
+	size_t *get_size() { return _size; }
+
+	size_t get_offset() { return _current_offset; }
 
-	size_t Write(BYTE* pdata, size_t cbyteLength);
-	
 	void EnableCompare(bool bCompare) 
 	{ _bCompare = bCompare; }
 private:
-	BYTE* GetPos() const
-		{ return _pdata + _cbyteOffset; }
-
 	void WriteByte(BYTE val)
 	{ 
-		ASSERT(!_bCompare || _pdata[_cbyteOffset] == val);
+		ASSERT(!_bCompare || (*_position)[_current_offset] == val);
 		
-		_pdata[_cbyteOffset++] = val; 
+		if (_current_offset == *_size) {
+			*_position = re_alloc(*_position, _size);
+		}
+
+		(*_position)[_current_offset++] = val;
+
+		_cbytesWritten++;
 	}
 
 	void WriteBytes(const OFVector<BYTE>& rgbyte)
@@ -82,16 +91,40 @@ private:
 		WriteByte(BYTE(val % 0x100));
 	}
 
-
-    void Seek(size_t byteCount)
-		{ _cbyteOffset += byteCount; }
+	void seek(size_t n)
+	{
+		_cbytesWritten += n;
+		_current_offset += n;
+	}
 
 	bool _bCompare;
 
 private:
-	BYTE* _pdata;
-	size_t _cbyteOffset;
-	size_t _cbyteLength;
+	static BYTE *re_alloc(BYTE *old_ptr, size_t *old_size)
+	{
+		size_t new_size = *old_size * 2;
+#ifdef HAVE_STD__NOTHROW
+		BYTE *new_ptr = new BYTE[new_size];
+#else
+		BYTE *new_ptr = new BYTE[new_size];
+#endif
+		if (new_ptr == NULL) {
+			throw alloc_fail();
+		}
+
+		OFBitmanipTemplate<BYTE>::copyMem(old_ptr, new_ptr, *old_size);
+
+		delete[] old_ptr;
+
+		*old_size = new_size;
+
+		return new_ptr;
+	}
+
+	BYTE **_position;
+	size_t *_size;
+	size_t _current_offset;
+	size_t _cbytesWritten;
 	LONG _icompLast;
 	OFVector<JpegSegment*> _segments;
 };
diff --git a/dcmjpls/libcharls/util.h b/dcmjpls/libcharls/util.h
index b2a02a4..4b39704 100644
--- a/dcmjpls/libcharls/util.h
+++ b/dcmjpls/libcharls/util.h
@@ -22,6 +22,7 @@
 #define ABS(a)              (((a) > 0) ? (a) : -(a))
 #endif
 
+class alloc_fail { };
 
 inline LONG log_2(LONG n)
 {
diff --git a/dcmjpls/libsrc/djcodece.cc b/dcmjpls/libsrc/djcodece.cc
index 261fec8..64686ff 100644
--- a/dcmjpls/libsrc/djcodece.cc
+++ b/dcmjpls/libsrc/djcodece.cc
@@ -657,24 +657,20 @@ OFCondition DJLSEncoderBase::compressRawFrame(
 
   if (result.good())
   {
-    // We have no idea how big the compressed pixel data will be and we have no
-    // way to find out, so we just allocate a buffer large enough for the raw data
-    // plus a little more for JPEG metadata.
-    // Yes, this is way too much for just a little JPEG metadata, but some
-    // test-images showed that the buffer previously was too small. Plus, at some
-    // places charls fails to do proper bounds checking and writes behind the end
-    // of the buffer (sometimes way behind its end...).
+    // The buffer is going to be dynamically reallocated if it's too small, so it doesn't matter that
+    // much what initial size we use.
     size_t size = frameSize + 1024;
-    Uint8 *buffer = new Uint8[size];
+    BYTE *buffer = new BYTE[size];
 
-    JLS_ERROR err = JpegLsEncode(buffer, size, &size, framePointer, frameSize, &jls_params);
+    size_t bytesWritten = 0;
+
+    JLS_ERROR err = JpegLsEncode(&buffer, &size, &bytesWritten, framePointer, frameSize, &jls_params);
     result = DJLSError::convert(err);
 
     if (result.good())
     {
-      // 'size' now contains the size of the compressed data in buffer
-      compressedSize = size;
-      result = pixelSequence->storeCompressedFrame(offsetList, buffer, size, fragmentSize);
+      compressedSize = bytesWritten;
+      result = pixelSequence->storeCompressedFrame(offsetList, buffer, compressedSize, fragmentSize);
     }
 
     delete[] buffer;
@@ -1053,25 +1049,19 @@ OFCondition DJLSEncoderBase::compressCookedFrame(
     result = convertToUninterleaved(frameBuffer, buffer, samplesPerPixel, width, height, jls_params.bitspersample);
   }
 
-  // We have no idea how big the compressed pixel data will be and we have no
-  // way to find out, so we just allocate a buffer large enough for the raw data
-  // plus a little more for JPEG metadata.
-  // Yes, this is way too much for just a little JPEG metadata, but some
-  // test-images showed that the buffer previously was too small. Plus, at some
-  // places charls fails to do proper bounds checking and writes behind the end
-  // of the buffer (sometimes way behind its end...).
   size_t compressed_buffer_size = buffer_size + 1024;
-  Uint8 *compressed_buffer = new Uint8[compressed_buffer_size];
+  BYTE *compressed_buffer = new BYTE[compressed_buffer_size];
+
+  size_t bytesWritten = 0;
 
-  JLS_ERROR err = JpegLsEncode(compressed_buffer, compressed_buffer_size,
-      &compressed_buffer_size, framePointer, buffer_size, &jls_params);
+  JLS_ERROR err = JpegLsEncode(&compressed_buffer, &compressed_buffer_size, &bytesWritten, framePointer, buffer_size, &jls_params);
   result = DJLSError::convert(err);
 
   if (result.good())
   {
     // 'compressed_buffer_size' now contains the size of the compressed data in buffer
-    compressedSize = compressed_buffer_size;
-    result = pixelSequence->storeCompressedFrame(offsetList, compressed_buffer, compressed_buffer_size, fragmentSize);
+    compressedSize = bytesWritten;
+    result = pixelSequence->storeCompressedFrame(offsetList, compressed_buffer, compressedSize, fragmentSize);
   }
 
   delete[] buffer;
diff --git a/dcmnet/docs/movescu.man b/dcmnet/docs/movescu.man
index 02897d7..2b1e355 100644
--- a/dcmnet/docs/movescu.man
+++ b/dcmnet/docs/movescu.man
@@ -544,6 +544,8 @@ LegacyConvertedEnhancedPETImageStorage               1.2.840.10008.5.1.4.1.1.128
 RETIRED_StandalonePETCurveStorage                    1.2.840.10008.5.1.4.1.1.129
 EnhancedPETImageStorage                              1.2.840.10008.5.1.4.1.1.130
 BasicStructuredDisplayStorage                        1.2.840.10008.5.1.4.1.1.131
+CTDefinedProcedureProtocolStorage                    1.2.840.10008.5.1.4.1.1.200.1
+CTPerformedProcedureProtocolStorage                  1.2.840.10008.5.1.4.1.1.200.2
 RTImageStorage                                       1.2.840.10008.5.1.4.1.1.481.1
 RTDoseStorage                                        1.2.840.10008.5.1.4.1.1.481.2
 RTStructureSetStorage                                1.2.840.10008.5.1.4.1.1.481.3
diff --git a/dcmnet/docs/storescp.man b/dcmnet/docs/storescp.man
index 1d58a38..f1f2426 100644
--- a/dcmnet/docs/storescp.man
+++ b/dcmnet/docs/storescp.man
@@ -662,6 +662,8 @@ LegacyConvertedEnhancedPETImageStorage               1.2.840.10008.5.1.4.1.1.128
 RETIRED_StandalonePETCurveStorage                    1.2.840.10008.5.1.4.1.1.129
 EnhancedPETImageStorage                              1.2.840.10008.5.1.4.1.1.130
 BasicStructuredDisplayStorage                        1.2.840.10008.5.1.4.1.1.131
+CTDefinedProcedureProtocolStorage                    1.2.840.10008.5.1.4.1.1.200.1
+CTPerformedProcedureProtocolStorage                  1.2.840.10008.5.1.4.1.1.200.2
 RTImageStorage                                       1.2.840.10008.5.1.4.1.1.481.1
 RTDoseStorage                                        1.2.840.10008.5.1.4.1.1.481.2
 RTStructureSetStorage                                1.2.840.10008.5.1.4.1.1.481.3
diff --git a/dcmnet/etc/storescp.cfg b/dcmnet/etc/storescp.cfg
index 03959da..7c3e685 100644
--- a/dcmnet/etc/storescp.cfg
+++ b/dcmnet/etc/storescp.cfg
@@ -206,6 +206,8 @@ PresentationContext128 = DRAFT_WaveformStorage\UncompressedOrZlib
 # - BreastProjectionXRayImageStorageForProcessing
 # - CompositingPlanarMPRVolumetricPresentationStateStorage
 # - ContentAssessmentResultsStorage
+# - CTDefinedProcedureProtocolStorage
+# - CTPerformedProcedureProtocolStorage
 # - ExtensibleSRStorage
 # - GrayscalePlanarMPRVolumetricPresentationStateStorage
 # - LegacyConvertedEnhancedCTImageStorage
diff --git a/dcmnet/etc/storescu.cfg b/dcmnet/etc/storescu.cfg
index 5b655d2..6f2a513 100644
--- a/dcmnet/etc/storescu.cfg
+++ b/dcmnet/etc/storescu.cfg
@@ -211,6 +211,8 @@ PresentationContext128 = VideoPhotographicImageStorage\MPEG2
 # - Comprehensive3DSRStorage
 # - ContentAssessmentResultsStorage
 # - CornealTopographyMapStorage
+# - CTDefinedProcedureProtocolStorage
+# - CTPerformedProcedureProtocolStorage
 # - DeformableSpatialRegistrationStorage
 # - EncapsulatedCDAStorage
 # - EnhancedMRColorImageStorage
diff --git a/dcmnet/libsrc/dstorscu.cc b/dcmnet/libsrc/dstorscu.cc
index 27b7b22..c93f175 100644
--- a/dcmnet/libsrc/dstorscu.cc
+++ b/dcmnet/libsrc/dstorscu.cc
@@ -929,6 +929,8 @@ OFCondition DcmStorageSCU::sendSOPInstances()
 
 void DcmStorageSCU::notifySOPInstanceToBeSent(const TransferEntry &transferEntry)
 {
+    // avoid compiler warning
+    (void)transferEntry;
     // do nothing in the default implementation
 }
 
diff --git a/dcmnet/libsrc/dulparse.cc b/dcmnet/libsrc/dulparse.cc
index 8a10d32..0a7d3e0 100644
--- a/dcmnet/libsrc/dulparse.cc
+++ b/dcmnet/libsrc/dulparse.cc
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 1994-2015, OFFIS e.V.
+ *  Copyright (C) 1994-2016, OFFIS e.V.
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation were partly developed by
@@ -466,7 +466,7 @@ parseUserInfo(DUL_USERINFO * userInfo,
     userInfo->type = *buf++;
     // skip unused ("reserved") field
     userInfo->rsv1 = *buf++;
-    // get and remeber announced length of user data
+    // get and remember announced length of user data
     EXTRACT_SHORT_BIG(buf, userInfo->length);
     // .. and skip over the two length field bytes
     buf += 2;
@@ -838,7 +838,7 @@ makeUnderflowError(const char *pdu, unsigned long minuend,
         unsigned long subtrahend)
 {
   OFStringStream stream;
-  stream << "DUL Illegal " << pdu << ". Got " << minuend << " bytes of data and told to subtrat " << subtrahend << " bytes of data";
+  stream << "DUL Illegal " << pdu << ". Got " << minuend << " bytes of data and told to subtract " << subtrahend << " bytes of data";
   stream << "." << OFStringStream_ends;
 
   OFCondition ret;
diff --git a/dcmpmap/CMakeLists.txt b/dcmpmap/CMakeLists.txt
new file mode 100644
index 0000000..5871a54
--- /dev/null
+++ b/dcmpmap/CMakeLists.txt
@@ -0,0 +1,10 @@
+# declare project
+PROJECT(dcmpmaps)
+
+# declare include directories which hold for all subdirectories
+INCLUDE_DIRECTORIES(${dcmpmaps_SOURCE_DIR}/include  ${dcmfg_SOURCE_DIR}/include ${dcmiod_SOURCE_DIR}/include ${dcmdata_SOURCE_DIR}/include ${ofstd_SOURCE_DIR}/include ${oflog_SOURCE_DIR}/include ${ZLIB_INCDIR})
+
+# recurse into subdirectories
+FOREACH(SUBDIR libsrc include)
+  ADD_SUBDIRECTORY(${SUBDIR})
+ENDFOREACH(SUBDIR)
diff --git a/dcmpmap/Makefile.in b/dcmpmap/Makefile.in
new file mode 100644
index 0000000..49fda78
--- /dev/null
+++ b/dcmpmap/Makefile.in
@@ -0,0 +1,86 @@
+#
+#	Makefile for dcmpmaps
+#
+
+ at SET_MAKE@
+
+SHELL = /bin/sh
+VPATH = @srcdir@:@top_srcdir@/include:@top_srcdir@/@configdir@/include
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+
+all: include-all libsrc-all tests-all
+
+install: install-doc install-support
+
+install-doc: docs-install
+
+install-data: data-install
+
+install-etc: etc-install
+
+install-include: include-install
+
+install-lib: libsrc-install install-include
+
+install-support: install-data install-etc
+
+
+include-all:
+	(cd include && $(MAKE) ARCH="$(ARCH)" all)
+
+libsrc-all: include-all
+	(cd libsrc && $(MAKE) ARCH="$(ARCH)" all)
+
+tests-all: libsrc-all
+	(cd tests && $(MAKE) ARCH="$(ARCH)" all)
+
+
+check: tests-all
+	(cd tests && $(MAKE) check)
+
+check-exhaustive: tests-all
+	(cd tests && $(MAKE) check-exhaustive)
+
+
+include-install:
+	(cd include && $(MAKE) ARCH="$(ARCH)" install)
+
+libsrc-install: libsrc-all
+	(cd libsrc && $(MAKE) ARCH="$(ARCH)" install)
+
+docs-install:
+	(cd docs && $(MAKE) install)
+
+data-install:
+	(cd data && $(MAKE) install)
+
+etc-install:
+	(cd etc && $(MAKE) install)
+
+
+clean:
+	(cd include && $(MAKE) clean)
+	(cd libsrc && $(MAKE) clean)
+	(cd tests && $(MAKE) clean)
+	(cd docs && $(MAKE) clean)
+	(cd data && $(MAKE) clean)
+	(cd etc && $(MAKE) clean)
+	rm -f $(TRASH)
+
+distclean:
+	(cd include && $(MAKE) distclean)
+	(cd libsrc && $(MAKE) distclean)
+	(cd tests && $(MAKE) distclean)
+	(cd docs && $(MAKE) distclean)
+	(cd data && $(MAKE) distclean)
+	(cd etc && $(MAKE) distclean)
+	rm -f $(DISTTRASH)
+
+dependencies:
+	(cd libsrc && touch $(DEP) && $(MAKE) dependencies)
+	(cd tests && touch $(DEP) && $(MAKE) dependencies)
diff --git a/dcmpmap/configure b/dcmpmap/configure
new file mode 100755
index 0000000..3877a6a
--- /dev/null
+++ b/dcmpmap/configure
@@ -0,0 +1,53 @@
+#! /bin/sh
+
+parentdir=`pwd`
+thisdir=$parentdir
+
+# The following test constructs relative path from the module
+# directory to the configuration directory. If you know this path
+# you can substitute this with
+# configdir=<relative_path>
+# It is very important that the configdir path is relative.
+
+configdir="configdir"
+
+while test "$parentdir" != "/" -a "$configdir" = "configdir"; do
+	if test -d "$parentdir/config" ; then
+		configdir=$parentdir/config
+	else
+		parentdir=`echo $parentdir | sed 's/\/[^\/]*$//'`
+	fi
+done
+
+if test "$configdir" = "configdir" ; then
+	echo "Cannot find configure directory"
+	exit 1
+fi
+
+if test $# != 0;  then
+	case $1 in
+	-a)
+		shift
+		cd "$configdir"
+		echo "running configure in config-directory"
+		./configure $*
+		cd $thisdir
+		echo "running configure for this module"
+		sh "$configdir/confmod" --srcdir=. $*
+		;;
+	-c)
+		shift
+		cd "$configdir"
+		echo "running configure in config-directory"
+		./configure $*
+		;;
+	*)
+		echo "running configure for this module"
+		sh "$configdir/confmod" --srcdir=. $*
+		;;
+	esac
+else
+	echo "running configure for this module"
+	sh "$configdir/confmod" --srcdir=. $*
+fi
+
diff --git a/dcmpmap/data/Makefile.in b/dcmpmap/data/Makefile.in
new file mode 100644
index 0000000..fb38e30
--- /dev/null
+++ b/dcmpmap/data/Makefile.in
@@ -0,0 +1,23 @@
+#
+#	Makefile for dcmpmap/data
+#
+
+ at SET_MAKE@
+
+SHELL = /bin/sh
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+
+all:
+
+install:
+
+clean:
+	rm -f $(TRASH)
+
+distclean:
+	rm -f $(DISTTRASH)
diff --git a/dcmpmap/docs/Makefile.in b/dcmpmap/docs/Makefile.in
new file mode 100644
index 0000000..80daade
--- /dev/null
+++ b/dcmpmap/docs/Makefile.in
@@ -0,0 +1,23 @@
+#
+#	Makefile for dcmpmap/docs
+#
+
+ at SET_MAKE@
+
+SHELL = /bin/sh
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+
+all:
+
+install:
+
+clean:
+	rm -f $(TRASH)
+
+distclean:
+	rm -f $(DISTTRASH)
diff --git a/dcmpmap/docs/dcmpmap.dox b/dcmpmap/docs/dcmpmap.dox
new file mode 100644
index 0000000..1bffad2
--- /dev/null
+++ b/dcmpmap/docs/dcmpmap.dox
@@ -0,0 +1,527 @@
+/*!
+
+\page mod_dcmpmap dcmpmap: a library for working with parametric map objects
+
+This module contains classes to create, load, access and store DICOM Parametric
+Map objects, which have originally been introduced to the DICOM standard with
+<a href="ftp://medical.nema.org/medical/dicom/final/sup172_ft2.pdf">Supplement
+172</a> in 2014.
+
+In the standard, the data inside each Parametric Map object must rely on one of
+these data types:
+
+\li 16 bit unsigned integer
+\li 16 bit signed integer
+\li 32 bit floating point
+\li 64 bit floating point
+
+All of them are supported by the dcmpmap library.
+
+The main class of this module is:
+\li \b DPMParametricMapIOD
+
+This module makes heavy use of the \ref mod_dcmiod "dcmiod" module for managing
+common IOD attributes and the \ref mod_dcmfg "dcmfg" module for functional group
+support. Read the "Examples" sections for more explanations.
+
+\section Examples
+
+The following two examples show:
+\li How to access and dump information (including the binary data values) from a
+Parametric Map object
+\li and how to use the API to create such an object yourself.
+
+\subsection example_dump Dumping information from Parametric Map
+
+The Parametric Map class uses a template in order to instantiate the correct
+pixel data type internally, and to offer a dedicated API for that type. Allowed
+types are Uint16, Sint16, Float32 and Float64.
+
+Since internally the data types are handled in a C++ Variant, the usual concept
+to "switch" between these types in code is to use a Visitor which overloads the
+operator "()" for each data type that can occur in the Variant. This concept is
+also demonstrated below where the type of pixel data is printed.
+
+The rest of the code uses the API of the \ref mod_dcmiod "dcmiod" and
+\ref mod_dcmfg "dcmfg" module in order to get basic information about Patient,
+Study, Series and Instance, as well as functional group information, especially
+the Real World Value Mapping defined in the file.
+
+\code
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+#include "dcmtk/dcmpmap/dpmparametricmapiod.h"
+
+static void dumpRWVM(const unsigned long frameNumber,
+                     FGInterface& fg)
+{
+  FGRealWorldValueMapping* rw = OFstatic_cast(FGRealWorldValueMapping*, fg.get(frameNumber, DcmFGTypes::EFG_REALWORLDVALUEMAPPING));
+  if (rw)
+  {
+    size_t numMappings = rw->getRealWorldValueMapping().size();
+    COUT << "  Number of Real World Value Mappings defined: " << numMappings << OFendl;
+    for (size_t m = 0; m < numMappings; m++)
+    {
+      FGRealWorldValueMapping::RWVMItem* item = rw->getRealWorldValueMapping()[m];
+      OFString label, expl;
+      item->getLUTLabel(label);
+      item->getLUTExplanation(expl);
+      COUT << "    RWVM Mapping #" << m << ":" << OFendl;
+      COUT << "      LUT Label: << " << label << OFendl;
+      COUT << "      LUT Explanation: " << expl << OFendl;
+      COUT << "      Measurement Units Code: " << item->getMeasurementUnitsCode().toString() << OFendl;
+      size_t numQuant = item->getEntireQuantityDefinitionSequence().size();
+      if (numQuant > 0)
+      {
+        COUT << "    Number of Quantities defined: " << numQuant << OFendl;
+        for (size_t q = 0; q < numQuant; q++)
+        {
+          ContentItemMacro* macro = item->getEntireQuantityDefinitionSequence()[q];
+          COUT << "      Quantity #" << q << ": " << macro->toString() << OFendl;
+        }
+      }
+    }
+  }
+  else
+  {
+    CERR << "  Error: No Real World Value Mappings defined for frame #" << frameNumber << OFendl;
+  }
+}
+
+class DumpFramesVisitor
+{
+public:
+
+  DumpFramesVisitor(DPMParametricMapIOD* map,
+                    const unsigned long numPerFrame)
+  : m_Map(map)
+  , m_numPerFrame(numPerFrame)
+  {
+  }
+
+  template<typename T>
+  OFBool operator()(DPMParametricMapIOD::Frames<T>& frames)
+  {
+    dumpDataType(frames);
+    for (unsigned long f = 0; f < m_Map->getNumberOfFrames(); f++)
+    {
+      COUT << "Dumping info of frame #" << f << ":" << OFendl;
+      FGInterface& fg = m_Map->getFunctionalGroups();
+      dumpRWVM(f, fg);
+      COUT << "Dumping data for frame #" << f << ": " << OFendl;
+      T* frame = frames.getFrame(f);
+      for (unsigned long p = 0; p < m_numPerFrame; p++)
+      {
+        COUT << frame[p] << " ";
+      }
+      COUT << OFendl << OFendl;
+    }
+    return 0;
+  }
+
+  OFBool operator()(OFCondition& cond)
+  {
+    // Avoid compiler warning
+    (void)cond;
+    CERR << "Type of data samples not supported" << OFendl;
+    return OFFalse;
+  }
+
+  OFBool dumpHeader(DPMParametricMapIOD::Frames<Float32>& frames)
+  {
+    // Avoid compiler warning
+    (void)frames;
+    COUT << "File has 32 Bit float data" << OFendl;
+    return OFFalse;
+  }
+
+  OFBool dumpHeader(DPMParametricMapIOD::Frames<Uint16>& frames)
+  {
+    // Avoid compiler warning
+    (void)frames;
+    COUT << "File has 16 Bit unsigned integer data" << OFendl;
+    return OFFalse;
+  }
+
+  OFBool dumpHeader(DPMParametricMapIOD::Frames<Sint16>& frames)
+  {
+    // Avoid compiler warning
+    (void)frames;
+    COUT << "File has 16 Bit signed integer data" << OFendl;
+    return OFFalse;
+  }
+
+  OFBool dumpHeader(DPMParametricMapIOD::Frames<Float64>& frames)
+  {
+    // Avoid compiler warning
+    (void)frames;
+    COUT << "File has 64 Bit float data" << OFendl;
+    return OFTrue;
+  }
+
+  template<typename T>
+  OFBool dumpDataType(DPMParametricMapIOD::Frames<T>& frames)
+  {
+    // Avoid compiler warning
+    (void)frames;
+    CERR << "Type of data samples not supported" << OFendl;
+    return OFFalse;
+  }
+
+  DPMParametricMapIOD* m_Map;
+  unsigned long m_numPerFrame;
+
+};
+
+
+static void dumpGeneral(DPMParametricMapIOD& map)
+{
+  OFString patName, patID, studyUID, studyDate, seriesUID, modality, sopUID;
+  map.getPatient().getPatientName(patName);
+  map.getPatient().getPatientID(patID);
+  map.getStudy().getStudyInstanceUID(studyUID);
+  map.getStudy().getStudyDate(studyDate);
+  map.getSeries().getSeriesInstanceUID(seriesUID);
+  map.getSeries().getModality(modality);
+  map.getSOPCommon().getSOPInstanceUID(sopUID);
+  COUT << "Patient Name       : " << patName << OFendl;
+  COUT << "Patient ID         : " << patID << OFendl;
+  COUT << "Study Instance UID : " << studyUID << OFendl;
+  COUT << "Study Date         : " << studyDate << OFendl;
+  COUT << "Series Instance UID: " << seriesUID << OFendl;
+  COUT << "SOP Instance UID   : " << sopUID << OFendl;
+  COUT << "---------------------------------------------------------------" << OFendl;
+  OFBool isPerFrame;
+  map.getFunctionalGroups().get(0, DcmFGTypes::EFG_REALWORLDVALUEMAPPING, isPerFrame);
+  if (isPerFrame)
+  {
+    COUT << "Real World Value Mapping: Defined per-frame" << OFendl;
+  }
+  else
+  {
+    COUT << "Real World Value Mapping: Defined shared (i.e. single definition for all frames):" << OFendl;
+  }
+  COUT << "---------------------------------------------------------------" << OFendl;
+}
+
+
+int main (int argc, char* argv[])
+{
+  // OFLog::configure(OFLogger::DEBUG_LOG_LEVEL);
+  OFString inputFile;
+  if (argc < 2)
+  {
+    CERR << "Usage: dump_pmp <input-file>" << std::endl;
+    return 1;
+  }
+  else
+  {
+    inputFile = argv[1];
+    if (!OFStandard::fileExists(inputFile))
+    {
+      CERR << "Input file " << inputFile << " does not exist " << OFendl;
+      return 1;
+    }
+  }
+
+  OFvariant<OFCondition,DPMParametricMapIOD*> result = DPMParametricMapIOD::loadFile(inputFile);
+  if (OFget<DPMParametricMapIOD*>(&result))
+  {
+    DPMParametricMapIOD* map = *OFget<DPMParametricMapIOD*>(&result);
+    dumpGeneral(*map);
+    COUT << "Dumping #" << map->getNumberOfFrames() << " frames of file " << inputFile << OFendl;
+    Uint16 rows, cols = 0;
+    map->getRows(rows);
+    map->getColumns(cols);
+    unsigned long numPerFrame = rows * cols;
+    DPMParametricMapIOD::FramesType frames = map->getFrames();
+    OFvisit<OFBool>(DumpFramesVisitor(map, numPerFrame), frames);
+  }
+  else
+  {
+    CERR << "Could not load parametric map: " << (*OFget<OFCondition>(&result)).text() << OFendl;
+    exit(1);
+  }
+  exit(0);
+}
+
+\endcode
+
+
+\subsection example_create Creation of Parametric Maps
+
+The Parametric Map class uses a template in order to instantiate the correct
+pixel data type internally, and to offer a dedicated API for that type. Allowed
+types are Uint16, Sint16, Float32 and Float64. The example below demonstrates
+that the API use is generally the same for all types.
+
+The procedure in the example (and most of it applies for the general case) is as
+follows:
+
+\li The main() routine calls test_pmap() four times, each time using a different
+Image Pixel Module as template parameter which makes sure that the right pixel
+data type is used within the created Parametric Map.
+\li test_pmap() demonstrates the overall steps to create the map:
+\li Create a new Parametric Map by calling DPMParametricMapIOD::create()
+(via create_pmap()), and then
+\li add shared functional groups,
+\li add dimensions,
+\li and add frames with the related per-frame functional groups to the object.
+\li Finally, general data regarding Patient and Study is set.
+\li Note that the order of these steps in test_pmap() does not matter.
+
+
+Per default, DPMParametricMapIOD::create() creates a new DICOM instance, within
+a brand-new DICOM Series that belongs to a brand-new DICOM Study. All minimal
+information for Patient, Study and Series will be set (e.g. Study, Series and
+SOP Instance UID as well as other information that is handed over to the
+create() call, like Series Number). Patient Name and ID are left empty per
+default.
+
+Of course, often you might want to put the new instance into an existing Series
+instead, or place the brand-new Series into an existing Study or at least assign
+it to an existing Patient. The easiest way to to do that is to use the call
+import() that imports Patient or even Study, Series and Frame of Reference
+information from an existing file, i.e. place it under an existing Patient,
+Study and/or Series.
+
+When adding information to the Parametric Map using the public API, some basic
+checks are usually performed on the data. Finally, when calling saveFile(), some
+further checks take place, e.g. validating the structure of the functional
+groups or making sure that all required element values are set.
+
+\code
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+#include "dcmtk/ofstd/oftest.h"
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmpmap/dpmparametricmapiod.h"
+#include "dcmtk/dcmfg/fgpixmsr.h"
+#include "dcmtk/dcmfg/fgplanpo.h"
+#include "dcmtk/dcmfg/fgplanor.h"
+#include "dcmtk/dcmfg/fgfracon.h"
+#include "dcmtk/dcmfg/fgframeanatomy.h"
+#include "dcmtk/dcmfg/fgidentpixeltransform.h"
+#include "dcmtk/dcmfg/fgframevoilut.h"
+#include "dcmtk/dcmfg/fgrealworldvaluemapping.h"
+#include "dcmtk/dcmfg/fgparametricmapframetype.h"
+
+const size_t NUM_FRAMES = 10;
+const Uint16 ROWS = 10;
+const Uint16 COLS = 10;
+const unsigned long NUM_VALUES_PER_FRAME = ROWS * COLS;
+
+
+// Set Patient and Study example data
+static void setGenericData(DPMParametricMapIOD& map)
+{
+  map.getPatient().setPatientName("Onken^Michael");
+  map.getPatient().setPatientID("007");
+  map.getStudy().setStudyDate("20160721");
+  map.getStudy().setStudyTime("111200");
+  map.getStudy().setStudyID("4711");
+}
+
+
+// Create Parametric Map
+template<typename ImagePixel>
+static OFvariant<OFCondition,DPMParametricMapIOD> create_pmap()
+{
+  return DPMParametricMapIOD::create<ImagePixel>
+  (
+    "MR",                 // Modality
+    "1",                  // Series Number
+    "1",                  // Instance Number
+    ROWS,
+    COLS,
+    IODEnhGeneralEquipmentModule::EquipmentInfo("Open Connections GmbH", "make_pmp", "SN_0815", "0.1"),
+    ContentIdentificationMacro("1", "PARAMAP_LABEL", "Example description from test program", "Onken^Michael"),
+    "VOLUME",             // Image Flavor
+    "MTT",                // Derived Pixel Contrast
+    DPMTypes::CQ_RESEARCH // Content Qualification
+  );
+}
+
+
+// Add those functional groups that are common for all frames
+static OFCondition addSharedFunctionalGroups(DPMParametricMapIOD& map)
+{
+  FGPixelMeasures pixelMeasures;
+  pixelMeasures.setPixelSpacing("1\\1");
+  pixelMeasures.setSliceThickness("0.1");
+  pixelMeasures.setSpacingBetweenSlices("0.1");
+  FGPlaneOrientationPatient planeOrientPatientFG;
+  planeOrientPatientFG.setImageOrientationPatient("1", "0", "0", "0", "1", "0");
+  FGFrameAnatomy frameAnaFG;
+  frameAnaFG.setLaterality(FGFrameAnatomy::LATERALITY_UNPAIRED);
+  frameAnaFG.getAnatomy().getAnatomicRegion().set("T-A0100", "SRT", "Brain");
+  FGIdentityPixelValueTransformation idTransFG;
+  FGParametricMapFrameType frameTypeFG;
+  frameTypeFG.setFrameType("DERIVED\\PRIMARY\\VOLUME\\MTT");
+
+  // Add groups to Parametric Map
+  OFCondition result;
+  if ((result = map.addForAllFrames(pixelMeasures)).good())
+  if ((result = map.addForAllFrames(planeOrientPatientFG)).good())
+  if ((result = map.addForAllFrames(frameAnaFG)).good())
+  if ((result = map.addForAllFrames(idTransFG)).good())
+    result = map.addForAllFrames(frameTypeFG);
+
+  return result;
+}
+
+
+// Add a single dimension for demonstration purposes based on "Image Position Patient"
+static OFCondition addDimensions(DPMParametricMapIOD& map)
+{
+  IODMultiframeDimensionModule& mod = map.getIODMultiframeDimensionModule();
+  OFString dimUID = DcmIODUtil::createUID(0);
+  OFCondition result = mod.addDimensionIndex(DCM_ImagePositionPatient, dimUID, DCM_RealWorldValueMappingSequence, "Frame position");
+  return result;
+}
+
+
+// Add one frame to parametric map. Frame number is used to compute some
+// varying example data values differing from frame to frame
+template <typename PixelType>
+static OFCondition addFrame(DPMParametricMapIOD& map,
+                            const unsigned long frameNo)
+{
+  // Create example data
+
+  OFVector<PixelType> data(NUM_VALUES_PER_FRAME);
+  for (size_t n=0; n < data.size(); ++n)
+  {
+    data[n] = (n*frameNo+n) + (0.1 * (frameNo % 10));
+  }
+
+  Uint16 rows, cols;
+  OFCondition cond = map.getImagePixel().getRows(rows);
+  cond = map.getImagePixel().getColumns(cols);
+
+  // Create functional groups
+  OFVector<FGBase*> groups;
+  OFunique_ptr<FGPlanePosPatient> fgPlanePos(new FGPlanePosPatient);
+  OFunique_ptr<FGFrameContent > fgFracon(new FGFrameContent);
+  OFunique_ptr<FGRealWorldValueMapping> fgRVWM(new FGRealWorldValueMapping());
+  FGRealWorldValueMapping::RWVMItem* rvwmItemSimple = new FGRealWorldValueMapping::RWVMItem();
+  if (!fgPlanePos  || !fgFracon || !fgRVWM || !rvwmItemSimple )
+    return EC_MemoryExhausted;
+
+  // Fill in functional group values
+
+  // Real World Value Mapping
+  rvwmItemSimple->setRealWorldValueSlope(10);
+  rvwmItemSimple->setRealWorldValueIntercept(0);
+  rvwmItemSimple->setDoubleFloatRealWorldValueFirstValueMapped(0.12345);
+  rvwmItemSimple->setDoubleFloatRealWorldValueLastValueMapped(98.7654);
+  rvwmItemSimple->getMeasurementUnitsCode().set("{counts}/s", "UCUM", "Counts per second");
+  rvwmItemSimple->setLUTExplanation("We are mapping trash to junk.");
+  rvwmItemSimple->setLUTLabel("Just testing");
+  CodeSequenceMacro* qCodeName = new CodeSequenceMacro("G-C1C6", "SRT", "Quantity");
+  CodeSequenceMacro* qSpec = new CodeSequenceMacro("110805", "SRT", "T2 Weighted MR Signal Intensity");
+  ContentItemMacro* quantity = new ContentItemMacro;
+  if (!quantity || !qSpec || !quantity)
+    return EC_MemoryExhausted;
+  quantity->getEntireConceptNameCodeSequence().push_back(qCodeName);
+  quantity->getEntireConceptCodeSequence().push_back(qSpec);
+  rvwmItemSimple->getEntireQuantityDefinitionSequence().push_back(quantity);
+  quantity->setValueType(ContentItemMacro::VT_CODE);
+  fgRVWM->getRealWorldValueMapping().push_back(rvwmItemSimple);
+
+  // Plane Position
+  OFStringStream ss;
+  ss << frameNo;
+  OFSTRINGSTREAM_GETOFSTRING(ss, framestr) // convert number to string
+  fgPlanePos->setImagePositionPatient("0", "0", framestr);
+
+  // Frame Content
+  OFCondition result = fgFracon->setDimensionIndexValues(frameNo+1 /* value within dimension */, 0 /* first dimension */);
+
+  // Add frame wit related groups
+  if (result.good())
+  {
+    // Add frame
+    groups.push_back(fgPlanePos.get());
+    groups.push_back(fgFracon.get());
+    groups.push_back(fgRVWM.get());
+    groups.push_back(fgPlanePos.get());
+    DPMParametricMapIOD::FramesType frames = map.getFrames();
+    result = OFget<DPMParametricMapIOD::Frames<PixelType> >(&frames)->addFrame(&*data.begin(), NUM_VALUES_PER_FRAME, groups);
+  }
+
+  return result;
+}
+
+
+// Main routine that creates Parametric Maps
+template<typename ImagePixel>
+static OFCondition test_pmap(const OFString& saveDestination)
+{
+  OFvariant<OFCondition,DPMParametricMapIOD> obj = create_pmap<ImagePixel>();
+  if (OFCondition* pCondition = OFget<OFCondition>(&obj))
+    return *pCondition;
+
+  DPMParametricMapIOD& map = *OFget<DPMParametricMapIOD>(&obj);
+
+  OFCondition result;
+  if ((result = addSharedFunctionalGroups(map)).good())
+  if ((result = addDimensions(map)).good())
+  {
+    // Add frames (parametric map data), and per-frame functional groups
+    for (unsigned long f = 0; result.good() && (f < NUM_FRAMES); f++)
+      result = addFrame<OFTypename ImagePixel::value_type>(map, f);
+  }
+
+  // Set some generic data (keep dciodvfy happy on DICOMDIR warnings)
+  if (result.good())
+  {
+    setGenericData(map);
+  }
+
+  // Save
+  if (result.good())
+  {
+    return map.saveFile(saveDestination.c_str());
+  }
+  else
+  {
+    return result;
+  }
+}
+
+
+int main (int argc, char* argv[])
+{
+  OFString outputDir;
+  if (argc < 2)
+  {
+    CERR << "Usage: make_pmp <output-dir>" << std::endl;
+    return 1;
+  }
+  else
+  {
+    outputDir = argv[1];
+    if (!OFStandard::dirExists(outputDir))
+    {
+      CERR << "Output directory " << outputDir << " does not exist " << OFendl;
+      return 1;
+    }
+  }
+
+  //OFLog::configure(OFLogger::DEBUG_LOG_LEVEL);
+
+  // Test all possible parametric map types (signed and unsigned integer, floating point
+  // and double floating point)
+
+  test_pmap<IODImagePixelModule<Uint16> >(outputDir + "/uint_paramap.dcm");
+  test_pmap<IODImagePixelModule<Sint16> >(outputDir + "/sint_paramap.dcm");
+  test_pmap<IODFloatingPointImagePixelModule>(outputDir + "/float_paramap.dcm");
+  test_pmap<IODDoubleFloatingPointImagePixelModule>(outputDir + "/double_paramap.dcm");
+
+  return 0;
+}
+
+\endcode
+
+*/
diff --git a/dcmpmap/etc/Makefile.in b/dcmpmap/etc/Makefile.in
new file mode 100644
index 0000000..31690d7
--- /dev/null
+++ b/dcmpmap/etc/Makefile.in
@@ -0,0 +1,23 @@
+#
+#	Makefile for dcmpmap/etc
+#
+
+ at SET_MAKE@
+
+SHELL = /bin/sh
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+
+all:
+
+install:
+
+clean:
+	rm -f $(TRASH)
+
+distclean:
+	rm -f $(DISTTRASH)
diff --git a/dcmpmap/include/CMakeLists.txt b/dcmpmap/include/CMakeLists.txt
new file mode 100644
index 0000000..fc29ca7
--- /dev/null
+++ b/dcmpmap/include/CMakeLists.txt
@@ -0,0 +1,2 @@
+# declare installation files
+INSTALL(DIRECTORY dcmtk/dcmpmap DESTINATION ${DCMTK_INSTALL_INCDIR}/dcmtk COMPONENT include FILES_MATCHING PATTERN "*.h" PATTERN "CVS" EXCLUDE)
diff --git a/dcmpmap/include/Makefile.in b/dcmpmap/include/Makefile.in
new file mode 100644
index 0000000..37af703
--- /dev/null
+++ b/dcmpmap/include/Makefile.in
@@ -0,0 +1,27 @@
+#
+#	Makefile for dcmpmap/include
+#
+
+ at SET_MAKE@
+
+SHELL = /bin/sh
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+
+all:
+
+install:
+	$(configdir)/mkinstalldirs $(DESTDIR)$(includedir)/dcmtk/dcmpmap
+	for file in dcmtk/dcmpmap/*.h ; do \
+		$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/dcmtk/dcmpmap ;\
+	done
+
+clean:
+	rm -f $(TRASH)
+
+distclean:
+	rm -f $(DISTTRASH)
diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmdef.h b/dcmpmap/include/dcmtk/dcmpmap/dpmdef.h
new file mode 100644
index 0000000..82f89c0
--- /dev/null
+++ b/dcmpmap/include/dcmtk/dcmpmap/dpmdef.h
@@ -0,0 +1,37 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmpmap
+ *
+ *  Author:  Michael Onken
+ *
+ *  Purpose: Contains preprocessor definitions
+ *
+ */
+
+
+#ifndef DPMDEF_H
+#define DPMDEF_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/ofstd/ofdefine.h"
+
+// definitions for DLL/shared library exports
+
+#ifdef dcmpmap_EXPORTS
+#define DCMTK_DCMPMAP_EXPORT DCMTK_DECL_EXPORT
+#else
+#define DCMTK_DCMPMAP_EXPORT DCMTK_DECL_IMPORT
+#endif
+
+#endif // DPMDEF_H
diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h
new file mode 100644
index 0000000..0da18de
--- /dev/null
+++ b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h
@@ -0,0 +1,304 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Parametric Map Image Module
+ *
+ */
+
+#ifndef DPMMODPARAMETRICMAPIMAGE_H
+#define DPMMODPARAMETRICMAPIMAGE_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/ofstd/ofmem.h"
+#include "dcmtk/dcmiod/iodrules.h"
+#include "dcmtk/dcmiod/modbase.h"
+#include "dcmtk/dcmpmap/dpmdef.h"
+
+/** Class representing the Parametric Map Image Module:
+ *
+ *  ImageType: (CS, 2-n, 1)
+ *  SamplesPerPixel: (US, 1, 1)
+ *  PhotometricInterpretation: (CS, 1, 1)
+ *  BitsAllocated: (US, 1, 1)
+ *  BitsStored: (US, 1, 1C)
+ *  HighBit: (US, 1, 1C)
+ *  PresentationLUTShape: (CS, 1, 1)
+ *  LossyImageCompression: (CS, 1, 1)
+ *  LossyImageCompressionRatio: (DS, 1-n, 1C)
+ *  LossyImageCompressionMethod: (CS, 1-n, 1C)
+ *  BurnedInAnnotation: (CS, 1, 1)
+ *  RecognizableVisualFeatures: (CS, 1, 1)
+ *  ContentQualification: (CS, 1, 1)
+ */
+class DCMTK_DCMPMAP_EXPORT DPMParametricMapImageModule : public IODModule
+{
+public:
+  /** Constructor
+   *  @param  item The item to be used for data storage. If NULL, the
+   *          class creates an empty data container.
+   *  @param  rules The rule set for this class. If NULL, the class creates
+   *          one from scratch and adds its values.
+   */
+  DPMParametricMapImageModule(OFshared_ptr<DcmItem> item,
+                              OFshared_ptr<IODRules> rules);
+
+  /** Constructor
+   */
+  DPMParametricMapImageModule();
+
+  /** Destructor
+   */
+  virtual ~DPMParametricMapImageModule();
+
+  /** Resets rules to their original values
+   */
+  virtual void resetRules();
+
+  /** Get name of module ("DPMParametricMapImageModule")
+   *  @return Name of the module ("DPMParametricMapImageModule")
+   */
+  virtual OFString getName() const;
+
+  /** Read attributes from given item into this class
+   *  @param source  The source to read from
+   *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+   *         old data is overwritten (or amended)
+   *  @result EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& source,
+                           const OFBool clearOldData = OFTrue);
+
+  /** Write attributes from this class into given item
+   *  @param  destination The item to write to
+   *  @result EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& destination);
+
+  /** Get Image Type
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getImageType(OFString &value,
+                                   const signed long pos = 0) const;
+
+  /** Get Samples Per Pixel
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getSamplesPerPixel(Uint16 &value,
+                                         const signed long pos = 0) const;
+
+  /** Get Photometric Interpretation
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getPhotometricInterpretation(OFString &value,
+                                                   const signed long pos = 0) const;
+
+  /** Get Bits Allocated
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getBitsAllocated(Uint16 &value,
+                                       const signed long pos = 0) const;
+
+  /** Get Bits Stored
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getBitsStored(Uint16 &value,
+                                    const signed long pos = 0) const;
+
+  /** Get High Bit
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getHighBit(Uint16 &value,
+                                 const signed long pos = 0) const;
+
+  /** Get Presentation LUT Shape
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getPresentationLUTShape(OFString &value,
+                                              const signed long pos = 0) const;
+
+  /** Get Lossy Image Compression
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getLossyImageCompression(OFString &value,
+                                               const signed long pos = 0) const;
+
+  /** Get Lossy Image Compression Ratio
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getLossyImageCompressionRatio(OFString &value,
+                                                    const signed long pos = 0) const;
+
+  /** Get Lossy Image Compression Method
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getLossyImageCompressionMethod(OFString &value,
+                                                     const signed long pos = 0) const;
+
+  /** Get Burned In Annotation
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getBurnedInAnnotation(OFString &value,
+                                            const signed long pos = 0) const;
+
+  /** Get Recognizable Visual Features
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getRecognizableVisualFeatures(OFString &value,
+                                                    const signed long pos = 0) const;
+
+  /** Get Content Qualification
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getContentQualification(OFString &value,
+                                              const signed long pos = 0) const;
+
+  /** Set Image Type
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (2-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setImageType(const OFString &value,
+                                   const OFBool checkValue = OFTrue);
+
+  /** Set Samples Per Pixel
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setSamplesPerPixel(const Uint16 &value,
+                                         const OFBool checkValue = OFTrue);
+
+  /** Set Photometric Interpretation
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setPhotometricInterpretation(const OFString &value,
+                                                   const OFBool checkValue = OFTrue);
+
+  /** Set Bits Allocated
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setBitsAllocated(const Uint16 &value,
+                                       const OFBool checkValue = OFTrue);
+
+  /** Set Bits Stored
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setBitsStored(const Uint16 &value,
+                                    const OFBool checkValue = OFTrue);
+
+  /** Set High Bit
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (US) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setHighBit(const Uint16 &value,
+                                 const OFBool checkValue = OFTrue);
+
+  /** Set Presentation LUT Shape
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setPresentationLUTShape(const OFString &value,
+                                              const OFBool checkValue = OFTrue);
+
+  /** Set Lossy Image Compression
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setLossyImageCompression(const OFString &value,
+                                               const OFBool checkValue = OFTrue);
+
+  /** Set Lossy Image Compression Ratio
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (DS) and VM (1-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setLossyImageCompressionRatio(const OFString &value,
+                                                    const OFBool checkValue = OFTrue);
+
+  /** Set Lossy Image Compression Method
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1-n) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setLossyImageCompressionMethod(const OFString &value,
+                                                     const OFBool checkValue = OFTrue);
+
+  /** Set Burned In Annotation
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setBurnedInAnnotation(const OFString &value,
+                                            const OFBool checkValue = OFTrue);
+
+  /** Set Recognizable Visual Features
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setRecognizableVisualFeatures(const OFString &value,
+                                                    const OFBool checkValue = OFTrue);
+
+  /** Set ContentQualification
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setContentQualification(const OFString &value,
+                                              const OFBool checkValue = OFTrue);
+
+private:
+  /// The name of this module ("DPMParametricMapImageModule")
+  static const OFString m_ModuleName;
+};
+
+#endif // DPMMODPARAMETRICMAPIMAGE_H
diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h
new file mode 100644
index 0000000..1c8b1b6
--- /dev/null
+++ b/dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h
@@ -0,0 +1,133 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Parametric Map Series Module
+ *
+ */
+
+#ifndef DPMMODPARAMETRICMAPSERIES_H
+#define DPMMODPARAMETRICMAPSERIES_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/ofstd/ofmem.h"
+#include "dcmtk/dcmiod/iodrules.h"
+#include "dcmtk/dcmiod/modbase.h"
+#include "dcmtk/dcmpmap/dpmdef.h"
+#include "dcmtk/dcmiod/iodmacro.h"
+
+/** Class representing the Parametric Map Series Module:
+ *
+ *  Modality: (CS, 1, 1)
+ *  SeriesNumber: (IS, 1, 1)
+ *  ReferencedPerformedProcedureStepSequence: (SQ, 1, 1C)
+ */
+class DCMTK_DCMPMAP_EXPORT DPMParametricMapSeriesModule : public IODModule
+{
+public:
+  /** Constructor
+   *  @param  item The item to be used for data storage. If NULL, the
+   *          class creates an empty data container.
+   *  @param  rules The rule set for this class. If NULL, the class creates
+   *          one from scratch and adds its values.
+   */
+  DPMParametricMapSeriesModule(OFshared_ptr<DcmItem> item,
+                               OFshared_ptr<IODRules> rules);
+
+  /** Constructor
+   */
+  DPMParametricMapSeriesModule();
+
+  /** Destructor
+   */
+  virtual ~DPMParametricMapSeriesModule();
+
+  /** Resets rules to their original values
+   */
+  virtual void resetRules();
+
+  /** Get name of module ("DPMParametricMapSeriesModule")
+   *  @return Name of the module ("DPMParametricMapSeriesModule")
+   */
+  virtual OFString getName() const;
+
+  /** Read attributes from given item into this class
+   *  @param source  The source to read from
+   *  @param clearOldData If OFTrue, old data is cleared before reading. Otherwise
+   *         old data is overwritten (or amended)
+   *  @result EC_Normal if reading was successful, error otherwise
+   */
+  virtual OFCondition read(DcmItem& source,
+                           const OFBool clearOldData = OFTrue);
+
+  /** Write attributes from this class into given item
+   *  @param  destination The item to write to
+   *  @result EC_Normal if writing was successful, error otherwise
+   */
+  virtual OFCondition write(DcmItem& destination);
+
+  /** Get Modality
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getModality(OFString &value,
+                                  const signed long pos = 0) const;
+
+  /** Get Series Number
+   *  @param  value Reference to variable in which the value should be stored
+   *  @param  pos Index of the value to get (0..vm-1), -1 for all components
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition getSeriesNumber(OFString &value,
+                                      const signed long pos = 0) const;
+
+  /** Get reference to the Referenced Performed Procedure Step Sequence
+   *  @return a reference to the Referenced Performed Procedure Step Sequence
+   */
+  virtual SOPInstanceReferenceMacro* getReferencedPerformedProcedureStepSequence();
+
+  /** Get a reference to the entire Referenced Performed Procedure Step Sequence, including items
+   *  exceeding the value multiplicity restriction of "1"
+   *  @return a reference to the entire Referenced Performed Procedure Step Sequence
+   */
+  virtual OFVector<SOPInstanceReferenceMacro>& getEntireReferencedPerformedProcedureStepSequence();
+
+  /** Set Modality
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (CS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setModality(const OFString &value,
+                                  const OFBool checkValue = OFTrue);
+
+  /** Set Series Number
+   *  @param  value Value to be set (single value only) or "" for no value
+   *  @param  checkValue Check 'value' for conformance with VR (IS) and VM (1) if enabled
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition setSeriesNumber(const OFString &value,
+                                      const OFBool checkValue = OFTrue);
+
+private:
+  /// The name of this module ("DPMParametricMapSeriesModule")
+  static const OFString m_ModuleName;
+
+  /// ReferencedPerformedProcedureStepSequence
+  OFVector<SOPInstanceReferenceMacro> m_ReferencedPerformedProcedureStepSequence;
+};
+
+#endif // DPMMODPARAMETRICMAPSERIES_H
diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h
new file mode 100644
index 0000000..923d2d8
--- /dev/null
+++ b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h
@@ -0,0 +1,249 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Generated base class representing the Parametric Map IOD
+ *
+ */
+
+#ifndef DPMPARAMETRICMAPBASE_H
+#define DPMPARAMETRICMAPBASE_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmfg/fginterface.h"
+#include "dcmtk/dcmfg/fgderimg.h"
+#include "dcmtk/dcmfg/fgfracon.h"
+#include "dcmtk/dcmfg/fgframeanatomy.h"
+#include "dcmtk/dcmfg/fgframevoilut.h"
+#include "dcmtk/dcmfg/fgidentpixeltransform.h"
+#include "dcmtk/dcmfg/fgparametricmapframetype.h"
+#include "dcmtk/dcmfg/fgpixmsr.h"
+#include "dcmtk/dcmfg/fgplanor.h"
+#include "dcmtk/dcmfg/fgplanpo.h"
+#include "dcmtk/dcmfg/fgrealworldvaluemapping.h"
+#include "dcmtk/dcmiod/iodimage.h"
+#include "dcmtk/dcmiod/modacquisitioncontext.h"
+#include "dcmtk/dcmiod/modcommoninstanceref.h"
+#include "dcmtk/dcmiod/modenhequipment.h"
+#include "dcmtk/dcmiod/modequipment.h"
+#include "dcmtk/dcmiod/modgeneralimage.h"
+#include "dcmtk/dcmiod/modgeneralseries.h"
+#include "dcmtk/dcmiod/modgeneralstudy.h"
+#include "dcmtk/dcmiod/modmultiframedimension.h"
+#include "dcmtk/dcmiod/modmultiframefg.h"
+#include "dcmtk/dcmiod/modpatient.h"
+#include "dcmtk/dcmiod/modpatientstudy.h"
+#include "dcmtk/dcmiod/modsopcommon.h"
+#include "dcmtk/dcmiod/modimagepixel.h"
+#include "dcmtk/dcmiod/modfloatingpointimagepixel.h"
+#include "dcmtk/dcmpmap/dpmmodparametricmapimage.h"
+#include "dcmtk/dcmpmap/dpmmodparametricmapseries.h"
+#include "dcmtk/dcmpmap/dpmdef.h"
+
+/** Class for managing the Parametric Map IOD attributes. Template parameter defines the type of pixel data
+ *  to use: Unsigned or signed 16 bit integer, or 32 bit floating point, or 64 bit floating point data.
+ */
+class DCMTK_DCMPMAP_EXPORT DPMParametricMapBase
+: public DcmIODImage
+<
+    IODImagePixelModule<Uint16>,
+    IODImagePixelModule<Sint16>,
+    IODFloatingPointImagePixelModule,
+    IODDoubleFloatingPointImagePixelModule
+>
+{
+
+public:
+
+  /** Virtual Destructor
+   */
+  virtual ~DPMParametricMapBase();
+
+  // -------------------- loading and saving ---------------------
+
+  /** Save current object to given filename
+   *  @param  filename The file to write to
+   *  @param  writeXfer The transfer syntax to be used
+   *  @return EC_Normal if writing was successful, error otherwise.
+   */
+  virtual OFCondition saveFile(const OFString& filename,
+                               const E_TransferSyntax writeXfer = EXS_LittleEndianExplicit);
+
+  /** Write current object to given item
+   *  @param  dataset The item to write to
+   *  @return EC_Normal if writing was successful, error otherwise.
+   */
+  OFCondition writeDataset(DcmItem& dataset);
+
+  /** Perform some basic checking. This method is also invoked when
+   *  writing the object to a DICOM dataset or file.
+   *  @return OFTrue, if no errors were found, OFFalse otherwise.
+   */
+  virtual OFBool check();
+
+  /** Get access to functional groups. This is meant for reading data from
+   *  functional groups that are not actively managed, i.e.\ made accessible by
+   *  DcmSegmentation. In rare cases, however, it makes sense to access it
+   *  for writing too, e.g.\ in order to add Stacks; use with care!
+   *  @return Reference to the functional groups
+   */
+  virtual FGInterface& getFunctionalGroups();
+
+  /** Get Patient Module
+   *  @return a reference to the IOD Patient Module
+   */
+  virtual IODPatientModule& getIODPatientModule();
+
+  /** Get General Study Module
+   *  @return a reference to the IOD General Study Module
+   */
+  virtual IODGeneralStudyModule& getIODGeneralStudyModule();
+
+  /** Get Patient Study Module
+   *  @return a reference to the IOD Patient Study Module
+   */
+  virtual IODPatientStudyModule& getIODPatientStudyModule();
+
+  /** Get General Series Module
+   *  @return a reference to the IOD General Series Module
+   */
+  virtual IODGeneralSeriesModule& getIODGeneralSeriesModule();
+
+  /** Get Parametric Map Series Module
+   *  @return a reference to the Parametric Map Series Module
+   */
+  virtual DPMParametricMapSeriesModule& getDPMParametricMapSeriesModule();
+
+  /** Get General Equipment Module
+   *  @return a reference to the General Equipment Module
+   */
+  virtual IODGeneralEquipmentModule& getIODGeneralEquipmentModule();
+
+  /** Get Enhanced General Equipment Module
+   *  @return a reference to the Enhanced General Equipment Module
+   */
+  virtual IODEnhGeneralEquipmentModule& getIODEnhGeneralEquipmentModule();
+
+  /** Get General Image Module
+   *  @return a reference to the General Image Module
+   */
+  virtual IODGeneralImageModule& getIODGeneralImageModule();
+
+  /** Get Parametric Map Image Module
+   *  @return a reference to the Parametric Map Image Module
+   */
+  virtual DPMParametricMapImageModule& getDPMParametricMapImageModule();
+
+  /** Get Multi-frame Functional Groups Module
+   *  @return a reference to the Multi-frame Functional Groups Module
+   */
+  virtual IODMultiFrameFGModule& getIODMultiFrameFGModule();
+
+  /** Get Multi-frame Dimension Module
+   *  @return a reference to the Multi-frame Dimension Module
+   */
+  virtual IODMultiframeDimensionModule& getIODMultiframeDimensionModule();
+
+  /** Get Acquisition Context Module
+   *  @return a reference to the Acquisition Context Module
+   */
+  virtual IODAcquisitionContextModule& getIODAcquisitionContextModule();
+
+  /** Get Common Instance Reference Module
+   *  @return a reference to the Common Instance Reference Module
+   */
+  virtual IODCommonInstanceReferenceModule& getIODCommonInstanceReferenceModule();
+
+  /** Get SOP Common Module
+   *  @return a reference to the SOP Common Module
+   */
+  virtual IODSOPCommonModule& getIODSOPCommonModule();
+
+protected:
+
+  /** Constructor; not public since object should be create via factory
+   *  method in derived class.
+   */
+  DPMParametricMapBase();
+
+   /** Constructor; not public since object should be create via factory
+    *  method in derived class.
+    */
+  template<typename ImagePixel>
+  DPMParametricMapBase(OFin_place_type_t(ImagePixel));
+
+  /** Read Parametric Map attributes (all those handled by this class)
+   *  from given item. Reads attributes from base class DcmIODCommon before.
+   *  The current content is deleted even if the reading process fails.
+   *  If the log stream is set and valid the reason for any error might be
+   *  obtained from the error/warning output.
+   *  @param  dataset  Reference to DICOM dataset from which the document
+   *          should be read
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition read(DcmItem &dataset);
+
+  /** Write current Parametric Map's attributes to DICOM dataset. Also
+   *  writes attributes of base class DcmIODCommon afterwards.
+   *  @param  dataset Reference to DICOM dataset to which the current document
+   *          should be written.  The dataset is not cleared before writing
+   *          to it!
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition write(DcmItem &dataset);
+
+  /** Clear (removes) all attributes handled by the modules of this IOD.
+   *  IOD Rules are not reset.
+   */
+  virtual void clearData();
+
+  /** Loads file
+   *  @param  dcmff The file format to load into
+   *  @param  filename The filename of the file to load
+   *  @param  dset Pointer to dataset after loading
+   *  @return EC_Normal if loading was successful, error otherwise
+   */
+  static OFCondition loadFile(DcmFileFormat& dcmff,
+                              const OFString& filename,
+                              DcmDataset*& dset);
+
+  /// Multi-frame Functional Groups high level interface
+  FGInterface m_FGInterface;
+
+  /// Parametric Map Series Module
+  DPMParametricMapSeriesModule m_DPMParametricMapSeriesModule;
+
+  /// Enhanced General Equipment Module
+  IODEnhGeneralEquipmentModule m_IODEnhGeneralEquipmentModule;
+
+  /// Parametric Map Image Module
+  DPMParametricMapImageModule m_DPMParametricMapImageModule;
+
+  /// Multi-frame Functional Groups Module
+  IODMultiFrameFGModule m_IODMultiFrameFGModule;
+
+  /// Multi-frame Dimension Module
+  IODMultiframeDimensionModule m_IODMultiframeDimensionModule;
+
+  /// Acquisition Context Module
+  IODAcquisitionContextModule m_IODAcquisitionContextModule;
+
+  /// Common Instance Reference Module
+  IODCommonInstanceReferenceModule m_IODCommonInstanceReferenceModule;
+
+};
+
+#endif // DPMPARAMETRICMAPBASE_H
diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h
new file mode 100644
index 0000000..9d25e1b
--- /dev/null
+++ b/dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h
@@ -0,0 +1,305 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Class representing the Parametric Map IOD
+ *
+ */
+
+#ifndef DPMPARAMETRICMAPIOD_H
+#define DPMPARAMETRICMAPIOD_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmiod/modimagepixelbase.h"
+#include "dcmtk/dcmpmap/dpmparametricmapbase.h"
+#include "dcmtk/dcmpmap/dpmtypes.h"
+
+
+/** Class for managing the Parametric Map IOD attributes.
+ */
+class DCMTK_DCMPMAP_EXPORT DPMParametricMapIOD : public DPMParametricMapBase
+{
+public:
+
+  /** Inner class that offers typed interface to bulk data.
+   */
+  template<typename PixelType>
+  class DCMTK_DCMPMAP_EXPORT Frames
+  {
+    public:
+
+      /// Binary pixel type
+      typedef PixelType pixel_type;
+
+      /** Method that adds a frame to the Parametric Map using the underlying
+       *  binary data type.
+       *  @param  data The frame data
+       *  @param  numPixels The number of pixels (rows * columns) of the frame
+       *  @param  perFrameInformation The per-frame functional groups applying for
+       *  @return EC_Normal if adding was successful, error otherwise
+       */
+      OFCondition addFrame(PixelType* data,
+                           const size_t numPixels,
+                           const OFVector<FGBase*>& perFrameInformation);
+
+      /** Type-specific getFrame() method that returns Float32, Uint16, or whatever
+       *  is used in this Parametric Map.
+       *  @return Pointer to typed pixel data
+       */
+      PixelType* getFrame(const size_t frameNumber);
+
+    private:
+
+      // Make sure the Parametric Map object (and no one else) can use the constructor below.
+      friend class DPMParametricMapIOD;
+
+      /** Create Frames object in DPMParametricMapIOD (see friend declaration above)
+       *  @param  map The map object that will contain the frames
+       */
+      Frames(DPMParametricMapIOD& map);
+
+      /// Reference to Parametric Map object in order to access its pixel data
+      DPMParametricMapIOD& m_Map;
+  };
+
+  /** Frames can contain Uint16, Sint16, Float32 or Float64 data, or nothing
+   *  at all (in that case OFCondition denotes a corresponding error)
+   */
+  typedef OFvariant
+  <
+    OFCondition,
+    Frames<Uint16>,
+    Frames<Sint16>,
+    Frames<Float32>,
+    Frames<Float64>
+  > FramesType;
+
+  /** Virtual Destructor, frees memory.
+   */
+  virtual ~DPMParametricMapIOD();
+
+  /** Create new Parametric Map object. Takes the minimum of required parameters.
+   *  Afterwards, additional setters() can be used to set optional data. Frames
+   *  and their related per-frame functional groups should be added using addFrame().
+   *  Shared functional groups should be added using addForAllFrames().
+   *  @param  modality The modality of this Parametric Map (series level attribute).
+   *          A list of Defined Terms can be found in the standard. Very often
+   *          "MR" is the right choice. Only if a mix of different modalities has been
+   *          use for creation "OT" should be used.
+   *  @param  seriesNumber A number identifying this series. If importPatientStudyFor()
+   *          is called later in order to put this Parametric Map into an existing Series,
+   *          the Series  Number will be taken over from the existing series instead.
+   *  @param  instanceNumber A number identifying this image
+   *  @param  rows The number of rows of all frames of the Parametric Map
+   *  @param  columns The number of columns of all frames of the Parametric Map
+   *  @param  equipmentInfo Information about the equipment creating thing Parametric Map
+   *  @param  contentIdentification General information about this content
+   *  @param  imageFlavor 3rd value of attribute Image Type. See standard for list of
+   *          applicable Defined Terms.
+   *  @param  derivedPixelContrast 4th value of attribute Image Type. See standard for list of
+   *          applicable Defined Terms.
+   *  @param  contentQualification Either one of CQ_PRODUCT, CQ_RESEARCH, CQ_SERVICE
+   *  @return Variant, either OFCondition with error code in case of error, Parametric
+   *          Map object in case of success
+   */
+  template<typename ImagePixel>
+  static OFvariant<OFCondition,DPMParametricMapIOD> create(const OFString& modality,
+                                                           const OFString& seriesNumber,
+                                                           const OFString& instanceNumber,
+                                                           const Uint16 rows,
+                                                           const Uint16 columns,
+                                                           const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo,
+                                                           const ContentIdentificationMacro& contentIdentification,
+                                                           const OFString& imageFlavor,
+                                                           const OFString& derivedPixelContrast,
+                                                           const DPMTypes::ContentQualification& contentQualification);
+
+  /** Indicates whether or not the image contains sufficiently recognizable visual
+   *  features to allow the image or a reconstruction from a set of images to
+   *  identify the patient.
+   *  @param  yesOrNo  Must be related "YES" or "NO" types
+   *  @return EC_Normal if setting was successful, error otherwise
+   */
+
+  virtual OFCondition setRecognizableVisualFeatures(const DPMTypes::RecognizableVisibleFeatures yesOrNo);
+
+  /** Add a functional group for all frames
+   *  @param  group The group to be added as shared functional group
+   *  @return EC_Normal if adding was successful, error otherwise
+   */
+  virtual OFCondition addForAllFrames(const FGBase& group);
+
+  // -------------------- loading and saving ---------------------
+
+  /** Load Parametric Map object from file
+   *  @param  filename The file to read from
+   *  @return Variant, either the resulting Parametric Map object in case of success,
+   *          an OFCondition error code otherwise
+   */
+  static OFvariant<OFCondition,DPMParametricMapIOD*> loadFile(const OFString& filename);
+
+  /** Load Parametric Map object from dataset object.
+   *  @param  dataset The dataset to read from
+   *  @return Variant, either the resulting Parametric Map object in case of success,
+   *          an OFCondition error code otherwise
+   */
+  static OFvariant<OFCondition,DPMParametricMapIOD*> loadDataset(DcmDataset& dataset);
+
+  /** Read Parametric Map attributes (all those handled by this class)
+   *  from given item. Reads attributes from base class DcmIODCommon before.
+   *  The current content is deleted even if the reading process fails.
+   *  If the log stream is set and valid the reason for any error might be
+   *  obtained from the error/warning output.
+   *  @param  dataset  Reference to DICOM dataset from which the document
+   *          should be read
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition read(DcmItem &dataset);
+
+  /** Write current Parametric Map's attributes to DICOM dataset.
+   *  @param  dataset Reference to DICOM dataset to which the current document
+   *          should be written. The dataset is not cleared before writing
+   *          to it!
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition write(DcmItem &dataset);
+
+  // -------------------- access ---------------------
+
+  /** Get Recognizable Visual Features
+   *  @return Returns related YES or NO data type
+   */
+  virtual DPMTypes::RecognizableVisibleFeatures getRecognizableVisualFeatures();
+
+  /** Get Content Qualification
+   *  @return Returns either one of CQ_PRODUCT, CQ_RESEARCH, CQ_SERVICE or CQ_UNKNOWN
+   */
+  virtual DPMTypes::ContentQualification getContentQualification();
+
+  /** Get number of rows
+   *  @param  rows The number of rows (output)
+   *  @return EC_Normal if getting was successful, error otherwise
+   */
+  virtual OFCondition getRows(Uint16& rows);
+
+  /** Get number of cols
+   *  @param  cols The number of columns (output)
+   *  @return EC_Normal if getting was successful, error otherwise
+   */
+  virtual OFCondition getColumns(Uint16& cols);
+
+  /** Perform some basic checking. This method is also invoked when
+   *  writing the object to a DICOM dataset or file.
+   *  @return OFTrue, if no errors were found, OFFalse otherwise.
+   */
+  virtual OFBool check();
+
+  /** Get number of frames, based on the number of items in the shared
+   *  functional functional groups sequence (i.e.\ the attribute Number of
+   *  Frames) is not trusted after reading
+   *  @return The number of frames handled by this object
+   */
+  size_t getNumberOfFrames() const;
+
+  /** Get access to frame data
+   *  @return Class managing the frame data
+   */
+  FramesType getFrames();
+
+protected:
+
+  /** Write current generic Parametric Map's attributes to DICOM dataset, i.e.
+   *  those that are not directly pixel-related
+   *  @param  dataset Reference to DICOM dataset to which the current document
+   *          should be written. The dataset is not cleared before writing
+   *          to it.
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition writeGeneric(DcmItem &dataset);
+
+  /** Read Parametric Map's generic (not directly pixel-data related) attributes from
+   *  DICOM dataset.
+   *  @param  dataset Reference to DICOM dataset to read from.
+   *  @return EC_Normal if successful, an error code otherwise
+   */
+  virtual OFCondition readGeneric(DcmItem &dataset);
+
+  /** Decompress the given dataset if required. Only RLE compression is accepted
+   *  and decompressed by this tool. A warning is printed if the dataset has been compressed
+   *  before with another compression scheme and is handed into this method in uncompressed
+   *  format. Handing in any other compression but RLE will lead to an error.
+   *  @param  dset The dataset to be decompressed
+   *  @return EC_Normal if decompression worked (or dataset is already in uncompressed format)
+   *          IOD_EC_CannotDecompress otherwise
+   */
+  static OFCondition decompress(DcmDataset& dset);
+
+  /** Constructor
+   */
+  DPMParametricMapIOD();
+
+  /** Constructor, anonymous parameter is the image pixel module to be used
+   */
+  template<typename ImagePixel>
+  DPMParametricMapIOD(OFin_place_type_t(ImagePixel));
+
+private:
+
+  // Forward declarations
+  template<typename PixelType> class GetPixelDataVisitor;
+  struct SetImagePixelModuleVisitor;
+  struct WriteVisitor;
+  struct GetFramesVisitor;
+  struct ReadVisitor;
+  struct ReadFramesVisitor;
+
+  /** Initialize new Parametric Map object except directly pixel-related data
+   *  @param  modality The modality of this Parametric Map (series level attribute).
+   *          A list of Defined Terms can be found in the standard. Very often
+   *          "MR" is the right choice. Only if a mix of different modalities has been
+   *          use for creation "OT" should be used.
+   *  @param  seriesNumber A number identifying this series. If importPatientStudyFor()
+   *          is called later in order to put this Parametric Map into an existing Series,
+   *          the Series  Number will be taken over from the existing series instead.
+   *  @param  instanceNumber A number identifying this image
+   *  @param  equipmentInfo Information about the equipment creating thing Parametric Map
+   *  @param  contentIdentification General information about this content
+   *  @param  imageFlavor 3rd value of attribute Image Type. See standard for list of
+   *          applicable Defined Terms.
+   *  @param  derivedPixelContrast 4th value of attribute Image Type. See standard for list of
+   *          applicable Defined Terms.
+   *  @param  contentQualification Either one of CQ_PRODUCT, CQ_RESEARCH, CQ_SERVICE
+   *  @return EC_Normal in case of success, error otherwise
+   */
+  OFCondition init(const OFString& modality,
+                   const OFString& seriesNumber,
+                   const OFString& instanceNumber,
+                   const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo,
+                   const ContentIdentificationMacro& contentIdentification,
+                   const OFString& imageFlavor,
+                   const OFString& derivedPixelContrast,
+                   const DPMTypes::ContentQualification& contentQualification);
+
+
+  /// Parametric Map Image Module's Content Identification
+  ContentIdentificationMacro m_ContentIdentification;
+
+  /// Binary frame data
+  OFVector<DcmIODTypes::Frame*> m_Frames;
+
+};
+
+#endif // DPMPARAMETRICMAPIOD_H
diff --git a/dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h b/dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h
new file mode 100644
index 0000000..9bc952d
--- /dev/null
+++ b/dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h
@@ -0,0 +1,137 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmpmap
+ *
+ *  Author:  Michael Onken
+ *
+ *  Purpose: Class managing various parametric myps-typical types
+ *
+ */
+
+#ifndef DPMTYPES_H
+#define DPMTYPES_H
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/oflog/oflog.h"
+#include "dcmtk/dcmiod/iodmacro.h"
+#include "dcmtk/dcmpmap/dpmdef.h"
+
+// ----------------------------------------------------------------------------
+// Define the loggers for this module
+// ----------------------------------------------------------------------------
+
+extern DCMTK_DCMPMAP_EXPORT OFLogger DCM_dcmpmapLogger;
+
+#define DCMPMAP_TRACE(msg) OFLOG_TRACE(DCM_dcmpmapLogger, msg)
+#define DCMPMAP_DEBUG(msg) OFLOG_DEBUG(DCM_dcmpmapLogger, msg)
+#define DCMPMAP_INFO(msg)  OFLOG_INFO(DCM_dcmpmapLogger, msg)
+#define DCMPMAP_WARN(msg)  OFLOG_WARN(DCM_dcmpmapLogger, msg)
+#define DCMPMAP_ERROR(msg) OFLOG_ERROR(DCM_dcmpmapLogger, msg)
+#define DCMPMAP_FATAL(msg) OFLOG_FATAL(DCM_dcmpmapLogger, msg)
+
+// ----------------------------------------------------------------------------
+// Error constants
+// ----------------------------------------------------------------------------
+
+extern DCMTK_DCMPMAP_EXPORT   const OFConditionConst     DPM_InvalidDimensions;
+extern DCMTK_DCMPMAP_EXPORT   const OFConditionConst     DPM_InvalidAttributeValue;
+extern DCMTK_DCMPMAP_EXPORT   const OFConditionConst     DPM_InvalidPixelInfo;
+extern DCMTK_DCMPMAP_EXPORT   const OFConditionConst     DPM_InvalidPixelData;
+extern DCMTK_DCMPMAP_EXPORT   const OFConditionConst     DPM_NoPixelData;
+extern DCMTK_DCMPMAP_EXPORT   const OFConditionConst     DPM_InvalidSOPClass;
+
+/** General purpose class hiding global functions, constants and types in the
+ *  parametric map context from the global namespace.
+ */
+class DCMTK_DCMPMAP_EXPORT DPMTypes
+{
+  public:
+
+    /// Enum for attribute Content Qualification
+    enum ContentQualification
+    {
+      /// Unkonwn (e.g. not set)
+      CQ_UNKNOWN,
+      /// PRODUCT
+      CQ_PRODUCT,
+      /// RESEARCH
+      CQ_RESEARCH,
+      /// SERVICE
+      CQ_SERVICE
+    };
+
+    /// Enum for attribute Lossy Image Compression
+    enum LossyImageCompression
+    {
+      /// Unknown (e.g. not set)
+      COMP_UNKNOWN,
+      /// YES (lossy image compression used)
+      COMP_YES,
+      /// NO (no lossy image compression used)
+      COMP_NO
+    };
+
+
+    /// Enum for attribute Recognizable Visual Features
+    enum RecognizableVisibleFeatures
+    {
+      /// Unknown (e.g. not set)
+      RVF_UNKNOWN,
+      /// YES (recognizable visual features present)
+      RVF_YES,
+      /// NO (recognizable visual features not present)
+      RVF_NO
+    };
+
+    /** Convert Recognizable Visual Features enum to OFString
+     *  @param  rvf The enum to convert
+     *  @return String version of enum value
+     */
+    static OFString rvf2Str(const RecognizableVisibleFeatures rvf);
+
+    /** Convert OFString version of Recognizable Visual Features attribute
+     *  value to enum value
+     *  @param  rvf The OFString value to convert
+     *  @return The enum value of the string
+     */
+    static RecognizableVisibleFeatures str2Rvf(const OFString& rvf);
+
+    /** Convert Content Qualification enum to OFString
+     *  @param  cq The enum to convert
+     *  @return String version of enum value
+     */
+    static OFString cq2Str(const ContentQualification cq);
+
+    /** Convert OFString version of Content Qualification attribute
+     *  value to enum value
+     *  @param  cq The OFString value to convert
+     *  @return The enum value of the string
+     */
+    static ContentQualification str2Cq(const OFString& cq);
+
+    /** Check whether Recognizable Visual Features enum value is valid
+     *  @param  rvf Value to check
+     *  @return OFTrue if valid, OFFalse otherwise
+     */
+    static OFBool rvfValid(const RecognizableVisibleFeatures rvf);
+
+    /** Check whether Content Qualification enum value is valid
+     *  @param  cq Value to check
+     *  @return OFTrue if valid, OFFalse otherwise
+     */
+    static OFBool cqValid(const ContentQualification cq);
+
+};
+
+#endif // DPMTYPES_H
diff --git a/dcmpmap/libsrc/CMakeLists.txt b/dcmpmap/libsrc/CMakeLists.txt
new file mode 100644
index 0000000..8f48aa6
--- /dev/null
+++ b/dcmpmap/libsrc/CMakeLists.txt
@@ -0,0 +1,5 @@
+# create library from source files
+DCMTK_ADD_LIBRARY(dcmpmap dpmtypes dpmmodparametricmapseries dpmmodparametricmapimage dpmparametricmapbase dpmparametricmapiod)
+
+DCMTK_TARGET_LINK_MODULES(dcmpmap dcmfg dcmiod dcmdata ofstd oflog)
+DCMTK_TARGET_LINK_LIBRARIES(dcmpmap ${ZLIB_LIBS} ${WIN32_STD_LIBRARIES})
diff --git a/dcmseg/libsrc/Makefile.dep b/dcmpmap/libsrc/Makefile.dep
similarity index 79%
copy from dcmseg/libsrc/Makefile.dep
copy to dcmpmap/libsrc/Makefile.dep
index a9ee8fb..91f1805 100644
--- a/dcmseg/libsrc/Makefile.dep
+++ b/dcmpmap/libsrc/Makefile.dep
@@ -1,32 +1,102 @@
-segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+dpmmodparametricmapimage.o: dpmmodparametricmapimage.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
- ../../ofstd/include/dcmtk/ofstd/ofstream.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
- ../include/dcmtk/dcmseg/segdoc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
- ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
  ../../ofstd/include/dcmtk/ofstd/ofutil.h \
- ../../ofstd/include/dcmtk/ofstd/oftraits.h \
  ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
- ../../ofstd/include/dcmtk/ofstd/ofcond.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h
+dpmmodparametricmapseries.o: dpmmodparametricmapseries.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
  ../../oflog/include/dcmtk/oflog/oflog.h \
  ../../oflog/include/dcmtk/oflog/logger.h \
  ../../oflog/include/dcmtk/oflog/config.h \
  ../../oflog/include/dcmtk/oflog/config/defines.h \
  ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
  ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
  ../../oflog/include/dcmtk/oflog/tstring.h \
  ../../oflog/include/dcmtk/oflog/tchar.h \
  ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
@@ -44,39 +114,54 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
  ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/oflimits.h \
  ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
  ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
- ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \
  ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
- ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
  ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
@@ -84,17 +169,12 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
@@ -119,41 +199,9 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
- ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
- ../../ofstd/include/dcmtk/ofstd/ofoption.h \
- ../../ofstd/include/dcmtk/ofstd/ofalign.h \
- ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
- ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
- ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
- ../../dcmiod/include/dcmtk/dcmiod/modfor.h \
- ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \
- ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
- ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
- ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
- ../../dcmiod/include/dcmtk/dcmiod/modsegmentationseries.h \
- ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
- ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
- ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \
- ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
- ../../dcmfg/include/dcmtk/dcmfg/fg.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \
- ../include/dcmtk/dcmseg/segtypes.h ../include/dcmtk/dcmseg/segdef.h \
- ../include/dcmtk/dcmseg/segment.h ../include/dcmtk/dcmseg/segutils.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgseg.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgfact.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h
-segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+dpmparametricmapbase.o: dpmparametricmapbase.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
  ../../ofstd/include/dcmtk/ofstd/oftraits.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
@@ -212,6 +260,8 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -219,8 +269,7 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
  ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
- ../include/dcmtk/dcmseg/segment.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../include/dcmtk/dcmpmap/dpmtypes.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
@@ -244,11 +293,9 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -267,6 +314,7 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
@@ -276,14 +324,33 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
  ../../ofstd/include/dcmtk/ofstd/ofmem.h \
- ../include/dcmtk/dcmseg/segtypes.h ../include/dcmtk/dcmseg/segdef.h \
- ../include/dcmtk/dcmseg/segdoc.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
  ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
  ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
  ../../ofstd/include/dcmtk/ofstd/ofoption.h \
- ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
  ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
@@ -292,35 +359,40 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
- ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
- ../../dcmiod/include/dcmtk/dcmiod/modsegmentationseries.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \
  ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
- ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
  ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \
- ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
- ../../dcmfg/include/dcmtk/dcmfg/fg.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h
-segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
- ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h
+dpmparametricmapiod.o: dpmparametricmapiod.cc \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
- ../../ofstd/include/dcmtk/ofstd/oftraits.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
- ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
- ../../ofstd/include/dcmtk/ofstd/ofthread.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
  ../../oflog/include/dcmtk/oflog/oflog.h \
  ../../oflog/include/dcmtk/oflog/logger.h \
@@ -328,7 +400,6 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/config/defines.h \
  ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
  ../../oflog/include/dcmtk/oflog/loglevel.h \
- ../../ofstd/include/dcmtk/ofstd/ofvector.h \
  ../../oflog/include/dcmtk/oflog/tstring.h \
  ../../oflog/include/dcmtk/oflog/tchar.h \
  ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
@@ -346,30 +417,29 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
- ../../ofstd/include/dcmtk/ofstd/offile.h \
- ../../ofstd/include/dcmtk/ofstd/ofstd.h \
- ../../ofstd/include/dcmtk/ofstd/oflimits.h \
- ../../config/include/dcmtk/config/arith.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
- ../../ofstd/include/dcmtk/ofstd/ofutil.h \
- ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
  ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
@@ -423,16 +493,64 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
- ../../ofstd/include/dcmtk/ofstd/ofmem.h \
- ../include/dcmtk/dcmseg/segtypes.h ../include/dcmtk/dcmseg/segdef.h
-segutils.o: segutils.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmseg/segutils.h ../include/dcmtk/dcmseg/segdef.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
+ ../../ofstd/include/dcmtk/ofstd/ofoption.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfor.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \
+ ../include/dcmtk/dcmpmap/dpmtypes.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h
+dpmtypes.o: dpmtypes.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
- ../include/dcmtk/dcmseg/segtypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../include/dcmtk/dcmpmap/dpmtypes.h \
  ../../oflog/include/dcmtk/oflog/oflog.h \
  ../../oflog/include/dcmtk/oflog/logger.h \
  ../../oflog/include/dcmtk/oflog/config.h \
@@ -440,10 +558,7 @@ segutils.o: segutils.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
  ../../oflog/include/dcmtk/oflog/loglevel.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
- ../../ofstd/include/dcmtk/ofstd/oftypes.h \
- ../../ofstd/include/dcmtk/ofstd/ofstream.h \
  ../../oflog/include/dcmtk/oflog/tstring.h \
- ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../oflog/include/dcmtk/oflog/tchar.h \
  ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
  ../../oflog/include/dcmtk/oflog/appender.h \
@@ -466,15 +581,12 @@ segutils.o: segutils.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
  ../../ofstd/include/dcmtk/ofstd/ofstd.h \
  ../../ofstd/include/dcmtk/ofstd/oftraits.h \
- ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/oflimits.h \
  ../../config/include/dcmtk/config/arith.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
  ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
@@ -547,4 +659,5 @@ segutils.o: segutils.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
  ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
- ../../ofstd/include/dcmtk/ofstd/ofmem.h
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h
diff --git a/dcmiod/libsrc/Makefile.in b/dcmpmap/libsrc/Makefile.in
similarity index 56%
copy from dcmiod/libsrc/Makefile.in
copy to dcmpmap/libsrc/Makefile.in
index 5cfeb14..5f72f74 100644
--- a/dcmiod/libsrc/Makefile.in
+++ b/dcmpmap/libsrc/Makefile.in
@@ -1,5 +1,5 @@
 #
-#	Makefile for dcmiod/libsrc
+#	Makefile for dcmpmap/libsrc
 #
 
 @SET_MAKE@
@@ -15,22 +15,19 @@ include $(configdir)/@common_makefile@
 ofstddir = $(top_srcdir)/../ofstd
 oflogdir = $(top_srcdir)/../oflog
 dcmdatadir = $(top_srcdir)/../dcmdata
+dcmioddir = $(top_srcdir)/../dcmiod
+dcmfgdir = $(top_srcdir)/../dcmfg
 
-LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include -I$(dcmdatadir)/include
+LOCALINCLUDES = -I$(ofstddir)/include -I$(oflogdir)/include \
+	-I$(dcmdatadir)/include -I$(dcmioddir)/include \
+	-I$(dcmfgdir)/include
 
 LOCALDEFS =
 
-objs =  cielabutil.o iodcommn.o  iodmacro.o iodimage.o iodrules.o iodutil.o \
-	iodtypes.o modacquisitioncontext.o modbase.o modcommoninstanceref.o \
-	modenhequipment.o modenhusimage.o modenhusseries.o modequipment.o \
-	modfor.o modgeneralimage.o modgeneralseries.o modgeneralstudy.o \
-	modhelp.o  modimagepixel.o  modmultiframefg.o  \
-	modmultiframedimension.o  modpatient.o  modpatientstudy.o \
-	modsegmentationseries.o  modsopcommon.o  modsynchronization.o \
-	modusfor.o
+objs = dpmtypes.o dpmtypes.o dpmmodparametricmapseries.o dpmmodparametricmapimage.o dpmparametricmapbase.o dpmparametricmapiod.o
 
 
-library = libdcmiod.$(LIBEXT)
+library = libdcmpmap.$(LIBEXT)
 
 
 all: $(library)
diff --git a/dcmpmap/libsrc/dpmmodparametricmapimage.cc b/dcmpmap/libsrc/dpmmodparametricmapimage.cc
new file mode 100644
index 0000000..a22883a
--- /dev/null
+++ b/dcmpmap/libsrc/dpmmodparametricmapimage.cc
@@ -0,0 +1,289 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Parametric Map Image Module
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmdata/dcvrcs.h"
+#include "dcmtk/dcmdata/dcvrds.h"
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmpmap/dpmmodparametricmapimage.h"
+
+const OFString DPMParametricMapImageModule::m_ModuleName = "DPMParametricMapImageModule";
+
+DPMParametricMapImageModule::DPMParametricMapImageModule()
+: IODModule()
+{
+  resetRules();
+}
+
+DPMParametricMapImageModule::DPMParametricMapImageModule(OFshared_ptr<DcmItem> item,
+                                                         OFshared_ptr<IODRules> rules)
+: IODModule(item, rules)
+{
+  // reset element rules
+  resetRules();
+}
+
+DPMParametricMapImageModule::~DPMParametricMapImageModule()
+{
+
+}
+
+OFString DPMParametricMapImageModule::getName() const
+{
+  return m_ModuleName;
+}
+
+void DPMParametricMapImageModule::resetRules()
+{
+  // parameters are tag, VM, type. Overwrite old rules if any.
+  m_Rules->addRule(new IODRule(DCM_ImageType, "2-n","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_SamplesPerPixel, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PhotometricInterpretation, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_BitsAllocated, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_BitsStored, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_HighBit, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_PresentationLUTShape, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_LossyImageCompression, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_LossyImageCompressionRatio, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_LossyImageCompressionMethod, "1-n","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_BurnedInAnnotation, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_RecognizableVisualFeatures, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ContentQualification, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+}
+
+OFCondition DPMParametricMapImageModule::read(DcmItem& source,
+                                              const OFBool clearOldData)
+{
+  if (clearOldData)
+    clearData();
+
+  IODComponent::read(source, OFFalse /* data already cleared */);
+
+  return EC_Normal;
+}
+
+OFCondition DPMParametricMapImageModule::write(DcmItem& destination)
+{
+  OFCondition result = EC_Normal;
+
+  result = IODComponent::write(destination);
+
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::getImageType(OFString &value,
+                                                      const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_ImageType, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getSamplesPerPixel(Uint16 &value,
+                                                            const signed long pos) const
+{
+  return m_Item->findAndGetUint16(DCM_SamplesPerPixel, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getPhotometricInterpretation(OFString &value,
+                                                                      const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_PhotometricInterpretation, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getBitsAllocated(Uint16 &value,
+                                                          const signed long pos) const
+{
+  return m_Item->findAndGetUint16(DCM_BitsAllocated, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getBitsStored(Uint16 &value,
+                                                       const signed long pos) const
+{
+  return m_Item->findAndGetUint16(DCM_BitsStored, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getHighBit(Uint16 &value,
+                                                    const signed long pos) const
+{
+  return m_Item->findAndGetUint16(DCM_HighBit, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getPresentationLUTShape(OFString &value,
+                                                                 const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_PresentationLUTShape, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getLossyImageCompression(OFString &value,
+                                                                  const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_LossyImageCompression, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getLossyImageCompressionRatio(OFString &value,
+                                                                       const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_LossyImageCompressionRatio, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getLossyImageCompressionMethod(OFString &value,
+                                                                        const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_LossyImageCompressionMethod, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getBurnedInAnnotation(OFString &value,
+                                                               const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_BurnedInAnnotation, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getRecognizableVisualFeatures(OFString &value,
+                                                                       const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_RecognizableVisualFeatures, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::getContentQualification(OFString &value,
+                                                                 const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_ContentQualification, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapImageModule::setImageType(const OFString &value,
+                                                      const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "2-n") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_ImageType, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setSamplesPerPixel(const Uint16 &value,
+                                                            const OFBool checkValue)
+{
+  if (checkValue && (value != 1))
+    return IOD_EC_InvalidElementValue;
+
+  return m_Item->putAndInsertUint16(DCM_SamplesPerPixel, value);
+}
+
+OFCondition DPMParametricMapImageModule::setPhotometricInterpretation(const OFString &value,
+                                                                      const OFBool checkValue)
+{
+  if (checkValue && (value != "MONOCHROME2"))
+    return IOD_EC_InvalidElementValue;
+
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_PhotometricInterpretation, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setBitsAllocated(const Uint16 &value,
+                                                          const OFBool checkValue)
+{
+  if (checkValue && (value != 16) && (value != 32) && (value != 64))
+    return IOD_EC_InvalidElementValue;
+
+  return m_Item->putAndInsertUint16(DCM_BitsAllocated, value);
+}
+
+OFCondition DPMParametricMapImageModule::setBitsStored(const Uint16 &value,
+                                                       const OFBool checkValue)
+{
+  if (checkValue && (value != 16) && (value != 32) && (value != 64))
+    return IOD_EC_InvalidElementValue;
+
+  return m_Item->putAndInsertUint16(DCM_BitsStored, value);
+}
+
+OFCondition DPMParametricMapImageModule::setHighBit(const Uint16 &value,
+                                                    const OFBool checkValue)
+{
+  if (checkValue && (value != 15))
+    return IOD_EC_InvalidElementValue;
+
+  return m_Item->putAndInsertUint16(DCM_HighBit, value);
+}
+
+OFCondition DPMParametricMapImageModule::setPresentationLUTShape(const OFString &value,
+                                                                 const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_PresentationLUTShape, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setLossyImageCompression(const OFString &value,
+                                                                  const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_LossyImageCompression, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setLossyImageCompressionRatio(const OFString &value,
+                                                                       const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmDecimalString::checkStringValue(value, "1-n") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_LossyImageCompressionRatio, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setLossyImageCompressionMethod(const OFString &value,
+                                                                        const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1-n") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_LossyImageCompressionMethod, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setBurnedInAnnotation(const OFString &value,
+                                                               const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_BurnedInAnnotation, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setRecognizableVisualFeatures(const OFString &value,
+                                                                       const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_RecognizableVisualFeatures, value);
+  return result;
+}
+
+OFCondition DPMParametricMapImageModule::setContentQualification(const OFString &value,
+                                                                 const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_ContentQualification, value);
+  return result;
+}
diff --git a/dcmpmap/libsrc/dpmmodparametricmapseries.cc b/dcmpmap/libsrc/dpmmodparametricmapseries.cc
new file mode 100644
index 0000000..cf65edc
--- /dev/null
+++ b/dcmpmap/libsrc/dpmmodparametricmapseries.cc
@@ -0,0 +1,124 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Class for managing the Parametric Map Series Module
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcdeftag.h"
+#include "dcmtk/dcmdata/dcvrcs.h"
+#include "dcmtk/dcmdata/dcvris.h"
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmpmap/dpmmodparametricmapseries.h"
+
+const OFString DPMParametricMapSeriesModule::m_ModuleName = "DPMParametricMapSeriesModule";
+
+DPMParametricMapSeriesModule::DPMParametricMapSeriesModule()
+: IODModule()
+{
+  resetRules();
+}
+
+DPMParametricMapSeriesModule::DPMParametricMapSeriesModule(OFshared_ptr<DcmItem> item,
+                                                           OFshared_ptr<IODRules> rules)
+: IODModule(item, rules)
+{
+  // reset element rules
+  resetRules();
+}
+
+DPMParametricMapSeriesModule::~DPMParametricMapSeriesModule()
+{
+
+}
+
+OFString DPMParametricMapSeriesModule::getName() const
+{
+  return m_ModuleName;
+}
+
+void DPMParametricMapSeriesModule::resetRules()
+{
+  // parameters are tag, VM, type. Overwrite old rules if any.
+  m_Rules->addRule(new IODRule(DCM_Modality, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_SeriesNumber, "1","1", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+  m_Rules->addRule(new IODRule(DCM_ReferencedPerformedProcedureStepSequence, "1","1C", getName(), DcmIODTypes::IE_SERIES), OFTrue);
+}
+
+OFCondition DPMParametricMapSeriesModule::read(DcmItem& source,
+                                               const OFBool clearOldData)
+{
+  if (clearOldData)
+    clearData();
+
+  IODComponent::read(source, OFFalse /* data already cleared */);
+  DcmIODUtil::readSubSequence(source, DCM_ReferencedPerformedProcedureStepSequence, m_ReferencedPerformedProcedureStepSequence, m_Rules->getByTag(DCM_ReferencedPerformedProcedureStepSequence));
+
+  return EC_Normal;
+}
+
+OFCondition DPMParametricMapSeriesModule::write(DcmItem& destination)
+{
+  OFCondition result = EC_Normal;
+
+  if(SOPInstanceReferenceMacro* pReferencedPerformedProcedureStepSequence = getReferencedPerformedProcedureStepSequence())
+    DcmIODUtil::writeSingleItem(result, DCM_ReferencedPerformedProcedureStepSequence, *pReferencedPerformedProcedureStepSequence, *m_Item, m_Rules->getByTag(DCM_ReferencedPerformedProcedureStepSequence));
+  result = IODComponent::write(destination);
+
+  return result;
+}
+
+OFCondition DPMParametricMapSeriesModule::getModality(OFString &value,
+                                                      const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_Modality, *m_Item, value, pos);
+}
+
+OFCondition DPMParametricMapSeriesModule::getSeriesNumber(OFString &value,
+                                                          const signed long pos) const
+{
+  return DcmIODUtil::getStringValueFromItem(DCM_SeriesNumber, *m_Item, value, pos);
+}
+
+SOPInstanceReferenceMacro* DPMParametricMapSeriesModule::getReferencedPerformedProcedureStepSequence()
+{
+  return m_ReferencedPerformedProcedureStepSequence.empty() ? OFnullptr : &*m_ReferencedPerformedProcedureStepSequence.begin();
+}
+
+OFVector<SOPInstanceReferenceMacro>& DPMParametricMapSeriesModule::getEntireReferencedPerformedProcedureStepSequence()
+{
+  return m_ReferencedPerformedProcedureStepSequence;
+}
+
+OFCondition DPMParametricMapSeriesModule::setModality(const OFString &value,
+                                                      const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_Modality, value);
+  return result;
+}
+
+OFCondition DPMParametricMapSeriesModule::setSeriesNumber(const OFString &value,
+                                                          const OFBool checkValue)
+{
+  OFCondition result = (checkValue) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal;
+  if (result.good())
+    result = m_Item->putAndInsertOFStringArray(DCM_SeriesNumber, value);
+  return result;
+}
diff --git a/dcmpmap/libsrc/dpmparametricmapbase.cc b/dcmpmap/libsrc/dpmparametricmapbase.cc
new file mode 100644
index 0000000..a1dc110
--- /dev/null
+++ b/dcmpmap/libsrc/dpmparametricmapbase.cc
@@ -0,0 +1,227 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Jan Schlamelcher
+ *
+ *  Purpose: Generated base class representing the Parametric Map IOD
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmiod/iodutil.h"
+#include "dcmtk/dcmpmap/dpmtypes.h"
+#include "dcmtk/dcmpmap/dpmparametricmapbase.h"
+
+
+DPMParametricMapBase::DPMParametricMapBase()
+: DPMParametricMapBase::IODImage()
+, m_DPMParametricMapSeriesModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODEnhGeneralEquipmentModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_DPMParametricMapImageModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODMultiFrameFGModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODMultiframeDimensionModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODAcquisitionContextModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODCommonInstanceReferenceModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+{
+}
+
+
+template<typename ImagePixel>
+DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(ImagePixel))
+: DPMParametricMapBase::IODImage(OFin_place<ImagePixel>)
+, m_DPMParametricMapSeriesModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODEnhGeneralEquipmentModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_DPMParametricMapImageModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODMultiFrameFGModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODMultiframeDimensionModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODAcquisitionContextModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+, m_IODCommonInstanceReferenceModule(DPMParametricMapBase::IODImage::getData(), DPMParametricMapBase::IODImage::getRules())
+{
+}
+
+
+DPMParametricMapBase::~DPMParametricMapBase()
+{
+}
+
+
+void DPMParametricMapBase::clearData()
+{
+  DPMParametricMapBase::IODImage::clearData();
+}
+
+
+OFCondition DPMParametricMapBase::read(DcmItem& dataset)
+{
+  OFString sopClass;
+  if(DcmIODUtil::checkSOPClass(&dataset, UID_ParametricMapStorage, sopClass).bad())
+  {
+    DCMPMAP_ERROR("Given file does not seem to be a Parametric Map storage object since SOP class is: " << sopClass);
+    return IOD_EC_WrongSOPClass;
+  }
+
+  DPMParametricMapBase::IODImage::read(dataset);
+  m_DPMParametricMapSeriesModule.read(dataset);
+  m_IODEnhGeneralEquipmentModule.read(dataset);
+  m_DPMParametricMapImageModule.read(dataset);
+  m_IODMultiFrameFGModule.read(dataset);
+  m_FGInterface.read(dataset);
+  m_IODMultiframeDimensionModule.read(dataset);
+  m_IODAcquisitionContextModule.read(dataset);
+  m_IODCommonInstanceReferenceModule.read(dataset);
+
+  return EC_Normal;
+}
+
+
+OFCondition DPMParametricMapBase::saveFile(const OFString& filename,
+                                           const E_TransferSyntax writeXfer)
+{
+  DcmFileFormat dcmff;
+  OFCondition result;
+  if((result = write(*dcmff.getDataset())).good())
+    result = dcmff.saveFile(filename.c_str(), writeXfer);
+  if(result.bad())
+    DCMPMAP_ERROR("Cannot save Parametric Map object to file " << filename << ": " << result.text());
+  return result;
+}
+
+
+OFCondition DPMParametricMapBase::writeDataset(DcmItem& dataset)
+{
+  return write(dataset);
+}
+
+
+OFCondition DPMParametricMapBase::write(DcmItem& dataset)
+{
+  if(!check())
+    return IOD_EC_InvalidObject;
+
+  OFCondition result;
+  if((result = m_DPMParametricMapSeriesModule.write(dataset)).good())
+  if((result = m_IODEnhGeneralEquipmentModule.write(dataset)).good())
+  if((result = m_DPMParametricMapImageModule.write(dataset)).good())
+  if((result = m_IODMultiFrameFGModule.write(dataset)).good())
+  if((result = m_FGInterface.write(dataset)).good())
+  if((result = m_IODMultiframeDimensionModule.write(dataset)).good())
+  if((result = m_IODAcquisitionContextModule.write(dataset)).good())
+  if((result = m_IODCommonInstanceReferenceModule.write(dataset)).good())
+    return DPMParametricMapBase::IODImage::write(dataset);
+
+  return result;
+}
+
+
+OFBool DPMParametricMapBase::check()
+{
+  return m_FGInterface.check();
+}
+
+
+FGInterface& DPMParametricMapBase::getFunctionalGroups()
+{
+  return m_FGInterface;
+}
+
+
+IODPatientModule& DPMParametricMapBase::getIODPatientModule()
+{
+  return DPMParametricMapBase::IODImage::getPatient();
+}
+
+
+IODGeneralStudyModule& DPMParametricMapBase::getIODGeneralStudyModule()
+{
+  return DPMParametricMapBase::IODImage::getStudy();
+}
+
+
+IODPatientStudyModule& DPMParametricMapBase::getIODPatientStudyModule()
+{
+  return DPMParametricMapBase::IODImage::getPatientStudy();
+}
+
+
+IODGeneralSeriesModule& DPMParametricMapBase::getIODGeneralSeriesModule()
+{
+  return DPMParametricMapBase::IODImage::getSeries();
+}
+
+
+DPMParametricMapSeriesModule& DPMParametricMapBase::getDPMParametricMapSeriesModule()
+{
+  return m_DPMParametricMapSeriesModule;
+}
+
+
+IODGeneralEquipmentModule& DPMParametricMapBase::getIODGeneralEquipmentModule()
+{
+  return DPMParametricMapBase::IODImage::getEquipment();
+}
+
+
+IODEnhGeneralEquipmentModule& DPMParametricMapBase::getIODEnhGeneralEquipmentModule()
+{
+  return m_IODEnhGeneralEquipmentModule;
+}
+
+
+IODGeneralImageModule& DPMParametricMapBase::getIODGeneralImageModule()
+{
+  return DPMParametricMapBase::IODImage::getGeneralImage();
+}
+
+
+DPMParametricMapImageModule& DPMParametricMapBase::getDPMParametricMapImageModule()
+{
+  return m_DPMParametricMapImageModule;
+}
+
+
+IODMultiFrameFGModule& DPMParametricMapBase::getIODMultiFrameFGModule()
+{
+  return m_IODMultiFrameFGModule;
+}
+
+
+IODMultiframeDimensionModule& DPMParametricMapBase::getIODMultiframeDimensionModule()
+{
+  return m_IODMultiframeDimensionModule;
+}
+
+
+IODAcquisitionContextModule& DPMParametricMapBase::getIODAcquisitionContextModule()
+{
+  return m_IODAcquisitionContextModule;
+}
+
+
+IODCommonInstanceReferenceModule& DPMParametricMapBase::getIODCommonInstanceReferenceModule()
+{
+  return m_IODCommonInstanceReferenceModule;
+}
+
+
+IODSOPCommonModule& DPMParametricMapBase::getIODSOPCommonModule()
+{
+  return DPMParametricMapBase::IODImage::getSOPCommon();
+}
+
+
+template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODImagePixelModule<Uint16>));
+template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODImagePixelModule<Sint16>));
+template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODFloatingPointImagePixelModule));
+template DCMTK_DCMPMAP_EXPORT DPMParametricMapBase::DPMParametricMapBase(OFin_place_type_t(IODDoubleFloatingPointImagePixelModule));
diff --git a/dcmpmap/libsrc/dpmparametricmapiod.cc b/dcmpmap/libsrc/dpmparametricmapiod.cc
new file mode 100644
index 0000000..cbbeab2
--- /dev/null
+++ b/dcmpmap/libsrc/dpmparametricmapiod.cc
@@ -0,0 +1,1063 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmpmap
+ *
+ *  Author: Michael Onken
+ *
+ *  Purpose: Class for managing the Parametric Map IOD
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmpmap/dpmparametricmapiod.h"
+#include "dcmtk/dcmiod/iodutil.h"
+
+// ----------------------------------------------------------------------------
+// Class SetImagePixelModuleVisitor:
+// Class for setting Image Pixel Module attributes based on pixel data type
+// ----------------------------------------------------------------------------
+
+struct DPMParametricMapIOD::SetImagePixelModuleVisitor
+{
+  SetImagePixelModuleVisitor(const Uint16 r,
+                             const Uint16 c)
+  : rows(r)
+  , cols(c)
+  {
+
+  }
+
+  template<typename T>
+  OFCondition operator()( T& t )
+  {
+    if ( (rows == 0) || (cols == 0) )
+    {
+      DCMPMAP_ERROR("Rows/Cols must be non-zero but are : " << rows << "/" << cols);
+      return DPM_InvalidDimensions;
+    }
+
+    t.setRows(rows);
+    t.setColumns(cols);
+    setSpecificValues(t);
+
+    return EC_Normal;
+  }
+
+  template<typename T>
+  void setSpecificValues(IODImagePixelModule<T>& p)
+  {
+    p.setBitsAllocated(16);
+    p.setBitsStored(16);
+    p.setHighBit(15);
+    p.setSamplesPerPixel(1);
+    p.setPhotometricInterpretation("MONOCHROME2");
+    p.setPixelRepresentation(OFis_signed<T>::value ? 1 : 0);
+  }
+
+  void setSpecificValues(IODFloatingPointImagePixelModule& p)
+  {
+    // Avoid compiler warning about unused parameter "p"
+    (void)p;
+    // No specific values for 32 bit floating point data to be set
+  }
+
+  void setSpecificValues(IODDoubleFloatingPointImagePixelModule& p)
+  {
+    // Avoid compiler warning about unused parameter "p"
+    (void)p;
+    // No specific values for 64 bit floating point data to be set
+  }
+  // Members
+  const Uint16 rows;
+  const Uint16 cols;
+};
+
+
+struct DPMParametricMapIOD::ReadVisitor
+{
+  // Inner class that implements the specializations for different
+  // pixel data types
+  template<typename T>
+  class DcmElementOf;
+
+  ReadVisitor(DcmItem& srcItem,
+              DPMParametricMapIOD& m)
+  : item(srcItem)
+  , map(m)
+  {
+    // Nothing to do
+  }
+
+  OFCondition operator()(OFmonostate)
+  {
+    return DPM_InvalidPixelData;
+  }
+
+  template<typename ImagePixel>
+  OFCondition operator()(ImagePixel& pixel)
+  {
+    OFCondition result = map.readGeneric(item);
+    if (result.good())
+    {
+      Uint16 rows, cols;
+      size_t numFrames, numBytesFrame;
+      rows = cols = numFrames = numBytesFrame = 0;
+      map.getRows(rows);
+      map.getColumns(cols);
+      numFrames = map.getFunctionalGroups().getNumberOfFrames();
+      if (!rows || !cols || !numFrames)
+      {
+        DCMPMAP_ERROR("Rows (" << rows << "), Columns (" << cols << ") and Number of Frames (" << numFrames << ") must not be 0");
+        return DPM_InvalidPixelInfo;
+      }
+      numBytesFrame = rows * cols * sizeof(typename ImagePixel::value_type);
+      result = readSpecific(pixel, numFrames, numBytesFrame);
+    }
+    return result;
+  }
+
+  template<typename T>
+  OFCondition readSpecific(IODImagePixelModule<T>& p,
+                           const Uint16 numFrames,
+                           const size_t numBytesFrame)
+  {
+    // Avoid compiler warning about unused parameter
+    (void)p;
+    unsigned long numTotalWords = 0;
+    const Uint16* pixData = NULL;
+    if (item.findAndGetUint16Array(DCM_PixelData, pixData, &numTotalWords).good())
+    {
+      if (numTotalWords == numBytesFrame * numFrames / 2 /* we compare to num words not num bytes */)
+      {
+        for (Uint16 n = 0; n < numFrames; n++)
+        {
+          DcmIODTypes::Frame* f = new DcmIODTypes::Frame;
+          if (f)
+          {
+            f->length = numBytesFrame;
+            f->pixData = new Uint8[f->length];
+            memcpy(f->pixData, pixData + n*numBytesFrame/2, numBytesFrame);
+            map.m_Frames.push_back(f);
+          }
+          else
+          {
+            return EC_MemoryExhausted;
+          }
+        }
+      }
+      else
+      {
+        DCMPMAP_ERROR("Invalid number of pixels: Expected " << numBytesFrame * numFrames / 2 << " pixels but Pixel Data has " << numTotalWords << " pixels");
+        return DPM_InvalidPixelInfo;
+      }
+    }
+    else
+    {
+      DCMPMAP_ERROR("No Pixel Data element found");
+      return DPM_NoPixelData;
+    }
+    return EC_Normal;
+  }
+
+  OFCondition readSpecific(IODFloatingPointImagePixelModule& p,
+                           const Uint16 numFrames,
+                           const size_t numBytesFrame)
+  {
+    // Avoid compiler warning on unused parameter
+    (void)p;
+    unsigned long numTotalFloats = 0;
+    const Float32* pixData = NULL;
+    if (item.findAndGetFloat32Array(DCM_FloatPixelData, pixData, &numTotalFloats).good())
+    {
+      if (numTotalFloats == numBytesFrame * numFrames / 4 /* we compare to 32 bit floats not bytes */)
+      {
+        for (Uint16 n=0; n < numFrames; n++)
+        {
+          DcmIODTypes::Frame* f = new DcmIODTypes::Frame;
+          if (f)
+          {
+            f->length = numBytesFrame;
+            f->pixData = new Uint8[f->length];
+            memcpy(f->pixData, pixData + n*numBytesFrame/4, numBytesFrame);
+            map.m_Frames.push_back(f);
+          }
+          else
+          {
+            return EC_MemoryExhausted;
+          }
+        }
+      }
+      else
+      {
+        DCMPMAP_ERROR("Invalid number of pixels: Expected " << numBytesFrame * numFrames / 4 << " pixels but Float Pixel Data has " << numTotalFloats << " pixels");
+        return DPM_InvalidPixelInfo;
+      }
+    }
+    else
+    {
+      DCMPMAP_ERROR("No Float Pixel Data element found");
+      return DPM_NoPixelData;
+    }
+    return EC_Normal;
+  }
+
+  OFCondition readSpecific(IODDoubleFloatingPointImagePixelModule& p,
+                    const Uint16 numFrames,
+                    const size_t numBytesFrame)
+  {
+    // Avoid compiler warning on unused parameter
+    (void)p;
+    unsigned long numTotalFloats = 0;
+    const Float64* pixData = NULL;
+    if (item.findAndGetFloat64Array(DCM_DoubleFloatPixelData, pixData, &numTotalFloats).good())
+    {
+      if (numTotalFloats == numBytesFrame * numFrames / 8 /* we compare to 64 bit floats not bytes */)
+      {
+        for (Uint16 n=0; n < numFrames; n++)
+        {
+          DcmIODTypes::Frame* f = new DcmIODTypes::Frame;
+          if (f)
+          {
+            f->length = numBytesFrame;
+            f->pixData = new Uint8[f->length];
+            memcpy(f->pixData, pixData + n*numBytesFrame/8, numBytesFrame);
+            map.m_Frames.push_back(f);
+          }
+          else
+          {
+            return EC_MemoryExhausted;
+          }
+        }
+      }
+      else
+      {
+        DCMPMAP_ERROR("Invalid number of pixels: Expected " << numBytesFrame * numFrames / 8 << " pixels but Double Float Pixel Data has " << numTotalFloats << " pixels");
+        return DPM_InvalidPixelInfo;
+      }
+    }
+    else
+    {
+      DCMPMAP_ERROR("No Double Float Pixel Data element found");
+      return DPM_NoPixelData;
+    }
+    return EC_Normal;
+  }
+
+  // Members, i.e. parameters to operator()
+  DcmItem& item;
+  DPMParametricMapIOD& map;
+};
+
+
+
+// ----------------------------------------------------------------------------
+// Class WriteVisitor:
+// Class for adding DICOM pixel data bulk element based on type pixel data type
+// ----------------------------------------------------------------------------
+
+// Generic implementation, template specialization is done in inner
+// DcmElementOf class
+struct DPMParametricMapIOD::WriteVisitor
+{
+  // Inner class that implements the specializations for different
+  // pixel data types
+  template<typename T>
+  class DcmElementOf;
+
+  // Constructor, sets parameters the visitor works on in operator()
+  WriteVisitor(DcmItem& i,
+               DPMParametricMapIOD& m)
+  : item(i)
+  , map(m)
+  {
+    // Nothing else to do
+  }
+
+  //
+  OFCondition operator()(OFmonostate)
+  {
+    DCMPMAP_ERROR("Could not write pixel data: Invalid pixel data type, only 16 bit integer as well as 32 and 64 bit float data are handled");
+    return DPM_NoPixelData;
+  }
+
+  template<typename ImagePixel>
+  OFCondition operator()(ImagePixel& pixel)
+  {
+    // Avoid compiler warning about unused parameter "pixel"
+    (void)pixel;
+    // Input data is checked before
+    Uint16 rows = 0;
+    Uint16 cols = 0;
+    map.getRows(rows);
+    map.getColumns(cols);
+    const size_t numFrames = map.m_Frames.size();
+    const size_t numBytesFrame = map.m_Frames[0]->length;
+    const size_t numPixelsFrame = rows * cols;
+    // Creates the correct pixel data element, based on the image pixel module used.
+    // I.e. For integer data, the "Pixel Data" element is used, i.e. the DcmElement type
+    // instantiated by DcmElementOf is of DCMTK type DcmOtherByteOtherWord while for
+    // IODFloatingPointImagePixelModule which has floating point pixel data, DcmFloatingPointSingle
+    // is used.
+    DcmElementOf<ImagePixel> element;
+    // copy all frames into map's frame structure
+    if (OFTypename ImagePixel::value_type* ptr = element.getData(numBytesFrame * numFrames))
+    {
+      for (size_t f = 0; f < numFrames; ++f)
+      {
+        memcpy(ptr, map.m_Frames[f]->pixData, numBytesFrame);
+        ptr += numPixelsFrame;
+      }
+      OFCondition result = element.put(item);
+      // Write generic (i.e. non pixel data-specific attributes)
+      return result.good() ? map.writeGeneric(item) : result;
+    }
+    return EC_MemoryExhausted;
+  }
+
+  // Members, i.e. parameters to operator()
+  DcmItem& item;
+  DPMParametricMapIOD& map;
+};
+
+
+// ----------------------------------------------------------------------------
+// Class WriteVisitor:DcmElementOf<IODImagePixelModule<PixelType> >:
+// Offers creation and insertion for Pixel Data element as used for
+// int-based pixel data. So far, Uint8, Sint8, Uint16 and Sint16 pixel
+// data is supported (relates to OB/OW data type for DICOM Pixel data)
+// ----------------------------------------------------------------------------
+
+template<typename PixelType>
+class DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODImagePixelModule<PixelType> >
+{
+public:
+
+  DcmElementOf()
+  : m_pElement(new DcmOtherByteOtherWord(DCM_PixelData))
+  {
+    // Nothing else to do
+  }
+
+  PixelType* getData(const size_t count);
+
+  OFCondition put(DcmItem& item)
+  {
+    OFCondition result = item.insert(m_pElement.get(), OFTrue);
+    if (result.good())
+      m_pElement.release();
+    return result;
+  }
+
+private:
+
+  OFunique_ptr<DcmOtherByteOtherWord> m_pElement;
+};
+
+
+template<>
+Uint8* DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODImagePixelModule<Uint8> >::getData(const size_t size)
+{
+  if (m_pElement)
+  if (m_pElement->setVR(EVR_OB).good())
+  {
+    Uint8* result;
+    if (m_pElement->createUint8Array(size, result).good())
+      return result;
+  }
+  return OFnullptr;
+}
+
+
+template<>
+Sint8* DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODImagePixelModule<Sint8> >::getData(const size_t size)
+{
+  if (m_pElement)
+  if (m_pElement->setVR(EVR_OB).good())
+  {
+    Uint8* result;
+    if (m_pElement->createUint8Array(size, result).good())
+      return OFreinterpret_cast(Sint8*, result);
+  }
+  return OFnullptr;
+}
+
+
+template<>
+Uint16* DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODImagePixelModule<Uint16> >::getData(const size_t size /* num total pixels */)
+{
+  if (m_pElement)
+  if (m_pElement->setVR(EVR_OW).good())
+  {
+    Uint16* result;
+    if (m_pElement->createUint16Array(size / 2, result).good())
+      return result;
+  }
+  return OFnullptr;
+}
+
+
+template<>
+Sint16* DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODImagePixelModule<Sint16> >::getData(const size_t size)
+{
+  if (m_pElement)
+  if (m_pElement->setVR(EVR_OW).good())
+  {
+    Uint16* result;
+    if (m_pElement->createUint16Array(size / 2, result).good())
+      return OFreinterpret_cast(Sint16*, result);
+  }
+  return OFnullptr;
+}
+
+
+// ----------------------------------------------------------------------------
+// Class WriteVisitor:DcmElementOf<IODImagePixelModule<IODFloatingPointImagePixelModule> >:
+// Offers creation and insertion for Pixel Data element as used for
+// 32 bit float-based pixel data as used in Parametric Map IOD
+// ----------------------------------------------------------------------------
+
+template<>
+class DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODFloatingPointImagePixelModule>
+{
+public:
+  DcmElementOf()
+  : m_pElement(new DcmFloatingPointSingleAlloc(DCM_FloatPixelData))
+  {
+
+  }
+
+  Float32* getData(const size_t size)
+  {
+    if (m_pElement)
+    {
+      Float32* result;
+      if (m_pElement->createFloat32Array(size, result).good())
+        return result;
+    }
+    return OFnullptr;
+  }
+
+  OFCondition put(DcmItem& item)
+  {
+    OFCondition result = item.insert(m_pElement.get(), OFTrue);
+    if (result.good())
+      m_pElement.release();
+    return result;
+  }
+
+private:
+
+  struct DcmFloatingPointSingleAlloc : DcmFloatingPointSingle
+  {
+    DcmFloatingPointSingleAlloc(const DcmTagKey& tag)
+    : DcmFloatingPointSingle(tag)
+    {
+
+    }
+
+    OFCondition createFloat32Array(const size_t size,
+                                   Float32*& result)
+    {
+       OFCondition status = createEmptyValue(size);
+       result = OFreinterpret_cast(Float32*, getValue());
+       return status;
+    }
+  };
+
+  OFunique_ptr<DcmFloatingPointSingleAlloc> m_pElement;
+};
+
+
+// ----------------------------------------------------------------------------
+// Class WriteVisitor:DcmElementOf<IODImagePixelModule<IODFloatingPointImagePixelModule> >:
+// Offers creation and insertion for Pixel Data element as used for
+// 64 bit float-based pixel data as used in Parametric Map IOD.
+// ----------------------------------------------------------------------------
+
+template<>
+class DPMParametricMapIOD::WriteVisitor::DcmElementOf<IODDoubleFloatingPointImagePixelModule>
+{
+public:
+  DcmElementOf()
+  : m_pElement(new DcmFloatingPointDoubleAlloc(DCM_DoubleFloatPixelData))
+  {
+
+  }
+
+  Float64* getData(const size_t size)
+  {
+    if (m_pElement)
+    {
+      Float64* result;
+      if (m_pElement->createFloat64Array(size, result).good())
+        return result;
+    }
+    return OFnullptr;
+  }
+
+  OFCondition put(DcmItem& item)
+  {
+    OFCondition result = item.insert(m_pElement.get(), OFTrue);
+    if (result.good())
+      m_pElement.release();
+    return result;
+  }
+
+private:
+
+  struct DcmFloatingPointDoubleAlloc : DcmFloatingPointDouble
+  {
+    DcmFloatingPointDoubleAlloc(const DcmTagKey& tag)
+    : DcmFloatingPointDouble(tag)
+    {
+
+    }
+
+    OFCondition createFloat64Array(const size_t size, Float64*& result)
+    {
+       OFCondition status = createEmptyValue(size);
+       result = OFreinterpret_cast(Float64*, getValue());
+       return status;
+    }
+  };
+
+  OFunique_ptr<DcmFloatingPointDoubleAlloc> m_pElement;
+};
+
+
+// Helper "class" that returns Frames offering API to the pixel's frame bulk
+// data by offering the dedicated data type, e.g. Float32 instead of the
+// internally stored generic Uint8 array.
+//
+struct DPMParametricMapIOD::GetFramesVisitor
+{
+  GetFramesVisitor(DPMParametricMapIOD& m)
+  : map(m)
+  {
+
+  }
+
+  OFCondition operator()(OFmonostate)
+  {
+    return DPM_InvalidPixelData;
+  }
+
+  template<typename ImagePixel>
+  Frames<OFTypename ImagePixel::value_type> operator()(ImagePixel&)
+  {
+    return Frames<OFTypename ImagePixel::value_type>(map);
+  }
+
+  DPMParametricMapIOD& map;
+};
+
+
+/** Helper "class" that returns Frames offering API to the pixel's frame bulk
+ *  data by offering the dedicated data type, e.g. Float32 instead of the
+ *  internally stored generic Uint8 array.
+ */
+struct DPMParametricMapIOD::ReadFramesVisitor
+{
+  ReadFramesVisitor(DcmItem& i,
+                    DPMParametricMapIOD& m)
+  : map(m), item(i)
+  {
+    // Nothing else to do
+  }
+
+  OFCondition operator()(OFmonostate)
+  {
+    return DPM_InvalidPixelData;
+  }
+
+  template<typename ImagePixel>
+  OFCondition operator()(ImagePixel&)
+  {
+    return Frames<OFTypename ImagePixel::value_type>(map);
+  }
+
+  // Members, i.e. parameters to operator()
+  DPMParametricMapIOD& map;
+  DcmItem& item;
+};
+
+
+
+template<typename PixelType>
+DPMParametricMapIOD::Frames<PixelType>::Frames(DPMParametricMapIOD& map)
+: m_Map(map)
+{
+
+}
+
+
+template<typename PixelType>
+OFCondition DPMParametricMapIOD::Frames<PixelType>::addFrame(PixelType* data,
+                                                             const size_t numPixels,
+                                                             const OFVector<FGBase*>& perFrameInformation)
+{
+  OFCondition result;
+  if (data && numPixels)
+  {
+    if (!perFrameInformation.empty())
+    {
+      OFunique_ptr<DcmIODTypes::Frame> f(new DcmIODTypes::Frame);
+      if (f)
+      {
+        f->length = numPixels * sizeof(PixelType);
+        f->pixData = new Uint8[f->length];
+        memcpy(f->pixData, data, f->length);
+        m_Map.m_Frames.push_back(f.release());
+        OFVector<FGBase*>::const_iterator fg = perFrameInformation.begin();
+        while ( result.good() && (fg != perFrameInformation.end()) )
+        {
+          result = m_Map.m_FGInterface.addPerFrame(m_Map.m_Frames.size(), **fg);
+          if (result.bad())
+          {
+            DCMPMAP_ERROR("Could not add functional group: " << DcmFGTypes::FGType2OFString((*fg)->getType()));
+            break;
+          }
+          ++fg;
+        }
+      }
+    }
+  }
+  // Clean up if necessary
+  if (result.bad())
+    m_Map.m_FGInterface.deleteFrame(m_Map.m_Frames.size());
+  return result;
+}
+
+
+template<typename PixelType>
+PixelType* DPMParametricMapIOD::Frames<PixelType>::getFrame(const size_t frameNumber)
+{
+  if (frameNumber < m_Map.m_Frames.size())
+  {
+    return (PixelType*)(m_Map.m_Frames[frameNumber]->pixData);
+  }
+  return NULL;
+}
+
+
+// Protected constructor
+DPMParametricMapIOD::DPMParametricMapIOD()
+: DPMParametricMapBase()
+, m_ContentIdentification()
+, m_Frames()
+{
+}
+
+
+// Protected constructor
+template<typename ImagePixel>
+DPMParametricMapIOD::DPMParametricMapIOD(OFin_place_type_t(ImagePixel))
+: DPMParametricMapBase(OFin_place<ImagePixel>)
+, m_ContentIdentification()
+, m_Frames()
+{
+}
+
+
+// Static method used to create a new Parametric Map IOD object
+template<typename ImagePixel>
+OFvariant<OFCondition,DPMParametricMapIOD> DPMParametricMapIOD::create(const OFString& modality,
+                                                                       const OFString& seriesNumber,
+                                                                       const OFString& instanceNumber,
+                                                                       const Uint16 rows,
+                                                                       const Uint16 columns,
+                                                                       const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo,
+                                                                       const ContentIdentificationMacro& contentIdentification,
+                                                                       const OFString& imageFlavor,
+                                                                       const OFString& derivedPixelContrast,
+                                                                       const DPMTypes::ContentQualification& contentQualification)
+{
+  DPMParametricMapIOD map(OFin_place<ImagePixel>);
+
+  OFCondition status = SetImagePixelModuleVisitor(rows, columns)(*OFget<ImagePixel>(&map.getImagePixel()));
+  if (status.bad())
+    return status;
+
+  status = map.init
+  (
+    modality,
+    seriesNumber,
+    instanceNumber,
+    equipmentInfo,
+    contentIdentification,
+    imageFlavor,
+    derivedPixelContrast,
+    contentQualification
+  );
+
+  if(status.bad())
+    return status;
+
+  return map;
+}
+
+
+OFCondition DPMParametricMapIOD::init(const OFString& modality,
+                                      const OFString& seriesNumber,
+                                      const OFString& instanceNumber,
+                                      const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo,
+                                      const ContentIdentificationMacro& contentIdentification,
+                                      const OFString& imageFlavor,
+                                      const OFString& derivedPixelContrast,
+                                      const DPMTypes::ContentQualification& contentQualification)
+{
+  if (!equipmentInfo.isDataComplete())
+  {
+    DCMPMAP_ERROR("Equipment info incomplete");
+    return DPM_InvalidAttributeValue;
+  }
+
+  OFCondition status = OFconst_cast(ContentIdentificationMacro*, &contentIdentification)->check();
+  if (status.bad())
+  {
+    DCMPMAP_ERROR("Content identification is invalid: " << status.text());
+    return DPM_InvalidAttributeValue;
+  }
+
+  status = OFconst_cast(ContentIdentificationMacro*, &contentIdentification)->check();
+  if (imageFlavor.empty() || derivedPixelContrast.empty())
+  {
+    DCMPMAP_ERROR
+    (
+      "Image Type value 3 (Image Flavor) and 4 (Derived Pixel Contrast) must be set but are "
+      << imageFlavor << "/" << derivedPixelContrast
+    );
+    return DPM_InvalidAttributeValue;
+  }
+
+  if (!DPMTypes::cqValid(contentQualification))
+  {
+    DCMPMAP_ERROR("Content Qualification not set");
+    return DPM_InvalidAttributeValue;
+  }
+
+  // All data is valid, copy to object
+  status = getIODEnhGeneralEquipmentModule().set(equipmentInfo);
+  if (status.bad())
+  {
+    DCMPMAP_ERROR("Error setting equipment info: " << status.text());
+    return DPM_InvalidAttributeValue;
+  }
+
+  m_ContentIdentification = contentIdentification;
+  OFStringStream ss;
+  ss << "DERIVED\\PRIMARY\\" << imageFlavor << "\\" << derivedPixelContrast;
+  OFSTRINGSTREAM_GETOFSTRING(ss, imgType);
+
+  status = getIODGeneralImageModule().setImageType(imgType);
+  if (status.bad())
+  {
+    DCMPMAP_ERROR("Error setting Image Type: " << status.text());
+    return DPM_InvalidAttributeValue;
+  }
+
+  status = m_DPMParametricMapSeriesModule.setModality(modality);
+  if (status.bad())
+  {
+
+    DCMPMAP_ERROR("Could not set modality value \"" << modality << "\": " << status.text());
+    return DPM_InvalidAttributeValue;
+  }
+
+  status = m_DPMParametricMapSeriesModule.setSeriesNumber(seriesNumber);
+  if (status.bad())
+  {
+    DCMPMAP_ERROR("Could not set Series Number: " << status.text());
+    return DPM_InvalidAttributeValue;
+  }
+
+  status = m_IODMultiFrameFGModule.setInstanceNumber(instanceNumber);
+  if (status.bad())
+    return status;
+
+  m_DPMParametricMapImageModule.setContentQualification(DPMTypes::cq2Str(contentQualification));
+  m_DPMParametricMapImageModule.setRecognizableVisualFeatures("YES");
+  m_DPMParametricMapImageModule.setBurnedInAnnotation("NO");
+  m_DPMParametricMapImageModule.setLossyImageCompression("00");
+  m_DPMParametricMapImageModule.setPresentationLUTShape("IDENTITY");
+  getSOPCommon().setSOPClassUID(UID_ParametricMapStorage);
+  DcmIODUtil::setContentDateAndTimeNow(m_IODMultiFrameFGModule);
+
+  return EC_Normal;
+}
+
+
+OFCondition DPMParametricMapIOD::read(DcmItem& dataset)
+{
+  return OFvisit<OFCondition>(ReadVisitor(dataset,*this),getImagePixel());
+
+}
+
+
+OFCondition DPMParametricMapIOD::write(DcmItem& dataset)
+{
+  if (!check())
+    return DPM_InvalidAttributeValue;
+  return OFvisit<OFCondition>(WriteVisitor(dataset,*this),getImagePixel());
+}
+
+
+OFvariant<OFCondition,DPMParametricMapIOD*> DPMParametricMapIOD::loadDataset(DcmDataset& dataset)
+{
+  OFString sopClass;
+  DPMParametricMapIOD *map = NULL;
+  if (dataset.findAndGetOFStringArray(DCM_SOPClassUID, sopClass).good())
+  {
+    if (sopClass == UID_ParametricMapStorage)
+    {
+      DcmElement *elem = NULL;
+      if (dataset.findAndGetElement(DCM_PixelData, elem).good())
+      {
+        Uint16 pr = 0;
+        if (dataset.findAndGetUint16(DCM_PixelRepresentation, pr).good())
+        {
+          if (pr == 0)
+          {
+            map = new DPMParametricMapIOD(OFin_place<IODImagePixelModule<Uint16> >);
+          }
+          else
+          {
+            map = new DPMParametricMapIOD(OFin_place<IODImagePixelModule<Sint16> >);
+          }
+        }
+        else
+        {
+          DCMPMAP_WARN("Pixel Data element found but no Pixel Representation set, assuming 16 bit unsigned integer data");
+          map = new DPMParametricMapIOD(OFin_place<IODImagePixelModule<Uint16> >);
+        }
+      }
+      else if (dataset.findAndGetElement(DCM_FloatPixelData, elem).good())
+      {
+        map = new DPMParametricMapIOD(OFin_place<IODFloatingPointImagePixelModule>);
+      }
+      else if (dataset.findAndGetElement(DCM_DoubleFloatPixelData, elem).good())
+      {
+        map = new DPMParametricMapIOD(OFin_place<IODDoubleFloatingPointImagePixelModule>);
+      }
+      else
+      {
+        return DPM_NoPixelData;
+      }
+      if (map == NULL)
+      {
+        return EC_MemoryExhausted;
+      }
+    }
+    else
+    {
+      DCMPMAP_ERROR("Invalid SOP Class: " << sopClass << ", only Parametric Map Storage (1.2.840.10008.5.1.4.1.1.30) supported");
+      return DPM_InvalidSOPClass;
+    }
+  }
+  OFCondition result = OFvisit<OFCondition>(ReadVisitor(dataset, *map), map->getImagePixel());
+  if (result.good())
+    return map;
+  else
+    return result;
+}
+
+
+OFvariant<OFCondition,DPMParametricMapIOD*> DPMParametricMapIOD::loadFile(const OFString& filename)
+{
+  DcmFileFormat dcmff;
+  OFCondition cond = dcmff.loadFile(filename.c_str());
+  OFvariant<OFCondition,DPMParametricMapIOD*> result;
+  if (cond.good())
+  {
+     result = loadDataset( *(dcmff.getDataset()) );
+     return result;
+  }
+  else
+  {
+    return cond;
+  }
+}
+
+
+DPMParametricMapIOD::~DPMParametricMapIOD()
+{
+  DcmIODUtil::freeContainer(m_Frames);
+  // nothing else to do for now
+}
+
+
+OFCondition DPMParametricMapIOD::addForAllFrames(const FGBase& group)
+{
+  return m_FGInterface.addShared(group);
+}
+
+
+OFBool DPMParametricMapIOD::check()
+{
+  OFString val;
+  m_DPMParametricMapImageModule.getRecognizableVisualFeatures(val);
+  if (DPMTypes::rvfValid(DPMTypes::str2Rvf(val)))
+  {
+    m_DPMParametricMapImageModule.getContentQualification(val);
+    if (DPMTypes::cqValid(DPMTypes::str2Cq(val)))
+    {
+      if (!m_Frames.empty())
+      {
+        return OFTrue;
+      }
+      else
+      {
+        DCMPMAP_ERROR("No frame data defined in Parametric Map");
+      }
+    }
+    else
+    {
+      DCMPMAP_ERROR("Invalid value for Recognizable Visual Features: " << val);
+    }
+  }
+  else
+  {
+    DCMPMAP_ERROR("Invalid value for Content Qualification" << val);
+  }
+  return OFFalse;
+}
+
+
+OFCondition DPMParametricMapIOD::getColumns(Uint16& cols)
+{
+  return getImagePixel().getColumns(cols);
+}
+
+
+OFCondition DPMParametricMapIOD::getRows(Uint16& rows)
+{
+  return getImagePixel().getRows(rows);
+}
+
+
+size_t DPMParametricMapIOD::getNumberOfFrames() const
+{
+  return OFconst_cast(DPMParametricMapIOD*,this)->m_FGInterface.getNumberOfFrames();
+}
+
+
+OFCondition DPMParametricMapIOD::setRecognizableVisualFeatures(const DPMTypes::RecognizableVisibleFeatures yesOrNo)
+{
+  return DPMTypes::rvfValid(yesOrNo)
+  ?
+    m_DPMParametricMapImageModule.setRecognizableVisualFeatures(DPMTypes::rvf2Str(yesOrNo))
+  :
+    DPM_InvalidAttributeValue
+  ;
+}
+
+
+OFCondition DPMParametricMapIOD::readGeneric(DcmItem& dataset)
+{
+  OFCondition result = DPMParametricMapBase::read(dataset);
+  if (result.good())
+    result = m_ContentIdentification.read(dataset);
+  return result;
+}
+
+
+OFCondition DPMParametricMapIOD::writeGeneric(DcmItem& dataset)
+{
+  getFrameOfReference().ensureFrameOfReferenceUID();
+  m_IODMultiFrameFGModule.setNumberOfFrames(m_Frames.size());
+  OFCondition result = m_ContentIdentification.write(dataset);
+  if (result.good())
+  {
+    result = DPMParametricMapBase::write(dataset);
+  }
+  return result;
+}
+
+
+DPMTypes::ContentQualification DPMParametricMapIOD::getContentQualification()
+{
+  OFString val;
+  m_DPMParametricMapImageModule.getContentQualification(val);
+  return DPMTypes::str2Cq(val);
+}
+
+
+DPMTypes::RecognizableVisibleFeatures DPMParametricMapIOD::getRecognizableVisualFeatures()
+{
+  OFString val;
+  DPMParametricMapIOD::m_DPMParametricMapImageModule.getRecognizableVisualFeatures(val);
+  return DPMTypes::str2Rvf(val);
+}
+
+
+DPMParametricMapIOD::FramesType DPMParametricMapIOD::getFrames()
+{
+  return OFvisit<FramesType>(GetFramesVisitor(*this),getImagePixel());
+}
+
+
+OFCondition DPMParametricMapIOD::decompress(DcmDataset& dset)
+{
+  DcmXfer xfer = dset.getOriginalXfer();
+  OFCondition result;
+  // If the original transfer syntax could have been lossy, print warning
+  if (dset.hasRepresentation(EXS_LittleEndianExplicit, NULL))
+  {
+    if ( xfer.isEncapsulated() && (xfer.getXfer() != EXS_RLELossless) && (xfer.getXfer() != EXS_DeflatedLittleEndianExplicit) )
+    {
+      DCMPMAP_WARN("Dataset has been compressed using a (possibly) lossy compression scheme (ignored)");
+    }
+  }
+  // If the original transfer is encapsulated and we do not already have an uncompressed version, decompress or reject the file
+  else if (xfer.isEncapsulated())
+  {
+    // RLE compression is fine (truly lossless). Deflated is handled internally by DCMTK.
+    if (xfer.getXfer() == EXS_RLELossless)
+    {
+      DCMPMAP_DEBUG("DICOM file is RLE-compressed, converting to uncompressed transfer syntax first");
+      result = DcmIODUtil::decompress(dset);
+    }
+    else // We do not accept any transfer syntax that could be lossy compressed
+    {
+      DCMPMAP_ERROR("Transfer syntax " << DcmXfer(xfer).getXferName() << " uses lossy compression, not supported for Parametric Map objects!");
+      result = IOD_EC_CannotDecompress;
+    }
+  }
+  return result;
+}
+
+// Explicit instantiations using all permitted Parametric Map data types
+template class DPMParametricMapIOD::Frames<Uint16>;
+template class DPMParametricMapIOD::Frames<Sint16>;
+template class DPMParametricMapIOD::Frames<Float32>;
+template class DPMParametricMapIOD::Frames<Float64>;
+
+// Helper macro to not to write the same thing multiple times
+#define INSTANTIATE_CREATE(T) template DCMTK_DCMPMAP_EXPORT OFvariant<OFCondition,DPMParametricMapIOD>\
+DPMParametricMapIOD::create<T >(const OFString& modality,\
+                                const OFString& seriesNumber,\
+                                const OFString& instanceNumber,\
+                                const Uint16 rows,\
+                                const Uint16 columns,\
+                                const IODEnhGeneralEquipmentModule::EquipmentInfo& equipmentInfo,\
+                                const ContentIdentificationMacro& contentIdentification,\
+                                const OFString& imageFlavor,\
+                                const OFString& derivedPixelContrast,\
+                                const DPMTypes::ContentQualification& contentQualification)
+
+// Instantiate all four permitted create() methods
+INSTANTIATE_CREATE(IODImagePixelModule<Uint16>);
+INSTANTIATE_CREATE(IODImagePixelModule<Sint16>);
+INSTANTIATE_CREATE(IODFloatingPointImagePixelModule);
+INSTANTIATE_CREATE(IODDoubleFloatingPointImagePixelModule);
diff --git a/dcmpmap/libsrc/dpmtypes.cc b/dcmpmap/libsrc/dpmtypes.cc
new file mode 100644
index 0000000..cce411c
--- /dev/null
+++ b/dcmpmap/libsrc/dpmtypes.cc
@@ -0,0 +1,111 @@
+/*
+ *
+ *  Copyright (C) 2016, Open Connections GmbH
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  dcmpmap
+ *
+ *  Author:  Michael Onken
+ *
+ *  Purpose: Class for managing common paramatric map specific types.
+ *
+ */
+
+#include "dcmtk/config/osconfig.h"
+#include "dcmtk/dcmdata/dcerror.h"
+#include "dcmtk/dcmpmap/dpmtypes.h"
+
+OFLogger DCM_dcmpmapLogger = OFLog::getLogger("dcmtk.dcmpmap");
+
+/*---------------------------------*
+ *  constant definitions
+ *---------------------------------*/
+
+// conditions
+makeOFConditionConst(DPM_InvalidDimensions,      OFM_dcmpmap, 1, OF_error, "Invalid Dimensions");
+makeOFConditionConst(DPM_InvalidAttributeValue,  OFM_dcmpmap, 2, OF_error, "Invalid Attribute Value");
+makeOFConditionConst(DPM_InvalidPixelInfo,       OFM_dcmpmap, 3, OF_error, "Invalid information in pixel data or related attributes");
+makeOFConditionConst(DPM_InvalidPixelData,       OFM_dcmpmap, 4, OF_error, "Invalid pixel data");
+makeOFConditionConst(DPM_NoPixelData,            OFM_dcmpmap, 5, OF_error, "No pixel data found");
+makeOFConditionConst(DPM_InvalidSOPClass,        OFM_dcmpmap, 6, OF_error, "SOP Class not supported");
+
+OFString DPMTypes::rvf2Str(const RecognizableVisibleFeatures rvf)
+{
+  switch (rvf)
+  {
+    case RVF_NO: return "NO";
+    case RVF_YES: return "YES";
+    default: return "";
+  }
+}
+
+DPMTypes::RecognizableVisibleFeatures DPMTypes::str2Rvf(const OFString& rvf)
+{
+  if (rvf == "NO")
+    return RVF_NO;
+  if (rvf == "YES")
+    return RVF_YES;
+  else
+    return RVF_UNKNOWN;
+}
+
+
+OFString DPMTypes::cq2Str(const DPMTypes::ContentQualification cq)
+{
+   switch (cq)
+  {
+    case CQ_PRODUCT:  return "PRODUCT";
+    case CQ_RESEARCH: return "RESEARCH";
+    case CQ_SERVICE:  return "SERVICE";
+    case CQ_UNKNOWN:  return "";
+  }
+  return "";
+}
+
+
+DPMTypes::ContentQualification DPMTypes::str2Cq(const OFString& cq)
+{
+  if (cq == "PRODUCT")
+    return CQ_PRODUCT;
+  if (cq == "RESEARCH")
+    return CQ_RESEARCH;
+  if (cq == "SERVICE")
+    return CQ_SERVICE;
+  else
+    return CQ_UNKNOWN;
+}
+
+
+
+OFBool DPMTypes::cqValid(const DPMTypes::ContentQualification cq)
+{
+   switch (cq)
+  {
+    case CQ_PRODUCT:
+    case CQ_RESEARCH:
+    case CQ_SERVICE:  return OFTrue;
+    case CQ_UNKNOWN:  return OFFalse;
+  }
+  return OFFalse;
+}
+
+
+OFBool DPMTypes::rvfValid(const DPMTypes::RecognizableVisibleFeatures rvf)
+{
+  switch (rvf)
+  {
+    case RVF_NO: return OFTrue;
+    case RVF_YES: return OFTrue;
+    case RVF_UNKNOWN: return OFFalse;
+  }
+  return OFFalse;
+}
+
diff --git a/dcmseg/libsrc/Makefile.dep b/dcmpmap/tests/Makefile.dep
similarity index 80%
copy from dcmseg/libsrc/Makefile.dep
copy to dcmpmap/tests/Makefile.dep
index a9ee8fb..c2b87ff 100644
--- a/dcmseg/libsrc/Makefile.dep
+++ b/dcmpmap/tests/Makefile.dep
@@ -1,26 +1,27 @@
-segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+dump_pmp.o: dump_pmp.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
- ../include/dcmtk/dcmseg/segdoc.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
- ../../ofstd/include/dcmtk/ofstd/ofmap.h \
- ../../ofstd/include/dcmtk/ofstd/ofutil.h \
- ../../ofstd/include/dcmtk/ofstd/oftraits.h \
- ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
  ../../oflog/include/dcmtk/oflog/oflog.h \
  ../../oflog/include/dcmtk/oflog/logger.h \
  ../../oflog/include/dcmtk/oflog/config.h \
@@ -46,37 +47,37 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
- ../../ofstd/include/dcmtk/ofstd/offile.h \
- ../../ofstd/include/dcmtk/ofstd/ofstd.h \
- ../../ofstd/include/dcmtk/ofstd/oflimits.h \
- ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
  ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
- ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
- ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
- ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
  ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
@@ -120,12 +121,32 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
  ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
  ../../ofstd/include/dcmtk/ofstd/ofoption.h \
- ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
  ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
  ../../dcmiod/include/dcmtk/dcmiod/modfor.h \
@@ -133,45 +154,39 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
- ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
- ../../dcmiod/include/dcmtk/dcmiod/modsegmentationseries.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \
  ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
- ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
  ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \
- ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
- ../../dcmfg/include/dcmtk/dcmfg/fg.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \
- ../include/dcmtk/dcmseg/segtypes.h ../include/dcmtk/dcmseg/segdef.h \
- ../include/dcmtk/dcmseg/segment.h ../include/dcmtk/dcmseg/segutils.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgseg.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgfact.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h
-segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
- ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \
+ ../include/dcmtk/dcmpmap/dpmtypes.h
+make_pmp.o: make_pmp.cc ../../ofstd/include/dcmtk/ofstd/oftest.h \
+ ../../config/include/dcmtk/config/osconfig.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
- ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
  ../../oflog/include/dcmtk/oflog/oflog.h \
  ../../oflog/include/dcmtk/oflog/logger.h \
  ../../oflog/include/dcmtk/oflog/config.h \
@@ -194,14 +209,13 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/logmacro.h \
  ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
- ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
- ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
- ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
- ../../ofstd/include/dcmtk/ofstd/offile.h \
- ../../ofstd/include/dcmtk/ofstd/ofstd.h \
- ../../ofstd/include/dcmtk/ofstd/oflimits.h \
- ../../config/include/dcmtk/config/arith.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
@@ -212,6 +226,8 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -219,14 +235,16 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
  ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
- ../include/dcmtk/dcmseg/segment.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
  ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
@@ -244,11 +262,9 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -267,6 +283,7 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
@@ -274,16 +291,31 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
- ../../ofstd/include/dcmtk/ofstd/ofmem.h \
- ../include/dcmtk/dcmseg/segtypes.h ../include/dcmtk/dcmseg/segdef.h \
- ../include/dcmtk/dcmseg/segdoc.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
  ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
  ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
  ../../ofstd/include/dcmtk/ofstd/ofoption.h \
- ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
  ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
@@ -292,35 +324,40 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
- ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
- ../../dcmiod/include/dcmtk/dcmiod/modsegmentationseries.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \
  ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
- ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
  ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \
- ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
- ../../dcmfg/include/dcmtk/dcmfg/fg.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
- ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h
-segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
- ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \
+ ../include/dcmtk/dcmpmap/dpmtypes.h
+rw_pmp.o: rw_pmp.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapiod.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmem.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodutil.h \
- ../../ofstd/include/dcmtk/ofstd/oftraits.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
- ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
- ../../ofstd/include/dcmtk/ofstd/ofthread.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
  ../../oflog/include/dcmtk/oflog/oflog.h \
  ../../oflog/include/dcmtk/oflog/logger.h \
@@ -328,7 +365,6 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/config/defines.h \
  ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
  ../../oflog/include/dcmtk/oflog/loglevel.h \
- ../../ofstd/include/dcmtk/ofstd/ofvector.h \
  ../../oflog/include/dcmtk/oflog/tstring.h \
  ../../oflog/include/dcmtk/oflog/tchar.h \
  ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
@@ -346,30 +382,29 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
- ../../ofstd/include/dcmtk/ofstd/offile.h \
- ../../ofstd/include/dcmtk/ofstd/ofstd.h \
- ../../ofstd/include/dcmtk/ofstd/oflimits.h \
- ../../config/include/dcmtk/config/arith.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
  ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
- ../../ofstd/include/dcmtk/ofstd/ofutil.h \
- ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
  ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../include/dcmtk/dcmpmap/dpmparametricmapbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fginterface.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
@@ -423,16 +458,72 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
- ../../ofstd/include/dcmtk/ofstd/ofmem.h \
- ../include/dcmtk/dcmseg/segtypes.h ../include/dcmtk/dcmseg/segdef.h
-segutils.o: segutils.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmseg/segutils.h ../include/dcmtk/dcmseg/segdef.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgtypes.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgdefine.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fg.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgbase.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgderimg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgfracon.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgframevoilut.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgpixmsr.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanor.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgplanpo.h \
+ ../../dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
+ ../../ofstd/include/dcmtk/ofstd/ofoption.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfor.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modsopcommon.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
+ ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modacquisitioncontext.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modmultiframefg.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapimage.h \
+ ../include/dcmtk/dcmpmap/dpmdef.h \
+ ../include/dcmtk/dcmpmap/dpmmodparametricmapseries.h \
+ ../include/dcmtk/dcmpmap/dpmtypes.h
+tests.o: tests.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../../ofstd/include/dcmtk/ofstd/oftest.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
- ../include/dcmtk/dcmseg/segtypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
  ../../oflog/include/dcmtk/oflog/oflog.h \
  ../../oflog/include/dcmtk/oflog/logger.h \
  ../../oflog/include/dcmtk/oflog/config.h \
@@ -440,10 +531,7 @@ segutils.o: segutils.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
  ../../oflog/include/dcmtk/oflog/loglevel.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
- ../../ofstd/include/dcmtk/ofstd/oftypes.h \
- ../../ofstd/include/dcmtk/ofstd/ofstream.h \
  ../../oflog/include/dcmtk/oflog/tstring.h \
- ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../oflog/include/dcmtk/oflog/tchar.h \
  ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
  ../../oflog/include/dcmtk/oflog/appender.h \
@@ -457,94 +545,4 @@ segutils.o: segutils.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/spi/logfact.h \
  ../../oflog/include/dcmtk/oflog/logmacro.h \
  ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
- ../../oflog/include/dcmtk/oflog/tracelog.h \
- ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
- ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
- ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
- ../../ofstd/include/dcmtk/ofstd/ofthread.h \
- ../../ofstd/include/dcmtk/ofstd/offile.h \
- ../../ofstd/include/dcmtk/ofstd/ofstd.h \
- ../../ofstd/include/dcmtk/ofstd/oftraits.h \
- ../../ofstd/include/dcmtk/ofstd/ofcond.h \
- ../../ofstd/include/dcmtk/ofstd/oflimits.h \
- ../../config/include/dcmtk/config/arith.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
- ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
- ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
- ../../ofstd/include/dcmtk/ofstd/ofmap.h \
- ../../ofstd/include/dcmtk/ofstd/ofutil.h \
- ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
- ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
- ../../dcmiod/include/dcmtk/dcmiod/iodtypes.h \
- ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
- ../../dcmiod/include/dcmtk/dcmiod/cielabutil.h \
- ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
- ../../ofstd/include/dcmtk/ofstd/ofmem.h
+ ../../oflog/include/dcmtk/oflog/tracelog.h
diff --git a/dcmpmap/tests/Makefile.in b/dcmpmap/tests/Makefile.in
new file mode 100644
index 0000000..ff99234
--- /dev/null
+++ b/dcmpmap/tests/Makefile.in
@@ -0,0 +1,29 @@
+#
+#	Makefile for dcmpmap/tests
+#
+
+ at SET_MAKE@
+
+SHELL = /bin/sh
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+configdir = @top_srcdir@/@configdir@
+
+include $(configdir)/@common_makefile@
+
+
+all:
+
+check:
+
+check-exhaustive:
+
+install:
+
+clean:
+	rm -f $(TRASH)
+
+distclean:
+	rm -f $(DISTTRASH)
+
+dependencies:
diff --git a/dcmpstat/apps/dcmprscu.cc b/dcmpstat/apps/dcmprscu.cc
index 96bd146..bccc9ef 100644
--- a/dcmpstat/apps/dcmprscu.cc
+++ b/dcmpstat/apps/dcmprscu.cc
@@ -564,9 +564,13 @@ static OFCondition updateJobList(
     {
       currentName = dp->d_name;
 #endif
-      if ((prefix == currentName.substr(0, prefixSize)) &&
-          (currentName.size() > postfixSize) &&
-          (postfix == currentName.substr(currentName.size()-postfixSize)))
+      if
+      (
+        currentName.size() > (prefixSize + postfixSize) &&
+        prefix == currentName.substr(0, prefixSize) &&
+        postfix == currentName.substr(currentName.size()-postfixSize) &&
+        currentName.find_first_not_of("1234567890",prefixSize) == (currentName.size() - postfixSize)
+      )
       {
         // name matches pattern
         jobName = spoolFolder;
diff --git a/dcmpstat/libsrc/dviface.cc b/dcmpstat/libsrc/dviface.cc
index 5f81d37..652931c 100644
--- a/dcmpstat/libsrc/dviface.cc
+++ b/dcmpstat/libsrc/dviface.cc
@@ -1359,16 +1359,23 @@ OFBool DVInterface::createIndexCache()
                             DVPSInstanceType type = DVPSI_image;
                             if (record.Modality != NULL)
                             {
-                                if (strcmp(record.Modality, "PR") == 0)
+                                if (DSRTypes::sopClassUIDToDocumentType(record.SOPClassUID) != DSRTypes::DT_invalid)
+                                    type = DVPSI_structuredReport;
+                                else if (strcmp(record.Modality, "PR") == 0)
                                     type = DVPSI_presentationState;
-                                if (strcmp(record.Modality, "SR") == 0)
+                                else if (strcmp(record.Modality, "SR") == 0)
                                     type = DVPSI_structuredReport;
                                 else if (strcmp(record.Modality, "HC") == 0)
                                     type =DVPSI_hardcopyGrayscale;
                                 else if (strcmp(record.Modality, "STORED_PRINT") == 0)
                                     type = DVPSI_storedPrint;
                             }
-                            series->List.addItem(record.SOPInstanceUID, counter, record.hstat, type, record.ImageSize, record.filename);
+                            series->List.addItem(record.SOPInstanceUID,
+                                                 counter,
+                                                 OFstatic_cast(DVIFhierarchyStatus, record.hstat),
+                                                 type,
+                                                 record.ImageSize,
+                                                 record.filename);
                             if (series->Type == DVPSI_image)
                                 series->Type = type;                // series contains only one type of instances
                         }
@@ -1953,7 +1960,9 @@ OFCondition DVInterface::instanceReviewed(int pos)
     lockDatabase();
     OFBool wasNew = newInstancesReceived();
     if (pHandle == NULL) return EC_IllegalCall;
+    pHandle->DB_unlock();
     OFCondition result = pHandle->instanceReviewed(pos);
+    pHandle->DB_lock(OFFalse);
     if (!wasNew) resetDatabaseReferenceTime();
     releaseDatabase();
     return result;
diff --git a/dcmpstat/libsrc/dvpshlp.cc b/dcmpstat/libsrc/dvpshlp.cc
index 735a613..252ba2f 100644
--- a/dcmpstat/libsrc/dvpshlp.cc
+++ b/dcmpstat/libsrc/dvpshlp.cc
@@ -60,7 +60,7 @@ OFCondition DVPSHelper::loadFileFormat(const char *filename,
                                        DcmFileFormat *&fileformat)
 {
     fileformat = new DcmFileFormat;
-    OFCondition result =  fileformat->loadFile(filename);
+    OFCondition result =  fileformat->loadFile(OFFilename(filename,OFTrue));
 
     if (result.bad())
     {
diff --git a/dcmqrdb/docs/dcmqrscp.man b/dcmqrdb/docs/dcmqrscp.man
index 8150a6b..47f8e76 100644
--- a/dcmqrdb/docs/dcmqrscp.man
+++ b/dcmqrdb/docs/dcmqrscp.man
@@ -767,6 +767,8 @@ LegacyConvertedEnhancedPETImageStorage               1.2.840.10008.5.1.4.1.1.128
 RETIRED_StandalonePETCurveStorage                    1.2.840.10008.5.1.4.1.1.129
 EnhancedPETImageStorage                              1.2.840.10008.5.1.4.1.1.130
 BasicStructuredDisplayStorage                        1.2.840.10008.5.1.4.1.1.131
+CTDefinedProcedureProtocolStorage                    1.2.840.10008.5.1.4.1.1.200.1
+CTPerformedProcedureProtocolStorage                  1.2.840.10008.5.1.4.1.1.200.2
 RTImageStorage                                       1.2.840.10008.5.1.4.1.1.481.1
 RTDoseStorage                                        1.2.840.10008.5.1.4.1.1.481.2
 RTStructureSetStorage                                1.2.840.10008.5.1.4.1.1.481.3
diff --git a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h
index 956c1d9..c299701 100644
--- a/dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h
+++ b/dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h
@@ -123,6 +123,28 @@ enum DB_KEY_CLASS
 #define SIZEOF_IDXRECORD        (sizeof (IdxRecord))
 #define SIZEOF_STUDYDESC        (sizeof (StudyDescRecord) * MAX_MAX_STUDIES)
 
+struct DCMTK_DCMQRDB_EXPORT DB_SerializedTagKey
+{
+    inline DB_SerializedTagKey() {}
+    inline DB_SerializedTagKey(const DcmTagKey& rhs) { *this = rhs; }
+    inline DB_SerializedTagKey& operator=(const DcmTagKey& tk) { key[0] = tk.getGroup(); key[1] = tk.getElement(); return *this; }
+    inline operator DcmTagKey() const { return DcmTagKey( key[0], key[1] ); }
+    inline bool operator==(const DB_SerializedTagKey& rhs) const { return key[0] == rhs.key[0] && key[1] == rhs.key[1]; }
+    Uint16 key[2];
+};
+
+struct DCMTK_DCMQRDB_EXPORT DB_SerializedCharPtr
+{
+    inline DB_SerializedCharPtr(char* p) { ptr.p = p; }
+    inline DB_SerializedCharPtr& operator=(char* p) { ptr.p = p; return *this; }
+    inline operator char*() const { return ptr.p; }
+    union
+    {
+        char* p;
+        Uint64 placeholder;
+    } ptr ;
+};
+
 /** this class provides a primitive interface for handling a flat DICOM element,
  *  similar to DcmElement, but only for use within the database module
  */
@@ -133,13 +155,13 @@ public:
     DB_SmallDcmElmt();
 
     /// pointer to the value field
-    char* PValueField ;
+    DB_SerializedCharPtr PValueField ;
 
     /// value length in bytes
     Uint32 ValueLength ;
 
     /// attribute tag
-    DcmTagKey XTag ;
+    DB_SerializedTagKey XTag ;
 
 private:
     /// private undefined copy constructor
@@ -240,20 +262,20 @@ struct DCMTK_DCMQRDB_EXPORT StudyDescRecord
     char StudyInstanceUID [UI_MAX_LENGTH+1] ;
 
     /// combined size (in bytes) of all images of this study in the database
-    long StudySize ;
+    Uint32 StudySize ;
 
     /// timestamp for last update of this study. Format: output of time(2) converted to double.
     double LastRecordedDate ;
 
     /// number of images of this study in the database
-    int NumberofRegistratedImages ;
+    Uint32 NumberofRegistratedImages ;
 };
 
 struct DCMTK_DCMQRDB_EXPORT ImagesofStudyArray
 {
-    int idxCounter ;
+    Uint32 idxCounter ;
     double RecordedDate ;
-    long ImageSize ;
+    Uint32 ImageSize ;
 };
 
 
@@ -375,7 +397,7 @@ struct DCMTK_DCMQRDB_EXPORT IdxRecord
     char    PerformingPhysicianName         [PN_MAX_LENGTH+1] ;
     char    PresentationLabel               [CS_LABEL_MAX_LENGTH+1] ;
 
-    DVIFhierarchyStatus hstat;
+    char    hstat;
 
     // Not related to any particular DICOM attribute !
     char    InstanceDescription             [DESCRIPTION_MAX_LENGTH+1] ;
diff --git a/dcmrt/apps/Makefile.dep b/dcmrt/apps/Makefile.dep
index f9700e9..f8b1785 100644
--- a/dcmrt/apps/Makefile.dep
+++ b/dcmrt/apps/Makefile.dep
@@ -118,7 +118,8 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
@@ -128,16 +129,17 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \
- ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
- ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../include/dcmtk/dcmrt/seq/drtpsics.h \
  ../include/dcmtk/dcmrt/seq/drtpscs.h \
@@ -151,17 +153,17 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpsss.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \
  ../include/dcmtk/dcmrt/seq/drtrdros.h \
  ../include/dcmtk/dcmrt/seq/drtrwvms.h \
  ../include/dcmtk/dcmrt/seq/drtqds.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
  ../include/dcmtk/dcmrt/seq/drtrfors.h \
  ../include/dcmtk/dcmrt/seq/drtrsts.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h \
- ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -183,9 +185,13 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtssrs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h ../include/dcmtk/dcmrt/drtimage.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drtimage.h \
  ../include/dcmtk/dcmrt/seq/drtcbars.h \
  ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \
  ../include/dcmtk/dcmrt/seq/drtds.h ../include/dcmtk/dcmrt/seq/drtes.h \
@@ -194,8 +200,9 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
  ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \
  ../include/dcmtk/dcmrt/seq/drtmacds.h \
- ../include/dcmtk/dcmrt/seq/drtcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtrims.h \
  ../include/dcmtk/dcmrt/seq/drtrrtps5.h \
+ ../include/dcmtk/dcmrt/seq/drtsis.h ../include/dcmtk/dcmrt/seq/drtsins.h \
  ../include/dcmtk/dcmrt/seq/drtvls.h ../include/dcmtk/dcmrt/drtplan.h \
  ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \
  ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \
@@ -225,10 +232,11 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtbldts.h \
  ../include/dcmtk/dcmrt/seq/drttms9.h ../include/dcmtk/dcmrt/drtstrct.h \
  ../include/dcmtk/dcmrt/seq/drtrros.h \
- ../include/dcmtk/dcmrt/seq/drtarics.h \
  ../include/dcmtk/dcmrt/seq/drtrpps.h \
  ../include/dcmtk/dcmrt/seq/drtrecs.h \
- ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrics.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrrs.h \
  ../include/dcmtk/dcmrt/seq/drtrrros.h \
  ../include/dcmtk/dcmrt/seq/drtspccs.h ../include/dcmtk/dcmrt/drttreat.h \
  ../include/dcmtk/dcmrt/seq/drtfgss.h \
@@ -238,6 +246,7 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drttscds.h \
  ../include/dcmtk/dcmrt/seq/drttsmds.h ../include/dcmtk/dcmrt/drtionpl.h \
  ../include/dcmtk/dcmrt/seq/drtibs.h ../include/dcmtk/dcmrt/seq/drtas6.h \
+ ../include/dcmtk/dcmrt/seq/drtddps.h \
  ../include/dcmtk/dcmrt/seq/drtiblds.h \
  ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \
  ../include/dcmtk/dcmrt/seq/drticps.h \
@@ -258,6 +267,7 @@ drtdump.o: drtdump.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drttsibs.h \
  ../include/dcmtk/dcmrt/seq/drtas7.h \
  ../include/dcmtk/dcmrt/seq/drtbldls.h \
+ ../include/dcmtk/dcmrt/seq/drtdddps.h \
  ../include/dcmtk/dcmrt/seq/drticpds.h \
  ../include/dcmtk/dcmrt/seq/drtcpas.h \
  ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \
diff --git a/dcmrt/include/dcmtk/dcmrt/drtdose.h b/dcmrt/include/dcmtk/dcmrt/drtdose.h
index 6f90287..4614ee4 100644
--- a/dcmrt/include/dcmtk/dcmrt/drtdose.h
+++ b/dcmrt/include/dcmtk/dcmrt/drtdose.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDoseIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,7 @@
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
 #include "dcmtk/dcmrt/seq/drtcsas.h"   // for ConversionSourceAttributesSequence
 #include "dcmtk/dcmrt/seq/drtdvhs.h"   // for DVHSequence
@@ -31,6 +32,7 @@
 #include "dcmtk/dcmrt/seq/drtdss.h"    // for DigitalSignaturesSequence
 #include "dcmtk/dcmrt/seq/drteas.h"    // for EncryptedAttributesSequence
 #include "dcmtk/dcmrt/seq/drtfes.h"    // for FrameExtractionSequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtiis.h"    // for IconImageSequence
 #include "dcmtk/dcmrt/seq/drtians.h"   // for IssuerOfAccessionNumberSequence
@@ -38,7 +40,9 @@
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtmls.h"    // for ModalityLUTSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -55,7 +59,6 @@
 #include "dcmtk/dcmrt/seq/drtrwvms.h"  // for RealWorldValueMappingSequence
 #include "dcmtk/dcmrt/seq/drtrppcs.h"  // for ReasonForPerformedProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrfors.h"  // for ReferencedFrameOfReferenceSequence
-#include "dcmtk/dcmrt/seq/drtrims.h"   // for ReferencedImageSequence
 #include "dcmtk/dcmrt/seq/drtris.h"    // for ReferencedInstanceSequence
 #include "dcmtk/dcmrt/seq/drtrpphs.h"  // for ReferencedPatientPhotoSequence
 #include "dcmtk/dcmrt/seq/drtrps.h"    // for ReferencedPatientSequence
@@ -70,9 +73,12 @@
 #include "dcmtk/dcmrt/seq/drtras.h"    // for RequestAttributesSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
-#include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtssrs.h"   // for StructureSetROISequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 
 
 /** Interface class for RTDoseIOD
@@ -349,6 +355,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get AuthorizationEquipmentCertificationNumber (0100,0426)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -489,6 +502,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getClinicalTrialTimePointID(OFString &value, const signed long pos = 0) const;
 
+    /** get ColorSpace (0028,2002)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getColorSpace(OFString &value, const signed long pos = 0) const;
+
     /** get Columns (0028,0011)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1)
@@ -579,13 +599,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const;
 
-    /** get DerivationDescription (0008,2111)
-     *  @param  value  reference to variable in which the value should be stored
-     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const;
-
     /** get DeviceSerialNumber (0018,1000)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -870,6 +883,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getLargestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -925,6 +945,41 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1092,6 +1147,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1099,6 +1161,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1106,6 +1175,20 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1120,6 +1203,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1183,6 +1273,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientWeight (0010,1030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1329,6 +1426,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get PresentationLUTShape (2050,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1630,6 +1734,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getSmallestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1679,6 +1790,27 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition getStereoPairsPresent(OFString &value, const signed long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StructureSetDate (3006,0008)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1846,6 +1978,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContributingEquipmentSequence (0018,a001)
      *  @return reference to sequence element
      */
@@ -1942,6 +2086,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTFrameExtractionSequence &getFrameExtractionSequence() const
         { return FrameExtractionSequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -2026,6 +2182,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
     /** get ModalityLUTSequence (0028,3000)
      *  @return reference to sequence element
      */
@@ -2038,6 +2206,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTModalityLUTSequence &getModalityLUTSequence() const
         { return ModalityLUTSequence; }
 
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -2230,18 +2410,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTReferencedFrameOfReferenceSequence &getReferencedFrameOfReferenceSequence() const
         { return ReferencedFrameOfReferenceSequence; }
 
-    /** get ReferencedImageSequence (0008,1140)
-     *  @return reference to sequence element
-     */
-    DRTReferencedImageSequence &getReferencedImageSequence()
-        { return ReferencedImageSequence; }
-
-    /** get ReferencedImageSequence (0008,1140)
-     *  @return const reference to sequence element
-     */
-    const DRTReferencedImageSequence &getReferencedImageSequence() const
-        { return ReferencedImageSequence; }
-
     /** get ReferencedInstanceSequence (0008,114a)
      *  @return reference to sequence element
      */
@@ -2410,17 +2578,41 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const
         { return SeriesDescriptionCodeSequence; }
 
-    /** get SourceImageSequence (0008,2112)
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
      *  @return reference to sequence element
      */
-    DRTSourceImageSequence &getSourceImageSequence()
-        { return SourceImageSequence; }
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
 
-    /** get SourceImageSequence (0008,2112)
+    /** get StrainStockSequence (0010,0216)
      *  @return const reference to sequence element
      */
-    const DRTSourceImageSequence &getSourceImageSequence() const
-        { return SourceImageSequence; }
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
 
     /** get StructureSetROISequence (3006,0020)
      *  @return reference to sequence element
@@ -2446,6 +2638,18 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const
         { return StudiesContainingOtherReferencedInstancesSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
   // --- set DICOM attribute values ---
 
     /** set AccessionNumber (0008,0050)
@@ -2504,6 +2708,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set AuthorizationEquipmentCertificationNumber (0100,0426)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -2644,6 +2855,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setClinicalTrialTimePointID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set ColorSpace (0028,2002)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setColorSpace(const OFString &value, const OFBool check = OFTrue);
+
     /** set Columns (0028,0011)
      *  @param  value  value to be set (should be valid for this VR)
      *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -2714,13 +2932,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue);
 
-    /** set DerivationDescription (0008,2111)
-     *  @param  value  value to be set (single value only) or "" for no value
-     *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
-     *  @return status, EC_Normal if successful, an error code otherwise
-     */
-    virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue);
-
     /** set DeviceSerialNumber (0018,1000)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -2945,6 +3156,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setLargestImagePixelValue(const Uint16 value, const unsigned long pos = 0);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -2987,6 +3205,27 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -3127,6 +3366,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -3134,6 +3380,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -3141,6 +3394,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -3155,6 +3415,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -3211,6 +3478,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientWeight (0010,1030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -3330,6 +3604,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set PresentationLUTShape (2050,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -3575,6 +3856,13 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setSmallestImagePixelValue(const Uint16 value, const unsigned long pos = 0);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -3617,6 +3905,27 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
      */
     virtual OFCondition setStereoPairsPresent(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StructureSetDate (3006,0008)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -3744,6 +4053,12 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -3774,6 +4089,16 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -3786,6 +4111,10 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -3861,8 +4190,26 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -3907,6 +4254,8 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -3964,6 +4313,8 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -3994,18 +4345,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DcmTime AcquisitionTime;
     /// AcquisitionDateTime (0008,002a) vr=DT, vm=1, type=3
     DcmDateTime AcquisitionDateTime;
-    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
-    DRTReferencedImageSequence ReferencedImageSequence;
-    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
-    DcmShortText DerivationDescription;
-    // DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
-    // - also defined in: RTDoseModule
-    // DRTDerivationCodeSequence DerivationCodeSequence;
-    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
-    DRTSourceImageSequence SourceImageSequence;
-    // ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
-    // - also defined in: RTDoseModule
-    // DRTReferencedInstanceSequence ReferencedInstanceSequence;
     /// ImagesInAcquisition (0020,1002) vr=IS, vm=1, type=3
     DcmIntegerString ImagesInAcquisition;
     /// ImageComments (0020,4000) vr=LT, vm=1, type=3
@@ -4068,8 +4407,6 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     // PixelRepresentation (0028,0103) vr=US, vm=1, type=1
     // - also defined in: RTDoseModule
     // DcmUnsignedShort PixelRepresentation;
-    /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C
-    DcmPixelData PixelData;
     /// PlanarConfiguration (0028,0006) vr=US, vm=1, type=1C
     DcmUnsignedShort PlanarConfiguration;
     /// PixelAspectRatio (0028,0034) vr=IS, vm=2, type=1C
@@ -4092,6 +4429,10 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DcmOtherByteOtherWord BluePaletteColorLookupTableData;
     /// ICCProfile (0028,2000) vr=OB, vm=1, type=3
     DcmOtherByteOtherWord ICCProfile;
+    /// ColorSpace (0028,2002) vr=CS, vm=1, type=3
+    DcmCodeString ColorSpace;
+    /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C
+    DcmPixelData PixelData;
     /// PixelDataProviderURL (0028,7fe0) vr=UR, vm=1, type=1C
     DcmUniversalResourceIdentifierOrLocator PixelDataProviderURL;
     /// PixelPaddingRangeLimit (0028,0121) vr=US/SS, vm=1, type=1C
@@ -4201,10 +4542,8 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     /// TissueHeterogeneityCorrection (3004,0014) vr=CS, vm=1-3, type=3
     DcmCodeString TissueHeterogeneityCorrection;
     /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
-    /// - also defined in: GeneralImageModule
     DRTDerivationCodeSequence DerivationCodeSequence;
     /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
-    /// - also defined in: GeneralImageModule
     DRTReferencedInstanceSequence ReferencedInstanceSequence;
 
     // --- RTDVHModule (U) ---
@@ -4272,6 +4611,10 @@ class DCMTK_DCMRT_EXPORT DRTDoseIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/drtimage.h b/dcmrt/include/dcmtk/dcmrt/drtimage.h
index 3b7b154..1edb0e5 100644
--- a/dcmrt/include/dcmtk/dcmrt/drtimage.h
+++ b/dcmrt/include/dcmtk/dcmrt/drtimage.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTImageIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,7 @@
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcbars.h"  // for ContrastBolusAdministrationRouteSequence
 #include "dcmtk/dcmrt/seq/drtbas.h"    // for ContrastBolusAgentSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
@@ -35,6 +36,7 @@
 #include "dcmtk/dcmrt/seq/drtes.h"     // for ExposureSequence
 #include "dcmtk/dcmrt/seq/drtfms.h"    // for FluenceMapSequence
 #include "dcmtk/dcmrt/seq/drtfes.h"    // for FrameExtractionSequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtiis.h"    // for IconImageSequence
 #include "dcmtk/dcmrt/seq/drtians.h"   // for IssuerOfAccessionNumberSequence
@@ -42,8 +44,10 @@
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtmls.h"    // for ModalityLUTSequence
 #include "dcmtk/dcmrt/seq/drtmacds.h"  // for MultiplexedAudioChannelsDescriptionCodeSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -69,7 +73,12 @@
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
 #include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtsins.h"   // for SourceInstanceSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 #include "dcmtk/dcmrt/seq/drtvls.h"    // for VOILUTSequence
 
 
@@ -186,6 +195,14 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFBool isFrameOfReferenceModulePresent(const OFBool complete = OFFalse);
 
+    /** check whether GeneralReferenceModule (U) is present.
+     *  By default, a module is reported as being present if at least one attribute
+     *  from this module has a non-empty value.
+     *  @param  complete  check for all mandatory attributes of this module if enabled
+     *  @return OFTrue if module is present, OFFalse otherwise
+     */
+    virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse);
+
     /** check whether ContrastBolusModule (C) is present.
      *  By default, a module is reported as being present if at least one attribute
      *  from this module has a non-empty value.
@@ -337,6 +354,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get ApprovalStatus (300e,0002)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -512,6 +536,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getClinicalTrialTimePointID(OFString &value, const signed long pos = 0) const;
 
+    /** get ColorSpace (0028,2002)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getColorSpace(OFString &value, const signed long pos = 0) const;
+
     /** get Columns (0028,0011)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1)
@@ -741,6 +772,27 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getEthnicGroup(OFString &value, const signed long pos = 0) const;
 
+    /** get ExposureTime (0018,1150)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getExposureTime(OFString &value, const signed long pos = 0) const;
+
+    /** get ExposureTime (0018,1150)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getExposureTime(Sint32 &value, const unsigned long pos = 0) const;
+
+    /** get ExposureTimeInms (0018,9328)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getExposureTimeInms(Float64 &value, const unsigned long pos = 0) const;
+
     /** get FractionNumber (3002,0029)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1039,6 +1091,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getLargestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1094,6 +1153,55 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
+    /** get MetersetExposure (3002,0032)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMetersetExposure(OFString &value, const signed long pos = 0) const;
+
+    /** get MetersetExposure (3002,0032)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMetersetExposure(Float64 &value, const unsigned long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1164,6 +1272,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1171,6 +1286,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1178,6 +1300,20 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1192,6 +1328,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1262,6 +1405,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientSupportAngle (300a,0122)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1423,6 +1573,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getPreferredPlaybackSequencing(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get PresentationLUTShape (2050,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1848,6 +2005,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getSmallestImagePixelValue(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1946,6 +2110,27 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition getStopTrim(Sint32 &value, const unsigned long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StudyDate (0008,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -2243,6 +2428,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContrastBolusAdministrationRouteSequence (0018,0014)
      *  @return reference to sequence element
      */
@@ -2387,6 +2584,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     const DRTFrameExtractionSequence &getFrameExtractionSequence() const
         { return FrameExtractionSequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -2471,6 +2680,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
     /** get ModalityLUTSequence (0028,3000)
      *  @return reference to sequence element
      */
@@ -2495,6 +2716,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     const DRTMultiplexedAudioChannelsDescriptionCodeSequence &getMultiplexedAudioChannelsDescriptionCodeSequence() const
         { return MultiplexedAudioChannelsDescriptionCodeSequence; }
 
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -2795,6 +3028,54 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     const DRTSourceImageSequence &getSourceImageSequence() const
         { return SourceImageSequence; }
 
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return reference to sequence element
+     */
+    DRTSourceInstanceSequence &getSourceInstanceSequence()
+        { return SourceInstanceSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceInstanceSequence &getSourceInstanceSequence() const
+        { return SourceInstanceSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return reference to sequence element
+     */
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
+
     /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200)
      *  @return reference to sequence element
      */
@@ -2807,6 +3088,18 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const
         { return StudiesContainingOtherReferencedInstancesSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
     /** get VOILUTSequence (0028,3010)
      *  @return reference to sequence element
      */
@@ -2884,6 +3177,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set ApprovalStatus (300e,0002)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -3045,6 +3345,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setClinicalTrialTimePointID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set ColorSpace (0028,2002)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setColorSpace(const OFString &value, const OFBool check = OFTrue);
+
     /** set Columns (0028,0011)
      *  @param  value  value to be set (should be valid for this VR)
      *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -3213,6 +3520,20 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setEthnicGroup(const OFString &value, const OFBool check = OFTrue);
 
+    /** set ExposureTime (0018,1150)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setExposureTime(const OFString &value, const OFBool check = OFTrue);
+
+    /** set ExposureTimeInms (0018,9328)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setExposureTimeInms(const Float64 value, const unsigned long pos = 0);
+
     /** set FractionNumber (3002,0029)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
@@ -3423,6 +3744,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setLargestImagePixelValue(const Uint16 value, const unsigned long pos = 0);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -3465,6 +3793,34 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MetersetExposure (3002,0032)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMetersetExposure(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -3528,6 +3884,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -3535,6 +3898,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -3542,6 +3912,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -3556,6 +3933,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -3619,6 +4003,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientSupportAngle (300a,0122)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -3759,6 +4150,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setPreferredPlaybackSequencing(const Uint16 value, const unsigned long pos = 0);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set PresentationLUTShape (2050,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -4095,6 +4493,13 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setSmallestImagePixelValue(const Uint16 value, const unsigned long pos = 0);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -4158,6 +4563,27 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
      */
     virtual OFCondition setStopTrim(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StudyDate (0008,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -4330,6 +4756,12 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -4360,6 +4792,16 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -4372,6 +4814,10 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -4447,8 +4893,26 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -4493,6 +4957,8 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -4550,6 +5016,8 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -4581,16 +5049,6 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmTime AcquisitionTime;
     /// AcquisitionDateTime (0008,002a) vr=DT, vm=1, type=3
     DcmDateTime AcquisitionDateTime;
-    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
-    DRTReferencedImageSequence ReferencedImageSequence;
-    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
-    DcmShortText DerivationDescription;
-    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
-    DRTDerivationCodeSequence DerivationCodeSequence;
-    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
-    DRTSourceImageSequence SourceImageSequence;
-    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
-    DRTReferencedInstanceSequence ReferencedInstanceSequence;
     /// ImagesInAcquisition (0020,1002) vr=IS, vm=1, type=3
     DcmIntegerString ImagesInAcquisition;
     /// ImageComments (0020,4000) vr=LT, vm=1, type=3
@@ -4616,6 +5074,21 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     /// RealWorldValueMappingSequence (0040,9096) vr=SQ, vm=1, type=3
     DRTRealWorldValueMappingSequence RealWorldValueMappingSequence;
 
+    // --- GeneralReferenceModule (U) ---
+
+    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
+    DRTReferencedImageSequence ReferencedImageSequence;
+    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
+    DRTReferencedInstanceSequence ReferencedInstanceSequence;
+    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
+    DcmShortText DerivationDescription;
+    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
+    DRTDerivationCodeSequence DerivationCodeSequence;
+    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
+    DRTSourceImageSequence SourceImageSequence;
+    /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3
+    DRTSourceInstanceSequence SourceInstanceSequence;
+
     // --- ImagePixelModule (M) ---
 
     // SamplesPerPixel (0028,0002) vr=US, vm=1, type=1
@@ -4640,8 +5113,6 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     // PixelRepresentation (0028,0103) vr=US, vm=1, type=1
     // - also defined in: RTImageModule
     // DcmUnsignedShort PixelRepresentation;
-    /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C
-    DcmPixelData PixelData;
     /// PlanarConfiguration (0028,0006) vr=US, vm=1, type=1C
     DcmUnsignedShort PlanarConfiguration;
     /// PixelAspectRatio (0028,0034) vr=IS, vm=2, type=1C
@@ -4664,6 +5135,10 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmOtherByteOtherWord BluePaletteColorLookupTableData;
     /// ICCProfile (0028,2000) vr=OB, vm=1, type=3
     DcmOtherByteOtherWord ICCProfile;
+    /// ColorSpace (0028,2002) vr=CS, vm=1, type=3
+    DcmCodeString ColorSpace;
+    /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C
+    DcmPixelData PixelData;
     /// PixelDataProviderURL (0028,7fe0) vr=UR, vm=1, type=1C
     DcmUniversalResourceIdentifierOrLocator PixelDataProviderURL;
     /// PixelPaddingRangeLimit (0028,0121) vr=US/SS, vm=1, type=1C
@@ -4840,6 +5315,12 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmDecimalString IsocenterPosition;
     /// PatientPosition (0018,5100) vr=CS, vm=1, type=1C
     DcmCodeString PatientPosition;
+    /// ExposureTime (0018,1150) vr=IS, vm=1, type=3
+    DcmIntegerString ExposureTime;
+    /// ExposureTimeInms (0018,9328) vr=FD, vm=1, type=3
+    DcmFloatingPointDouble ExposureTimeInms;
+    /// MetersetExposure (3002,0032) vr=DS, vm=1, type=3
+    DcmDecimalString MetersetExposure;
 
     // --- ModalityLUTModule (U) ---
 
@@ -4898,6 +5379,10 @@ class DCMTK_DCMRT_EXPORT DRTImageIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/drtionpl.h b/dcmrt/include/dcmtk/dcmrt/drtionpl.h
index 889397d..2f0f7a0 100644
--- a/dcmrt/include/dcmtk/dcmrt/drtionpl.h
+++ b/dcmrt/include/dcmtk/dcmrt/drtionpl.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonPlanIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,13 +23,16 @@
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
 #include "dcmtk/dcmrt/seq/drtcsas.h"   // for ConversionSourceAttributesSequence
 #include "dcmtk/dcmrt/seq/drtdimcs.h"  // for DeidentificationMethodCodeSequence
+#include "dcmtk/dcmrt/seq/drtdcs.h"    // for DerivationCodeSequence
 #include "dcmtk/dcmrt/seq/drtdss.h"    // for DigitalSignaturesSequence
 #include "dcmtk/dcmrt/seq/drtdrs.h"    // for DoseReferenceSequence
 #include "dcmtk/dcmrt/seq/drteas.h"    // for EncryptedAttributesSequence
 #include "dcmtk/dcmrt/seq/drtfgs.h"    // for FractionGroupSequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtibs.h"    // for IonBeamSequence
 #include "dcmtk/dcmrt/seq/drtitts.h"   // for IonToleranceTableSequence
@@ -38,6 +41,8 @@
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -51,6 +56,8 @@
 #include "dcmtk/dcmrt/seq/drtpcs.h"    // for ProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrppcs.h"  // for ReasonForPerformedProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrds.h"    // for ReferencedDoseSequence
+#include "dcmtk/dcmrt/seq/drtrims.h"   // for ReferencedImageSequence
+#include "dcmtk/dcmrt/seq/drtris.h"    // for ReferencedInstanceSequence
 #include "dcmtk/dcmrt/seq/drtrpphs.h"  // for ReferencedPatientPhotoSequence
 #include "dcmtk/dcmrt/seq/drtrps.h"    // for ReferencedPatientSequence
 #include "dcmtk/dcmrt/seq/drtrppss.h"  // for ReferencedPerformedProcedureStepSequence
@@ -62,7 +69,13 @@
 #include "dcmtk/dcmrt/seq/drtras.h"    // for RequestAttributesSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
+#include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtsins.h"   // for SourceInstanceSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 
 
 /** Interface class for RTIonPlanIOD
@@ -218,6 +231,14 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFBool isApprovalModulePresent(const OFBool complete = OFFalse);
 
+    /** check whether GeneralReferenceModule (U) is present.
+     *  By default, a module is reported as being present if at least one attribute
+     *  from this module has a non-empty value.
+     *  @param  complete  check for all mandatory attributes of this module if enabled
+     *  @return OFTrue if module is present, OFFalse otherwise
+     */
+    virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse);
+
     /** check whether CommonInstanceReferenceModule (U) is present.
      *  By default, a module is reported as being present if at least one attribute
      *  from this module has a non-empty value.
@@ -256,6 +277,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get ApprovalStatus (300e,0002)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -403,6 +431,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const;
 
+    /** get DerivationDescription (0008,2111)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const;
+
     /** get DeviceSerialNumber (0018,1000)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -417,6 +452,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getEthnicGroup(OFString &value, const signed long pos = 0) const;
 
+    /** get FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos = 0) const;
+
     /** get FrameOfReferenceUID (0020,0052)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -501,6 +543,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -522,6 +571,41 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -578,6 +662,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -585,6 +676,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -592,6 +690,20 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -606,6 +718,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -662,6 +781,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientWeight (0010,1030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -746,6 +872,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get PrescriptionDescription (300a,000e)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -956,6 +1089,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -991,6 +1131,27 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StudyDate (0008,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1116,6 +1277,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContributingEquipmentSequence (0018,a001)
      *  @return reference to sequence element
      */
@@ -1152,6 +1325,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const
         { return DeidentificationMethodCodeSequence; }
 
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return reference to sequence element
+     */
+    DRTDerivationCodeSequence &getDerivationCodeSequence()
+        { return DerivationCodeSequence; }
+
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return const reference to sequence element
+     */
+    const DRTDerivationCodeSequence &getDerivationCodeSequence() const
+        { return DerivationCodeSequence; }
+
     /** get DigitalSignaturesSequence (fffa,fffa)
      *  @return reference to sequence element
      */
@@ -1200,6 +1385,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTFractionGroupSequence &getFractionGroupSequence() const
         { return FractionGroupSequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -1296,6 +1493,30 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -1452,6 +1673,30 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTReferencedDoseSequence &getReferencedDoseSequence() const
         { return ReferencedDoseSequence; }
 
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return reference to sequence element
+     */
+    DRTReferencedImageSequence &getReferencedImageSequence()
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedImageSequence &getReferencedImageSequence() const
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return reference to sequence element
+     */
+    DRTReferencedInstanceSequence &getReferencedInstanceSequence()
+        { return ReferencedInstanceSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const
+        { return ReferencedInstanceSequence; }
+
     /** get ReferencedPatientPhotoSequence (0010,1100)
      *  @return reference to sequence element
      */
@@ -1584,6 +1829,66 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const
         { return SeriesDescriptionCodeSequence; }
 
+    /** get SourceImageSequence (0008,2112)
+     *  @return reference to sequence element
+     */
+    DRTSourceImageSequence &getSourceImageSequence()
+        { return SourceImageSequence; }
+
+    /** get SourceImageSequence (0008,2112)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceImageSequence &getSourceImageSequence() const
+        { return SourceImageSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return reference to sequence element
+     */
+    DRTSourceInstanceSequence &getSourceInstanceSequence()
+        { return SourceInstanceSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceInstanceSequence &getSourceInstanceSequence() const
+        { return SourceInstanceSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return reference to sequence element
+     */
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
+
     /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200)
      *  @return reference to sequence element
      */
@@ -1596,6 +1901,18 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const
         { return StudiesContainingOtherReferencedInstancesSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
   // --- set DICOM attribute values ---
 
     /** set AccessionNumber (0008,0050)
@@ -1626,6 +1943,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set ApprovalStatus (300e,0002)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1773,6 +2097,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue);
 
+    /** set DerivationDescription (0008,2111)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue);
+
     /** set DeviceSerialNumber (0018,1000)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1787,6 +2118,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setEthnicGroup(const OFString &value, const OFBool check = OFTrue);
 
+    /** set FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=16
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos = 0);
+
     /** set FrameOfReferenceUID (0020,0052)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -1864,6 +2202,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1885,6 +2230,27 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1941,6 +2307,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -1948,6 +2321,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -1955,6 +2335,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1969,6 +2356,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -2018,6 +2412,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientWeight (0010,1030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -2095,6 +2496,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set PrescriptionDescription (300a,000e)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
@@ -2298,6 +2706,13 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -2326,6 +2741,27 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
      */
     virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StudyDate (0008,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -2421,6 +2857,12 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -2451,6 +2893,16 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -2463,6 +2915,10 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -2538,8 +2994,26 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -2584,6 +3058,8 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -2641,6 +3117,8 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -2679,6 +3157,8 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DRTReferencedDoseSequence ReferencedDoseSequence;
     /// ReferencedRTPlanSequence (300c,0002) vr=SQ, vm=1, type=3
     DRTReferencedRTPlanSequenceInRTGeneralPlanModule ReferencedRTPlanSequence;
+    /// FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) vr=FD, vm=16, type=3
+    DcmFloatingPointDouble FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix;
 
     // --- RTPrescriptionModule (U) ---
 
@@ -2718,6 +3198,21 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     /// ReviewerName (300e,0008) vr=PN, vm=1, type=2C
     DcmPersonName ReviewerName;
 
+    // --- GeneralReferenceModule (U) ---
+
+    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
+    DRTReferencedImageSequence ReferencedImageSequence;
+    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
+    DRTReferencedInstanceSequence ReferencedInstanceSequence;
+    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
+    DcmShortText DerivationDescription;
+    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
+    DRTDerivationCodeSequence DerivationCodeSequence;
+    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
+    DRTSourceImageSequence SourceImageSequence;
+    /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3
+    DRTSourceInstanceSequence SourceInstanceSequence;
+
     // --- SOPCommonModule (M) ---
 
     /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1
@@ -2740,6 +3235,10 @@ class DCMTK_DCMRT_EXPORT DRTIonPlanIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/drtiontr.h b/dcmrt/include/dcmtk/dcmrt/drtiontr.h
index 546f92c..6a8c336 100644
--- a/dcmrt/include/dcmtk/dcmrt/drtiontr.h
+++ b/dcmrt/include/dcmtk/dcmrt/drtiontr.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonBeamsTreatmentRecordIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -24,19 +24,24 @@
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
 #include "dcmtk/dcmrt/seq/drtcsas.h"   // for ConversionSourceAttributesSequence
 #include "dcmtk/dcmrt/seq/drtdimcs.h"  // for DeidentificationMethodCodeSequence
+#include "dcmtk/dcmrt/seq/drtdcs.h"    // for DerivationCodeSequence
 #include "dcmtk/dcmrt/seq/drtdss.h"    // for DigitalSignaturesSequence
 #include "dcmtk/dcmrt/seq/drteas.h"    // for EncryptedAttributesSequence
 #include "dcmtk/dcmrt/seq/drtfgss.h"   // for FractionGroupSummarySequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtians.h"   // for IssuerOfAccessionNumberSequence
 #include "dcmtk/dcmrt/seq/drtiais.h"   // for IssuerOfAdmissionIDSequence
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtmdrs.h"   // for MeasuredDoseReferenceSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -49,6 +54,8 @@
 #include "dcmtk/dcmrt/seq/drtpdecs.h"  // for PrivateDataElementCharacteristicsSequence
 #include "dcmtk/dcmrt/seq/drtpcs.h"    // for ProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrppcs.h"  // for ReasonForPerformedProcedureCodeSequence
+#include "dcmtk/dcmrt/seq/drtrims.h"   // for ReferencedImageSequence
+#include "dcmtk/dcmrt/seq/drtris.h"    // for ReferencedInstanceSequence
 #include "dcmtk/dcmrt/seq/drtrpphs.h"  // for ReferencedPatientPhotoSequence
 #include "dcmtk/dcmrt/seq/drtrps.h"    // for ReferencedPatientSequence
 #include "dcmtk/dcmrt/seq/drtrppss.h"  // for ReferencedPerformedProcedureStepSequence
@@ -60,11 +67,17 @@
 #include "dcmtk/dcmrt/seq/drtras.h"    // for RequestAttributesSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
+#include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtsins.h"   // for SourceInstanceSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
 #include "dcmtk/dcmrt/seq/drttms0.h"   // for TreatmentMachineSequence
 #include "dcmtk/dcmrt/seq/drttsibs.h"  // for TreatmentSessionIonBeamSequence
 #include "dcmtk/dcmrt/seq/drttscds.h"  // for TreatmentSummaryCalculatedDoseReferenceSequence
 #include "dcmtk/dcmrt/seq/drttsmds.h"  // for TreatmentSummaryMeasuredDoseReferenceSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 
 
 /** Interface class for RTIonBeamsTreatmentRecordIOD
@@ -204,6 +217,14 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFBool isRTTreatmentSummaryRecordModulePresent(const OFBool complete = OFFalse);
 
+    /** check whether GeneralReferenceModule (U) is present.
+     *  By default, a module is reported as being present if at least one attribute
+     *  from this module has a non-empty value.
+     *  @param  complete  check for all mandatory attributes of this module if enabled
+     *  @return OFTrue if module is present, OFFalse otherwise
+     */
+    virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse);
+
     /** check whether CommonInstanceReferenceModule (U) is present.
      *  By default, a module is reported as being present if at least one attribute
      *  from this module has a non-empty value.
@@ -242,6 +263,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get AuthorizationEquipmentCertificationNumber (0100,0426)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -389,6 +417,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const;
 
+    /** get DerivationDescription (0008,2111)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const;
+
     /** get DeviceSerialNumber (0018,1000)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -487,6 +522,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -508,6 +550,41 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -585,6 +662,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -592,6 +676,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -599,6 +690,20 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -613,6 +718,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -669,6 +781,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientWeight (0010,1030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -739,6 +858,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getPixelPaddingValue(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get PrimaryDosimeterUnit (300a,00b3)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -900,6 +1026,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -935,6 +1068,27 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StudyDate (0008,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1079,6 +1233,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContributingEquipmentSequence (0018,a001)
      *  @return reference to sequence element
      */
@@ -1115,6 +1281,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const
         { return DeidentificationMethodCodeSequence; }
 
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return reference to sequence element
+     */
+    DRTDerivationCodeSequence &getDerivationCodeSequence()
+        { return DerivationCodeSequence; }
+
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return const reference to sequence element
+     */
+    const DRTDerivationCodeSequence &getDerivationCodeSequence() const
+        { return DerivationCodeSequence; }
+
     /** get DigitalSignaturesSequence (fffa,fffa)
      *  @return reference to sequence element
      */
@@ -1151,6 +1329,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTFractionGroupSummarySequence &getFractionGroupSummarySequence() const
         { return FractionGroupSummarySequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -1223,6 +1413,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
     /** get MeasuredDoseReferenceSequence (3008,0010)
      *  @return reference to sequence element
      */
@@ -1235,6 +1437,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTMeasuredDoseReferenceSequence &getMeasuredDoseReferenceSequence() const
         { return MeasuredDoseReferenceSequence; }
 
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -1379,6 +1593,30 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTReasonForPerformedProcedureCodeSequence &getReasonForPerformedProcedureCodeSequence() const
         { return ReasonForPerformedProcedureCodeSequence; }
 
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return reference to sequence element
+     */
+    DRTReferencedImageSequence &getReferencedImageSequence()
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedImageSequence &getReferencedImageSequence() const
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return reference to sequence element
+     */
+    DRTReferencedInstanceSequence &getReferencedInstanceSequence()
+        { return ReferencedInstanceSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const
+        { return ReferencedInstanceSequence; }
+
     /** get ReferencedPatientPhotoSequence (0010,1100)
      *  @return reference to sequence element
      */
@@ -1511,6 +1749,66 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const
         { return SeriesDescriptionCodeSequence; }
 
+    /** get SourceImageSequence (0008,2112)
+     *  @return reference to sequence element
+     */
+    DRTSourceImageSequence &getSourceImageSequence()
+        { return SourceImageSequence; }
+
+    /** get SourceImageSequence (0008,2112)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceImageSequence &getSourceImageSequence() const
+        { return SourceImageSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return reference to sequence element
+     */
+    DRTSourceInstanceSequence &getSourceInstanceSequence()
+        { return SourceInstanceSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceInstanceSequence &getSourceInstanceSequence() const
+        { return SourceInstanceSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return reference to sequence element
+     */
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
+
     /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200)
      *  @return reference to sequence element
      */
@@ -1571,6 +1869,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     const DRTTreatmentSummaryMeasuredDoseReferenceSequence &getTreatmentSummaryMeasuredDoseReferenceSequence() const
         { return TreatmentSummaryMeasuredDoseReferenceSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
   // --- set DICOM attribute values ---
 
     /** set AccessionNumber (0008,0050)
@@ -1601,6 +1911,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set AuthorizationEquipmentCertificationNumber (0100,0426)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1748,6 +2065,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue);
 
+    /** set DerivationDescription (0008,2111)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue);
+
     /** set DeviceSerialNumber (0018,1000)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1839,6 +2163,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1860,6 +2191,27 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1930,6 +2282,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -1937,6 +2296,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -1944,6 +2310,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1958,6 +2331,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -2007,6 +2387,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientWeight (0010,1030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -2070,6 +2457,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setPixelPaddingValue(const Uint16 value, const unsigned long pos = 0);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set PrimaryDosimeterUnit (300a,00b3)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -2217,6 +2611,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -2245,6 +2646,27 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
      */
     virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StudyDate (0008,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -2347,6 +2769,12 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -2377,6 +2805,16 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -2389,6 +2827,10 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -2473,8 +2915,26 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -2510,6 +2970,8 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -2560,6 +3022,8 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -2631,6 +3095,21 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     /// TreatmentSummaryCalculatedDoseReferenceSequence (3008,0050) vr=SQ, vm=1, type=3
     DRTTreatmentSummaryCalculatedDoseReferenceSequence TreatmentSummaryCalculatedDoseReferenceSequence;
 
+    // --- GeneralReferenceModule (U) ---
+
+    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
+    DRTReferencedImageSequence ReferencedImageSequence;
+    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
+    DRTReferencedInstanceSequence ReferencedInstanceSequence;
+    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
+    DcmShortText DerivationDescription;
+    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
+    DRTDerivationCodeSequence DerivationCodeSequence;
+    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
+    DRTSourceImageSequence SourceImageSequence;
+    /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3
+    DRTSourceInstanceSequence SourceInstanceSequence;
+
     // --- SOPCommonModule (M) ---
 
     /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1
@@ -2653,6 +3132,10 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamsTreatmentRecordIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/drtplan.h b/dcmrt/include/dcmtk/dcmrt/drtplan.h
index cc7ed76..78e907b 100644
--- a/dcmrt/include/dcmtk/dcmrt/drtplan.h
+++ b/dcmrt/include/dcmtk/dcmrt/drtplan.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPlanIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -25,19 +25,24 @@
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
 #include "dcmtk/dcmrt/seq/drtcsas.h"   // for ConversionSourceAttributesSequence
 #include "dcmtk/dcmrt/seq/drtdimcs.h"  // for DeidentificationMethodCodeSequence
+#include "dcmtk/dcmrt/seq/drtdcs.h"    // for DerivationCodeSequence
 #include "dcmtk/dcmrt/seq/drtdss.h"    // for DigitalSignaturesSequence
 #include "dcmtk/dcmrt/seq/drtdrs.h"    // for DoseReferenceSequence
 #include "dcmtk/dcmrt/seq/drteas.h"    // for EncryptedAttributesSequence
 #include "dcmtk/dcmrt/seq/drtfgs.h"    // for FractionGroupSequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtians.h"   // for IssuerOfAccessionNumberSequence
 #include "dcmtk/dcmrt/seq/drtiais.h"   // for IssuerOfAdmissionIDSequence
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -51,6 +56,8 @@
 #include "dcmtk/dcmrt/seq/drtpcs.h"    // for ProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrppcs.h"  // for ReasonForPerformedProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrds.h"    // for ReferencedDoseSequence
+#include "dcmtk/dcmrt/seq/drtrims.h"   // for ReferencedImageSequence
+#include "dcmtk/dcmrt/seq/drtris.h"    // for ReferencedInstanceSequence
 #include "dcmtk/dcmrt/seq/drtrpphs.h"  // for ReferencedPatientPhotoSequence
 #include "dcmtk/dcmrt/seq/drtrps.h"    // for ReferencedPatientSequence
 #include "dcmtk/dcmrt/seq/drtrppss.h"  // for ReferencedPerformedProcedureStepSequence
@@ -62,10 +69,16 @@
 #include "dcmtk/dcmrt/seq/drtras.h"    // for RequestAttributesSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
+#include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtsins.h"   // for SourceInstanceSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtss.h"     // for SourceSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
 #include "dcmtk/dcmrt/seq/drttts.h"    // for ToleranceTableSequence
 #include "dcmtk/dcmrt/seq/drttms9.h"   // for TreatmentMachineSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 
 
 /** Interface class for RTPlanIOD
@@ -237,6 +250,14 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFBool isApprovalModulePresent(const OFBool complete = OFFalse);
 
+    /** check whether GeneralReferenceModule (U) is present.
+     *  By default, a module is reported as being present if at least one attribute
+     *  from this module has a non-empty value.
+     *  @param  complete  check for all mandatory attributes of this module if enabled
+     *  @return OFTrue if module is present, OFFalse otherwise
+     */
+    virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse);
+
     /** check whether CommonInstanceReferenceModule (U) is present.
      *  By default, a module is reported as being present if at least one attribute
      *  from this module has a non-empty value.
@@ -275,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get ApprovalStatus (300e,0002)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -436,6 +464,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const;
 
+    /** get DerivationDescription (0008,2111)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const;
+
     /** get DeviceSerialNumber (0018,1000)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -450,6 +485,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getEthnicGroup(OFString &value, const signed long pos = 0) const;
 
+    /** get FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos = 0) const;
+
     /** get FrameOfReferenceUID (0020,0052)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -534,6 +576,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -555,6 +604,41 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -611,6 +695,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -618,6 +709,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -625,6 +723,20 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -639,6 +751,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -695,6 +814,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientWeight (0010,1030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -779,6 +905,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get PrescriptionDescription (300a,000e)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -989,6 +1122,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1024,6 +1164,27 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StudyDate (0008,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1173,6 +1334,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContributingEquipmentSequence (0018,a001)
      *  @return reference to sequence element
      */
@@ -1209,6 +1382,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const
         { return DeidentificationMethodCodeSequence; }
 
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return reference to sequence element
+     */
+    DRTDerivationCodeSequence &getDerivationCodeSequence()
+        { return DerivationCodeSequence; }
+
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return const reference to sequence element
+     */
+    const DRTDerivationCodeSequence &getDerivationCodeSequence() const
+        { return DerivationCodeSequence; }
+
     /** get DigitalSignaturesSequence (fffa,fffa)
      *  @return reference to sequence element
      */
@@ -1257,6 +1442,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTFractionGroupSequence &getFractionGroupSequence() const
         { return FractionGroupSequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -1329,6 +1526,30 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -1485,6 +1706,30 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTReferencedDoseSequence &getReferencedDoseSequence() const
         { return ReferencedDoseSequence; }
 
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return reference to sequence element
+     */
+    DRTReferencedImageSequence &getReferencedImageSequence()
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedImageSequence &getReferencedImageSequence() const
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return reference to sequence element
+     */
+    DRTReferencedInstanceSequence &getReferencedInstanceSequence()
+        { return ReferencedInstanceSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const
+        { return ReferencedInstanceSequence; }
+
     /** get ReferencedPatientPhotoSequence (0010,1100)
      *  @return reference to sequence element
      */
@@ -1617,6 +1862,42 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const
         { return SeriesDescriptionCodeSequence; }
 
+    /** get SourceImageSequence (0008,2112)
+     *  @return reference to sequence element
+     */
+    DRTSourceImageSequence &getSourceImageSequence()
+        { return SourceImageSequence; }
+
+    /** get SourceImageSequence (0008,2112)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceImageSequence &getSourceImageSequence() const
+        { return SourceImageSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return reference to sequence element
+     */
+    DRTSourceInstanceSequence &getSourceInstanceSequence()
+        { return SourceInstanceSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceInstanceSequence &getSourceInstanceSequence() const
+        { return SourceInstanceSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
     /** get SourceSequence (300a,0210)
      *  @return reference to sequence element
      */
@@ -1629,6 +1910,30 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTSourceSequence &getSourceSequence() const
         { return SourceSequence; }
 
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return reference to sequence element
+     */
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
+
     /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200)
      *  @return reference to sequence element
      */
@@ -1665,6 +1970,18 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     const DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule &getTreatmentMachineSequence() const
         { return TreatmentMachineSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
   // --- set DICOM attribute values ---
 
     /** set AccessionNumber (0008,0050)
@@ -1695,6 +2012,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set ApprovalStatus (300e,0002)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1856,6 +2180,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue);
 
+    /** set DerivationDescription (0008,2111)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue);
+
     /** set DeviceSerialNumber (0018,1000)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1870,6 +2201,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setEthnicGroup(const OFString &value, const OFBool check = OFTrue);
 
+    /** set FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=16
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos = 0);
+
     /** set FrameOfReferenceUID (0020,0052)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -1947,6 +2285,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1968,6 +2313,27 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -2024,6 +2390,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -2031,6 +2404,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -2038,6 +2418,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -2052,6 +2439,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -2101,6 +2495,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientWeight (0010,1030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -2178,6 +2579,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set PrescriptionDescription (300a,000e)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
@@ -2381,6 +2789,13 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -2409,6 +2824,27 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
      */
     virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StudyDate (0008,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -2504,6 +2940,12 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -2534,6 +2976,16 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -2546,6 +2998,10 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -2621,8 +3077,26 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -2667,6 +3141,8 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -2724,6 +3200,8 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -2762,6 +3240,8 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DRTReferencedDoseSequence ReferencedDoseSequence;
     /// ReferencedRTPlanSequence (300c,0002) vr=SQ, vm=1, type=3
     DRTReferencedRTPlanSequenceInRTGeneralPlanModule ReferencedRTPlanSequence;
+    /// FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix (0070,030b) vr=FD, vm=16, type=3
+    DcmFloatingPointDouble FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix;
 
     // --- RTPrescriptionModule (U) ---
 
@@ -2814,6 +3294,21 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     /// ReviewerName (300e,0008) vr=PN, vm=1, type=2C
     DcmPersonName ReviewerName;
 
+    // --- GeneralReferenceModule (U) ---
+
+    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
+    DRTReferencedImageSequence ReferencedImageSequence;
+    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
+    DRTReferencedInstanceSequence ReferencedInstanceSequence;
+    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
+    DcmShortText DerivationDescription;
+    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
+    DRTDerivationCodeSequence DerivationCodeSequence;
+    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
+    DRTSourceImageSequence SourceImageSequence;
+    /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3
+    DRTSourceInstanceSequence SourceInstanceSequence;
+
     // --- SOPCommonModule (M) ---
 
     /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1
@@ -2836,6 +3331,10 @@ class DCMTK_DCMRT_EXPORT DRTPlanIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/drtstrct.h b/dcmrt/include/dcmtk/dcmrt/drtstrct.h
index 21948f8..bd17bdd 100644
--- a/dcmrt/include/dcmtk/dcmrt/drtstrct.h
+++ b/dcmrt/include/dcmtk/dcmrt/drtstrct.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTStructureSetIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,17 +23,22 @@
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
 #include "dcmtk/dcmrt/seq/drtcsas.h"   // for ConversionSourceAttributesSequence
 #include "dcmtk/dcmrt/seq/drtdimcs.h"  // for DeidentificationMethodCodeSequence
+#include "dcmtk/dcmrt/seq/drtdcs.h"    // for DerivationCodeSequence
 #include "dcmtk/dcmrt/seq/drtdss.h"    // for DigitalSignaturesSequence
 #include "dcmtk/dcmrt/seq/drteas.h"    // for EncryptedAttributesSequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtians.h"   // for IssuerOfAccessionNumberSequence
 #include "dcmtk/dcmrt/seq/drtiais.h"   // for IssuerOfAdmissionIDSequence
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -49,6 +54,8 @@
 #include "dcmtk/dcmrt/seq/drtrros.h"   // for RTROIObservationsSequence
 #include "dcmtk/dcmrt/seq/drtrppcs.h"  // for ReasonForPerformedProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrfors.h"  // for ReferencedFrameOfReferenceSequence
+#include "dcmtk/dcmrt/seq/drtrims.h"   // for ReferencedImageSequence
+#include "dcmtk/dcmrt/seq/drtris.h"    // for ReferencedInstanceSequence
 #include "dcmtk/dcmrt/seq/drtrpphs.h"  // for ReferencedPatientPhotoSequence
 #include "dcmtk/dcmrt/seq/drtrps.h"    // for ReferencedPatientSequence
 #include "dcmtk/dcmrt/seq/drtrppss.h"  // for ReferencedPerformedProcedureStepSequence
@@ -58,8 +65,14 @@
 #include "dcmtk/dcmrt/seq/drtras.h"    // for RequestAttributesSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
+#include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtsins.h"   // for SourceInstanceSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtssrs.h"   // for StructureSetROISequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 
 
 /** Interface class for RTStructureSetIOD
@@ -183,6 +196,14 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFBool isApprovalModulePresent(const OFBool complete = OFFalse);
 
+    /** check whether GeneralReferenceModule (U) is present.
+     *  By default, a module is reported as being present if at least one attribute
+     *  from this module has a non-empty value.
+     *  @param  complete  check for all mandatory attributes of this module if enabled
+     *  @return OFTrue if module is present, OFFalse otherwise
+     */
+    virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse);
+
     /** check whether CommonInstanceReferenceModule (U) is present.
      *  By default, a module is reported as being present if at least one attribute
      *  from this module has a non-empty value.
@@ -221,6 +242,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get ApprovalStatus (300e,0002)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -368,6 +396,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const;
 
+    /** get DerivationDescription (0008,2111)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const;
+
     /** get DeviceSerialNumber (0018,1000)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -466,6 +501,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -487,6 +529,41 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -543,6 +620,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -550,6 +634,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -557,6 +648,20 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -571,6 +676,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -627,6 +739,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientWeight (0010,1030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -704,6 +823,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getPositionReferenceIndicator(OFString &value, const signed long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get QualityControlSubject (0010,0200)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -865,6 +991,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -900,6 +1033,27 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StructureSetDate (3006,0008)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -1046,6 +1200,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContributingEquipmentSequence (0018,a001)
      *  @return reference to sequence element
      */
@@ -1082,6 +1248,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const
         { return DeidentificationMethodCodeSequence; }
 
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return reference to sequence element
+     */
+    DRTDerivationCodeSequence &getDerivationCodeSequence()
+        { return DerivationCodeSequence; }
+
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return const reference to sequence element
+     */
+    const DRTDerivationCodeSequence &getDerivationCodeSequence() const
+        { return DerivationCodeSequence; }
+
     /** get DigitalSignaturesSequence (fffa,fffa)
      *  @return reference to sequence element
      */
@@ -1106,6 +1284,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTEncryptedAttributesSequence &getEncryptedAttributesSequence() const
         { return EncryptedAttributesSequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -1178,6 +1368,30 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -1358,6 +1572,30 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTReferencedFrameOfReferenceSequence &getReferencedFrameOfReferenceSequence() const
         { return ReferencedFrameOfReferenceSequence; }
 
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return reference to sequence element
+     */
+    DRTReferencedImageSequence &getReferencedImageSequence()
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedImageSequence &getReferencedImageSequence() const
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return reference to sequence element
+     */
+    DRTReferencedInstanceSequence &getReferencedInstanceSequence()
+        { return ReferencedInstanceSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const
+        { return ReferencedInstanceSequence; }
+
     /** get ReferencedPatientPhotoSequence (0010,1100)
      *  @return reference to sequence element
      */
@@ -1466,6 +1704,66 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const
         { return SeriesDescriptionCodeSequence; }
 
+    /** get SourceImageSequence (0008,2112)
+     *  @return reference to sequence element
+     */
+    DRTSourceImageSequence &getSourceImageSequence()
+        { return SourceImageSequence; }
+
+    /** get SourceImageSequence (0008,2112)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceImageSequence &getSourceImageSequence() const
+        { return SourceImageSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return reference to sequence element
+     */
+    DRTSourceInstanceSequence &getSourceInstanceSequence()
+        { return SourceInstanceSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceInstanceSequence &getSourceInstanceSequence() const
+        { return SourceInstanceSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return reference to sequence element
+     */
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
+
     /** get StructureSetROISequence (3006,0020)
      *  @return reference to sequence element
      */
@@ -1490,6 +1788,18 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     const DRTStudiesContainingOtherReferencedInstancesSequence &getStudiesContainingOtherReferencedInstancesSequence() const
         { return StudiesContainingOtherReferencedInstancesSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
   // --- set DICOM attribute values ---
 
     /** set AccessionNumber (0008,0050)
@@ -1520,6 +1830,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set ApprovalStatus (300e,0002)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1667,6 +1984,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue);
 
+    /** set DerivationDescription (0008,2111)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue);
+
     /** set DeviceSerialNumber (0018,1000)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1758,6 +2082,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1779,6 +2110,27 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1835,6 +2187,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -1842,6 +2201,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -1849,6 +2215,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1863,6 +2236,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1912,6 +2292,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientWeight (0010,1030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -1982,6 +2369,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setPositionReferenceIndicator(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set QualityControlSubject (0010,0200)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -2136,6 +2530,13 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -2164,6 +2565,27 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
      */
     virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StructureSetDate (3006,0008)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -2280,6 +2702,12 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -2310,6 +2738,16 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -2322,6 +2760,10 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -2397,8 +2839,26 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -2443,6 +2903,8 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -2493,6 +2955,8 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -2552,6 +3016,21 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     /// ReviewerName (300e,0008) vr=PN, vm=1, type=2C
     DcmPersonName ReviewerName;
 
+    // --- GeneralReferenceModule (U) ---
+
+    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
+    DRTReferencedImageSequence ReferencedImageSequence;
+    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
+    DRTReferencedInstanceSequence ReferencedInstanceSequence;
+    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
+    DcmShortText DerivationDescription;
+    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
+    DRTDerivationCodeSequence DerivationCodeSequence;
+    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
+    DRTSourceImageSequence SourceImageSequence;
+    /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3
+    DRTSourceInstanceSequence SourceInstanceSequence;
+
     // --- SOPCommonModule (M) ---
 
     /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1
@@ -2574,6 +3053,10 @@ class DCMTK_DCMRT_EXPORT DRTStructureSetIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/drttreat.h b/dcmrt/include/dcmtk/dcmrt/drttreat.h
index 5822e24..ba64bad 100644
--- a/dcmrt/include/dcmtk/dcmrt/drttreat.h
+++ b/dcmrt/include/dcmtk/dcmrt/drttreat.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTTreatmentSummaryRecordIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,18 +23,23 @@
 #include "dcmtk/dcmrt/seq/drtcsis.h"   // for CodingSchemeIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtcctus.h"  // for ConsentForClinicalTrialUseSequence
 #include "dcmtk/dcmrt/seq/drtcpis.h"   // for ConsultingPhysicianIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtcgis.h"   // for ContextGroupIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtces.h"    // for ContributingEquipmentSequence
 #include "dcmtk/dcmrt/seq/drtcsas.h"   // for ConversionSourceAttributesSequence
 #include "dcmtk/dcmrt/seq/drtdimcs.h"  // for DeidentificationMethodCodeSequence
+#include "dcmtk/dcmrt/seq/drtdcs.h"    // for DerivationCodeSequence
 #include "dcmtk/dcmrt/seq/drtdss.h"    // for DigitalSignaturesSequence
 #include "dcmtk/dcmrt/seq/drteas.h"    // for EncryptedAttributesSequence
 #include "dcmtk/dcmrt/seq/drtfgss.h"   // for FractionGroupSummarySequence
+#include "dcmtk/dcmrt/seq/drtgpis.h"   // for GroupOfPatientsIdentificationSequence
 #include "dcmtk/dcmrt/seq/drthsdrs.h"  // for HL7StructuredDocumentReferenceSequence
 #include "dcmtk/dcmrt/seq/drtians.h"   // for IssuerOfAccessionNumberSequence
 #include "dcmtk/dcmrt/seq/drtiais.h"   // for IssuerOfAdmissionIDSequence
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 #include "dcmtk/dcmrt/seq/drtiseis.h"  // for IssuerOfServiceEpisodeIDSequence
 #include "dcmtk/dcmrt/seq/drtmps.h"    // for MACParametersSequence
+#include "dcmtk/dcmrt/seq/drtmris.h"   // for MappingResourceIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 #include "dcmtk/dcmrt/seq/drtoas.h"    // for OriginalAttributesSequence
 #include "dcmtk/dcmrt/seq/drtopis.h"   // for OtherPatientIDsSequence
 #include "dcmtk/dcmrt/seq/drtpbcs.h"   // for PatientBreedCodeSequence
@@ -46,6 +51,8 @@
 #include "dcmtk/dcmrt/seq/drtpdecs.h"  // for PrivateDataElementCharacteristicsSequence
 #include "dcmtk/dcmrt/seq/drtpcs.h"    // for ProcedureCodeSequence
 #include "dcmtk/dcmrt/seq/drtrppcs.h"  // for ReasonForPerformedProcedureCodeSequence
+#include "dcmtk/dcmrt/seq/drtrims.h"   // for ReferencedImageSequence
+#include "dcmtk/dcmrt/seq/drtris.h"    // for ReferencedInstanceSequence
 #include "dcmtk/dcmrt/seq/drtrpphs.h"  // for ReferencedPatientPhotoSequence
 #include "dcmtk/dcmrt/seq/drtrps.h"    // for ReferencedPatientSequence
 #include "dcmtk/dcmrt/seq/drtrppss.h"  // for ReferencedPerformedProcedureStepSequence
@@ -57,9 +64,15 @@
 #include "dcmtk/dcmrt/seq/drtras.h"    // for RequestAttributesSequence
 #include "dcmtk/dcmrt/seq/drtrscs.h"   // for RequestingServiceCodeSequence
 #include "dcmtk/dcmrt/seq/drtsdcs.h"   // for SeriesDescriptionCodeSequence
+#include "dcmtk/dcmrt/seq/drtsis.h"    // for SourceImageSequence
+#include "dcmtk/dcmrt/seq/drtsins.h"   // for SourceInstanceSequence
+#include "dcmtk/dcmrt/seq/drtspgis.h"  // for SourcePatientGroupIdentificationSequence
+#include "dcmtk/dcmrt/seq/drtscs.h"    // for StrainCodeSequence
+#include "dcmtk/dcmrt/seq/drtsss.h"    // for StrainStockSequence
 #include "dcmtk/dcmrt/seq/drtscris.h"  // for StudiesContainingOtherReferencedInstancesSequence
 #include "dcmtk/dcmrt/seq/drttscds.h"  // for TreatmentSummaryCalculatedDoseReferenceSequence
 #include "dcmtk/dcmrt/seq/drttsmds.h"  // for TreatmentSummaryMeasuredDoseReferenceSequence
+#include "dcmtk/dcmrt/seq/drtudis.h"   // for UDISequence
 
 
 /** Interface class for RTTreatmentSummaryRecordIOD
@@ -167,6 +180,14 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFBool isClinicalTrialSeriesModulePresent(const OFBool complete = OFFalse);
 
+    /** check whether GeneralReferenceModule (U) is present.
+     *  By default, a module is reported as being present if at least one attribute
+     *  from this module has a non-empty value.
+     *  @param  complete  check for all mandatory attributes of this module if enabled
+     *  @return OFTrue if module is present, OFFalse otherwise
+     */
+    virtual OFBool isGeneralReferenceModulePresent(const OFBool complete = OFFalse);
+
     /** check whether CommonInstanceReferenceModule (U) is present.
      *  By default, a module is reported as being present if at least one attribute
      *  from this module has a non-empty value.
@@ -205,6 +226,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getAdmittingDiagnosesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get Allergies (0010,2110)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getAllergies(OFString &value, const signed long pos = 0) const;
+
     /** get AuthorizationEquipmentCertificationNumber (0100,0426)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -352,6 +380,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getDeidentificationMethod(OFString &value, const signed long pos = 0) const;
 
+    /** get DerivationDescription (0008,2111)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getDerivationDescription(OFString &value, const signed long pos = 0) const;
+
     /** get DeviceSerialNumber (0018,1000)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -450,6 +485,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getIssuerOfPatientID(OFString &value, const signed long pos = 0) const;
 
+    /** get LastMenstrualDate (0010,21d0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getLastMenstrualDate(OFString &value, const signed long pos = 0) const;
+
     /** get LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -471,6 +513,41 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredAPDimension (0010,1023)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredAPDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(OFString &value, const signed long pos = 0) const;
+
+    /** get MeasuredLateralDimension (0010,1024)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMeasuredLateralDimension(Float64 &value, const unsigned long pos = 0) const;
+
+    /** get MedicalAlerts (0010,2000)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getMedicalAlerts(OFString &value, const signed long pos = 0) const;
+
     /** get Modality (0008,0060)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -534,6 +611,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getPatientAge(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientAlternativeCalendar (0010,0035)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthDate (0010,0030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -541,6 +625,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getPatientBirthDate(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientBirthTime (0010,0032)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -548,6 +639,20 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getPatientBirthTime(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(OFString &value, const signed long pos = 0) const;
+
+    /** get PatientBodyMassIndex (0010,1022)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientBodyMassIndex(Float64 &value, const unsigned long pos = 0) const;
+
     /** get PatientBreedDescription (0010,2292)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -562,6 +667,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getPatientComments(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos = 0) const;
+
     /** get PatientID (0010,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -618,6 +730,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getPatientSpeciesDescription(OFString &value, const signed long pos = 0) const;
 
+    /** get PatientState (0038,0500)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPatientState(OFString &value, const signed long pos = 0) const;
+
     /** get PatientWeight (0010,1030)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -688,6 +807,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getPixelPaddingValue(Uint16 &value, const unsigned long pos = 0) const;
 
+    /** get PregnancyStatus (0010,21c0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1)
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getPregnancyStatus(Uint16 &value, const unsigned long pos = 0) const;
+
     /** get QualityControlSubject (0010,0200)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -828,6 +954,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getServiceEpisodeID(OFString &value, const signed long pos = 0) const;
 
+    /** get SmokingStatus (0010,21a0)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getSmokingStatus(OFString &value, const signed long pos = 0) const;
+
     /** get SoftwareVersions (0018,1020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -863,6 +996,27 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition getStationName(OFString &value, const signed long pos = 0) const;
 
+    /** get StrainAdditionalInformation (0010,0218)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainAdditionalInformation(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainDescription (0010,0212)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainDescription(OFString &value, const signed long pos = 0) const;
+
+    /** get StrainNomenclature (0010,0213)
+     *  @param  value  reference to variable in which the value should be stored
+     *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition getStrainNomenclature(OFString &value, const signed long pos = 0) const;
+
     /** get StudyDate (0008,0020)
      *  @param  value  reference to variable in which the value should be stored
      *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -995,6 +1149,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTConsultingPhysicianIdentificationSequence &getConsultingPhysicianIdentificationSequence() const
         { return ConsultingPhysicianIdentificationSequence; }
 
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return reference to sequence element
+     */
+    DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence()
+        { return ContextGroupIdentificationSequence; }
+
+    /** get ContextGroupIdentificationSequence (0008,0123)
+     *  @return const reference to sequence element
+     */
+    const DRTContextGroupIdentificationSequence &getContextGroupIdentificationSequence() const
+        { return ContextGroupIdentificationSequence; }
+
     /** get ContributingEquipmentSequence (0018,a001)
      *  @return reference to sequence element
      */
@@ -1031,6 +1197,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTDeidentificationMethodCodeSequence &getDeidentificationMethodCodeSequence() const
         { return DeidentificationMethodCodeSequence; }
 
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return reference to sequence element
+     */
+    DRTDerivationCodeSequence &getDerivationCodeSequence()
+        { return DerivationCodeSequence; }
+
+    /** get DerivationCodeSequence (0008,9215)
+     *  @return const reference to sequence element
+     */
+    const DRTDerivationCodeSequence &getDerivationCodeSequence() const
+        { return DerivationCodeSequence; }
+
     /** get DigitalSignaturesSequence (fffa,fffa)
      *  @return reference to sequence element
      */
@@ -1067,6 +1245,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTFractionGroupSummarySequence &getFractionGroupSummarySequence() const
         { return FractionGroupSummarySequence; }
 
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return reference to sequence element
+     */
+    DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence()
+        { return GroupOfPatientsIdentificationSequence; }
+
+    /** get GroupOfPatientsIdentificationSequence (0010,0027)
+     *  @return const reference to sequence element
+     */
+    const DRTGroupOfPatientsIdentificationSequence &getGroupOfPatientsIdentificationSequence() const
+        { return GroupOfPatientsIdentificationSequence; }
+
     /** get HL7StructuredDocumentReferenceSequence (0040,a390)
      *  @return reference to sequence element
      */
@@ -1139,6 +1329,30 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTMACParametersSequence &getMACParametersSequence() const
         { return MACParametersSequence; }
 
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return reference to sequence element
+     */
+    DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence()
+        { return MappingResourceIdentificationSequence; }
+
+    /** get MappingResourceIdentificationSequence (0008,0124)
+     *  @return const reference to sequence element
+     */
+    const DRTMappingResourceIdentificationSequence &getMappingResourceIdentificationSequence() const
+        { return MappingResourceIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return reference to sequence element
+     */
+    DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+        { return OperatorIdentificationSequence; }
+
+    /** get OperatorIdentificationSequence (0008,1072)
+     *  @return const reference to sequence element
+     */
+    const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+        { return OperatorIdentificationSequence; }
+
     /** get OriginalAttributesSequence (0400,0561)
      *  @return reference to sequence element
      */
@@ -1271,6 +1485,30 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTReasonForPerformedProcedureCodeSequence &getReasonForPerformedProcedureCodeSequence() const
         { return ReasonForPerformedProcedureCodeSequence; }
 
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return reference to sequence element
+     */
+    DRTReferencedImageSequence &getReferencedImageSequence()
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedImageSequence (0008,1140)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedImageSequence &getReferencedImageSequence() const
+        { return ReferencedImageSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return reference to sequence element
+     */
+    DRTReferencedInstanceSequence &getReferencedInstanceSequence()
+        { return ReferencedInstanceSequence; }
+
+    /** get ReferencedInstanceSequence (0008,114a)
+     *  @return const reference to sequence element
+     */
+    const DRTReferencedInstanceSequence &getReferencedInstanceSequence() const
+        { return ReferencedInstanceSequence; }
+
     /** get ReferencedPatientPhotoSequence (0010,1100)
      *  @return reference to sequence element
      */
@@ -1403,6 +1641,66 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTSeriesDescriptionCodeSequence &getSeriesDescriptionCodeSequence() const
         { return SeriesDescriptionCodeSequence; }
 
+    /** get SourceImageSequence (0008,2112)
+     *  @return reference to sequence element
+     */
+    DRTSourceImageSequence &getSourceImageSequence()
+        { return SourceImageSequence; }
+
+    /** get SourceImageSequence (0008,2112)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceImageSequence &getSourceImageSequence() const
+        { return SourceImageSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return reference to sequence element
+     */
+    DRTSourceInstanceSequence &getSourceInstanceSequence()
+        { return SourceInstanceSequence; }
+
+    /** get SourceInstanceSequence (0042,0013)
+     *  @return const reference to sequence element
+     */
+    const DRTSourceInstanceSequence &getSourceInstanceSequence() const
+        { return SourceInstanceSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return reference to sequence element
+     */
+    DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence()
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get SourcePatientGroupIdentificationSequence (0010,0026)
+     *  @return const reference to sequence element
+     */
+    const DRTSourcePatientGroupIdentificationSequence &getSourcePatientGroupIdentificationSequence() const
+        { return SourcePatientGroupIdentificationSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return reference to sequence element
+     */
+    DRTStrainCodeSequence &getStrainCodeSequence()
+        { return StrainCodeSequence; }
+
+    /** get StrainCodeSequence (0010,0219)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainCodeSequence &getStrainCodeSequence() const
+        { return StrainCodeSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return reference to sequence element
+     */
+    DRTStrainStockSequence &getStrainStockSequence()
+        { return StrainStockSequence; }
+
+    /** get StrainStockSequence (0010,0216)
+     *  @return const reference to sequence element
+     */
+    const DRTStrainStockSequence &getStrainStockSequence() const
+        { return StrainStockSequence; }
+
     /** get StudiesContainingOtherReferencedInstancesSequence (0008,1200)
      *  @return reference to sequence element
      */
@@ -1439,6 +1737,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     const DRTTreatmentSummaryMeasuredDoseReferenceSequence &getTreatmentSummaryMeasuredDoseReferenceSequence() const
         { return TreatmentSummaryMeasuredDoseReferenceSequence; }
 
+    /** get UDISequence (0018,100a)
+     *  @return reference to sequence element
+     */
+    DRTUDISequence &getUDISequence()
+        { return UDISequence; }
+
+    /** get UDISequence (0018,100a)
+     *  @return const reference to sequence element
+     */
+    const DRTUDISequence &getUDISequence() const
+        { return UDISequence; }
+
   // --- set DICOM attribute values ---
 
     /** set AccessionNumber (0008,0050)
@@ -1469,6 +1779,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setAdmittingDiagnosesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set Allergies (0010,2110)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setAllergies(const OFString &value, const OFBool check = OFTrue);
+
     /** set AuthorizationEquipmentCertificationNumber (0100,0426)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1616,6 +1933,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setDeidentificationMethod(const OFString &value, const OFBool check = OFTrue);
 
+    /** set DerivationDescription (0008,2111)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (ST) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setDerivationDescription(const OFString &value, const OFBool check = OFTrue);
+
     /** set DeviceSerialNumber (0018,1000)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1707,6 +2031,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setIssuerOfPatientID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set LastMenstrualDate (0010,21d0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setLastMenstrualDate(const OFString &value, const OFBool check = OFTrue);
+
     /** set LongitudinalTemporalInformationModified (0028,0303)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1728,6 +2059,27 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set MeasuredAPDimension (0010,1023)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredAPDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MeasuredLateralDimension (0010,1024)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMeasuredLateralDimension(const OFString &value, const OFBool check = OFTrue);
+
+    /** set MedicalAlerts (0010,2000)
+     *  @param  value  value to be set (possibly multi-valued) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setMedicalAlerts(const OFString &value, const OFBool check = OFTrue);
+
     /** set Modality (0008,0060)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -1791,6 +2143,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setPatientAge(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientAlternativeCalendar (0010,0035)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthDate (0010,0030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -1798,6 +2157,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setPatientBirthDate(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBirthDateInAlternativeCalendar (0010,0033)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBirthTime (0010,0032)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (TM) and VM (1) if enabled
@@ -1805,6 +2171,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setPatientBirthTime(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientBodyMassIndex (0010,1022)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientBodyMassIndex(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientBreedDescription (0010,2292)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1819,6 +2192,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setPatientComments(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientDeathDateInAlternativeCalendar (0010,0034)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientID (0010,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -1868,6 +2248,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setPatientSpeciesDescription(const OFString &value, const OFBool check = OFTrue);
 
+    /** set PatientState (0038,0500)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPatientState(const OFString &value, const OFBool check = OFTrue);
+
     /** set PatientWeight (0010,1030)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -1931,6 +2318,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setPixelPaddingValue(const Uint16 value, const unsigned long pos = 0);
 
+    /** set PregnancyStatus (0010,21c0)
+     *  @param  value  value to be set (should be valid for this VR)
+     *  @param  pos    index of the value to be set (0..vm-1), vm=1
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setPregnancyStatus(const Uint16 value, const unsigned long pos = 0);
+
     /** set QualityControlSubject (0010,0200)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
@@ -2064,6 +2458,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setServiceEpisodeID(const OFString &value, const OFBool check = OFTrue);
 
+    /** set SmokingStatus (0010,21a0)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setSmokingStatus(const OFString &value, const OFBool check = OFTrue);
+
     /** set SoftwareVersions (0018,1020)
      *  @param  value  value to be set (possibly multi-valued) or "" for no value
      *  @param  check  check 'value' for conformance with VR (LO) and VM (1-n) if enabled
@@ -2092,6 +2493,27 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
      */
     virtual OFCondition setStationName(const OFString &value, const OFBool check = OFTrue);
 
+    /** set StrainAdditionalInformation (0010,0218)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainAdditionalInformation(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainDescription (0010,0212)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainDescription(const OFString &value, const OFBool check = OFTrue);
+
+    /** set StrainNomenclature (0010,0213)
+     *  @param  value  value to be set (single value only) or "" for no value
+     *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+     *  @return status, EC_Normal if successful, an error code otherwise
+     */
+    virtual OFCondition setStrainNomenclature(const OFString &value, const OFBool check = OFTrue);
+
     /** set StudyDate (0008,0020)
      *  @param  value  value to be set (single value only) or "" for no value
      *  @param  check  check 'value' for conformance with VR (DA) and VM (1) if enabled
@@ -2194,6 +2616,12 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
     /// PatientBirthDate (0010,0030) vr=DA, vm=1, type=2
     DcmDate PatientBirthDate;
+    /// PatientBirthDateInAlternativeCalendar (0010,0033) vr=LO, vm=1, type=3
+    DcmLongString PatientBirthDateInAlternativeCalendar;
+    /// PatientDeathDateInAlternativeCalendar (0010,0034) vr=LO, vm=1, type=3
+    DcmLongString PatientDeathDateInAlternativeCalendar;
+    /// PatientAlternativeCalendar (0010,0035) vr=CS, vm=1, type=1C
+    DcmCodeString PatientAlternativeCalendar;
     /// PatientSex (0010,0040) vr=CS, vm=1, type=2
     DcmCodeString PatientSex;
     /// ReferencedPatientPhotoSequence (0010,1100) vr=SQ, vm=1, type=3
@@ -2224,6 +2652,16 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DRTPatientBreedCodeSequence PatientBreedCodeSequence;
     /// BreedRegistrationSequence (0010,2294) vr=SQ, vm=1, type=2C
     DRTBreedRegistrationSequence BreedRegistrationSequence;
+    /// StrainDescription (0010,0212) vr=UC, vm=1, type=3
+    DcmUnlimitedCharacters StrainDescription;
+    /// StrainNomenclature (0010,0213) vr=LO, vm=1, type=3
+    DcmLongString StrainNomenclature;
+    /// StrainCodeSequence (0010,0219) vr=SQ, vm=1, type=3
+    DRTStrainCodeSequence StrainCodeSequence;
+    /// StrainAdditionalInformation (0010,0218) vr=UT, vm=1, type=3
+    DcmUnlimitedText StrainAdditionalInformation;
+    /// StrainStockSequence (0010,0216) vr=SQ, vm=1, type=3
+    DRTStrainStockSequence StrainStockSequence;
     /// ResponsiblePerson (0010,2297) vr=PN, vm=1, type=2C
     DcmPersonName ResponsiblePerson;
     /// ResponsiblePersonRole (0010,2298) vr=CS, vm=1, type=1C
@@ -2236,6 +2674,10 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DcmLongString DeidentificationMethod;
     /// DeidentificationMethodCodeSequence (0012,0064) vr=SQ, vm=1, type=1C
     DRTDeidentificationMethodCodeSequence DeidentificationMethodCodeSequence;
+    /// SourcePatientGroupIdentificationSequence (0010,0026) vr=SQ, vm=1, type=3
+    DRTSourcePatientGroupIdentificationSequence SourcePatientGroupIdentificationSequence;
+    /// GroupOfPatientsIdentificationSequence (0010,0027) vr=SQ, vm=1, type=3
+    DRTGroupOfPatientsIdentificationSequence GroupOfPatientsIdentificationSequence;
 
     // --- ClinicalTrialSubjectModule (U) ---
 
@@ -2311,8 +2753,26 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DcmDecimalString PatientSize;
     /// PatientWeight (0010,1030) vr=DS, vm=1, type=3
     DcmDecimalString PatientWeight;
+    /// PatientBodyMassIndex (0010,1022) vr=DS, vm=1, type=3
+    DcmDecimalString PatientBodyMassIndex;
+    /// MeasuredAPDimension (0010,1023) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredAPDimension;
+    /// MeasuredLateralDimension (0010,1024) vr=DS, vm=1, type=3
+    DcmDecimalString MeasuredLateralDimension;
     /// PatientSizeCodeSequence (0010,1021) vr=SQ, vm=1, type=3
     DRTPatientSizeCodeSequence PatientSizeCodeSequence;
+    /// MedicalAlerts (0010,2000) vr=LO, vm=1-n, type=3
+    DcmLongString MedicalAlerts;
+    /// Allergies (0010,2110) vr=LO, vm=1-n, type=3
+    DcmLongString Allergies;
+    /// SmokingStatus (0010,21a0) vr=CS, vm=1, type=3
+    DcmCodeString SmokingStatus;
+    /// PregnancyStatus (0010,21c0) vr=US, vm=1, type=3
+    DcmUnsignedShort PregnancyStatus;
+    /// LastMenstrualDate (0010,21d0) vr=DA, vm=1, type=3
+    DcmDate LastMenstrualDate;
+    /// PatientState (0038,0500) vr=LO, vm=1, type=3
+    DcmLongString PatientState;
     /// Occupation (0010,2180) vr=SH, vm=1, type=3
     DcmShortString Occupation;
     /// AdditionalPatientHistory (0010,21b0) vr=LT, vm=1, type=3
@@ -2357,6 +2817,8 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DRTSeriesDescriptionCodeSequence SeriesDescriptionCodeSequence;
     /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
     DcmPersonName OperatorsName;
+    /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+    DRTOperatorIdentificationSequence OperatorIdentificationSequence;
     /// ReferencedPerformedProcedureStepSequence (0008,1111) vr=SQ, vm=1, type=3
     DRTReferencedPerformedProcedureStepSequence ReferencedPerformedProcedureStepSequence;
     /// RequestAttributesSequence (0040,0275) vr=SQ, vm=1, type=3
@@ -2407,6 +2869,8 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DcmLongString SoftwareVersions;
     /// GantryID (0018,1008) vr=LO, vm=1, type=3
     DcmLongString GantryID;
+    /// UDISequence (0018,100a) vr=SQ, vm=1, type=3
+    DRTUDISequence UDISequence;
     /// SpatialResolution (0018,1050) vr=DS, vm=1, type=3
     DcmDecimalString SpatialResolution;
     /// DateOfLastCalibration (0018,1200) vr=DA, vm=1-n, type=3
@@ -2447,6 +2911,21 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     /// TreatmentSummaryCalculatedDoseReferenceSequence (3008,0050) vr=SQ, vm=1, type=3
     DRTTreatmentSummaryCalculatedDoseReferenceSequence TreatmentSummaryCalculatedDoseReferenceSequence;
 
+    // --- GeneralReferenceModule (U) ---
+
+    /// ReferencedImageSequence (0008,1140) vr=SQ, vm=1, type=3
+    DRTReferencedImageSequence ReferencedImageSequence;
+    /// ReferencedInstanceSequence (0008,114a) vr=SQ, vm=1, type=3
+    DRTReferencedInstanceSequence ReferencedInstanceSequence;
+    /// DerivationDescription (0008,2111) vr=ST, vm=1, type=3
+    DcmShortText DerivationDescription;
+    /// DerivationCodeSequence (0008,9215) vr=SQ, vm=1, type=3
+    DRTDerivationCodeSequence DerivationCodeSequence;
+    /// SourceImageSequence (0008,2112) vr=SQ, vm=1, type=3
+    DRTSourceImageSequence SourceImageSequence;
+    /// SourceInstanceSequence (0042,0013) vr=SQ, vm=1, type=3
+    DRTSourceInstanceSequence SourceInstanceSequence;
+
     // --- SOPCommonModule (M) ---
 
     /// SOPClassUID (0008,0016) vr=UI, vm=1, type=1
@@ -2469,6 +2948,10 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSummaryRecordIOD
     DcmUniqueIdentifier OriginalSpecializedSOPClassUID;
     /// CodingSchemeIdentificationSequence (0008,0110) vr=SQ, vm=1, type=3
     DRTCodingSchemeIdentificationSequence CodingSchemeIdentificationSequence;
+    /// ContextGroupIdentificationSequence (0008,0123) vr=SQ, vm=1, type=3
+    DRTContextGroupIdentificationSequence ContextGroupIdentificationSequence;
+    /// MappingResourceIdentificationSequence (0008,0124) vr=SQ, vm=1, type=3
+    DRTMappingResourceIdentificationSequence MappingResourceIdentificationSequence;
     /// TimezoneOffsetFromUTC (0008,0201) vr=SH, vm=1, type=3
     DcmShortString TimezoneOffsetFromUTC;
     /// ContributingEquipmentSequence (0018,a001) vr=SQ, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h
index 271dfb2..de101be 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTAssigningAgencyOrDepartmentCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTAssigningAgencyOrDepartmentCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h
index 1221170..67afbb3 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTAdmittingDiagnosesCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTAdmittingDiagnosesCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtads.h b/dcmrt/include/dcmtk/dcmrt/seq/drtads.h
index bd799e3..1b81828 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtads.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtads.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTAdditionalDrugSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalDrugSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtafs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtafs.h
index af706b1..f5877ce 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtafs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtafs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTAssigningFacilitySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtags.h b/dcmrt/include/dcmtk/dcmrt/seq/drtags.h
index 9f9fa99..ec5614f 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtags.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtags.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTApplicatorGeometrySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h
index 4d404cf..69c5262 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTAssigningJurisdictionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTAssigningJurisdictionCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtas1.h
index c1d420a..88f4e04 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtas1.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtas1.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTApplicatorSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas5.h b/dcmrt/include/dcmtk/dcmrt/seq/drtas5.h
index a07e40e..d12b13b 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtas5.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtas5.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTApplicatorSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h
index 2ca82ef..0ad16c3 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTApplicatorSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtas7.h
index 743c951..7195c3c 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtas7.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtas7.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTApplicatorSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtass.h b/dcmrt/include/dcmtk/dcmrt/seq/drtass.h
index d6f9922..42d75e5 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtass.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtass.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTApplicationSetupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbads.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbads.h
index 6a9203b..72334b7 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbads.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbads.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBrachyAccessoryDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbas.h
index 6252502..161a5fc 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbas.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbas.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTContrastBolusAgentSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAgentSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h
index 0d01624..d7d0c7a 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBrachyControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h
index a516809..2a628d1 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBlockSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -229,6 +229,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule
          */
         OFCondition getSourceToBlockTrayDistance(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get TrayAccessoryCode (300a,0355)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getTrayAccessoryCode(OFString &value, const signed long pos = 0) const;
+
       // --- set DICOM attribute values ---
 
         /** set AccessoryCode (300a,00f9)
@@ -322,6 +329,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule
          */
         OFCondition setSourceToBlockTrayDistance(const OFString &value, const OFBool check = OFTrue);
 
+        /** set TrayAccessoryCode (300a,0355)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setTrayAccessoryCode(const OFString &value, const OFBool check = OFTrue);
+
       private:
 
         /// internal flag used to mark the empty default item
@@ -353,6 +367,8 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTBeamsModule
         DcmShortString MaterialID;
         /// SourceToBlockTrayDistance (300a,00f6) vr=DS, vm=1, type=2
         DcmDecimalString SourceToBlockTrayDistance;
+        /// TrayAccessoryCode (300a,0355) vr=LO, vm=1, type=3
+        DcmLongString TrayAccessoryCode;
 
     };
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h
index c0046f2..202e439 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBlockSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -215,6 +215,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule
          */
         OFCondition getSourceToBlockTrayDistance(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get TrayAccessoryCode (300a,0355)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getTrayAccessoryCode(OFString &value, const signed long pos = 0) const;
+
       // --- set DICOM attribute values ---
 
         /** set AccessoryCode (300a,00f9)
@@ -301,6 +308,13 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule
          */
         OFCondition setSourceToBlockTrayDistance(const OFString &value, const OFBool check = OFTrue);
 
+        /** set TrayAccessoryCode (300a,0355)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setTrayAccessoryCode(const OFString &value, const OFBool check = OFTrue);
+
       private:
 
         /// internal flag used to mark the empty default item
@@ -330,6 +344,8 @@ class DCMTK_DCMRT_EXPORT DRTBlockSequenceInRTImageModule
         DcmShortString MaterialID;
         /// SourceToBlockTrayDistance (300a,00f6) vr=DS, vm=1, type=2
         DcmDecimalString SourceToBlockTrayDistance;
+        /// TrayAccessoryCode (300a,0355) vr=LO, vm=1, type=3
+        DcmLongString TrayAccessoryCode;
 
     };
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h
index b6a15af..e820195 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamLimitingDeviceLeafPairsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h
index acadc81..ff6ce85 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamLimitingDevicePositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h
index 05d8c5a..f31b6da 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamLimitingDeviceSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h b/dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h
index e23c711..ddb7c22 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamLimitingDeviceSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h
index b3ca61b..36ee4f6 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamLimitingDeviceSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h
index 8cc3222..65c26f7 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamLimitingDeviceToleranceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h
index 52a1c54..691797a 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBreedRegistryCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTBreedRegistryCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h
index 1926e81..9b81efc 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBrachyReferencedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h
index bb5998f..241af41 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBreedRegistrationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbs.h
index a585e4d..56f003b 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbss.h
index 1ef3ef9..b1998ae 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBlockSlabSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h
index 0084c67..f6192d6 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTBeamDoseVerificationControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -111,12 +111,12 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence
          */
         OFCondition getAverageBeamDosePointSSD(Float32 &value, const unsigned long pos = 0) const;
 
-        /** get AverageBeamDosePointSourceToExternalContourSurfaceDistance (300a,0131)
+        /** get AverageBeamDosePointSourceToExternalContourDistance (300a,0131)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getAverageBeamDosePointSourceToExternalContourSurfaceDistance(Float32 &value, const unsigned long pos = 0) const;
+        OFCondition getAverageBeamDosePointSourceToExternalContourDistance(Float32 &value, const unsigned long pos = 0) const;
 
         /** get CumulativeMetersetWeight (300a,0134)
          *  @param  value  reference to variable in which the value should be stored
@@ -169,12 +169,12 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence
          */
         OFCondition setAverageBeamDosePointSSD(const Float32 value, const unsigned long pos = 0);
 
-        /** set AverageBeamDosePointSourceToExternalContourSurfaceDistance (300a,0131)
+        /** set AverageBeamDosePointSourceToExternalContourDistance (300a,0131)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setAverageBeamDosePointSourceToExternalContourSurfaceDistance(const Float32 value, const unsigned long pos = 0);
+        OFCondition setAverageBeamDosePointSourceToExternalContourDistance(const Float32 value, const unsigned long pos = 0);
 
         /** set CumulativeMetersetWeight (300a,0134)
          *  @param  value  value to be set (single value only) or "" for no value
@@ -201,8 +201,8 @@ class DCMTK_DCMRT_EXPORT DRTBeamDoseVerificationControlPointSequence
         DcmFloatingPointSingle AverageBeamDosePointEquivalentDepth;
         /// AverageBeamDosePointSSD (300a,008f) vr=FL, vm=1, type=2C
         DcmFloatingPointSingle AverageBeamDosePointSSD;
-        /// AverageBeamDosePointSourceToExternalContourSurfaceDistance (300a,0131) vr=FL, vm=1, type=3
-        DcmFloatingPointSingle AverageBeamDosePointSourceToExternalContourSurfaceDistance;
+        /// AverageBeamDosePointSourceToExternalContourDistance (300a,0131) vr=FL, vm=1, type=3
+        DcmFloatingPointSingle AverageBeamDosePointSourceToExternalContourDistance;
         /// CumulativeMetersetWeight (300a,0134) vr=DS, vm=1, type=1
         DcmDecimalString CumulativeMetersetWeight;
         /// ReferencedControlPointIndex (300c,00f0) vr=IS, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h
index b4a8b96..b57b6ce 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTContrastBolusAdministrationRouteSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -176,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -302,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -349,6 +363,8 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtccs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtccs.h
index dbc3c4f..633c090 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtccs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtccs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTConceptCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTConceptCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h
index d9546ee..d22d7ee 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTConsentForClinicalTrialUseSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h
index e03002a..e35b732 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTCalculatedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtces.h b/dcmrt/include/dcmtk/dcmrt/seq/drtces.h
index 4ff68b0..2f7cb4d 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtces.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtces.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTContributingEquipmentSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h
similarity index 82%
copy from dcmrt/include/dcmtk/dcmrt/seq/drtas6.h
copy to dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h
index 2ca82ef..e1f3590 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtas6.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h
@@ -1,19 +1,19 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTApplicatorSequenceInRTIonBeamsModule
+ *  Header file for class DRTContextGroupIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTAS6_H
-#define DRTAS6_H
+#ifndef DRTCGIS_H
+#define DRTCGIS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
@@ -21,9 +21,9 @@
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 
 
-/** Interface class for ApplicatorSequence (300a,0107) in RTIonBeamsModule
+/** Interface class for ContextGroupIdentificationSequence (0008,0123)
  */
-class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsModule
+class DCMTK_DCMRT_EXPORT DRTContextGroupIdentificationSequence
   : protected DRTTypes
 {
 
@@ -90,77 +90,77 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsModule
 
       // --- get DICOM attribute values ---
 
-        /** get AccessoryCode (300a,00f9)
+        /** get ContextGroupVersion (0008,0106)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getAccessoryCode(OFString &value, const signed long pos = 0) const;
+        OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const;
 
-        /** get ApplicatorDescription (300a,010a)
+        /** get ContextIdentifier (0008,010f)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getApplicatorDescription(OFString &value, const signed long pos = 0) const;
+        OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const;
 
-        /** get ApplicatorID (300a,0108)
+        /** get ContextUID (0008,0117)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getApplicatorID(OFString &value, const signed long pos = 0) const;
+        OFCondition getContextUID(OFString &value, const signed long pos = 0) const;
 
-        /** get ApplicatorType (300a,0109)
+        /** get MappingResource (0008,0105)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getApplicatorType(OFString &value, const signed long pos = 0) const;
+        OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
       // --- set DICOM attribute values ---
 
-        /** set AccessoryCode (300a,00f9)
+        /** set ContextGroupVersion (0008,0106)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setAccessoryCode(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue);
 
-        /** set ApplicatorDescription (300a,010a)
+        /** set ContextIdentifier (0008,010f)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setApplicatorDescription(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue);
 
-        /** set ApplicatorID (300a,0108)
+        /** set ContextUID (0008,0117)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setApplicatorID(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue);
 
-        /** set ApplicatorType (300a,0109)
+        /** set MappingResource (0008,0105)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setApplicatorType(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
       private:
 
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// AccessoryCode (300a,00f9) vr=LO, vm=1, type=3
-        DcmLongString AccessoryCode;
-        /// ApplicatorDescription (300a,010a) vr=LO, vm=1, type=3
-        DcmLongString ApplicatorDescription;
-        /// ApplicatorID (300a,0108) vr=SH, vm=1, type=1
-        DcmShortString ApplicatorID;
-        /// ApplicatorType (300a,0109) vr=CS, vm=1, type=1
-        DcmCodeString ApplicatorType;
+        /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1
+        DcmDateTime ContextGroupVersion;
+        /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=1
+        DcmCodeString ContextIdentifier;
+        /// ContextUID (0008,0117) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier ContextUID;
+        /// MappingResource (0008,0105) vr=CS, vm=1, type=1
+        DcmCodeString MappingResource;
 
     };
 
@@ -169,21 +169,21 @@ class DCMTK_DCMRT_EXPORT DRTApplicatorSequenceInRTIonBeamsModule
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTApplicatorSequenceInRTIonBeamsModule(const OFBool emptyDefaultSequence = OFFalse);
+    DRTContextGroupIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTApplicatorSequenceInRTIonBeamsModule(const DRTApplicatorSequenceInRTIonBeamsModule &copy);
+    DRTContextGroupIdentificationSequence(const DRTContextGroupIdentificationSequence &copy);
 
     /** destructor
      */
-    virtual ~DRTApplicatorSequenceInRTIonBeamsModule();
+    virtual ~DRTContextGroupIdentificationSequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTApplicatorSequenceInRTIonBeamsModule &operator=(const DRTApplicatorSequenceInRTIonBeamsModule &copy);
+    DRTContextGroupIdentificationSequence &operator=(const DRTContextGroupIdentificationSequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtchs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtchs.h
index a613817..ca3062e 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtchs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtchs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTChannelSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcims.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcims.h
index 014d4a4..e7f744e 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcims.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcims.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTContentItemModifierSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcis.h
index 2b6ca66..9f0e89c 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTContourImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h
index d2fe418..5332ae1 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTConceptNameCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTConceptNameCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcos.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcos.h
index b3165ac..b534a86 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcos.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcos.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTCompensatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -302,6 +302,13 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence
          */
         OFCondition getSourceToCompensatorTrayDistance(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get TrayAccessoryCode (300a,0355)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getTrayAccessoryCode(OFString &value, const signed long pos = 0) const;
+
       // --- set DICOM attribute values ---
 
         /** set AccessoryCode (300a,00f9)
@@ -423,6 +430,13 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence
          */
         OFCondition setSourceToCompensatorTrayDistance(const OFString &value, const OFBool check = OFTrue);
 
+        /** set TrayAccessoryCode (300a,0355)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setTrayAccessoryCode(const OFString &value, const OFBool check = OFTrue);
+
       private:
 
         /// internal flag used to mark the empty default item
@@ -462,6 +476,8 @@ class DCMTK_DCMRT_EXPORT DRTCompensatorSequence
         DcmDecimalString SourceToCompensatorDistance;
         /// SourceToCompensatorTrayDistance (300a,00e6) vr=DS, vm=1, type=2
         DcmDecimalString SourceToCompensatorTrayDistance;
+        /// TrayAccessoryCode (300a,0355) vr=LO, vm=1, type=3
+        DcmLongString TrayAccessoryCode;
 
     };
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h
index 2f27218..e0cac7b 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTCorrectedParameterSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h
index 76052a2..fd65c11 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTConsultingPhysicianIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcps.h
index 996ace1..b3b39d4 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcps.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcps.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcs.h
index 1e90545..08147c7 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTContourSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h
index e57aa0e..634e077 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTConversionSourceAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h
index 273d59e..3fdcbb1 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTChannelShieldSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h
index 279ba04..1b63a03 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTCodingSchemeIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtcss.h
index 5368bc5..f6f0fde 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtcss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTChannelSourceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTChannelSourceSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h
index 49f3811..d34a1c5 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDerivationCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTDerivationCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h
similarity index 76%
copy from dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h
copy to dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h
index d24f3e9..b765db6 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h
@@ -1,30 +1,29 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTROIContourSequence
+ *  Header file for class DRTDeliveredDepthDoseParametersSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTRCS_H
-#define DRTRCS_H
+#ifndef DRTDDDPS_H
+#define DRTDDDPS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
-#include "dcmtk/dcmrt/seq/drtcs.h"     // for ContourSequence
 
 
-/** Interface class for ROIContourSequence (3006,0039)
+/** Interface class for DeliveredDepthDoseParametersSequence (300a,0506)
  */
-class DCMTK_DCMRT_EXPORT DRTROIContourSequence
+class DCMTK_DCMRT_EXPORT DRTDeliveredDepthDoseParametersSequence
   : protected DRTTypes
 {
 
@@ -91,107 +90,93 @@ class DCMTK_DCMRT_EXPORT DRTROIContourSequence
 
       // --- get DICOM attribute values ---
 
-        /** get ROIDisplayColor (3006,002a)
+        /** get DeliveredDistalDepth (300a,0508)
          *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getROIDisplayColor(OFString &value, const signed long pos = 0) const;
+        OFCondition getDeliveredDistalDepth(Float32 &value, const unsigned long pos = 0) const;
 
-        /** get ROIDisplayColor (3006,002a)
+        /** get DeliveredDistalDepthFraction (300a,0507)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getROIDisplayColor(Sint32 &value, const unsigned long pos = 0) const;
+        OFCondition getDeliveredDistalDepthFraction(Float32 &value, const unsigned long pos = 0) const;
 
-        /** get RecommendedDisplayCIELabValue (0062,000d)
+        /** get DeliveredNominalRangeModulatedRegionDepths (300a,0510)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getRecommendedDisplayCIELabValue(Uint16 &value, const unsigned long pos = 0) const;
+        OFCondition getDeliveredNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos = 0) const;
 
-        /** get RecommendedDisplayGrayscaleValue (0062,000c)
+        /** get DeliveredNominalRangeModulationFractions (300a,0509)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getRecommendedDisplayGrayscaleValue(Uint16 &value, const unsigned long pos = 0) const;
+        OFCondition getDeliveredNominalRangeModulationFractions(Float32 &value, const unsigned long pos = 0) const;
 
-        /** get ReferencedROINumber (3006,0084)
+        /** get DeliveredReferenceDoseDefinition (300a,0511)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getReferencedROINumber(OFString &value, const signed long pos = 0) const;
+        OFCondition getDeliveredReferenceDoseDefinition(OFString &value, const signed long pos = 0) const;
 
-        /** get ReferencedROINumber (3006,0084)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1)
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getReferencedROINumber(Sint32 &value, const unsigned long pos = 0) const;
-
-      // --- get DICOM sequence attributes ---
-
-        /** get ContourSequence (3006,0040)
-         *  @return reference to sequence element
-         */
-        DRTContourSequence &getContourSequence()
-            { return ContourSequence; }
+      // --- set DICOM attribute values ---
 
-        /** get ContourSequence (3006,0040)
-         *  @return const reference to sequence element
+        /** set DeliveredDistalDepth (300a,0508)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1
+         *  @return status, EC_Normal if successful, an error code otherwise
          */
-        const DRTContourSequence &getContourSequence() const
-            { return ContourSequence; }
+        OFCondition setDeliveredDistalDepth(const Float32 value, const unsigned long pos = 0);
 
-      // --- set DICOM attribute values ---
-
-        /** set ROIDisplayColor (3006,002a)
-         *  @param  value  value to be set (possibly multi-valued) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (IS) and VM (3) if enabled
+        /** set DeliveredDistalDepthFraction (300a,0507)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setROIDisplayColor(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setDeliveredDistalDepthFraction(const Float32 value, const unsigned long pos = 0);
 
-        /** set RecommendedDisplayCIELabValue (0062,000d)
+        /** set DeliveredNominalRangeModulatedRegionDepths (300a,0510)
          *  @param  value  value to be set (should be valid for this VR)
-         *  @param  pos    index of the value to be set (0..vm-1), vm=3
+         *  @param  pos    index of the value to be set (0..vm-1), vm=2
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setRecommendedDisplayCIELabValue(const Uint16 value, const unsigned long pos = 0);
+        OFCondition setDeliveredNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos = 0);
 
-        /** set RecommendedDisplayGrayscaleValue (0062,000c)
+        /** set DeliveredNominalRangeModulationFractions (300a,0509)
          *  @param  value  value to be set (should be valid for this VR)
-         *  @param  pos    index of the value to be set (0..vm-1), vm=1
+         *  @param  pos    index of the value to be set (0..vm-1), vm=2
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setRecommendedDisplayGrayscaleValue(const Uint16 value, const unsigned long pos = 0);
+        OFCondition setDeliveredNominalRangeModulationFractions(const Float32 value, const unsigned long pos = 0);
 
-        /** set ReferencedROINumber (3006,0084)
+        /** set DeliveredReferenceDoseDefinition (300a,0511)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setReferencedROINumber(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setDeliveredReferenceDoseDefinition(const OFString &value, const OFBool check = OFTrue);
 
       private:
 
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// ContourSequence (3006,0040) vr=SQ, vm=1, type=3
-        DRTContourSequence ContourSequence;
-        /// ROIDisplayColor (3006,002a) vr=IS, vm=3, type=3
-        DcmIntegerString ROIDisplayColor;
-        /// RecommendedDisplayCIELabValue (0062,000d) vr=US, vm=3, type=3
-        DcmUnsignedShort RecommendedDisplayCIELabValue;
-        /// RecommendedDisplayGrayscaleValue (0062,000c) vr=US, vm=1, type=3
-        DcmUnsignedShort RecommendedDisplayGrayscaleValue;
-        /// ReferencedROINumber (3006,0084) vr=IS, vm=1, type=1
-        DcmIntegerString ReferencedROINumber;
+        /// DeliveredDistalDepth (300a,0508) vr=FL, vm=1, type=1
+        DcmFloatingPointSingle DeliveredDistalDepth;
+        /// DeliveredDistalDepthFraction (300a,0507) vr=FL, vm=1, type=1
+        DcmFloatingPointSingle DeliveredDistalDepthFraction;
+        /// DeliveredNominalRangeModulatedRegionDepths (300a,0510) vr=FL, vm=2, type=1C
+        DcmFloatingPointSingle DeliveredNominalRangeModulatedRegionDepths;
+        /// DeliveredNominalRangeModulationFractions (300a,0509) vr=FL, vm=2, type=1C
+        DcmFloatingPointSingle DeliveredNominalRangeModulationFractions;
+        /// DeliveredReferenceDoseDefinition (300a,0511) vr=CS, vm=1, type=1
+        DcmCodeString DeliveredReferenceDoseDefinition;
 
     };
 
@@ -200,21 +185,21 @@ class DCMTK_DCMRT_EXPORT DRTROIContourSequence
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTROIContourSequence(const OFBool emptyDefaultSequence = OFFalse);
+    DRTDeliveredDepthDoseParametersSequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTROIContourSequence(const DRTROIContourSequence &copy);
+    DRTDeliveredDepthDoseParametersSequence(const DRTDeliveredDepthDoseParametersSequence &copy);
 
     /** destructor
      */
-    virtual ~DRTROIContourSequence();
+    virtual ~DRTDeliveredDepthDoseParametersSequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTROIContourSequence &operator=(const DRTROIContourSequence &copy);
+    DRTDeliveredDepthDoseParametersSequence &operator=(const DRTDeliveredDepthDoseParametersSequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtddps.h
similarity index 77%
copy from dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h
copy to dcmrt/include/dcmtk/dcmrt/seq/drtddps.h
index 7476aaf..6179542 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtddps.h
@@ -1,19 +1,19 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTRangeShifterSettingsSequenceInRTIonBeamsModule
+ *  Header file for class DRTDepthDoseParametersSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTRSHS6_H
-#define DRTRSHS6_H
+#ifndef DRTDDPS_H
+#define DRTDDPS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
@@ -21,9 +21,9 @@
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 
 
-/** Interface class for RangeShifterSettingsSequence (300a,0360) in RTIonBeamsModule
+/** Interface class for DepthDoseParametersSequence (300a,0505)
  */
-class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsModule
+class DCMTK_DCMRT_EXPORT DRTDepthDoseParametersSequence
   : protected DRTTypes
 {
 
@@ -90,84 +90,93 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsModule
 
       // --- get DICOM attribute values ---
 
-        /** get IsocenterToRangeShifterDistance (300a,0364)
+        /** get DistalDepth (300a,0502)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getIsocenterToRangeShifterDistance(Float32 &value, const unsigned long pos = 0) const;
+        OFCondition getDistalDepth(Float32 &value, const unsigned long pos = 0) const;
 
-        /** get RangeShifterSetting (300a,0362)
+        /** get DistalDepthFraction (300a,0501)
          *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getRangeShifterSetting(OFString &value, const signed long pos = 0) const;
+        OFCondition getDistalDepthFraction(Float32 &value, const unsigned long pos = 0) const;
 
-        /** get RangeShifterWaterEquivalentThickness (300a,0366)
+        /** get NominalRangeModulatedRegionDepths (300a,0504)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getRangeShifterWaterEquivalentThickness(Float32 &value, const unsigned long pos = 0) const;
+        OFCondition getNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos = 0) const;
 
-        /** get ReferencedRangeShifterNumber (300c,0100)
+        /** get NominalRangeModulationFractions (300a,0503)
          *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getReferencedRangeShifterNumber(OFString &value, const signed long pos = 0) const;
+        OFCondition getNominalRangeModulationFractions(Float32 &value, const unsigned long pos = 0) const;
 
-        /** get ReferencedRangeShifterNumber (300c,0100)
+        /** get ReferenceDoseDefinition (300a,0512)
          *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1)
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getReferencedRangeShifterNumber(Sint32 &value, const unsigned long pos = 0) const;
+        OFCondition getReferenceDoseDefinition(OFString &value, const signed long pos = 0) const;
 
       // --- set DICOM attribute values ---
 
-        /** set IsocenterToRangeShifterDistance (300a,0364)
+        /** set DistalDepth (300a,0502)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setIsocenterToRangeShifterDistance(const Float32 value, const unsigned long pos = 0);
+        OFCondition setDistalDepth(const Float32 value, const unsigned long pos = 0);
 
-        /** set RangeShifterSetting (300a,0362)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+        /** set DistalDepthFraction (300a,0501)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setRangeShifterSetting(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setDistalDepthFraction(const Float32 value, const unsigned long pos = 0);
 
-        /** set RangeShifterWaterEquivalentThickness (300a,0366)
+        /** set NominalRangeModulatedRegionDepths (300a,0504)
          *  @param  value  value to be set (should be valid for this VR)
-         *  @param  pos    index of the value to be set (0..vm-1), vm=1
+         *  @param  pos    index of the value to be set (0..vm-1), vm=2
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos = 0);
+
+        /** set NominalRangeModulationFractions (300a,0503)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=2
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setRangeShifterWaterEquivalentThickness(const Float32 value, const unsigned long pos = 0);
+        OFCondition setNominalRangeModulationFractions(const Float32 value, const unsigned long pos = 0);
 
-        /** set ReferencedRangeShifterNumber (300c,0100)
+        /** set ReferenceDoseDefinition (300a,0512)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setReferencedRangeShifterNumber(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setReferenceDoseDefinition(const OFString &value, const OFBool check = OFTrue);
 
       private:
 
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// IsocenterToRangeShifterDistance (300a,0364) vr=FL, vm=1, type=3
-        DcmFloatingPointSingle IsocenterToRangeShifterDistance;
-        /// RangeShifterSetting (300a,0362) vr=LO, vm=1, type=1
-        DcmLongString RangeShifterSetting;
-        /// RangeShifterWaterEquivalentThickness (300a,0366) vr=FL, vm=1, type=3
-        DcmFloatingPointSingle RangeShifterWaterEquivalentThickness;
-        /// ReferencedRangeShifterNumber (300c,0100) vr=IS, vm=1, type=1
-        DcmIntegerString ReferencedRangeShifterNumber;
+        /// DistalDepth (300a,0502) vr=FL, vm=1, type=1
+        DcmFloatingPointSingle DistalDepth;
+        /// DistalDepthFraction (300a,0501) vr=FL, vm=1, type=1
+        DcmFloatingPointSingle DistalDepthFraction;
+        /// NominalRangeModulatedRegionDepths (300a,0504) vr=FL, vm=2, type=1C
+        DcmFloatingPointSingle NominalRangeModulatedRegionDepths;
+        /// NominalRangeModulationFractions (300a,0503) vr=FL, vm=2, type=1C
+        DcmFloatingPointSingle NominalRangeModulationFractions;
+        /// ReferenceDoseDefinition (300a,0512) vr=CS, vm=1, type=1
+        DcmCodeString ReferenceDoseDefinition;
 
     };
 
@@ -176,21 +185,21 @@ class DCMTK_DCMRT_EXPORT DRTRangeShifterSettingsSequenceInRTIonBeamsModule
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTRangeShifterSettingsSequenceInRTIonBeamsModule(const OFBool emptyDefaultSequence = OFFalse);
+    DRTDepthDoseParametersSequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTRangeShifterSettingsSequenceInRTIonBeamsModule(const DRTRangeShifterSettingsSequenceInRTIonBeamsModule &copy);
+    DRTDepthDoseParametersSequence(const DRTDepthDoseParametersSequence &copy);
 
     /** destructor
      */
-    virtual ~DRTRangeShifterSettingsSequenceInRTIonBeamsModule();
+    virtual ~DRTDepthDoseParametersSequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTRangeShifterSettingsSequenceInRTIonBeamsModule &operator=(const DRTRangeShifterSettingsSequenceInRTIonBeamsModule &copy);
+    DRTDepthDoseParametersSequence &operator=(const DRTDepthDoseParametersSequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdias.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdias.h
index 9e66cb6..9290e42 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtdias.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdias.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDeidentificationActionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h
index 40d30cb..764c642 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDeidentificationMethodCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTDeidentificationMethodCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h
index 9bca717..9382829 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDICOMMediaRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h
index ca2f907..a0d0221 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDICOMRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h
index 254a86f..7904dec 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtds.h
index c1c1a54..4f71ad9 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -273,6 +273,13 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -457,6 +464,13 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -522,6 +536,8 @@ class DCMTK_DCMRT_EXPORT DRTDeviceSequence
         DcmLongString ManufacturerModelName;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h
index 258b1b9..041a511 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDigitalSignaturePurposeCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTDigitalSignaturePurposeCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdss.h
index 6def9ee..b268672 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtdss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDigitalSignaturesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h
index ec4b5ce..36f66de 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDVHSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h
index 4bffe6d..183e669 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTDVHReferencedROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drteas.h b/dcmrt/include/dcmtk/dcmrt/seq/drteas.h
index ca2279e..e24f96d 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drteas.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drteas.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTEncryptedAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtecs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtecs.h
index 0bedc2c..0f62eeb 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtecs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtecs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTEquivalentCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -118,6 +118,48 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence
          */
         OFCondition getCodingSchemeVersion(OFString &value, const signed long pos = 0) const;
 
+        /** get ContextGroupExtensionCreatorUID (0008,010d)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupExtensionCreatorUID(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupExtensionFlag (0008,010b)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupExtensionFlag(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupLocalVersion (0008,0107)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupLocalVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextGroupVersion (0008,0106)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextGroupVersion(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextIdentifier (0008,010f)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextIdentifier(OFString &value, const signed long pos = 0) const;
+
+        /** get ContextUID (0008,0117)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getContextUID(OFString &value, const signed long pos = 0) const;
+
         /** get LongCodeValue (0008,0119)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -125,6 +167,27 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence
          */
         OFCondition getLongCodeValue(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResource (0008,0105)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
+        /** get MappingResourceUID (0008,0118)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const;
+
         /** get URNCodeValue (0008,0120)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -162,6 +225,48 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence
          */
         OFCondition setCodingSchemeVersion(const OFString &value, const OFBool check = OFTrue);
 
+        /** set ContextGroupExtensionCreatorUID (0008,010d)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupExtensionFlag (0008,010b)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupExtensionFlag(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupLocalVersion (0008,0107)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupLocalVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextGroupVersion (0008,0106)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DT) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextGroupVersion(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextIdentifier (0008,010f)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextIdentifier(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ContextUID (0008,0117)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setContextUID(const OFString &value, const OFBool check = OFTrue);
+
         /** set LongCodeValue (0008,0119)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
@@ -169,6 +274,27 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence
          */
         OFCondition setLongCodeValue(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResource (0008,0105)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
+        /** set MappingResourceUID (0008,0118)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue);
+
         /** set URNCodeValue (0008,0120)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UR) and VM (1) if enabled
@@ -189,8 +315,26 @@ class DCMTK_DCMRT_EXPORT DRTEquivalentCodeSequence
         DcmShortString CodingSchemeDesignator;
         /// CodingSchemeVersion (0008,0103) vr=SH, vm=1, type=1C
         DcmShortString CodingSchemeVersion;
+        /// ContextGroupExtensionCreatorUID (0008,010d) vr=UI, vm=1, type=1C
+        DcmUniqueIdentifier ContextGroupExtensionCreatorUID;
+        /// ContextGroupExtensionFlag (0008,010b) vr=CS, vm=1, type=3
+        DcmCodeString ContextGroupExtensionFlag;
+        /// ContextGroupLocalVersion (0008,0107) vr=DT, vm=1, type=1C
+        DcmDateTime ContextGroupLocalVersion;
+        /// ContextGroupVersion (0008,0106) vr=DT, vm=1, type=1C
+        DcmDateTime ContextGroupVersion;
+        /// ContextIdentifier (0008,010f) vr=CS, vm=1, type=3
+        DcmCodeString ContextIdentifier;
+        /// ContextUID (0008,0117) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier ContextUID;
         /// LongCodeValue (0008,0119) vr=UC, vm=1, type=1C
         DcmUnlimitedCharacters LongCodeValue;
+        /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
+        DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
+        /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
         DcmUniversalResourceIdentifierOrLocator URNCodeValue;
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtes.h b/dcmrt/include/dcmtk/dcmrt/seq/drtes.h
index 91d4851..3071b84 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtes.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtes.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTExposureSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfds.h
index 3958b4e..7ce7ecc 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtfds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTFixationDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfes.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfes.h
index c0b838a..9b9a497 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtfes.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfes.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTFrameExtractionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h
index 271ad22..c94f441 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTFractionGroupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h
index 2d51366..59a5551 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTFractionGroupSummarySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfms.h
index 8f86405..a780ad5 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtfms.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfms.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTFluenceMapSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h
index ae70ff5..9b6a168 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTFractionStatusSummarySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtgas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtgas.h
index 996eb8b..23c0279 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtgas.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtgas.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTGeneralAccessorySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h
similarity index 86%
copy from dcmrt/include/dcmtk/dcmrt/seq/drtopis.h
copy to dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h
index c1f068f..4ff3aae 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h
@@ -1,19 +1,19 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTOtherPatientIDsSequence
+ *  Header file for class DRTGroupOfPatientsIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTOPIS_H
-#define DRTOPIS_H
+#ifndef DRTGPIS_H
+#define DRTGPIS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
@@ -22,9 +22,9 @@
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 
 
-/** Interface class for OtherPatientIDsSequence (0010,1002)
+/** Interface class for GroupOfPatientsIdentificationSequence (0010,0027)
  */
-class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence
+class DCMTK_DCMRT_EXPORT DRTGroupOfPatientsIdentificationSequence
   : protected DRTTypes
 {
 
@@ -105,12 +105,19 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence
          */
         OFCondition getPatientID(OFString &value, const signed long pos = 0) const;
 
-        /** get TypeOfPatientID (0010,0022)
+        /** get PatientPosition (0018,5100)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getTypeOfPatientID(OFString &value, const signed long pos = 0) const;
+        OFCondition getPatientPosition(OFString &value, const signed long pos = 0) const;
+
+        /** get SubjectRelativePositionInImage (0010,0028)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getSubjectRelativePositionInImage(Uint16 &value, const unsigned long pos = 0) const;
 
       // --- get DICOM sequence attributes ---
 
@@ -142,12 +149,19 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence
          */
         OFCondition setPatientID(const OFString &value, const OFBool check = OFTrue);
 
-        /** set TypeOfPatientID (0010,0022)
+        /** set PatientPosition (0018,5100)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setTypeOfPatientID(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setPatientPosition(const OFString &value, const OFBool check = OFTrue);
+
+        /** set SubjectRelativePositionInImage (0010,0028)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=3
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setSubjectRelativePositionInImage(const Uint16 value, const unsigned long pos = 0);
 
       private:
 
@@ -160,8 +174,10 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence
         DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
         /// PatientID (0010,0020) vr=LO, vm=1, type=1
         DcmLongString PatientID;
-        /// TypeOfPatientID (0010,0022) vr=CS, vm=1, type=1
-        DcmCodeString TypeOfPatientID;
+        /// PatientPosition (0018,5100) vr=CS, vm=1, type=3
+        DcmCodeString PatientPosition;
+        /// SubjectRelativePositionInImage (0010,0028) vr=US, vm=3, type=3
+        DcmUnsignedShort SubjectRelativePositionInImage;
 
     };
 
@@ -170,21 +186,21 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTOtherPatientIDsSequence(const OFBool emptyDefaultSequence = OFFalse);
+    DRTGroupOfPatientsIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTOtherPatientIDsSequence(const DRTOtherPatientIDsSequence &copy);
+    DRTGroupOfPatientsIdentificationSequence(const DRTGroupOfPatientsIdentificationSequence &copy);
 
     /** destructor
      */
-    virtual ~DRTOtherPatientIDsSequence();
+    virtual ~DRTGroupOfPatientsIdentificationSequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTOtherPatientIDsSequence &operator=(const DRTOtherPatientIDsSequence &copy);
+    DRTGroupOfPatientsIdentificationSequence &operator=(const DRTGroupOfPatientsIdentificationSequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h
index 0b84aa3..a55b6b78 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTHL7StructuredDocumentReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h
index 3426c48..2bbbdf8 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIssuerOfAdmissionIDSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtians.h b/dcmrt/include/dcmtk/dcmrt/seq/drtians.h
index d3c22e6..89f22f0 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtians.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtians.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIssuerOfAccessionNumberSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h
index 253673f..9964a4a 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonBeamLimitingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtibls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtibls.h
index d1cf983..380f160 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtibls.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtibls.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonBlockSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtibs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtibs.h
index 105ab41..9bf0a82 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtibs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtibs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonBeamSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -20,6 +20,7 @@
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 #include "dcmtk/dcmrt/seq/drtas6.h"    // for ApplicatorSequence
+#include "dcmtk/dcmrt/seq/drtddps.h"   // for DepthDoseParametersSequence
 #include "dcmtk/dcmrt/seq/drtgas.h"    // for GeneralAccessorySequence
 #include "dcmtk/dcmrt/seq/drtiblds.h"  // for IonBeamLimitingDeviceSequence
 #include "dcmtk/dcmrt/seq/drtibls.h"   // for IonBlockSequence
@@ -160,6 +161,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
          */
         OFCondition getFinalCumulativeMetersetWeight(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get FixationEye (300a,0150)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getFixationEye(OFString &value, const signed long pos = 0) const;
+
         /** get FixationLightAzimuthalAngle (300a,0356)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
@@ -209,6 +217,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
          */
         OFCondition getManufacturerModelName(OFString &value, const signed long pos = 0) const;
 
+        /** get ModulatedScanModeType (300a,0309)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getModulatedScanModeType(OFString &value, const signed long pos = 0) const;
+
         /** get NumberOfBlocks (300a,00f0)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -482,6 +497,18 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
         const DRTApplicatorSequenceInRTIonBeamsModule &getApplicatorSequence() const
             { return ApplicatorSequence; }
 
+        /** get DepthDoseParametersSequence (300a,0505)
+         *  @return reference to sequence element
+         */
+        DRTDepthDoseParametersSequence &getDepthDoseParametersSequence()
+            { return DepthDoseParametersSequence; }
+
+        /** get DepthDoseParametersSequence (300a,0505)
+         *  @return const reference to sequence element
+         */
+        const DRTDepthDoseParametersSequence &getDepthDoseParametersSequence() const
+            { return DepthDoseParametersSequence; }
+
         /** get GeneralAccessorySequence (300a,0420)
          *  @return reference to sequence element
          */
@@ -682,6 +709,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
          */
         OFCondition setFinalCumulativeMetersetWeight(const OFString &value, const OFBool check = OFTrue);
 
+        /** set FixationEye (300a,0150)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setFixationEye(const OFString &value, const OFBool check = OFTrue);
+
         /** set FixationLightAzimuthalAngle (300a,0356)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -731,6 +765,13 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
          */
         OFCondition setManufacturerModelName(const OFString &value, const OFBool check = OFTrue);
 
+        /** set ModulatedScanModeType (300a,0309)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setModulatedScanModeType(const OFString &value, const OFBool check = OFTrue);
+
         /** set NumberOfBlocks (300a,00f0)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
@@ -921,10 +962,14 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
         DcmIntegerString BeamNumber;
         /// BeamType (300a,00c4) vr=CS, vm=1, type=1
         DcmCodeString BeamType;
+        /// DepthDoseParametersSequence (300a,0505) vr=SQ, vm=1, type=3
+        DRTDepthDoseParametersSequence DepthDoseParametersSequence;
         /// DeviceSerialNumber (0018,1000) vr=LO, vm=1, type=3
         DcmLongString DeviceSerialNumber;
         /// FinalCumulativeMetersetWeight (300a,010e) vr=DS, vm=1, type=1C
         DcmDecimalString FinalCumulativeMetersetWeight;
+        /// FixationEye (300a,0150) vr=CS, vm=1, type=3
+        DcmCodeString FixationEye;
         /// FixationLightAzimuthalAngle (300a,0356) vr=FL, vm=1, type=3
         DcmFloatingPointSingle FixationLightAzimuthalAngle;
         /// FixationLightPolarAngle (300a,0358) vr=FL, vm=1, type=3
@@ -953,6 +998,8 @@ class DCMTK_DCMRT_EXPORT DRTIonBeamSequence
         DcmLongString Manufacturer;
         /// ManufacturerModelName (0008,1090) vr=LO, vm=1, type=3
         DcmLongString ManufacturerModelName;
+        /// ModulatedScanModeType (300a,0309) vr=CS, vm=1, type=1C
+        DcmCodeString ModulatedScanModeType;
         /// NumberOfBlocks (300a,00f0) vr=IS, vm=1, type=1
         DcmIntegerString NumberOfBlocks;
         /// NumberOfBoli (300a,00ed) vr=IS, vm=1, type=1
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drticpds.h b/dcmrt/include/dcmtk/dcmrt/seq/drticpds.h
index 5cd017c..7a10877 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drticpds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drticpds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonControlPointDeliverySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -118,6 +118,20 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence
          */
         OFCondition getBeamLimitingDeviceRotationDirection(OFString &value, const signed long pos = 0) const;
 
+        /** get ChairHeadFramePosition (300a,0151)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getChairHeadFramePosition(OFString &value, const signed long pos = 0) const;
+
+        /** get ChairHeadFramePosition (300a,0151)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getChairHeadFramePosition(Float64 &value, const unsigned long pos = 0) const;
+
         /** get DeliveredMeterset (3008,0044)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -293,6 +307,27 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence
          */
         OFCondition getScanSpotPositionMap(Float32 &value, const unsigned long pos = 0) const;
 
+        /** get ScanSpotPrescribedIndices (300a,0391)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getScanSpotPrescribedIndices(OFString &value, const signed long pos = 0) const;
+
+        /** get ScanSpotPrescribedIndices (300a,0391)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getScanSpotPrescribedIndices(Sint32 &value, const unsigned long pos = 0) const;
+
+        /** get ScanSpotReordered (300a,0393)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getScanSpotReordered(OFString &value, const signed long pos = 0) const;
+
         /** get ScanSpotTuneID (300a,0390)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -514,6 +549,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence
          */
         OFCondition setBeamLimitingDeviceRotationDirection(const OFString &value, const OFBool check = OFTrue);
 
+        /** set ChairHeadFramePosition (300a,0151)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setChairHeadFramePosition(const OFString &value, const OFBool check = OFTrue);
+
         /** set DeliveredMeterset (3008,0044)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -633,6 +675,20 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence
          */
         OFCondition setScanSpotPositionMap(const Float32 value, const unsigned long pos = 0);
 
+        /** set ScanSpotPrescribedIndices (300a,0391)
+         *  @param  value  value to be set (possibly multi-valued) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (IS) and VM (1-n) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setScanSpotPrescribedIndices(const OFString &value, const OFBool check = OFTrue);
+
+        /** set ScanSpotReordered (300a,0393)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setScanSpotReordered(const OFString &value, const OFBool check = OFTrue);
+
         /** set ScanSpotTuneID (300a,0390)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
@@ -735,6 +791,8 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence
         DRTBeamLimitingDevicePositionSequence BeamLimitingDevicePositionSequence;
         /// BeamLimitingDeviceRotationDirection (300a,0121) vr=CS, vm=1, type=1C
         DcmCodeString BeamLimitingDeviceRotationDirection;
+        /// ChairHeadFramePosition (300a,0151) vr=DS, vm=1, type=3
+        DcmDecimalString ChairHeadFramePosition;
         /// CorrectedParameterSequence (3008,0068) vr=SQ, vm=1, type=3
         DRTCorrectedParameterSequence CorrectedParameterSequence;
         /// DeliveredMeterset (3008,0044) vr=DS, vm=1, type=1
@@ -781,6 +839,10 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointDeliverySequence
         DcmFloatingPointSingle ScanSpotMetersetsDelivered;
         /// ScanSpotPositionMap (300a,0394) vr=FL, vm=1-n, type=1C
         DcmFloatingPointSingle ScanSpotPositionMap;
+        /// ScanSpotPrescribedIndices (300a,0391) vr=IS, vm=1-n, type=1C
+        DcmIntegerString ScanSpotPrescribedIndices;
+        /// ScanSpotReordered (300a,0393) vr=CS, vm=1, type=3
+        DcmCodeString ScanSpotReordered;
         /// ScanSpotTuneID (300a,0390) vr=SH, vm=1, type=1C
         DcmShortString ScanSpotTuneID;
         /// ScanningSpotSize (300a,0398) vr=FL, vm=2, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drticps.h b/dcmrt/include/dcmtk/dcmrt/seq/drticps.h
index e13581a..7e846ae 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drticps.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drticps.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -117,6 +117,20 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence
          */
         OFCondition getBeamLimitingDeviceRotationDirection(OFString &value, const signed long pos = 0) const;
 
+        /** get ChairHeadFramePosition (300a,0151)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getChairHeadFramePosition(OFString &value, const signed long pos = 0) const;
+
+        /** get ChairHeadFramePosition (300a,0151)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getChairHeadFramePosition(Float64 &value, const unsigned long pos = 0) const;
+
         /** get ControlPointIndex (300a,0112)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -312,6 +326,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence
          */
         OFCondition getScanSpotPositionMap(Float32 &value, const unsigned long pos = 0) const;
 
+        /** get ScanSpotReorderingAllowed (300a,0395)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getScanSpotReorderingAllowed(OFString &value, const signed long pos = 0) const;
+
         /** get ScanSpotTuneID (300a,0390)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -513,6 +534,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence
          */
         OFCondition setBeamLimitingDeviceRotationDirection(const OFString &value, const OFBool check = OFTrue);
 
+        /** set ChairHeadFramePosition (300a,0151)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setChairHeadFramePosition(const OFString &value, const OFBool check = OFTrue);
+
         /** set ControlPointIndex (300a,0112)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
@@ -639,6 +667,13 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence
          */
         OFCondition setScanSpotPositionMap(const Float32 value, const unsigned long pos = 0);
 
+        /** set ScanSpotReorderingAllowed (300a,0395)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setScanSpotReorderingAllowed(const OFString &value, const OFBool check = OFTrue);
+
         /** set ScanSpotTuneID (300a,0390)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
@@ -727,6 +762,8 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence
         DRTBeamLimitingDevicePositionSequence BeamLimitingDevicePositionSequence;
         /// BeamLimitingDeviceRotationDirection (300a,0121) vr=CS, vm=1, type=1C
         DcmCodeString BeamLimitingDeviceRotationDirection;
+        /// ChairHeadFramePosition (300a,0151) vr=DS, vm=1, type=3
+        DcmDecimalString ChairHeadFramePosition;
         /// ControlPointIndex (300a,0112) vr=IS, vm=1, type=1
         DcmIntegerString ControlPointIndex;
         /// CumulativeMetersetWeight (300a,0134) vr=DS, vm=1, type=2
@@ -773,6 +810,8 @@ class DCMTK_DCMRT_EXPORT DRTIonControlPointSequence
         DcmFloatingPointSingle ScanSpotMetersetWeights;
         /// ScanSpotPositionMap (300a,0394) vr=FL, vm=1-n, type=1C
         DcmFloatingPointSingle ScanSpotPositionMap;
+        /// ScanSpotReorderingAllowed (300a,0395) vr=CS, vm=1, type=3
+        DcmCodeString ScanSpotReorderingAllowed;
         /// ScanSpotTuneID (300a,0390) vr=SH, vm=1, type=1C
         DcmShortString ScanSpotTuneID;
         /// ScanningSpotSize (300a,0398) vr=FL, vm=2, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtics.h
index 653883f..96f22ef 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtics.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtics.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTInstitutionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTInstitutionCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiis.h
index de08f19..90e4d65 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtiis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIconImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -118,6 +118,13 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence
          */
         OFCondition getBluePaletteColorLookupTableDescriptor(Uint16 &value, const unsigned long pos = 0) const;
 
+        /** get ColorSpace (0028,2002)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getColorSpace(OFString &value, const signed long pos = 0) const;
+
         /** get Columns (0028,0011)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
@@ -274,6 +281,13 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence
          */
         OFCondition setBluePaletteColorLookupTableDescriptor(const Uint16 value, const unsigned long pos = 0);
 
+        /** set ColorSpace (0028,2002)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setColorSpace(const OFString &value, const OFBool check = OFTrue);
+
         /** set Columns (0028,0011)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -392,6 +406,8 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence
         DcmOtherByteOtherWord BluePaletteColorLookupTableData;
         /// BluePaletteColorLookupTableDescriptor (0028,1103) vr=US/SS, vm=3, type=1C
         DcmUnsignedShort BluePaletteColorLookupTableDescriptor;
+        /// ColorSpace (0028,2002) vr=CS, vm=1, type=3
+        DcmCodeString ColorSpace;
         /// Columns (0028,0011) vr=US, vm=1, type=1
         DcmUnsignedShort Columns;
         /// GreenPaletteColorLookupTableData (0028,1202) vr=OW, vm=1, type=1C
@@ -408,7 +424,7 @@ class DCMTK_DCMRT_EXPORT DRTIconImageSequence
         DcmCodeString PhotometricInterpretation;
         /// PixelAspectRatio (0028,0034) vr=IS, vm=2, type=1C
         DcmIntegerString PixelAspectRatio;
-        /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1C
+        /// PixelData (7fe0,0010) vr=OB/OW, vm=1, type=1
         DcmPixelData PixelData;
         /// PixelRepresentation (0028,0103) vr=US, vm=1, type=1
         DcmUnsignedShort PixelRepresentation;
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h
index 60405a4..6b6b36d 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIssuerOfPatientIDQualifiersSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtircs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtircs.h
index 0cd3969..5eec2b3 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtircs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtircs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonRangeCompensatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h
index bc19b3e..45bb3eb 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIssuerOfServiceEpisodeIDSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtitts.h b/dcmrt/include/dcmtk/dcmrt/seq/drtitts.h
index 957209a..412c98f 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtitts.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtitts.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonToleranceTableSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -105,6 +105,48 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence
          */
         OFCondition getBeamLimitingDeviceAngleTolerance(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get ChairHeadFramePositionTolerance (300a,0153)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getChairHeadFramePositionTolerance(OFString &value, const signed long pos = 0) const;
+
+        /** get ChairHeadFramePositionTolerance (300a,0153)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getChairHeadFramePositionTolerance(Float64 &value, const unsigned long pos = 0) const;
+
+        /** get FixationLightAzimuthalAngleTolerance (300a,0154)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getFixationLightAzimuthalAngleTolerance(OFString &value, const signed long pos = 0) const;
+
+        /** get FixationLightAzimuthalAngleTolerance (300a,0154)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getFixationLightAzimuthalAngleTolerance(Float64 &value, const unsigned long pos = 0) const;
+
+        /** get FixationLightPolarAngleTolerance (300a,0155)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getFixationLightPolarAngleTolerance(OFString &value, const signed long pos = 0) const;
+
+        /** get FixationLightPolarAngleTolerance (300a,0155)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getFixationLightPolarAngleTolerance(Float64 &value, const unsigned long pos = 0) const;
+
         /** get GantryAngleTolerance (300a,0044)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -119,6 +161,20 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence
          */
         OFCondition getGantryAngleTolerance(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get HeadFixationAngleTolerance (300a,0152)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getHeadFixationAngleTolerance(OFString &value, const signed long pos = 0) const;
+
+        /** get HeadFixationAngleTolerance (300a,0152)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getHeadFixationAngleTolerance(Float64 &value, const unsigned long pos = 0) const;
+
         /** get PatientSupportAngleTolerance (300a,004c)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -240,6 +296,27 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence
          */
         OFCondition setBeamLimitingDeviceAngleTolerance(const OFString &value, const OFBool check = OFTrue);
 
+        /** set ChairHeadFramePositionTolerance (300a,0153)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setChairHeadFramePositionTolerance(const OFString &value, const OFBool check = OFTrue);
+
+        /** set FixationLightAzimuthalAngleTolerance (300a,0154)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setFixationLightAzimuthalAngleTolerance(const OFString &value, const OFBool check = OFTrue);
+
+        /** set FixationLightPolarAngleTolerance (300a,0155)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setFixationLightPolarAngleTolerance(const OFString &value, const OFBool check = OFTrue);
+
         /** set GantryAngleTolerance (300a,0044)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -247,6 +324,13 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence
          */
         OFCondition setGantryAngleTolerance(const OFString &value, const OFBool check = OFTrue);
 
+        /** set HeadFixationAngleTolerance (300a,0152)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setHeadFixationAngleTolerance(const OFString &value, const OFBool check = OFTrue);
+
         /** set PatientSupportAngleTolerance (300a,004c)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -319,8 +403,16 @@ class DCMTK_DCMRT_EXPORT DRTIonToleranceTableSequence
         DcmDecimalString BeamLimitingDeviceAngleTolerance;
         /// BeamLimitingDeviceToleranceSequence (300a,0048) vr=SQ, vm=1, type=3
         DRTBeamLimitingDeviceToleranceSequence BeamLimitingDeviceToleranceSequence;
+        /// ChairHeadFramePositionTolerance (300a,0153) vr=DS, vm=1, type=3
+        DcmDecimalString ChairHeadFramePositionTolerance;
+        /// FixationLightAzimuthalAngleTolerance (300a,0154) vr=DS, vm=1, type=3
+        DcmDecimalString FixationLightAzimuthalAngleTolerance;
+        /// FixationLightPolarAngleTolerance (300a,0155) vr=DS, vm=1, type=3
+        DcmDecimalString FixationLightPolarAngleTolerance;
         /// GantryAngleTolerance (300a,0044) vr=DS, vm=1, type=3
         DcmDecimalString GantryAngleTolerance;
+        /// HeadFixationAngleTolerance (300a,0152) vr=DS, vm=1, type=3
+        DcmDecimalString HeadFixationAngleTolerance;
         /// PatientSupportAngleTolerance (300a,004c) vr=DS, vm=1, type=3
         DcmDecimalString PatientSupportAngleTolerance;
         /// SnoutPositionTolerance (300a,004b) vr=FL, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h
index fb5df8b..841245b 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonWedgePositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h b/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h
index 5e4800c..e0bf71d 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTIonWedgeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h
index 0bd66a7..aebc3a4 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTLateralSpreadingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h
index 45ec9aa..c04e588 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h
index 4f57af6..696a95e 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h
index 9ebcc72..941ec5f 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTMultiplexedAudioChannelsDescriptionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmas.h
index 040061c..337a174 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtmas.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmas.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTModifiedAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h
index 4b6cd50..0f349ab 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTMeasuredDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmls.h
index 3fab93e..cd52606 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtmls.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmls.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTModalityLUTSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -153,13 +153,13 @@ class DCMTK_DCMRT_EXPORT DRTModalityLUTSequence
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// LUTData (0028,3006) vr=US/OW, vm=1-n, type=1C
+        /// LUTData (0028,3006) vr=US/OW, vm=1-n, type=1
         DcmOtherByteOtherWord LUTData;
-        /// LUTDescriptor (0028,3002) vr=US/SS, vm=3, type=1C
+        /// LUTDescriptor (0028,3002) vr=US/SS, vm=3, type=1
         DcmUnsignedShort LUTDescriptor;
         /// LUTExplanation (0028,3003) vr=LO, vm=1, type=3
         DcmLongString LUTExplanation;
-        /// ModalityLUTType (0028,3004) vr=LO, vm=1, type=1C
+        /// ModalityLUTType (0028,3004) vr=LO, vm=1, type=1
         DcmLongString ModalityLUTType;
 
     };
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmps.h
index 8cb09f2..1fa5667 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtmps.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmps.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTMACParametersSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmris.h
similarity index 84%
copy from dcmrt/include/dcmtk/dcmrt/seq/drtiais.h
copy to dcmrt/include/dcmtk/dcmrt/seq/drtmris.h
index 3426c48..8f1c50f 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtiais.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmris.h
@@ -1,19 +1,19 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTIssuerOfAdmissionIDSequence
+ *  Header file for class DRTMappingResourceIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTIAIS_H
-#define DRTIAIS_H
+#ifndef DRTMRIS_H
+#define DRTMRIS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
@@ -21,9 +21,9 @@
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 
 
-/** Interface class for IssuerOfAdmissionIDSequence (0038,0014)
+/** Interface class for MappingResourceIdentificationSequence (0008,0124)
  */
-class DCMTK_DCMRT_EXPORT DRTIssuerOfAdmissionIDSequence
+class DCMTK_DCMRT_EXPORT DRTMappingResourceIdentificationSequence
   : protected DRTTypes
 {
 
@@ -90,61 +90,61 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAdmissionIDSequence
 
       // --- get DICOM attribute values ---
 
-        /** get LocalNamespaceEntityID (0040,0031)
+        /** get MappingResource (0008,0105)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getLocalNamespaceEntityID(OFString &value, const signed long pos = 0) const;
+        OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
-        /** get UniversalEntityID (0040,0032)
+        /** get MappingResourceName (0008,0122)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getUniversalEntityID(OFString &value, const signed long pos = 0) const;
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
 
-        /** get UniversalEntityIDType (0040,0033)
+        /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getUniversalEntityIDType(OFString &value, const signed long pos = 0) const;
+        OFCondition getMappingResourceUID(OFString &value, const signed long pos = 0) const;
 
       // --- set DICOM attribute values ---
 
-        /** set LocalNamespaceEntityID (0040,0031)
+        /** set MappingResource (0008,0105)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setLocalNamespaceEntityID(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
-        /** set UniversalEntityID (0040,0032)
+        /** set MappingResourceName (0008,0122)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setUniversalEntityID(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
 
-        /** set UniversalEntityIDType (0040,0033)
+        /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setUniversalEntityIDType(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setMappingResourceUID(const OFString &value, const OFBool check = OFTrue);
 
       private:
 
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// LocalNamespaceEntityID (0040,0031) vr=UT, vm=1, type=1C
-        DcmUnlimitedText LocalNamespaceEntityID;
-        /// UniversalEntityID (0040,0032) vr=UT, vm=1, type=1C
-        DcmUnlimitedText UniversalEntityID;
-        /// UniversalEntityIDType (0040,0033) vr=CS, vm=1, type=1C
-        DcmCodeString UniversalEntityIDType;
+        /// MappingResource (0008,0105) vr=CS, vm=1, type=1
+        DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
+        /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
+        DcmUniqueIdentifier MappingResourceUID;
 
     };
 
@@ -153,21 +153,21 @@ class DCMTK_DCMRT_EXPORT DRTIssuerOfAdmissionIDSequence
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTIssuerOfAdmissionIDSequence(const OFBool emptyDefaultSequence = OFFalse);
+    DRTMappingResourceIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTIssuerOfAdmissionIDSequence(const DRTIssuerOfAdmissionIDSequence &copy);
+    DRTMappingResourceIdentificationSequence(const DRTMappingResourceIdentificationSequence &copy);
 
     /** destructor
      */
-    virtual ~DRTIssuerOfAdmissionIDSequence();
+    virtual ~DRTMappingResourceIdentificationSequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTIssuerOfAdmissionIDSequence &operator=(const DRTIssuerOfAdmissionIDSequence &copy);
+    DRTMappingResourceIdentificationSequence &operator=(const DRTMappingResourceIdentificationSequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmss.h
index 586f153..2cac77d 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtmss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTMotionSynchronizationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h
index 6f73d72..523f460 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTMeasurementUnitsCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTMeasurementUnitsCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtoas.h b/dcmrt/include/dcmtk/dcmrt/seq/drtoas.h
index b0de7e0..f6ca951 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtoas.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtoas.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTOriginalAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtois.h b/dcmrt/include/dcmtk/dcmrt/seq/drtois.h
index 68c33b9..78238b6 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtois.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtois.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTOperatorIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h
index c1f068f..471a183 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTOtherPatientIDsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtos.h b/dcmrt/include/dcmtk/dcmrt/seq/drtos.h
index eee419e..ec2edaa 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtos.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtos.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTOverrideSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -19,6 +19,7 @@
 
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
+#include "dcmtk/dcmrt/seq/drtois.h"    // for OperatorIdentificationSequence
 
 
 /** Interface class for OverrideSequence (3008,0060)
@@ -132,6 +133,20 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence
          */
         OFCondition getParameterSequencePointer(OFString &value, const signed long pos = 0) const;
 
+      // --- get DICOM sequence attributes ---
+
+        /** get OperatorIdentificationSequence (0008,1072)
+         *  @return reference to sequence element
+         */
+        DRTOperatorIdentificationSequence &getOperatorIdentificationSequence()
+            { return OperatorIdentificationSequence; }
+
+        /** get OperatorIdentificationSequence (0008,1072)
+         *  @return const reference to sequence element
+         */
+        const DRTOperatorIdentificationSequence &getOperatorIdentificationSequence() const
+            { return OperatorIdentificationSequence; }
+
       // --- set DICOM attribute values ---
 
         /** set OperatorsName (0008,1070)
@@ -174,6 +189,8 @@ class DCMTK_DCMRT_EXPORT DRTOverrideSequence
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
+        /// OperatorIdentificationSequence (0008,1072) vr=SQ, vm=1, type=3
+        DRTOperatorIdentificationSequence OperatorIdentificationSequence;
         /// OperatorsName (0008,1070) vr=PN, vm=1-n, type=2
         DcmPersonName OperatorsName;
         /// OverrideParameterPointer (3008,0062) vr=AT, vm=1, type=1
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h
index a044d02..193b509 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPatientBreedCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPatientBreedCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h
index 06942a6..1eea6c2 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTProcedureCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h
index db5baa5..5021cbe 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTProtocolContextSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h
index 7cbca8a..40d62df 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPrivateDataElementCharacteristicsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -20,6 +20,7 @@
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 #include "dcmtk/dcmrt/seq/drtdias.h"   // for DeidentificationActionSequence
+#include "dcmtk/dcmrt/seq/drtpdeds.h"  // for PrivateDataElementDefinitionSequence
 
 
 /** Interface class for PrivateDataElementCharacteristicsSequence (0008,0300)
@@ -133,6 +134,18 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence
         const DRTDeidentificationActionSequence &getDeidentificationActionSequence() const
             { return DeidentificationActionSequence; }
 
+        /** get PrivateDataElementDefinitionSequence (0008,0310)
+         *  @return reference to sequence element
+         */
+        DRTPrivateDataElementDefinitionSequence &getPrivateDataElementDefinitionSequence()
+            { return PrivateDataElementDefinitionSequence; }
+
+        /** get PrivateDataElementDefinitionSequence (0008,0310)
+         *  @return const reference to sequence element
+         */
+        const DRTPrivateDataElementDefinitionSequence &getPrivateDataElementDefinitionSequence() const
+            { return PrivateDataElementDefinitionSequence; }
+
       // --- set DICOM attribute values ---
 
         /** set BlockIdentifyingInformationStatus (0008,0303)
@@ -176,6 +189,8 @@ class DCMTK_DCMRT_EXPORT DRTPrivateDataElementCharacteristicsSequence
         DcmUnsignedShort NonidentifyingPrivateElements;
         /// PrivateCreatorReference (0008,0302) vr=LO, vm=1, type=1
         DcmLongString PrivateCreatorReference;
+        /// PrivateDataElementDefinitionSequence (0008,0310) vr=SQ, vm=1, type=3
+        DRTPrivateDataElementDefinitionSequence PrivateDataElementDefinitionSequence;
         /// PrivateGroupReference (0008,0301) vr=US, vm=1, type=1
         DcmUnsignedShort PrivateGroupReference;
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h
similarity index 72%
copy from dcmrt/include/dcmtk/dcmrt/seq/drtiws.h
copy to dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h
index 5e4800c..4cf4694 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtiws.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h
@@ -1,19 +1,19 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTIonWedgeSequence
+ *  Header file for class DRTPrivateDataElementDefinitionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTIWS_H
-#define DRTIWS_H
+#ifndef DRTPDEDS_H
+#define DRTPDEDS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
@@ -21,9 +21,9 @@
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 
 
-/** Interface class for IonWedgeSequence (300a,03aa)
+/** Interface class for PrivateDataElementDefinitionSequence (0008,0310)
  */
-class DCMTK_DCMRT_EXPORT DRTIonWedgeSequence
+class DCMTK_DCMRT_EXPORT DRTPrivateDataElementDefinitionSequence
   : protected DRTTypes
 {
 
@@ -90,146 +90,157 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgeSequence
 
       // --- get DICOM attribute values ---
 
-        /** get AccessoryCode (300a,00f9)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getAccessoryCode(OFString &value, const signed long pos = 0) const;
-
-        /** get IsocenterToWedgeTrayDistance (300a,00d9)
+        /** get PrivateDataElement (0008,0308)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getIsocenterToWedgeTrayDistance(Float32 &value, const unsigned long pos = 0) const;
+        OFCondition getPrivateDataElement(Uint16 &value, const unsigned long pos = 0) const;
 
-        /** get WedgeAngle (300a,00d5)
+        /** get PrivateDataElementDescription (0008,030e)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getWedgeAngle(OFString &value, const signed long pos = 0) const;
+        OFCondition getPrivateDataElementDescription(OFString &value, const signed long pos = 0) const;
 
-        /** get WedgeAngle (300a,00d5)
+        /** get PrivateDataElementEncoding (0008,030f)
          *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1)
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getWedgeAngle(Sint32 &value, const unsigned long pos = 0) const;
+        OFCondition getPrivateDataElementEncoding(OFString &value, const signed long pos = 0) const;
 
-        /** get WedgeID (300a,00d4)
+        /** get PrivateDataElementKeyword (0008,030d)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getWedgeID(OFString &value, const signed long pos = 0) const;
+        OFCondition getPrivateDataElementKeyword(OFString &value, const signed long pos = 0) const;
 
-        /** get WedgeNumber (300a,00d2)
+        /** get PrivateDataElementName (0008,030c)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getWedgeNumber(OFString &value, const signed long pos = 0) const;
+        OFCondition getPrivateDataElementName(OFString &value, const signed long pos = 0) const;
 
-        /** get WedgeNumber (300a,00d2)
+        /** get PrivateDataElementNumberOfItems (0008,030b)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getWedgeNumber(Sint32 &value, const unsigned long pos = 0) const;
+        OFCondition getPrivateDataElementNumberOfItems(Uint32 &value, const unsigned long pos = 0) const;
 
-        /** get WedgeOrientation (300a,00d8)
+        /** get PrivateDataElementValueMultiplicity (0008,0309)
          *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @param  pos    index of the value to get (0..vm-1)
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getWedgeOrientation(OFString &value, const signed long pos = 0) const;
+        OFCondition getPrivateDataElementValueMultiplicity(Uint32 &value, const unsigned long pos = 0) const;
 
-        /** get WedgeOrientation (300a,00d8)
+        /** get PrivateDataElementValueRepresentation (0008,030a)
          *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1)
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getWedgeOrientation(Float64 &value, const unsigned long pos = 0) const;
+        OFCondition getPrivateDataElementValueRepresentation(OFString &value, const signed long pos = 0) const;
 
-        /** get WedgeType (300a,00d3)
+        /** get RetrieveURI (0040,e010)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getWedgeType(OFString &value, const signed long pos = 0) const;
+        OFCondition getRetrieveURI(OFString &value, const signed long pos = 0) const;
 
       // --- set DICOM attribute values ---
 
-        /** set AccessoryCode (300a,00f9)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setAccessoryCode(const OFString &value, const OFBool check = OFTrue);
-
-        /** set IsocenterToWedgeTrayDistance (300a,00d9)
+        /** set PrivateDataElement (0008,0308)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setIsocenterToWedgeTrayDistance(const Float32 value, const unsigned long pos = 0);
+        OFCondition setPrivateDataElement(const Uint16 value, const unsigned long pos = 0);
 
-        /** set WedgeAngle (300a,00d5)
+        /** set PrivateDataElementDescription (0008,030e)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setWedgeAngle(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setPrivateDataElementDescription(const OFString &value, const OFBool check = OFTrue);
 
-        /** set WedgeID (300a,00d4)
+        /** set PrivateDataElementEncoding (0008,030f)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setWedgeID(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setPrivateDataElementEncoding(const OFString &value, const OFBool check = OFTrue);
 
-        /** set WedgeNumber (300a,00d2)
+        /** set PrivateDataElementKeyword (0008,030d)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setWedgeNumber(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setPrivateDataElementKeyword(const OFString &value, const OFBool check = OFTrue);
 
-        /** set WedgeOrientation (300a,00d8)
+        /** set PrivateDataElementName (0008,030c)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (UC) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setWedgeOrientation(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setPrivateDataElementName(const OFString &value, const OFBool check = OFTrue);
 
-        /** set WedgeType (300a,00d3)
+        /** set PrivateDataElementNumberOfItems (0008,030b)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1-2
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPrivateDataElementNumberOfItems(const Uint32 value, const unsigned long pos = 0);
+
+        /** set PrivateDataElementValueMultiplicity (0008,0309)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1-3
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setPrivateDataElementValueMultiplicity(const Uint32 value, const unsigned long pos = 0);
+
+        /** set PrivateDataElementValueRepresentation (0008,030a)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setWedgeType(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setPrivateDataElementValueRepresentation(const OFString &value, const OFBool check = OFTrue);
+
+        /** set RetrieveURI (0040,e010)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (UR) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setRetrieveURI(const OFString &value, const OFBool check = OFTrue);
 
       private:
 
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// AccessoryCode (300a,00f9) vr=LO, vm=1, type=3
-        DcmLongString AccessoryCode;
-        /// IsocenterToWedgeTrayDistance (300a,00d9) vr=FL, vm=1, type=1
-        DcmFloatingPointSingle IsocenterToWedgeTrayDistance;
-        /// WedgeAngle (300a,00d5) vr=IS, vm=1, type=2
-        DcmIntegerString WedgeAngle;
-        /// WedgeID (300a,00d4) vr=SH, vm=1, type=3
-        DcmShortString WedgeID;
-        /// WedgeNumber (300a,00d2) vr=IS, vm=1, type=1
-        DcmIntegerString WedgeNumber;
-        /// WedgeOrientation (300a,00d8) vr=DS, vm=1, type=2
-        DcmDecimalString WedgeOrientation;
-        /// WedgeType (300a,00d3) vr=CS, vm=1, type=2
-        DcmCodeString WedgeType;
+        /// PrivateDataElement (0008,0308) vr=US, vm=1, type=1
+        DcmUnsignedShort PrivateDataElement;
+        /// PrivateDataElementDescription (0008,030e) vr=UT, vm=1, type=3
+        DcmUnlimitedText PrivateDataElementDescription;
+        /// PrivateDataElementEncoding (0008,030f) vr=UT, vm=1, type=3
+        DcmUnlimitedText PrivateDataElementEncoding;
+        /// PrivateDataElementKeyword (0008,030d) vr=UC, vm=1, type=1
+        DcmUnlimitedCharacters PrivateDataElementKeyword;
+        /// PrivateDataElementName (0008,030c) vr=UC, vm=1, type=1
+        DcmUnlimitedCharacters PrivateDataElementName;
+        /// PrivateDataElementNumberOfItems (0008,030b) vr=UL, vm=1-2, type=1C
+        DcmUnsignedLong PrivateDataElementNumberOfItems;
+        /// PrivateDataElementValueMultiplicity (0008,0309) vr=UL, vm=1-3, type=1
+        DcmUnsignedLong PrivateDataElementValueMultiplicity;
+        /// PrivateDataElementValueRepresentation (0008,030a) vr=CS, vm=1, type=1
+        DcmCodeString PrivateDataElementValueRepresentation;
+        /// RetrieveURI (0040,e010) vr=UR, vm=1, type=3
+        DcmUniversalResourceIdentifierOrLocator RetrieveURI;
 
     };
 
@@ -238,21 +249,21 @@ class DCMTK_DCMRT_EXPORT DRTIonWedgeSequence
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTIonWedgeSequence(const OFBool emptyDefaultSequence = OFFalse);
+    DRTPrivateDataElementDefinitionSequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTIonWedgeSequence(const DRTIonWedgeSequence &copy);
+    DRTPrivateDataElementDefinitionSequence(const DRTPrivateDataElementDefinitionSequence &copy);
 
     /** destructor
      */
-    virtual ~DRTIonWedgeSequence();
+    virtual ~DRTPrivateDataElementDefinitionSequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTIonWedgeSequence &operator=(const DRTIonWedgeSequence &copy);
+    DRTPrivateDataElementDefinitionSequence &operator=(const DRTPrivateDataElementDefinitionSequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h
index 6a2c744..1b588eb 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPrimaryFluenceModeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpics.h
index 1837914..40aa675 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtpics.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpics.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPersonIdentificationCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPersonIdentificationCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h
index 3f60799..becf513 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPurposeOfReferenceCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPurposeOfReferenceCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtporis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtporis.h
index c320ab3..4df74d9 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtporis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtporis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPhysiciansOfRecordIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h
index 61d2314..776c918 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPerformedProtocolCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -176,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -302,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -347,6 +361,8 @@ class DCMTK_DCMRT_EXPORT DRTPerformedProtocolCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// ProtocolContextSequence (0040,0440) vr=SQ, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h
index 77a56c7..46ecf79 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPhysiciansReadingStudyIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h
index 4e449dd..2395428 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPatientSpeciesCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPatientSpeciesCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h
index 4b78266..0badc09 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPatientSizeCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTPatientSizeCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpss.h
index 8686840..4cb5bd7 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtpss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPatientSetupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h
index 2d03e6c..af423cf 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPredecessorStructureSetSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h
index b0ec587..a0e115d 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTPlannedVerificationImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtqds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtqds.h
index 510cac7..854f84b 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtqds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtqds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTQuantityDefinitionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtras.h b/dcmrt/include/dcmtk/dcmrt/seq/drtras.h
index 93c3fb5..1a47bca 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtras.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtras.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRequestAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h
index cd7017b..83388b4 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h
index 9bd023c..d845bb7 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h
index 2fe4014..7a10654 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedBlockSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h
index ddf9cd5..602cddc 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBolusSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h
index 50524c8..b2d3c85 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBolusSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h
index 2f63cf4..4ecd78e 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h
index ff39330..847bb03 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBeamSequenceInRTDoseModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h
index 4eb30e6..4ad6d46 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -91,6 +91,27 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu
 
       // --- get DICOM attribute values ---
 
+        /** get AlternateBeamDose (300a,0091)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getAlternateBeamDose(OFString &value, const signed long pos = 0) const;
+
+        /** get AlternateBeamDose (300a,0091)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getAlternateBeamDose(Float64 &value, const unsigned long pos = 0) const;
+
+        /** get AlternateBeamDoseType (300a,0092)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getAlternateBeamDoseType(OFString &value, const signed long pos = 0) const;
+
         /** get BeamDeliveryDurationLimit (300a,00c5)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
@@ -132,6 +153,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu
          */
         OFCondition getBeamDoseSpecificationPoint(OFVector<Float64> &value) const;
 
+        /** get BeamDoseType (300a,0090)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getBeamDoseType(OFString &value, const signed long pos = 0) const;
+
         /** get BeamMeterset (300a,0086)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -176,6 +204,20 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu
 
       // --- set DICOM attribute values ---
 
+        /** set AlternateBeamDose (300a,0091)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setAlternateBeamDose(const OFString &value, const OFBool check = OFTrue);
+
+        /** set AlternateBeamDoseType (300a,0092)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setAlternateBeamDoseType(const OFString &value, const OFBool check = OFTrue);
+
         /** set BeamDeliveryDurationLimit (300a,00c5)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -197,6 +239,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu
          */
         OFCondition setBeamDoseSpecificationPoint(const OFString &value, const OFBool check = OFTrue);
 
+        /** set BeamDoseType (300a,0090)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setBeamDoseType(const OFString &value, const OFBool check = OFTrue);
+
         /** set BeamMeterset (300a,0086)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -216,12 +265,18 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModu
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
+        /// AlternateBeamDose (300a,0091) vr=DS, vm=1, type=3
+        DcmDecimalString AlternateBeamDose;
+        /// AlternateBeamDoseType (300a,0092) vr=CS, vm=1, type=1C
+        DcmCodeString AlternateBeamDoseType;
         /// BeamDeliveryDurationLimit (300a,00c5) vr=FD, vm=1, type=3
         DcmFloatingPointDouble BeamDeliveryDurationLimit;
         /// BeamDose (300a,0084) vr=DS, vm=1, type=3
         DcmDecimalString BeamDose;
         /// BeamDoseSpecificationPoint (300a,0082) vr=DS, vm=3, type=3
         DcmDecimalString BeamDoseSpecificationPoint;
+        /// BeamDoseType (300a,0090) vr=CS, vm=1, type=1C
+        DcmCodeString BeamDoseType;
         /// BeamDoseVerificationControlPointSequence (300a,008c) vr=SQ, vm=1, type=3
         DRTBeamDoseVerificationControlPointSequence BeamDoseVerificationControlPointSequence;
         /// BeamMeterset (300a,0086) vr=DS, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h
index 335d75e..d2b2de9 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedBeamSequenceInRTFractionSchemeModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -91,6 +91,27 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule
 
       // --- get DICOM attribute values ---
 
+        /** get AlternateBeamDose (300a,0091)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getAlternateBeamDose(OFString &value, const signed long pos = 0) const;
+
+        /** get AlternateBeamDose (300a,0091)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getAlternateBeamDose(Float64 &value, const unsigned long pos = 0) const;
+
+        /** get AlternateBeamDoseType (300a,0092)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getAlternateBeamDoseType(OFString &value, const signed long pos = 0) const;
+
         /** get BeamDeliveryDurationLimit (300a,00c5)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
@@ -132,6 +153,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule
          */
         OFCondition getBeamDoseSpecificationPoint(OFVector<Float64> &value) const;
 
+        /** get BeamDoseType (300a,0090)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getBeamDoseType(OFString &value, const signed long pos = 0) const;
+
         /** get BeamMeterset (300a,0086)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -176,6 +204,20 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule
 
       // --- set DICOM attribute values ---
 
+        /** set AlternateBeamDose (300a,0091)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setAlternateBeamDose(const OFString &value, const OFBool check = OFTrue);
+
+        /** set AlternateBeamDoseType (300a,0092)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setAlternateBeamDoseType(const OFString &value, const OFBool check = OFTrue);
+
         /** set BeamDeliveryDurationLimit (300a,00c5)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -197,6 +239,13 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule
          */
         OFCondition setBeamDoseSpecificationPoint(const OFString &value, const OFBool check = OFTrue);
 
+        /** set BeamDoseType (300a,0090)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setBeamDoseType(const OFString &value, const OFBool check = OFTrue);
+
         /** set BeamMeterset (300a,0086)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (DS) and VM (1) if enabled
@@ -216,12 +265,18 @@ class DCMTK_DCMRT_EXPORT DRTReferencedBeamSequenceInRTFractionSchemeModule
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
+        /// AlternateBeamDose (300a,0091) vr=DS, vm=1, type=3
+        DcmDecimalString AlternateBeamDose;
+        /// AlternateBeamDoseType (300a,0092) vr=CS, vm=1, type=1C
+        DcmCodeString AlternateBeamDoseType;
         /// BeamDeliveryDurationLimit (300a,00c5) vr=FD, vm=1, type=3
         DcmFloatingPointDouble BeamDeliveryDurationLimit;
         /// BeamDose (300a,0084) vr=DS, vm=1, type=3
         DcmDecimalString BeamDose;
         /// BeamDoseSpecificationPoint (300a,0082) vr=DS, vm=3, type=3
         DcmDecimalString BeamDoseSpecificationPoint;
+        /// BeamDoseType (300a,0090) vr=CS, vm=1, type=1C
+        DcmCodeString BeamDoseType;
         /// BeamDoseVerificationControlPointSequence (300a,008c) vr=SQ, vm=1, type=3
         DRTBeamDoseVerificationControlPointSequence BeamDoseVerificationControlPointSequence;
         /// BeamMeterset (300a,0086) vr=DS, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h
index 8928e89..b1a5d6b 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedCalculatedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h
index eba6728..df9de93 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedCompensatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h
index 9f1e496..4e0d78c 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h
index d24f3e9..34e869e 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTROIContourSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h
index 80bfbe0..8fa3fc4 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRTDoseROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h
index 3173828..7b088a8 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedDoseReferenceSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h
index 1732084..3a8c733 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedDoseReferenceSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h
index 119e77f..34792c2 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrds.h
index 40e6bca..79c3754 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedDoseSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h
index 20b6b1e..e29b110 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTROIElementalCompositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h
index 79fad86..8c92e11 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedFractionGroupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h
index 514fb87..a7fb0ee 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedFrameOfReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrics.h
index 2aee19a..a9effc2 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrics.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrics.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRTROIIdentificationCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -20,6 +20,7 @@
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 #include "dcmtk/dcmrt/seq/drtecs.h"    // for EquivalentCodeSequence
+#include "dcmtk/dcmrt/seq/drtsptcs.h"  // for SegmentedPropertyTypeModifierCodeSequence
 
 
 /** Interface class for RTROIIdentificationCodeSequence (3006,0086)
@@ -175,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -203,6 +211,18 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence
         const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const
             { return EquivalentCodeSequence; }
 
+        /** get SegmentedPropertyTypeModifierCodeSequence (0062,0011)
+         *  @return reference to sequence element
+         */
+        DRTSegmentedPropertyTypeModifierCodeSequence &getSegmentedPropertyTypeModifierCodeSequence()
+            { return SegmentedPropertyTypeModifierCodeSequence; }
+
+        /** get SegmentedPropertyTypeModifierCodeSequence (0062,0011)
+         *  @return const reference to sequence element
+         */
+        const DRTSegmentedPropertyTypeModifierCodeSequence &getSegmentedPropertyTypeModifierCodeSequence() const
+            { return SegmentedPropertyTypeModifierCodeSequence; }
+
       // --- set DICOM attribute values ---
 
         /** set CodeMeaning (0008,0104)
@@ -289,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,8 +361,12 @@ class DCMTK_DCMRT_EXPORT DRTRTROIIdentificationCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
+        /// SegmentedPropertyTypeModifierCodeSequence (0062,0011) vr=SQ, vm=1, type=3
+        DRTSegmentedPropertyTypeModifierCodeSequence SegmentedPropertyTypeModifierCodeSequence;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
         DcmUniversalResourceIdentifierOrLocator URNCodeValue;
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrims.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrims.h
index c5cc089..b801ced 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrims.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrims.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtris.h b/dcmrt/include/dcmtk/dcmrt/seq/drtris.h
index e02c599..c89bc65 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtris.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtris.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedInstanceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h
index c802d6d..192cc4b 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedLateralSpreadingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h
index b8e7da6..df27a49 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedMeasuredDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrms.h
index f45f87e..c1828e4 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrms.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrms.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRangeModulatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h
index 9cf6e01..92026ba 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h
index f0356b7..3eb715f 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h
index 75b8e93..1ad4adf 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRequestedProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTRequestedProcedureCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h
index 4f466b1..ee163ff 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferringPhysicianIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h
index 165744d..eb52d05 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReasonForPerformedProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTReasonForPerformedProcedureCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h
index d726488..4b83839 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedPatientPhotoSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h
index 193865c..b3cf227 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTROIPhysicalPropertiesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h
index 7d24177..15205b1 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedPerformedProcedureStepSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrps.h
index 921b614..53271de 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrps.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrps.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedPatientSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h
index ac4456b..71be5a1 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedReferenceImageSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h
index ffd2638..f82e173 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedReferenceImageSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h
index 08e660a..713ea30 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h
index d6bbcf5..32da655 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedRangeModulatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrros.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrros.h
index e2c9b7f..d6a7932 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrros.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrros.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRTROIObservationsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -19,7 +19,6 @@
 
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
-#include "dcmtk/dcmrt/seq/drtarics.h"  // for AdditionalRTROIIdentificationCodeSequence
 #include "dcmtk/dcmrt/seq/drtrpps.h"   // for ROIPhysicalPropertiesSequence
 #include "dcmtk/dcmrt/seq/drtrics.h"   // for RTROIIdentificationCodeSequence
 #include "dcmtk/dcmrt/seq/drtrrs.h"    // for RTRelatedROISequence
@@ -161,18 +160,6 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence
 
       // --- get DICOM sequence attributes ---
 
-        /** get AdditionalRTROIIdentificationCodeSequence (3006,00b9)
-         *  @return reference to sequence element
-         */
-        DRTAdditionalRTROIIdentificationCodeSequence &getAdditionalRTROIIdentificationCodeSequence()
-            { return AdditionalRTROIIdentificationCodeSequence; }
-
-        /** get AdditionalRTROIIdentificationCodeSequence (3006,00b9)
-         *  @return const reference to sequence element
-         */
-        const DRTAdditionalRTROIIdentificationCodeSequence &getAdditionalRTROIIdentificationCodeSequence() const
-            { return AdditionalRTROIIdentificationCodeSequence; }
-
         /** get ROIPhysicalPropertiesSequence (3006,00b0)
          *  @return reference to sequence element
          */
@@ -289,8 +276,6 @@ class DCMTK_DCMRT_EXPORT DRTRTROIObservationsSequence
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// AdditionalRTROIIdentificationCodeSequence (3006,00b9) vr=SQ, vm=1, type=3
-        DRTAdditionalRTROIIdentificationCodeSequence AdditionalRTROIIdentificationCodeSequence;
         /// MaterialID (300a,00e1) vr=SH, vm=1, type=3
         DcmShortString MaterialID;
         /// ObservationNumber (3006,0082) vr=IS, vm=1, type=1
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h
index 2b34845..e7424fb 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReasonForRequestedProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTReasonForRequestedProcedureCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h
index d37493c..6e7e972 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRelatedRTROIObservationsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h
index 471d72f..b769374 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRTRelatedROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h
index bb9f495..e4f6d17 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedRangeShifterSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h
index 0b9a7ec..ce710ab 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedRTPlanSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h
index 73272e9..5833193 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedRTPlanSequenceInRTGeneralPlanModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h
index 7e5706f..a84d994 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h
index db4fe1f..b18050e 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedRTPlanSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h
index 4ee8114..d176d7c 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRequestingServiceCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTRequestingServiceCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h
index a0e546e..413d217 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedSeriesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrses.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrses.h
index b6aabfd..1826f4a 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrses.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrses.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRTReferencedSeriesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h
index e7f5d44..4c268a0 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRangeShifterSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h
index 7476aaf..41704e3 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRangeShifterSettingsSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h
index 51d0ec0..77076d2 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h
index cc41a4f..d735232 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedSetupImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h
index 6339f1e..748776d 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedSnoutSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h
index 31275ea..c6a9d95 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedSOPSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h
index 40fd303..7ec47af 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedSpatialRegistrationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrss.h
index c8bb63c..55b2de3 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedStudySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h
index 4bff060..16a5406 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedStructureSetSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h
index 524f0aa..2012fb8 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRTReferencedStudySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h
index 0697321..2636e43 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedTreatmentRecordSequenceInRTDoseModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h
index 2a18110..2c75810 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h
index 61a716f..995290d 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTReferencedVerificationImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrws.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrws.h
index 1d1e6ff..bbb677a 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrws.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrws.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRecordedWedgeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h b/dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h
index b9f9037..e83721a 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTRealWorldValueMappingSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -92,6 +92,20 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence
 
       // --- get DICOM attribute values ---
 
+        /** get DoubleFloatRealWorldValueFirstValueMapped (0040,9214)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getDoubleFloatRealWorldValueFirstValueMapped(Float64 &value, const unsigned long pos = 0) const;
+
+        /** get DoubleFloatRealWorldValueLastValueMapped (0040,9213)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1)
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getDoubleFloatRealWorldValueLastValueMapped(Float64 &value, const unsigned long pos = 0) const;
+
         /** get LUTExplanation (0028,3003)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -169,6 +183,20 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence
 
       // --- set DICOM attribute values ---
 
+        /** set DoubleFloatRealWorldValueFirstValueMapped (0040,9214)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value, const unsigned long pos = 0);
+
+        /** set DoubleFloatRealWorldValueLastValueMapped (0040,9213)
+         *  @param  value  value to be set (should be valid for this VR)
+         *  @param  pos    index of the value to be set (0..vm-1), vm=1
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setDoubleFloatRealWorldValueLastValueMapped(const Float64 value, const unsigned long pos = 0);
+
         /** set LUTExplanation (0028,3003)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
@@ -223,6 +251,10 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
+        /// DoubleFloatRealWorldValueFirstValueMapped (0040,9214) vr=FD, vm=1, type=1C
+        DcmFloatingPointDouble DoubleFloatRealWorldValueFirstValueMapped;
+        /// DoubleFloatRealWorldValueLastValueMapped (0040,9213) vr=FD, vm=1, type=1C
+        DcmFloatingPointDouble DoubleFloatRealWorldValueLastValueMapped;
         /// LUTExplanation (0028,3003) vr=LO, vm=1, type=1
         DcmLongString LUTExplanation;
         /// LUTLabel (0040,9210) vr=SH, vm=1, type=1
@@ -231,13 +263,13 @@ class DCMTK_DCMRT_EXPORT DRTRealWorldValueMappingSequence
         DRTMeasurementUnitsCodeSequence MeasurementUnitsCodeSequence;
         /// QuantityDefinitionSequence (0040,9220) vr=SQ, vm=1, type=3
         DRTQuantityDefinitionSequence QuantityDefinitionSequence;
-        /// RealWorldValueFirstValueMapped (0040,9216) vr=US/SS, vm=1, type=1
+        /// RealWorldValueFirstValueMapped (0040,9216) vr=US/SS, vm=1, type=1C
         DcmUnsignedShort RealWorldValueFirstValueMapped;
         /// RealWorldValueIntercept (0040,9224) vr=FD, vm=1, type=1C
         DcmFloatingPointDouble RealWorldValueIntercept;
         /// RealWorldValueLUTData (0040,9212) vr=FD, vm=1-n, type=1C
         DcmFloatingPointDouble RealWorldValueLUTData;
-        /// RealWorldValueLastValueMapped (0040,9211) vr=US/SS, vm=1, type=1
+        /// RealWorldValueLastValueMapped (0040,9211) vr=US/SS, vm=1, type=1C
         DcmUnsignedShort RealWorldValueLastValueMapped;
         /// RealWorldValueSlope (0040,9225) vr=FD, vm=1, type=1C
         DcmFloatingPointDouble RealWorldValueSlope;
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtscris.h b/dcmrt/include/dcmtk/dcmrt/seq/drtscris.h
index 70c5a4c..1e3590d 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtscris.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtscris.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTStudiesContainingOtherReferencedInstancesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h b/dcmrt/include/dcmtk/dcmrt/seq/drtscs.h
similarity index 93%
copy from dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h
copy to dcmrt/include/dcmtk/dcmrt/seq/drtscs.h
index b4a8b96..8bc9359 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtscs.h
@@ -1,31 +1,30 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTContrastBolusAdministrationRouteSequence
+ *  Header file for class DRTStrainCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTCBARS_H
-#define DRTCBARS_H
+#ifndef DRTSCS_H
+#define DRTSCS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
-#include "dcmtk/dcmrt/seq/drtads.h"    // for AdditionalDrugSequence
 #include "dcmtk/dcmrt/seq/drtecs.h"    // for EquivalentCodeSequence
 
 
-/** Interface class for ContrastBolusAdministrationRouteSequence (0018,0014)
+/** Interface class for StrainCodeSequence (0010,0219)
  */
-class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
+class DCMTK_DCMRT_EXPORT DRTStrainCodeSequence
   : protected DRTTypes
 {
 
@@ -176,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -192,18 +198,6 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
 
       // --- get DICOM sequence attributes ---
 
-        /** get AdditionalDrugSequence (0018,002a)
-         *  @return reference to sequence element
-         */
-        DRTAdditionalDrugSequence &getAdditionalDrugSequence()
-            { return AdditionalDrugSequence; }
-
-        /** get AdditionalDrugSequence (0018,002a)
-         *  @return const reference to sequence element
-         */
-        const DRTAdditionalDrugSequence &getAdditionalDrugSequence() const
-            { return AdditionalDrugSequence; }
-
         /** get EquivalentCodeSequence (0008,0121)
          *  @return reference to sequence element
          */
@@ -302,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -321,8 +322,6 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// AdditionalDrugSequence (0018,002a) vr=SQ, vm=1, type=3
-        DRTAdditionalDrugSequence AdditionalDrugSequence;
         /// CodeMeaning (0008,0104) vr=LO, vm=1, type=1
         DcmLongString CodeMeaning;
         /// CodeValue (0008,0100) vr=SH, vm=1, type=1C
@@ -349,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
@@ -361,21 +362,21 @@ class DCMTK_DCMRT_EXPORT DRTContrastBolusAdministrationRouteSequence
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTContrastBolusAdministrationRouteSequence(const OFBool emptyDefaultSequence = OFFalse);
+    DRTStrainCodeSequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTContrastBolusAdministrationRouteSequence(const DRTContrastBolusAdministrationRouteSequence &copy);
+    DRTStrainCodeSequence(const DRTStrainCodeSequence &copy);
 
     /** destructor
      */
-    virtual ~DRTContrastBolusAdministrationRouteSequence();
+    virtual ~DRTStrainCodeSequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTContrastBolusAdministrationRouteSequence &operator=(const DRTContrastBolusAdministrationRouteSequence &copy);
+    DRTStrainCodeSequence &operator=(const DRTStrainCodeSequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h
index 52646b8..55e5970 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTSeriesDescriptionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTSeriesDescriptionCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsds.h
index 06db62c..9a1aa05 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtsds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTSetupDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtshds.h b/dcmrt/include/dcmtk/dcmrt/seq/drtshds.h
index a66db0d..30e1f0e 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtshds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtshds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTShieldingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtris.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsins.h
similarity index 94%
copy from dcmrt/include/dcmtk/dcmrt/seq/drtris.h
copy to dcmrt/include/dcmtk/dcmrt/seq/drtsins.h
index e02c599..4665d52 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtris.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsins.h
@@ -1,19 +1,19 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTReferencedInstanceSequence
+ *  Header file for class DRTSourceInstanceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTRIS_H
-#define DRTRIS_H
+#ifndef DRTSINS_H
+#define DRTSINS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
@@ -22,9 +22,9 @@
 #include "dcmtk/dcmrt/seq/drtporcs.h"  // for PurposeOfReferenceCodeSequence
 
 
-/** Interface class for ReferencedInstanceSequence (0008,114a)
+/** Interface class for SourceInstanceSequence (0042,0013)
  */
-class DCMTK_DCMRT_EXPORT DRTReferencedInstanceSequence
+class DCMTK_DCMRT_EXPORT DRTSourceInstanceSequence
   : protected DRTTypes
 {
 
@@ -140,7 +140,7 @@ class DCMTK_DCMRT_EXPORT DRTReferencedInstanceSequence
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// PurposeOfReferenceCodeSequence (0040,a170) vr=SQ, vm=1, type=1
+        /// PurposeOfReferenceCodeSequence (0040,a170) vr=SQ, vm=1, type=3
         DRTPurposeOfReferenceCodeSequence PurposeOfReferenceCodeSequence;
         /// ReferencedSOPClassUID (0008,1150) vr=UI, vm=1, type=1
         DcmUniqueIdentifier ReferencedSOPClassUID;
@@ -154,21 +154,21 @@ class DCMTK_DCMRT_EXPORT DRTReferencedInstanceSequence
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTReferencedInstanceSequence(const OFBool emptyDefaultSequence = OFFalse);
+    DRTSourceInstanceSequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTReferencedInstanceSequence(const DRTReferencedInstanceSequence &copy);
+    DRTSourceInstanceSequence(const DRTSourceInstanceSequence &copy);
 
     /** destructor
      */
-    virtual ~DRTReferencedInstanceSequence();
+    virtual ~DRTSourceInstanceSequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTReferencedInstanceSequence &operator=(const DRTReferencedInstanceSequence &copy);
+    DRTSourceInstanceSequence &operator=(const DRTSourceInstanceSequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsis.h
index 967bda6..56759d5 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtsis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsis.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTSourceImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtsns.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsns.h
index db03a31..65cef98 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtsns.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsns.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTSnoutSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h
index 6ec77c8..1902411 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTSegmentedPropertyCategoryCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -175,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -289,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -334,6 +348,8 @@ class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyCategoryCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h
index 075109f..e74a4db 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTScheduledProtocolCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -176,6 +176,13 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -302,6 +309,13 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -347,6 +361,8 @@ class DCMTK_DCMRT_EXPORT DRTScheduledProtocolCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
         /// ProtocolContextSequence (0040,0440) vr=SQ, vm=1, type=3
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h b/dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h
similarity index 88%
copy from dcmrt/include/dcmtk/dcmrt/seq/drtopis.h
copy to dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h
index c1f068f..fe8b8d4 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtopis.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h
@@ -1,19 +1,19 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTOtherPatientIDsSequence
+ *  Header file for class DRTSourcePatientGroupIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTOPIS_H
-#define DRTOPIS_H
+#ifndef DRTSPGIS_H
+#define DRTSPGIS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
@@ -22,9 +22,9 @@
 #include "dcmtk/dcmrt/seq/drtipiqs.h"  // for IssuerOfPatientIDQualifiersSequence
 
 
-/** Interface class for OtherPatientIDsSequence (0010,1002)
+/** Interface class for SourcePatientGroupIdentificationSequence (0010,0026)
  */
-class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence
+class DCMTK_DCMRT_EXPORT DRTSourcePatientGroupIdentificationSequence
   : protected DRTTypes
 {
 
@@ -105,13 +105,6 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence
          */
         OFCondition getPatientID(OFString &value, const signed long pos = 0) const;
 
-        /** get TypeOfPatientID (0010,0022)
-         *  @param  value  reference to variable in which the value should be stored
-         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition getTypeOfPatientID(OFString &value, const signed long pos = 0) const;
-
       // --- get DICOM sequence attributes ---
 
         /** get IssuerOfPatientIDQualifiersSequence (0010,0024)
@@ -142,13 +135,6 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence
          */
         OFCondition setPatientID(const OFString &value, const OFBool check = OFTrue);
 
-        /** set TypeOfPatientID (0010,0022)
-         *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
-         *  @return status, EC_Normal if successful, an error code otherwise
-         */
-        OFCondition setTypeOfPatientID(const OFString &value, const OFBool check = OFTrue);
-
       private:
 
         /// internal flag used to mark the empty default item
@@ -160,8 +146,6 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence
         DRTIssuerOfPatientIDQualifiersSequence IssuerOfPatientIDQualifiersSequence;
         /// PatientID (0010,0020) vr=LO, vm=1, type=1
         DcmLongString PatientID;
-        /// TypeOfPatientID (0010,0022) vr=CS, vm=1, type=1
-        DcmCodeString TypeOfPatientID;
 
     };
 
@@ -170,21 +154,21 @@ class DCMTK_DCMRT_EXPORT DRTOtherPatientIDsSequence
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTOtherPatientIDsSequence(const OFBool emptyDefaultSequence = OFFalse);
+    DRTSourcePatientGroupIdentificationSequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTOtherPatientIDsSequence(const DRTOtherPatientIDsSequence &copy);
+    DRTSourcePatientGroupIdentificationSequence(const DRTSourcePatientGroupIdentificationSequence &copy);
 
     /** destructor
      */
-    virtual ~DRTOtherPatientIDsSequence();
+    virtual ~DRTSourcePatientGroupIdentificationSequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTOtherPatientIDsSequence &operator=(const DRTOtherPatientIDsSequence &copy);
+    DRTSourcePatientGroupIdentificationSequence &operator=(const DRTSourcePatientGroupIdentificationSequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtarics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h
similarity index 93%
copy from dcmrt/include/dcmtk/dcmrt/seq/drtarics.h
copy to dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h
index 6b21868..520279d 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtarics.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h
@@ -1,31 +1,30 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTAdditionalRTROIIdentificationCodeSequence
+ *  Header file for class DRTSegmentedPropertyTypeModifierCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTARICS_H
-#define DRTARICS_H
+#ifndef DRTSPTCS_H
+#define DRTSPTCS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 #include "dcmtk/dcmrt/seq/drtecs.h"    // for EquivalentCodeSequence
-#include "dcmtk/dcmrt/seq/drtporcs.h"  // for PurposeOfReferenceCodeSequence
 
 
-/** Interface class for AdditionalRTROIIdentificationCodeSequence (3006,00b9)
+/** Interface class for SegmentedPropertyTypeModifierCodeSequence (0062,0011)
  */
-class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
+class DCMTK_DCMRT_EXPORT DRTSegmentedPropertyTypeModifierCodeSequence
   : protected DRTTypes
 {
 
@@ -176,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -204,18 +210,6 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
         const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const
             { return EquivalentCodeSequence; }
 
-        /** get PurposeOfReferenceCodeSequence (0040,a170)
-         *  @return reference to sequence element
-         */
-        DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence()
-            { return PurposeOfReferenceCodeSequence; }
-
-        /** get PurposeOfReferenceCodeSequence (0040,a170)
-         *  @return const reference to sequence element
-         */
-        const DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence() const
-            { return PurposeOfReferenceCodeSequence; }
-
       // --- set DICOM attribute values ---
 
         /** set CodeMeaning (0008,0104)
@@ -302,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -347,10 +348,10 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
-        /// PurposeOfReferenceCodeSequence (0040,a170) vr=SQ, vm=1, type=1
-        DRTPurposeOfReferenceCodeSequence PurposeOfReferenceCodeSequence;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
         DcmUniversalResourceIdentifierOrLocator URNCodeValue;
 
@@ -361,21 +362,21 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTAdditionalRTROIIdentificationCodeSequence(const OFBool emptyDefaultSequence = OFFalse);
+    DRTSegmentedPropertyTypeModifierCodeSequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTAdditionalRTROIIdentificationCodeSequence(const DRTAdditionalRTROIIdentificationCodeSequence &copy);
+    DRTSegmentedPropertyTypeModifierCodeSequence(const DRTSegmentedPropertyTypeModifierCodeSequence &copy);
 
     /** destructor
      */
-    virtual ~DRTAdditionalRTROIIdentificationCodeSequence();
+    virtual ~DRTSegmentedPropertyTypeModifierCodeSequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTAdditionalRTROIIdentificationCodeSequence &operator=(const DRTAdditionalRTROIIdentificationCodeSequence &copy);
+    DRTSegmentedPropertyTypeModifierCodeSequence &operator=(const DRTSegmentedPropertyTypeModifierCodeSequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtss.h b/dcmrt/include/dcmtk/dcmrt/seq/drtss.h
index 418ba83..a49ddb2 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtss.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtss.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTSourceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtarics.h b/dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h
similarity index 93%
rename from dcmrt/include/dcmtk/dcmrt/seq/drtarics.h
rename to dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h
index 6b21868..70c7818 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtarics.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h
@@ -1,31 +1,30 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTAdditionalRTROIIdentificationCodeSequence
+ *  Header file for class DRTStrainSourceRegistryCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTARICS_H
-#define DRTARICS_H
+#ifndef DRTSSRCS_H
+#define DRTSSRCS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 #include "dcmtk/dcmrt/seq/drtecs.h"    // for EquivalentCodeSequence
-#include "dcmtk/dcmrt/seq/drtporcs.h"  // for PurposeOfReferenceCodeSequence
 
 
-/** Interface class for AdditionalRTROIIdentificationCodeSequence (3006,00b9)
+/** Interface class for StrainSourceRegistryCodeSequence (0010,0215)
  */
-class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
+class DCMTK_DCMRT_EXPORT DRTStrainSourceRegistryCodeSequence
   : protected DRTTypes
 {
 
@@ -176,6 +175,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
          */
         OFCondition getMappingResource(OFString &value, const signed long pos = 0) const;
 
+        /** get MappingResourceName (0008,0122)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getMappingResourceName(OFString &value, const signed long pos = 0) const;
+
         /** get MappingResourceUID (0008,0118)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -204,18 +210,6 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
         const DRTEquivalentCodeSequence &getEquivalentCodeSequence() const
             { return EquivalentCodeSequence; }
 
-        /** get PurposeOfReferenceCodeSequence (0040,a170)
-         *  @return reference to sequence element
-         */
-        DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence()
-            { return PurposeOfReferenceCodeSequence; }
-
-        /** get PurposeOfReferenceCodeSequence (0040,a170)
-         *  @return const reference to sequence element
-         */
-        const DRTPurposeOfReferenceCodeSequence &getPurposeOfReferenceCodeSequence() const
-            { return PurposeOfReferenceCodeSequence; }
-
       // --- set DICOM attribute values ---
 
         /** set CodeMeaning (0008,0104)
@@ -302,6 +296,13 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
          */
         OFCondition setMappingResource(const OFString &value, const OFBool check = OFTrue);
 
+        /** set MappingResourceName (0008,0122)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setMappingResourceName(const OFString &value, const OFBool check = OFTrue);
+
         /** set MappingResourceUID (0008,0118)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
@@ -347,10 +348,10 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
         DcmUnlimitedCharacters LongCodeValue;
         /// MappingResource (0008,0105) vr=CS, vm=1, type=1C
         DcmCodeString MappingResource;
+        /// MappingResourceName (0008,0122) vr=LO, vm=1, type=3
+        DcmLongString MappingResourceName;
         /// MappingResourceUID (0008,0118) vr=UI, vm=1, type=3
         DcmUniqueIdentifier MappingResourceUID;
-        /// PurposeOfReferenceCodeSequence (0040,a170) vr=SQ, vm=1, type=1
-        DRTPurposeOfReferenceCodeSequence PurposeOfReferenceCodeSequence;
         /// URNCodeValue (0008,0120) vr=UR, vm=1, type=1C
         DcmUniversalResourceIdentifierOrLocator URNCodeValue;
 
@@ -361,21 +362,21 @@ class DCMTK_DCMRT_EXPORT DRTAdditionalRTROIIdentificationCodeSequence
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTAdditionalRTROIIdentificationCodeSequence(const OFBool emptyDefaultSequence = OFFalse);
+    DRTStrainSourceRegistryCodeSequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTAdditionalRTROIIdentificationCodeSequence(const DRTAdditionalRTROIIdentificationCodeSequence &copy);
+    DRTStrainSourceRegistryCodeSequence(const DRTStrainSourceRegistryCodeSequence &copy);
 
     /** destructor
      */
-    virtual ~DRTAdditionalRTROIIdentificationCodeSequence();
+    virtual ~DRTStrainSourceRegistryCodeSequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTAdditionalRTROIIdentificationCodeSequence &operator=(const DRTAdditionalRTROIIdentificationCodeSequence &copy);
+    DRTStrainSourceRegistryCodeSequence &operator=(const DRTStrainSourceRegistryCodeSequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h
index 5c87802..495bb27 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTStructureSetROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h b/dcmrt/include/dcmtk/dcmrt/seq/drtsss.h
similarity index 82%
copy from dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h
copy to dcmrt/include/dcmtk/dcmrt/seq/drtsss.h
index 524f0aa..11ddef4 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtsss.h
@@ -1,30 +1,30 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTRTReferencedStudySequence
+ *  Header file for class DRTStrainStockSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTRSTS_H
-#define DRTRSTS_H
+#ifndef DRTSSS_H
+#define DRTSSS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
 #include "dcmtk/ofstd/oflist.h"        // for standard list class
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
-#include "dcmtk/dcmrt/seq/drtrses.h"   // for RTReferencedSeriesSequence
+#include "dcmtk/dcmrt/seq/drtssrcs.h"  // for StrainSourceRegistryCodeSequence
 
 
-/** Interface class for RTReferencedStudySequence (3006,0012)
+/** Interface class for StrainStockSequence (0010,0216)
  */
-class DCMTK_DCMRT_EXPORT DRTRTReferencedStudySequence
+class DCMTK_DCMRT_EXPORT DRTStrainStockSequence
   : protected DRTTypes
 {
 
@@ -91,61 +91,61 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedStudySequence
 
       // --- get DICOM attribute values ---
 
-        /** get ReferencedSOPClassUID (0008,1150)
+        /** get StrainSource (0010,0217)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getReferencedSOPClassUID(OFString &value, const signed long pos = 0) const;
+        OFCondition getStrainSource(OFString &value, const signed long pos = 0) const;
 
-        /** get ReferencedSOPInstanceUID (0008,1155)
+        /** get StrainStockNumber (0010,0214)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getReferencedSOPInstanceUID(OFString &value, const signed long pos = 0) const;
+        OFCondition getStrainStockNumber(OFString &value, const signed long pos = 0) const;
 
       // --- get DICOM sequence attributes ---
 
-        /** get RTReferencedSeriesSequence (3006,0014)
+        /** get StrainSourceRegistryCodeSequence (0010,0215)
          *  @return reference to sequence element
          */
-        DRTRTReferencedSeriesSequence &getRTReferencedSeriesSequence()
-            { return RTReferencedSeriesSequence; }
+        DRTStrainSourceRegistryCodeSequence &getStrainSourceRegistryCodeSequence()
+            { return StrainSourceRegistryCodeSequence; }
 
-        /** get RTReferencedSeriesSequence (3006,0014)
+        /** get StrainSourceRegistryCodeSequence (0010,0215)
          *  @return const reference to sequence element
          */
-        const DRTRTReferencedSeriesSequence &getRTReferencedSeriesSequence() const
-            { return RTReferencedSeriesSequence; }
+        const DRTStrainSourceRegistryCodeSequence &getStrainSourceRegistryCodeSequence() const
+            { return StrainSourceRegistryCodeSequence; }
 
       // --- set DICOM attribute values ---
 
-        /** set ReferencedSOPClassUID (0008,1150)
+        /** set StrainSource (0010,0217)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setReferencedSOPClassUID(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setStrainSource(const OFString &value, const OFBool check = OFTrue);
 
-        /** set ReferencedSOPInstanceUID (0008,1155)
+        /** set StrainStockNumber (0010,0214)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (UI) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setReferencedSOPInstanceUID(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setStrainStockNumber(const OFString &value, const OFBool check = OFTrue);
 
       private:
 
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// RTReferencedSeriesSequence (3006,0014) vr=SQ, vm=1, type=1
-        DRTRTReferencedSeriesSequence RTReferencedSeriesSequence;
-        /// ReferencedSOPClassUID (0008,1150) vr=UI, vm=1, type=1
-        DcmUniqueIdentifier ReferencedSOPClassUID;
-        /// ReferencedSOPInstanceUID (0008,1155) vr=UI, vm=1, type=1
-        DcmUniqueIdentifier ReferencedSOPInstanceUID;
+        /// StrainSource (0010,0217) vr=LO, vm=1, type=1
+        DcmLongString StrainSource;
+        /// StrainSourceRegistryCodeSequence (0010,0215) vr=SQ, vm=1, type=1
+        DRTStrainSourceRegistryCodeSequence StrainSourceRegistryCodeSequence;
+        /// StrainStockNumber (0010,0214) vr=LO, vm=1, type=1
+        DcmLongString StrainStockNumber;
 
     };
 
@@ -154,21 +154,21 @@ class DCMTK_DCMRT_EXPORT DRTRTReferencedStudySequence
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTRTReferencedStudySequence(const OFBool emptyDefaultSequence = OFFalse);
+    DRTStrainStockSequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTRTReferencedStudySequence(const DRTRTReferencedStudySequence &copy);
+    DRTStrainStockSequence(const DRTStrainStockSequence &copy);
 
     /** destructor
      */
-    virtual ~DRTRTReferencedStudySequence();
+    virtual ~DRTStrainStockSequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTRTReferencedStudySequence &operator=(const DRTRTReferencedStudySequence &copy);
+    DRTStrainStockSequence &operator=(const DRTStrainStockSequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttms0.h b/dcmrt/include/dcmtk/dcmrt/seq/drttms0.h
index d226e57..1d4e5ad 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drttms0.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drttms0.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttms9.h b/dcmrt/include/dcmtk/dcmrt/seq/drttms9.h
index f05b97a..ce4ef25 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drttms9.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drttms9.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttscds.h b/dcmrt/include/dcmtk/dcmrt/seq/drttscds.h
index e021480..0f025c2 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drttscds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drttscds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTTreatmentSummaryCalculatedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h b/dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h
index a76b007..375d45a 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTTreatmentSessionIonBeamSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -21,6 +21,7 @@
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 #include "dcmtk/dcmrt/seq/drtas7.h"    // for ApplicatorSequence
 #include "dcmtk/dcmrt/seq/drtbldls.h"  // for BeamLimitingDeviceLeafPairsSequence
+#include "dcmtk/dcmrt/seq/drtdddps.h"  // for DeliveredDepthDoseParametersSequence
 #include "dcmtk/dcmrt/seq/drtgas.h"    // for GeneralAccessorySequence
 #include "dcmtk/dcmrt/seq/drticpds.h"  // for IonControlPointDeliverySequence
 #include "dcmtk/dcmrt/seq/drtrbls.h"   // for RecordedBlockSequence
@@ -182,6 +183,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
          */
         OFCondition getDeliveredTreatmentTime(Float64 &value, const unsigned long pos = 0) const;
 
+        /** get FixationEye (300a,0150)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getFixationEye(OFString &value, const signed long pos = 0) const;
+
         /** get FixationLightAzimuthalAngle (300a,0356)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1)
@@ -196,6 +204,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
          */
         OFCondition getFixationLightPolarAngle(Float32 &value, const unsigned long pos = 0) const;
 
+        /** get ModulatedScanModeType (300a,0309)
+         *  @param  value  reference to variable in which the value should be stored
+         *  @param  pos    index of the value to get (0..vm-1), -1 for all components
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition getModulatedScanModeType(OFString &value, const signed long pos = 0) const;
+
         /** get NumberOfBlocks (300a,00f0)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
@@ -516,6 +531,18 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
         const DRTBeamLimitingDeviceLeafPairsSequence &getBeamLimitingDeviceLeafPairsSequence() const
             { return BeamLimitingDeviceLeafPairsSequence; }
 
+        /** get DeliveredDepthDoseParametersSequence (300a,0506)
+         *  @return reference to sequence element
+         */
+        DRTDeliveredDepthDoseParametersSequence &getDeliveredDepthDoseParametersSequence()
+            { return DeliveredDepthDoseParametersSequence; }
+
+        /** get DeliveredDepthDoseParametersSequence (300a,0506)
+         *  @return const reference to sequence element
+         */
+        const DRTDeliveredDepthDoseParametersSequence &getDeliveredDepthDoseParametersSequence() const
+            { return DeliveredDepthDoseParametersSequence; }
+
         /** get GeneralAccessorySequence (300a,0420)
          *  @return reference to sequence element
          */
@@ -723,6 +750,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
          */
         OFCondition setDeliveredTreatmentTime(const OFString &value, const OFBool check = OFTrue);
 
+        /** set FixationEye (300a,0150)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setFixationEye(const OFString &value, const OFBool check = OFTrue);
+
         /** set FixationLightAzimuthalAngle (300a,0356)
          *  @param  value  value to be set (should be valid for this VR)
          *  @param  pos    index of the value to be set (0..vm-1), vm=1
@@ -737,6 +771,13 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
          */
         OFCondition setFixationLightPolarAngle(const Float32 value, const unsigned long pos = 0);
 
+        /** set ModulatedScanModeType (300a,0309)
+         *  @param  value  value to be set (single value only) or "" for no value
+         *  @param  check  check 'value' for conformance with VR (CS) and VM (1) if enabled
+         *  @return status, EC_Normal if successful, an error code otherwise
+         */
+        OFCondition setModulatedScanModeType(const OFString &value, const OFBool check = OFTrue);
+
         /** set NumberOfBlocks (300a,00f0)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (IS) and VM (1) if enabled
@@ -936,12 +977,16 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
         DcmCodeString BeamType;
         /// CurrentFractionNumber (3008,0022) vr=IS, vm=1, type=2
         DcmIntegerString CurrentFractionNumber;
+        /// DeliveredDepthDoseParametersSequence (300a,0506) vr=SQ, vm=1, type=3
+        DRTDeliveredDepthDoseParametersSequence DeliveredDepthDoseParametersSequence;
         /// DeliveredPrimaryMeterset (3008,0036) vr=DS, vm=1, type=3
         DcmDecimalString DeliveredPrimaryMeterset;
         /// DeliveredSecondaryMeterset (3008,0037) vr=DS, vm=1, type=3
         DcmDecimalString DeliveredSecondaryMeterset;
         /// DeliveredTreatmentTime (3008,003b) vr=DS, vm=1, type=3
         DcmDecimalString DeliveredTreatmentTime;
+        /// FixationEye (300a,0150) vr=CS, vm=1, type=3
+        DcmCodeString FixationEye;
         /// FixationLightAzimuthalAngle (300a,0356) vr=FL, vm=1, type=3
         DcmFloatingPointSingle FixationLightAzimuthalAngle;
         /// FixationLightPolarAngle (300a,0358) vr=FL, vm=1, type=3
@@ -950,6 +995,8 @@ class DCMTK_DCMRT_EXPORT DRTTreatmentSessionIonBeamSequence
         DRTGeneralAccessorySequence GeneralAccessorySequence;
         /// IonControlPointDeliverySequence (3008,0041) vr=SQ, vm=1, type=1
         DRTIonControlPointDeliverySequence IonControlPointDeliverySequence;
+        /// ModulatedScanModeType (300a,0309) vr=CS, vm=1, type=1C
+        DcmCodeString ModulatedScanModeType;
         /// NumberOfBlocks (300a,00f0) vr=IS, vm=1, type=1
         DcmIntegerString NumberOfBlocks;
         /// NumberOfBoli (300a,00ed) vr=IS, vm=1, type=1
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h b/dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h
index 6bab8b3..756dd18 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTTreatmentSummaryMeasuredDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drttts.h b/dcmrt/include/dcmtk/dcmrt/seq/drttts.h
index c3073b3..d08bf5b 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drttts.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drttts.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTToleranceTableSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h b/dcmrt/include/dcmtk/dcmrt/seq/drtudis.h
similarity index 88%
copy from dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h
copy to dcmrt/include/dcmtk/dcmrt/seq/drtudis.h
index 6339f1e..938702e 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtudis.h
@@ -1,19 +1,19 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Header file for class DRTRecordedSnoutSequence
+ *  Header file for class DRTUDISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
-#ifndef DRTRSNS_H
-#define DRTRSNS_H
+#ifndef DRTUDIS_H
+#define DRTUDIS_H
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
@@ -21,9 +21,9 @@
 #include "dcmtk/dcmrt/drttypes.h"      // module-specific helper class
 
 
-/** Interface class for RecordedSnoutSequence (3008,00f0)
+/** Interface class for UDISequence (0018,100a)
  */
-class DCMTK_DCMRT_EXPORT DRTRecordedSnoutSequence
+class DCMTK_DCMRT_EXPORT DRTUDISequence
   : protected DRTTypes
 {
 
@@ -90,45 +90,45 @@ class DCMTK_DCMRT_EXPORT DRTRecordedSnoutSequence
 
       // --- get DICOM attribute values ---
 
-        /** get AccessoryCode (300a,00f9)
+        /** get DeviceDescription (0050,0020)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getAccessoryCode(OFString &value, const signed long pos = 0) const;
+        OFCondition getDeviceDescription(OFString &value, const signed long pos = 0) const;
 
-        /** get SnoutID (300a,030f)
+        /** get UniqueDeviceIdentifier (0018,1009)
          *  @param  value  reference to variable in which the value should be stored
          *  @param  pos    index of the value to get (0..vm-1), -1 for all components
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition getSnoutID(OFString &value, const signed long pos = 0) const;
+        OFCondition getUniqueDeviceIdentifier(OFString &value, const signed long pos = 0) const;
 
       // --- set DICOM attribute values ---
 
-        /** set AccessoryCode (300a,00f9)
+        /** set DeviceDescription (0050,0020)
          *  @param  value  value to be set (single value only) or "" for no value
          *  @param  check  check 'value' for conformance with VR (LO) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setAccessoryCode(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setDeviceDescription(const OFString &value, const OFBool check = OFTrue);
 
-        /** set SnoutID (300a,030f)
+        /** set UniqueDeviceIdentifier (0018,1009)
          *  @param  value  value to be set (single value only) or "" for no value
-         *  @param  check  check 'value' for conformance with VR (SH) and VM (1) if enabled
+         *  @param  check  check 'value' for conformance with VR (UT) and VM (1) if enabled
          *  @return status, EC_Normal if successful, an error code otherwise
          */
-        OFCondition setSnoutID(const OFString &value, const OFBool check = OFTrue);
+        OFCondition setUniqueDeviceIdentifier(const OFString &value, const OFBool check = OFTrue);
 
       private:
 
         /// internal flag used to mark the empty default item
         /*const*/ OFBool EmptyDefaultItem;
 
-        /// AccessoryCode (300a,00f9) vr=LO, vm=1, type=3
-        DcmLongString AccessoryCode;
-        /// SnoutID (300a,030f) vr=SH, vm=1, type=1
-        DcmShortString SnoutID;
+        /// DeviceDescription (0050,0020) vr=LO, vm=1, type=3
+        DcmLongString DeviceDescription;
+        /// UniqueDeviceIdentifier (0018,1009) vr=UT, vm=1, type=1
+        DcmUnlimitedText UniqueDeviceIdentifier;
 
     };
 
@@ -137,21 +137,21 @@ class DCMTK_DCMRT_EXPORT DRTRecordedSnoutSequence
     /** (default) constructor
      *  @param emptyDefaultSequence internal flag used to mark the empty default sequence
      */
-    DRTRecordedSnoutSequence(const OFBool emptyDefaultSequence = OFFalse);
+    DRTUDISequence(const OFBool emptyDefaultSequence = OFFalse);
 
     /** copy constructor
      *  @param copy sequence object to be copied
      */
-    DRTRecordedSnoutSequence(const DRTRecordedSnoutSequence &copy);
+    DRTUDISequence(const DRTUDISequence &copy);
 
     /** destructor
      */
-    virtual ~DRTRecordedSnoutSequence();
+    virtual ~DRTUDISequence();
 
     /** assigment operator
      *  @param copy sequence object to be copied
      */
-    DRTRecordedSnoutSequence &operator=(const DRTRecordedSnoutSequence &copy);
+    DRTUDISequence &operator=(const DRTUDISequence &copy);
 
   // --- general methods ---
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtvls.h b/dcmrt/include/dcmtk/dcmrt/seq/drtvls.h
index c2374d6..3c46a9d 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtvls.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtvls.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTVOILUTSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtwps.h b/dcmrt/include/dcmtk/dcmrt/seq/drtwps.h
index 62fcd56..c85bb89 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtwps.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtwps.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTWedgePositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h
index e1c2a36..ce1e557 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTWADORetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h
index 964ba62..0fbc16c 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTWADORSRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtws.h b/dcmrt/include/dcmtk/dcmrt/seq/drtws.h
index 215e57c..08a3dcf 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtws.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtws.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTWedgeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h b/dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h
index 162768d..0a6e554 100644
--- a/dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h
+++ b/dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Header file for class DRTXDSRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/CMakeLists.txt b/dcmrt/libsrc/CMakeLists.txt
index c0447c3..ab28356 100644
--- a/dcmrt/libsrc/CMakeLists.txt
+++ b/dcmrt/libsrc/CMakeLists.txt
@@ -1,4 +1,4 @@
 # create library from source files
-DCMTK_ADD_LIBRARY(dcmrt drtdose drtimage drtplan drtstrct drttreat drtionpl drtiontr drmdose drmimage drmplan drmstrct drttypes drtaadcs drtadcs drtads drtafs drtags drtajcs drtarics drtas1 drtas5 drtas6 drtas7 drtass drtbads drtbas drtbcps drtbl2 drtbl5 drtbldls drtbldps drtblds1 drtblds5 drtblds6 drtbldts drtbrcss drtbrdrs drtbrs drtbs drtbss drtbvcps drtcbars drtccs drtcctus drtcdrs drtces drtchs drtcims drtcis drtcncs drtcos drtcpas drtcpis drtcps drtcsas drtcs drtcshs drtcsis drtcss [...]
+DCMTK_ADD_LIBRARY(dcmrt drtdose drtimage drtplan drtstrct drttreat drtionpl drtiontr drmdose drmimage drmplan drmstrct drttypes drtaadcs drtadcs drtads drtafs drtags drtajcs drtas1 drtas5 drtas6 drtas7 drtass drtbads drtbas drtbcps drtbl2 drtbl5 drtbldls drtbldps drtblds1 drtblds5 drtblds6 drtbldts drtbrcss drtbrdrs drtbrs drtbs drtbss drtbvcps drtcbars drtccs drtcctus drtcdrs drtces drtcgis drtchs drtcims drtcis drtcncs drtcos drtcpas drtcpis drtcps drtcsas drtcs drtcshs drtcsis drtcss  [...]
 
 DCMTK_TARGET_LINK_MODULES(dcmrt ofstd oflog dcmdata dcmimgle)
diff --git a/dcmrt/libsrc/Makefile.dep b/dcmrt/libsrc/Makefile.dep
index e85cb72..ccb5d23 100644
--- a/dcmrt/libsrc/Makefile.dep
+++ b/dcmrt/libsrc/Makefile.dep
@@ -119,7 +119,8 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
@@ -129,16 +130,17 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \
- ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
- ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../include/dcmtk/dcmrt/seq/drtpsics.h \
  ../include/dcmtk/dcmrt/seq/drtpscs.h \
@@ -152,17 +154,17 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpsss.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \
  ../include/dcmtk/dcmrt/seq/drtrdros.h \
  ../include/dcmtk/dcmrt/seq/drtrwvms.h \
  ../include/dcmtk/dcmrt/seq/drtqds.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
  ../include/dcmtk/dcmrt/seq/drtrfors.h \
  ../include/dcmtk/dcmrt/seq/drtrsts.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h \
- ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -184,9 +186,13 @@ drmdose.o: drmdose.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtssrs.h \
  ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h \
  ../../ofstd/include/dcmtk/ofstd/ofbmanip.h
 drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/drmimage.h ../include/dcmtk/dcmrt/drtimage.h \
@@ -310,6 +316,7 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
  ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h \
  ../include/dcmtk/dcmrt/seq/drtcbars.h \
  ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \
  ../include/dcmtk/dcmrt/seq/drtces.h ../include/dcmtk/dcmrt/seq/drtois.h \
@@ -324,15 +331,16 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtblds5.h \
  ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
  ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \
- ../include/dcmtk/dcmrt/seq/drtfes.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtfes.h ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h \
  ../include/dcmtk/dcmrt/seq/drtmacds.h \
  ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtoas.h \
  ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
@@ -348,7 +356,9 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtporis.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrwvms.h \
  ../include/dcmtk/dcmrt/seq/drtqds.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
@@ -369,8 +379,12 @@ drmimage.o: drmimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
  ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtscris.h \
- ../include/dcmtk/dcmrt/seq/drtvls.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/seq/drtvls.h \
  ../../dcmimgle/include/dcmtk/dcmimgle/dcmimage.h \
  ../../dcmimgle/include/dcmtk/dcmimgle/dimoimg.h \
  ../../dcmimgle/include/dcmtk/dcmimgle/diimage.h \
@@ -525,27 +539,30 @@ drmplan.o: drmplan.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
  ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \
  ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \
  ../include/dcmtk/dcmrt/seq/drtbvcps.h \
  ../include/dcmtk/dcmrt/seq/drtrbas8.h \
  ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
  ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
  ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
@@ -561,8 +578,11 @@ drmplan.o: drmplan.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtporis.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -572,18 +592,22 @@ drmplan.o: drmplan.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrppss.h \
  ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
  ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \
- ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
- ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
  ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtss.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h ../include/dcmtk/dcmrt/seq/drtss.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtscris.h \
  ../include/dcmtk/dcmrt/seq/drttts.h \
  ../include/dcmtk/dcmrt/seq/drtbldts.h \
- ../include/dcmtk/dcmrt/seq/drttms9.h ../include/dcmtk/dcmrt/drmsrch.h
+ ../include/dcmtk/dcmrt/seq/drttms9.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drmsrch.h
 drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/drmstrct.h ../include/dcmtk/dcmrt/drtstrct.h \
  ../include/dcmtk/dcmrt/drttypes.h \
@@ -705,23 +729,25 @@ drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
  ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drteas.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../include/dcmtk/dcmrt/seq/drtpsics.h \
  ../include/dcmtk/dcmrt/seq/drtpscs.h \
@@ -735,19 +761,23 @@ drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpsss.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h ../include/dcmtk/dcmrt/seq/drtrros.h \
- ../include/dcmtk/dcmrt/seq/drtarics.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtrros.h \
  ../include/dcmtk/dcmrt/seq/drtrpps.h \
  ../include/dcmtk/dcmrt/seq/drtrecs.h \
- ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrics.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrrs.h \
  ../include/dcmtk/dcmrt/seq/drtrrros.h \
  ../include/dcmtk/dcmrt/seq/drtspccs.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
  ../include/dcmtk/dcmrt/seq/drtrfors.h \
  ../include/dcmtk/dcmrt/seq/drtrsts.h \
  ../include/dcmtk/dcmrt/seq/drtrses.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -756,15 +786,20 @@ drmstrct.o: drmstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrps.h \
  ../include/dcmtk/dcmrt/seq/drtrppss.h \
  ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \
- ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
+ ../include/dcmtk/dcmrt/seq/drtras.h \
  ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h \
- ../include/dcmtk/dcmrt/seq/drtssrs.h ../include/dcmtk/dcmrt/seq/drtdcs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h ../include/dcmtk/dcmrt/drmsrch.h
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtssrs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drmsrch.h
 drtaadcs.o: drtaadcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
@@ -1459,123 +1494,6 @@ drtajcs.o: drtajcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h
-drtarics.o: drtarics.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtarics.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
- ../../ofstd/include/dcmtk/ofstd/oftypes.h \
- ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
- ../../ofstd/include/dcmtk/ofstd/ofcast.h \
- ../../ofstd/include/dcmtk/ofstd/ofexport.h \
- ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
- ../../ofstd/include/dcmtk/ofstd/ofstream.h \
- ../include/dcmtk/dcmrt/drttypes.h \
- ../../ofstd/include/dcmtk/ofstd/ofcond.h \
- ../../ofstd/include/dcmtk/ofstd/ofstring.h \
- ../../ofstd/include/dcmtk/ofstd/ofvector.h \
- ../../oflog/include/dcmtk/oflog/oflog.h \
- ../../oflog/include/dcmtk/oflog/logger.h \
- ../../oflog/include/dcmtk/oflog/config.h \
- ../../oflog/include/dcmtk/oflog/config/defines.h \
- ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
- ../../oflog/include/dcmtk/oflog/loglevel.h \
- ../../oflog/include/dcmtk/oflog/tstring.h \
- ../../oflog/include/dcmtk/oflog/tchar.h \
- ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
- ../../oflog/include/dcmtk/oflog/appender.h \
- ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
- ../../oflog/include/dcmtk/oflog/layout.h \
- ../../oflog/include/dcmtk/oflog/streams.h \
- ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
- ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
- ../../oflog/include/dcmtk/oflog/spi/filter.h \
- ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
- ../../oflog/include/dcmtk/oflog/spi/logfact.h \
- ../../oflog/include/dcmtk/oflog/logmacro.h \
- ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
- ../../oflog/include/dcmtk/oflog/tracelog.h \
- ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
- ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
- ../../ofstd/include/dcmtk/ofstd/ofthread.h \
- ../../ofstd/include/dcmtk/ofstd/offile.h \
- ../../ofstd/include/dcmtk/ofstd/ofstd.h \
- ../../ofstd/include/dcmtk/ofstd/oftraits.h \
- ../../ofstd/include/dcmtk/ofstd/oflimits.h \
- ../../config/include/dcmtk/config/arith.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
- ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
- ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
- ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
- ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
- ../../ofstd/include/dcmtk/ofstd/ofmap.h \
- ../../ofstd/include/dcmtk/ofstd/ofutil.h \
- ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
- ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h
 drtas1.o: drtas1.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtas1.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
@@ -4709,8 +4627,8 @@ drtces.o: drtces.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h
-drtchs.o: drtchs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtchs.h \
+drtcgis.o: drtcgis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -4823,12 +4741,9 @@ drtchs.o: drtchs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbcps.h \
- ../include/dcmtk/dcmrt/seq/drtbrdrs.h \
- ../include/dcmtk/dcmrt/seq/drtcshs.h
-drtcims.o: drtcims.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtchs.o: drtchs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtchs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -4942,12 +4857,11 @@ drtcims.o: drtcims.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtcis.o: drtcis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtbcps.h \
+ ../include/dcmtk/dcmrt/seq/drtbrdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtcshs.h
+drtcims.o: drtcims.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5060,9 +4974,13 @@ drtcis.o: drtcis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtcncs.o: drtcncs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
  ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtcis.o: drtcis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5175,10 +5093,9 @@ drtcncs.o: drtcncs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtcos.o: drtcos.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcos.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtcncs.o: drtcncs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5291,9 +5208,10 @@ drtcos.o: drtcos.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtcpas.o: drtcpas.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcpas.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtcos.o: drtcos.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcos.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5407,8 +5325,8 @@ drtcpas.o: drtcpas.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtcpis.o: drtcpis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcpis.h \
+drtcpas.o: drtcpas.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcpas.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5521,11 +5439,9 @@ drtcpis.o: drtcpis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h
-drtcps.o: drtcps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtcpis.o: drtcpis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcpis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5639,11 +5555,10 @@ drtcps.o: drtcps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbldps.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs1.h \
- ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h
-drtcs.o: drtcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcs.h \
+ ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h
+drtcps.o: drtcps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5757,9 +5672,11 @@ drtcs.o: drtcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h
-drtcsas.o: drtcsas.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcsas.h \
+ ../include/dcmtk/dcmrt/seq/drtbldps.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs1.h \
+ ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h
+drtcs.o: drtcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5872,9 +5789,10 @@ drtcsas.o: drtcsas.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtcshs.o: drtcshs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcshs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtcis.h
+drtcsas.o: drtcsas.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcsas.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -5988,8 +5906,8 @@ drtcshs.o: drtcshs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtcsis.o: drtcsis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcsis.h \
+drtcshs.o: drtcshs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcshs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6103,8 +6021,8 @@ drtcsis.o: drtcsis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtcss.o: drtcss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtcss.h \
+drtcsis.o: drtcsis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6217,10 +6135,9 @@ drtcss.o: drtcss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtdcs.o: drtdcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtcss.o: drtcss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtcss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6335,8 +6252,8 @@ drtdcs.o: drtdcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h
-drtdias.o: drtdias.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h \
+drtdcs.o: drtdcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6449,9 +6366,10 @@ drtdias.o: drtdias.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtdimcs.o: drtdimcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtdddps.o: drtdddps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdddps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6564,10 +6482,9 @@ drtdimcs.o: drtdimcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtdimrs.o: drtdimrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtddps.o: drtddps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtddps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6681,8 +6598,8 @@ drtdimrs.o: drtdimrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtdirs.o: drtdirs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
+drtdias.o: drtdias.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -6796,14 +6713,16 @@ drtdirs.o: drtdirs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/drtdose.h ../include/dcmtk/dcmrt/drttypes.h \
+drtdimcs.o: drtdimcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -6830,7 +6749,6 @@ drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -6910,82 +6828,9 @@ drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtbrs.h \
- ../include/dcmtk/dcmrt/seq/drtbrcss.h \
- ../include/dcmtk/dcmrt/seq/drtcsis.h \
- ../include/dcmtk/dcmrt/seq/drtcctus.h \
- ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
- ../include/dcmtk/dcmrt/seq/drtois.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtcsas.h \
- ../include/dcmtk/dcmrt/seq/drtdvhs.h \
- ../include/dcmtk/dcmrt/seq/drtdvrrs.h \
- ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
- ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \
- ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
- ../include/dcmtk/dcmrt/seq/drtopis.h \
- ../include/dcmtk/dcmrt/seq/drtpbcs.h \
- ../include/dcmtk/dcmrt/seq/drtpsics.h \
- ../include/dcmtk/dcmrt/seq/drtpscs.h \
- ../include/dcmtk/dcmrt/seq/drtppcs.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
- ../include/dcmtk/dcmrt/seq/drtporis.h \
- ../include/dcmtk/dcmrt/seq/drtprsis.h \
- ../include/dcmtk/dcmrt/seq/drtpsss.h \
- ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h \
- ../include/dcmtk/dcmrt/seq/drtrdros.h \
- ../include/dcmtk/dcmrt/seq/drtrwvms.h \
- ../include/dcmtk/dcmrt/seq/drtqds.h \
- ../include/dcmtk/dcmrt/seq/drtrppcs.h \
- ../include/dcmtk/dcmrt/seq/drtrfors.h \
- ../include/dcmtk/dcmrt/seq/drtrsts.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h \
- ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
- ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtdimrs.o: drtdimrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
- ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
- ../include/dcmtk/dcmrt/seq/drtrps.h \
- ../include/dcmtk/dcmrt/seq/drtrppss.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps.h \
- ../include/dcmtk/dcmrt/seq/drtrfgs.h \
- ../include/dcmtk/dcmrt/seq/drtrbs2.h \
- ../include/dcmtk/dcmrt/seq/drtrcps.h \
- ../include/dcmtk/dcmrt/seq/drtrbas2.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \
- ../include/dcmtk/dcmrt/seq/drtrtrs2.h \
- ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
- ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
- ../include/dcmtk/dcmrt/seq/drtssrs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h
-drtdrs.o: drtdrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7099,8 +6944,8 @@ drtdrs.o: drtdrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtds.o: drtds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtds.h \
+drtdirs.o: drtdirs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7213,18 +7058,15 @@ drtds.o: drtds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtdose.o: drtdose.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/drtdose.h ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
- ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -7251,6 +7093,7 @@ drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -7330,9 +7173,88 @@ drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtdss.o: drtdss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcsis.h \
+ ../include/dcmtk/dcmrt/seq/drtcctus.h \
+ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcsas.h \
+ ../include/dcmtk/dcmrt/seq/drtdvhs.h \
+ ../include/dcmtk/dcmrt/seq/drtdvrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
+ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtpbcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../include/dcmtk/dcmrt/seq/drtpscs.h \
+ ../include/dcmtk/dcmrt/seq/drtppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../include/dcmtk/dcmrt/seq/drtporis.h \
+ ../include/dcmtk/dcmrt/seq/drtprsis.h \
+ ../include/dcmtk/dcmrt/seq/drtpsss.h \
+ ../include/dcmtk/dcmrt/seq/drtpdecs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtrdros.h \
+ ../include/dcmtk/dcmrt/seq/drtrwvms.h \
+ ../include/dcmtk/dcmrt/seq/drtqds.h \
+ ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrfors.h \
+ ../include/dcmtk/dcmrt/seq/drtrsts.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrps.h \
+ ../include/dcmtk/dcmrt/seq/drtrppss.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps.h \
+ ../include/dcmtk/dcmrt/seq/drtrfgs.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs2.h \
+ ../include/dcmtk/dcmrt/seq/drtrcps.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas2.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../include/dcmtk/dcmrt/seq/drtrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrtrs2.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrscs.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtssrs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
+drtdrs.o: drtdrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7445,11 +7367,9 @@ drtdss.o: drtdss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtdvhs.o: drtdvhs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdvhs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtds.o: drtds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7563,9 +7483,9 @@ drtdvhs.o: drtdvhs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtdvrrs.h
-drtdvrrs.o: drtdvrrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtdvrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtdspcs.o: drtdspcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7678,9 +7598,10 @@ drtdvrrs.o: drtdvrrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drteas.o: drteas.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drteas.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtdss.o: drtdss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7793,9 +7714,11 @@ drteas.o: drteas.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtecs.o: drtecs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtdvhs.o: drtdvhs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdvhs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -7908,9 +7831,10 @@ drtecs.o: drtecs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtes.o: drtes.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtdvrrs.h
+drtdvrrs.o: drtdvrrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtdvrrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8023,15 +7947,11 @@ drtes.o: drtes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \
- ../include/dcmtk/dcmrt/seq/drtblds5.h \
- ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
- ../include/dcmtk/dcmrt/seq/drtpfms.h
-drtfds.o: drtfds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtfds.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
- ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drteas.o: drteas.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drteas.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
@@ -8143,8 +8063,8 @@ drtfds.o: drtfds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtfes.o: drtfes.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtfes.h \
+drtecs.o: drtecs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8258,8 +8178,8 @@ drtfes.o: drtfes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtfgs.o: drtfgs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtfgs.h \
+drtes.o: drtes.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtes.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8373,13 +8293,12 @@ drtfgs.o: drtfgs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrbs8.h \
- ../include/dcmtk/dcmrt/seq/drtbvcps.h \
- ../include/dcmtk/dcmrt/seq/drtrbas8.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
- ../include/dcmtk/dcmrt/seq/drtrds.h
-drtfgss.o: drtfgss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtfgss.h \
+ ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \
+ ../include/dcmtk/dcmrt/seq/drtblds5.h \
+ ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
+ ../include/dcmtk/dcmrt/seq/drtpfms.h
+drtfds.o: drtfds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtfds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8492,10 +8411,9 @@ drtfgss.o: drtfgss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtfsss.h
-drtfms.o: drtfms.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtfms.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtfes.o: drtfes.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtfes.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8609,8 +8527,8 @@ drtfms.o: drtfms.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtfsss.o: drtfsss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtfsss.h \
+drtfgs.o: drtfgs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtfgs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8723,9 +8641,14 @@ drtfsss.o: drtfsss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtgas.o: drtgas.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtgas.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs8.h \
+ ../include/dcmtk/dcmrt/seq/drtbvcps.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas8.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
+ ../include/dcmtk/dcmrt/seq/drtrds.h
+drtfgss.o: drtfgss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtfgss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8838,9 +8761,10 @@ drtgas.o: drtgas.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drthsdrs.o: drthsdrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtfsss.h
+drtfms.o: drtfms.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtfms.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -8954,8 +8878,8 @@ drthsdrs.o: drthsdrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtiais.o: drtiais.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+drtfsss.o: drtfsss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtfsss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9069,8 +8993,8 @@ drtiais.o: drtiais.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtians.o: drtians.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
+drtgas.o: drtgas.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtgas.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9184,8 +9108,8 @@ drtians.o: drtians.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtiblds.o: drtiblds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtiblds.h \
+drtgpis.o: drtgpis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9298,9 +9222,13 @@ drtiblds.o: drtiblds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtibls.o: drtibls.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtibls.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \
+ ../include/dcmtk/dcmrt/seq/drtajcs.h
+drthsdrs.o: drthsdrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9413,10 +9341,9 @@ drtibls.o: drtibls.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbss.h
-drtibs.o: drtibs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtibs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtiais.o: drtiais.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9529,26 +9456,9 @@ drtibs.o: drtibs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtas6.h ../include/dcmtk/dcmrt/seq/drtgas.h \
- ../include/dcmtk/dcmrt/seq/drtiblds.h \
- ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \
- ../include/dcmtk/dcmrt/seq/drticps.h \
- ../include/dcmtk/dcmrt/seq/drtbldps.h \
- ../include/dcmtk/dcmrt/seq/drtiwps.h \
- ../include/dcmtk/dcmrt/seq/drtlsds6.h \
- ../include/dcmtk/dcmrt/seq/drtrmss6.h \
- ../include/dcmtk/dcmrt/seq/drtrshs6.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs6.h \
- ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \
- ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \
- ../include/dcmtk/dcmrt/seq/drtrshs.h \
- ../include/dcmtk/dcmrt/seq/drtrbos6.h \
- ../include/dcmtk/dcmrt/seq/drtrds.h \
- ../include/dcmtk/dcmrt/seq/drtrris6.h \
- ../include/dcmtk/dcmrt/seq/drtsns.h
-drticpds.o: drticpds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drticpds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtians.o: drtians.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9661,15 +9571,9 @@ drticpds.o: drticpds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbldps.h \
- ../include/dcmtk/dcmrt/seq/drtcpas.h \
- ../include/dcmtk/dcmrt/seq/drtiwps.h \
- ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \
- ../include/dcmtk/dcmrt/seq/drtrmss7.h \
- ../include/dcmtk/dcmrt/seq/drtrshs7.h
-drticps.o: drticps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drticps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtiblds.o: drtiblds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtiblds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9782,15 +9686,9 @@ drticps.o: drticps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbldps.h \
- ../include/dcmtk/dcmrt/seq/drtiwps.h \
- ../include/dcmtk/dcmrt/seq/drtlsds6.h \
- ../include/dcmtk/dcmrt/seq/drtrmss6.h \
- ../include/dcmtk/dcmrt/seq/drtrshs6.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs6.h
-drtics.o: drtics.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtibls.o: drtibls.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtibls.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -9904,9 +9802,9 @@ drtics.o: drtics.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtiis.o: drtiis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h \
+ ../include/dcmtk/dcmrt/seq/drtbss.h
+drtibs.o: drtibs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtibs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -10019,15 +9917,35 @@ drtiis.o: drtiis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/drtimage.h ../include/dcmtk/dcmrt/drttypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtas6.h ../include/dcmtk/dcmrt/seq/drtddps.h \
+ ../include/dcmtk/dcmrt/seq/drtgas.h \
+ ../include/dcmtk/dcmrt/seq/drtiblds.h \
+ ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \
+ ../include/dcmtk/dcmrt/seq/drticps.h \
+ ../include/dcmtk/dcmrt/seq/drtbldps.h \
+ ../include/dcmtk/dcmrt/seq/drtiwps.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds6.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss6.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs6.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs6.h \
+ ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos6.h \
+ ../include/dcmtk/dcmrt/seq/drtrds.h \
+ ../include/dcmtk/dcmrt/seq/drtrris6.h \
+ ../include/dcmtk/dcmrt/seq/drtsns.h
+drticpds.o: drticpds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drticpds.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -10054,7 +9972,6 @@ drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -10134,82 +10051,24 @@ drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtbrs.h \
- ../include/dcmtk/dcmrt/seq/drtbrcss.h \
- ../include/dcmtk/dcmrt/seq/drtcsis.h \
- ../include/dcmtk/dcmrt/seq/drtcctus.h \
- ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h \
- ../include/dcmtk/dcmrt/seq/drtcbars.h \
- ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \
- ../include/dcmtk/dcmrt/seq/drtces.h ../include/dcmtk/dcmrt/seq/drtois.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtcsas.h \
- ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtds.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtes.h \
- ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \
- ../include/dcmtk/dcmrt/seq/drtblds5.h \
- ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
- ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \
- ../include/dcmtk/dcmrt/seq/drtfes.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
- ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \
- ../include/dcmtk/dcmrt/seq/drtmacds.h \
- ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
- ../include/dcmtk/dcmrt/seq/drtpbcs.h \
- ../include/dcmtk/dcmrt/seq/drtpsics.h \
- ../include/dcmtk/dcmrt/seq/drtpscs.h \
- ../include/dcmtk/dcmrt/seq/drtppcs.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
- ../include/dcmtk/dcmrt/seq/drtporis.h \
- ../include/dcmtk/dcmrt/seq/drtprsis.h \
- ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrwvms.h \
- ../include/dcmtk/dcmrt/seq/drtqds.h \
- ../include/dcmtk/dcmrt/seq/drtrppcs.h \
- ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
- ../include/dcmtk/dcmrt/seq/drtrpphs.h \
- ../include/dcmtk/dcmrt/seq/drtdimrs.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
- ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
- ../include/dcmtk/dcmrt/seq/drtrps.h \
- ../include/dcmtk/dcmrt/seq/drtrppss.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps5.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
- ../include/dcmtk/dcmrt/seq/drtras.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
- ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h \
- ../include/dcmtk/dcmrt/seq/drtvls.h
-drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/drtionpl.h ../include/dcmtk/dcmrt/drttypes.h \
+ ../include/dcmtk/dcmrt/seq/drtbldps.h \
+ ../include/dcmtk/dcmrt/seq/drtcpas.h \
+ ../include/dcmtk/dcmrt/seq/drtiwps.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss7.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs7.h
+drticps.o: drticps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drticps.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -10236,7 +10095,6 @@ drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -10316,95 +10174,1666 @@ drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtbrs.h \
- ../include/dcmtk/dcmrt/seq/drtbrcss.h \
- ../include/dcmtk/dcmrt/seq/drtcsis.h \
- ../include/dcmtk/dcmrt/seq/drtcctus.h \
- ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
- ../include/dcmtk/dcmrt/seq/drtois.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtcsas.h \
- ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \
- ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \
- ../include/dcmtk/dcmrt/seq/drtbvcps.h \
- ../include/dcmtk/dcmrt/seq/drtrbas8.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
- ../include/dcmtk/dcmrt/seq/drtrds.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtibs.h ../include/dcmtk/dcmrt/seq/drtas6.h \
- ../include/dcmtk/dcmrt/seq/drtgas.h \
- ../include/dcmtk/dcmrt/seq/drtiblds.h \
- ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \
- ../include/dcmtk/dcmrt/seq/drticps.h \
  ../include/dcmtk/dcmrt/seq/drtbldps.h \
  ../include/dcmtk/dcmrt/seq/drtiwps.h \
  ../include/dcmtk/dcmrt/seq/drtlsds6.h \
- ../include/dcmtk/dcmrt/seq/drtrmss6.h \
- ../include/dcmtk/dcmrt/seq/drtrshs6.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs6.h \
- ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \
- ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \
- ../include/dcmtk/dcmrt/seq/drtrshs.h \
- ../include/dcmtk/dcmrt/seq/drtrbos6.h \
- ../include/dcmtk/dcmrt/seq/drtrris6.h \
- ../include/dcmtk/dcmrt/seq/drtsns.h ../include/dcmtk/dcmrt/seq/drtitts.h \
- ../include/dcmtk/dcmrt/seq/drtbldts.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
- ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
- ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
- ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
- ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
- ../include/dcmtk/dcmrt/seq/drtshds.h \
- ../include/dcmtk/dcmrt/seq/drtpsics.h \
- ../include/dcmtk/dcmrt/seq/drtpscs.h \
- ../include/dcmtk/dcmrt/seq/drtppcs.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
- ../include/dcmtk/dcmrt/seq/drtporis.h \
- ../include/dcmtk/dcmrt/seq/drtprsis.h \
- ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrppcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpphs.h \
- ../include/dcmtk/dcmrt/seq/drtdimrs.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
- ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
- ../include/dcmtk/dcmrt/seq/drtrps.h \
- ../include/dcmtk/dcmrt/seq/drtrppss.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \
- ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
- ../include/dcmtk/dcmrt/seq/drtras.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
- ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h
-drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/drtiontr.h ../include/dcmtk/dcmrt/drttypes.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss6.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs6.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs6.h
+drtics.o: drtics.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtiis.o: drtiis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtimage.o: drtimage.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/drtimage.h ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcsis.h \
+ ../include/dcmtk/dcmrt/seq/drtcctus.h \
+ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h \
+ ../include/dcmtk/dcmrt/seq/drtcbars.h \
+ ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \
+ ../include/dcmtk/dcmrt/seq/drtces.h ../include/dcmtk/dcmrt/seq/drtois.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcsas.h \
+ ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtds.h \
+ ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
+ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtes.h \
+ ../include/dcmtk/dcmrt/seq/drtas5.h ../include/dcmtk/dcmrt/seq/drtags.h \
+ ../include/dcmtk/dcmrt/seq/drtblds5.h \
+ ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
+ ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \
+ ../include/dcmtk/dcmrt/seq/drtfes.h ../include/dcmtk/dcmrt/seq/drtgpis.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h \
+ ../include/dcmtk/dcmrt/seq/drtmacds.h \
+ ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtpbcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../include/dcmtk/dcmrt/seq/drtpscs.h \
+ ../include/dcmtk/dcmrt/seq/drtppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../include/dcmtk/dcmrt/seq/drtporis.h \
+ ../include/dcmtk/dcmrt/seq/drtprsis.h \
+ ../include/dcmtk/dcmrt/seq/drtpdecs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrwvms.h \
+ ../include/dcmtk/dcmrt/seq/drtqds.h \
+ ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrps.h \
+ ../include/dcmtk/dcmrt/seq/drtrppss.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps5.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
+ ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrscs.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/seq/drtvls.h
+drtionpl.o: drtionpl.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/drtionpl.h ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcsis.h \
+ ../include/dcmtk/dcmrt/seq/drtcctus.h \
+ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcsas.h \
+ ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \
+ ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \
+ ../include/dcmtk/dcmrt/seq/drtbvcps.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas8.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
+ ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtgpis.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtibs.h ../include/dcmtk/dcmrt/seq/drtas6.h \
+ ../include/dcmtk/dcmrt/seq/drtddps.h ../include/dcmtk/dcmrt/seq/drtgas.h \
+ ../include/dcmtk/dcmrt/seq/drtiblds.h \
+ ../include/dcmtk/dcmrt/seq/drtibls.h ../include/dcmtk/dcmrt/seq/drtbss.h \
+ ../include/dcmtk/dcmrt/seq/drticps.h \
+ ../include/dcmtk/dcmrt/seq/drtbldps.h \
+ ../include/dcmtk/dcmrt/seq/drtiwps.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds6.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss6.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs6.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs6.h \
+ ../include/dcmtk/dcmrt/seq/drtircs.h ../include/dcmtk/dcmrt/seq/drtiws.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds.h ../include/dcmtk/dcmrt/seq/drtrms.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos6.h \
+ ../include/dcmtk/dcmrt/seq/drtrris6.h \
+ ../include/dcmtk/dcmrt/seq/drtsns.h ../include/dcmtk/dcmrt/seq/drtitts.h \
+ ../include/dcmtk/dcmrt/seq/drtbldts.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
+ ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
+ ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
+ ../include/dcmtk/dcmrt/seq/drtshds.h \
+ ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../include/dcmtk/dcmrt/seq/drtpscs.h \
+ ../include/dcmtk/dcmrt/seq/drtppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../include/dcmtk/dcmrt/seq/drtporis.h \
+ ../include/dcmtk/dcmrt/seq/drtprsis.h \
+ ../include/dcmtk/dcmrt/seq/drtpdecs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrps.h \
+ ../include/dcmtk/dcmrt/seq/drtrppss.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrscs.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
+drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/drtiontr.h ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtcsis.h \
+ ../include/dcmtk/dcmrt/seq/drtcctus.h \
+ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcsas.h \
+ ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
+ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfgss.h \
+ ../include/dcmtk/dcmrt/seq/drtfsss.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmdrs.h ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
+ ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
+ ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
+ ../include/dcmtk/dcmrt/seq/drtshds.h \
+ ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../include/dcmtk/dcmrt/seq/drtpscs.h \
+ ../include/dcmtk/dcmrt/seq/drtppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../include/dcmtk/dcmrt/seq/drtporis.h \
+ ../include/dcmtk/dcmrt/seq/drtprsis.h \
+ ../include/dcmtk/dcmrt/seq/drtpdecs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrps.h \
+ ../include/dcmtk/dcmrt/seq/drtrppss.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps4.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrtrs4.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrscs.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drttms0.h \
+ ../include/dcmtk/dcmrt/seq/drttsibs.h \
+ ../include/dcmtk/dcmrt/seq/drtas7.h \
+ ../include/dcmtk/dcmrt/seq/drtbldls.h \
+ ../include/dcmtk/dcmrt/seq/drtdddps.h \
+ ../include/dcmtk/dcmrt/seq/drtgas.h \
+ ../include/dcmtk/dcmrt/seq/drticpds.h \
+ ../include/dcmtk/dcmrt/seq/drtbldps.h \
+ ../include/dcmtk/dcmrt/seq/drtcpas.h \
+ ../include/dcmtk/dcmrt/seq/drtiwps.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss7.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs7.h \
+ ../include/dcmtk/dcmrt/seq/drtrbls.h \
+ ../include/dcmtk/dcmrt/seq/drtrcos.h \
+ ../include/dcmtk/dcmrt/seq/drtrlsds.h \
+ ../include/dcmtk/dcmrt/seq/drtrrms.h \
+ ../include/dcmtk/dcmrt/seq/drtrrshs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsns.h ../include/dcmtk/dcmrt/seq/drtrws.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos7.h \
+ ../include/dcmtk/dcmrt/seq/drtrcdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrmdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrvis.h \
+ ../include/dcmtk/dcmrt/seq/drttscds.h \
+ ../include/dcmtk/dcmrt/seq/drttsmds.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
+drtipiqs.o: drtipiqs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \
+ ../include/dcmtk/dcmrt/seq/drtajcs.h
+drtircs.o: drtircs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtircs.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtiseis.o: drtiseis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtitts.o: drtitts.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtitts.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtbldts.h
+drtiwps.o: drtiwps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtiwps.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtiws.o: drtiws.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtiws.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtlsds.o: drtlsds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtlsds6.o: drtlsds6.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds6.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -10431,7 +11860,6 @@ drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -10510,94 +11938,9 @@ drtiontr.o: drtiontr.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtbrs.h \
- ../include/dcmtk/dcmrt/seq/drtbrcss.h \
- ../include/dcmtk/dcmrt/seq/drtcdrs.h \
- ../include/dcmtk/dcmrt/seq/drtcsis.h \
- ../include/dcmtk/dcmrt/seq/drtcctus.h \
- ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
- ../include/dcmtk/dcmrt/seq/drtois.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtcsas.h \
- ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfgss.h \
- ../include/dcmtk/dcmrt/seq/drtfsss.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
- ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmdrs.h \
- ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
- ../include/dcmtk/dcmrt/seq/drtopis.h \
- ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
- ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
- ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
- ../include/dcmtk/dcmrt/seq/drtshds.h \
- ../include/dcmtk/dcmrt/seq/drtpsics.h \
- ../include/dcmtk/dcmrt/seq/drtpscs.h \
- ../include/dcmtk/dcmrt/seq/drtppcs.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
- ../include/dcmtk/dcmrt/seq/drtporis.h \
- ../include/dcmtk/dcmrt/seq/drtprsis.h \
- ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrppcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpphs.h \
- ../include/dcmtk/dcmrt/seq/drtdimrs.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
- ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
- ../include/dcmtk/dcmrt/seq/drtrps.h \
- ../include/dcmtk/dcmrt/seq/drtrppss.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps4.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \
- ../include/dcmtk/dcmrt/seq/drtrtrs4.h \
- ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
- ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h \
- ../include/dcmtk/dcmrt/seq/drttms0.h \
- ../include/dcmtk/dcmrt/seq/drttsibs.h \
- ../include/dcmtk/dcmrt/seq/drtas7.h \
- ../include/dcmtk/dcmrt/seq/drtbldls.h \
- ../include/dcmtk/dcmrt/seq/drtgas.h \
- ../include/dcmtk/dcmrt/seq/drticpds.h \
- ../include/dcmtk/dcmrt/seq/drtbldps.h \
- ../include/dcmtk/dcmrt/seq/drtcpas.h \
- ../include/dcmtk/dcmrt/seq/drtiwps.h \
- ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \
- ../include/dcmtk/dcmrt/seq/drtrmss7.h \
- ../include/dcmtk/dcmrt/seq/drtrshs7.h \
- ../include/dcmtk/dcmrt/seq/drtrbls.h \
- ../include/dcmtk/dcmrt/seq/drtrcos.h \
- ../include/dcmtk/dcmrt/seq/drtrlsds.h \
- ../include/dcmtk/dcmrt/seq/drtrrms.h \
- ../include/dcmtk/dcmrt/seq/drtrrshs.h \
- ../include/dcmtk/dcmrt/seq/drtrsns.h ../include/dcmtk/dcmrt/seq/drtrws.h \
- ../include/dcmtk/dcmrt/seq/drtrbos7.h \
- ../include/dcmtk/dcmrt/seq/drtrcdrs.h \
- ../include/dcmtk/dcmrt/seq/drtrmdrs.h \
- ../include/dcmtk/dcmrt/seq/drtrvis.h \
- ../include/dcmtk/dcmrt/seq/drttscds.h \
- ../include/dcmtk/dcmrt/seq/drttsmds.h
-drtipiqs.o: drtipiqs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtlsds7.o: drtlsds7.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtlsds7.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -10710,12 +12053,9 @@ drtipiqs.o: drtipiqs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \
- ../include/dcmtk/dcmrt/seq/drtajcs.h
-drtircs.o: drtircs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtircs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtmacds.o: drtmacds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmacds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -10828,9 +12168,10 @@ drtircs.o: drtircs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtiseis.o: drtiseis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtecs.h
+drtmas.o: drtmas.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -10944,8 +12285,8 @@ drtiseis.o: drtiseis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtitts.o: drtitts.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtitts.h \
+drtmdrs.o: drtmdrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmdrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11058,10 +12399,9 @@ drtitts.o: drtitts.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbldts.h
-drtiwps.o: drtiwps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtiwps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtmls.o: drtmls.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11175,8 +12515,8 @@ drtiwps.o: drtiwps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtiws.o: drtiws.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtiws.h \
+drtmps.o: drtmps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11290,8 +12630,8 @@ drtiws.o: drtiws.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtlsds.o: drtlsds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtlsds.h \
+drtmris.o: drtmris.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmris.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11405,8 +12745,8 @@ drtlsds.o: drtlsds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtlsds6.o: drtlsds6.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtlsds6.h \
+drtmss.o: drtmss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11520,8 +12860,8 @@ drtlsds6.o: drtlsds6.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtlsds7.o: drtlsds7.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtlsds7.h \
+drtmucs.o: drtmucs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11634,9 +12974,10 @@ drtlsds7.o: drtlsds7.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtmacds.o: drtmacds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmacds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtoas.o: drtoas.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11750,9 +13091,9 @@ drtmacds.o: drtmacds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtecs.h
-drtmas.o: drtmas.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h
+drtois.o: drtois.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11865,9 +13206,11 @@ drtmas.o: drtmas.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtmdrs.o: drtmdrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmdrs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h
+drtopis.o: drtopis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -11980,9 +13323,13 @@ drtmdrs.o: drtmdrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtmls.o: drtmls.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmls.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \
+ ../include/dcmtk/dcmrt/seq/drtajcs.h
+drtos.o: drtos.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtos.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12095,9 +13442,11 @@ drtmls.o: drtmls.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtmps.o: drtmps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h
+drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12209,10 +13558,11 @@ drtmps.o: drtmps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
- ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtmss.o: drtmss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtpcs.o: drtpcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12325,9 +13675,10 @@ drtmss.o: drtmss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtmucs.o: drtmucs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtpcxs.o: drtpcxs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12441,9 +13792,13 @@ drtmucs.o: drtmucs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtoas.o: drtoas.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtpdecs.o: drtpdecs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpdecs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12557,9 +13912,10 @@ drtoas.o: drtoas.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h
-drtois.o: drtois.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtois.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h
+drtpdeds.o: drtpdeds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12672,11 +14028,9 @@ drtois.o: drtois.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h
-drtopis.o: drtopis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtpfms.o: drtpfms.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpfms.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12789,13 +14143,9 @@ drtopis.o: drtopis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \
- ../include/dcmtk/dcmrt/seq/drtajcs.h
-drtos.o: drtos.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtos.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtpics.o: drtpics.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -12908,17 +14258,16 @@ drtos.o: drtos.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpbcs.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/drtplan.h ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
- ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -12945,6 +14294,7 @@ drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -13024,9 +14374,99 @@ drtpbcs.o: drtpbcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtpcs.o: drtpcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \
+ ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \
+ ../include/dcmtk/dcmrt/seq/drtbrdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtcshs.h \
+ ../include/dcmtk/dcmrt/seq/drtrris9.h ../include/dcmtk/dcmrt/seq/drtbs.h \
+ ../include/dcmtk/dcmrt/seq/drtas1.h ../include/dcmtk/dcmrt/seq/drtags.h \
+ ../include/dcmtk/dcmrt/seq/drtblds1.h \
+ ../include/dcmtk/dcmrt/seq/drtbl2.h ../include/dcmtk/dcmrt/seq/drtcos.h \
+ ../include/dcmtk/dcmrt/seq/drtcps.h \
+ ../include/dcmtk/dcmrt/seq/drtbldps.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs1.h \
+ ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h \
+ ../include/dcmtk/dcmrt/seq/drtgas.h ../include/dcmtk/dcmrt/seq/drtpvis.h \
+ ../include/dcmtk/dcmrt/seq/drtpfms.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos1.h \
+ ../include/dcmtk/dcmrt/seq/drtrris1.h ../include/dcmtk/dcmrt/seq/drtws.h \
+ ../include/dcmtk/dcmrt/seq/drtbrs.h \
+ ../include/dcmtk/dcmrt/seq/drtbrcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcsis.h \
+ ../include/dcmtk/dcmrt/seq/drtcctus.h \
+ ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcsas.h \
+ ../include/dcmtk/dcmrt/seq/drtdimcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \
+ ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \
+ ../include/dcmtk/dcmrt/seq/drtbvcps.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas8.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtiseis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
+ ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
+ ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
+ ../include/dcmtk/dcmrt/seq/drtshds.h \
+ ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../include/dcmtk/dcmrt/seq/drtpscs.h \
+ ../include/dcmtk/dcmrt/seq/drtppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../include/dcmtk/dcmrt/seq/drtporis.h \
+ ../include/dcmtk/dcmrt/seq/drtprsis.h \
+ ../include/dcmtk/dcmrt/seq/drtpdecs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
  ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrps.h \
+ ../include/dcmtk/dcmrt/seq/drtrppss.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrscs.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h ../include/dcmtk/dcmrt/seq/drtss.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drttts.h \
+ ../include/dcmtk/dcmrt/seq/drtbldts.h \
+ ../include/dcmtk/dcmrt/seq/drttms9.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
+drtporcs.o: drtporcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -13141,8 +14581,8 @@ drtpcs.o: drtpcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h
-drtpcxs.o: drtpcxs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h \
+drtporis.o: drtporis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtporis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -13256,13 +14696,10 @@ drtpcxs.o: drtpcxs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtpdecs.o: drtpdecs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpdecs.h \
+ ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h
+drtppcs.o: drtppcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtppcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -13376,9 +14813,13 @@ drtpdecs.o: drtpdecs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h
-drtpfms.o: drtpfms.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpfms.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \
+ ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtprsis.o: drtprsis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -13491,9 +14932,11 @@ drtpfms.o: drtpfms.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtpics.o: drtpics.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h
+drtpscs.o: drtpscs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpscs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -13608,14 +15051,16 @@ drtpics.o: drtpics.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h
-drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/drtplan.h ../include/dcmtk/dcmrt/drttypes.h \
+drtpsics.o: drtpsics.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
  ../../ofstd/include/dcmtk/ofstd/ofcast.h \
  ../../ofstd/include/dcmtk/ofstd/ofexport.h \
  ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
  ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
@@ -13642,7 +15087,6 @@ drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../oflog/include/dcmtk/oflog/tracelog.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
  ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
- ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
  ../../ofstd/include/dcmtk/ofstd/ofthread.h \
  ../../ofstd/include/dcmtk/ofstd/offile.h \
@@ -13722,89 +15166,9 @@ drtplan.o: drtplan.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtadcs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \
- ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \
- ../include/dcmtk/dcmrt/seq/drtbrdrs.h \
- ../include/dcmtk/dcmrt/seq/drtcshs.h \
- ../include/dcmtk/dcmrt/seq/drtrris9.h ../include/dcmtk/dcmrt/seq/drtbs.h \
- ../include/dcmtk/dcmrt/seq/drtas1.h ../include/dcmtk/dcmrt/seq/drtags.h \
- ../include/dcmtk/dcmrt/seq/drtblds1.h \
- ../include/dcmtk/dcmrt/seq/drtbl2.h ../include/dcmtk/dcmrt/seq/drtcos.h \
- ../include/dcmtk/dcmrt/seq/drtcps.h \
- ../include/dcmtk/dcmrt/seq/drtbldps.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs1.h \
- ../include/dcmtk/dcmrt/seq/drtrds.h ../include/dcmtk/dcmrt/seq/drtwps.h \
- ../include/dcmtk/dcmrt/seq/drtgas.h ../include/dcmtk/dcmrt/seq/drtpvis.h \
- ../include/dcmtk/dcmrt/seq/drtpfms.h \
- ../include/dcmtk/dcmrt/seq/drtrbos1.h \
- ../include/dcmtk/dcmrt/seq/drtrris1.h ../include/dcmtk/dcmrt/seq/drtws.h \
- ../include/dcmtk/dcmrt/seq/drtbrs.h \
- ../include/dcmtk/dcmrt/seq/drtbrcss.h \
- ../include/dcmtk/dcmrt/seq/drtcsis.h \
- ../include/dcmtk/dcmrt/seq/drtcctus.h \
- ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
- ../include/dcmtk/dcmrt/seq/drtois.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtcsas.h \
- ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
- ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \
- ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \
- ../include/dcmtk/dcmrt/seq/drtbvcps.h \
- ../include/dcmtk/dcmrt/seq/drtrbas8.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
- ../include/dcmtk/dcmrt/seq/drtipiqs.h \
- ../include/dcmtk/dcmrt/seq/drtaadcs.h \
- ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
- ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
- ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
- ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
- ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
- ../include/dcmtk/dcmrt/seq/drtshds.h \
- ../include/dcmtk/dcmrt/seq/drtpsics.h \
- ../include/dcmtk/dcmrt/seq/drtpscs.h \
- ../include/dcmtk/dcmrt/seq/drtppcs.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
- ../include/dcmtk/dcmrt/seq/drtporis.h \
- ../include/dcmtk/dcmrt/seq/drtprsis.h \
- ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrppcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpphs.h \
- ../include/dcmtk/dcmrt/seq/drtdimrs.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
- ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h \
- ../include/dcmtk/dcmrt/seq/drtrps.h \
- ../include/dcmtk/dcmrt/seq/drtrppss.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \
- ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
- ../include/dcmtk/dcmrt/seq/drtras.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
- ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtss.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h \
- ../include/dcmtk/dcmrt/seq/drttts.h \
- ../include/dcmtk/dcmrt/seq/drtbldts.h \
- ../include/dcmtk/dcmrt/seq/drttms9.h
-drtporcs.o: drtporcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtpss.o: drtpss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -13918,9 +15282,11 @@ drtporcs.o: drtporcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtporis.o: drtporis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtporis.h \
+ ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
+ ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
+ ../include/dcmtk/dcmrt/seq/drtshds.h
+drtpsss.o: drtpsss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpsss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14033,11 +15399,9 @@ drtporis.o: drtporis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h
-drtppcs.o: drtppcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtppcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtpvis.o: drtpvis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtpvis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14150,14 +15514,9 @@ drtppcs.o: drtppcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \
- ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtprsis.o: drtprsis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtprsis.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtqds.o: drtqds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtqds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14271,10 +15630,12 @@ drtprsis.o: drtprsis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h
-drtpscs.o: drtpscs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpscs.h \
+ ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtras.o: drtras.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtras.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14388,9 +15749,18 @@ drtpscs.o: drtpscs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtpsics.o: drtpsics.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpsics.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtrbas2.o: drtrbas2.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas2.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14503,10 +15873,9 @@ drtpsics.o: drtpsics.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtpss.o: drtpss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrbas8.o: drtrbas8.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas8.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14619,12 +15988,9 @@ drtpss.o: drtpss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
- ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
- ../include/dcmtk/dcmrt/seq/drtshds.h
-drtpsss.o: drtpsss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpsss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrbls.o: drtrbls.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbls.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14738,8 +16104,8 @@ drtpsss.o: drtpsss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtpvis.o: drtpvis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtpvis.h \
+drtrbos1.o: drtrbos1.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos1.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14853,8 +16219,8 @@ drtpvis.o: drtpvis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtqds.o: drtqds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtqds.h \
+drtrbos6.o: drtrbos6.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos6.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -14967,13 +16333,9 @@ drtqds.o: drtqds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtras.o: drtras.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrbos7.o: drtrbos7.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbos7.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15086,19 +16448,9 @@ drtras.o: drtras.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtrss.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
- ../include/dcmtk/dcmrt/seq/drtpcxs.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtrbas2.o: drtrbas2.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbas2.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrbs2.o: drtrbs2.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs2.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15211,9 +16563,10 @@ drtrbas2.o: drtrbas2.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrbas8.o: drtrbas8.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbas8.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrcps.h
+drtrbs4.o: drtrbs4.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs4.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15326,9 +16679,10 @@ drtrbas8.o: drtrbas8.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrbls.o: drtrbls.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbls.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtbvcps.h
+drtrbs8.o: drtrbs8.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs8.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15441,9 +16795,10 @@ drtrbls.o: drtrbls.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrbos1.o: drtrbos1.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbos1.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtbvcps.h
+drtrcdrs.o: drtrcdrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrcdrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15557,8 +16912,8 @@ drtrbos1.o: drtrbos1.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrbos6.o: drtrbos6.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbos6.h \
+drtrcos.o: drtrcos.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrcos.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15672,8 +17027,8 @@ drtrbos6.o: drtrbos6.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrbos7.o: drtrbos7.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbos7.h \
+drtrcps.o: drtrcps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrcps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15787,8 +17142,8 @@ drtrbos7.o: drtrbos7.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrbs2.o: drtrbs2.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbs2.h \
+drtrcs.o: drtrcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -15902,9 +17257,9 @@ drtrbs2.o: drtrbs2.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrcps.h
-drtrbs4.o: drtrbs4.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbs4.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h
+drtrdros.o: drtrdros.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrdros.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16017,10 +17372,9 @@ drtrbs4.o: drtrbs4.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbvcps.h
-drtrbs8.o: drtrbs8.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrbs8.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrdrs1.o: drtrdrs1.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs1.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16133,10 +17487,9 @@ drtrbs8.o: drtrbs8.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtbvcps.h
-drtrcdrs.o: drtrcdrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrcdrs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrdrs6.o: drtrdrs6.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs6.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16250,8 +17603,8 @@ drtrcdrs.o: drtrcdrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrcos.o: drtrcos.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrcos.h \
+drtrdrs8.o: drtrdrs8.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16365,8 +17718,8 @@ drtrcos.o: drtrcos.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrcps.o: drtrcps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrcps.h \
+drtrds.o: drtrds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16480,8 +17833,8 @@ drtrcps.o: drtrcps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrcs.o: drtrcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h \
+drtrecs.o: drtrecs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrecs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16594,10 +17947,9 @@ drtrcs.o: drtrcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h
-drtrdros.o: drtrdros.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrdros.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrfgs.o: drtrfgs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrfgs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16710,9 +18062,12 @@ drtrdros.o: drtrdros.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrdrs1.o: drtrdrs1.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs1.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs2.h \
+ ../include/dcmtk/dcmrt/seq/drtrcps.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas2.h
+drtrfors.o: drtrfors.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrfors.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16825,9 +18180,11 @@ drtrdrs1.o: drtrdrs1.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrdrs6.o: drtrdrs6.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs6.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrsts.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h
+drtrics.o: drtrics.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrics.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -16940,9 +18297,11 @@ drtrdrs6.o: drtrdrs6.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrdrs8.o: drtrdrs8.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h
+drtrims.o: drtrims.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17055,9 +18414,11 @@ drtrdrs8.o: drtrdrs8.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrds.o: drtrds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtris.o: drtris.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtris.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17170,9 +18531,11 @@ drtrds.o: drtrds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrecs.o: drtrecs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrecs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtrlsds.o: drtrlsds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrlsds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17286,8 +18649,8 @@ drtrecs.o: drtrecs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrfgs.o: drtrfgs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrfgs.h \
+drtrmdrs.o: drtrmdrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrmdrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17400,12 +18763,9 @@ drtrfgs.o: drtrfgs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrbs2.h \
- ../include/dcmtk/dcmrt/seq/drtrcps.h \
- ../include/dcmtk/dcmrt/seq/drtrbas2.h
-drtrfors.o: drtrfors.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrfors.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrms.o: drtrms.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrms.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17518,11 +18878,9 @@ drtrfors.o: drtrfors.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrsts.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h
-drtrics.o: drtrics.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrics.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrmss6.o: drtrmss6.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss6.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17635,10 +18993,9 @@ drtrics.o: drtrics.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrims.o: drtrims.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrims.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrmss7.o: drtrmss7.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrmss7.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17751,11 +19108,9 @@ drtrims.o: drtrims.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtris.o: drtris.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrpcs.o: drtrpcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17869,10 +19224,9 @@ drtris.o: drtris.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrlsds.o: drtrlsds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrlsds.h \
+drtrpis.o: drtrpis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -17985,9 +19339,11 @@ drtrlsds.o: drtrlsds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrmdrs.o: drtrmdrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrmdrs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h
+drtrppcs.o: drtrppcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrppcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18100,9 +19456,10 @@ drtrmdrs.o: drtrmdrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrms.o: drtrms.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrms.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtrpphs.o: drtrpphs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18215,9 +19572,14 @@ drtrms.o: drtrms.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrmss6.o: drtrmss6.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrmss6.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtdimrs.h \
+ ../include/dcmtk/dcmrt/seq/drtdirs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
+ ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h
+drtrpps.o: drtrpps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrpps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18330,9 +19692,10 @@ drtrmss6.o: drtrmss6.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrmss7.o: drtrmss7.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrmss7.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrecs.h
+drtrppss.o: drtrppss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrppss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18446,8 +19809,8 @@ drtrmss7.o: drtrmss7.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrpcs.o: drtrpcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrpcs.h \
+drtrps.o: drtrps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18560,10 +19923,9 @@ drtrpcs.o: drtrpcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrpis.o: drtrpis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrpis.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrris1.o: drtrris1.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrris1.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18676,11 +20038,9 @@ drtrpis.o: drtrpis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h
-drtrppcs.o: drtrppcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrris6.o: drtrris6.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrris6.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18793,10 +20153,9 @@ drtrppcs.o: drtrppcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrpphs.o: drtrpphs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrpphs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrris9.o: drtrris9.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrris9.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -18909,14 +20268,9 @@ drtrpphs.o: drtrpphs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtdimrs.h \
- ../include/dcmtk/dcmrt/seq/drtdirs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
- ../include/dcmtk/dcmrt/seq/drtwrsrs.h \
- ../include/dcmtk/dcmrt/seq/drtwrs.h ../include/dcmtk/dcmrt/seq/drtxrs.h
-drtrpps.o: drtrpps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrpps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrrms.o: drtrrms.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrms.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19029,10 +20383,9 @@ drtrpps.o: drtrpps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrecs.h
-drtrppss.o: drtrppss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrppss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrros.o: drtrros.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrros.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19145,9 +20498,16 @@ drtrppss.o: drtrppss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrps.o: drtrps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrpps.h \
+ ../include/dcmtk/dcmrt/seq/drtrecs.h \
+ ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrrros.h \
+ ../include/dcmtk/dcmrt/seq/drtspccs.h
+drtrrpcs.o: drtrrpcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19260,9 +20620,10 @@ drtrps.o: drtrps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrris1.o: drtrris1.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrris1.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtrrros.o: drtrrros.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrros.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19376,8 +20737,8 @@ drtrris1.o: drtrris1.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrris6.o: drtrris6.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrris6.h \
+drtrrs.o: drtrrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19491,8 +20852,8 @@ drtrris6.o: drtrris6.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrris9.o: drtrris9.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrris9.h \
+drtrrshs.o: drtrrshs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrshs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19606,8 +20967,8 @@ drtrris9.o: drtrris9.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrrms.o: drtrrms.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrms.h \
+drtrrtps.o: drtrrtps.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19720,9 +21081,13 @@ drtrrms.o: drtrrms.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrros.o: drtrros.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrros.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrfgs.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs2.h \
+ ../include/dcmtk/dcmrt/seq/drtrcps.h \
+ ../include/dcmtk/dcmrt/seq/drtrbas2.h
+drtrrtps3.o: drtrrtps3.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19835,17 +21200,9 @@ drtrros.o: drtrros.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtarics.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtrpps.h \
- ../include/dcmtk/dcmrt/seq/drtrecs.h \
- ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \
- ../include/dcmtk/dcmrt/seq/drtrrros.h \
- ../include/dcmtk/dcmrt/seq/drtspccs.h
-drtrrpcs.o: drtrrpcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrrtps4.o: drtrrtps4.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps4.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -19958,10 +21315,9 @@ drtrrpcs.o: drtrrpcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrrros.o: drtrrros.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrros.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrrtps5.o: drtrrtps5.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrrtps5.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20075,8 +21431,8 @@ drtrrros.o: drtrrros.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrrs.o: drtrrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrs.h \
+drtrscs.o: drtrscs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrscs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20189,9 +21545,10 @@ drtrrs.o: drtrrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrrshs.o: drtrrshs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrshs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtrsers.o: drtrsers.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20304,9 +21661,12 @@ drtrrshs.o: drtrrshs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrrtps.o: drtrrtps.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtrses.o: drtrses.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20420,12 +21780,9 @@ drtrrtps.o: drtrrtps.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrfgs.h \
- ../include/dcmtk/dcmrt/seq/drtrbs2.h \
- ../include/dcmtk/dcmrt/seq/drtrcps.h \
- ../include/dcmtk/dcmrt/seq/drtrbas2.h
-drtrrtps3.o: drtrrtps3.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
+ ../include/dcmtk/dcmrt/seq/drtcis.h
+drtrshs.o: drtrshs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20539,8 +21896,8 @@ drtrrtps3.o: drtrrtps3.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrrtps4.o: drtrrtps4.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps4.h \
+drtrshs6.o: drtrshs6.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs6.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20654,8 +22011,8 @@ drtrrtps4.o: drtrrtps4.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrrtps5.o: drtrrtps5.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrrtps5.h \
+drtrshs7.o: drtrshs7.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrshs7.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20769,8 +22126,8 @@ drtrrtps5.o: drtrrtps5.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrscs.o: drtrscs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrscs.h \
+drtrsis.o: drtrsis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20883,10 +22240,9 @@ drtrscs.o: drtrscs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrsers.o: drtrsers.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrsns.o: drtrsns.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsns.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -20999,12 +22355,9 @@ drtrsers.o: drtrsers.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtris.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtrses.o: drtrses.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrsos.o: drtrsos.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21117,10 +22470,9 @@ drtrses.o: drtrses.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h
-drtrshs.o: drtrshs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrshs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtrsrs.o: drtrsrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21234,8 +22586,8 @@ drtrshs.o: drtrshs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrshs6.o: drtrshs6.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrshs6.h \
+drtrss.o: drtrss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21349,8 +22701,8 @@ drtrshs6.o: drtrshs6.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrshs7.o: drtrshs7.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrshs7.h \
+drtrsss.o: drtrsss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21464,8 +22816,8 @@ drtrshs7.o: drtrshs7.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrsis.o: drtrsis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsis.h \
+drtrsts.o: drtrsts.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrsts.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21578,9 +22930,10 @@ drtrsis.o: drtrsis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrsns.o: drtrsns.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsns.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h
+drtrtrs2.o: drtrtrs2.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrtrs2.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21693,9 +23046,11 @@ drtrsns.o: drtrsns.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrsos.o: drtrsos.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtrbs2.h \
+ ../include/dcmtk/dcmrt/seq/drtrcps.h
+drtrtrs4.o: drtrtrs4.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrtrs4.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21809,8 +23164,8 @@ drtrsos.o: drtrsos.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrsrs.o: drtrsrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsrs.h \
+drtrvis.o: drtrvis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrvis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -21924,8 +23279,8 @@ drtrsrs.o: drtrsrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrss.o: drtrss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrss.h \
+drtrws.o: drtrws.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrws.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22039,8 +23394,8 @@ drtrss.o: drtrss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrsss.o: drtrsss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsss.h \
+drtrwvms.o: drtrwvms.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtrwvms.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22153,9 +23508,13 @@ drtrsss.o: drtrsss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrsts.o: drtrsts.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrsts.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
+ ../include/dcmtk/dcmrt/seq/drtqds.h ../include/dcmtk/dcmrt/seq/drtccs.h \
+ ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtscris.o: drtscris.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22269,9 +23628,12 @@ drtrsts.o: drtrsts.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtcis.h
-drtrtrs2.o: drtrtrs2.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrtrs2.h \
+ ../include/dcmtk/dcmrt/seq/drtrsers.h \
+ ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtscs.o: drtscs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22385,10 +23747,9 @@ drtrtrs2.o: drtrtrs2.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrbs2.h \
- ../include/dcmtk/dcmrt/seq/drtrcps.h
-drtrtrs4.o: drtrtrs4.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrtrs4.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtsdcs.o: drtsdcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22501,9 +23862,10 @@ drtrtrs4.o: drtrtrs4.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrvis.o: drtrvis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrvis.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtsds.o: drtsds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22617,8 +23979,8 @@ drtrvis.o: drtrvis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrws.o: drtrws.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrws.h \
+drtshds.o: drtshds.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtshds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22732,8 +24094,8 @@ drtrws.o: drtrws.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtrwvms.o: drtrwvms.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtrwvms.h \
+drtsins.o: drtsins.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22847,12 +24209,10 @@ drtrwvms.o: drtrwvms.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h ../include/dcmtk/dcmrt/seq/drtecs.h \
- ../include/dcmtk/dcmrt/seq/drtqds.h ../include/dcmtk/dcmrt/seq/drtccs.h \
- ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtscris.o: drtscris.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtporcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtsis.o: drtsis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -22966,12 +24326,10 @@ drtscris.o: drtscris.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtecs.h
-drtsdcs.o: drtsdcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h \
+drtsns.o: drtsns.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsns.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23084,10 +24442,9 @@ drtsdcs.o: drtsdcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtsds.o: drtsds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtsds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtspccs.o: drtspccs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtspccs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23200,9 +24557,10 @@ drtsds.o: drtsds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtshds.o: drtshds.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtshds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtspcs.o: drtspcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23315,9 +24673,14 @@ drtshds.o: drtshds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtsis.o: drtsis.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \
+ ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \
+ ../include/dcmtk/dcmrt/seq/drtcims.h \
+ ../include/dcmtk/dcmrt/seq/drtmucs.h \
+ ../include/dcmtk/dcmrt/seq/drtrsos.h
+drtspgis.o: drtspgis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23431,10 +24794,12 @@ drtsis.o: drtsis.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtporcs.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtsns.o: drtsns.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtsns.h \
+ ../include/dcmtk/dcmrt/seq/drtipiqs.h \
+ ../include/dcmtk/dcmrt/seq/drtaadcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtafs.h \
+ ../include/dcmtk/dcmrt/seq/drtajcs.h
+drtsptcs.o: drtsptcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23547,9 +24912,10 @@ drtsns.o: drtsns.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtspccs.o: drtspccs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtspccs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtss.o: drtss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23662,10 +25028,9 @@ drtspccs.o: drtspccs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h
-drtspcs.o: drtspcs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtspcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtssrcs.o: drtssrcs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23779,13 +25144,9 @@ drtspcs.o: drtspcs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpcxs.h \
- ../include/dcmtk/dcmrt/seq/drtccs.h ../include/dcmtk/dcmrt/seq/drtcncs.h \
- ../include/dcmtk/dcmrt/seq/drtcims.h \
- ../include/dcmtk/dcmrt/seq/drtmucs.h \
- ../include/dcmtk/dcmrt/seq/drtrsos.h
-drtss.o: drtss.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtss.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
+drtssrs.o: drtssrs.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtssrs.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -23898,9 +25259,10 @@ drtss.o: drtss.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
- ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
-drtssrs.o: drtssrs.cc ../../config/include/dcmtk/config/osconfig.h \
- ../include/dcmtk/dcmrt/seq/drtssrs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtecs.h
+drtsss.o: drtsss.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtsss.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
  ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
@@ -24014,7 +25376,8 @@ drtssrs.o: drtssrs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
- ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtecs.h
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h
 drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/drtstrct.h ../include/dcmtk/dcmrt/drttypes.h \
  ../../ofstd/include/dcmtk/ofstd/oftypes.h \
@@ -24135,23 +25498,25 @@ drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
  ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
- ../include/dcmtk/dcmrt/seq/drteas.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../include/dcmtk/dcmrt/seq/drtpsics.h \
  ../include/dcmtk/dcmrt/seq/drtpscs.h \
@@ -24165,19 +25530,23 @@ drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpsss.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h ../include/dcmtk/dcmrt/seq/drtrros.h \
- ../include/dcmtk/dcmrt/seq/drtarics.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtrros.h \
  ../include/dcmtk/dcmrt/seq/drtrpps.h \
  ../include/dcmtk/dcmrt/seq/drtrecs.h \
- ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrics.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrrs.h \
  ../include/dcmtk/dcmrt/seq/drtrrros.h \
  ../include/dcmtk/dcmrt/seq/drtspccs.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
  ../include/dcmtk/dcmrt/seq/drtrfors.h \
  ../include/dcmtk/dcmrt/seq/drtrsts.h \
  ../include/dcmtk/dcmrt/seq/drtrses.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -24186,15 +25555,20 @@ drtstrct.o: drtstrct.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrps.h \
  ../include/dcmtk/dcmrt/seq/drtrppss.h \
  ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \
- ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
+ ../include/dcmtk/dcmrt/seq/drtras.h \
  ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h \
- ../include/dcmtk/dcmrt/seq/drtssrs.h ../include/dcmtk/dcmrt/seq/drtdcs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtssrs.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
 drttms0.o: drttms0.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drttms0.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
@@ -24545,24 +25919,27 @@ drttreat.o: drttreat.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
  ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfgss.h \
  ../include/dcmtk/dcmrt/seq/drtfsss.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../include/dcmtk/dcmrt/seq/drtpsics.h \
  ../include/dcmtk/dcmrt/seq/drtpscs.h \
@@ -24575,8 +25952,11 @@ drttreat.o: drttreat.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtporis.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -24586,17 +25966,22 @@ drttreat.o: drttreat.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrppss.h \
  ../include/dcmtk/dcmrt/seq/drtrrtps4.h \
  ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrss.h \
  ../include/dcmtk/dcmrt/seq/drtrtrs4.h \
  ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
  ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtscris.h \
  ../include/dcmtk/dcmrt/seq/drttscds.h \
- ../include/dcmtk/dcmrt/seq/drttsmds.h
+ ../include/dcmtk/dcmrt/seq/drttsmds.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
 drttscds.o: drttscds.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drttscds.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
@@ -24829,12 +26214,15 @@ drttsibs.o: drttsibs.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h \
  ../include/dcmtk/dcmrt/seq/drtas7.h \
  ../include/dcmtk/dcmrt/seq/drtbldls.h \
+ ../include/dcmtk/dcmrt/seq/drtdddps.h \
  ../include/dcmtk/dcmrt/seq/drtgas.h \
  ../include/dcmtk/dcmrt/seq/drticpds.h \
  ../include/dcmtk/dcmrt/seq/drtbldps.h \
  ../include/dcmtk/dcmrt/seq/drtcpas.h \
  ../include/dcmtk/dcmrt/seq/drtiwps.h \
  ../include/dcmtk/dcmrt/seq/drtlsds7.h ../include/dcmtk/dcmrt/seq/drtos.h \
+ ../include/dcmtk/dcmrt/seq/drtois.h ../include/dcmtk/dcmrt/seq/drtics.h \
+ ../include/dcmtk/dcmrt/seq/drtecs.h ../include/dcmtk/dcmrt/seq/drtpics.h \
  ../include/dcmtk/dcmrt/seq/drtrmss7.h \
  ../include/dcmtk/dcmrt/seq/drtrshs7.h \
  ../include/dcmtk/dcmrt/seq/drtrbls.h \
@@ -25192,6 +26580,121 @@ drttypes.o: drttypes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
  ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
+drtudis.o: drtudis.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/dcmrt/drttypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctk.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctypes.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcswap.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcxfer.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvr.h \
+ ../../ofstd/include/dcmtk/ofstd/ofglobal.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcistrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcostrma.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dctag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicent.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dchashdi.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdict.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdeftag.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcobject.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcstack.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcelem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dclist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcmetinf.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdatset.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcsequen.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcfilefo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdicdir.h \
+ ../../ofstd/include/dcmtk/ofstd/ofmap.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdirrec.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrulup.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrul.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixseq.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcofsetl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcbytstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrae.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrur.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcchrstr.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlo.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrlt.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpn.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsh.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrst.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvruc.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrut.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrobow.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcpixel.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrpobw.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcovlay.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrat.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrss.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrus.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrsl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfl.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrfd.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrof.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrod.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcvrol.h \
+ ../../dcmdata/include/dcmtk/dcmdata/cmdlnarg.h
 drtvls.o: drtvls.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtvls.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
diff --git a/dcmrt/libsrc/Makefile.in b/dcmrt/libsrc/Makefile.in
index 30c5409..56cf836 100644
--- a/dcmrt/libsrc/Makefile.in
+++ b/dcmrt/libsrc/Makefile.in
@@ -23,35 +23,38 @@ LOCALDEFS =
 
 objs = drtdose.o drtimage.o drtplan.o drtstrct.o drttreat.o drtionpl.o drtiontr.o \
 	drmdose.o drmimage.o drmplan.o drmstrct.o drttypes.o \
-	drtaadcs.o drtadcs.o drtads.o drtafs.o drtags.o drtajcs.o drtarics.o \
-	drtas1.o drtas5.o drtas6.o drtas7.o drtass.o drtbads.o drtbas.o \
-	drtbcps.o drtbl2.o drtbl5.o drtbldls.o drtbldps.o drtblds1.o drtblds5.o \
-	drtblds6.o drtbldts.o drtbrcss.o drtbrdrs.o drtbrs.o drtbs.o drtbss.o \
-	drtbvcps.o drtcbars.o drtccs.o drtcctus.o drtcdrs.o drtces.o drtchs.o \
+	drtaadcs.o drtadcs.o drtads.o drtafs.o drtags.o drtajcs.o drtas1.o \
+	drtas5.o drtas6.o drtas7.o drtass.o drtbads.o drtbas.o drtbcps.o \
+	drtbl2.o drtbl5.o drtbldls.o drtbldps.o drtblds1.o drtblds5.o drtblds6.o \
+	drtbldts.o drtbrcss.o drtbrdrs.o drtbrs.o drtbs.o drtbss.o drtbvcps.o \
+	drtcbars.o drtccs.o drtcctus.o drtcdrs.o drtces.o drtcgis.o drtchs.o \
 	drtcims.o drtcis.o drtcncs.o drtcos.o drtcpas.o drtcpis.o drtcps.o \
-	drtcsas.o drtcs.o drtcshs.o drtcsis.o drtcss.o drtdcs.o drtdias.o \
-	drtdimcs.o drtdimrs.o drtdirs.o drtdrs.o drtds.o drtdspcs.o drtdss.o \
-	drtdvhs.o drtdvrrs.o drteas.o drtecs.o drtes.o drtfds.o drtfes.o drtfgs.o \
-	drtfgss.o drtfms.o drtfsss.o drtgas.o drthsdrs.o drtiais.o drtians.o \
-	drtiblds.o drtibls.o drtibs.o drticpds.o drticps.o drtics.o drtiis.o \
-	drtipiqs.o drtircs.o drtiseis.o drtitts.o drtiwps.o drtiws.o drtlsds6.o \
-	drtlsds7.o drtlsds.o drtmacds.o drtmas.o drtmdrs.o drtmls.o drtmps.o \
-	drtmss.o drtmucs.o drtoas.o drtois.o drtopis.o drtos.o drtpbcs.o drtpcs.o \
-	drtpcxs.o drtpdecs.o drtpfms.o drtpics.o drtporcs.o drtporis.o drtppcs.o \
-	drtprsis.o drtpscs.o drtpsics.o drtpss.o drtpsss.o drtpvis.o drtqds.o \
-	drtras.o drtrbas2.o drtrbas8.o drtrbls.o drtrbos1.o drtrbos6.o drtrbos7.o \
-	drtrbs2.o drtrbs4.o drtrbs8.o drtrcdrs.o drtrcos.o drtrcps.o drtrcs.o \
-	drtrdros.o drtrdrs1.o drtrdrs6.o drtrdrs8.o drtrds.o drtrecs.o drtrfgs.o \
-	drtrfors.o drtrics.o drtrims.o drtris.o drtrlsds.o drtrmdrs.o drtrms.o \
-	drtrmss6.o drtrmss7.o drtrpcs.o drtrpis.o drtrppcs.o drtrpphs.o drtrpps.o \
-	drtrppss.o drtrps.o drtrris1.o drtrris6.o drtrris9.o drtrrms.o drtrros.o \
-	drtrrpcs.o drtrrros.o drtrrs.o drtrrshs.o drtrrtps3.o drtrrtps4.o \
-	drtrrtps5.o drtrrtps.o drtrscs.o drtrsers.o drtrses.o drtrshs6.o \
-	drtrshs7.o drtrshs.o drtrsis.o drtrsns.o drtrsos.o drtrsrs.o drtrss.o \
-	drtrsss.o drtrsts.o drtrtrs2.o drtrtrs4.o drtrvis.o drtrws.o drtrwvms.o \
-	drtscris.o drtsdcs.o drtsds.o drtshds.o drtsis.o drtsns.o drtspccs.o \
-	drtspcs.o drtss.o drtssrs.o drttms0.o drttms9.o drttscds.o drttsibs.o \
-	drttsmds.o drttts.o drtvls.o drtwps.o drtwrs.o drtwrsrs.o drtws.o drtxrs.o
+	drtcsas.o drtcs.o drtcshs.o drtcsis.o drtcss.o drtdcs.o drtdddps.o \
+	drtddps.o drtdias.o drtdimcs.o drtdimrs.o drtdirs.o drtdrs.o drtds.o \
+	drtdspcs.o drtdss.o  drtdvhs.o drtdvrrs.o drteas.o drtecs.o drtes.o \
+	drtfds.o drtfes.o drtfgs.o  drtfgss.o drtfms.o drtfsss.o drtgas.o \
+	drtgpis.o drthsdrs.o drtiais.o drtians.o  drtiblds.o drtibls.o drtibs.o \
+	drticpds.o drticps.o drtics.o drtiis.o  drtipiqs.o drtircs.o drtiseis.o \
+	drtitts.o drtiwps.o drtiws.o drtlsds6.o  drtlsds7.o drtlsds.o drtmacds.o \
+	drtmas.o drtmdrs.o drtmls.o drtmps.o drtmris.o  drtmss.o drtmucs.o \
+	drtoas.o drtois.o drtopis.o drtos.o drtpbcs.o drtpcs.o  drtpcxs.o \
+	drtpdecs.o drtpdeds.o drtpfms.o drtpics.o drtporcs.o drtporis.o \
+	drtppcs.o drtprsis.o drtpscs.o drtpsics.o drtpss.o drtpsss.o drtpvis.o \
+	drtqds.o drtras.o drtrbas2.o drtrbas8.o drtrbls.o drtrbos1.o drtrbos6.o \
+	drtrbos7.o drtrbs2.o drtrbs4.o drtrbs8.o drtrcdrs.o drtrcos.o drtrcps.o \
+	drtrcs.o  drtrdros.o drtrdrs1.o drtrdrs6.o drtrdrs8.o drtrds.o drtrecs.o \
+	drtrfgs.o drtrfors.o drtrics.o drtrims.o drtris.o drtrlsds.o drtrmdrs.o \
+	drtrms.o drtrmss6.o drtrmss7.o drtrpcs.o drtrpis.o drtrppcs.o drtrpphs.o \
+	drtrpps.o drtrppss.o drtrps.o drtrris1.o drtrris6.o drtrris9.o drtrrms.o \
+	drtrros.o drtrrpcs.o drtrrros.o drtrrs.o drtrrshs.o drtrrtps3.o \
+	drtrrtps4.o drtrrtps5.o drtrrtps.o drtrscs.o drtrsers.o drtrses.o \
+	drtrshs6.o drtrshs7.o drtrshs.o drtrsis.o drtrsns.o drtrsos.o drtrsrs.o \
+	drtrss.o drtrsss.o drtrsts.o drtrtrs2.o drtrtrs4.o drtrvis.o drtrws.o \
+	drtrwvms.o drtscris.o drtscs.o drtsdcs.o drtsds.o drtshds.o drtsins.o \
+	drtsis.o drtsns.o drtspccs.o drtspcs.o drtspgis.o drtsptcs.o drtss.o \
+	drtssrcs.o drtssrs.o drtsss.o drttms0.o drttms9.o drttscds.o drttsibs.o \
+	drttsmds.o drttts.o drtudis.o drtvls.o drtwps.o drtwrs.o drtwrsrs.o \
+	drtws.o drtxrs.o
 
 library = libdcmrt.$(LIBEXT)
 
diff --git a/dcmrt/libsrc/drtaadcs.cc b/dcmrt/libsrc/drtaadcs.cc
index c25a13a..bf66a33 100644
--- a/dcmrt/libsrc/drtaadcs.cc
+++ b/dcmrt/libsrc/drtaadcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTAssigningAgencyOrDepartmentCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item::Item(const OFBool emptyDefault
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTAssigningAgencyOrDepartmentCodeSequence::Item &DRTAssigningAgencyOrDepartment
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTAssigningAgencyOrDepartmentCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTAssigningAgencyOrDepartmentCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::read(DcmItem &item
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AssigningAgencyOrDepartmentCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AssigningAgencyOrDepartmentCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AssigningAgencyOrDepartmentCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::write(DcmItem &ite
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AssigningAgencyOrDepartmentCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AssigningAgencyOrDepartmentCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AssigningAgencyOrDepartmentCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AssigningAgencyOrDepartmentCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::getMappingResource
 }
 
 
+OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::setMappingResource
 }
 
 
+OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTAssigningAgencyOrDepartmentCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtadcs.cc b/dcmrt/libsrc/drtadcs.cc
index a350a8e..0a40d96 100644
--- a/dcmrt/libsrc/drtadcs.cc
+++ b/dcmrt/libsrc/drtadcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTAdmittingDiagnosesCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTAdmittingDiagnosesCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTAdmittingDiagnosesCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTAdmittingDiagnosesCodeSequence::Item &DRTAdmittingDiagnosesCodeSequence::Item
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTAdmittingDiagnosesCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTAdmittingDiagnosesCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AdmittingDiagnosesCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AdmittingDiagnosesCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AdmittingDiagnosesCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AdmittingDiagnosesCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AdmittingDiagnosesCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AdmittingDiagnosesCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AdmittingDiagnosesCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AdmittingDiagnosesCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AdmittingDiagnosesCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AdmittingDiagnosesCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AdmittingDiagnosesCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AdmittingDiagnosesCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AdmittingDiagnosesCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AdmittingDiagnosesCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTAdmittingDiagnosesCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTAdmittingDiagnosesCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTAdmittingDiagnosesCodeSequence::Item::setMappingResource(const OF
 }
 
 
+OFCondition DRTAdmittingDiagnosesCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTAdmittingDiagnosesCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtads.cc b/dcmrt/libsrc/drtads.cc
index b5f23b8..7fcd882 100644
--- a/dcmrt/libsrc/drtads.cc
+++ b/dcmrt/libsrc/drtads.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTAdditionalDrugSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTAdditionalDrugSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTAdditionalDrugSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTAdditionalDrugSequence::Item &DRTAdditionalDrugSequence::Item::operator=(cons
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTAdditionalDrugSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTAdditionalDrugSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTAdditionalDrugSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AdditionalDrugSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AdditionalDrugSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AdditionalDrugSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AdditionalDrugSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AdditionalDrugSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AdditionalDrugSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AdditionalDrugSequence");
@@ -186,6 +192,7 @@ OFCondition DRTAdditionalDrugSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AdditionalDrugSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AdditionalDrugSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AdditionalDrugSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AdditionalDrugSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AdditionalDrugSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AdditionalDrugSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AdditionalDrugSequence");
@@ -303,6 +310,15 @@ OFCondition DRTAdditionalDrugSequence::Item::getMappingResource(OFString &value,
 }
 
 
+OFCondition DRTAdditionalDrugSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTAdditionalDrugSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTAdditionalDrugSequence::Item::setMappingResource(const OFString &
 }
 
 
+OFCondition DRTAdditionalDrugSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTAdditionalDrugSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtafs.cc b/dcmrt/libsrc/drtafs.cc
index 86fa43f..45e04c5 100644
--- a/dcmrt/libsrc/drtafs.cc
+++ b/dcmrt/libsrc/drtafs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTAssigningFacilitySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtags.cc b/dcmrt/libsrc/drtags.cc
index d84ca15..0b61ab8 100644
--- a/dcmrt/libsrc/drtags.cc
+++ b/dcmrt/libsrc/drtags.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTApplicatorGeometrySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtajcs.cc b/dcmrt/libsrc/drtajcs.cc
index 17a0ff6..35f51ee 100644
--- a/dcmrt/libsrc/drtajcs.cc
+++ b/dcmrt/libsrc/drtajcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTAssigningJurisdictionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTAssigningJurisdictionCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTAssigningJurisdictionCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTAssigningJurisdictionCodeSequence::Item &DRTAssigningJurisdictionCodeSequence
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTAssigningJurisdictionCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTAssigningJurisdictionCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AssigningJurisdictionCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AssigningJurisdictionCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AssigningJurisdictionCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "AssigningJurisdictionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AssigningJurisdictionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AssigningJurisdictionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AssigningJurisdictionCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AssigningJurisdictionCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AssigningJurisdictionCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AssigningJurisdictionCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "AssigningJurisdictionCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AssigningJurisdictionCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AssigningJurisdictionCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AssigningJurisdictionCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::getMappingResource(OFStr
 }
 
 
+OFCondition DRTAssigningJurisdictionCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTAssigningJurisdictionCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTAssigningJurisdictionCodeSequence::Item::setMappingResource(const
 }
 
 
+OFCondition DRTAssigningJurisdictionCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTAssigningJurisdictionCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtas1.cc b/dcmrt/libsrc/drtas1.cc
index 4c06a73..233e266 100644
--- a/dcmrt/libsrc/drtas1.cc
+++ b/dcmrt/libsrc/drtas1.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTApplicatorSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtas5.cc b/dcmrt/libsrc/drtas5.cc
index 9f4901a..6c157b9 100644
--- a/dcmrt/libsrc/drtas5.cc
+++ b/dcmrt/libsrc/drtas5.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTApplicatorSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtas6.cc b/dcmrt/libsrc/drtas6.cc
index 304bd0a..af97845 100644
--- a/dcmrt/libsrc/drtas6.cc
+++ b/dcmrt/libsrc/drtas6.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTApplicatorSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtas7.cc b/dcmrt/libsrc/drtas7.cc
index 1abdea1..ad1c250 100644
--- a/dcmrt/libsrc/drtas7.cc
+++ b/dcmrt/libsrc/drtas7.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTApplicatorSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtass.cc b/dcmrt/libsrc/drtass.cc
index 5578b57..1a2d440 100644
--- a/dcmrt/libsrc/drtass.cc
+++ b/dcmrt/libsrc/drtass.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTApplicationSetupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtbads.cc b/dcmrt/libsrc/drtbads.cc
index 55e4dee..fde1984 100644
--- a/dcmrt/libsrc/drtbads.cc
+++ b/dcmrt/libsrc/drtbads.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBrachyAccessoryDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtbas.cc b/dcmrt/libsrc/drtbas.cc
index 55a7497..bf640f3 100644
--- a/dcmrt/libsrc/drtbas.cc
+++ b/dcmrt/libsrc/drtbas.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTContrastBolusAgentSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTContrastBolusAgentSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTContrastBolusAgentSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTContrastBolusAgentSequence::Item &DRTContrastBolusAgentSequence::Item::operat
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTContrastBolusAgentSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTContrastBolusAgentSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTContrastBolusAgentSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ContrastBolusAgentSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ContrastBolusAgentSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ContrastBolusAgentSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ContrastBolusAgentSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ContrastBolusAgentSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ContrastBolusAgentSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ContrastBolusAgentSequence");
@@ -186,6 +192,7 @@ OFCondition DRTContrastBolusAgentSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ContrastBolusAgentSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ContrastBolusAgentSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ContrastBolusAgentSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ContrastBolusAgentSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ContrastBolusAgentSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ContrastBolusAgentSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ContrastBolusAgentSequence");
@@ -303,6 +310,15 @@ OFCondition DRTContrastBolusAgentSequence::Item::getMappingResource(OFString &va
 }
 
 
+OFCondition DRTContrastBolusAgentSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTContrastBolusAgentSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTContrastBolusAgentSequence::Item::setMappingResource(const OFStri
 }
 
 
+OFCondition DRTContrastBolusAgentSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTContrastBolusAgentSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtbcps.cc b/dcmrt/libsrc/drtbcps.cc
index 1eac2ef..e2b4147 100644
--- a/dcmrt/libsrc/drtbcps.cc
+++ b/dcmrt/libsrc/drtbcps.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBrachyControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtbl2.cc b/dcmrt/libsrc/drtbl2.cc
index f86a670..b3934e1 100644
--- a/dcmrt/libsrc/drtbl2.cc
+++ b/dcmrt/libsrc/drtbl2.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBlockSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -33,7 +33,8 @@ DRTBlockSequenceInRTBeamsModule::Item::Item(const OFBool emptyDefaultItem)
     BlockTrayID(DCM_BlockTrayID),
     BlockType(DCM_BlockType),
     MaterialID(DCM_MaterialID),
-    SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance)
+    SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance),
+    TrayAccessoryCode(DCM_TrayAccessoryCode)
 {
 }
 
@@ -52,7 +53,8 @@ DRTBlockSequenceInRTBeamsModule::Item::Item(const Item &copy)
     BlockTrayID(copy.BlockTrayID),
     BlockType(copy.BlockType),
     MaterialID(copy.MaterialID),
-    SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance)
+    SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance),
+    TrayAccessoryCode(copy.TrayAccessoryCode)
 {
 }
 
@@ -80,6 +82,7 @@ DRTBlockSequenceInRTBeamsModule::Item &DRTBlockSequenceInRTBeamsModule::Item::op
         BlockType = copy.BlockType;
         MaterialID = copy.MaterialID;
         SourceToBlockTrayDistance = copy.SourceToBlockTrayDistance;
+        TrayAccessoryCode = copy.TrayAccessoryCode;
     }
     return *this;
 }
@@ -91,6 +94,7 @@ void DRTBlockSequenceInRTBeamsModule::Item::clear()
     {
         /* clear all DICOM attributes */
         BlockTrayID.clear();
+        TrayAccessoryCode.clear();
         AccessoryCode.clear();
         SourceToBlockTrayDistance.clear();
         BlockType.clear();
@@ -110,6 +114,7 @@ void DRTBlockSequenceInRTBeamsModule::Item::clear()
 OFBool DRTBlockSequenceInRTBeamsModule::Item::isEmpty()
 {
     return BlockTrayID.isEmpty() &&
+           TrayAccessoryCode.isEmpty() &&
            AccessoryCode.isEmpty() &&
            SourceToBlockTrayDistance.isEmpty() &&
            BlockType.isEmpty() &&
@@ -139,6 +144,7 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::read(DcmItem &item)
         /* re-initialize object */
         clear();
         getAndCheckElementFromDataset(item, BlockTrayID, "1", "3", "BlockSequence");
+        getAndCheckElementFromDataset(item, TrayAccessoryCode, "1", "3", "BlockSequence");
         getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "BlockSequence");
         getAndCheckElementFromDataset(item, SourceToBlockTrayDistance, "1", "2", "BlockSequence");
         getAndCheckElementFromDataset(item, BlockType, "1", "1", "BlockSequence");
@@ -164,6 +170,7 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::write(DcmItem &item)
     {
         result = EC_Normal;
         addElementToDataset(result, item, new DcmShortString(BlockTrayID), "1", "3", "BlockSequence");
+        addElementToDataset(result, item, new DcmLongString(TrayAccessoryCode), "1", "3", "BlockSequence");
         addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "BlockSequence");
         addElementToDataset(result, item, new DcmDecimalString(SourceToBlockTrayDistance), "1", "2", "BlockSequence");
         addElementToDataset(result, item, new DcmCodeString(BlockType), "1", "1", "BlockSequence");
@@ -361,6 +368,15 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::getSourceToBlockTrayDistance(
 }
 
 
+OFCondition DRTBlockSequenceInRTBeamsModule::Item::getTrayAccessoryCode(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(TrayAccessoryCode, value, pos);
+}
+
+
 OFCondition DRTBlockSequenceInRTBeamsModule::Item::setAccessoryCode(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -530,6 +546,19 @@ OFCondition DRTBlockSequenceInRTBeamsModule::Item::setSourceToBlockTrayDistance(
 }
 
 
+OFCondition DRTBlockSequenceInRTBeamsModule::Item::setTrayAccessoryCode(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = TrayAccessoryCode.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 // --- sequence class ---
 
 DRTBlockSequenceInRTBeamsModule::DRTBlockSequenceInRTBeamsModule(const OFBool emptyDefaultSequence)
diff --git a/dcmrt/libsrc/drtbl5.cc b/dcmrt/libsrc/drtbl5.cc
index 806f290..84b20ec 100644
--- a/dcmrt/libsrc/drtbl5.cc
+++ b/dcmrt/libsrc/drtbl5.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBlockSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -32,7 +32,8 @@ DRTBlockSequenceInRTImageModule::Item::Item(const OFBool emptyDefaultItem)
     BlockTrayID(DCM_BlockTrayID),
     BlockType(DCM_BlockType),
     MaterialID(DCM_MaterialID),
-    SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance)
+    SourceToBlockTrayDistance(DCM_SourceToBlockTrayDistance),
+    TrayAccessoryCode(DCM_TrayAccessoryCode)
 {
 }
 
@@ -50,7 +51,8 @@ DRTBlockSequenceInRTImageModule::Item::Item(const Item &copy)
     BlockTrayID(copy.BlockTrayID),
     BlockType(copy.BlockType),
     MaterialID(copy.MaterialID),
-    SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance)
+    SourceToBlockTrayDistance(copy.SourceToBlockTrayDistance),
+    TrayAccessoryCode(copy.TrayAccessoryCode)
 {
 }
 
@@ -77,6 +79,7 @@ DRTBlockSequenceInRTImageModule::Item &DRTBlockSequenceInRTImageModule::Item::op
         BlockType = copy.BlockType;
         MaterialID = copy.MaterialID;
         SourceToBlockTrayDistance = copy.SourceToBlockTrayDistance;
+        TrayAccessoryCode = copy.TrayAccessoryCode;
     }
     return *this;
 }
@@ -88,6 +91,7 @@ void DRTBlockSequenceInRTImageModule::Item::clear()
     {
         /* clear all DICOM attributes */
         BlockTrayID.clear();
+        TrayAccessoryCode.clear();
         AccessoryCode.clear();
         SourceToBlockTrayDistance.clear();
         BlockType.clear();
@@ -106,6 +110,7 @@ void DRTBlockSequenceInRTImageModule::Item::clear()
 OFBool DRTBlockSequenceInRTImageModule::Item::isEmpty()
 {
     return BlockTrayID.isEmpty() &&
+           TrayAccessoryCode.isEmpty() &&
            AccessoryCode.isEmpty() &&
            SourceToBlockTrayDistance.isEmpty() &&
            BlockType.isEmpty() &&
@@ -134,6 +139,7 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::read(DcmItem &item)
         /* re-initialize object */
         clear();
         getAndCheckElementFromDataset(item, BlockTrayID, "1", "3", "BlockSequence");
+        getAndCheckElementFromDataset(item, TrayAccessoryCode, "1", "3", "BlockSequence");
         getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "BlockSequence");
         getAndCheckElementFromDataset(item, SourceToBlockTrayDistance, "1", "2", "BlockSequence");
         getAndCheckElementFromDataset(item, BlockType, "1", "1", "BlockSequence");
@@ -158,6 +164,7 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::write(DcmItem &item)
     {
         result = EC_Normal;
         addElementToDataset(result, item, new DcmShortString(BlockTrayID), "1", "3", "BlockSequence");
+        addElementToDataset(result, item, new DcmLongString(TrayAccessoryCode), "1", "3", "BlockSequence");
         addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "BlockSequence");
         addElementToDataset(result, item, new DcmDecimalString(SourceToBlockTrayDistance), "1", "2", "BlockSequence");
         addElementToDataset(result, item, new DcmCodeString(BlockType), "1", "1", "BlockSequence");
@@ -336,6 +343,15 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::getSourceToBlockTrayDistance(
 }
 
 
+OFCondition DRTBlockSequenceInRTImageModule::Item::getTrayAccessoryCode(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(TrayAccessoryCode, value, pos);
+}
+
+
 OFCondition DRTBlockSequenceInRTImageModule::Item::setAccessoryCode(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -492,6 +508,19 @@ OFCondition DRTBlockSequenceInRTImageModule::Item::setSourceToBlockTrayDistance(
 }
 
 
+OFCondition DRTBlockSequenceInRTImageModule::Item::setTrayAccessoryCode(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = TrayAccessoryCode.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 // --- sequence class ---
 
 DRTBlockSequenceInRTImageModule::DRTBlockSequenceInRTImageModule(const OFBool emptyDefaultSequence)
diff --git a/dcmrt/libsrc/drtbldls.cc b/dcmrt/libsrc/drtbldls.cc
index 560165c..1c3cb12 100644
--- a/dcmrt/libsrc/drtbldls.cc
+++ b/dcmrt/libsrc/drtbldls.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamLimitingDeviceLeafPairsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtbldps.cc b/dcmrt/libsrc/drtbldps.cc
index 07a8ef8..ab394a7 100644
--- a/dcmrt/libsrc/drtbldps.cc
+++ b/dcmrt/libsrc/drtbldps.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamLimitingDevicePositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtblds1.cc b/dcmrt/libsrc/drtblds1.cc
index 1cef0f2..4d2e43a 100644
--- a/dcmrt/libsrc/drtblds1.cc
+++ b/dcmrt/libsrc/drtblds1.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamLimitingDeviceSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtblds5.cc b/dcmrt/libsrc/drtblds5.cc
index 714aa7b..8949c67 100644
--- a/dcmrt/libsrc/drtblds5.cc
+++ b/dcmrt/libsrc/drtblds5.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamLimitingDeviceSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtblds6.cc b/dcmrt/libsrc/drtblds6.cc
index b5719c4..5b732b7 100644
--- a/dcmrt/libsrc/drtblds6.cc
+++ b/dcmrt/libsrc/drtblds6.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamLimitingDeviceSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtbldts.cc b/dcmrt/libsrc/drtbldts.cc
index 0a5a501..4f47767 100644
--- a/dcmrt/libsrc/drtbldts.cc
+++ b/dcmrt/libsrc/drtbldts.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamLimitingDeviceToleranceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtbrcss.cc b/dcmrt/libsrc/drtbrcss.cc
index 2f23b0d..121bf3f 100644
--- a/dcmrt/libsrc/drtbrcss.cc
+++ b/dcmrt/libsrc/drtbrcss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBreedRegistryCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTBreedRegistryCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTBreedRegistryCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTBreedRegistryCodeSequence::Item &DRTBreedRegistryCodeSequence::Item::operator
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTBreedRegistryCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTBreedRegistryCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTBreedRegistryCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "BreedRegistryCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "BreedRegistryCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "BreedRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "BreedRegistryCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "BreedRegistryCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "BreedRegistryCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "BreedRegistryCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTBreedRegistryCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "BreedRegistryCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "BreedRegistryCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "BreedRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "BreedRegistryCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "BreedRegistryCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "BreedRegistryCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "BreedRegistryCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTBreedRegistryCodeSequence::Item::getMappingResource(OFString &val
 }
 
 
+OFCondition DRTBreedRegistryCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTBreedRegistryCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTBreedRegistryCodeSequence::Item::setMappingResource(const OFStrin
 }
 
 
+OFCondition DRTBreedRegistryCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTBreedRegistryCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtbrdrs.cc b/dcmrt/libsrc/drtbrdrs.cc
index 98b584b..e8bb749 100644
--- a/dcmrt/libsrc/drtbrdrs.cc
+++ b/dcmrt/libsrc/drtbrdrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBrachyReferencedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtbrs.cc b/dcmrt/libsrc/drtbrs.cc
index 67f5416..925322e 100644
--- a/dcmrt/libsrc/drtbrs.cc
+++ b/dcmrt/libsrc/drtbrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBreedRegistrationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtbs.cc b/dcmrt/libsrc/drtbs.cc
index f9e42e8..9967a19 100644
--- a/dcmrt/libsrc/drtbs.cc
+++ b/dcmrt/libsrc/drtbs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBeamSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtbss.cc b/dcmrt/libsrc/drtbss.cc
index d72e2d2..b6c873c 100644
--- a/dcmrt/libsrc/drtbss.cc
+++ b/dcmrt/libsrc/drtbss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTBlockSlabSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtbvcps.cc b/dcmrt/libsrc/drtbvcps.cc
index 857a7c7..2ec6089 100644
--- a/dcmrt/libsrc/drtbvcps.cc
+++ b/dcmrt/libsrc/drtbvcps.cc
@@ -6,9 +6,8 @@
  *
  *  Source file for class DRTBeamDoseVerificationControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
- *  Last modified on 2016-02-20 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -25,7 +24,7 @@ DRTBeamDoseVerificationControlPointSequence::Item::Item(const OFBool emptyDefaul
     AverageBeamDosePointDepth(DCM_AverageBeamDosePointDepth),
     AverageBeamDosePointEquivalentDepth(DCM_AverageBeamDosePointEquivalentDepth),
     AverageBeamDosePointSSD(DCM_AverageBeamDosePointSSD),
-    AverageBeamDosePointSourceToExternalContourSurfaceDistance(DCM_AverageBeamDosePointSourceToExternalContourDistance),
+    AverageBeamDosePointSourceToExternalContourDistance(DCM_AverageBeamDosePointSourceToExternalContourDistance),
     CumulativeMetersetWeight(DCM_CumulativeMetersetWeight),
     ReferencedControlPointIndex(DCM_ReferencedControlPointIndex)
 {
@@ -37,7 +36,7 @@ DRTBeamDoseVerificationControlPointSequence::Item::Item(const Item &copy)
     AverageBeamDosePointDepth(copy.AverageBeamDosePointDepth),
     AverageBeamDosePointEquivalentDepth(copy.AverageBeamDosePointEquivalentDepth),
     AverageBeamDosePointSSD(copy.AverageBeamDosePointSSD),
-    AverageBeamDosePointSourceToExternalContourSurfaceDistance(copy.AverageBeamDosePointSourceToExternalContourSurfaceDistance),
+    AverageBeamDosePointSourceToExternalContourDistance(copy.AverageBeamDosePointSourceToExternalContourDistance),
     CumulativeMetersetWeight(copy.CumulativeMetersetWeight),
     ReferencedControlPointIndex(copy.ReferencedControlPointIndex)
 {
@@ -57,7 +56,7 @@ DRTBeamDoseVerificationControlPointSequence::Item &DRTBeamDoseVerificationContro
         AverageBeamDosePointDepth = copy.AverageBeamDosePointDepth;
         AverageBeamDosePointEquivalentDepth = copy.AverageBeamDosePointEquivalentDepth;
         AverageBeamDosePointSSD = copy.AverageBeamDosePointSSD;
-        AverageBeamDosePointSourceToExternalContourSurfaceDistance = copy.AverageBeamDosePointSourceToExternalContourSurfaceDistance;
+        AverageBeamDosePointSourceToExternalContourDistance = copy.AverageBeamDosePointSourceToExternalContourDistance;
         CumulativeMetersetWeight = copy.CumulativeMetersetWeight;
         ReferencedControlPointIndex = copy.ReferencedControlPointIndex;
     }
@@ -75,7 +74,7 @@ void DRTBeamDoseVerificationControlPointSequence::Item::clear()
         AverageBeamDosePointDepth.clear();
         AverageBeamDosePointEquivalentDepth.clear();
         AverageBeamDosePointSSD.clear();
-        AverageBeamDosePointSourceToExternalContourSurfaceDistance.clear();
+        AverageBeamDosePointSourceToExternalContourDistance.clear();
     }
 }
 
@@ -87,7 +86,7 @@ OFBool DRTBeamDoseVerificationControlPointSequence::Item::isEmpty()
            AverageBeamDosePointDepth.isEmpty() &&
            AverageBeamDosePointEquivalentDepth.isEmpty() &&
            AverageBeamDosePointSSD.isEmpty() &&
-           AverageBeamDosePointSourceToExternalContourSurfaceDistance.isEmpty();
+           AverageBeamDosePointSourceToExternalContourDistance.isEmpty();
 }
 
 
@@ -109,7 +108,7 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::read(DcmItem &ite
         getAndCheckElementFromDataset(item, AverageBeamDosePointDepth, "1", "2C", "BeamDoseVerificationControlPointSequence");
         getAndCheckElementFromDataset(item, AverageBeamDosePointEquivalentDepth, "1", "2C", "BeamDoseVerificationControlPointSequence");
         getAndCheckElementFromDataset(item, AverageBeamDosePointSSD, "1", "2C", "BeamDoseVerificationControlPointSequence");
-        getAndCheckElementFromDataset(item, AverageBeamDosePointSourceToExternalContourSurfaceDistance, "1", "3", "BeamDoseVerificationControlPointSequence");
+        getAndCheckElementFromDataset(item, AverageBeamDosePointSourceToExternalContourDistance, "1", "3", "BeamDoseVerificationControlPointSequence");
         result = EC_Normal;
     }
     return result;
@@ -127,7 +126,7 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::write(DcmItem &it
         addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointDepth), "1", "2C", "BeamDoseVerificationControlPointSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointEquivalentDepth), "1", "2C", "BeamDoseVerificationControlPointSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointSSD), "1", "2C", "BeamDoseVerificationControlPointSequence");
-        addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointSourceToExternalContourSurfaceDistance), "1", "3", "BeamDoseVerificationControlPointSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(AverageBeamDosePointSourceToExternalContourDistance), "1", "3", "BeamDoseVerificationControlPointSequence");
     }
     return result;
 }
@@ -160,12 +159,12 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::getAverageBeamDos
 }
 
 
-OFCondition DRTBeamDoseVerificationControlPointSequence::Item::getAverageBeamDosePointSourceToExternalContourSurfaceDistance(Float32 &value, const unsigned long pos) const
+OFCondition DRTBeamDoseVerificationControlPointSequence::Item::getAverageBeamDosePointSourceToExternalContourDistance(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return OFconst_cast(DcmFloatingPointSingle &, AverageBeamDosePointSourceToExternalContourSurfaceDistance).getFloat32(value, pos);
+        return OFconst_cast(DcmFloatingPointSingle &, AverageBeamDosePointSourceToExternalContourDistance).getFloat32(value, pos);
 }
 
 
@@ -232,12 +231,12 @@ OFCondition DRTBeamDoseVerificationControlPointSequence::Item::setAverageBeamDos
 }
 
 
-OFCondition DRTBeamDoseVerificationControlPointSequence::Item::setAverageBeamDosePointSourceToExternalContourSurfaceDistance(const Float32 value, const unsigned long pos)
+OFCondition DRTBeamDoseVerificationControlPointSequence::Item::setAverageBeamDosePointSourceToExternalContourDistance(const Float32 value, const unsigned long pos)
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return AverageBeamDosePointSourceToExternalContourSurfaceDistance.putFloat32(value, pos);
+        return AverageBeamDosePointSourceToExternalContourDistance.putFloat32(value, pos);
 }
 
 
diff --git a/dcmrt/libsrc/drtcbars.cc b/dcmrt/libsrc/drtcbars.cc
index bc815f0..20a763d 100644
--- a/dcmrt/libsrc/drtcbars.cc
+++ b/dcmrt/libsrc/drtcbars.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTContrastBolusAdministrationRouteSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -35,6 +35,7 @@ DRTContrastBolusAdministrationRouteSequence::Item::Item(const OFBool emptyDefaul
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -57,6 +58,7 @@ DRTContrastBolusAdministrationRouteSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -87,6 +89,7 @@ DRTContrastBolusAdministrationRouteSequence::Item &DRTContrastBolusAdministratio
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -110,6 +113,7 @@ void DRTContrastBolusAdministrationRouteSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -132,6 +136,7 @@ OFBool DRTContrastBolusAdministrationRouteSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -164,6 +169,7 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::read(DcmItem &ite
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ContrastBolusAdministrationRouteSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ContrastBolusAdministrationRouteSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ContrastBolusAdministrationRouteSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ContrastBolusAdministrationRouteSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ContrastBolusAdministrationRouteSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ContrastBolusAdministrationRouteSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ContrastBolusAdministrationRouteSequence");
@@ -192,6 +198,7 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::write(DcmItem &it
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ContrastBolusAdministrationRouteSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ContrastBolusAdministrationRouteSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ContrastBolusAdministrationRouteSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ContrastBolusAdministrationRouteSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ContrastBolusAdministrationRouteSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ContrastBolusAdministrationRouteSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ContrastBolusAdministrationRouteSequence");
@@ -310,6 +317,15 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::getMappingResourc
 }
 
 
+OFCondition DRTContrastBolusAdministrationRouteSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTContrastBolusAdministrationRouteSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -484,6 +500,19 @@ OFCondition DRTContrastBolusAdministrationRouteSequence::Item::setMappingResourc
 }
 
 
+OFCondition DRTContrastBolusAdministrationRouteSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTContrastBolusAdministrationRouteSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtccs.cc b/dcmrt/libsrc/drtccs.cc
index 979f490..8732fdb 100644
--- a/dcmrt/libsrc/drtccs.cc
+++ b/dcmrt/libsrc/drtccs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTConceptCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTConceptCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTConceptCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTConceptCodeSequence::Item &DRTConceptCodeSequence::Item::operator=(const Item
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTConceptCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTConceptCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTConceptCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ConceptCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ConceptCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ConceptCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ConceptCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ConceptCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ConceptCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ConceptCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTConceptCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ConceptCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ConceptCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ConceptCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ConceptCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ConceptCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ConceptCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ConceptCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTConceptCodeSequence::Item::getMappingResource(OFString &value, co
 }
 
 
+OFCondition DRTConceptCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTConceptCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTConceptCodeSequence::Item::setMappingResource(const OFString &val
 }
 
 
+OFCondition DRTConceptCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTConceptCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtcctus.cc b/dcmrt/libsrc/drtcctus.cc
index 731881a..dc1f3e9 100644
--- a/dcmrt/libsrc/drtcctus.cc
+++ b/dcmrt/libsrc/drtcctus.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTConsentForClinicalTrialUseSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcdrs.cc b/dcmrt/libsrc/drtcdrs.cc
index 5ffe6cf..b8f9751 100644
--- a/dcmrt/libsrc/drtcdrs.cc
+++ b/dcmrt/libsrc/drtcdrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTCalculatedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtces.cc b/dcmrt/libsrc/drtces.cc
index a0cee02..fc2d392 100644
--- a/dcmrt/libsrc/drtces.cc
+++ b/dcmrt/libsrc/drtces.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTContributingEquipmentSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcctus.cc b/dcmrt/libsrc/drtcgis.cc
similarity index 64%
copy from dcmrt/libsrc/drtcctus.cc
copy to dcmrt/libsrc/drtcgis.cc
index 731881a..2ef1973 100644
--- a/dcmrt/libsrc/drtcctus.cc
+++ b/dcmrt/libsrc/drtcgis.cc
@@ -1,177 +1,206 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Source file for class DRTConsentForClinicalTrialUseSequence
+ *  Source file for class DRTContextGroupIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
-#include "dcmtk/dcmrt/seq/drtcctus.h"
+#include "dcmtk/dcmrt/seq/drtcgis.h"
 
 
 // --- item class ---
 
-DRTConsentForClinicalTrialUseSequence::Item::Item(const OFBool emptyDefaultItem)
+DRTContextGroupIdentificationSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
-    ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
-    ConsentForDistributionFlag(DCM_ConsentForDistributionFlag),
-    DistributionType(DCM_DistributionType)
+    ContextGroupVersion(DCM_ContextGroupVersion),
+    ContextIdentifier(DCM_ContextIdentifier),
+    ContextUID(DCM_ContextUID),
+    MappingResource(DCM_MappingResource)
 {
 }
 
 
-DRTConsentForClinicalTrialUseSequence::Item::Item(const Item &copy)
+DRTContextGroupIdentificationSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
-    ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
-    ConsentForDistributionFlag(copy.ConsentForDistributionFlag),
-    DistributionType(copy.DistributionType)
+    ContextGroupVersion(copy.ContextGroupVersion),
+    ContextIdentifier(copy.ContextIdentifier),
+    ContextUID(copy.ContextUID),
+    MappingResource(copy.MappingResource)
 {
 }
 
 
-DRTConsentForClinicalTrialUseSequence::Item::~Item()
+DRTContextGroupIdentificationSequence::Item::~Item()
 {
 }
 
 
-DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::Item::operator=(const Item &copy)
+DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::Item::operator=(const Item &copy)
 {
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
-        ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
-        ConsentForDistributionFlag = copy.ConsentForDistributionFlag;
-        DistributionType = copy.DistributionType;
+        ContextGroupVersion = copy.ContextGroupVersion;
+        ContextIdentifier = copy.ContextIdentifier;
+        ContextUID = copy.ContextUID;
+        MappingResource = copy.MappingResource;
     }
     return *this;
 }
 
 
-void DRTConsentForClinicalTrialUseSequence::Item::clear()
+void DRTContextGroupIdentificationSequence::Item::clear()
 {
     if (!EmptyDefaultItem)
     {
         /* clear all DICOM attributes */
-        DistributionType.clear();
-        ClinicalTrialProtocolID.clear();
-        ConsentForDistributionFlag.clear();
+        ContextIdentifier.clear();
+        ContextUID.clear();
+        MappingResource.clear();
+        ContextGroupVersion.clear();
     }
 }
 
 
-OFBool DRTConsentForClinicalTrialUseSequence::Item::isEmpty()
+OFBool DRTContextGroupIdentificationSequence::Item::isEmpty()
 {
-    return DistributionType.isEmpty() &&
-           ClinicalTrialProtocolID.isEmpty() &&
-           ConsentForDistributionFlag.isEmpty();
+    return ContextIdentifier.isEmpty() &&
+           ContextUID.isEmpty() &&
+           MappingResource.isEmpty() &&
+           ContextGroupVersion.isEmpty();
 }
 
 
-OFBool DRTConsentForClinicalTrialUseSequence::Item::isValid() const
+OFBool DRTContextGroupIdentificationSequence::Item::isValid() const
 {
     return !EmptyDefaultItem;
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::Item::read(DcmItem &item)
+OFCondition DRTContextGroupIdentificationSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, DistributionType, "1", "1C", "ConsentForClinicalTrialUseSequence");
-        getAndCheckElementFromDataset(item, ClinicalTrialProtocolID, "1", "1C", "ConsentForClinicalTrialUseSequence");
-        getAndCheckElementFromDataset(item, ConsentForDistributionFlag, "1", "1", "ConsentForClinicalTrialUseSequence");
+        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "1", "ContextGroupIdentificationSequence");
+        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ContextGroupIdentificationSequence");
+        getAndCheckElementFromDataset(item, MappingResource, "1", "1", "ContextGroupIdentificationSequence");
+        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1", "ContextGroupIdentificationSequence");
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::Item::write(DcmItem &item)
+OFCondition DRTContextGroupIdentificationSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmCodeString(DistributionType), "1", "1C", "ConsentForClinicalTrialUseSequence");
-        addElementToDataset(result, item, new DcmLongString(ClinicalTrialProtocolID), "1", "1C", "ConsentForClinicalTrialUseSequence");
-        addElementToDataset(result, item, new DcmCodeString(ConsentForDistributionFlag), "1", "1", "ConsentForClinicalTrialUseSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "1", "ContextGroupIdentificationSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ContextGroupIdentificationSequence");
+        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1", "ContextGroupIdentificationSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1", "ContextGroupIdentificationSequence");
     }
     return result;
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::Item::getClinicalTrialProtocolID(OFString &value, const signed long pos) const
+OFCondition DRTContextGroupIdentificationSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(ClinicalTrialProtocolID, value, pos);
+        return getStringValueFromElement(ContextGroupVersion, value, pos);
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::Item::getConsentForDistributionFlag(OFString &value, const signed long pos) const
+OFCondition DRTContextGroupIdentificationSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(ConsentForDistributionFlag, value, pos);
+        return getStringValueFromElement(ContextIdentifier, value, pos);
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::Item::getDistributionType(OFString &value, const signed long pos) const
+OFCondition DRTContextGroupIdentificationSequence::Item::getContextUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(DistributionType, value, pos);
+        return getStringValueFromElement(ContextUID, value, pos);
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::Item::setClinicalTrialProtocolID(const OFString &value, const OFBool check)
+OFCondition DRTContextGroupIdentificationSequence::Item::getMappingResource(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResource, value, pos);
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
-        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
         if (result.good())
-            result = ClinicalTrialProtocolID.putOFStringArray(value);
+            result = ContextGroupVersion.putOFStringArray(value);
     }
     return result;
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::Item::setConsentForDistributionFlag(const OFString &value, const OFBool check)
+OFCondition DRTContextGroupIdentificationSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
         if (result.good())
-            result = ConsentForDistributionFlag.putOFStringArray(value);
+            result = ContextIdentifier.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTContextGroupIdentificationSequence::Item::setContextUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextUID.putOFStringArray(value);
     }
     return result;
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::Item::setDistributionType(const OFString &value, const OFBool check)
+OFCondition DRTContextGroupIdentificationSequence::Item::setMappingResource(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
         if (result.good())
-            result = DistributionType.putOFStringArray(value);
+            result = MappingResource.putOFStringArray(value);
     }
     return result;
 }
@@ -179,7 +208,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::Item::setDistributionType(con
 
 // --- sequence class ---
 
-DRTConsentForClinicalTrialUseSequence::DRTConsentForClinicalTrialUseSequence(const OFBool emptyDefaultSequence)
+DRTContextGroupIdentificationSequence::DRTContextGroupIdentificationSequence(const OFBool emptyDefaultSequence)
   : EmptyDefaultSequence(emptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -189,7 +218,7 @@ DRTConsentForClinicalTrialUseSequence::DRTConsentForClinicalTrialUseSequence(con
 }
 
 
-DRTConsentForClinicalTrialUseSequence::DRTConsentForClinicalTrialUseSequence(const DRTConsentForClinicalTrialUseSequence &copy)
+DRTContextGroupIdentificationSequence::DRTContextGroupIdentificationSequence(const DRTContextGroupIdentificationSequence &copy)
   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -215,7 +244,7 @@ DRTConsentForClinicalTrialUseSequence::DRTConsentForClinicalTrialUseSequence(con
 }
 
 
-DRTConsentForClinicalTrialUseSequence &DRTConsentForClinicalTrialUseSequence::operator=(const DRTConsentForClinicalTrialUseSequence &copy)
+DRTContextGroupIdentificationSequence &DRTContextGroupIdentificationSequence::operator=(const DRTContextGroupIdentificationSequence &copy)
 {
     if (this != &copy)
     {
@@ -243,13 +272,13 @@ DRTConsentForClinicalTrialUseSequence &DRTConsentForClinicalTrialUseSequence::op
 }
 
 
-DRTConsentForClinicalTrialUseSequence::~DRTConsentForClinicalTrialUseSequence()
+DRTContextGroupIdentificationSequence::~DRTContextGroupIdentificationSequence()
 {
     clear();
 }
 
 
-void DRTConsentForClinicalTrialUseSequence::clear()
+void DRTContextGroupIdentificationSequence::clear()
 {
     if (!EmptyDefaultSequence)
     {
@@ -268,25 +297,25 @@ void DRTConsentForClinicalTrialUseSequence::clear()
 }
 
 
-OFBool DRTConsentForClinicalTrialUseSequence::isEmpty()
+OFBool DRTContextGroupIdentificationSequence::isEmpty()
 {
     return SequenceOfItems.empty();
 }
 
 
-OFBool DRTConsentForClinicalTrialUseSequence::isValid() const
+OFBool DRTContextGroupIdentificationSequence::isValid() const
 {
     return !EmptyDefaultSequence;
 }
 
 
-unsigned long DRTConsentForClinicalTrialUseSequence::getNumberOfItems() const
+unsigned long DRTContextGroupIdentificationSequence::getNumberOfItems() const
 {
     return SequenceOfItems.size();
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::gotoFirstItem()
+OFCondition DRTContextGroupIdentificationSequence::gotoFirstItem()
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -298,7 +327,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::gotoFirstItem()
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::gotoNextItem()
+OFCondition DRTContextGroupIdentificationSequence::gotoNextItem()
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -310,7 +339,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::gotoNextItem()
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+OFCondition DRTContextGroupIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -330,7 +359,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const unsigned long
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+OFCondition DRTContextGroupIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -350,13 +379,13 @@ OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const unsigned long
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::gotoItem(const unsigned long num)
+OFCondition DRTContextGroupIdentificationSequence::gotoItem(const unsigned long num)
 {
     return gotoItem(num, CurrentItem);
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::getCurrentItem(Item *&item) const
+OFCondition DRTContextGroupIdentificationSequence::getCurrentItem(Item *&item) const
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -368,7 +397,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::getCurrentItem(Item *&item) c
 }
 
 
-DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::getCurrentItem()
+DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getCurrentItem()
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -377,7 +406,7 @@ DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequen
 }
 
 
-const DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::getCurrentItem() const
+const DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getCurrentItem() const
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -386,7 +415,7 @@ const DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUse
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::getItem(const unsigned long num, Item *&item)
+OFCondition DRTContextGroupIdentificationSequence::getItem(const unsigned long num, Item *&item)
 {
     OFListIterator(Item *) iterator;
     OFCondition result = gotoItem(num, iterator);
@@ -396,7 +425,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::getItem(const unsigned long n
 }
 
 
-DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::getItem(const unsigned long num)
+DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getItem(const unsigned long num)
 {
     OFListIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -406,7 +435,7 @@ DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequen
 }
 
 
-const DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::getItem(const unsigned long num) const
+const DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::getItem(const unsigned long num) const
 {
     OFListConstIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -416,19 +445,19 @@ const DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUse
 }
 
 
-DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::operator[](const unsigned long num)
+DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::operator[](const unsigned long num)
 {
     return getItem(num);
 }
 
 
-const DRTConsentForClinicalTrialUseSequence::Item &DRTConsentForClinicalTrialUseSequence::operator[](const unsigned long num) const
+const DRTContextGroupIdentificationSequence::Item &DRTContextGroupIdentificationSequence::operator[](const unsigned long num) const
 {
     return getItem(num);
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::addItem(Item *&item)
+OFCondition DRTContextGroupIdentificationSequence::addItem(Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -445,7 +474,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::addItem(Item *&item)
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::insertItem(const unsigned long pos, Item *&item)
+OFCondition DRTContextGroupIdentificationSequence::insertItem(const unsigned long pos, Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -468,7 +497,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::insertItem(const unsigned lon
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::removeItem(const unsigned long pos)
+OFCondition DRTContextGroupIdentificationSequence::removeItem(const unsigned long pos)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -486,7 +515,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::removeItem(const unsigned lon
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::read(DcmItem &dataset,
+OFCondition DRTContextGroupIdentificationSequence::read(DcmItem &dataset,
                                                         const OFString &card,
                                                         const OFString &type,
                                                         const char *moduleName)
@@ -498,7 +527,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::read(DcmItem &dataset,
         clear();
         /* retrieve sequence element from dataset */
         DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_ConsentForClinicalTrialUseSequence, sequence);
+        result = dataset.findAndGetSequence(DCM_ContextGroupIdentificationSequence, sequence);
         if (sequence != NULL)
         {
             if (checkElementValue(*sequence, card, type, result, moduleName))
@@ -528,7 +557,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::read(DcmItem &dataset,
                 }
             }
         } else {
-            DcmSequenceOfItems element(DCM_ConsentForClinicalTrialUseSequence);
+            DcmSequenceOfItems element(DCM_ContextGroupIdentificationSequence);
             checkElementValue(element, card, type, result, moduleName);
         }
     }
@@ -536,7 +565,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::read(DcmItem &dataset,
 }
 
 
-OFCondition DRTConsentForClinicalTrialUseSequence::write(DcmItem &dataset,
+OFCondition DRTContextGroupIdentificationSequence::write(DcmItem &dataset,
                                                          const OFString &card,
                                                          const OFString &type,
                                                          const char *moduleName)
@@ -545,7 +574,7 @@ OFCondition DRTConsentForClinicalTrialUseSequence::write(DcmItem &dataset,
     if (!EmptyDefaultSequence)
     {
         result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_ConsentForClinicalTrialUseSequence);
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_ContextGroupIdentificationSequence);
         if (sequence != NULL)
         {
             result = EC_Normal;
diff --git a/dcmrt/libsrc/drtchs.cc b/dcmrt/libsrc/drtchs.cc
index a216b01..67699b0 100644
--- a/dcmrt/libsrc/drtchs.cc
+++ b/dcmrt/libsrc/drtchs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTChannelSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcims.cc b/dcmrt/libsrc/drtcims.cc
index d02068d..a8fd651 100644
--- a/dcmrt/libsrc/drtcims.cc
+++ b/dcmrt/libsrc/drtcims.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTContentItemModifierSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcis.cc b/dcmrt/libsrc/drtcis.cc
index db289e6..812bb21 100644
--- a/dcmrt/libsrc/drtcis.cc
+++ b/dcmrt/libsrc/drtcis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTContourImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcncs.cc b/dcmrt/libsrc/drtcncs.cc
index 3986664..10c9edc 100644
--- a/dcmrt/libsrc/drtcncs.cc
+++ b/dcmrt/libsrc/drtcncs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTConceptNameCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTConceptNameCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTConceptNameCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTConceptNameCodeSequence::Item &DRTConceptNameCodeSequence::Item::operator=(co
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTConceptNameCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTConceptNameCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTConceptNameCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ConceptNameCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ConceptNameCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ConceptNameCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ConceptNameCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ConceptNameCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ConceptNameCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ConceptNameCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTConceptNameCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ConceptNameCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ConceptNameCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ConceptNameCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ConceptNameCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ConceptNameCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ConceptNameCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ConceptNameCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTConceptNameCodeSequence::Item::getMappingResource(OFString &value
 }
 
 
+OFCondition DRTConceptNameCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTConceptNameCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTConceptNameCodeSequence::Item::setMappingResource(const OFString
 }
 
 
+OFCondition DRTConceptNameCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTConceptNameCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtcos.cc b/dcmrt/libsrc/drtcos.cc
index d2b31cf..732b059 100644
--- a/dcmrt/libsrc/drtcos.cc
+++ b/dcmrt/libsrc/drtcos.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTCompensatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -37,7 +37,8 @@ DRTCompensatorSequence::Item::Item(const OFBool emptyDefaultItem)
     CompensatorType(DCM_CompensatorType),
     MaterialID(DCM_MaterialID),
     SourceToCompensatorDistance(DCM_SourceToCompensatorDistance),
-    SourceToCompensatorTrayDistance(DCM_SourceToCompensatorTrayDistance)
+    SourceToCompensatorTrayDistance(DCM_SourceToCompensatorTrayDistance),
+    TrayAccessoryCode(DCM_TrayAccessoryCode)
 {
 }
 
@@ -60,7 +61,8 @@ DRTCompensatorSequence::Item::Item(const Item &copy)
     CompensatorType(copy.CompensatorType),
     MaterialID(copy.MaterialID),
     SourceToCompensatorDistance(copy.SourceToCompensatorDistance),
-    SourceToCompensatorTrayDistance(copy.SourceToCompensatorTrayDistance)
+    SourceToCompensatorTrayDistance(copy.SourceToCompensatorTrayDistance),
+    TrayAccessoryCode(copy.TrayAccessoryCode)
 {
 }
 
@@ -92,6 +94,7 @@ DRTCompensatorSequence::Item &DRTCompensatorSequence::Item::operator=(const Item
         MaterialID = copy.MaterialID;
         SourceToCompensatorDistance = copy.SourceToCompensatorDistance;
         SourceToCompensatorTrayDistance = copy.SourceToCompensatorTrayDistance;
+        TrayAccessoryCode = copy.TrayAccessoryCode;
     }
     return *this;
 }
@@ -109,6 +112,7 @@ void DRTCompensatorSequence::Item::clear()
         CompensatorID.clear();
         AccessoryCode.clear();
         CompensatorTrayID.clear();
+        TrayAccessoryCode.clear();
         SourceToCompensatorTrayDistance.clear();
         CompensatorDivergence.clear();
         CompensatorMountingPosition.clear();
@@ -132,6 +136,7 @@ OFBool DRTCompensatorSequence::Item::isEmpty()
            CompensatorID.isEmpty() &&
            AccessoryCode.isEmpty() &&
            CompensatorTrayID.isEmpty() &&
+           TrayAccessoryCode.isEmpty() &&
            SourceToCompensatorTrayDistance.isEmpty() &&
            CompensatorDivergence.isEmpty() &&
            CompensatorMountingPosition.isEmpty() &&
@@ -165,6 +170,7 @@ OFCondition DRTCompensatorSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, CompensatorID, "1", "3", "CompensatorSequence");
         getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "CompensatorSequence");
         getAndCheckElementFromDataset(item, CompensatorTrayID, "1", "3", "CompensatorSequence");
+        getAndCheckElementFromDataset(item, TrayAccessoryCode, "1", "3", "CompensatorSequence");
         getAndCheckElementFromDataset(item, SourceToCompensatorTrayDistance, "1", "2", "CompensatorSequence");
         getAndCheckElementFromDataset(item, CompensatorDivergence, "1", "3", "CompensatorSequence");
         getAndCheckElementFromDataset(item, CompensatorMountingPosition, "1", "3", "CompensatorSequence");
@@ -194,6 +200,7 @@ OFCondition DRTCompensatorSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmShortString(CompensatorID), "1", "3", "CompensatorSequence");
         addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "CompensatorSequence");
         addElementToDataset(result, item, new DcmShortString(CompensatorTrayID), "1", "3", "CompensatorSequence");
+        addElementToDataset(result, item, new DcmLongString(TrayAccessoryCode), "1", "3", "CompensatorSequence");
         addElementToDataset(result, item, new DcmDecimalString(SourceToCompensatorTrayDistance), "1", "2", "CompensatorSequence");
         addElementToDataset(result, item, new DcmCodeString(CompensatorDivergence), "1", "3", "CompensatorSequence");
         addElementToDataset(result, item, new DcmCodeString(CompensatorMountingPosition), "1", "3", "CompensatorSequence");
@@ -488,6 +495,15 @@ OFCondition DRTCompensatorSequence::Item::getSourceToCompensatorTrayDistance(Flo
 }
 
 
+OFCondition DRTCompensatorSequence::Item::getTrayAccessoryCode(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(TrayAccessoryCode, value, pos);
+}
+
+
 OFCondition DRTCompensatorSequence::Item::setAccessoryCode(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -709,6 +725,19 @@ OFCondition DRTCompensatorSequence::Item::setSourceToCompensatorTrayDistance(con
 }
 
 
+OFCondition DRTCompensatorSequence::Item::setTrayAccessoryCode(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = TrayAccessoryCode.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 // --- sequence class ---
 
 DRTCompensatorSequence::DRTCompensatorSequence(const OFBool emptyDefaultSequence)
diff --git a/dcmrt/libsrc/drtcpas.cc b/dcmrt/libsrc/drtcpas.cc
index 09b601c..bd92f13 100644
--- a/dcmrt/libsrc/drtcpas.cc
+++ b/dcmrt/libsrc/drtcpas.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTCorrectedParameterSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcpis.cc b/dcmrt/libsrc/drtcpis.cc
index 8ca6f86..b2bba6f 100644
--- a/dcmrt/libsrc/drtcpis.cc
+++ b/dcmrt/libsrc/drtcpis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTConsultingPhysicianIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcps.cc b/dcmrt/libsrc/drtcps.cc
index c3d295a..554e4a8 100644
--- a/dcmrt/libsrc/drtcps.cc
+++ b/dcmrt/libsrc/drtcps.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcs.cc b/dcmrt/libsrc/drtcs.cc
index c39b275..b2fbd25 100644
--- a/dcmrt/libsrc/drtcs.cc
+++ b/dcmrt/libsrc/drtcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTContourSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcsas.cc b/dcmrt/libsrc/drtcsas.cc
index c9bb6d2..0932c21 100644
--- a/dcmrt/libsrc/drtcsas.cc
+++ b/dcmrt/libsrc/drtcsas.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTConversionSourceAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcshs.cc b/dcmrt/libsrc/drtcshs.cc
index 4fc8d7b..5934723 100644
--- a/dcmrt/libsrc/drtcshs.cc
+++ b/dcmrt/libsrc/drtcshs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTChannelShieldSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcsis.cc b/dcmrt/libsrc/drtcsis.cc
index 7504daf..b34ba9a 100644
--- a/dcmrt/libsrc/drtcsis.cc
+++ b/dcmrt/libsrc/drtcsis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTCodingSchemeIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtcss.cc b/dcmrt/libsrc/drtcss.cc
index 6e2b1e4..dbdbdcf 100644
--- a/dcmrt/libsrc/drtcss.cc
+++ b/dcmrt/libsrc/drtcss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTChannelSourceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTChannelSourceSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTChannelSourceSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTChannelSourceSequence::Item &DRTChannelSourceSequence::Item::operator=(const
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTChannelSourceSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTChannelSourceSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTChannelSourceSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ChannelSourceSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ChannelSourceSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ChannelSourceSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ChannelSourceSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ChannelSourceSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ChannelSourceSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ChannelSourceSequence");
@@ -186,6 +192,7 @@ OFCondition DRTChannelSourceSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ChannelSourceSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ChannelSourceSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ChannelSourceSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ChannelSourceSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ChannelSourceSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ChannelSourceSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ChannelSourceSequence");
@@ -303,6 +310,15 @@ OFCondition DRTChannelSourceSequence::Item::getMappingResource(OFString &value,
 }
 
 
+OFCondition DRTChannelSourceSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTChannelSourceSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTChannelSourceSequence::Item::setMappingResource(const OFString &v
 }
 
 
+OFCondition DRTChannelSourceSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTChannelSourceSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtdcs.cc b/dcmrt/libsrc/drtdcs.cc
index 736bd6d..f1c7841 100644
--- a/dcmrt/libsrc/drtdcs.cc
+++ b/dcmrt/libsrc/drtdcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDerivationCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTDerivationCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTDerivationCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTDerivationCodeSequence::Item &DRTDerivationCodeSequence::Item::operator=(cons
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTDerivationCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTDerivationCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTDerivationCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DerivationCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DerivationCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DerivationCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DerivationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DerivationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DerivationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DerivationCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTDerivationCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DerivationCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DerivationCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DerivationCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DerivationCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DerivationCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DerivationCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DerivationCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTDerivationCodeSequence::Item::getMappingResource(OFString &value,
 }
 
 
+OFCondition DRTDerivationCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTDerivationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTDerivationCodeSequence::Item::setMappingResource(const OFString &
 }
 
 
+OFCondition DRTDerivationCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTDerivationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtas6.cc b/dcmrt/libsrc/drtdddps.cc
similarity index 57%
copy from dcmrt/libsrc/drtas6.cc
copy to dcmrt/libsrc/drtdddps.cc
index 304bd0a..28d9ddd 100644
--- a/dcmrt/libsrc/drtas6.cc
+++ b/dcmrt/libsrc/drtdddps.cc
@@ -1,206 +1,219 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Source file for class DRTApplicatorSequenceInRTIonBeamsModule
+ *  Source file for class DRTDeliveredDepthDoseParametersSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
-#include "dcmtk/dcmrt/seq/drtas6.h"
+#include "dcmtk/dcmrt/seq/drtdddps.h"
 
 
 // --- item class ---
 
-DRTApplicatorSequenceInRTIonBeamsModule::Item::Item(const OFBool emptyDefaultItem)
+DRTDeliveredDepthDoseParametersSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
-    AccessoryCode(DCM_AccessoryCode),
-    ApplicatorDescription(DCM_ApplicatorDescription),
-    ApplicatorID(DCM_ApplicatorID),
-    ApplicatorType(DCM_ApplicatorType)
+    DeliveredDistalDepth(DCM_DeliveredDistalDepth),
+    DeliveredDistalDepthFraction(DCM_DeliveredDistalDepthFraction),
+    DeliveredNominalRangeModulatedRegionDepths(DCM_DeliveredNominalRangeModulatedRegionDepths),
+    DeliveredNominalRangeModulationFractions(DCM_DeliveredNominalRangeModulationFractions),
+    DeliveredReferenceDoseDefinition(DCM_DeliveredReferenceDoseDefinition)
 {
 }
 
 
-DRTApplicatorSequenceInRTIonBeamsModule::Item::Item(const Item &copy)
+DRTDeliveredDepthDoseParametersSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
-    AccessoryCode(copy.AccessoryCode),
-    ApplicatorDescription(copy.ApplicatorDescription),
-    ApplicatorID(copy.ApplicatorID),
-    ApplicatorType(copy.ApplicatorType)
+    DeliveredDistalDepth(copy.DeliveredDistalDepth),
+    DeliveredDistalDepthFraction(copy.DeliveredDistalDepthFraction),
+    DeliveredNominalRangeModulatedRegionDepths(copy.DeliveredNominalRangeModulatedRegionDepths),
+    DeliveredNominalRangeModulationFractions(copy.DeliveredNominalRangeModulationFractions),
+    DeliveredReferenceDoseDefinition(copy.DeliveredReferenceDoseDefinition)
 {
 }
 
 
-DRTApplicatorSequenceInRTIonBeamsModule::Item::~Item()
+DRTDeliveredDepthDoseParametersSequence::Item::~Item()
 {
 }
 
 
-DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::Item::operator=(const Item &copy)
+DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::Item::operator=(const Item &copy)
 {
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
-        AccessoryCode = copy.AccessoryCode;
-        ApplicatorDescription = copy.ApplicatorDescription;
-        ApplicatorID = copy.ApplicatorID;
-        ApplicatorType = copy.ApplicatorType;
+        DeliveredDistalDepth = copy.DeliveredDistalDepth;
+        DeliveredDistalDepthFraction = copy.DeliveredDistalDepthFraction;
+        DeliveredNominalRangeModulatedRegionDepths = copy.DeliveredNominalRangeModulatedRegionDepths;
+        DeliveredNominalRangeModulationFractions = copy.DeliveredNominalRangeModulationFractions;
+        DeliveredReferenceDoseDefinition = copy.DeliveredReferenceDoseDefinition;
     }
     return *this;
 }
 
 
-void DRTApplicatorSequenceInRTIonBeamsModule::Item::clear()
+void DRTDeliveredDepthDoseParametersSequence::Item::clear()
 {
     if (!EmptyDefaultItem)
     {
         /* clear all DICOM attributes */
-        ApplicatorID.clear();
-        AccessoryCode.clear();
-        ApplicatorType.clear();
-        ApplicatorDescription.clear();
+        DeliveredReferenceDoseDefinition.clear();
+        DeliveredDistalDepth.clear();
+        DeliveredDistalDepthFraction.clear();
+        DeliveredNominalRangeModulatedRegionDepths.clear();
+        DeliveredNominalRangeModulationFractions.clear();
     }
 }
 
 
-OFBool DRTApplicatorSequenceInRTIonBeamsModule::Item::isEmpty()
+OFBool DRTDeliveredDepthDoseParametersSequence::Item::isEmpty()
 {
-    return ApplicatorID.isEmpty() &&
-           AccessoryCode.isEmpty() &&
-           ApplicatorType.isEmpty() &&
-           ApplicatorDescription.isEmpty();
+    return DeliveredReferenceDoseDefinition.isEmpty() &&
+           DeliveredDistalDepth.isEmpty() &&
+           DeliveredDistalDepthFraction.isEmpty() &&
+           DeliveredNominalRangeModulatedRegionDepths.isEmpty() &&
+           DeliveredNominalRangeModulationFractions.isEmpty();
 }
 
 
-OFBool DRTApplicatorSequenceInRTIonBeamsModule::Item::isValid() const
+OFBool DRTDeliveredDepthDoseParametersSequence::Item::isValid() const
 {
     return !EmptyDefaultItem;
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::Item::read(DcmItem &item)
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, ApplicatorID, "1", "1", "ApplicatorSequence");
-        getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "ApplicatorSequence");
-        getAndCheckElementFromDataset(item, ApplicatorType, "1", "1", "ApplicatorSequence");
-        getAndCheckElementFromDataset(item, ApplicatorDescription, "1", "3", "ApplicatorSequence");
+        getAndCheckElementFromDataset(item, DeliveredReferenceDoseDefinition, "1", "1", "DeliveredDepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, DeliveredDistalDepth, "1", "1", "DeliveredDepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, DeliveredDistalDepthFraction, "1", "1", "DeliveredDepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, DeliveredNominalRangeModulatedRegionDepths, "2", "1C", "DeliveredDepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, DeliveredNominalRangeModulationFractions, "2", "1C", "DeliveredDepthDoseParametersSequence");
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::Item::write(DcmItem &item)
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmShortString(ApplicatorID), "1", "1", "ApplicatorSequence");
-        addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "ApplicatorSequence");
-        addElementToDataset(result, item, new DcmCodeString(ApplicatorType), "1", "1", "ApplicatorSequence");
-        addElementToDataset(result, item, new DcmLongString(ApplicatorDescription), "1", "3", "ApplicatorSequence");
+        addElementToDataset(result, item, new DcmCodeString(DeliveredReferenceDoseDefinition), "1", "1", "DeliveredDepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredDistalDepth), "1", "1", "DeliveredDepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredDistalDepthFraction), "1", "1", "DeliveredDepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredNominalRangeModulatedRegionDepths), "2", "1C", "DeliveredDepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(DeliveredNominalRangeModulationFractions), "2", "1C", "DeliveredDepthDoseParametersSequence");
     }
     return result;
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::Item::getAccessoryCode(OFString &value, const signed long pos) const
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredDistalDepth(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(AccessoryCode, value, pos);
+        return OFconst_cast(DcmFloatingPointSingle &, DeliveredDistalDepth).getFloat32(value, pos);
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::Item::getApplicatorDescription(OFString &value, const signed long pos) const
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredDistalDepthFraction(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(ApplicatorDescription, value, pos);
+        return OFconst_cast(DcmFloatingPointSingle &, DeliveredDistalDepthFraction).getFloat32(value, pos);
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::Item::getApplicatorID(OFString &value, const signed long pos) const
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(ApplicatorID, value, pos);
+        return OFconst_cast(DcmFloatingPointSingle &, DeliveredNominalRangeModulatedRegionDepths).getFloat32(value, pos);
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::Item::getApplicatorType(OFString &value, const signed long pos) const
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredNominalRangeModulationFractions(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(ApplicatorType, value, pos);
+        return OFconst_cast(DcmFloatingPointSingle &, DeliveredNominalRangeModulationFractions).getFloat32(value, pos);
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::Item::setAccessoryCode(const OFString &value, const OFBool check)
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::getDeliveredReferenceDoseDefinition(OFString &value, const signed long pos) const
 {
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = AccessoryCode.putOFStringArray(value);
-    }
-    return result;
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(DeliveredReferenceDoseDefinition, value, pos);
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::Item::setApplicatorDescription(const OFString &value, const OFBool check)
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredDistalDepth(const Float32 value, const unsigned long pos)
 {
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = ApplicatorDescription.putOFStringArray(value);
-    }
-    return result;
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DeliveredDistalDepth.putFloat32(value, pos);
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::Item::setApplicatorID(const OFString &value, const OFBool check)
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredDistalDepthFraction(const Float32 value, const unsigned long pos)
 {
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = ApplicatorID.putOFStringArray(value);
-    }
-    return result;
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DeliveredDistalDepthFraction.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DeliveredNominalRangeModulatedRegionDepths.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredNominalRangeModulationFractions(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DeliveredNominalRangeModulationFractions.putFloat32(value, pos);
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::Item::setApplicatorType(const OFString &value, const OFBool check)
+OFCondition DRTDeliveredDepthDoseParametersSequence::Item::setDeliveredReferenceDoseDefinition(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
         if (result.good())
-            result = ApplicatorType.putOFStringArray(value);
+            result = DeliveredReferenceDoseDefinition.putOFStringArray(value);
     }
     return result;
 }
@@ -208,7 +221,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::Item::setApplicatorType(con
 
 // --- sequence class ---
 
-DRTApplicatorSequenceInRTIonBeamsModule::DRTApplicatorSequenceInRTIonBeamsModule(const OFBool emptyDefaultSequence)
+DRTDeliveredDepthDoseParametersSequence::DRTDeliveredDepthDoseParametersSequence(const OFBool emptyDefaultSequence)
   : EmptyDefaultSequence(emptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -218,7 +231,7 @@ DRTApplicatorSequenceInRTIonBeamsModule::DRTApplicatorSequenceInRTIonBeamsModule
 }
 
 
-DRTApplicatorSequenceInRTIonBeamsModule::DRTApplicatorSequenceInRTIonBeamsModule(const DRTApplicatorSequenceInRTIonBeamsModule &copy)
+DRTDeliveredDepthDoseParametersSequence::DRTDeliveredDepthDoseParametersSequence(const DRTDeliveredDepthDoseParametersSequence &copy)
   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -244,7 +257,7 @@ DRTApplicatorSequenceInRTIonBeamsModule::DRTApplicatorSequenceInRTIonBeamsModule
 }
 
 
-DRTApplicatorSequenceInRTIonBeamsModule &DRTApplicatorSequenceInRTIonBeamsModule::operator=(const DRTApplicatorSequenceInRTIonBeamsModule &copy)
+DRTDeliveredDepthDoseParametersSequence &DRTDeliveredDepthDoseParametersSequence::operator=(const DRTDeliveredDepthDoseParametersSequence &copy)
 {
     if (this != &copy)
     {
@@ -272,13 +285,13 @@ DRTApplicatorSequenceInRTIonBeamsModule &DRTApplicatorSequenceInRTIonBeamsModule
 }
 
 
-DRTApplicatorSequenceInRTIonBeamsModule::~DRTApplicatorSequenceInRTIonBeamsModule()
+DRTDeliveredDepthDoseParametersSequence::~DRTDeliveredDepthDoseParametersSequence()
 {
     clear();
 }
 
 
-void DRTApplicatorSequenceInRTIonBeamsModule::clear()
+void DRTDeliveredDepthDoseParametersSequence::clear()
 {
     if (!EmptyDefaultSequence)
     {
@@ -297,25 +310,25 @@ void DRTApplicatorSequenceInRTIonBeamsModule::clear()
 }
 
 
-OFBool DRTApplicatorSequenceInRTIonBeamsModule::isEmpty()
+OFBool DRTDeliveredDepthDoseParametersSequence::isEmpty()
 {
     return SequenceOfItems.empty();
 }
 
 
-OFBool DRTApplicatorSequenceInRTIonBeamsModule::isValid() const
+OFBool DRTDeliveredDepthDoseParametersSequence::isValid() const
 {
     return !EmptyDefaultSequence;
 }
 
 
-unsigned long DRTApplicatorSequenceInRTIonBeamsModule::getNumberOfItems() const
+unsigned long DRTDeliveredDepthDoseParametersSequence::getNumberOfItems() const
 {
     return SequenceOfItems.size();
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoFirstItem()
+OFCondition DRTDeliveredDepthDoseParametersSequence::gotoFirstItem()
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -327,7 +340,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoFirstItem()
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoNextItem()
+OFCondition DRTDeliveredDepthDoseParametersSequence::gotoNextItem()
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -339,7 +352,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoNextItem()
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+OFCondition DRTDeliveredDepthDoseParametersSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -359,7 +372,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const unsigned lon
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+OFCondition DRTDeliveredDepthDoseParametersSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -379,13 +392,13 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const unsigned lon
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::gotoItem(const unsigned long num)
+OFCondition DRTDeliveredDepthDoseParametersSequence::gotoItem(const unsigned long num)
 {
     return gotoItem(num, CurrentItem);
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::getCurrentItem(Item *&item) const
+OFCondition DRTDeliveredDepthDoseParametersSequence::getCurrentItem(Item *&item) const
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -397,7 +410,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::getCurrentItem(Item *&item)
 }
 
 
-DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::getCurrentItem()
+DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getCurrentItem()
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -406,7 +419,7 @@ DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeams
 }
 
 
-const DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::getCurrentItem() const
+const DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getCurrentItem() const
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -415,7 +428,7 @@ const DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIo
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::getItem(const unsigned long num, Item *&item)
+OFCondition DRTDeliveredDepthDoseParametersSequence::getItem(const unsigned long num, Item *&item)
 {
     OFListIterator(Item *) iterator;
     OFCondition result = gotoItem(num, iterator);
@@ -425,7 +438,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::getItem(const unsigned long
 }
 
 
-DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::getItem(const unsigned long num)
+DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getItem(const unsigned long num)
 {
     OFListIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -435,7 +448,7 @@ DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeams
 }
 
 
-const DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::getItem(const unsigned long num) const
+const DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::getItem(const unsigned long num) const
 {
     OFListConstIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -445,19 +458,19 @@ const DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIo
 }
 
 
-DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::operator[](const unsigned long num)
+DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::operator[](const unsigned long num)
 {
     return getItem(num);
 }
 
 
-const DRTApplicatorSequenceInRTIonBeamsModule::Item &DRTApplicatorSequenceInRTIonBeamsModule::operator[](const unsigned long num) const
+const DRTDeliveredDepthDoseParametersSequence::Item &DRTDeliveredDepthDoseParametersSequence::operator[](const unsigned long num) const
 {
     return getItem(num);
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::addItem(Item *&item)
+OFCondition DRTDeliveredDepthDoseParametersSequence::addItem(Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -474,7 +487,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::addItem(Item *&item)
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::insertItem(const unsigned long pos, Item *&item)
+OFCondition DRTDeliveredDepthDoseParametersSequence::insertItem(const unsigned long pos, Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -497,7 +510,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::insertItem(const unsigned l
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::removeItem(const unsigned long pos)
+OFCondition DRTDeliveredDepthDoseParametersSequence::removeItem(const unsigned long pos)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -515,7 +528,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::removeItem(const unsigned l
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::read(DcmItem &dataset,
+OFCondition DRTDeliveredDepthDoseParametersSequence::read(DcmItem &dataset,
                                                           const OFString &card,
                                                           const OFString &type,
                                                           const char *moduleName)
@@ -527,7 +540,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::read(DcmItem &dataset,
         clear();
         /* retrieve sequence element from dataset */
         DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_ApplicatorSequence, sequence);
+        result = dataset.findAndGetSequence(DCM_DeliveredDepthDoseParametersSequence, sequence);
         if (sequence != NULL)
         {
             if (checkElementValue(*sequence, card, type, result, moduleName))
@@ -557,7 +570,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::read(DcmItem &dataset,
                 }
             }
         } else {
-            DcmSequenceOfItems element(DCM_ApplicatorSequence);
+            DcmSequenceOfItems element(DCM_DeliveredDepthDoseParametersSequence);
             checkElementValue(element, card, type, result, moduleName);
         }
     }
@@ -565,7 +578,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::read(DcmItem &dataset,
 }
 
 
-OFCondition DRTApplicatorSequenceInRTIonBeamsModule::write(DcmItem &dataset,
+OFCondition DRTDeliveredDepthDoseParametersSequence::write(DcmItem &dataset,
                                                            const OFString &card,
                                                            const OFString &type,
                                                            const char *moduleName)
@@ -574,7 +587,7 @@ OFCondition DRTApplicatorSequenceInRTIonBeamsModule::write(DcmItem &dataset,
     if (!EmptyDefaultSequence)
     {
         result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_ApplicatorSequence);
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_DeliveredDepthDoseParametersSequence);
         if (sequence != NULL)
         {
             result = EC_Normal;
diff --git a/dcmrt/libsrc/drtiais.cc b/dcmrt/libsrc/drtddps.cc
similarity index 60%
copy from dcmrt/libsrc/drtiais.cc
copy to dcmrt/libsrc/drtddps.cc
index c206dae..b459c0d 100644
--- a/dcmrt/libsrc/drtiais.cc
+++ b/dcmrt/libsrc/drtddps.cc
@@ -1,177 +1,219 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Source file for class DRTIssuerOfAdmissionIDSequence
+ *  Source file for class DRTDepthDoseParametersSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
-#include "dcmtk/dcmrt/seq/drtiais.h"
+#include "dcmtk/dcmrt/seq/drtddps.h"
 
 
 // --- item class ---
 
-DRTIssuerOfAdmissionIDSequence::Item::Item(const OFBool emptyDefaultItem)
+DRTDepthDoseParametersSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
-    LocalNamespaceEntityID(DCM_LocalNamespaceEntityID),
-    UniversalEntityID(DCM_UniversalEntityID),
-    UniversalEntityIDType(DCM_UniversalEntityIDType)
+    DistalDepth(DCM_DistalDepth),
+    DistalDepthFraction(DCM_DistalDepthFraction),
+    NominalRangeModulatedRegionDepths(DCM_NominalRangeModulatedRegionDepths),
+    NominalRangeModulationFractions(DCM_NominalRangeModulationFractions),
+    ReferenceDoseDefinition(DCM_ReferenceDoseDefinition)
 {
 }
 
 
-DRTIssuerOfAdmissionIDSequence::Item::Item(const Item &copy)
+DRTDepthDoseParametersSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
-    LocalNamespaceEntityID(copy.LocalNamespaceEntityID),
-    UniversalEntityID(copy.UniversalEntityID),
-    UniversalEntityIDType(copy.UniversalEntityIDType)
+    DistalDepth(copy.DistalDepth),
+    DistalDepthFraction(copy.DistalDepthFraction),
+    NominalRangeModulatedRegionDepths(copy.NominalRangeModulatedRegionDepths),
+    NominalRangeModulationFractions(copy.NominalRangeModulationFractions),
+    ReferenceDoseDefinition(copy.ReferenceDoseDefinition)
 {
 }
 
 
-DRTIssuerOfAdmissionIDSequence::Item::~Item()
+DRTDepthDoseParametersSequence::Item::~Item()
 {
 }
 
 
-DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::Item::operator=(const Item &copy)
+DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::Item::operator=(const Item &copy)
 {
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
-        LocalNamespaceEntityID = copy.LocalNamespaceEntityID;
-        UniversalEntityID = copy.UniversalEntityID;
-        UniversalEntityIDType = copy.UniversalEntityIDType;
+        DistalDepth = copy.DistalDepth;
+        DistalDepthFraction = copy.DistalDepthFraction;
+        NominalRangeModulatedRegionDepths = copy.NominalRangeModulatedRegionDepths;
+        NominalRangeModulationFractions = copy.NominalRangeModulationFractions;
+        ReferenceDoseDefinition = copy.ReferenceDoseDefinition;
     }
     return *this;
 }
 
 
-void DRTIssuerOfAdmissionIDSequence::Item::clear()
+void DRTDepthDoseParametersSequence::Item::clear()
 {
     if (!EmptyDefaultItem)
     {
         /* clear all DICOM attributes */
-        LocalNamespaceEntityID.clear();
-        UniversalEntityID.clear();
-        UniversalEntityIDType.clear();
+        ReferenceDoseDefinition.clear();
+        DistalDepth.clear();
+        DistalDepthFraction.clear();
+        NominalRangeModulatedRegionDepths.clear();
+        NominalRangeModulationFractions.clear();
     }
 }
 
 
-OFBool DRTIssuerOfAdmissionIDSequence::Item::isEmpty()
+OFBool DRTDepthDoseParametersSequence::Item::isEmpty()
 {
-    return LocalNamespaceEntityID.isEmpty() &&
-           UniversalEntityID.isEmpty() &&
-           UniversalEntityIDType.isEmpty();
+    return ReferenceDoseDefinition.isEmpty() &&
+           DistalDepth.isEmpty() &&
+           DistalDepthFraction.isEmpty() &&
+           NominalRangeModulatedRegionDepths.isEmpty() &&
+           NominalRangeModulationFractions.isEmpty();
 }
 
 
-OFBool DRTIssuerOfAdmissionIDSequence::Item::isValid() const
+OFBool DRTDepthDoseParametersSequence::Item::isValid() const
 {
     return !EmptyDefaultItem;
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::Item::read(DcmItem &item)
+OFCondition DRTDepthDoseParametersSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, LocalNamespaceEntityID, "1", "1C", "IssuerOfAdmissionIDSequence");
-        getAndCheckElementFromDataset(item, UniversalEntityID, "1", "1C", "IssuerOfAdmissionIDSequence");
-        getAndCheckElementFromDataset(item, UniversalEntityIDType, "1", "1C", "IssuerOfAdmissionIDSequence");
+        getAndCheckElementFromDataset(item, ReferenceDoseDefinition, "1", "1", "DepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, DistalDepth, "1", "1", "DepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, DistalDepthFraction, "1", "1", "DepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, NominalRangeModulatedRegionDepths, "2", "1C", "DepthDoseParametersSequence");
+        getAndCheckElementFromDataset(item, NominalRangeModulationFractions, "2", "1C", "DepthDoseParametersSequence");
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::Item::write(DcmItem &item)
+OFCondition DRTDepthDoseParametersSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmUnlimitedText(LocalNamespaceEntityID), "1", "1C", "IssuerOfAdmissionIDSequence");
-        addElementToDataset(result, item, new DcmUnlimitedText(UniversalEntityID), "1", "1C", "IssuerOfAdmissionIDSequence");
-        addElementToDataset(result, item, new DcmCodeString(UniversalEntityIDType), "1", "1C", "IssuerOfAdmissionIDSequence");
+        addElementToDataset(result, item, new DcmCodeString(ReferenceDoseDefinition), "1", "1", "DepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(DistalDepth), "1", "1", "DepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(DistalDepthFraction), "1", "1", "DepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(NominalRangeModulatedRegionDepths), "2", "1C", "DepthDoseParametersSequence");
+        addElementToDataset(result, item, new DcmFloatingPointSingle(NominalRangeModulationFractions), "2", "1C", "DepthDoseParametersSequence");
     }
     return result;
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::Item::getLocalNamespaceEntityID(OFString &value, const signed long pos) const
+OFCondition DRTDepthDoseParametersSequence::Item::getDistalDepth(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(LocalNamespaceEntityID, value, pos);
+        return OFconst_cast(DcmFloatingPointSingle &, DistalDepth).getFloat32(value, pos);
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::Item::getUniversalEntityID(OFString &value, const signed long pos) const
+OFCondition DRTDepthDoseParametersSequence::Item::getDistalDepthFraction(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(UniversalEntityID, value, pos);
+        return OFconst_cast(DcmFloatingPointSingle &, DistalDepthFraction).getFloat32(value, pos);
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::Item::getUniversalEntityIDType(OFString &value, const signed long pos) const
+OFCondition DRTDepthDoseParametersSequence::Item::getNominalRangeModulatedRegionDepths(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(UniversalEntityIDType, value, pos);
+        return OFconst_cast(DcmFloatingPointSingle &, NominalRangeModulatedRegionDepths).getFloat32(value, pos);
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::Item::setLocalNamespaceEntityID(const OFString &value, const OFBool check)
+OFCondition DRTDepthDoseParametersSequence::Item::getNominalRangeModulationFractions(Float32 &value, const unsigned long pos) const
 {
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
-        if (result.good())
-            result = LocalNamespaceEntityID.putOFStringArray(value);
-    }
-    return result;
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointSingle &, NominalRangeModulationFractions).getFloat32(value, pos);
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::Item::setUniversalEntityID(const OFString &value, const OFBool check)
+OFCondition DRTDepthDoseParametersSequence::Item::getReferenceDoseDefinition(OFString &value, const signed long pos) const
 {
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
-        if (result.good())
-            result = UniversalEntityID.putOFStringArray(value);
-    }
-    return result;
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ReferenceDoseDefinition, value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::setDistalDepth(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DistalDepth.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::setDistalDepthFraction(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DistalDepthFraction.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::setNominalRangeModulatedRegionDepths(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return NominalRangeModulatedRegionDepths.putFloat32(value, pos);
+}
+
+
+OFCondition DRTDepthDoseParametersSequence::Item::setNominalRangeModulationFractions(const Float32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return NominalRangeModulationFractions.putFloat32(value, pos);
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::Item::setUniversalEntityIDType(const OFString &value, const OFBool check)
+OFCondition DRTDepthDoseParametersSequence::Item::setReferenceDoseDefinition(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
         if (result.good())
-            result = UniversalEntityIDType.putOFStringArray(value);
+            result = ReferenceDoseDefinition.putOFStringArray(value);
     }
     return result;
 }
@@ -179,7 +221,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::Item::setUniversalEntityIDType(const
 
 // --- sequence class ---
 
-DRTIssuerOfAdmissionIDSequence::DRTIssuerOfAdmissionIDSequence(const OFBool emptyDefaultSequence)
+DRTDepthDoseParametersSequence::DRTDepthDoseParametersSequence(const OFBool emptyDefaultSequence)
   : EmptyDefaultSequence(emptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -189,7 +231,7 @@ DRTIssuerOfAdmissionIDSequence::DRTIssuerOfAdmissionIDSequence(const OFBool empt
 }
 
 
-DRTIssuerOfAdmissionIDSequence::DRTIssuerOfAdmissionIDSequence(const DRTIssuerOfAdmissionIDSequence &copy)
+DRTDepthDoseParametersSequence::DRTDepthDoseParametersSequence(const DRTDepthDoseParametersSequence &copy)
   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -215,7 +257,7 @@ DRTIssuerOfAdmissionIDSequence::DRTIssuerOfAdmissionIDSequence(const DRTIssuerOf
 }
 
 
-DRTIssuerOfAdmissionIDSequence &DRTIssuerOfAdmissionIDSequence::operator=(const DRTIssuerOfAdmissionIDSequence &copy)
+DRTDepthDoseParametersSequence &DRTDepthDoseParametersSequence::operator=(const DRTDepthDoseParametersSequence &copy)
 {
     if (this != &copy)
     {
@@ -243,13 +285,13 @@ DRTIssuerOfAdmissionIDSequence &DRTIssuerOfAdmissionIDSequence::operator=(const
 }
 
 
-DRTIssuerOfAdmissionIDSequence::~DRTIssuerOfAdmissionIDSequence()
+DRTDepthDoseParametersSequence::~DRTDepthDoseParametersSequence()
 {
     clear();
 }
 
 
-void DRTIssuerOfAdmissionIDSequence::clear()
+void DRTDepthDoseParametersSequence::clear()
 {
     if (!EmptyDefaultSequence)
     {
@@ -268,25 +310,25 @@ void DRTIssuerOfAdmissionIDSequence::clear()
 }
 
 
-OFBool DRTIssuerOfAdmissionIDSequence::isEmpty()
+OFBool DRTDepthDoseParametersSequence::isEmpty()
 {
     return SequenceOfItems.empty();
 }
 
 
-OFBool DRTIssuerOfAdmissionIDSequence::isValid() const
+OFBool DRTDepthDoseParametersSequence::isValid() const
 {
     return !EmptyDefaultSequence;
 }
 
 
-unsigned long DRTIssuerOfAdmissionIDSequence::getNumberOfItems() const
+unsigned long DRTDepthDoseParametersSequence::getNumberOfItems() const
 {
     return SequenceOfItems.size();
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::gotoFirstItem()
+OFCondition DRTDepthDoseParametersSequence::gotoFirstItem()
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -298,7 +340,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::gotoFirstItem()
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::gotoNextItem()
+OFCondition DRTDepthDoseParametersSequence::gotoNextItem()
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -310,7 +352,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::gotoNextItem()
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+OFCondition DRTDepthDoseParametersSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -330,7 +372,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const unsigned long num, OF
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+OFCondition DRTDepthDoseParametersSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -350,13 +392,13 @@ OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const unsigned long num, OF
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::gotoItem(const unsigned long num)
+OFCondition DRTDepthDoseParametersSequence::gotoItem(const unsigned long num)
 {
     return gotoItem(num, CurrentItem);
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::getCurrentItem(Item *&item) const
+OFCondition DRTDepthDoseParametersSequence::getCurrentItem(Item *&item) const
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -368,7 +410,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::getCurrentItem(Item *&item) const
 }
 
 
-DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getCurrentItem()
+DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getCurrentItem()
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -377,7 +419,7 @@ DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getCurrent
 }
 
 
-const DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getCurrentItem() const
+const DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getCurrentItem() const
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -386,7 +428,7 @@ const DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getC
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::getItem(const unsigned long num, Item *&item)
+OFCondition DRTDepthDoseParametersSequence::getItem(const unsigned long num, Item *&item)
 {
     OFListIterator(Item *) iterator;
     OFCondition result = gotoItem(num, iterator);
@@ -396,7 +438,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::getItem(const unsigned long num, Ite
 }
 
 
-DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getItem(const unsigned long num)
+DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getItem(const unsigned long num)
 {
     OFListIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -406,7 +448,7 @@ DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getItem(co
 }
 
 
-const DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getItem(const unsigned long num) const
+const DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::getItem(const unsigned long num) const
 {
     OFListConstIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -416,19 +458,19 @@ const DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::getI
 }
 
 
-DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::operator[](const unsigned long num)
+DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::operator[](const unsigned long num)
 {
     return getItem(num);
 }
 
 
-const DRTIssuerOfAdmissionIDSequence::Item &DRTIssuerOfAdmissionIDSequence::operator[](const unsigned long num) const
+const DRTDepthDoseParametersSequence::Item &DRTDepthDoseParametersSequence::operator[](const unsigned long num) const
 {
     return getItem(num);
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::addItem(Item *&item)
+OFCondition DRTDepthDoseParametersSequence::addItem(Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -445,7 +487,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::addItem(Item *&item)
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::insertItem(const unsigned long pos, Item *&item)
+OFCondition DRTDepthDoseParametersSequence::insertItem(const unsigned long pos, Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -468,7 +510,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::insertItem(const unsigned long pos,
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::removeItem(const unsigned long pos)
+OFCondition DRTDepthDoseParametersSequence::removeItem(const unsigned long pos)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -486,7 +528,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::removeItem(const unsigned long pos)
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::read(DcmItem &dataset,
+OFCondition DRTDepthDoseParametersSequence::read(DcmItem &dataset,
                                                  const OFString &card,
                                                  const OFString &type,
                                                  const char *moduleName)
@@ -498,7 +540,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::read(DcmItem &dataset,
         clear();
         /* retrieve sequence element from dataset */
         DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_IssuerOfAdmissionIDSequence, sequence);
+        result = dataset.findAndGetSequence(DCM_DepthDoseParametersSequence, sequence);
         if (sequence != NULL)
         {
             if (checkElementValue(*sequence, card, type, result, moduleName))
@@ -528,7 +570,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::read(DcmItem &dataset,
                 }
             }
         } else {
-            DcmSequenceOfItems element(DCM_IssuerOfAdmissionIDSequence);
+            DcmSequenceOfItems element(DCM_DepthDoseParametersSequence);
             checkElementValue(element, card, type, result, moduleName);
         }
     }
@@ -536,7 +578,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::read(DcmItem &dataset,
 }
 
 
-OFCondition DRTIssuerOfAdmissionIDSequence::write(DcmItem &dataset,
+OFCondition DRTDepthDoseParametersSequence::write(DcmItem &dataset,
                                                   const OFString &card,
                                                   const OFString &type,
                                                   const char *moduleName)
@@ -545,7 +587,7 @@ OFCondition DRTIssuerOfAdmissionIDSequence::write(DcmItem &dataset,
     if (!EmptyDefaultSequence)
     {
         result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_IssuerOfAdmissionIDSequence);
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_DepthDoseParametersSequence);
         if (sequence != NULL)
         {
             result = EC_Normal;
diff --git a/dcmrt/libsrc/drtdias.cc b/dcmrt/libsrc/drtdias.cc
index 70d3afb..ae0d9a8 100644
--- a/dcmrt/libsrc/drtdias.cc
+++ b/dcmrt/libsrc/drtdias.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDeidentificationActionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtdimcs.cc b/dcmrt/libsrc/drtdimcs.cc
index 05fcc5b..b1d056c 100644
--- a/dcmrt/libsrc/drtdimcs.cc
+++ b/dcmrt/libsrc/drtdimcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDeidentificationMethodCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTDeidentificationMethodCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTDeidentificationMethodCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTDeidentificationMethodCodeSequence::Item &DRTDeidentificationMethodCodeSequen
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTDeidentificationMethodCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTDeidentificationMethodCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DeidentificationMethodCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DeidentificationMethodCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DeidentificationMethodCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DeidentificationMethodCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DeidentificationMethodCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DeidentificationMethodCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DeidentificationMethodCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DeidentificationMethodCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DeidentificationMethodCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DeidentificationMethodCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DeidentificationMethodCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DeidentificationMethodCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DeidentificationMethodCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DeidentificationMethodCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::getMappingResource(OFSt
 }
 
 
+OFCondition DRTDeidentificationMethodCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTDeidentificationMethodCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTDeidentificationMethodCodeSequence::Item::setMappingResource(cons
 }
 
 
+OFCondition DRTDeidentificationMethodCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTDeidentificationMethodCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtdimrs.cc b/dcmrt/libsrc/drtdimrs.cc
index 89620c1..6ecb63d 100644
--- a/dcmrt/libsrc/drtdimrs.cc
+++ b/dcmrt/libsrc/drtdimrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDICOMMediaRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtdirs.cc b/dcmrt/libsrc/drtdirs.cc
index 1d28f30..de66485 100644
--- a/dcmrt/libsrc/drtdirs.cc
+++ b/dcmrt/libsrc/drtdirs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDICOMRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtdose.cc b/dcmrt/libsrc/drtdose.cc
index aee5980..2f298e8 100644
--- a/dcmrt/libsrc/drtdose.cc
+++ b/dcmrt/libsrc/drtdose.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDoseIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTDoseIOD::DRTDoseIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTDoseIOD::DRTDoseIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -77,7 +87,16 @@ DRTDoseIOD::DRTDoseIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTDoseIOD::DRTDoseIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -121,6 +141,7 @@ DRTDoseIOD::DRTDoseIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -133,9 +154,6 @@ DRTDoseIOD::DRTDoseIOD()
     AcquisitionDate(DCM_AcquisitionDate),
     AcquisitionTime(DCM_AcquisitionTime),
     AcquisitionDateTime(DCM_AcquisitionDateTime),
-    ReferencedImageSequence(),
-    DerivationDescription(DCM_DerivationDescription),
-    SourceImageSequence(),
     ImagesInAcquisition(DCM_ImagesInAcquisition),
     ImageComments(DCM_ImageComments),
     QualityControlImage(DCM_QualityControlImage),
@@ -155,7 +173,6 @@ DRTDoseIOD::DRTDoseIOD()
     SliceLocation(DCM_SliceLocation),
     Rows(DCM_Rows),
     Columns(DCM_Columns),
-    PixelData(DCM_PixelData),
     PlanarConfiguration(DCM_PlanarConfiguration),
     PixelAspectRatio(DCM_PixelAspectRatio),
     SmallestImagePixelValue(DCM_SmallestImagePixelValue),
@@ -167,6 +184,8 @@ DRTDoseIOD::DRTDoseIOD()
     GreenPaletteColorLookupTableData(DCM_GreenPaletteColorLookupTableData),
     BluePaletteColorLookupTableData(DCM_BluePaletteColorLookupTableData),
     ICCProfile(DCM_ICCProfile),
+    ColorSpace(DCM_ColorSpace),
+    PixelData(DCM_PixelData),
     PixelDataProviderURL(DCM_PixelDataProviderURL),
     PixelPaddingRangeLimit(DCM_PixelPaddingRangeLimit),
     NumberOfFrames(DCM_NumberOfFrames),
@@ -236,6 +255,8 @@ DRTDoseIOD::DRTDoseIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -267,6 +288,9 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -282,12 +306,19 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -321,7 +352,16 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -341,6 +381,7 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -365,6 +406,7 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -377,9 +419,6 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     AcquisitionDate(copy.AcquisitionDate),
     AcquisitionTime(copy.AcquisitionTime),
     AcquisitionDateTime(copy.AcquisitionDateTime),
-    ReferencedImageSequence(copy.ReferencedImageSequence),
-    DerivationDescription(copy.DerivationDescription),
-    SourceImageSequence(copy.SourceImageSequence),
     ImagesInAcquisition(copy.ImagesInAcquisition),
     ImageComments(copy.ImageComments),
     QualityControlImage(copy.QualityControlImage),
@@ -399,7 +438,6 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     SliceLocation(copy.SliceLocation),
     Rows(copy.Rows),
     Columns(copy.Columns),
-    PixelData(copy.PixelData),
     PlanarConfiguration(copy.PlanarConfiguration),
     PixelAspectRatio(copy.PixelAspectRatio),
     SmallestImagePixelValue(copy.SmallestImagePixelValue),
@@ -411,6 +449,8 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     GreenPaletteColorLookupTableData(copy.GreenPaletteColorLookupTableData),
     BluePaletteColorLookupTableData(copy.BluePaletteColorLookupTableData),
     ICCProfile(copy.ICCProfile),
+    ColorSpace(copy.ColorSpace),
+    PixelData(copy.PixelData),
     PixelDataProviderURL(copy.PixelDataProviderURL),
     PixelPaddingRangeLimit(copy.PixelPaddingRangeLimit),
     NumberOfFrames(copy.NumberOfFrames),
@@ -480,6 +520,8 @@ DRTDoseIOD::DRTDoseIOD(const DRTDoseIOD &copy)
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -517,6 +559,9 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -532,12 +577,19 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -571,7 +623,16 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -591,6 +652,7 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -615,6 +677,7 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -627,9 +690,6 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         AcquisitionDate = copy.AcquisitionDate;
         AcquisitionTime = copy.AcquisitionTime;
         AcquisitionDateTime = copy.AcquisitionDateTime;
-        ReferencedImageSequence = copy.ReferencedImageSequence;
-        DerivationDescription = copy.DerivationDescription;
-        SourceImageSequence = copy.SourceImageSequence;
         ImagesInAcquisition = copy.ImagesInAcquisition;
         ImageComments = copy.ImageComments;
         QualityControlImage = copy.QualityControlImage;
@@ -649,7 +709,6 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         SliceLocation = copy.SliceLocation;
         Rows = copy.Rows;
         Columns = copy.Columns;
-        PixelData = copy.PixelData;
         PlanarConfiguration = copy.PlanarConfiguration;
         PixelAspectRatio = copy.PixelAspectRatio;
         SmallestImagePixelValue = copy.SmallestImagePixelValue;
@@ -661,6 +720,8 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         GreenPaletteColorLookupTableData = copy.GreenPaletteColorLookupTableData;
         BluePaletteColorLookupTableData = copy.BluePaletteColorLookupTableData;
         ICCProfile = copy.ICCProfile;
+        ColorSpace = copy.ColorSpace;
+        PixelData = copy.PixelData;
         PixelDataProviderURL = copy.PixelDataProviderURL;
         PixelPaddingRangeLimit = copy.PixelPaddingRangeLimit;
         NumberOfFrames = copy.NumberOfFrames;
@@ -730,6 +791,8 @@ DRTDoseIOD &DRTDoseIOD::operator=(const DRTDoseIOD &copy)
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -762,6 +825,9 @@ void DRTDoseIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -777,12 +843,19 @@ void DRTDoseIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -816,7 +889,16 @@ void DRTDoseIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -836,6 +918,7 @@ void DRTDoseIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -860,6 +943,7 @@ void DRTDoseIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -873,11 +957,6 @@ void DRTDoseIOD::clear()
     AcquisitionDate.clear();
     AcquisitionTime.clear();
     AcquisitionDateTime.clear();
-    ReferencedImageSequence.clear();
-    DerivationDescription.clear();
-    DerivationCodeSequence.clear();
-    SourceImageSequence.clear();
-    ReferencedInstanceSequence.clear();
     ImagesInAcquisition.clear();
     ImageComments.clear();
     QualityControlImage.clear();
@@ -903,7 +982,6 @@ void DRTDoseIOD::clear()
     BitsStored.clear();
     HighBit.clear();
     PixelRepresentation.clear();
-    PixelData.clear();
     PlanarConfiguration.clear();
     PixelAspectRatio.clear();
     SmallestImagePixelValue.clear();
@@ -915,6 +993,8 @@ void DRTDoseIOD::clear()
     GreenPaletteColorLookupTableData.clear();
     BluePaletteColorLookupTableData.clear();
     ICCProfile.clear();
+    ColorSpace.clear();
+    PixelData.clear();
     PixelDataProviderURL.clear();
     PixelPaddingRangeLimit.clear();
     NumberOfFrames.clear();
@@ -951,6 +1031,8 @@ void DRTDoseIOD::clear()
     GridFrameOffsetVector.clear();
     DoseGridScaling.clear();
     TissueHeterogeneityCorrection.clear();
+    DerivationCodeSequence.clear();
+    ReferencedInstanceSequence.clear();
     ReferencedStructureSetSequence.clear();
     DVHNormalizationPoint.clear();
     DVHNormalizationDoseValue.clear();
@@ -975,6 +1057,8 @@ void DRTDoseIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -1055,6 +1139,7 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -1070,11 +1155,6 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, AcquisitionDate, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, AcquisitionTime, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, AcquisitionDateTime, "1", "3", "GeneralImageModule");
-        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralImageModule");
-        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralImageModule");
-        // DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralImageModule");
-        SourceImageSequence.read(dataset, "1-n", "3", "GeneralImageModule");
-        // ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, ImagesInAcquisition, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, ImageComments, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, QualityControlImage, "1", "3", "GeneralImageModule");
@@ -1113,7 +1193,6 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset)
             // getAndCheckElementFromDataset(dataset, BitsStored, "1", "1", "ImagePixelModule");
             // getAndCheckElementFromDataset(dataset, HighBit, "1", "1", "ImagePixelModule");
             // getAndCheckElementFromDataset(dataset, PixelRepresentation, "1", "1", "ImagePixelModule");
-            getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, PlanarConfiguration, "1", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, PixelAspectRatio, "2", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, SmallestImagePixelValue, "1", "3", "ImagePixelModule");
@@ -1125,6 +1204,8 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset)
             getAndCheckElementFromDataset(dataset, GreenPaletteColorLookupTableData, "1", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, BluePaletteColorLookupTableData, "1", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, ICCProfile, "1", "3", "ImagePixelModule");
+            getAndCheckElementFromDataset(dataset, ColorSpace, "1", "3", "ImagePixelModule");
+            getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, PixelDataProviderURL, "1", "1C", "ImagePixelModule");
             getAndCheckElementFromDataset(dataset, PixelPaddingRangeLimit, "1", "1C", "ImagePixelModule");
         }
@@ -1248,6 +1329,8 @@ OFCondition DRTDoseIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -1290,6 +1373,9 @@ OFCondition DRTDoseIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -1305,12 +1391,19 @@ OFCondition DRTDoseIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -1366,7 +1459,16 @@ OFCondition DRTDoseIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -1403,6 +1505,7 @@ OFCondition DRTDoseIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -1441,6 +1544,9 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -1456,12 +1562,19 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -1506,7 +1619,16 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -1534,6 +1656,7 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1567,6 +1690,7 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1584,11 +1708,6 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmDate(AcquisitionDate), "1", "3", "GeneralImageModule");
             addElementToDataset(result, dataset, new DcmTime(AcquisitionTime), "1", "3", "GeneralImageModule");
             addElementToDataset(result, dataset, new DcmDateTime(AcquisitionDateTime), "1", "3", "GeneralImageModule");
-            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
-            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralImageModule");
-            // if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
-            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
-            // if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
             addElementToDataset(result, dataset, new DcmIntegerString(ImagesInAcquisition), "1", "3", "GeneralImageModule");
             addElementToDataset(result, dataset, new DcmLongText(ImageComments), "1", "3", "GeneralImageModule");
             addElementToDataset(result, dataset, new DcmCodeString(QualityControlImage), "1", "3", "GeneralImageModule");
@@ -1624,7 +1743,6 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
             // addElementToDataset(result, dataset, new DcmUnsignedShort(BitsStored), "1", "1", "ImagePixelModule");
             // addElementToDataset(result, dataset, new DcmUnsignedShort(HighBit), "1", "1", "ImagePixelModule");
             // addElementToDataset(result, dataset, new DcmUnsignedShort(PixelRepresentation), "1", "1", "ImagePixelModule");
-            addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmUnsignedShort(PlanarConfiguration), "1", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmIntegerString(PixelAspectRatio), "2", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmUnsignedShort(SmallestImagePixelValue), "1", "3", "ImagePixelModule");
@@ -1636,6 +1754,8 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmOtherByteOtherWord(GreenPaletteColorLookupTableData), "1", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmOtherByteOtherWord(BluePaletteColorLookupTableData), "1", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmOtherByteOtherWord(ICCProfile), "1", "3", "ImagePixelModule");
+            addElementToDataset(result, dataset, new DcmCodeString(ColorSpace), "1", "3", "ImagePixelModule");
+            addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmUniversalResourceIdentifierOrLocator(PixelDataProviderURL), "1", "1C", "ImagePixelModule");
             addElementToDataset(result, dataset, new DcmUnsignedShort(PixelPaddingRangeLimit), "1", "1C", "ImagePixelModule");
         }
@@ -1751,6 +1871,8 @@ OFCondition DRTDoseIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1817,7 +1939,16 @@ OFBool DRTDoseIOD::isPatientStudyModulePresent(const OFBool /*complete*/)
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1858,9 +1989,6 @@ OFBool DRTDoseIOD::isGeneralImageModulePresent(const OFBool /*complete*/)
            !AcquisitionDate.isEmpty() ||
            !AcquisitionTime.isEmpty() ||
            !AcquisitionDateTime.isEmpty() ||
-           !ReferencedImageSequence.isEmpty() ||
-           !DerivationDescription.isEmpty() ||
-           !SourceImageSequence.isEmpty() ||
            !ImagesInAcquisition.isEmpty() ||
            !ImageComments.isEmpty() ||
            !QualityControlImage.isEmpty() ||
@@ -1906,7 +2034,6 @@ OFBool DRTDoseIOD::isImagePixelModulePresent(const OFBool complete)
         /* check whether at least one attribute is present */
         return !Rows.isEmpty() ||
                !Columns.isEmpty() ||
-               !PixelData.isEmpty() ||
                !PlanarConfiguration.isEmpty() ||
                !PixelAspectRatio.isEmpty() ||
                !SmallestImagePixelValue.isEmpty() ||
@@ -1918,6 +2045,8 @@ OFBool DRTDoseIOD::isImagePixelModulePresent(const OFBool complete)
                !GreenPaletteColorLookupTableData.isEmpty() ||
                !BluePaletteColorLookupTableData.isEmpty() ||
                !ICCProfile.isEmpty() ||
+               !ColorSpace.isEmpty() ||
+               !PixelData.isEmpty() ||
                !PixelDataProviderURL.isEmpty() ||
                !PixelPaddingRangeLimit.isEmpty();
     }
@@ -2116,6 +2245,12 @@ OFCondition DRTDoseIOD::getAdmittingDiagnosesDescription(OFString &value, const
 }
 
 
+OFCondition DRTDoseIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos);
@@ -2245,6 +2380,12 @@ OFCondition DRTDoseIOD::getClinicalTrialTimePointID(OFString &value, const signe
 }
 
 
+OFCondition DRTDoseIOD::getColorSpace(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(ColorSpace, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getColumns(Uint16 &value, const unsigned long pos) const
 {
     return OFconst_cast(DcmUnsignedShort &, Columns).getUint16(value, pos);
@@ -2323,12 +2464,6 @@ OFCondition DRTDoseIOD::getDeidentificationMethod(OFString &value, const signed
 }
 
 
-OFCondition DRTDoseIOD::getDerivationDescription(OFString &value, const signed long pos) const
-{
-    return getStringValueFromElement(DerivationDescription, value, pos);
-}
-
-
 OFCondition DRTDoseIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(DeviceSerialNumber, value, pos);
@@ -2593,6 +2728,12 @@ OFCondition DRTDoseIOD::getLargestImagePixelValue(Uint16 &value, const unsigned
 }
 
 
+OFCondition DRTDoseIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -2641,6 +2782,36 @@ OFCondition DRTDoseIOD::getManufacturerModelName(OFString &value, const signed l
 }
 
 
+OFCondition DRTDoseIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -2785,18 +2956,42 @@ OFCondition DRTDoseIOD::getPatientAge(OFString &value, const signed long pos) co
 }
 
 
+OFCondition DRTDoseIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTDoseIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTDoseIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -2809,6 +3004,12 @@ OFCondition DRTDoseIOD::getPatientComments(OFString &value, const signed long po
 }
 
 
+OFCondition DRTDoseIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -2863,6 +3064,12 @@ OFCondition DRTDoseIOD::getPatientSpeciesDescription(OFString &value, const sign
 }
 
 
+OFCondition DRTDoseIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getPatientWeight(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientWeight, value, pos);
@@ -2989,6 +3196,12 @@ OFCondition DRTDoseIOD::getPositionReferenceIndicator(OFString &value, const sig
 }
 
 
+OFCondition DRTDoseIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getPresentationLUTShape(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PresentationLUTShape, value, pos);
@@ -3256,6 +3469,12 @@ OFCondition DRTDoseIOD::getSmallestImagePixelValue(Uint16 &value, const unsigned
 }
 
 
+OFCondition DRTDoseIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -3298,6 +3517,24 @@ OFCondition DRTDoseIOD::getStereoPairsPresent(OFString &value, const signed long
 }
 
 
+OFCondition DRTDoseIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTDoseIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTDoseIOD::getStructureSetDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StructureSetDate, value, pos);
@@ -3448,6 +3685,15 @@ OFCondition DRTDoseIOD::setAdmittingDiagnosesDescription(const OFString &value,
 }
 
 
+OFCondition DRTDoseIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -3616,6 +3862,15 @@ OFCondition DRTDoseIOD::setClinicalTrialTimePointID(const OFString &value, const
 }
 
 
+OFCondition DRTDoseIOD::setColorSpace(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = ColorSpace.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setColumns(const Uint16 value, const unsigned long pos)
 {
     return Columns.putUint16(value, pos);
@@ -3703,15 +3958,6 @@ OFCondition DRTDoseIOD::setDeidentificationMethod(const OFString &value, const O
 }
 
 
-OFCondition DRTDoseIOD::setDerivationDescription(const OFString &value, const OFBool check)
-{
-    OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
-    if (result.good())
-        result = DerivationDescription.putOFStringArray(value);
-    return result;
-}
-
-
 OFCondition DRTDoseIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -3982,6 +4228,15 @@ OFCondition DRTDoseIOD::setLargestImagePixelValue(const Uint16 value, const unsi
 }
 
 
+OFCondition DRTDoseIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -4036,6 +4291,33 @@ OFCondition DRTDoseIOD::setManufacturerModelName(const OFString &value, const OF
 }
 
 
+OFCondition DRTDoseIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTDoseIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTDoseIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -4201,6 +4483,15 @@ OFCondition DRTDoseIOD::setPatientAge(const OFString &value, const OFBool check)
 }
 
 
+OFCondition DRTDoseIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -4210,6 +4501,15 @@ OFCondition DRTDoseIOD::setPatientBirthDate(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTDoseIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -4219,6 +4519,15 @@ OFCondition DRTDoseIOD::setPatientBirthTime(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTDoseIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -4237,6 +4546,15 @@ OFCondition DRTDoseIOD::setPatientComments(const OFString &value, const OFBool c
 }
 
 
+OFCondition DRTDoseIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -4309,6 +4627,15 @@ OFCondition DRTDoseIOD::setPatientSpeciesDescription(const OFString &value, cons
 }
 
 
+OFCondition DRTDoseIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setPatientWeight(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -4450,6 +4777,12 @@ OFCondition DRTDoseIOD::setPositionReferenceIndicator(const OFString &value, con
 }
 
 
+OFCondition DRTDoseIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTDoseIOD::setPresentationLUTShape(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -4750,6 +5083,15 @@ OFCondition DRTDoseIOD::setSmallestImagePixelValue(const Uint16 value, const uns
 }
 
 
+OFCondition DRTDoseIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -4804,6 +5146,33 @@ OFCondition DRTDoseIOD::setStereoPairsPresent(const OFString &value, const OFBoo
 }
 
 
+OFCondition DRTDoseIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTDoseIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTDoseIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTDoseIOD::setStructureSetDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
diff --git a/dcmrt/libsrc/drtdrs.cc b/dcmrt/libsrc/drtdrs.cc
index 4cc00b7..e709dc2 100644
--- a/dcmrt/libsrc/drtdrs.cc
+++ b/dcmrt/libsrc/drtdrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtds.cc b/dcmrt/libsrc/drtds.cc
index 69b00cf..9061a44 100644
--- a/dcmrt/libsrc/drtds.cc
+++ b/dcmrt/libsrc/drtds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -44,6 +44,7 @@ DRTDeviceSequence::Item::Item(const OFBool emptyDefaultItem)
     Manufacturer(DCM_Manufacturer),
     ManufacturerModelName(DCM_ManufacturerModelName),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -75,6 +76,7 @@ DRTDeviceSequence::Item::Item(const Item &copy)
     Manufacturer(copy.Manufacturer),
     ManufacturerModelName(copy.ManufacturerModelName),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -114,6 +116,7 @@ DRTDeviceSequence::Item &DRTDeviceSequence::Item::operator=(const Item &copy)
         Manufacturer = copy.Manufacturer;
         ManufacturerModelName = copy.ManufacturerModelName;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -137,6 +140,7 @@ void DRTDeviceSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -168,6 +172,7 @@ OFBool DRTDeviceSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -209,6 +214,7 @@ OFCondition DRTDeviceSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DeviceSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DeviceSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DeviceSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DeviceSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DeviceSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DeviceSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DeviceSequence");
@@ -246,6 +252,7 @@ OFCondition DRTDeviceSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DeviceSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DeviceSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DeviceSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DeviceSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DeviceSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DeviceSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DeviceSequence");
@@ -499,6 +506,15 @@ OFCondition DRTDeviceSequence::Item::getMappingResource(OFString &value, const s
 }
 
 
+OFCondition DRTDeviceSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTDeviceSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -803,6 +819,19 @@ OFCondition DRTDeviceSequence::Item::setMappingResource(const OFString &value, c
 }
 
 
+OFCondition DRTDeviceSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTDeviceSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtdspcs.cc b/dcmrt/libsrc/drtdspcs.cc
index a03182d..723d23d 100644
--- a/dcmrt/libsrc/drtdspcs.cc
+++ b/dcmrt/libsrc/drtdspcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDigitalSignaturePurposeCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item::Item(const OFBool emptyDefaultItem
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTDigitalSignaturePurposeCodeSequence::Item &DRTDigitalSignaturePurposeCodeSequ
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTDigitalSignaturePurposeCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTDigitalSignaturePurposeCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "DigitalSignaturePurposeCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "DigitalSignaturePurposeCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "DigitalSignaturePurposeCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "DigitalSignaturePurposeCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "DigitalSignaturePurposeCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "DigitalSignaturePurposeCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "DigitalSignaturePurposeCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "DigitalSignaturePurposeCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "DigitalSignaturePurposeCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "DigitalSignaturePurposeCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "DigitalSignaturePurposeCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "DigitalSignaturePurposeCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "DigitalSignaturePurposeCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "DigitalSignaturePurposeCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::getMappingResource(OFS
 }
 
 
+OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::setMappingResource(con
 }
 
 
+OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTDigitalSignaturePurposeCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtdss.cc b/dcmrt/libsrc/drtdss.cc
index e9e173a..139c075 100644
--- a/dcmrt/libsrc/drtdss.cc
+++ b/dcmrt/libsrc/drtdss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDigitalSignaturesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtdvhs.cc b/dcmrt/libsrc/drtdvhs.cc
index 328a765..1969101 100644
--- a/dcmrt/libsrc/drtdvhs.cc
+++ b/dcmrt/libsrc/drtdvhs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDVHSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtdvrrs.cc b/dcmrt/libsrc/drtdvrrs.cc
index eec70c2..217d76f 100644
--- a/dcmrt/libsrc/drtdvrrs.cc
+++ b/dcmrt/libsrc/drtdvrrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTDVHReferencedROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drteas.cc b/dcmrt/libsrc/drteas.cc
index 53d8069..02e07a8 100644
--- a/dcmrt/libsrc/drteas.cc
+++ b/dcmrt/libsrc/drteas.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTEncryptedAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtecs.cc b/dcmrt/libsrc/drtecs.cc
index 4f07d4c..26e6b76 100644
--- a/dcmrt/libsrc/drtecs.cc
+++ b/dcmrt/libsrc/drtecs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTEquivalentCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -25,7 +25,16 @@ DRTEquivalentCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     CodeValue(DCM_CodeValue),
     CodingSchemeDesignator(DCM_CodingSchemeDesignator),
     CodingSchemeVersion(DCM_CodingSchemeVersion),
+    ContextGroupExtensionCreatorUID(DCM_ContextGroupExtensionCreatorUID),
+    ContextGroupExtensionFlag(DCM_ContextGroupExtensionFlag),
+    ContextGroupLocalVersion(DCM_ContextGroupLocalVersion),
+    ContextGroupVersion(DCM_ContextGroupVersion),
+    ContextIdentifier(DCM_ContextIdentifier),
+    ContextUID(DCM_ContextUID),
     LongCodeValue(DCM_LongCodeValue),
+    MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
+    MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
 }
@@ -37,7 +46,16 @@ DRTEquivalentCodeSequence::Item::Item(const Item &copy)
     CodeValue(copy.CodeValue),
     CodingSchemeDesignator(copy.CodingSchemeDesignator),
     CodingSchemeVersion(copy.CodingSchemeVersion),
+    ContextGroupExtensionCreatorUID(copy.ContextGroupExtensionCreatorUID),
+    ContextGroupExtensionFlag(copy.ContextGroupExtensionFlag),
+    ContextGroupLocalVersion(copy.ContextGroupLocalVersion),
+    ContextGroupVersion(copy.ContextGroupVersion),
+    ContextIdentifier(copy.ContextIdentifier),
+    ContextUID(copy.ContextUID),
     LongCodeValue(copy.LongCodeValue),
+    MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
+    MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
 }
@@ -57,7 +75,16 @@ DRTEquivalentCodeSequence::Item &DRTEquivalentCodeSequence::Item::operator=(cons
         CodeValue = copy.CodeValue;
         CodingSchemeDesignator = copy.CodingSchemeDesignator;
         CodingSchemeVersion = copy.CodingSchemeVersion;
+        ContextGroupExtensionCreatorUID = copy.ContextGroupExtensionCreatorUID;
+        ContextGroupExtensionFlag = copy.ContextGroupExtensionFlag;
+        ContextGroupLocalVersion = copy.ContextGroupLocalVersion;
+        ContextGroupVersion = copy.ContextGroupVersion;
+        ContextIdentifier = copy.ContextIdentifier;
+        ContextUID = copy.ContextUID;
         LongCodeValue = copy.LongCodeValue;
+        MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
+        MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
     return *this;
@@ -75,6 +102,15 @@ void DRTEquivalentCodeSequence::Item::clear()
         CodeMeaning.clear();
         LongCodeValue.clear();
         URNCodeValue.clear();
+        ContextIdentifier.clear();
+        ContextUID.clear();
+        MappingResource.clear();
+        MappingResourceUID.clear();
+        MappingResourceName.clear();
+        ContextGroupVersion.clear();
+        ContextGroupExtensionFlag.clear();
+        ContextGroupLocalVersion.clear();
+        ContextGroupExtensionCreatorUID.clear();
     }
 }
 
@@ -86,7 +122,16 @@ OFBool DRTEquivalentCodeSequence::Item::isEmpty()
            CodingSchemeVersion.isEmpty() &&
            CodeMeaning.isEmpty() &&
            LongCodeValue.isEmpty() &&
-           URNCodeValue.isEmpty();
+           URNCodeValue.isEmpty() &&
+           ContextIdentifier.isEmpty() &&
+           ContextUID.isEmpty() &&
+           MappingResource.isEmpty() &&
+           MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
+           ContextGroupVersion.isEmpty() &&
+           ContextGroupExtensionFlag.isEmpty() &&
+           ContextGroupLocalVersion.isEmpty() &&
+           ContextGroupExtensionCreatorUID.isEmpty();
 }
 
 
@@ -109,6 +154,15 @@ OFCondition DRTEquivalentCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "EquivalentCodeSequence");
         getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "EquivalentCodeSequence");
         getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "EquivalentCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "EquivalentCodeSequence");
         result = EC_Normal;
     }
     return result;
@@ -127,6 +181,15 @@ OFCondition DRTEquivalentCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "EquivalentCodeSequence");
         addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "EquivalentCodeSequence");
         addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "EquivalentCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "EquivalentCodeSequence");
     }
     return result;
 }
@@ -168,6 +231,60 @@ OFCondition DRTEquivalentCodeSequence::Item::getCodingSchemeVersion(OFString &va
 }
 
 
+OFCondition DRTEquivalentCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupExtensionCreatorUID, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupExtensionFlag, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupLocalVersion, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextGroupVersion, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextIdentifier, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ContextUID, value, pos);
+}
+
+
 OFCondition DRTEquivalentCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -177,6 +294,33 @@ OFCondition DRTEquivalentCodeSequence::Item::getLongCodeValue(OFString &value, c
 }
 
 
+OFCondition DRTEquivalentCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResource, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceUID, value, pos);
+}
+
+
 OFCondition DRTEquivalentCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -238,6 +382,84 @@ OFCondition DRTEquivalentCodeSequence::Item::setCodingSchemeVersion(const OFStri
 }
 
 
+OFCondition DRTEquivalentCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupExtensionCreatorUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupExtensionFlag.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupLocalVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDateTime::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextGroupVersion.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextIdentifier.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setContextUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ContextUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTEquivalentCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -251,6 +473,45 @@ OFCondition DRTEquivalentCodeSequence::Item::setLongCodeValue(const OFString &va
 }
 
 
+OFCondition DRTEquivalentCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResource.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTEquivalentCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceUID.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTEquivalentCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtes.cc b/dcmrt/libsrc/drtes.cc
index 58d0027..e1654d7 100644
--- a/dcmrt/libsrc/drtes.cc
+++ b/dcmrt/libsrc/drtes.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTExposureSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtfds.cc b/dcmrt/libsrc/drtfds.cc
index 3a69a63..f258e35 100644
--- a/dcmrt/libsrc/drtfds.cc
+++ b/dcmrt/libsrc/drtfds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTFixationDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtfes.cc b/dcmrt/libsrc/drtfes.cc
index add7207..d9df793 100644
--- a/dcmrt/libsrc/drtfes.cc
+++ b/dcmrt/libsrc/drtfes.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTFrameExtractionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtfgs.cc b/dcmrt/libsrc/drtfgs.cc
index c82bde5..b53b00a 100644
--- a/dcmrt/libsrc/drtfgs.cc
+++ b/dcmrt/libsrc/drtfgs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTFractionGroupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtfgss.cc b/dcmrt/libsrc/drtfgss.cc
index 6bfe62a..6abf72e 100644
--- a/dcmrt/libsrc/drtfgss.cc
+++ b/dcmrt/libsrc/drtfgss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTFractionGroupSummarySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtfms.cc b/dcmrt/libsrc/drtfms.cc
index a0e73bb..878e8c7 100644
--- a/dcmrt/libsrc/drtfms.cc
+++ b/dcmrt/libsrc/drtfms.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTFluenceMapSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtfsss.cc b/dcmrt/libsrc/drtfsss.cc
index 75400c7..25991a5 100644
--- a/dcmrt/libsrc/drtfsss.cc
+++ b/dcmrt/libsrc/drtfsss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTFractionStatusSummarySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtgas.cc b/dcmrt/libsrc/drtgas.cc
index 613c9f2..72c6888 100644
--- a/dcmrt/libsrc/drtgas.cc
+++ b/dcmrt/libsrc/drtgas.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTGeneralAccessorySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtopis.cc b/dcmrt/libsrc/drtgpis.cc
similarity index 64%
copy from dcmrt/libsrc/drtopis.cc
copy to dcmrt/libsrc/drtgpis.cc
index a47bd1e..6d1bf15 100644
--- a/dcmrt/libsrc/drtopis.cc
+++ b/dcmrt/libsrc/drtgpis.cc
@@ -1,50 +1,52 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Source file for class DRTOtherPatientIDsSequence
+ *  Source file for class DRTGroupOfPatientsIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
-#include "dcmtk/dcmrt/seq/drtopis.h"
+#include "dcmtk/dcmrt/seq/drtgpis.h"
 
 
 // --- item class ---
 
-DRTOtherPatientIDsSequence::Item::Item(const OFBool emptyDefaultItem)
+DRTGroupOfPatientsIdentificationSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     PatientID(DCM_PatientID),
-    TypeOfPatientID(DCM_TypeOfPatientID)
+    PatientPosition(DCM_PatientPosition),
+    SubjectRelativePositionInImage(DCM_SubjectRelativePositionInImage)
 {
 }
 
 
-DRTOtherPatientIDsSequence::Item::Item(const Item &copy)
+DRTGroupOfPatientsIdentificationSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientID(copy.PatientID),
-    TypeOfPatientID(copy.TypeOfPatientID)
+    PatientPosition(copy.PatientPosition),
+    SubjectRelativePositionInImage(copy.SubjectRelativePositionInImage)
 {
 }
 
 
-DRTOtherPatientIDsSequence::Item::~Item()
+DRTGroupOfPatientsIdentificationSequence::Item::~Item()
 {
 }
 
 
-DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::Item::operator=(const Item &copy)
+DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::Item::operator=(const Item &copy)
 {
     if (this != &copy)
     {
@@ -52,13 +54,14 @@ DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::Item::operator=(co
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientID = copy.PatientID;
-        TypeOfPatientID = copy.TypeOfPatientID;
+        PatientPosition = copy.PatientPosition;
+        SubjectRelativePositionInImage = copy.SubjectRelativePositionInImage;
     }
     return *this;
 }
 
 
-void DRTOtherPatientIDsSequence::Item::clear()
+void DRTGroupOfPatientsIdentificationSequence::Item::clear()
 {
     if (!EmptyDefaultItem)
     {
@@ -66,59 +69,63 @@ void DRTOtherPatientIDsSequence::Item::clear()
         PatientID.clear();
         IssuerOfPatientID.clear();
         IssuerOfPatientIDQualifiersSequence.clear();
-        TypeOfPatientID.clear();
+        SubjectRelativePositionInImage.clear();
+        PatientPosition.clear();
     }
 }
 
 
-OFBool DRTOtherPatientIDsSequence::Item::isEmpty()
+OFBool DRTGroupOfPatientsIdentificationSequence::Item::isEmpty()
 {
     return PatientID.isEmpty() &&
            IssuerOfPatientID.isEmpty() &&
            IssuerOfPatientIDQualifiersSequence.isEmpty() &&
-           TypeOfPatientID.isEmpty();
+           SubjectRelativePositionInImage.isEmpty() &&
+           PatientPosition.isEmpty();
 }
 
 
-OFBool DRTOtherPatientIDsSequence::Item::isValid() const
+OFBool DRTGroupOfPatientsIdentificationSequence::Item::isValid() const
 {
     return !EmptyDefaultItem;
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::read(DcmItem &item)
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, PatientID, "1", "1", "OtherPatientIDsSequence");
-        getAndCheckElementFromDataset(item, IssuerOfPatientID, "1", "3", "OtherPatientIDsSequence");
-        IssuerOfPatientIDQualifiersSequence.read(item, "1-n", "3", "OtherPatientIDsSequence");
-        getAndCheckElementFromDataset(item, TypeOfPatientID, "1", "1", "OtherPatientIDsSequence");
+        getAndCheckElementFromDataset(item, PatientID, "1", "1", "GroupOfPatientsIdentificationSequence");
+        getAndCheckElementFromDataset(item, IssuerOfPatientID, "1", "3", "GroupOfPatientsIdentificationSequence");
+        IssuerOfPatientIDQualifiersSequence.read(item, "1-n", "3", "GroupOfPatientsIdentificationSequence");
+        getAndCheckElementFromDataset(item, SubjectRelativePositionInImage, "3", "3", "GroupOfPatientsIdentificationSequence");
+        getAndCheckElementFromDataset(item, PatientPosition, "1", "3", "GroupOfPatientsIdentificationSequence");
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::write(DcmItem &item)
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmLongString(PatientID), "1", "1", "OtherPatientIDsSequence");
-        addElementToDataset(result, item, new DcmLongString(IssuerOfPatientID), "1", "3", "OtherPatientIDsSequence");
-        if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(item, "1-n", "3", "OtherPatientIDsSequence");
-        addElementToDataset(result, item, new DcmCodeString(TypeOfPatientID), "1", "1", "OtherPatientIDsSequence");
+        addElementToDataset(result, item, new DcmLongString(PatientID), "1", "1", "GroupOfPatientsIdentificationSequence");
+        addElementToDataset(result, item, new DcmLongString(IssuerOfPatientID), "1", "3", "GroupOfPatientsIdentificationSequence");
+        if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(item, "1-n", "3", "GroupOfPatientsIdentificationSequence");
+        addElementToDataset(result, item, new DcmUnsignedShort(SubjectRelativePositionInImage), "3", "3", "GroupOfPatientsIdentificationSequence");
+        addElementToDataset(result, item, new DcmCodeString(PatientPosition), "1", "3", "GroupOfPatientsIdentificationSequence");
     }
     return result;
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::getIssuerOfPatientID(OFString &value, const signed long pos) const
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getIssuerOfPatientID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -127,7 +134,7 @@ OFCondition DRTOtherPatientIDsSequence::Item::getIssuerOfPatientID(OFString &val
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::getPatientID(OFString &value, const signed long pos) const
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getPatientID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -136,16 +143,25 @@ OFCondition DRTOtherPatientIDsSequence::Item::getPatientID(OFString &value, cons
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::getTypeOfPatientID(OFString &value, const signed long pos) const
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getPatientPosition(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(TypeOfPatientID, value, pos);
+        return getStringValueFromElement(PatientPosition, value, pos);
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::setIssuerOfPatientID(const OFString &value, const OFBool check)
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::getSubjectRelativePositionInImage(Uint16 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmUnsignedShort &, SubjectRelativePositionInImage).getUint16(value, pos);
+}
+
+
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setIssuerOfPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -158,7 +174,7 @@ OFCondition DRTOtherPatientIDsSequence::Item::setIssuerOfPatientID(const OFStrin
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::setPatientID(const OFString &value, const OFBool check)
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -171,22 +187,31 @@ OFCondition DRTOtherPatientIDsSequence::Item::setPatientID(const OFString &value
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::setTypeOfPatientID(const OFString &value, const OFBool check)
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setPatientPosition(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
         if (result.good())
-            result = TypeOfPatientID.putOFStringArray(value);
+            result = PatientPosition.putOFStringArray(value);
     }
     return result;
 }
 
 
+OFCondition DRTGroupOfPatientsIdentificationSequence::Item::setSubjectRelativePositionInImage(const Uint16 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return SubjectRelativePositionInImage.putUint16(value, pos);
+}
+
+
 // --- sequence class ---
 
-DRTOtherPatientIDsSequence::DRTOtherPatientIDsSequence(const OFBool emptyDefaultSequence)
+DRTGroupOfPatientsIdentificationSequence::DRTGroupOfPatientsIdentificationSequence(const OFBool emptyDefaultSequence)
   : EmptyDefaultSequence(emptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -196,7 +221,7 @@ DRTOtherPatientIDsSequence::DRTOtherPatientIDsSequence(const OFBool emptyDefault
 }
 
 
-DRTOtherPatientIDsSequence::DRTOtherPatientIDsSequence(const DRTOtherPatientIDsSequence &copy)
+DRTGroupOfPatientsIdentificationSequence::DRTGroupOfPatientsIdentificationSequence(const DRTGroupOfPatientsIdentificationSequence &copy)
   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -222,7 +247,7 @@ DRTOtherPatientIDsSequence::DRTOtherPatientIDsSequence(const DRTOtherPatientIDsS
 }
 
 
-DRTOtherPatientIDsSequence &DRTOtherPatientIDsSequence::operator=(const DRTOtherPatientIDsSequence &copy)
+DRTGroupOfPatientsIdentificationSequence &DRTGroupOfPatientsIdentificationSequence::operator=(const DRTGroupOfPatientsIdentificationSequence &copy)
 {
     if (this != &copy)
     {
@@ -250,13 +275,13 @@ DRTOtherPatientIDsSequence &DRTOtherPatientIDsSequence::operator=(const DRTOther
 }
 
 
-DRTOtherPatientIDsSequence::~DRTOtherPatientIDsSequence()
+DRTGroupOfPatientsIdentificationSequence::~DRTGroupOfPatientsIdentificationSequence()
 {
     clear();
 }
 
 
-void DRTOtherPatientIDsSequence::clear()
+void DRTGroupOfPatientsIdentificationSequence::clear()
 {
     if (!EmptyDefaultSequence)
     {
@@ -275,25 +300,25 @@ void DRTOtherPatientIDsSequence::clear()
 }
 
 
-OFBool DRTOtherPatientIDsSequence::isEmpty()
+OFBool DRTGroupOfPatientsIdentificationSequence::isEmpty()
 {
     return SequenceOfItems.empty();
 }
 
 
-OFBool DRTOtherPatientIDsSequence::isValid() const
+OFBool DRTGroupOfPatientsIdentificationSequence::isValid() const
 {
     return !EmptyDefaultSequence;
 }
 
 
-unsigned long DRTOtherPatientIDsSequence::getNumberOfItems() const
+unsigned long DRTGroupOfPatientsIdentificationSequence::getNumberOfItems() const
 {
     return SequenceOfItems.size();
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::gotoFirstItem()
+OFCondition DRTGroupOfPatientsIdentificationSequence::gotoFirstItem()
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -305,7 +330,7 @@ OFCondition DRTOtherPatientIDsSequence::gotoFirstItem()
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::gotoNextItem()
+OFCondition DRTGroupOfPatientsIdentificationSequence::gotoNextItem()
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -317,7 +342,7 @@ OFCondition DRTOtherPatientIDsSequence::gotoNextItem()
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+OFCondition DRTGroupOfPatientsIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -337,7 +362,7 @@ OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num, OFList
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+OFCondition DRTGroupOfPatientsIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -357,13 +382,13 @@ OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num, OFList
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num)
+OFCondition DRTGroupOfPatientsIdentificationSequence::gotoItem(const unsigned long num)
 {
     return gotoItem(num, CurrentItem);
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::getCurrentItem(Item *&item) const
+OFCondition DRTGroupOfPatientsIdentificationSequence::getCurrentItem(Item *&item) const
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -375,7 +400,7 @@ OFCondition DRTOtherPatientIDsSequence::getCurrentItem(Item *&item) const
 }
 
 
-DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getCurrentItem()
+DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getCurrentItem()
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -384,7 +409,7 @@ DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getCurrentItem()
 }
 
 
-const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getCurrentItem() const
+const DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getCurrentItem() const
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -393,7 +418,7 @@ const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getCurrentIt
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::getItem(const unsigned long num, Item *&item)
+OFCondition DRTGroupOfPatientsIdentificationSequence::getItem(const unsigned long num, Item *&item)
 {
     OFListIterator(Item *) iterator;
     OFCondition result = gotoItem(num, iterator);
@@ -403,7 +428,7 @@ OFCondition DRTOtherPatientIDsSequence::getItem(const unsigned long num, Item *&
 }
 
 
-DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(const unsigned long num)
+DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getItem(const unsigned long num)
 {
     OFListIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -413,7 +438,7 @@ DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(const unsi
 }
 
 
-const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(const unsigned long num) const
+const DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::getItem(const unsigned long num) const
 {
     OFListConstIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -423,19 +448,19 @@ const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(cons
 }
 
 
-DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::operator[](const unsigned long num)
+DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::operator[](const unsigned long num)
 {
     return getItem(num);
 }
 
 
-const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::operator[](const unsigned long num) const
+const DRTGroupOfPatientsIdentificationSequence::Item &DRTGroupOfPatientsIdentificationSequence::operator[](const unsigned long num) const
 {
     return getItem(num);
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::addItem(Item *&item)
+OFCondition DRTGroupOfPatientsIdentificationSequence::addItem(Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -452,7 +477,7 @@ OFCondition DRTOtherPatientIDsSequence::addItem(Item *&item)
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::insertItem(const unsigned long pos, Item *&item)
+OFCondition DRTGroupOfPatientsIdentificationSequence::insertItem(const unsigned long pos, Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -475,7 +500,7 @@ OFCondition DRTOtherPatientIDsSequence::insertItem(const unsigned long pos, Item
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::removeItem(const unsigned long pos)
+OFCondition DRTGroupOfPatientsIdentificationSequence::removeItem(const unsigned long pos)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -493,10 +518,10 @@ OFCondition DRTOtherPatientIDsSequence::removeItem(const unsigned long pos)
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::read(DcmItem &dataset,
-                                             const OFString &card,
-                                             const OFString &type,
-                                             const char *moduleName)
+OFCondition DRTGroupOfPatientsIdentificationSequence::read(DcmItem &dataset,
+                                                           const OFString &card,
+                                                           const OFString &type,
+                                                           const char *moduleName)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -505,7 +530,7 @@ OFCondition DRTOtherPatientIDsSequence::read(DcmItem &dataset,
         clear();
         /* retrieve sequence element from dataset */
         DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_OtherPatientIDsSequence, sequence);
+        result = dataset.findAndGetSequence(DCM_GroupOfPatientsIdentificationSequence, sequence);
         if (sequence != NULL)
         {
             if (checkElementValue(*sequence, card, type, result, moduleName))
@@ -535,7 +560,7 @@ OFCondition DRTOtherPatientIDsSequence::read(DcmItem &dataset,
                 }
             }
         } else {
-            DcmSequenceOfItems element(DCM_OtherPatientIDsSequence);
+            DcmSequenceOfItems element(DCM_GroupOfPatientsIdentificationSequence);
             checkElementValue(element, card, type, result, moduleName);
         }
     }
@@ -543,16 +568,16 @@ OFCondition DRTOtherPatientIDsSequence::read(DcmItem &dataset,
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::write(DcmItem &dataset,
-                                              const OFString &card,
-                                              const OFString &type,
-                                              const char *moduleName)
+OFCondition DRTGroupOfPatientsIdentificationSequence::write(DcmItem &dataset,
+                                                            const OFString &card,
+                                                            const OFString &type,
+                                                            const char *moduleName)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
     {
         result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_OtherPatientIDsSequence);
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_GroupOfPatientsIdentificationSequence);
         if (sequence != NULL)
         {
             result = EC_Normal;
diff --git a/dcmrt/libsrc/drthsdrs.cc b/dcmrt/libsrc/drthsdrs.cc
index 129979a..ce61e35 100644
--- a/dcmrt/libsrc/drthsdrs.cc
+++ b/dcmrt/libsrc/drthsdrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTHL7StructuredDocumentReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtiais.cc b/dcmrt/libsrc/drtiais.cc
index c206dae..62a3190 100644
--- a/dcmrt/libsrc/drtiais.cc
+++ b/dcmrt/libsrc/drtiais.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIssuerOfAdmissionIDSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtians.cc b/dcmrt/libsrc/drtians.cc
index 6e0bb83..64a3f18 100644
--- a/dcmrt/libsrc/drtians.cc
+++ b/dcmrt/libsrc/drtians.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIssuerOfAccessionNumberSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtiblds.cc b/dcmrt/libsrc/drtiblds.cc
index 0cc4309..1cddc44 100644
--- a/dcmrt/libsrc/drtiblds.cc
+++ b/dcmrt/libsrc/drtiblds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonBeamLimitingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtibls.cc b/dcmrt/libsrc/drtibls.cc
index a58a038..1a5aeb0 100644
--- a/dcmrt/libsrc/drtibls.cc
+++ b/dcmrt/libsrc/drtibls.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonBlockSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtibs.cc b/dcmrt/libsrc/drtibs.cc
index 88cffe1..022da8d 100644
--- a/dcmrt/libsrc/drtibs.cc
+++ b/dcmrt/libsrc/drtibs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonBeamSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -26,8 +26,10 @@ DRTIonBeamSequence::Item::Item(const OFBool emptyDefaultItem)
     BeamName(DCM_BeamName),
     BeamNumber(DCM_BeamNumber),
     BeamType(DCM_BeamType),
+    DepthDoseParametersSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     FinalCumulativeMetersetWeight(DCM_FinalCumulativeMetersetWeight),
+    FixationEye(DCM_FixationEye),
     FixationLightAzimuthalAngle(DCM_FixationLightAzimuthalAngle),
     FixationLightPolarAngle(DCM_FixationLightPolarAngle),
     GeneralAccessorySequence(emptyDefaultItem /*emptyDefaultSequence*/),
@@ -42,6 +44,7 @@ DRTIonBeamSequence::Item::Item(const OFBool emptyDefaultItem)
     LateralSpreadingDeviceSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     Manufacturer(DCM_Manufacturer),
     ManufacturerModelName(DCM_ManufacturerModelName),
+    ModulatedScanModeType(DCM_ModulatedScanModeType),
     NumberOfBlocks(DCM_NumberOfBlocks),
     NumberOfBoli(DCM_NumberOfBoli),
     NumberOfCompensators(DCM_NumberOfCompensators),
@@ -84,8 +87,10 @@ DRTIonBeamSequence::Item::Item(const Item &copy)
     BeamName(copy.BeamName),
     BeamNumber(copy.BeamNumber),
     BeamType(copy.BeamType),
+    DepthDoseParametersSequence(copy.DepthDoseParametersSequence),
     DeviceSerialNumber(copy.DeviceSerialNumber),
     FinalCumulativeMetersetWeight(copy.FinalCumulativeMetersetWeight),
+    FixationEye(copy.FixationEye),
     FixationLightAzimuthalAngle(copy.FixationLightAzimuthalAngle),
     FixationLightPolarAngle(copy.FixationLightPolarAngle),
     GeneralAccessorySequence(copy.GeneralAccessorySequence),
@@ -100,6 +105,7 @@ DRTIonBeamSequence::Item::Item(const Item &copy)
     LateralSpreadingDeviceSequence(copy.LateralSpreadingDeviceSequence),
     Manufacturer(copy.Manufacturer),
     ManufacturerModelName(copy.ManufacturerModelName),
+    ModulatedScanModeType(copy.ModulatedScanModeType),
     NumberOfBlocks(copy.NumberOfBlocks),
     NumberOfBoli(copy.NumberOfBoli),
     NumberOfCompensators(copy.NumberOfCompensators),
@@ -150,8 +156,10 @@ DRTIonBeamSequence::Item &DRTIonBeamSequence::Item::operator=(const Item &copy)
         BeamName = copy.BeamName;
         BeamNumber = copy.BeamNumber;
         BeamType = copy.BeamType;
+        DepthDoseParametersSequence = copy.DepthDoseParametersSequence;
         DeviceSerialNumber = copy.DeviceSerialNumber;
         FinalCumulativeMetersetWeight = copy.FinalCumulativeMetersetWeight;
+        FixationEye = copy.FixationEye;
         FixationLightAzimuthalAngle = copy.FixationLightAzimuthalAngle;
         FixationLightPolarAngle = copy.FixationLightPolarAngle;
         GeneralAccessorySequence = copy.GeneralAccessorySequence;
@@ -166,6 +174,7 @@ DRTIonBeamSequence::Item &DRTIonBeamSequence::Item::operator=(const Item &copy)
         LateralSpreadingDeviceSequence = copy.LateralSpreadingDeviceSequence;
         Manufacturer = copy.Manufacturer;
         ManufacturerModelName = copy.ManufacturerModelName;
+        ModulatedScanModeType = copy.ModulatedScanModeType;
         NumberOfBlocks = copy.NumberOfBlocks;
         NumberOfBoli = copy.NumberOfBoli;
         NumberOfCompensators = copy.NumberOfCompensators;
@@ -216,6 +225,7 @@ void DRTIonBeamSequence::Item::clear()
         RadiationAtomicNumber.clear();
         RadiationChargeState.clear();
         ScanMode.clear();
+        ModulatedScanModeType.clear();
         TreatmentMachineName.clear();
         Manufacturer.clear();
         InstitutionName.clear();
@@ -226,6 +236,7 @@ void DRTIonBeamSequence::Item::clear()
         PrimaryDosimeterUnit.clear();
         ReferencedToleranceTableNumber.clear();
         VirtualSourceAxisDistances.clear();
+        DepthDoseParametersSequence.clear();
         IonBeamLimitingDeviceSequence.clear();
         ReferencedPatientSetupNumber.clear();
         ReferencedReferenceImageSequence.clear();
@@ -256,6 +267,7 @@ void DRTIonBeamSequence::Item::clear()
         PatientSupportAccessoryCode.clear();
         FixationLightAzimuthalAngle.clear();
         FixationLightPolarAngle.clear();
+        FixationEye.clear();
         FinalCumulativeMetersetWeight.clear();
         NumberOfControlPoints.clear();
         IonControlPointSequence.clear();
@@ -274,6 +286,7 @@ OFBool DRTIonBeamSequence::Item::isEmpty()
            RadiationAtomicNumber.isEmpty() &&
            RadiationChargeState.isEmpty() &&
            ScanMode.isEmpty() &&
+           ModulatedScanModeType.isEmpty() &&
            TreatmentMachineName.isEmpty() &&
            Manufacturer.isEmpty() &&
            InstitutionName.isEmpty() &&
@@ -284,6 +297,7 @@ OFBool DRTIonBeamSequence::Item::isEmpty()
            PrimaryDosimeterUnit.isEmpty() &&
            ReferencedToleranceTableNumber.isEmpty() &&
            VirtualSourceAxisDistances.isEmpty() &&
+           DepthDoseParametersSequence.isEmpty() &&
            IonBeamLimitingDeviceSequence.isEmpty() &&
            ReferencedPatientSetupNumber.isEmpty() &&
            ReferencedReferenceImageSequence.isEmpty() &&
@@ -314,6 +328,7 @@ OFBool DRTIonBeamSequence::Item::isEmpty()
            PatientSupportAccessoryCode.isEmpty() &&
            FixationLightAzimuthalAngle.isEmpty() &&
            FixationLightPolarAngle.isEmpty() &&
+           FixationEye.isEmpty() &&
            FinalCumulativeMetersetWeight.isEmpty() &&
            NumberOfControlPoints.isEmpty() &&
            IonControlPointSequence.isEmpty();
@@ -342,6 +357,7 @@ OFCondition DRTIonBeamSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, RadiationAtomicNumber, "1", "1C", "IonBeamSequence");
         getAndCheckElementFromDataset(item, RadiationChargeState, "1", "1C", "IonBeamSequence");
         getAndCheckElementFromDataset(item, ScanMode, "1", "1", "IonBeamSequence");
+        getAndCheckElementFromDataset(item, ModulatedScanModeType, "1", "1C", "IonBeamSequence");
         getAndCheckElementFromDataset(item, TreatmentMachineName, "1", "2", "IonBeamSequence");
         getAndCheckElementFromDataset(item, Manufacturer, "1", "3", "IonBeamSequence");
         getAndCheckElementFromDataset(item, InstitutionName, "1", "3", "IonBeamSequence");
@@ -352,6 +368,7 @@ OFCondition DRTIonBeamSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, PrimaryDosimeterUnit, "1", "1", "IonBeamSequence");
         getAndCheckElementFromDataset(item, ReferencedToleranceTableNumber, "1", "3", "IonBeamSequence");
         getAndCheckElementFromDataset(item, VirtualSourceAxisDistances, "2", "1", "IonBeamSequence");
+        DepthDoseParametersSequence.read(item, "1-n", "3", "IonBeamSequence");
         IonBeamLimitingDeviceSequence.read(item, "1-n", "3", "IonBeamSequence");
         getAndCheckElementFromDataset(item, ReferencedPatientSetupNumber, "1", "3", "IonBeamSequence");
         ReferencedReferenceImageSequence.read(item, "1-n", "3", "IonBeamSequence");
@@ -382,6 +399,7 @@ OFCondition DRTIonBeamSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, PatientSupportAccessoryCode, "1", "3", "IonBeamSequence");
         getAndCheckElementFromDataset(item, FixationLightAzimuthalAngle, "1", "3", "IonBeamSequence");
         getAndCheckElementFromDataset(item, FixationLightPolarAngle, "1", "3", "IonBeamSequence");
+        getAndCheckElementFromDataset(item, FixationEye, "1", "3", "IonBeamSequence");
         getAndCheckElementFromDataset(item, FinalCumulativeMetersetWeight, "1", "1C", "IonBeamSequence");
         getAndCheckElementFromDataset(item, NumberOfControlPoints, "1", "1", "IonBeamSequence");
         IonControlPointSequence.read(item, "1-n", "1", "IonBeamSequence");
@@ -406,6 +424,7 @@ OFCondition DRTIonBeamSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmIntegerString(RadiationAtomicNumber), "1", "1C", "IonBeamSequence");
         addElementToDataset(result, item, new DcmSignedShort(RadiationChargeState), "1", "1C", "IonBeamSequence");
         addElementToDataset(result, item, new DcmCodeString(ScanMode), "1", "1", "IonBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(ModulatedScanModeType), "1", "1C", "IonBeamSequence");
         addElementToDataset(result, item, new DcmShortString(TreatmentMachineName), "1", "2", "IonBeamSequence");
         addElementToDataset(result, item, new DcmLongString(Manufacturer), "1", "3", "IonBeamSequence");
         addElementToDataset(result, item, new DcmLongString(InstitutionName), "1", "3", "IonBeamSequence");
@@ -416,6 +435,7 @@ OFCondition DRTIonBeamSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmCodeString(PrimaryDosimeterUnit), "1", "1", "IonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(ReferencedToleranceTableNumber), "1", "3", "IonBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(VirtualSourceAxisDistances), "2", "1", "IonBeamSequence");
+        if (result.good()) result = DepthDoseParametersSequence.write(item, "1-n", "3", "IonBeamSequence");
         if (result.good()) result = IonBeamLimitingDeviceSequence.write(item, "1-n", "3", "IonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(ReferencedPatientSetupNumber), "1", "3", "IonBeamSequence");
         if (result.good()) result = ReferencedReferenceImageSequence.write(item, "1-n", "3", "IonBeamSequence");
@@ -446,6 +466,7 @@ OFCondition DRTIonBeamSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmLongString(PatientSupportAccessoryCode), "1", "3", "IonBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightAzimuthalAngle), "1", "3", "IonBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightPolarAngle), "1", "3", "IonBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(FixationEye), "1", "3", "IonBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(FinalCumulativeMetersetWeight), "1", "1C", "IonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(NumberOfControlPoints), "1", "1", "IonBeamSequence");
         if (result.good()) result = IonControlPointSequence.write(item, "1-n", "1", "IonBeamSequence");
@@ -526,6 +547,15 @@ OFCondition DRTIonBeamSequence::Item::getFinalCumulativeMetersetWeight(Float64 &
 }
 
 
+OFCondition DRTIonBeamSequence::Item::getFixationEye(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(FixationEye, value, pos);
+}
+
+
 OFCondition DRTIonBeamSequence::Item::getFixationLightAzimuthalAngle(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
@@ -589,6 +619,15 @@ OFCondition DRTIonBeamSequence::Item::getManufacturerModelName(OFString &value,
 }
 
 
+OFCondition DRTIonBeamSequence::Item::getModulatedScanModeType(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ModulatedScanModeType, value, pos);
+}
+
+
 OFCondition DRTIonBeamSequence::Item::getNumberOfBlocks(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -1000,6 +1039,19 @@ OFCondition DRTIonBeamSequence::Item::setFinalCumulativeMetersetWeight(const OFS
 }
 
 
+OFCondition DRTIonBeamSequence::Item::setFixationEye(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = FixationEye.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonBeamSequence::Item::setFixationLightAzimuthalAngle(const Float32 value, const unsigned long pos)
 {
     if (EmptyDefaultItem)
@@ -1083,6 +1135,19 @@ OFCondition DRTIonBeamSequence::Item::setManufacturerModelName(const OFString &v
 }
 
 
+OFCondition DRTIonBeamSequence::Item::setModulatedScanModeType(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ModulatedScanModeType.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonBeamSequence::Item::setNumberOfBlocks(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drticpds.cc b/dcmrt/libsrc/drticpds.cc
index 5645f81..b0ed84b 100644
--- a/dcmrt/libsrc/drticpds.cc
+++ b/dcmrt/libsrc/drticpds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonControlPointDeliverySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -24,6 +24,7 @@ DRTIonControlPointDeliverySequence::Item::Item(const OFBool emptyDefaultItem)
     BeamLimitingDeviceAngle(DCM_BeamLimitingDeviceAngle),
     BeamLimitingDevicePositionSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     BeamLimitingDeviceRotationDirection(DCM_BeamLimitingDeviceRotationDirection),
+    ChairHeadFramePosition(DCM_ChairHeadFramePosition),
     CorrectedParameterSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     DeliveredMeterset(DCM_DeliveredMeterset),
     GantryAngle(DCM_GantryAngle),
@@ -47,6 +48,8 @@ DRTIonControlPointDeliverySequence::Item::Item(const OFBool emptyDefaultItem)
     ReferencedControlPointIndex(DCM_ReferencedControlPointIndex),
     ScanSpotMetersetsDelivered(DCM_ScanSpotMetersetsDelivered),
     ScanSpotPositionMap(DCM_ScanSpotPositionMap),
+    ScanSpotPrescribedIndices(DCM_ScanSpotPrescribedIndices),
+    ScanSpotReordered(DCM_ScanSpotReordered),
     ScanSpotTuneID(DCM_ScanSpotTuneID),
     ScanningSpotSize(DCM_ScanningSpotSize),
     SnoutPosition(DCM_SnoutPosition),
@@ -69,6 +72,7 @@ DRTIonControlPointDeliverySequence::Item::Item(const Item &copy)
     BeamLimitingDeviceAngle(copy.BeamLimitingDeviceAngle),
     BeamLimitingDevicePositionSequence(copy.BeamLimitingDevicePositionSequence),
     BeamLimitingDeviceRotationDirection(copy.BeamLimitingDeviceRotationDirection),
+    ChairHeadFramePosition(copy.ChairHeadFramePosition),
     CorrectedParameterSequence(copy.CorrectedParameterSequence),
     DeliveredMeterset(copy.DeliveredMeterset),
     GantryAngle(copy.GantryAngle),
@@ -92,6 +96,8 @@ DRTIonControlPointDeliverySequence::Item::Item(const Item &copy)
     ReferencedControlPointIndex(copy.ReferencedControlPointIndex),
     ScanSpotMetersetsDelivered(copy.ScanSpotMetersetsDelivered),
     ScanSpotPositionMap(copy.ScanSpotPositionMap),
+    ScanSpotPrescribedIndices(copy.ScanSpotPrescribedIndices),
+    ScanSpotReordered(copy.ScanSpotReordered),
     ScanSpotTuneID(copy.ScanSpotTuneID),
     ScanningSpotSize(copy.ScanningSpotSize),
     SnoutPosition(copy.SnoutPosition),
@@ -122,6 +128,7 @@ DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::It
         BeamLimitingDeviceAngle = copy.BeamLimitingDeviceAngle;
         BeamLimitingDevicePositionSequence = copy.BeamLimitingDevicePositionSequence;
         BeamLimitingDeviceRotationDirection = copy.BeamLimitingDeviceRotationDirection;
+        ChairHeadFramePosition = copy.ChairHeadFramePosition;
         CorrectedParameterSequence = copy.CorrectedParameterSequence;
         DeliveredMeterset = copy.DeliveredMeterset;
         GantryAngle = copy.GantryAngle;
@@ -145,6 +152,8 @@ DRTIonControlPointDeliverySequence::Item &DRTIonControlPointDeliverySequence::It
         ReferencedControlPointIndex = copy.ReferencedControlPointIndex;
         ScanSpotMetersetsDelivered = copy.ScanSpotMetersetsDelivered;
         ScanSpotPositionMap = copy.ScanSpotPositionMap;
+        ScanSpotPrescribedIndices = copy.ScanSpotPrescribedIndices;
+        ScanSpotReordered = copy.ScanSpotReordered;
         ScanSpotTuneID = copy.ScanSpotTuneID;
         ScanningSpotSize = copy.ScanningSpotSize;
         SnoutPosition = copy.SnoutPosition;
@@ -194,6 +203,8 @@ void DRTIonControlPointDeliverySequence::Item::clear()
         ScanSpotMetersetsDelivered.clear();
         ScanningSpotSize.clear();
         NumberOfPaintings.clear();
+        ScanSpotReordered.clear();
+        ScanSpotPrescribedIndices.clear();
         PatientSupportAngle.clear();
         PatientSupportRotationDirection.clear();
         TableTopPitchAngle.clear();
@@ -201,6 +212,7 @@ void DRTIonControlPointDeliverySequence::Item::clear()
         TableTopRollAngle.clear();
         TableTopRollRotationDirection.clear();
         HeadFixationAngle.clear();
+        ChairHeadFramePosition.clear();
         TableTopVerticalPosition.clear();
         TableTopLongitudinalPosition.clear();
         TableTopLateralPosition.clear();
@@ -239,6 +251,8 @@ OFBool DRTIonControlPointDeliverySequence::Item::isEmpty()
            ScanSpotMetersetsDelivered.isEmpty() &&
            ScanningSpotSize.isEmpty() &&
            NumberOfPaintings.isEmpty() &&
+           ScanSpotReordered.isEmpty() &&
+           ScanSpotPrescribedIndices.isEmpty() &&
            PatientSupportAngle.isEmpty() &&
            PatientSupportRotationDirection.isEmpty() &&
            TableTopPitchAngle.isEmpty() &&
@@ -246,6 +260,7 @@ OFBool DRTIonControlPointDeliverySequence::Item::isEmpty()
            TableTopRollAngle.isEmpty() &&
            TableTopRollRotationDirection.isEmpty() &&
            HeadFixationAngle.isEmpty() &&
+           ChairHeadFramePosition.isEmpty() &&
            TableTopVerticalPosition.isEmpty() &&
            TableTopLongitudinalPosition.isEmpty() &&
            TableTopLateralPosition.isEmpty() &&
@@ -294,6 +309,8 @@ OFCondition DRTIonControlPointDeliverySequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ScanSpotMetersetsDelivered, "1-n", "1C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, ScanningSpotSize, "2", "3", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, NumberOfPaintings, "1", "1C", "IonControlPointDeliverySequence");
+        getAndCheckElementFromDataset(item, ScanSpotReordered, "1", "3", "IonControlPointDeliverySequence");
+        getAndCheckElementFromDataset(item, ScanSpotPrescribedIndices, "1-n", "1C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, PatientSupportAngle, "1", "1C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, PatientSupportRotationDirection, "1", "1C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, TableTopPitchAngle, "1", "2C", "IonControlPointDeliverySequence");
@@ -301,6 +318,7 @@ OFCondition DRTIonControlPointDeliverySequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, TableTopRollAngle, "1", "2C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, TableTopRollRotationDirection, "1", "2C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, HeadFixationAngle, "1", "3", "IonControlPointDeliverySequence");
+        getAndCheckElementFromDataset(item, ChairHeadFramePosition, "1", "3", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, TableTopVerticalPosition, "1", "2C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, TableTopLongitudinalPosition, "1", "2C", "IonControlPointDeliverySequence");
         getAndCheckElementFromDataset(item, TableTopLateralPosition, "1", "2C", "IonControlPointDeliverySequence");
@@ -345,6 +363,8 @@ OFCondition DRTIonControlPointDeliverySequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotMetersetsDelivered), "1-n", "1C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(ScanningSpotSize), "2", "3", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmIntegerString(NumberOfPaintings), "1", "1C", "IonControlPointDeliverySequence");
+        addElementToDataset(result, item, new DcmCodeString(ScanSpotReordered), "1", "3", "IonControlPointDeliverySequence");
+        addElementToDataset(result, item, new DcmIntegerString(ScanSpotPrescribedIndices), "1-n", "1C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmDecimalString(PatientSupportAngle), "1", "1C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmCodeString(PatientSupportRotationDirection), "1", "1C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopPitchAngle), "1", "2C", "IonControlPointDeliverySequence");
@@ -352,6 +372,7 @@ OFCondition DRTIonControlPointDeliverySequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopRollAngle), "1", "2C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmCodeString(TableTopRollRotationDirection), "1", "2C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(HeadFixationAngle), "1", "3", "IonControlPointDeliverySequence");
+        addElementToDataset(result, item, new DcmDecimalString(ChairHeadFramePosition), "1", "3", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmDecimalString(TableTopVerticalPosition), "1", "2C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmDecimalString(TableTopLongitudinalPosition), "1", "2C", "IonControlPointDeliverySequence");
         addElementToDataset(result, item, new DcmDecimalString(TableTopLateralPosition), "1", "2C", "IonControlPointDeliverySequence");
@@ -390,6 +411,24 @@ OFCondition DRTIonControlPointDeliverySequence::Item::getBeamLimitingDeviceRotat
 }
 
 
+OFCondition DRTIonControlPointDeliverySequence::Item::getChairHeadFramePosition(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ChairHeadFramePosition, value, pos);
+}
+
+
+OFCondition DRTIonControlPointDeliverySequence::Item::getChairHeadFramePosition(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, ChairHeadFramePosition).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonControlPointDeliverySequence::Item::getDeliveredMeterset(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -615,6 +654,33 @@ OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotPositionMap(Flo
 }
 
 
+OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotPrescribedIndices(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ScanSpotPrescribedIndices, value, pos);
+}
+
+
+OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotPrescribedIndices(Sint32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmIntegerString &, ScanSpotPrescribedIndices).getSint32(value, pos);
+}
+
+
+OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotReordered(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ScanSpotReordered, value, pos);
+}
+
+
 OFCondition DRTIonControlPointDeliverySequence::Item::getScanSpotTuneID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -794,6 +860,19 @@ OFCondition DRTIonControlPointDeliverySequence::Item::setBeamLimitingDeviceRotat
 }
 
 
+OFCondition DRTIonControlPointDeliverySequence::Item::setChairHeadFramePosition(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ChairHeadFramePosition.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonControlPointDeliverySequence::Item::setDeliveredMeterset(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -991,6 +1070,32 @@ OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotPositionMap(con
 }
 
 
+OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotPrescribedIndices(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmIntegerString::checkStringValue(value, "1-n") : EC_Normal;
+        if (result.good())
+            result = ScanSpotPrescribedIndices.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotReordered(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ScanSpotReordered.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonControlPointDeliverySequence::Item::setScanSpotTuneID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drticps.cc b/dcmrt/libsrc/drticps.cc
index 28430e1..d763290 100644
--- a/dcmrt/libsrc/drticps.cc
+++ b/dcmrt/libsrc/drticps.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -24,6 +24,7 @@ DRTIonControlPointSequence::Item::Item(const OFBool emptyDefaultItem)
     BeamLimitingDeviceAngle(DCM_BeamLimitingDeviceAngle),
     BeamLimitingDevicePositionSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     BeamLimitingDeviceRotationDirection(DCM_BeamLimitingDeviceRotationDirection),
+    ChairHeadFramePosition(DCM_ChairHeadFramePosition),
     ControlPointIndex(DCM_ControlPointIndex),
     CumulativeMetersetWeight(DCM_CumulativeMetersetWeight),
     ExternalContourEntryPoint(DCM_ExternalContourEntryPoint),
@@ -47,6 +48,7 @@ DRTIonControlPointSequence::Item::Item(const OFBool emptyDefaultItem)
     ReferencedDoseReferenceSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     ScanSpotMetersetWeights(DCM_ScanSpotMetersetWeights),
     ScanSpotPositionMap(DCM_ScanSpotPositionMap),
+    ScanSpotReorderingAllowed(DCM_ScanSpotReorderingAllowed),
     ScanSpotTuneID(DCM_ScanSpotTuneID),
     ScanningSpotSize(DCM_ScanningSpotSize),
     SnoutPosition(DCM_SnoutPosition),
@@ -67,6 +69,7 @@ DRTIonControlPointSequence::Item::Item(const Item &copy)
     BeamLimitingDeviceAngle(copy.BeamLimitingDeviceAngle),
     BeamLimitingDevicePositionSequence(copy.BeamLimitingDevicePositionSequence),
     BeamLimitingDeviceRotationDirection(copy.BeamLimitingDeviceRotationDirection),
+    ChairHeadFramePosition(copy.ChairHeadFramePosition),
     ControlPointIndex(copy.ControlPointIndex),
     CumulativeMetersetWeight(copy.CumulativeMetersetWeight),
     ExternalContourEntryPoint(copy.ExternalContourEntryPoint),
@@ -90,6 +93,7 @@ DRTIonControlPointSequence::Item::Item(const Item &copy)
     ReferencedDoseReferenceSequence(copy.ReferencedDoseReferenceSequence),
     ScanSpotMetersetWeights(copy.ScanSpotMetersetWeights),
     ScanSpotPositionMap(copy.ScanSpotPositionMap),
+    ScanSpotReorderingAllowed(copy.ScanSpotReorderingAllowed),
     ScanSpotTuneID(copy.ScanSpotTuneID),
     ScanningSpotSize(copy.ScanningSpotSize),
     SnoutPosition(copy.SnoutPosition),
@@ -118,6 +122,7 @@ DRTIonControlPointSequence::Item &DRTIonControlPointSequence::Item::operator=(co
         BeamLimitingDeviceAngle = copy.BeamLimitingDeviceAngle;
         BeamLimitingDevicePositionSequence = copy.BeamLimitingDevicePositionSequence;
         BeamLimitingDeviceRotationDirection = copy.BeamLimitingDeviceRotationDirection;
+        ChairHeadFramePosition = copy.ChairHeadFramePosition;
         ControlPointIndex = copy.ControlPointIndex;
         CumulativeMetersetWeight = copy.CumulativeMetersetWeight;
         ExternalContourEntryPoint = copy.ExternalContourEntryPoint;
@@ -141,6 +146,7 @@ DRTIonControlPointSequence::Item &DRTIonControlPointSequence::Item::operator=(co
         ReferencedDoseReferenceSequence = copy.ReferencedDoseReferenceSequence;
         ScanSpotMetersetWeights = copy.ScanSpotMetersetWeights;
         ScanSpotPositionMap = copy.ScanSpotPositionMap;
+        ScanSpotReorderingAllowed = copy.ScanSpotReorderingAllowed;
         ScanSpotTuneID = copy.ScanSpotTuneID;
         ScanningSpotSize = copy.ScanningSpotSize;
         SnoutPosition = copy.SnoutPosition;
@@ -180,6 +186,7 @@ void DRTIonControlPointSequence::Item::clear()
         BeamLimitingDeviceAngle.clear();
         BeamLimitingDeviceRotationDirection.clear();
         ScanSpotTuneID.clear();
+        ScanSpotReorderingAllowed.clear();
         NumberOfScanSpotPositions.clear();
         ScanSpotPositionMap.clear();
         ScanSpotMetersetWeights.clear();
@@ -192,6 +199,7 @@ void DRTIonControlPointSequence::Item::clear()
         TableTopRollAngle.clear();
         TableTopRollRotationDirection.clear();
         HeadFixationAngle.clear();
+        ChairHeadFramePosition.clear();
         TableTopVerticalPosition.clear();
         TableTopLongitudinalPosition.clear();
         TableTopLateralPosition.clear();
@@ -223,6 +231,7 @@ OFBool DRTIonControlPointSequence::Item::isEmpty()
            BeamLimitingDeviceAngle.isEmpty() &&
            BeamLimitingDeviceRotationDirection.isEmpty() &&
            ScanSpotTuneID.isEmpty() &&
+           ScanSpotReorderingAllowed.isEmpty() &&
            NumberOfScanSpotPositions.isEmpty() &&
            ScanSpotPositionMap.isEmpty() &&
            ScanSpotMetersetWeights.isEmpty() &&
@@ -235,6 +244,7 @@ OFBool DRTIonControlPointSequence::Item::isEmpty()
            TableTopRollAngle.isEmpty() &&
            TableTopRollRotationDirection.isEmpty() &&
            HeadFixationAngle.isEmpty() &&
+           ChairHeadFramePosition.isEmpty() &&
            TableTopVerticalPosition.isEmpty() &&
            TableTopLongitudinalPosition.isEmpty() &&
            TableTopLateralPosition.isEmpty() &&
@@ -276,6 +286,7 @@ OFCondition DRTIonControlPointSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, BeamLimitingDeviceAngle, "1", "1C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, BeamLimitingDeviceRotationDirection, "1", "1C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, ScanSpotTuneID, "1", "1C", "IonControlPointSequence");
+        getAndCheckElementFromDataset(item, ScanSpotReorderingAllowed, "1", "3", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, NumberOfScanSpotPositions, "1", "1C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, ScanSpotPositionMap, "1-n", "1C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, ScanSpotMetersetWeights, "1-n", "1C", "IonControlPointSequence");
@@ -288,6 +299,7 @@ OFCondition DRTIonControlPointSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, TableTopRollAngle, "1", "2C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, TableTopRollRotationDirection, "1", "2C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, HeadFixationAngle, "1", "3", "IonControlPointSequence");
+        getAndCheckElementFromDataset(item, ChairHeadFramePosition, "1", "3", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, TableTopVerticalPosition, "1", "2C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, TableTopLongitudinalPosition, "1", "2C", "IonControlPointSequence");
         getAndCheckElementFromDataset(item, TableTopLateralPosition, "1", "2C", "IonControlPointSequence");
@@ -325,6 +337,7 @@ OFCondition DRTIonControlPointSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmDecimalString(BeamLimitingDeviceAngle), "1", "1C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmCodeString(BeamLimitingDeviceRotationDirection), "1", "1C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmShortString(ScanSpotTuneID), "1", "1C", "IonControlPointSequence");
+        addElementToDataset(result, item, new DcmCodeString(ScanSpotReorderingAllowed), "1", "3", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmIntegerString(NumberOfScanSpotPositions), "1", "1C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotPositionMap), "1-n", "1C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(ScanSpotMetersetWeights), "1-n", "1C", "IonControlPointSequence");
@@ -337,6 +350,7 @@ OFCondition DRTIonControlPointSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopRollAngle), "1", "2C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmCodeString(TableTopRollRotationDirection), "1", "2C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(HeadFixationAngle), "1", "3", "IonControlPointSequence");
+        addElementToDataset(result, item, new DcmDecimalString(ChairHeadFramePosition), "1", "3", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmDecimalString(TableTopVerticalPosition), "1", "2C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmDecimalString(TableTopLongitudinalPosition), "1", "2C", "IonControlPointSequence");
         addElementToDataset(result, item, new DcmDecimalString(TableTopLateralPosition), "1", "2C", "IonControlPointSequence");
@@ -376,6 +390,24 @@ OFCondition DRTIonControlPointSequence::Item::getBeamLimitingDeviceRotationDirec
 }
 
 
+OFCondition DRTIonControlPointSequence::Item::getChairHeadFramePosition(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ChairHeadFramePosition, value, pos);
+}
+
+
+OFCondition DRTIonControlPointSequence::Item::getChairHeadFramePosition(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, ChairHeadFramePosition).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonControlPointSequence::Item::getControlPointIndex(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -628,6 +660,15 @@ OFCondition DRTIonControlPointSequence::Item::getScanSpotPositionMap(Float32 &va
 }
 
 
+OFCondition DRTIonControlPointSequence::Item::getScanSpotReorderingAllowed(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ScanSpotReorderingAllowed, value, pos);
+}
+
+
 OFCondition DRTIonControlPointSequence::Item::getScanSpotTuneID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -798,6 +839,19 @@ OFCondition DRTIonControlPointSequence::Item::setBeamLimitingDeviceRotationDirec
 }
 
 
+OFCondition DRTIonControlPointSequence::Item::setChairHeadFramePosition(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ChairHeadFramePosition.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonControlPointSequence::Item::setControlPointIndex(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -1008,6 +1062,19 @@ OFCondition DRTIonControlPointSequence::Item::setScanSpotPositionMap(const Float
 }
 
 
+OFCondition DRTIonControlPointSequence::Item::setScanSpotReorderingAllowed(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ScanSpotReorderingAllowed.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonControlPointSequence::Item::setScanSpotTuneID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtics.cc b/dcmrt/libsrc/drtics.cc
index cc4ab0a..edc3c1a 100644
--- a/dcmrt/libsrc/drtics.cc
+++ b/dcmrt/libsrc/drtics.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTInstitutionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTInstitutionCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTInstitutionCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTInstitutionCodeSequence::Item &DRTInstitutionCodeSequence::Item::operator=(co
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTInstitutionCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTInstitutionCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTInstitutionCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "InstitutionCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "InstitutionCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "InstitutionCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "InstitutionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "InstitutionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "InstitutionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "InstitutionCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTInstitutionCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "InstitutionCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "InstitutionCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "InstitutionCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "InstitutionCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "InstitutionCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "InstitutionCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "InstitutionCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTInstitutionCodeSequence::Item::getMappingResource(OFString &value
 }
 
 
+OFCondition DRTInstitutionCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTInstitutionCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTInstitutionCodeSequence::Item::setMappingResource(const OFString
 }
 
 
+OFCondition DRTInstitutionCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTInstitutionCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtiis.cc b/dcmrt/libsrc/drtiis.cc
index 145601c..b8dea8a 100644
--- a/dcmrt/libsrc/drtiis.cc
+++ b/dcmrt/libsrc/drtiis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIconImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -25,6 +25,7 @@ DRTIconImageSequence::Item::Item(const OFBool emptyDefaultItem)
     BitsStored(DCM_BitsStored),
     BluePaletteColorLookupTableData(DCM_BluePaletteColorLookupTableData),
     BluePaletteColorLookupTableDescriptor(DCM_BluePaletteColorLookupTableDescriptor),
+    ColorSpace(DCM_ColorSpace),
     Columns(DCM_Columns),
     GreenPaletteColorLookupTableData(DCM_GreenPaletteColorLookupTableData),
     GreenPaletteColorLookupTableDescriptor(DCM_GreenPaletteColorLookupTableDescriptor),
@@ -51,6 +52,7 @@ DRTIconImageSequence::Item::Item(const Item &copy)
     BitsStored(copy.BitsStored),
     BluePaletteColorLookupTableData(copy.BluePaletteColorLookupTableData),
     BluePaletteColorLookupTableDescriptor(copy.BluePaletteColorLookupTableDescriptor),
+    ColorSpace(copy.ColorSpace),
     Columns(copy.Columns),
     GreenPaletteColorLookupTableData(copy.GreenPaletteColorLookupTableData),
     GreenPaletteColorLookupTableDescriptor(copy.GreenPaletteColorLookupTableDescriptor),
@@ -85,6 +87,7 @@ DRTIconImageSequence::Item &DRTIconImageSequence::Item::operator=(const Item &co
         BitsStored = copy.BitsStored;
         BluePaletteColorLookupTableData = copy.BluePaletteColorLookupTableData;
         BluePaletteColorLookupTableDescriptor = copy.BluePaletteColorLookupTableDescriptor;
+        ColorSpace = copy.ColorSpace;
         Columns = copy.Columns;
         GreenPaletteColorLookupTableData = copy.GreenPaletteColorLookupTableData;
         GreenPaletteColorLookupTableDescriptor = copy.GreenPaletteColorLookupTableDescriptor;
@@ -119,7 +122,6 @@ void DRTIconImageSequence::Item::clear()
         BitsStored.clear();
         HighBit.clear();
         PixelRepresentation.clear();
-        PixelData.clear();
         PlanarConfiguration.clear();
         PixelAspectRatio.clear();
         SmallestImagePixelValue.clear();
@@ -131,6 +133,8 @@ void DRTIconImageSequence::Item::clear()
         GreenPaletteColorLookupTableData.clear();
         BluePaletteColorLookupTableData.clear();
         ICCProfile.clear();
+        ColorSpace.clear();
+        PixelData.clear();
     }
 }
 
@@ -145,7 +149,6 @@ OFBool DRTIconImageSequence::Item::isEmpty()
            BitsStored.isEmpty() &&
            HighBit.isEmpty() &&
            PixelRepresentation.isEmpty() &&
-           PixelData.isEmpty() &&
            PlanarConfiguration.isEmpty() &&
            PixelAspectRatio.isEmpty() &&
            SmallestImagePixelValue.isEmpty() &&
@@ -156,7 +159,9 @@ OFBool DRTIconImageSequence::Item::isEmpty()
            RedPaletteColorLookupTableData.isEmpty() &&
            GreenPaletteColorLookupTableData.isEmpty() &&
            BluePaletteColorLookupTableData.isEmpty() &&
-           ICCProfile.isEmpty();
+           ICCProfile.isEmpty() &&
+           ColorSpace.isEmpty() &&
+           PixelData.isEmpty();
 }
 
 
@@ -181,7 +186,6 @@ OFCondition DRTIconImageSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, BitsStored, "1", "1", "IconImageSequence");
         getAndCheckElementFromDataset(item, HighBit, "1", "1", "IconImageSequence");
         getAndCheckElementFromDataset(item, PixelRepresentation, "1", "1", "IconImageSequence");
-        getAndCheckElementFromDataset(item, PixelData, "1", "1C", "IconImageSequence");
         getAndCheckElementFromDataset(item, PlanarConfiguration, "1", "1C", "IconImageSequence");
         getAndCheckElementFromDataset(item, PixelAspectRatio, "2", "1C", "IconImageSequence");
         getAndCheckElementFromDataset(item, SmallestImagePixelValue, "1", "3", "IconImageSequence");
@@ -193,6 +197,8 @@ OFCondition DRTIconImageSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, GreenPaletteColorLookupTableData, "1", "1C", "IconImageSequence");
         getAndCheckElementFromDataset(item, BluePaletteColorLookupTableData, "1", "1C", "IconImageSequence");
         getAndCheckElementFromDataset(item, ICCProfile, "1", "3", "IconImageSequence");
+        getAndCheckElementFromDataset(item, ColorSpace, "1", "3", "IconImageSequence");
+        getAndCheckElementFromDataset(item, PixelData, "1", "1", "IconImageSequence");
         result = EC_Normal;
     }
     return result;
@@ -213,7 +219,6 @@ OFCondition DRTIconImageSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUnsignedShort(BitsStored), "1", "1", "IconImageSequence");
         addElementToDataset(result, item, new DcmUnsignedShort(HighBit), "1", "1", "IconImageSequence");
         addElementToDataset(result, item, new DcmUnsignedShort(PixelRepresentation), "1", "1", "IconImageSequence");
-        addElementToDataset(result, item, new DcmPixelData(PixelData), "1", "1C", "IconImageSequence");
         addElementToDataset(result, item, new DcmUnsignedShort(PlanarConfiguration), "1", "1C", "IconImageSequence");
         addElementToDataset(result, item, new DcmIntegerString(PixelAspectRatio), "2", "1C", "IconImageSequence");
         addElementToDataset(result, item, new DcmUnsignedShort(SmallestImagePixelValue), "1", "3", "IconImageSequence");
@@ -225,6 +230,8 @@ OFCondition DRTIconImageSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmOtherByteOtherWord(GreenPaletteColorLookupTableData), "1", "1C", "IconImageSequence");
         addElementToDataset(result, item, new DcmOtherByteOtherWord(BluePaletteColorLookupTableData), "1", "1C", "IconImageSequence");
         addElementToDataset(result, item, new DcmOtherByteOtherWord(ICCProfile), "1", "3", "IconImageSequence");
+        addElementToDataset(result, item, new DcmCodeString(ColorSpace), "1", "3", "IconImageSequence");
+        addElementToDataset(result, item, new DcmPixelData(PixelData), "1", "1", "IconImageSequence");
     }
     return result;
 }
@@ -276,6 +283,15 @@ OFCondition DRTIconImageSequence::Item::getBluePaletteColorLookupTableDescriptor
 }
 
 
+OFCondition DRTIconImageSequence::Item::getColorSpace(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ColorSpace, value, pos);
+}
+
+
 OFCondition DRTIconImageSequence::Item::getColumns(Uint16 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
@@ -486,6 +502,19 @@ OFCondition DRTIconImageSequence::Item::setBluePaletteColorLookupTableDescriptor
 }
 
 
+OFCondition DRTIconImageSequence::Item::setColorSpace(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ColorSpace.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIconImageSequence::Item::setColumns(const Uint16 value, const unsigned long pos)
 {
     if (EmptyDefaultItem)
diff --git a/dcmrt/libsrc/drtimage.cc b/dcmrt/libsrc/drtimage.cc
index f55e999..b22ed9b 100644
--- a/dcmrt/libsrc/drtimage.cc
+++ b/dcmrt/libsrc/drtimage.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTImageIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTImageIOD::DRTImageIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTImageIOD::DRTImageIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -77,7 +87,16 @@ DRTImageIOD::DRTImageIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTImageIOD::DRTImageIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -121,6 +141,7 @@ DRTImageIOD::DRTImageIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -133,11 +154,6 @@ DRTImageIOD::DRTImageIOD()
     AcquisitionDate(DCM_AcquisitionDate),
     AcquisitionTime(DCM_AcquisitionTime),
     AcquisitionDateTime(DCM_AcquisitionDateTime),
-    ReferencedImageSequence(),
-    DerivationDescription(DCM_DerivationDescription),
-    DerivationCodeSequence(),
-    SourceImageSequence(),
-    ReferencedInstanceSequence(),
     ImagesInAcquisition(DCM_ImagesInAcquisition),
     ImageComments(DCM_ImageComments),
     QualityControlImage(DCM_QualityControlImage),
@@ -150,9 +166,14 @@ DRTImageIOD::DRTImageIOD()
     PresentationLUTShape(DCM_PresentationLUTShape),
     IrradiationEventUID(DCM_IrradiationEventUID),
     RealWorldValueMappingSequence(),
+    ReferencedImageSequence(),
+    ReferencedInstanceSequence(),
+    DerivationDescription(DCM_DerivationDescription),
+    DerivationCodeSequence(),
+    SourceImageSequence(),
+    SourceInstanceSequence(),
     Rows(DCM_Rows),
     Columns(DCM_Columns),
-    PixelData(DCM_PixelData),
     PlanarConfiguration(DCM_PlanarConfiguration),
     PixelAspectRatio(DCM_PixelAspectRatio),
     SmallestImagePixelValue(DCM_SmallestImagePixelValue),
@@ -164,6 +185,8 @@ DRTImageIOD::DRTImageIOD()
     GreenPaletteColorLookupTableData(DCM_GreenPaletteColorLookupTableData),
     BluePaletteColorLookupTableData(DCM_BluePaletteColorLookupTableData),
     ICCProfile(DCM_ICCProfile),
+    ColorSpace(DCM_ColorSpace),
+    PixelData(DCM_PixelData),
     PixelDataProviderURL(DCM_PixelDataProviderURL),
     PixelPaddingRangeLimit(DCM_PixelPaddingRangeLimit),
     ContrastBolusAgent(DCM_ContrastBolusAgent),
@@ -241,6 +264,9 @@ DRTImageIOD::DRTImageIOD()
     TableTopLateralPosition(DCM_TableTopLateralPosition),
     IsocenterPosition(DCM_IsocenterPosition),
     PatientPosition(DCM_PatientPosition),
+    ExposureTime(DCM_ExposureTime),
+    ExposureTimeInms(DCM_ExposureTimeInms),
+    MetersetExposure(DCM_MetersetExposure),
     ModalityLUTSequence(),
     RescaleIntercept(DCM_RescaleIntercept),
     RescaleSlope(DCM_RescaleSlope),
@@ -264,6 +290,8 @@ DRTImageIOD::DRTImageIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -295,6 +323,9 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -310,12 +341,19 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -349,7 +387,16 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -369,6 +416,7 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -393,6 +441,7 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -405,11 +454,6 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     AcquisitionDate(copy.AcquisitionDate),
     AcquisitionTime(copy.AcquisitionTime),
     AcquisitionDateTime(copy.AcquisitionDateTime),
-    ReferencedImageSequence(copy.ReferencedImageSequence),
-    DerivationDescription(copy.DerivationDescription),
-    DerivationCodeSequence(copy.DerivationCodeSequence),
-    SourceImageSequence(copy.SourceImageSequence),
-    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
     ImagesInAcquisition(copy.ImagesInAcquisition),
     ImageComments(copy.ImageComments),
     QualityControlImage(copy.QualityControlImage),
@@ -422,9 +466,14 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     PresentationLUTShape(copy.PresentationLUTShape),
     IrradiationEventUID(copy.IrradiationEventUID),
     RealWorldValueMappingSequence(copy.RealWorldValueMappingSequence),
+    ReferencedImageSequence(copy.ReferencedImageSequence),
+    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
+    DerivationDescription(copy.DerivationDescription),
+    DerivationCodeSequence(copy.DerivationCodeSequence),
+    SourceImageSequence(copy.SourceImageSequence),
+    SourceInstanceSequence(copy.SourceInstanceSequence),
     Rows(copy.Rows),
     Columns(copy.Columns),
-    PixelData(copy.PixelData),
     PlanarConfiguration(copy.PlanarConfiguration),
     PixelAspectRatio(copy.PixelAspectRatio),
     SmallestImagePixelValue(copy.SmallestImagePixelValue),
@@ -436,6 +485,8 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     GreenPaletteColorLookupTableData(copy.GreenPaletteColorLookupTableData),
     BluePaletteColorLookupTableData(copy.BluePaletteColorLookupTableData),
     ICCProfile(copy.ICCProfile),
+    ColorSpace(copy.ColorSpace),
+    PixelData(copy.PixelData),
     PixelDataProviderURL(copy.PixelDataProviderURL),
     PixelPaddingRangeLimit(copy.PixelPaddingRangeLimit),
     ContrastBolusAgent(copy.ContrastBolusAgent),
@@ -513,6 +564,9 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     TableTopLateralPosition(copy.TableTopLateralPosition),
     IsocenterPosition(copy.IsocenterPosition),
     PatientPosition(copy.PatientPosition),
+    ExposureTime(copy.ExposureTime),
+    ExposureTimeInms(copy.ExposureTimeInms),
+    MetersetExposure(copy.MetersetExposure),
     ModalityLUTSequence(copy.ModalityLUTSequence),
     RescaleIntercept(copy.RescaleIntercept),
     RescaleSlope(copy.RescaleSlope),
@@ -536,6 +590,8 @@ DRTImageIOD::DRTImageIOD(const DRTImageIOD &copy)
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -573,6 +629,9 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -588,12 +647,19 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -627,7 +693,16 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -647,6 +722,7 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -671,6 +747,7 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -683,11 +760,6 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         AcquisitionDate = copy.AcquisitionDate;
         AcquisitionTime = copy.AcquisitionTime;
         AcquisitionDateTime = copy.AcquisitionDateTime;
-        ReferencedImageSequence = copy.ReferencedImageSequence;
-        DerivationDescription = copy.DerivationDescription;
-        DerivationCodeSequence = copy.DerivationCodeSequence;
-        SourceImageSequence = copy.SourceImageSequence;
-        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
         ImagesInAcquisition = copy.ImagesInAcquisition;
         ImageComments = copy.ImageComments;
         QualityControlImage = copy.QualityControlImage;
@@ -700,9 +772,14 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         PresentationLUTShape = copy.PresentationLUTShape;
         IrradiationEventUID = copy.IrradiationEventUID;
         RealWorldValueMappingSequence = copy.RealWorldValueMappingSequence;
+        ReferencedImageSequence = copy.ReferencedImageSequence;
+        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
+        DerivationDescription = copy.DerivationDescription;
+        DerivationCodeSequence = copy.DerivationCodeSequence;
+        SourceImageSequence = copy.SourceImageSequence;
+        SourceInstanceSequence = copy.SourceInstanceSequence;
         Rows = copy.Rows;
         Columns = copy.Columns;
-        PixelData = copy.PixelData;
         PlanarConfiguration = copy.PlanarConfiguration;
         PixelAspectRatio = copy.PixelAspectRatio;
         SmallestImagePixelValue = copy.SmallestImagePixelValue;
@@ -714,6 +791,8 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         GreenPaletteColorLookupTableData = copy.GreenPaletteColorLookupTableData;
         BluePaletteColorLookupTableData = copy.BluePaletteColorLookupTableData;
         ICCProfile = copy.ICCProfile;
+        ColorSpace = copy.ColorSpace;
+        PixelData = copy.PixelData;
         PixelDataProviderURL = copy.PixelDataProviderURL;
         PixelPaddingRangeLimit = copy.PixelPaddingRangeLimit;
         ContrastBolusAgent = copy.ContrastBolusAgent;
@@ -791,6 +870,9 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         TableTopLateralPosition = copy.TableTopLateralPosition;
         IsocenterPosition = copy.IsocenterPosition;
         PatientPosition = copy.PatientPosition;
+        ExposureTime = copy.ExposureTime;
+        ExposureTimeInms = copy.ExposureTimeInms;
+        MetersetExposure = copy.MetersetExposure;
         ModalityLUTSequence = copy.ModalityLUTSequence;
         RescaleIntercept = copy.RescaleIntercept;
         RescaleSlope = copy.RescaleSlope;
@@ -814,6 +896,8 @@ DRTImageIOD &DRTImageIOD::operator=(const DRTImageIOD &copy)
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -846,6 +930,9 @@ void DRTImageIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -861,12 +948,19 @@ void DRTImageIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -900,7 +994,16 @@ void DRTImageIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -920,6 +1023,7 @@ void DRTImageIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -944,6 +1048,7 @@ void DRTImageIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -957,11 +1062,6 @@ void DRTImageIOD::clear()
     AcquisitionDate.clear();
     AcquisitionTime.clear();
     AcquisitionDateTime.clear();
-    ReferencedImageSequence.clear();
-    DerivationDescription.clear();
-    DerivationCodeSequence.clear();
-    SourceImageSequence.clear();
-    ReferencedInstanceSequence.clear();
     ImagesInAcquisition.clear();
     ImageComments.clear();
     QualityControlImage.clear();
@@ -974,6 +1074,12 @@ void DRTImageIOD::clear()
     PresentationLUTShape.clear();
     IrradiationEventUID.clear();
     RealWorldValueMappingSequence.clear();
+    ReferencedImageSequence.clear();
+    ReferencedInstanceSequence.clear();
+    DerivationDescription.clear();
+    DerivationCodeSequence.clear();
+    SourceImageSequence.clear();
+    SourceInstanceSequence.clear();
     SamplesPerPixel.clear();
     PhotometricInterpretation.clear();
     Rows.clear();
@@ -982,7 +1088,6 @@ void DRTImageIOD::clear()
     BitsStored.clear();
     HighBit.clear();
     PixelRepresentation.clear();
-    PixelData.clear();
     PlanarConfiguration.clear();
     PixelAspectRatio.clear();
     SmallestImagePixelValue.clear();
@@ -994,6 +1099,8 @@ void DRTImageIOD::clear()
     GreenPaletteColorLookupTableData.clear();
     BluePaletteColorLookupTableData.clear();
     ICCProfile.clear();
+    ColorSpace.clear();
+    PixelData.clear();
     PixelDataProviderURL.clear();
     PixelPaddingRangeLimit.clear();
     ContrastBolusAgent.clear();
@@ -1064,6 +1171,9 @@ void DRTImageIOD::clear()
     TableTopLateralPosition.clear();
     IsocenterPosition.clear();
     PatientPosition.clear();
+    ExposureTime.clear();
+    ExposureTimeInms.clear();
+    MetersetExposure.clear();
     ModalityLUTSequence.clear();
     RescaleIntercept.clear();
     RescaleSlope.clear();
@@ -1087,6 +1197,8 @@ void DRTImageIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -1171,6 +1283,7 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -1186,11 +1299,6 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, AcquisitionDate, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, AcquisitionTime, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, AcquisitionDateTime, "1", "3", "GeneralImageModule");
-        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralImageModule");
-        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralImageModule");
-        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralImageModule");
-        SourceImageSequence.read(dataset, "1-n", "3", "GeneralImageModule");
-        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, ImagesInAcquisition, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, ImageComments, "1", "3", "GeneralImageModule");
         getAndCheckElementFromDataset(dataset, QualityControlImage, "1", "3", "GeneralImageModule");
@@ -1204,6 +1312,14 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, IrradiationEventUID, "1-n", "3", "GeneralImageModule");
         RealWorldValueMappingSequence.read(dataset, "1-n", "3", "GeneralImageModule");
 
+        // --- GeneralReferenceModule (U) ---
+        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
+        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+
         // --- ImagePixelModule (M) ---
         // getAndCheckElementFromDataset(dataset, SamplesPerPixel, "1", "1", "ImagePixelModule");
         // getAndCheckElementFromDataset(dataset, PhotometricInterpretation, "1", "1", "ImagePixelModule");
@@ -1213,7 +1329,6 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         // getAndCheckElementFromDataset(dataset, BitsStored, "1", "1", "ImagePixelModule");
         // getAndCheckElementFromDataset(dataset, HighBit, "1", "1", "ImagePixelModule");
         // getAndCheckElementFromDataset(dataset, PixelRepresentation, "1", "1", "ImagePixelModule");
-        getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, PlanarConfiguration, "1", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, PixelAspectRatio, "2", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, SmallestImagePixelValue, "1", "3", "ImagePixelModule");
@@ -1225,6 +1340,8 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, GreenPaletteColorLookupTableData, "1", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, BluePaletteColorLookupTableData, "1", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, ICCProfile, "1", "3", "ImagePixelModule");
+        getAndCheckElementFromDataset(dataset, ColorSpace, "1", "3", "ImagePixelModule");
+        getAndCheckElementFromDataset(dataset, PixelData, "1", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, PixelDataProviderURL, "1", "1C", "ImagePixelModule");
         getAndCheckElementFromDataset(dataset, PixelPaddingRangeLimit, "1", "1C", "ImagePixelModule");
 
@@ -1322,6 +1439,9 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, TableTopLateralPosition, "1", "3", "RTImageModule");
         getAndCheckElementFromDataset(dataset, IsocenterPosition, "3", "3", "RTImageModule");
         getAndCheckElementFromDataset(dataset, PatientPosition, "1", "1C", "RTImageModule");
+        getAndCheckElementFromDataset(dataset, ExposureTime, "1", "3", "RTImageModule");
+        getAndCheckElementFromDataset(dataset, ExposureTimeInms, "1", "3", "RTImageModule");
+        getAndCheckElementFromDataset(dataset, MetersetExposure, "1", "3", "RTImageModule");
 
         // --- ModalityLUTModule (U) ---
         ModalityLUTSequence.read(dataset, "1-n", "1C", "ModalityLUTModule");
@@ -1356,6 +1476,8 @@ OFCondition DRTImageIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -1398,6 +1520,9 @@ OFCondition DRTImageIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -1413,12 +1538,19 @@ OFCondition DRTImageIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -1474,7 +1606,16 @@ OFCondition DRTImageIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -1511,6 +1652,7 @@ OFCondition DRTImageIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -1549,6 +1691,9 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -1564,12 +1709,19 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -1614,7 +1766,16 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -1642,6 +1803,7 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1678,6 +1840,7 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1693,11 +1856,6 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmDate(AcquisitionDate), "1", "3", "GeneralImageModule");
         addElementToDataset(result, dataset, new DcmTime(AcquisitionTime), "1", "3", "GeneralImageModule");
         addElementToDataset(result, dataset, new DcmDateTime(AcquisitionDateTime), "1", "3", "GeneralImageModule");
-        if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
-        addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralImageModule");
-        if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
-        if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
-        if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
         addElementToDataset(result, dataset, new DcmIntegerString(ImagesInAcquisition), "1", "3", "GeneralImageModule");
         addElementToDataset(result, dataset, new DcmLongText(ImageComments), "1", "3", "GeneralImageModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlImage), "1", "3", "GeneralImageModule");
@@ -1711,6 +1869,17 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(IrradiationEventUID), "1-n", "3", "GeneralImageModule");
         if (result.good()) result = RealWorldValueMappingSequence.write(dataset, "1-n" ,"3", "GeneralImageModule");
 
+        // --- GeneralReferenceModule (U) ---
+        if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
+        {
+            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
+            if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+        }
+
         // --- ImagePixelModule (M) ---
         // addElementToDataset(result, dataset, new DcmUnsignedShort(SamplesPerPixel), "1", "1", "ImagePixelModule");
         // addElementToDataset(result, dataset, new DcmCodeString(PhotometricInterpretation), "1", "1", "ImagePixelModule");
@@ -1720,7 +1889,6 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         // addElementToDataset(result, dataset, new DcmUnsignedShort(BitsStored), "1", "1", "ImagePixelModule");
         // addElementToDataset(result, dataset, new DcmUnsignedShort(HighBit), "1", "1", "ImagePixelModule");
         // addElementToDataset(result, dataset, new DcmUnsignedShort(PixelRepresentation), "1", "1", "ImagePixelModule");
-        addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmUnsignedShort(PlanarConfiguration), "1", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmIntegerString(PixelAspectRatio), "2", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmUnsignedShort(SmallestImagePixelValue), "1", "3", "ImagePixelModule");
@@ -1732,6 +1900,8 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmOtherByteOtherWord(GreenPaletteColorLookupTableData), "1", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmOtherByteOtherWord(BluePaletteColorLookupTableData), "1", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmOtherByteOtherWord(ICCProfile), "1", "3", "ImagePixelModule");
+        addElementToDataset(result, dataset, new DcmCodeString(ColorSpace), "1", "3", "ImagePixelModule");
+        addElementToDataset(result, dataset, new DcmPixelData(PixelData), "1", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmUniversalResourceIdentifierOrLocator(PixelDataProviderURL), "1", "1C", "ImagePixelModule");
         addElementToDataset(result, dataset, new DcmUnsignedShort(PixelPaddingRangeLimit), "1", "1C", "ImagePixelModule");
 
@@ -1831,6 +2001,9 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmDecimalString(TableTopLateralPosition), "1", "3", "RTImageModule");
         addElementToDataset(result, dataset, new DcmDecimalString(IsocenterPosition), "3", "3", "RTImageModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientPosition), "1", "1C", "RTImageModule");
+        addElementToDataset(result, dataset, new DcmIntegerString(ExposureTime), "1", "3", "RTImageModule");
+        addElementToDataset(result, dataset, new DcmFloatingPointDouble(ExposureTimeInms), "1", "3", "RTImageModule");
+        addElementToDataset(result, dataset, new DcmDecimalString(MetersetExposure), "1", "3", "RTImageModule");
 
         // --- ModalityLUTModule (U) ---
         if (isModalityLUTModulePresent(OFFalse /*complete*/))
@@ -1871,6 +2044,8 @@ OFCondition DRTImageIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1937,7 +2112,16 @@ OFBool DRTImageIOD::isPatientStudyModulePresent(const OFBool /*complete*/)
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1981,6 +2165,18 @@ OFBool DRTImageIOD::isFrameOfReferenceModulePresent(const OFBool complete)
 }
 
 
+OFBool DRTImageIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
+{
+    /* check whether at least one attribute is present */
+    return !ReferencedImageSequence.isEmpty() ||
+           !ReferencedInstanceSequence.isEmpty() ||
+           !DerivationDescription.isEmpty() ||
+           !DerivationCodeSequence.isEmpty() ||
+           !SourceImageSequence.isEmpty() ||
+           !SourceInstanceSequence.isEmpty();
+}
+
+
 OFBool DRTImageIOD::isContrastBolusModulePresent(const OFBool /*complete*/)
 {
     /* check whether at least one attribute is present */
@@ -2158,6 +2354,12 @@ OFCondition DRTImageIOD::getAdmittingDiagnosesDescription(OFString &value, const
 }
 
 
+OFCondition DRTImageIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getApprovalStatus(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(ApprovalStatus, value, pos);
@@ -2317,6 +2519,12 @@ OFCondition DRTImageIOD::getClinicalTrialTimePointID(OFString &value, const sign
 }
 
 
+OFCondition DRTImageIOD::getColorSpace(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(ColorSpace, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getColumns(Uint16 &value, const unsigned long pos) const
 {
     return OFconst_cast(DcmUnsignedShort &, Columns).getUint16(value, pos);
@@ -2515,6 +2723,24 @@ OFCondition DRTImageIOD::getEthnicGroup(OFString &value, const signed long pos)
 }
 
 
+OFCondition DRTImageIOD::getExposureTime(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(ExposureTime, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getExposureTime(Sint32 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmIntegerString &, ExposureTime).getSint32(value, pos);
+}
+
+
+OFCondition DRTImageIOD::getExposureTimeInms(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmFloatingPointDouble &, ExposureTimeInms).getFloat64(value, pos);
+}
+
+
 OFCondition DRTImageIOD::getFractionNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(FractionNumber, value, pos);
@@ -2791,6 +3017,12 @@ OFCondition DRTImageIOD::getLargestImagePixelValue(Uint16 &value, const unsigned
 }
 
 
+OFCondition DRTImageIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -2839,6 +3071,48 @@ OFCondition DRTImageIOD::getManufacturerModelName(OFString &value, const signed
 }
 
 
+OFCondition DRTImageIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTImageIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTImageIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getMetersetExposure(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MetersetExposure, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getMetersetExposure(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MetersetExposure).getFloat64(value, pos);
+}
+
+
 OFCondition DRTImageIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -2899,18 +3173,42 @@ OFCondition DRTImageIOD::getPatientAge(OFString &value, const signed long pos) c
 }
 
 
+OFCondition DRTImageIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTImageIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTImageIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTImageIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -2923,6 +3221,12 @@ OFCondition DRTImageIOD::getPatientComments(OFString &value, const signed long p
 }
 
 
+OFCondition DRTImageIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -2983,6 +3287,12 @@ OFCondition DRTImageIOD::getPatientSpeciesDescription(OFString &value, const sig
 }
 
 
+OFCondition DRTImageIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getPatientSupportAngle(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientSupportAngle, value, pos);
@@ -3121,6 +3431,12 @@ OFCondition DRTImageIOD::getPreferredPlaybackSequencing(Uint16 &value, const uns
 }
 
 
+OFCondition DRTImageIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTImageIOD::getPresentationLUTShape(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PresentationLUTShape, value, pos);
@@ -3496,6 +3812,12 @@ OFCondition DRTImageIOD::getSmallestImagePixelValue(Uint16 &value, const unsigne
 }
 
 
+OFCondition DRTImageIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -3580,6 +3902,24 @@ OFCondition DRTImageIOD::getStopTrim(Sint32 &value, const unsigned long pos) con
 }
 
 
+OFCondition DRTImageIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTImageIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTImageIOD::getStudyDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StudyDate, value, pos);
@@ -3853,6 +4193,15 @@ OFCondition DRTImageIOD::setAdmittingDiagnosesDescription(const OFString &value,
 }
 
 
+OFCondition DRTImageIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setApprovalStatus(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -4048,6 +4397,15 @@ OFCondition DRTImageIOD::setClinicalTrialTimePointID(const OFString &value, cons
 }
 
 
+OFCondition DRTImageIOD::setColorSpace(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = ColorSpace.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setColumns(const Uint16 value, const unsigned long pos)
 {
     return Columns.putUint16(value, pos);
@@ -4261,6 +4619,21 @@ OFCondition DRTImageIOD::setEthnicGroup(const OFString &value, const OFBool chec
 }
 
 
+OFCondition DRTImageIOD::setExposureTime(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = ExposureTime.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTImageIOD::setExposureTimeInms(const Float64 value, const unsigned long pos)
+{
+    return ExposureTimeInms.putFloat64(value, pos);
+}
+
+
 OFCondition DRTImageIOD::setFractionNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal;
@@ -4513,6 +4886,15 @@ OFCondition DRTImageIOD::setLargestImagePixelValue(const Uint16 value, const uns
 }
 
 
+OFCondition DRTImageIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -4567,6 +4949,42 @@ OFCondition DRTImageIOD::setManufacturerModelName(const OFString &value, const O
 }
 
 
+OFCondition DRTImageIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTImageIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTImageIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTImageIOD::setMetersetExposure(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MetersetExposure.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -4648,6 +5066,15 @@ OFCondition DRTImageIOD::setPatientAge(const OFString &value, const OFBool check
 }
 
 
+OFCondition DRTImageIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -4657,6 +5084,15 @@ OFCondition DRTImageIOD::setPatientBirthDate(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTImageIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -4666,6 +5102,15 @@ OFCondition DRTImageIOD::setPatientBirthTime(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTImageIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -4684,6 +5129,15 @@ OFCondition DRTImageIOD::setPatientComments(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTImageIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -4765,6 +5219,15 @@ OFCondition DRTImageIOD::setPatientSpeciesDescription(const OFString &value, con
 }
 
 
+OFCondition DRTImageIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setPatientSupportAngle(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -4927,6 +5390,12 @@ OFCondition DRTImageIOD::setPreferredPlaybackSequencing(const Uint16 value, cons
 }
 
 
+OFCondition DRTImageIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTImageIOD::setPresentationLUTShape(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -5344,6 +5813,15 @@ OFCondition DRTImageIOD::setSmallestImagePixelValue(const Uint16 value, const un
 }
 
 
+OFCondition DRTImageIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -5425,6 +5903,33 @@ OFCondition DRTImageIOD::setStopTrim(const OFString &value, const OFBool check)
 }
 
 
+OFCondition DRTImageIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTImageIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTImageIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTImageIOD::setStudyDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
diff --git a/dcmrt/libsrc/drtionpl.cc b/dcmrt/libsrc/drtionpl.cc
index 52b22af..0fd0a2c 100644
--- a/dcmrt/libsrc/drtionpl.cc
+++ b/dcmrt/libsrc/drtionpl.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonPlanIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -77,7 +87,16 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -121,6 +141,7 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -138,6 +159,7 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     ReferencedStructureSetSequence(),
     ReferencedDoseSequence(),
     ReferencedRTPlanSequence(),
+    FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(DCM_FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix),
     PrescriptionDescription(DCM_PrescriptionDescription),
     DoseReferenceSequence(),
     IonToleranceTableSequence(),
@@ -148,6 +170,12 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     ReviewDate(DCM_ReviewDate),
     ReviewTime(DCM_ReviewTime),
     ReviewerName(DCM_ReviewerName),
+    ReferencedImageSequence(),
+    ReferencedInstanceSequence(),
+    DerivationDescription(DCM_DerivationDescription),
+    DerivationCodeSequence(),
+    SourceImageSequence(),
+    SourceInstanceSequence(),
     SOPClassUID(DCM_SOPClassUID),
     SOPInstanceUID(DCM_SOPInstanceUID),
     SpecificCharacterSet(DCM_SpecificCharacterSet),
@@ -158,6 +186,8 @@ DRTIonPlanIOD::DRTIonPlanIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -188,6 +218,9 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -203,12 +236,19 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -242,7 +282,16 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -262,6 +311,7 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -286,6 +336,7 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -303,6 +354,7 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     ReferencedStructureSetSequence(copy.ReferencedStructureSetSequence),
     ReferencedDoseSequence(copy.ReferencedDoseSequence),
     ReferencedRTPlanSequence(copy.ReferencedRTPlanSequence),
+    FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix),
     PrescriptionDescription(copy.PrescriptionDescription),
     DoseReferenceSequence(copy.DoseReferenceSequence),
     IonToleranceTableSequence(copy.IonToleranceTableSequence),
@@ -313,6 +365,12 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     ReviewDate(copy.ReviewDate),
     ReviewTime(copy.ReviewTime),
     ReviewerName(copy.ReviewerName),
+    ReferencedImageSequence(copy.ReferencedImageSequence),
+    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
+    DerivationDescription(copy.DerivationDescription),
+    DerivationCodeSequence(copy.DerivationCodeSequence),
+    SourceImageSequence(copy.SourceImageSequence),
+    SourceInstanceSequence(copy.SourceInstanceSequence),
     SOPClassUID(copy.SOPClassUID),
     SOPInstanceUID(copy.SOPInstanceUID),
     SpecificCharacterSet(copy.SpecificCharacterSet),
@@ -323,6 +381,8 @@ DRTIonPlanIOD::DRTIonPlanIOD(const DRTIonPlanIOD &copy)
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -359,6 +419,9 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -374,12 +437,19 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -413,7 +483,16 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -433,6 +512,7 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -457,6 +537,7 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -474,6 +555,7 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         ReferencedStructureSetSequence = copy.ReferencedStructureSetSequence;
         ReferencedDoseSequence = copy.ReferencedDoseSequence;
         ReferencedRTPlanSequence = copy.ReferencedRTPlanSequence;
+        FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix = copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix;
         PrescriptionDescription = copy.PrescriptionDescription;
         DoseReferenceSequence = copy.DoseReferenceSequence;
         IonToleranceTableSequence = copy.IonToleranceTableSequence;
@@ -484,6 +566,12 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         ReviewDate = copy.ReviewDate;
         ReviewTime = copy.ReviewTime;
         ReviewerName = copy.ReviewerName;
+        ReferencedImageSequence = copy.ReferencedImageSequence;
+        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
+        DerivationDescription = copy.DerivationDescription;
+        DerivationCodeSequence = copy.DerivationCodeSequence;
+        SourceImageSequence = copy.SourceImageSequence;
+        SourceInstanceSequence = copy.SourceInstanceSequence;
         SOPClassUID = copy.SOPClassUID;
         SOPInstanceUID = copy.SOPInstanceUID;
         SpecificCharacterSet = copy.SpecificCharacterSet;
@@ -494,6 +582,8 @@ DRTIonPlanIOD &DRTIonPlanIOD::operator=(const DRTIonPlanIOD &copy)
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -525,6 +615,9 @@ void DRTIonPlanIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -540,12 +633,19 @@ void DRTIonPlanIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -579,7 +679,16 @@ void DRTIonPlanIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -599,6 +708,7 @@ void DRTIonPlanIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -623,6 +733,7 @@ void DRTIonPlanIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -640,6 +751,7 @@ void DRTIonPlanIOD::clear()
     ReferencedStructureSetSequence.clear();
     ReferencedDoseSequence.clear();
     ReferencedRTPlanSequence.clear();
+    FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.clear();
     PrescriptionDescription.clear();
     DoseReferenceSequence.clear();
     IonToleranceTableSequence.clear();
@@ -650,6 +762,12 @@ void DRTIonPlanIOD::clear()
     ReviewDate.clear();
     ReviewTime.clear();
     ReviewerName.clear();
+    ReferencedImageSequence.clear();
+    ReferencedInstanceSequence.clear();
+    DerivationDescription.clear();
+    DerivationCodeSequence.clear();
+    SourceImageSequence.clear();
+    SourceInstanceSequence.clear();
     SOPClassUID.clear();
     SOPInstanceUID.clear();
     SpecificCharacterSet.clear();
@@ -660,6 +778,8 @@ void DRTIonPlanIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -739,6 +859,7 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -758,6 +879,7 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset)
         ReferencedStructureSetSequence.read(dataset, "1-n", "1C", "RTGeneralPlanModule");
         ReferencedDoseSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule");
         ReferencedRTPlanSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule");
+        getAndCheckElementFromDataset(dataset, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix, "16", "3", "RTGeneralPlanModule");
 
         // --- RTPrescriptionModule (U) ---
         getAndCheckElementFromDataset(dataset, PrescriptionDescription, "1", "3", "RTPrescriptionModule");
@@ -796,6 +918,14 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset)
             getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
+        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+
         // --- SOPCommonModule (M) ---
         getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule");
@@ -807,6 +937,8 @@ OFCondition DRTIonPlanIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -843,6 +975,9 @@ OFCondition DRTIonPlanIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -858,12 +993,19 @@ OFCondition DRTIonPlanIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -919,7 +1061,16 @@ OFCondition DRTIonPlanIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -956,6 +1107,7 @@ OFCondition DRTIonPlanIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -994,6 +1146,9 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -1009,12 +1164,19 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -1059,7 +1221,16 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -1087,6 +1258,7 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1120,6 +1292,7 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1139,6 +1312,7 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
         if (result.good()) result = ReferencedStructureSetSequence.write(dataset, "1-n" ,"1C", "RTGeneralPlanModule");
         if (result.good()) result = ReferencedDoseSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule");
         if (result.good()) result = ReferencedRTPlanSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule");
+        addElementToDataset(result, dataset, new DcmFloatingPointDouble(FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), "16", "3", "RTGeneralPlanModule");
 
         // --- RTPrescriptionModule (U) ---
         if (isRTPrescriptionModulePresent(OFFalse /*complete*/))
@@ -1180,6 +1354,17 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
+        {
+            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
+            if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+        }
+
         // --- SOPCommonModule (M) ---
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule");
@@ -1191,6 +1376,8 @@ OFCondition DRTIonPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1251,7 +1438,16 @@ OFBool DRTIonPlanIOD::isPatientStudyModulePresent(const OFBool /*complete*/)
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1333,6 +1529,18 @@ OFBool DRTIonPlanIOD::isApprovalModulePresent(const OFBool complete)
 }
 
 
+OFBool DRTIonPlanIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
+{
+    /* check whether at least one attribute is present */
+    return !ReferencedImageSequence.isEmpty() ||
+           !ReferencedInstanceSequence.isEmpty() ||
+           !DerivationDescription.isEmpty() ||
+           !DerivationCodeSequence.isEmpty() ||
+           !SourceImageSequence.isEmpty() ||
+           !SourceInstanceSequence.isEmpty();
+}
+
+
 OFBool DRTIonPlanIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/)
 {
     /* check whether at least one attribute is present */
@@ -1365,6 +1573,12 @@ OFCondition DRTIonPlanIOD::getAdmittingDiagnosesDescription(OFString &value, con
 }
 
 
+OFCondition DRTIonPlanIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getApprovalStatus(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(ApprovalStatus, value, pos);
@@ -1491,6 +1705,12 @@ OFCondition DRTIonPlanIOD::getDeidentificationMethod(OFString &value, const sign
 }
 
 
+OFCondition DRTIonPlanIOD::getDerivationDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(DerivationDescription, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(DeviceSerialNumber, value, pos);
@@ -1503,6 +1723,12 @@ OFCondition DRTIonPlanIOD::getEthnicGroup(OFString &value, const signed long pos
 }
 
 
+OFCondition DRTIonPlanIOD::getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmFloatingPointDouble &, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getFrameOfReferenceUID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(FrameOfReferenceUID, value, pos);
@@ -1575,6 +1801,12 @@ OFCondition DRTIonPlanIOD::getIssuerOfPatientID(OFString &value, const signed lo
 }
 
 
+OFCondition DRTIonPlanIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -1593,6 +1825,36 @@ OFCondition DRTIonPlanIOD::getManufacturerModelName(OFString &value, const signe
 }
 
 
+OFCondition DRTIonPlanIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -1641,18 +1903,42 @@ OFCondition DRTIonPlanIOD::getPatientAge(OFString &value, const signed long pos)
 }
 
 
+OFCondition DRTIonPlanIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTIonPlanIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTIonPlanIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -1665,6 +1951,12 @@ OFCondition DRTIonPlanIOD::getPatientComments(OFString &value, const signed long
 }
 
 
+OFCondition DRTIonPlanIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -1713,6 +2005,12 @@ OFCondition DRTIonPlanIOD::getPatientSpeciesDescription(OFString &value, const s
 }
 
 
+OFCondition DRTIonPlanIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getPatientWeight(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientWeight, value, pos);
@@ -1785,6 +2083,12 @@ OFCondition DRTIonPlanIOD::getPositionReferenceIndicator(OFString &value, const
 }
 
 
+OFCondition DRTIonPlanIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getPrescriptionDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PrescriptionDescription, value, pos);
@@ -1965,6 +2269,12 @@ OFCondition DRTIonPlanIOD::getServiceEpisodeID(OFString &value, const signed lon
 }
 
 
+OFCondition DRTIonPlanIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -1995,6 +2305,24 @@ OFCondition DRTIonPlanIOD::getStationName(OFString &value, const signed long pos
 }
 
 
+OFCondition DRTIonPlanIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTIonPlanIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::getStudyDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StudyDate, value, pos);
@@ -2085,6 +2413,15 @@ OFCondition DRTIonPlanIOD::setAdmittingDiagnosesDescription(const OFString &valu
 }
 
 
+OFCondition DRTIonPlanIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setApprovalStatus(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2274,6 +2611,15 @@ OFCondition DRTIonPlanIOD::setDeidentificationMethod(const OFString &value, cons
 }
 
 
+OFCondition DRTIonPlanIOD::setDerivationDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = DerivationDescription.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2292,6 +2638,12 @@ OFCondition DRTIonPlanIOD::setEthnicGroup(const OFString &value, const OFBool ch
 }
 
 
+OFCondition DRTIonPlanIOD::setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos)
+{
+    return FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.putFloat64(value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::setFrameOfReferenceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
@@ -2391,6 +2743,15 @@ OFCondition DRTIonPlanIOD::setIssuerOfPatientID(const OFString &value, const OFB
 }
 
 
+OFCondition DRTIonPlanIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2418,6 +2779,33 @@ OFCondition DRTIonPlanIOD::setManufacturerModelName(const OFString &value, const
 }
 
 
+OFCondition DRTIonPlanIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonPlanIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonPlanIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2490,6 +2878,15 @@ OFCondition DRTIonPlanIOD::setPatientAge(const OFString &value, const OFBool che
 }
 
 
+OFCondition DRTIonPlanIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -2499,6 +2896,15 @@ OFCondition DRTIonPlanIOD::setPatientBirthDate(const OFString &value, const OFBo
 }
 
 
+OFCondition DRTIonPlanIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -2508,6 +2914,15 @@ OFCondition DRTIonPlanIOD::setPatientBirthTime(const OFString &value, const OFBo
 }
 
 
+OFCondition DRTIonPlanIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2526,6 +2941,15 @@ OFCondition DRTIonPlanIOD::setPatientComments(const OFString &value, const OFBoo
 }
 
 
+OFCondition DRTIonPlanIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2589,6 +3013,15 @@ OFCondition DRTIonPlanIOD::setPatientSpeciesDescription(const OFString &value, c
 }
 
 
+OFCondition DRTIonPlanIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setPatientWeight(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -2685,6 +3118,12 @@ OFCondition DRTIonPlanIOD::setPositionReferenceIndicator(const OFString &value,
 }
 
 
+OFCondition DRTIonPlanIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTIonPlanIOD::setPrescriptionDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
@@ -2946,6 +3385,15 @@ OFCondition DRTIonPlanIOD::setServiceEpisodeID(const OFString &value, const OFBo
 }
 
 
+OFCondition DRTIonPlanIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -2982,6 +3430,33 @@ OFCondition DRTIonPlanIOD::setStationName(const OFString &value, const OFBool ch
 }
 
 
+OFCondition DRTIonPlanIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonPlanIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonPlanIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonPlanIOD::setStudyDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
diff --git a/dcmrt/libsrc/drtiontr.cc b/dcmrt/libsrc/drtiontr.cc
index ec5bf4d..d7e794a 100644
--- a/dcmrt/libsrc/drtiontr.cc
+++ b/dcmrt/libsrc/drtiontr.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonBeamsTreatmentRecordIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -80,7 +90,16 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -119,6 +139,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -143,6 +164,12 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     FractionGroupSummarySequence(),
     TreatmentSummaryMeasuredDoseReferenceSequence(),
     TreatmentSummaryCalculatedDoseReferenceSequence(),
+    ReferencedImageSequence(),
+    ReferencedInstanceSequence(),
+    DerivationDescription(DCM_DerivationDescription),
+    DerivationCodeSequence(),
+    SourceImageSequence(),
+    SourceInstanceSequence(),
     SOPClassUID(DCM_SOPClassUID),
     SOPInstanceUID(DCM_SOPInstanceUID),
     SpecificCharacterSet(DCM_SpecificCharacterSet),
@@ -153,6 +180,8 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -183,6 +212,9 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -198,12 +230,19 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -240,7 +279,16 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -257,6 +305,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -279,6 +328,7 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -303,6 +353,12 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     FractionGroupSummarySequence(copy.FractionGroupSummarySequence),
     TreatmentSummaryMeasuredDoseReferenceSequence(copy.TreatmentSummaryMeasuredDoseReferenceSequence),
     TreatmentSummaryCalculatedDoseReferenceSequence(copy.TreatmentSummaryCalculatedDoseReferenceSequence),
+    ReferencedImageSequence(copy.ReferencedImageSequence),
+    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
+    DerivationDescription(copy.DerivationDescription),
+    DerivationCodeSequence(copy.DerivationCodeSequence),
+    SourceImageSequence(copy.SourceImageSequence),
+    SourceInstanceSequence(copy.SourceInstanceSequence),
     SOPClassUID(copy.SOPClassUID),
     SOPInstanceUID(copy.SOPInstanceUID),
     SpecificCharacterSet(copy.SpecificCharacterSet),
@@ -313,6 +369,8 @@ DRTIonBeamsTreatmentRecordIOD::DRTIonBeamsTreatmentRecordIOD(const DRTIonBeamsTr
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -349,6 +407,9 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -364,12 +425,19 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -406,7 +474,16 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -423,6 +500,7 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -445,6 +523,7 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -469,6 +548,12 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         FractionGroupSummarySequence = copy.FractionGroupSummarySequence;
         TreatmentSummaryMeasuredDoseReferenceSequence = copy.TreatmentSummaryMeasuredDoseReferenceSequence;
         TreatmentSummaryCalculatedDoseReferenceSequence = copy.TreatmentSummaryCalculatedDoseReferenceSequence;
+        ReferencedImageSequence = copy.ReferencedImageSequence;
+        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
+        DerivationDescription = copy.DerivationDescription;
+        DerivationCodeSequence = copy.DerivationCodeSequence;
+        SourceImageSequence = copy.SourceImageSequence;
+        SourceInstanceSequence = copy.SourceInstanceSequence;
         SOPClassUID = copy.SOPClassUID;
         SOPInstanceUID = copy.SOPInstanceUID;
         SpecificCharacterSet = copy.SpecificCharacterSet;
@@ -479,6 +564,8 @@ DRTIonBeamsTreatmentRecordIOD &DRTIonBeamsTreatmentRecordIOD::operator=(const DR
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -510,6 +597,9 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -525,12 +615,19 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -567,7 +664,16 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -584,6 +690,7 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -606,6 +713,7 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -630,6 +738,12 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     FractionGroupSummarySequence.clear();
     TreatmentSummaryMeasuredDoseReferenceSequence.clear();
     TreatmentSummaryCalculatedDoseReferenceSequence.clear();
+    ReferencedImageSequence.clear();
+    ReferencedInstanceSequence.clear();
+    DerivationDescription.clear();
+    DerivationCodeSequence.clear();
+    SourceImageSequence.clear();
+    SourceInstanceSequence.clear();
     SOPClassUID.clear();
     SOPInstanceUID.clear();
     SpecificCharacterSet.clear();
@@ -640,6 +754,8 @@ void DRTIonBeamsTreatmentRecordIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -715,6 +831,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -768,6 +885,14 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::read(DcmItem &dataset)
             TreatmentSummaryCalculatedDoseReferenceSequence.read(dataset, "1-n", "3", "RTTreatmentSummaryRecordModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
+        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+
         // --- SOPCommonModule (M) ---
         getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule");
@@ -779,6 +904,8 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -815,6 +942,9 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -830,12 +960,19 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -899,7 +1036,16 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -928,6 +1074,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -966,6 +1113,9 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -981,12 +1131,19 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -1039,7 +1196,16 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -1059,6 +1225,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1088,6 +1255,7 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1139,6 +1307,17 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
             if (result.good()) result = TreatmentSummaryCalculatedDoseReferenceSequence.write(dataset, "1-n" ,"3", "RTTreatmentSummaryRecordModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
+        {
+            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
+            if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+        }
+
         // --- SOPCommonModule (M) ---
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule");
@@ -1150,6 +1329,8 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1219,7 +1400,16 @@ OFBool DRTIonBeamsTreatmentRecordIOD::isPatientStudyModulePresent(const OFBool /
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1280,6 +1470,18 @@ OFBool DRTIonBeamsTreatmentRecordIOD::isRTTreatmentSummaryRecordModulePresent(co
 }
 
 
+OFBool DRTIonBeamsTreatmentRecordIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
+{
+    /* check whether at least one attribute is present */
+    return !ReferencedImageSequence.isEmpty() ||
+           !ReferencedInstanceSequence.isEmpty() ||
+           !DerivationDescription.isEmpty() ||
+           !DerivationCodeSequence.isEmpty() ||
+           !SourceImageSequence.isEmpty() ||
+           !SourceInstanceSequence.isEmpty();
+}
+
+
 OFBool DRTIonBeamsTreatmentRecordIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/)
 {
     /* check whether at least one attribute is present */
@@ -1312,6 +1514,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getAdmittingDiagnosesDescription(OFSt
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos);
@@ -1438,6 +1646,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getDeidentificationMethod(OFString &v
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getDerivationDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(DerivationDescription, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(DeviceSerialNumber, value, pos);
@@ -1522,6 +1736,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getIssuerOfPatientID(OFString &value,
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -1540,6 +1760,36 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getManufacturerModelName(OFString &va
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -1606,18 +1856,42 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientAge(OFString &value, const
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -1630,6 +1904,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientComments(OFString &value, c
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -1678,6 +1958,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientSpeciesDescription(OFString
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getPatientWeight(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientWeight, value, pos);
@@ -1738,6 +2024,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getPixelPaddingValue(Uint16 &value, c
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getPrimaryDosimeterUnit(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PrimaryDosimeterUnit, value, pos);
@@ -1876,6 +2168,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getServiceEpisodeID(OFString &value,
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -1906,6 +2204,24 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::getStationName(OFString &value, const
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::getStudyDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StudyDate, value, pos);
@@ -2002,6 +2318,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setAdmittingDiagnosesDescription(cons
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2191,6 +2516,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setDeidentificationMethod(const OFStr
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setDerivationDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = DerivationDescription.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2308,6 +2642,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setIssuerOfPatientID(const OFString &
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2335,6 +2678,33 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setManufacturerModelName(const OFStri
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2425,6 +2795,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientAge(const OFString &value,
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -2434,6 +2813,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthDate(const OFString &v
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -2443,6 +2831,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBirthTime(const OFString &v
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2461,6 +2858,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientComments(const OFString &va
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2524,6 +2930,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientSpeciesDescription(const OF
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setPatientWeight(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -2602,6 +3017,12 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setPixelPaddingValue(const Uint16 val
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setPrimaryDosimeterUnit(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2791,6 +3212,15 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setServiceEpisodeID(const OFString &v
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -2827,6 +3257,33 @@ OFCondition DRTIonBeamsTreatmentRecordIOD::setStationName(const OFString &value,
 }
 
 
+OFCondition DRTIonBeamsTreatmentRecordIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTIonBeamsTreatmentRecordIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTIonBeamsTreatmentRecordIOD::setStudyDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
diff --git a/dcmrt/libsrc/drtipiqs.cc b/dcmrt/libsrc/drtipiqs.cc
index 25a3869..23b7c28 100644
--- a/dcmrt/libsrc/drtipiqs.cc
+++ b/dcmrt/libsrc/drtipiqs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIssuerOfPatientIDQualifiersSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtircs.cc b/dcmrt/libsrc/drtircs.cc
index e79d28c..1f9714e 100644
--- a/dcmrt/libsrc/drtircs.cc
+++ b/dcmrt/libsrc/drtircs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonRangeCompensatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtiseis.cc b/dcmrt/libsrc/drtiseis.cc
index eb40d2e..4a4c467 100644
--- a/dcmrt/libsrc/drtiseis.cc
+++ b/dcmrt/libsrc/drtiseis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIssuerOfServiceEpisodeIDSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtitts.cc b/dcmrt/libsrc/drtitts.cc
index 32d02c1..56773c0 100644
--- a/dcmrt/libsrc/drtitts.cc
+++ b/dcmrt/libsrc/drtitts.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonToleranceTableSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,7 +23,11 @@ DRTIonToleranceTableSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
     BeamLimitingDeviceAngleTolerance(DCM_BeamLimitingDeviceAngleTolerance),
     BeamLimitingDeviceToleranceSequence(emptyDefaultItem /*emptyDefaultSequence*/),
+    ChairHeadFramePositionTolerance(DCM_ChairHeadFramePositionTolerance),
+    FixationLightAzimuthalAngleTolerance(DCM_FixationLightAzimuthalAngleTolerance),
+    FixationLightPolarAngleTolerance(DCM_FixationLightPolarAngleTolerance),
     GantryAngleTolerance(DCM_GantryAngleTolerance),
+    HeadFixationAngleTolerance(DCM_HeadFixationAngleTolerance),
     PatientSupportAngleTolerance(DCM_PatientSupportAngleTolerance),
     SnoutPositionTolerance(DCM_SnoutPositionTolerance),
     TableTopLateralPositionTolerance(DCM_TableTopLateralPositionTolerance),
@@ -41,7 +45,11 @@ DRTIonToleranceTableSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
     BeamLimitingDeviceAngleTolerance(copy.BeamLimitingDeviceAngleTolerance),
     BeamLimitingDeviceToleranceSequence(copy.BeamLimitingDeviceToleranceSequence),
+    ChairHeadFramePositionTolerance(copy.ChairHeadFramePositionTolerance),
+    FixationLightAzimuthalAngleTolerance(copy.FixationLightAzimuthalAngleTolerance),
+    FixationLightPolarAngleTolerance(copy.FixationLightPolarAngleTolerance),
     GantryAngleTolerance(copy.GantryAngleTolerance),
+    HeadFixationAngleTolerance(copy.HeadFixationAngleTolerance),
     PatientSupportAngleTolerance(copy.PatientSupportAngleTolerance),
     SnoutPositionTolerance(copy.SnoutPositionTolerance),
     TableTopLateralPositionTolerance(copy.TableTopLateralPositionTolerance),
@@ -67,7 +75,11 @@ DRTIonToleranceTableSequence::Item &DRTIonToleranceTableSequence::Item::operator
         EmptyDefaultItem = copy.EmptyDefaultItem;
         BeamLimitingDeviceAngleTolerance = copy.BeamLimitingDeviceAngleTolerance;
         BeamLimitingDeviceToleranceSequence = copy.BeamLimitingDeviceToleranceSequence;
+        ChairHeadFramePositionTolerance = copy.ChairHeadFramePositionTolerance;
+        FixationLightAzimuthalAngleTolerance = copy.FixationLightAzimuthalAngleTolerance;
+        FixationLightPolarAngleTolerance = copy.FixationLightPolarAngleTolerance;
         GantryAngleTolerance = copy.GantryAngleTolerance;
+        HeadFixationAngleTolerance = copy.HeadFixationAngleTolerance;
         PatientSupportAngleTolerance = copy.PatientSupportAngleTolerance;
         SnoutPositionTolerance = copy.SnoutPositionTolerance;
         TableTopLateralPositionTolerance = copy.TableTopLateralPositionTolerance;
@@ -99,6 +111,10 @@ void DRTIonToleranceTableSequence::Item::clear()
         TableTopPitchAngleTolerance.clear();
         TableTopRollAngleTolerance.clear();
         SnoutPositionTolerance.clear();
+        HeadFixationAngleTolerance.clear();
+        ChairHeadFramePositionTolerance.clear();
+        FixationLightAzimuthalAngleTolerance.clear();
+        FixationLightPolarAngleTolerance.clear();
     }
 }
 
@@ -116,7 +132,11 @@ OFBool DRTIonToleranceTableSequence::Item::isEmpty()
            TableTopLateralPositionTolerance.isEmpty() &&
            TableTopPitchAngleTolerance.isEmpty() &&
            TableTopRollAngleTolerance.isEmpty() &&
-           SnoutPositionTolerance.isEmpty();
+           SnoutPositionTolerance.isEmpty() &&
+           HeadFixationAngleTolerance.isEmpty() &&
+           ChairHeadFramePositionTolerance.isEmpty() &&
+           FixationLightAzimuthalAngleTolerance.isEmpty() &&
+           FixationLightPolarAngleTolerance.isEmpty();
 }
 
 
@@ -145,6 +165,10 @@ OFCondition DRTIonToleranceTableSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, TableTopPitchAngleTolerance, "1", "3", "IonToleranceTableSequence");
         getAndCheckElementFromDataset(item, TableTopRollAngleTolerance, "1", "3", "IonToleranceTableSequence");
         getAndCheckElementFromDataset(item, SnoutPositionTolerance, "1", "3", "IonToleranceTableSequence");
+        getAndCheckElementFromDataset(item, HeadFixationAngleTolerance, "1", "3", "IonToleranceTableSequence");
+        getAndCheckElementFromDataset(item, ChairHeadFramePositionTolerance, "1", "3", "IonToleranceTableSequence");
+        getAndCheckElementFromDataset(item, FixationLightAzimuthalAngleTolerance, "1", "3", "IonToleranceTableSequence");
+        getAndCheckElementFromDataset(item, FixationLightPolarAngleTolerance, "1", "3", "IonToleranceTableSequence");
         result = EC_Normal;
     }
     return result;
@@ -169,6 +193,10 @@ OFCondition DRTIonToleranceTableSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopPitchAngleTolerance), "1", "3", "IonToleranceTableSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(TableTopRollAngleTolerance), "1", "3", "IonToleranceTableSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(SnoutPositionTolerance), "1", "3", "IonToleranceTableSequence");
+        addElementToDataset(result, item, new DcmDecimalString(HeadFixationAngleTolerance), "1", "3", "IonToleranceTableSequence");
+        addElementToDataset(result, item, new DcmDecimalString(ChairHeadFramePositionTolerance), "1", "3", "IonToleranceTableSequence");
+        addElementToDataset(result, item, new DcmDecimalString(FixationLightAzimuthalAngleTolerance), "1", "3", "IonToleranceTableSequence");
+        addElementToDataset(result, item, new DcmDecimalString(FixationLightPolarAngleTolerance), "1", "3", "IonToleranceTableSequence");
     }
     return result;
 }
@@ -192,6 +220,60 @@ OFCondition DRTIonToleranceTableSequence::Item::getBeamLimitingDeviceAngleTolera
 }
 
 
+OFCondition DRTIonToleranceTableSequence::Item::getChairHeadFramePositionTolerance(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ChairHeadFramePositionTolerance, value, pos);
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::getChairHeadFramePositionTolerance(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, ChairHeadFramePositionTolerance).getFloat64(value, pos);
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::getFixationLightAzimuthalAngleTolerance(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(FixationLightAzimuthalAngleTolerance, value, pos);
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::getFixationLightAzimuthalAngleTolerance(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, FixationLightAzimuthalAngleTolerance).getFloat64(value, pos);
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::getFixationLightPolarAngleTolerance(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(FixationLightPolarAngleTolerance, value, pos);
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::getFixationLightPolarAngleTolerance(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, FixationLightPolarAngleTolerance).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonToleranceTableSequence::Item::getGantryAngleTolerance(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -210,6 +292,24 @@ OFCondition DRTIonToleranceTableSequence::Item::getGantryAngleTolerance(Float64
 }
 
 
+OFCondition DRTIonToleranceTableSequence::Item::getHeadFixationAngleTolerance(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(HeadFixationAngleTolerance, value, pos);
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::getHeadFixationAngleTolerance(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, HeadFixationAngleTolerance).getFloat64(value, pos);
+}
+
+
 OFCondition DRTIonToleranceTableSequence::Item::getPatientSupportAngleTolerance(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -349,6 +449,45 @@ OFCondition DRTIonToleranceTableSequence::Item::setBeamLimitingDeviceAngleTolera
 }
 
 
+OFCondition DRTIonToleranceTableSequence::Item::setChairHeadFramePositionTolerance(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ChairHeadFramePositionTolerance.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::setFixationLightAzimuthalAngleTolerance(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = FixationLightAzimuthalAngleTolerance.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTIonToleranceTableSequence::Item::setFixationLightPolarAngleTolerance(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = FixationLightPolarAngleTolerance.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonToleranceTableSequence::Item::setGantryAngleTolerance(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
@@ -362,6 +501,19 @@ OFCondition DRTIonToleranceTableSequence::Item::setGantryAngleTolerance(const OF
 }
 
 
+OFCondition DRTIonToleranceTableSequence::Item::setHeadFixationAngleTolerance(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = HeadFixationAngleTolerance.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTIonToleranceTableSequence::Item::setPatientSupportAngleTolerance(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtiwps.cc b/dcmrt/libsrc/drtiwps.cc
index 0501b4b..f487b51 100644
--- a/dcmrt/libsrc/drtiwps.cc
+++ b/dcmrt/libsrc/drtiwps.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonWedgePositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtiws.cc b/dcmrt/libsrc/drtiws.cc
index 66ec2a8..7ce23d4 100644
--- a/dcmrt/libsrc/drtiws.cc
+++ b/dcmrt/libsrc/drtiws.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTIonWedgeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtlsds.cc b/dcmrt/libsrc/drtlsds.cc
index c6ee742..887c584 100644
--- a/dcmrt/libsrc/drtlsds.cc
+++ b/dcmrt/libsrc/drtlsds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTLateralSpreadingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtlsds6.cc b/dcmrt/libsrc/drtlsds6.cc
index 77f8ba1..d9d8606 100644
--- a/dcmrt/libsrc/drtlsds6.cc
+++ b/dcmrt/libsrc/drtlsds6.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtlsds7.cc b/dcmrt/libsrc/drtlsds7.cc
index 6d236c5..e762201 100644
--- a/dcmrt/libsrc/drtlsds7.cc
+++ b/dcmrt/libsrc/drtlsds7.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTLateralSpreadingDeviceSettingsSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtmacds.cc b/dcmrt/libsrc/drtmacds.cc
index ddbda95..8ede6d4 100644
--- a/dcmrt/libsrc/drtmacds.cc
+++ b/dcmrt/libsrc/drtmacds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTMultiplexedAudioChannelsDescriptionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtmas.cc b/dcmrt/libsrc/drtmas.cc
index 369b0c6..50097b6 100644
--- a/dcmrt/libsrc/drtmas.cc
+++ b/dcmrt/libsrc/drtmas.cc
@@ -6,9 +6,8 @@
  *
  *  Source file for class DRTModifiedAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
- *  Last modified on 2016-02-05 by Riesmeier
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -68,26 +67,24 @@ OFBool DRTModifiedAttributesSequence::Item::isValid() const
 }
 
 
-OFCondition DRTModifiedAttributesSequence::Item::read(DcmItem & /*item*/)
+OFCondition DRTModifiedAttributesSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        /* manual comment: nothing to do */
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTModifiedAttributesSequence::Item::write(DcmItem & /*item*/)
+OFCondition DRTModifiedAttributesSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
-        /* manual comment: nothing to do */
         result = EC_Normal;
     }
     return result;
diff --git a/dcmrt/libsrc/drtmdrs.cc b/dcmrt/libsrc/drtmdrs.cc
index bac8e3d..31209c5 100644
--- a/dcmrt/libsrc/drtmdrs.cc
+++ b/dcmrt/libsrc/drtmdrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTMeasuredDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtmls.cc b/dcmrt/libsrc/drtmls.cc
index af627b0..5484cea 100644
--- a/dcmrt/libsrc/drtmls.cc
+++ b/dcmrt/libsrc/drtmls.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTModalityLUTSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -93,10 +93,10 @@ OFCondition DRTModalityLUTSequence::Item::read(DcmItem &item)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, LUTDescriptor, "3", "1C", "ModalityLUTSequence");
+        getAndCheckElementFromDataset(item, LUTDescriptor, "3", "1", "ModalityLUTSequence");
         getAndCheckElementFromDataset(item, LUTExplanation, "1", "3", "ModalityLUTSequence");
-        getAndCheckElementFromDataset(item, ModalityLUTType, "1", "1C", "ModalityLUTSequence");
-        getAndCheckElementFromDataset(item, LUTData, "1-n", "1C", "ModalityLUTSequence");
+        getAndCheckElementFromDataset(item, ModalityLUTType, "1", "1", "ModalityLUTSequence");
+        getAndCheckElementFromDataset(item, LUTData, "1-n", "1", "ModalityLUTSequence");
         result = EC_Normal;
     }
     return result;
@@ -109,10 +109,10 @@ OFCondition DRTModalityLUTSequence::Item::write(DcmItem &item)
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmUnsignedShort(LUTDescriptor), "3", "1C", "ModalityLUTSequence");
+        addElementToDataset(result, item, new DcmUnsignedShort(LUTDescriptor), "3", "1", "ModalityLUTSequence");
         addElementToDataset(result, item, new DcmLongString(LUTExplanation), "1", "3", "ModalityLUTSequence");
-        addElementToDataset(result, item, new DcmLongString(ModalityLUTType), "1", "1C", "ModalityLUTSequence");
-        addElementToDataset(result, item, new DcmOtherByteOtherWord(LUTData), "1-n", "1C", "ModalityLUTSequence");
+        addElementToDataset(result, item, new DcmLongString(ModalityLUTType), "1", "1", "ModalityLUTSequence");
+        addElementToDataset(result, item, new DcmOtherByteOtherWord(LUTData), "1-n", "1", "ModalityLUTSequence");
     }
     return result;
 }
diff --git a/dcmrt/libsrc/drtmps.cc b/dcmrt/libsrc/drtmps.cc
index b48bfaa..7f94570 100644
--- a/dcmrt/libsrc/drtmps.cc
+++ b/dcmrt/libsrc/drtmps.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTMACParametersSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrsrs.cc b/dcmrt/libsrc/drtmris.cc
similarity index 66%
copy from dcmrt/libsrc/drtrsrs.cc
copy to dcmrt/libsrc/drtmris.cc
index a36e5c1..8a82778 100644
--- a/dcmrt/libsrc/drtrsrs.cc
+++ b/dcmrt/libsrc/drtmris.cc
@@ -1,148 +1,177 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Source file for class DRTReferencedSpatialRegistrationSequence
+ *  Source file for class DRTMappingResourceIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
-#include "dcmtk/dcmrt/seq/drtrsrs.h"
+#include "dcmtk/dcmrt/seq/drtmris.h"
 
 
 // --- item class ---
 
-DRTReferencedSpatialRegistrationSequence::Item::Item(const OFBool emptyDefaultItem)
+DRTMappingResourceIdentificationSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
-    ReferencedSOPClassUID(DCM_ReferencedSOPClassUID),
-    ReferencedSOPInstanceUID(DCM_ReferencedSOPInstanceUID)
+    MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
+    MappingResourceUID(DCM_MappingResourceUID)
 {
 }
 
 
-DRTReferencedSpatialRegistrationSequence::Item::Item(const Item &copy)
+DRTMappingResourceIdentificationSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
-    ReferencedSOPClassUID(copy.ReferencedSOPClassUID),
-    ReferencedSOPInstanceUID(copy.ReferencedSOPInstanceUID)
+    MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
+    MappingResourceUID(copy.MappingResourceUID)
 {
 }
 
 
-DRTReferencedSpatialRegistrationSequence::Item::~Item()
+DRTMappingResourceIdentificationSequence::Item::~Item()
 {
 }
 
 
-DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::Item::operator=(const Item &copy)
+DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::Item::operator=(const Item &copy)
 {
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
-        ReferencedSOPClassUID = copy.ReferencedSOPClassUID;
-        ReferencedSOPInstanceUID = copy.ReferencedSOPInstanceUID;
+        MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
+        MappingResourceUID = copy.MappingResourceUID;
     }
     return *this;
 }
 
 
-void DRTReferencedSpatialRegistrationSequence::Item::clear()
+void DRTMappingResourceIdentificationSequence::Item::clear()
 {
     if (!EmptyDefaultItem)
     {
         /* clear all DICOM attributes */
-        ReferencedSOPClassUID.clear();
-        ReferencedSOPInstanceUID.clear();
+        MappingResource.clear();
+        MappingResourceUID.clear();
+        MappingResourceName.clear();
     }
 }
 
 
-OFBool DRTReferencedSpatialRegistrationSequence::Item::isEmpty()
+OFBool DRTMappingResourceIdentificationSequence::Item::isEmpty()
 {
-    return ReferencedSOPClassUID.isEmpty() &&
-           ReferencedSOPInstanceUID.isEmpty();
+    return MappingResource.isEmpty() &&
+           MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty();
 }
 
 
-OFBool DRTReferencedSpatialRegistrationSequence::Item::isValid() const
+OFBool DRTMappingResourceIdentificationSequence::Item::isValid() const
 {
     return !EmptyDefaultItem;
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::Item::read(DcmItem &item)
+OFCondition DRTMappingResourceIdentificationSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, ReferencedSOPClassUID, "1", "1", "ReferencedSpatialRegistrationSequence");
-        getAndCheckElementFromDataset(item, ReferencedSOPInstanceUID, "1", "1", "ReferencedSpatialRegistrationSequence");
+        getAndCheckElementFromDataset(item, MappingResource, "1", "1", "MappingResourceIdentificationSequence");
+        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "MappingResourceIdentificationSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "MappingResourceIdentificationSequence");
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::Item::write(DcmItem &item)
+OFCondition DRTMappingResourceIdentificationSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmUniqueIdentifier(ReferencedSOPClassUID), "1", "1", "ReferencedSpatialRegistrationSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(ReferencedSOPInstanceUID), "1", "1", "ReferencedSpatialRegistrationSequence");
+        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1", "MappingResourceIdentificationSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "MappingResourceIdentificationSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "MappingResourceIdentificationSequence");
     }
     return result;
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::Item::getReferencedSOPClassUID(OFString &value, const signed long pos) const
+OFCondition DRTMappingResourceIdentificationSequence::Item::getMappingResource(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(ReferencedSOPClassUID, value, pos);
+        return getStringValueFromElement(MappingResource, value, pos);
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::Item::getReferencedSOPInstanceUID(OFString &value, const signed long pos) const
+OFCondition DRTMappingResourceIdentificationSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(ReferencedSOPInstanceUID, value, pos);
+        return getStringValueFromElement(MappingResourceName, value, pos);
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::Item::setReferencedSOPClassUID(const OFString &value, const OFBool check)
+OFCondition DRTMappingResourceIdentificationSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceUID, value, pos);
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::Item::setMappingResource(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
-        result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResource.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTMappingResourceIdentificationSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
         if (result.good())
-            result = ReferencedSOPClassUID.putOFStringArray(value);
+            result = MappingResourceName.putOFStringArray(value);
     }
     return result;
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::Item::setReferencedSOPInstanceUID(const OFString &value, const OFBool check)
+OFCondition DRTMappingResourceIdentificationSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
         if (result.good())
-            result = ReferencedSOPInstanceUID.putOFStringArray(value);
+            result = MappingResourceUID.putOFStringArray(value);
     }
     return result;
 }
@@ -150,7 +179,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::Item::setReferencedSOPInst
 
 // --- sequence class ---
 
-DRTReferencedSpatialRegistrationSequence::DRTReferencedSpatialRegistrationSequence(const OFBool emptyDefaultSequence)
+DRTMappingResourceIdentificationSequence::DRTMappingResourceIdentificationSequence(const OFBool emptyDefaultSequence)
   : EmptyDefaultSequence(emptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -160,7 +189,7 @@ DRTReferencedSpatialRegistrationSequence::DRTReferencedSpatialRegistrationSequen
 }
 
 
-DRTReferencedSpatialRegistrationSequence::DRTReferencedSpatialRegistrationSequence(const DRTReferencedSpatialRegistrationSequence &copy)
+DRTMappingResourceIdentificationSequence::DRTMappingResourceIdentificationSequence(const DRTMappingResourceIdentificationSequence &copy)
   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -186,7 +215,7 @@ DRTReferencedSpatialRegistrationSequence::DRTReferencedSpatialRegistrationSequen
 }
 
 
-DRTReferencedSpatialRegistrationSequence &DRTReferencedSpatialRegistrationSequence::operator=(const DRTReferencedSpatialRegistrationSequence &copy)
+DRTMappingResourceIdentificationSequence &DRTMappingResourceIdentificationSequence::operator=(const DRTMappingResourceIdentificationSequence &copy)
 {
     if (this != &copy)
     {
@@ -214,13 +243,13 @@ DRTReferencedSpatialRegistrationSequence &DRTReferencedSpatialRegistrationSequen
 }
 
 
-DRTReferencedSpatialRegistrationSequence::~DRTReferencedSpatialRegistrationSequence()
+DRTMappingResourceIdentificationSequence::~DRTMappingResourceIdentificationSequence()
 {
     clear();
 }
 
 
-void DRTReferencedSpatialRegistrationSequence::clear()
+void DRTMappingResourceIdentificationSequence::clear()
 {
     if (!EmptyDefaultSequence)
     {
@@ -239,25 +268,25 @@ void DRTReferencedSpatialRegistrationSequence::clear()
 }
 
 
-OFBool DRTReferencedSpatialRegistrationSequence::isEmpty()
+OFBool DRTMappingResourceIdentificationSequence::isEmpty()
 {
     return SequenceOfItems.empty();
 }
 
 
-OFBool DRTReferencedSpatialRegistrationSequence::isValid() const
+OFBool DRTMappingResourceIdentificationSequence::isValid() const
 {
     return !EmptyDefaultSequence;
 }
 
 
-unsigned long DRTReferencedSpatialRegistrationSequence::getNumberOfItems() const
+unsigned long DRTMappingResourceIdentificationSequence::getNumberOfItems() const
 {
     return SequenceOfItems.size();
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::gotoFirstItem()
+OFCondition DRTMappingResourceIdentificationSequence::gotoFirstItem()
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -269,7 +298,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::gotoFirstItem()
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::gotoNextItem()
+OFCondition DRTMappingResourceIdentificationSequence::gotoNextItem()
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -281,7 +310,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::gotoNextItem()
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+OFCondition DRTMappingResourceIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -301,7 +330,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const unsigned lo
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+OFCondition DRTMappingResourceIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -321,13 +350,13 @@ OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const unsigned lo
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::gotoItem(const unsigned long num)
+OFCondition DRTMappingResourceIdentificationSequence::gotoItem(const unsigned long num)
 {
     return gotoItem(num, CurrentItem);
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::getCurrentItem(Item *&item) const
+OFCondition DRTMappingResourceIdentificationSequence::getCurrentItem(Item *&item) const
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -339,7 +368,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::getCurrentItem(Item *&item
 }
 
 
-DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::getCurrentItem()
+DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getCurrentItem()
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -348,7 +377,7 @@ DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistration
 }
 
 
-const DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::getCurrentItem() const
+const DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getCurrentItem() const
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -357,7 +386,7 @@ const DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegist
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::getItem(const unsigned long num, Item *&item)
+OFCondition DRTMappingResourceIdentificationSequence::getItem(const unsigned long num, Item *&item)
 {
     OFListIterator(Item *) iterator;
     OFCondition result = gotoItem(num, iterator);
@@ -367,7 +396,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::getItem(const unsigned lon
 }
 
 
-DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::getItem(const unsigned long num)
+DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getItem(const unsigned long num)
 {
     OFListIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -377,7 +406,7 @@ DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistration
 }
 
 
-const DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::getItem(const unsigned long num) const
+const DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::getItem(const unsigned long num) const
 {
     OFListConstIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -387,19 +416,19 @@ const DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegist
 }
 
 
-DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::operator[](const unsigned long num)
+DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::operator[](const unsigned long num)
 {
     return getItem(num);
 }
 
 
-const DRTReferencedSpatialRegistrationSequence::Item &DRTReferencedSpatialRegistrationSequence::operator[](const unsigned long num) const
+const DRTMappingResourceIdentificationSequence::Item &DRTMappingResourceIdentificationSequence::operator[](const unsigned long num) const
 {
     return getItem(num);
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::addItem(Item *&item)
+OFCondition DRTMappingResourceIdentificationSequence::addItem(Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -416,7 +445,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::addItem(Item *&item)
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::insertItem(const unsigned long pos, Item *&item)
+OFCondition DRTMappingResourceIdentificationSequence::insertItem(const unsigned long pos, Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -439,7 +468,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::insertItem(const unsigned
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::removeItem(const unsigned long pos)
+OFCondition DRTMappingResourceIdentificationSequence::removeItem(const unsigned long pos)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -457,7 +486,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::removeItem(const unsigned
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::read(DcmItem &dataset,
+OFCondition DRTMappingResourceIdentificationSequence::read(DcmItem &dataset,
                                                            const OFString &card,
                                                            const OFString &type,
                                                            const char *moduleName)
@@ -469,7 +498,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::read(DcmItem &dataset,
         clear();
         /* retrieve sequence element from dataset */
         DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_ReferencedSpatialRegistrationSequence, sequence);
+        result = dataset.findAndGetSequence(DCM_MappingResourceIdentificationSequence, sequence);
         if (sequence != NULL)
         {
             if (checkElementValue(*sequence, card, type, result, moduleName))
@@ -499,7 +528,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::read(DcmItem &dataset,
                 }
             }
         } else {
-            DcmSequenceOfItems element(DCM_ReferencedSpatialRegistrationSequence);
+            DcmSequenceOfItems element(DCM_MappingResourceIdentificationSequence);
             checkElementValue(element, card, type, result, moduleName);
         }
     }
@@ -507,7 +536,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::read(DcmItem &dataset,
 }
 
 
-OFCondition DRTReferencedSpatialRegistrationSequence::write(DcmItem &dataset,
+OFCondition DRTMappingResourceIdentificationSequence::write(DcmItem &dataset,
                                                             const OFString &card,
                                                             const OFString &type,
                                                             const char *moduleName)
@@ -516,7 +545,7 @@ OFCondition DRTReferencedSpatialRegistrationSequence::write(DcmItem &dataset,
     if (!EmptyDefaultSequence)
     {
         result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_ReferencedSpatialRegistrationSequence);
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_MappingResourceIdentificationSequence);
         if (sequence != NULL)
         {
             result = EC_Normal;
diff --git a/dcmrt/libsrc/drtmss.cc b/dcmrt/libsrc/drtmss.cc
index 8879fa6..37b1a17 100644
--- a/dcmrt/libsrc/drtmss.cc
+++ b/dcmrt/libsrc/drtmss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTMotionSynchronizationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtmucs.cc b/dcmrt/libsrc/drtmucs.cc
index b995faa..bab3421 100644
--- a/dcmrt/libsrc/drtmucs.cc
+++ b/dcmrt/libsrc/drtmucs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTMeasurementUnitsCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTMeasurementUnitsCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTMeasurementUnitsCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTMeasurementUnitsCodeSequence::Item &DRTMeasurementUnitsCodeSequence::Item::op
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTMeasurementUnitsCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTMeasurementUnitsCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "MeasurementUnitsCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "MeasurementUnitsCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "MeasurementUnitsCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "MeasurementUnitsCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "MeasurementUnitsCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "MeasurementUnitsCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "MeasurementUnitsCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "MeasurementUnitsCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "MeasurementUnitsCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "MeasurementUnitsCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "MeasurementUnitsCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "MeasurementUnitsCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "MeasurementUnitsCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "MeasurementUnitsCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::getMappingResource(OFString &
 }
 
 
+OFCondition DRTMeasurementUnitsCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTMeasurementUnitsCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTMeasurementUnitsCodeSequence::Item::setMappingResource(const OFSt
 }
 
 
+OFCondition DRTMeasurementUnitsCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTMeasurementUnitsCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtoas.cc b/dcmrt/libsrc/drtoas.cc
index 0685b2f..53c30a9 100644
--- a/dcmrt/libsrc/drtoas.cc
+++ b/dcmrt/libsrc/drtoas.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTOriginalAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtois.cc b/dcmrt/libsrc/drtois.cc
index 43e4ce2..661c183 100644
--- a/dcmrt/libsrc/drtois.cc
+++ b/dcmrt/libsrc/drtois.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTOperatorIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtopis.cc b/dcmrt/libsrc/drtopis.cc
index a47bd1e..bd2126d 100644
--- a/dcmrt/libsrc/drtopis.cc
+++ b/dcmrt/libsrc/drtopis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTOtherPatientIDsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtos.cc b/dcmrt/libsrc/drtos.cc
index 81ccc2e..72ef9d7 100644
--- a/dcmrt/libsrc/drtos.cc
+++ b/dcmrt/libsrc/drtos.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTOverrideSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -21,6 +21,7 @@
 
 DRTOverrideSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
+    OperatorIdentificationSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     OperatorsName(DCM_OperatorsName),
     OverrideParameterPointer(DCM_OverrideParameterPointer),
     OverrideReason(DCM_OverrideReason),
@@ -32,6 +33,7 @@ DRTOverrideSequence::Item::Item(const OFBool emptyDefaultItem)
 
 DRTOverrideSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     OperatorsName(copy.OperatorsName),
     OverrideParameterPointer(copy.OverrideParameterPointer),
     OverrideReason(copy.OverrideReason),
@@ -51,6 +53,7 @@ DRTOverrideSequence::Item &DRTOverrideSequence::Item::operator=(const Item &copy
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         OperatorsName = copy.OperatorsName;
         OverrideParameterPointer = copy.OverrideParameterPointer;
         OverrideReason = copy.OverrideReason;
@@ -70,6 +73,7 @@ void DRTOverrideSequence::Item::clear()
         OverrideParameterPointer.clear();
         ParameterItemIndex.clear();
         OperatorsName.clear();
+        OperatorIdentificationSequence.clear();
         OverrideReason.clear();
     }
 }
@@ -81,6 +85,7 @@ OFBool DRTOverrideSequence::Item::isEmpty()
            OverrideParameterPointer.isEmpty() &&
            ParameterItemIndex.isEmpty() &&
            OperatorsName.isEmpty() &&
+           OperatorIdentificationSequence.isEmpty() &&
            OverrideReason.isEmpty();
 }
 
@@ -102,6 +107,7 @@ OFCondition DRTOverrideSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, OverrideParameterPointer, "1", "1", "OverrideSequence");
         getAndCheckElementFromDataset(item, ParameterItemIndex, "1", "1", "OverrideSequence");
         getAndCheckElementFromDataset(item, OperatorsName, "1-n", "2", "OverrideSequence");
+        OperatorIdentificationSequence.read(item, "1-n", "3", "OverrideSequence");
         getAndCheckElementFromDataset(item, OverrideReason, "1", "3", "OverrideSequence");
         result = EC_Normal;
     }
@@ -119,6 +125,7 @@ OFCondition DRTOverrideSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmAttributeTag(OverrideParameterPointer), "1", "1", "OverrideSequence");
         addElementToDataset(result, item, new DcmIntegerString(ParameterItemIndex), "1", "1", "OverrideSequence");
         addElementToDataset(result, item, new DcmPersonName(OperatorsName), "1-n", "2", "OverrideSequence");
+        if (result.good()) result = OperatorIdentificationSequence.write(item, "1-n", "3", "OverrideSequence");
         addElementToDataset(result, item, new DcmShortText(OverrideReason), "1", "3", "OverrideSequence");
     }
     return result;
diff --git a/dcmrt/libsrc/drtpbcs.cc b/dcmrt/libsrc/drtpbcs.cc
index 2f41032..0f23ab3 100644
--- a/dcmrt/libsrc/drtpbcs.cc
+++ b/dcmrt/libsrc/drtpbcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPatientBreedCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTPatientBreedCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTPatientBreedCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTPatientBreedCodeSequence::Item &DRTPatientBreedCodeSequence::Item::operator=(
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTPatientBreedCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTPatientBreedCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTPatientBreedCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PatientBreedCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PatientBreedCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PatientBreedCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PatientBreedCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PatientBreedCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PatientBreedCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PatientBreedCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTPatientBreedCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PatientBreedCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PatientBreedCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PatientBreedCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PatientBreedCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PatientBreedCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PatientBreedCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PatientBreedCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTPatientBreedCodeSequence::Item::getMappingResource(OFString &valu
 }
 
 
+OFCondition DRTPatientBreedCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTPatientBreedCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTPatientBreedCodeSequence::Item::setMappingResource(const OFString
 }
 
 
+OFCondition DRTPatientBreedCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTPatientBreedCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtpcs.cc b/dcmrt/libsrc/drtpcs.cc
index d210544..1ee16cc 100644
--- a/dcmrt/libsrc/drtpcs.cc
+++ b/dcmrt/libsrc/drtpcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTProcedureCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTProcedureCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTProcedureCodeSequence::Item &DRTProcedureCodeSequence::Item::operator=(const
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTProcedureCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTProcedureCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTProcedureCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ProcedureCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ProcedureCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTProcedureCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ProcedureCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ProcedureCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ProcedureCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTProcedureCodeSequence::Item::getMappingResource(OFString &value,
 }
 
 
+OFCondition DRTProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTProcedureCodeSequence::Item::setMappingResource(const OFString &v
 }
 
 
+OFCondition DRTProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtpcxs.cc b/dcmrt/libsrc/drtpcxs.cc
index b95cebd..f7fac92 100644
--- a/dcmrt/libsrc/drtpcxs.cc
+++ b/dcmrt/libsrc/drtpcxs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTProtocolContextSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtpdecs.cc b/dcmrt/libsrc/drtpdecs.cc
index 0238804..576b97f 100644
--- a/dcmrt/libsrc/drtpdecs.cc
+++ b/dcmrt/libsrc/drtpdecs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPrivateDataElementCharacteristicsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -25,6 +25,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item::Item(const OFBool emptyDefau
     DeidentificationActionSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     NonidentifyingPrivateElements(DCM_NonidentifyingPrivateElements),
     PrivateCreatorReference(DCM_PrivateCreatorReference),
+    PrivateDataElementDefinitionSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     PrivateGroupReference(DCM_PrivateGroupReference)
 {
 }
@@ -36,6 +37,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item::Item(const Item &copy)
     DeidentificationActionSequence(copy.DeidentificationActionSequence),
     NonidentifyingPrivateElements(copy.NonidentifyingPrivateElements),
     PrivateCreatorReference(copy.PrivateCreatorReference),
+    PrivateDataElementDefinitionSequence(copy.PrivateDataElementDefinitionSequence),
     PrivateGroupReference(copy.PrivateGroupReference)
 {
 }
@@ -55,6 +57,7 @@ DRTPrivateDataElementCharacteristicsSequence::Item &DRTPrivateDataElementCharact
         DeidentificationActionSequence = copy.DeidentificationActionSequence;
         NonidentifyingPrivateElements = copy.NonidentifyingPrivateElements;
         PrivateCreatorReference = copy.PrivateCreatorReference;
+        PrivateDataElementDefinitionSequence = copy.PrivateDataElementDefinitionSequence;
         PrivateGroupReference = copy.PrivateGroupReference;
     }
     return *this;
@@ -68,6 +71,7 @@ void DRTPrivateDataElementCharacteristicsSequence::Item::clear()
         /* clear all DICOM attributes */
         PrivateGroupReference.clear();
         PrivateCreatorReference.clear();
+        PrivateDataElementDefinitionSequence.clear();
         BlockIdentifyingInformationStatus.clear();
         NonidentifyingPrivateElements.clear();
         DeidentificationActionSequence.clear();
@@ -79,6 +83,7 @@ OFBool DRTPrivateDataElementCharacteristicsSequence::Item::isEmpty()
 {
     return PrivateGroupReference.isEmpty() &&
            PrivateCreatorReference.isEmpty() &&
+           PrivateDataElementDefinitionSequence.isEmpty() &&
            BlockIdentifyingInformationStatus.isEmpty() &&
            NonidentifyingPrivateElements.isEmpty() &&
            DeidentificationActionSequence.isEmpty();
@@ -100,6 +105,7 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::Item::read(DcmItem &it
         clear();
         getAndCheckElementFromDataset(item, PrivateGroupReference, "1", "1", "PrivateDataElementCharacteristicsSequence");
         getAndCheckElementFromDataset(item, PrivateCreatorReference, "1", "1", "PrivateDataElementCharacteristicsSequence");
+        PrivateDataElementDefinitionSequence.read(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence");
         getAndCheckElementFromDataset(item, BlockIdentifyingInformationStatus, "1", "1", "PrivateDataElementCharacteristicsSequence");
         getAndCheckElementFromDataset(item, NonidentifyingPrivateElements, "1-n", "1C", "PrivateDataElementCharacteristicsSequence");
         DeidentificationActionSequence.read(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence");
@@ -117,6 +123,7 @@ OFCondition DRTPrivateDataElementCharacteristicsSequence::Item::write(DcmItem &i
         result = EC_Normal;
         addElementToDataset(result, item, new DcmUnsignedShort(PrivateGroupReference), "1", "1", "PrivateDataElementCharacteristicsSequence");
         addElementToDataset(result, item, new DcmLongString(PrivateCreatorReference), "1", "1", "PrivateDataElementCharacteristicsSequence");
+        if (result.good()) result = PrivateDataElementDefinitionSequence.write(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence");
         addElementToDataset(result, item, new DcmCodeString(BlockIdentifyingInformationStatus), "1", "1", "PrivateDataElementCharacteristicsSequence");
         addElementToDataset(result, item, new DcmUnsignedShort(NonidentifyingPrivateElements), "1-n", "1C", "PrivateDataElementCharacteristicsSequence");
         if (result.good()) result = DeidentificationActionSequence.write(item, "1-n", "3", "PrivateDataElementCharacteristicsSequence");
diff --git a/dcmrt/libsrc/drtpdeds.cc b/dcmrt/libsrc/drtpdeds.cc
new file mode 100644
index 0000000..927ab5f
--- /dev/null
+++ b/dcmrt/libsrc/drtpdeds.cc
@@ -0,0 +1,764 @@
+/*
+ *
+ *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  Source file for class DRTPrivateDataElementDefinitionSequence
+ *
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
+
+#include "dcmtk/dcmrt/seq/drtpdeds.h"
+
+
+// --- item class ---
+
+DRTPrivateDataElementDefinitionSequence::Item::Item(const OFBool emptyDefaultItem)
+  : EmptyDefaultItem(emptyDefaultItem),
+    PrivateDataElement(DCM_PrivateDataElement),
+    PrivateDataElementDescription(DCM_PrivateDataElementDescription),
+    PrivateDataElementEncoding(DCM_PrivateDataElementEncoding),
+    PrivateDataElementKeyword(DCM_PrivateDataElementKeyword),
+    PrivateDataElementName(DCM_PrivateDataElementName),
+    PrivateDataElementNumberOfItems(DCM_PrivateDataElementNumberOfItems),
+    PrivateDataElementValueMultiplicity(DCM_PrivateDataElementValueMultiplicity),
+    PrivateDataElementValueRepresentation(DCM_PrivateDataElementValueRepresentation),
+    RetrieveURI(DCM_RetrieveURI)
+{
+}
+
+
+DRTPrivateDataElementDefinitionSequence::Item::Item(const Item &copy)
+  : EmptyDefaultItem(copy.EmptyDefaultItem),
+    PrivateDataElement(copy.PrivateDataElement),
+    PrivateDataElementDescription(copy.PrivateDataElementDescription),
+    PrivateDataElementEncoding(copy.PrivateDataElementEncoding),
+    PrivateDataElementKeyword(copy.PrivateDataElementKeyword),
+    PrivateDataElementName(copy.PrivateDataElementName),
+    PrivateDataElementNumberOfItems(copy.PrivateDataElementNumberOfItems),
+    PrivateDataElementValueMultiplicity(copy.PrivateDataElementValueMultiplicity),
+    PrivateDataElementValueRepresentation(copy.PrivateDataElementValueRepresentation),
+    RetrieveURI(copy.RetrieveURI)
+{
+}
+
+
+DRTPrivateDataElementDefinitionSequence::Item::~Item()
+{
+}
+
+
+DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::Item::operator=(const Item &copy)
+{
+    if (this != &copy)
+    {
+        EmptyDefaultItem = copy.EmptyDefaultItem;
+        PrivateDataElement = copy.PrivateDataElement;
+        PrivateDataElementDescription = copy.PrivateDataElementDescription;
+        PrivateDataElementEncoding = copy.PrivateDataElementEncoding;
+        PrivateDataElementKeyword = copy.PrivateDataElementKeyword;
+        PrivateDataElementName = copy.PrivateDataElementName;
+        PrivateDataElementNumberOfItems = copy.PrivateDataElementNumberOfItems;
+        PrivateDataElementValueMultiplicity = copy.PrivateDataElementValueMultiplicity;
+        PrivateDataElementValueRepresentation = copy.PrivateDataElementValueRepresentation;
+        RetrieveURI = copy.RetrieveURI;
+    }
+    return *this;
+}
+
+
+void DRTPrivateDataElementDefinitionSequence::Item::clear()
+{
+    if (!EmptyDefaultItem)
+    {
+        /* clear all DICOM attributes */
+        PrivateDataElement.clear();
+        PrivateDataElementValueMultiplicity.clear();
+        PrivateDataElementValueRepresentation.clear();
+        PrivateDataElementNumberOfItems.clear();
+        PrivateDataElementKeyword.clear();
+        PrivateDataElementName.clear();
+        PrivateDataElementDescription.clear();
+        PrivateDataElementEncoding.clear();
+        RetrieveURI.clear();
+    }
+}
+
+
+OFBool DRTPrivateDataElementDefinitionSequence::Item::isEmpty()
+{
+    return PrivateDataElement.isEmpty() &&
+           PrivateDataElementValueMultiplicity.isEmpty() &&
+           PrivateDataElementValueRepresentation.isEmpty() &&
+           PrivateDataElementNumberOfItems.isEmpty() &&
+           PrivateDataElementKeyword.isEmpty() &&
+           PrivateDataElementName.isEmpty() &&
+           PrivateDataElementDescription.isEmpty() &&
+           PrivateDataElementEncoding.isEmpty() &&
+           RetrieveURI.isEmpty();
+}
+
+
+OFBool DRTPrivateDataElementDefinitionSequence::Item::isValid() const
+{
+    return !EmptyDefaultItem;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::read(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        /* re-initialize object */
+        clear();
+        getAndCheckElementFromDataset(item, PrivateDataElement, "1", "1", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementValueMultiplicity, "1-3", "1", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementValueRepresentation, "1", "1", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementNumberOfItems, "1-2", "1C", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementKeyword, "1", "1", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementName, "1", "1", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementDescription, "1", "3", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, PrivateDataElementEncoding, "1", "3", "PrivateDataElementDefinitionSequence");
+        getAndCheckElementFromDataset(item, RetrieveURI, "1", "3", "PrivateDataElementDefinitionSequence");
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::write(DcmItem &item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = EC_Normal;
+        addElementToDataset(result, item, new DcmUnsignedShort(PrivateDataElement), "1", "1", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUnsignedLong(PrivateDataElementValueMultiplicity), "1-3", "1", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmCodeString(PrivateDataElementValueRepresentation), "1", "1", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUnsignedLong(PrivateDataElementNumberOfItems), "1-2", "1C", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUnlimitedCharacters(PrivateDataElementKeyword), "1", "1", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUnlimitedCharacters(PrivateDataElementName), "1", "1", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUnlimitedText(PrivateDataElementDescription), "1", "3", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUnlimitedText(PrivateDataElementEncoding), "1", "3", "PrivateDataElementDefinitionSequence");
+        addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(RetrieveURI), "1", "3", "PrivateDataElementDefinitionSequence");
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElement(Uint16 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmUnsignedShort &, PrivateDataElement).getUint16(value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementDescription(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PrivateDataElementDescription, value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementEncoding(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PrivateDataElementEncoding, value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementKeyword(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PrivateDataElementKeyword, value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PrivateDataElementName, value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementNumberOfItems(Uint32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmUnsignedLong &, PrivateDataElementNumberOfItems).getUint32(value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementValueMultiplicity(Uint32 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmUnsignedLong &, PrivateDataElementValueMultiplicity).getUint32(value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getPrivateDataElementValueRepresentation(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(PrivateDataElementValueRepresentation, value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::getRetrieveURI(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(RetrieveURI, value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElement(const Uint16 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return PrivateDataElement.putUint16(value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+        if (result.good())
+            result = PrivateDataElementDescription.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementEncoding(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+        if (result.good())
+            result = PrivateDataElementEncoding.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementKeyword(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = PrivateDataElementKeyword.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = PrivateDataElementName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementNumberOfItems(const Uint32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return PrivateDataElementNumberOfItems.putUint32(value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementValueMultiplicity(const Uint32 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return PrivateDataElementValueMultiplicity.putUint32(value, pos);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setPrivateDataElementValueRepresentation(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = PrivateDataElementValueRepresentation.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::Item::setRetrieveURI(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmUniversalResourceIdentifierOrLocator::checkStringValue(value) : EC_Normal;
+        if (result.good())
+            result = RetrieveURI.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+// --- sequence class ---
+
+DRTPrivateDataElementDefinitionSequence::DRTPrivateDataElementDefinitionSequence(const OFBool emptyDefaultSequence)
+  : EmptyDefaultSequence(emptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    CurrentItem = SequenceOfItems.end();
+}
+
+
+DRTPrivateDataElementDefinitionSequence::DRTPrivateDataElementDefinitionSequence(const DRTPrivateDataElementDefinitionSequence &copy)
+  : EmptyDefaultSequence(copy.EmptyDefaultSequence),
+    SequenceOfItems(),
+    CurrentItem(),
+    EmptyItem(OFTrue /*emptyDefaultItem*/)
+{
+    /* create a copy of the internal sequence of items */
+    Item *item = NULL;
+    OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+    const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+    while (current != last)
+    {
+        item = new Item(**current);
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+        } else {
+            /* memory exhausted, there is nothing we can do about it */
+            break;
+        }
+        ++current;
+    }
+    CurrentItem = SequenceOfItems.begin();
+}
+
+
+DRTPrivateDataElementDefinitionSequence &DRTPrivateDataElementDefinitionSequence::operator=(const DRTPrivateDataElementDefinitionSequence &copy)
+{
+    if (this != &copy)
+    {
+        clear();
+        EmptyDefaultSequence = copy.EmptyDefaultSequence;
+        /* create a copy of the internal sequence of items */
+        Item *item = NULL;
+        OFListConstIterator(Item *) current = copy.SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = copy.SequenceOfItems.end();
+        while (current != last)
+        {
+            item = new Item(**current);
+            if (item != NULL)
+            {
+                SequenceOfItems.push_back(item);
+            } else {
+                /* memory exhausted, there is nothing we can do about it */
+                break;
+            }
+            ++current;
+        }
+        CurrentItem = SequenceOfItems.begin();
+    }
+    return *this;
+}
+
+
+DRTPrivateDataElementDefinitionSequence::~DRTPrivateDataElementDefinitionSequence()
+{
+    clear();
+}
+
+
+void DRTPrivateDataElementDefinitionSequence::clear()
+{
+    if (!EmptyDefaultSequence)
+    {
+        CurrentItem = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        /* delete all items and free memory */
+        while (CurrentItem != last)
+        {
+            delete (*CurrentItem);
+            CurrentItem = SequenceOfItems.erase(CurrentItem);
+        }
+        /* make sure that the list is empty */
+        SequenceOfItems.clear();
+        CurrentItem = SequenceOfItems.end();
+    }
+}
+
+
+OFBool DRTPrivateDataElementDefinitionSequence::isEmpty()
+{
+    return SequenceOfItems.empty();
+}
+
+
+OFBool DRTPrivateDataElementDefinitionSequence::isValid() const
+{
+    return !EmptyDefaultSequence;
+}
+
+
+unsigned long DRTPrivateDataElementDefinitionSequence::getNumberOfItems() const
+{
+    return SequenceOfItems.size();
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::gotoFirstItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        CurrentItem = SequenceOfItems.begin();
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::gotoNextItem()
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        ++CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (!SequenceOfItems.empty())
+    {
+        unsigned long idx = num + 1;
+        iterator = SequenceOfItems.begin();
+        const OFListConstIterator(Item *) last = SequenceOfItems.end();
+        while ((--idx > 0) && (iterator != last))
+            ++iterator;
+        /* specified list item found? */
+        if ((idx == 0) && (iterator != last))
+            result = EC_Normal;
+        else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::gotoItem(const unsigned long num)
+{
+    return gotoItem(num, CurrentItem);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::getCurrentItem(Item *&item) const
+{
+    OFCondition result = EC_IllegalCall;
+    if (CurrentItem != SequenceOfItems.end())
+    {
+        item = *CurrentItem;
+        result = EC_Normal;
+    }
+    return result;
+}
+
+
+DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getCurrentItem()
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+const DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getCurrentItem() const
+{
+    if (CurrentItem != SequenceOfItems.end())
+        return **CurrentItem;
+    else
+        return EmptyItem;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::getItem(const unsigned long num, Item *&item)
+{
+    OFListIterator(Item *) iterator;
+    OFCondition result = gotoItem(num, iterator);
+    if (result.good())
+        item = *iterator;
+    return result;
+}
+
+
+DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getItem(const unsigned long num)
+{
+    OFListIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+const DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::getItem(const unsigned long num) const
+{
+    OFListConstIterator(Item *) iterator;
+    if (gotoItem(num, iterator).good())
+        return **iterator;
+    else
+        return EmptyItem;
+}
+
+
+DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::operator[](const unsigned long num)
+{
+    return getItem(num);
+}
+
+
+const DRTPrivateDataElementDefinitionSequence::Item &DRTPrivateDataElementDefinitionSequence::operator[](const unsigned long num) const
+{
+    return getItem(num);
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::addItem(Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        item = new Item();
+        if (item != NULL)
+        {
+            SequenceOfItems.push_back(item);
+            result = EC_Normal;
+        } else
+            result = EC_MemoryExhausted;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::insertItem(const unsigned long pos, Item *&item)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        result = gotoItem(pos, iterator);
+        if (result.good())
+        {
+            item = new Item();
+            if (item != NULL)
+            {
+                SequenceOfItems.insert(iterator, 1, item);
+                result = EC_Normal;
+            } else
+                result = EC_MemoryExhausted;
+        } else
+            result = addItem(item);
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::removeItem(const unsigned long pos)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        OFListIterator(Item *) iterator;
+        if (gotoItem(pos, iterator).good())
+        {
+            delete *iterator;
+            iterator = SequenceOfItems.erase(iterator);
+            result = EC_Normal;
+        } else
+            result = EC_IllegalParameter;
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::read(DcmItem &dataset,
+                                                          const OFString &card,
+                                                          const OFString &type,
+                                                          const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        /* re-initialize object */
+        clear();
+        /* retrieve sequence element from dataset */
+        DcmSequenceOfItems *sequence;
+        result = dataset.findAndGetSequence(DCM_PrivateDataElementDefinitionSequence, sequence);
+        if (sequence != NULL)
+        {
+            if (checkElementValue(*sequence, card, type, result, moduleName))
+            {
+                DcmStack stack;
+                OFBool first = OFTrue;
+                /* iterate over all sequence items */
+                while (result.good() && sequence->nextObject(stack, first /*intoSub*/).good())
+                {
+                    DcmItem *ditem = OFstatic_cast(DcmItem *, stack.top());
+                    if (ditem != NULL)
+                    {
+                        Item *item = new Item();
+                        if (item != NULL)
+                        {
+                            result = item->read(*ditem);
+                            if (result.good())
+                            {
+                                /* append new item to the end of the list */
+                                SequenceOfItems.push_back(item);
+                                first = OFFalse;
+                            }
+                        } else
+                            result = EC_MemoryExhausted;
+                    } else
+                        result = EC_CorruptedData;
+                }
+            }
+        } else {
+            DcmSequenceOfItems element(DCM_PrivateDataElementDefinitionSequence);
+            checkElementValue(element, card, type, result, moduleName);
+        }
+    }
+    return result;
+}
+
+
+OFCondition DRTPrivateDataElementDefinitionSequence::write(DcmItem &dataset,
+                                                           const OFString &card,
+                                                           const OFString &type,
+                                                           const char *moduleName)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultSequence)
+    {
+        result = EC_MemoryExhausted;
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_PrivateDataElementDefinitionSequence);
+        if (sequence != NULL)
+        {
+            result = EC_Normal;
+            /* an empty optional sequence is not written */
+            if ((type == "2") || !SequenceOfItems.empty())
+            {
+                OFListIterator(Item *) iterator = SequenceOfItems.begin();
+                const OFListConstIterator(Item *) last = SequenceOfItems.end();
+                /* iterate over all sequence items */
+                while (result.good() && (iterator != last))
+                {
+                    DcmItem *item = new DcmItem();
+                    if (item != NULL)
+                    {
+                        /* append new item to the end of the sequence */
+                        result = sequence->append(item);
+                        if (result.good())
+                        {
+                            result = (*iterator)->write(*item);
+                            ++iterator;
+                        } else
+                            delete item;
+                    } else
+                        result = EC_MemoryExhausted;
+                }
+                if (result.good())
+                {
+                    /* insert sequence element into the dataset */
+                    result = dataset.insert(sequence, OFTrue /*replaceOld*/);
+                }
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+                if (result.good())
+                {
+                    /* forget reference to sequence object (avoid deletion below) */
+                    sequence = NULL;
+                }
+            }
+            else if (type == "1")
+            {
+                /* empty type 1 sequence not allowed */
+                result = RT_EC_InvalidValue;
+                if (DCM_dcmrtLogger.isEnabledFor(OFLogger::WARN_LOG_LEVEL))
+                    checkElementValue(*sequence, card, type, result, moduleName);
+            }
+            /* delete sequence (if not inserted into the dataset) */
+            delete sequence;
+        }
+    }
+    return result;
+}
+
+
+// end of source file
diff --git a/dcmrt/libsrc/drtpfms.cc b/dcmrt/libsrc/drtpfms.cc
index 0db5bd3..4c3a6c4 100644
--- a/dcmrt/libsrc/drtpfms.cc
+++ b/dcmrt/libsrc/drtpfms.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPrimaryFluenceModeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtpics.cc b/dcmrt/libsrc/drtpics.cc
index 77b1ad8..fbb7efe 100644
--- a/dcmrt/libsrc/drtpics.cc
+++ b/dcmrt/libsrc/drtpics.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPersonIdentificationCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTPersonIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTPersonIdentificationCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTPersonIdentificationCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTPersonIdentificationCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PersonIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PersonIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PersonIdentificationCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PersonIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PersonIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PersonIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PersonIdentificationCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PersonIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PersonIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PersonIdentificationCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PersonIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PersonIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PersonIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PersonIdentificationCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResource(OFStri
 }
 
 
+OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResource(const
 }
 
 
+OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtplan.cc b/dcmrt/libsrc/drtplan.cc
index 63968f1..0f05bf8 100644
--- a/dcmrt/libsrc/drtplan.cc
+++ b/dcmrt/libsrc/drtplan.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPlanIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTPlanIOD::DRTPlanIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTPlanIOD::DRTPlanIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -77,7 +87,16 @@ DRTPlanIOD::DRTPlanIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTPlanIOD::DRTPlanIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -121,6 +141,7 @@ DRTPlanIOD::DRTPlanIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -138,6 +159,7 @@ DRTPlanIOD::DRTPlanIOD()
     ReferencedStructureSetSequence(),
     ReferencedDoseSequence(),
     ReferencedRTPlanSequence(),
+    FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(DCM_FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix),
     PrescriptionDescription(DCM_PrescriptionDescription),
     DoseReferenceSequence(),
     ToleranceTableSequence(),
@@ -153,6 +175,12 @@ DRTPlanIOD::DRTPlanIOD()
     ReviewDate(DCM_ReviewDate),
     ReviewTime(DCM_ReviewTime),
     ReviewerName(DCM_ReviewerName),
+    ReferencedImageSequence(),
+    ReferencedInstanceSequence(),
+    DerivationDescription(DCM_DerivationDescription),
+    DerivationCodeSequence(),
+    SourceImageSequence(),
+    SourceInstanceSequence(),
     SOPClassUID(DCM_SOPClassUID),
     SOPInstanceUID(DCM_SOPInstanceUID),
     SpecificCharacterSet(DCM_SpecificCharacterSet),
@@ -163,6 +191,8 @@ DRTPlanIOD::DRTPlanIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -193,6 +223,9 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -208,12 +241,19 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -247,7 +287,16 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -267,6 +316,7 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -291,6 +341,7 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -308,6 +359,7 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     ReferencedStructureSetSequence(copy.ReferencedStructureSetSequence),
     ReferencedDoseSequence(copy.ReferencedDoseSequence),
     ReferencedRTPlanSequence(copy.ReferencedRTPlanSequence),
+    FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix),
     PrescriptionDescription(copy.PrescriptionDescription),
     DoseReferenceSequence(copy.DoseReferenceSequence),
     ToleranceTableSequence(copy.ToleranceTableSequence),
@@ -323,6 +375,12 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     ReviewDate(copy.ReviewDate),
     ReviewTime(copy.ReviewTime),
     ReviewerName(copy.ReviewerName),
+    ReferencedImageSequence(copy.ReferencedImageSequence),
+    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
+    DerivationDescription(copy.DerivationDescription),
+    DerivationCodeSequence(copy.DerivationCodeSequence),
+    SourceImageSequence(copy.SourceImageSequence),
+    SourceInstanceSequence(copy.SourceInstanceSequence),
     SOPClassUID(copy.SOPClassUID),
     SOPInstanceUID(copy.SOPInstanceUID),
     SpecificCharacterSet(copy.SpecificCharacterSet),
@@ -333,6 +391,8 @@ DRTPlanIOD::DRTPlanIOD(const DRTPlanIOD &copy)
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -369,6 +429,9 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -384,12 +447,19 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -423,7 +493,16 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -443,6 +522,7 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -467,6 +547,7 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -484,6 +565,7 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         ReferencedStructureSetSequence = copy.ReferencedStructureSetSequence;
         ReferencedDoseSequence = copy.ReferencedDoseSequence;
         ReferencedRTPlanSequence = copy.ReferencedRTPlanSequence;
+        FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix = copy.FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix;
         PrescriptionDescription = copy.PrescriptionDescription;
         DoseReferenceSequence = copy.DoseReferenceSequence;
         ToleranceTableSequence = copy.ToleranceTableSequence;
@@ -499,6 +581,12 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         ReviewDate = copy.ReviewDate;
         ReviewTime = copy.ReviewTime;
         ReviewerName = copy.ReviewerName;
+        ReferencedImageSequence = copy.ReferencedImageSequence;
+        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
+        DerivationDescription = copy.DerivationDescription;
+        DerivationCodeSequence = copy.DerivationCodeSequence;
+        SourceImageSequence = copy.SourceImageSequence;
+        SourceInstanceSequence = copy.SourceInstanceSequence;
         SOPClassUID = copy.SOPClassUID;
         SOPInstanceUID = copy.SOPInstanceUID;
         SpecificCharacterSet = copy.SpecificCharacterSet;
@@ -509,6 +597,8 @@ DRTPlanIOD &DRTPlanIOD::operator=(const DRTPlanIOD &copy)
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -540,6 +630,9 @@ void DRTPlanIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -555,12 +648,19 @@ void DRTPlanIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -594,7 +694,16 @@ void DRTPlanIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -614,6 +723,7 @@ void DRTPlanIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -638,6 +748,7 @@ void DRTPlanIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -655,6 +766,7 @@ void DRTPlanIOD::clear()
     ReferencedStructureSetSequence.clear();
     ReferencedDoseSequence.clear();
     ReferencedRTPlanSequence.clear();
+    FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.clear();
     PrescriptionDescription.clear();
     DoseReferenceSequence.clear();
     ToleranceTableSequence.clear();
@@ -670,6 +782,12 @@ void DRTPlanIOD::clear()
     ReviewDate.clear();
     ReviewTime.clear();
     ReviewerName.clear();
+    ReferencedImageSequence.clear();
+    ReferencedInstanceSequence.clear();
+    DerivationDescription.clear();
+    DerivationCodeSequence.clear();
+    SourceImageSequence.clear();
+    SourceInstanceSequence.clear();
     SOPClassUID.clear();
     SOPInstanceUID.clear();
     SpecificCharacterSet.clear();
@@ -680,6 +798,8 @@ void DRTPlanIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -763,6 +883,7 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -782,6 +903,7 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset)
         ReferencedStructureSetSequence.read(dataset, "1-n", "1C", "RTGeneralPlanModule");
         ReferencedDoseSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule");
         ReferencedRTPlanSequence.read(dataset, "1-n", "3", "RTGeneralPlanModule");
+        getAndCheckElementFromDataset(dataset, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix, "16", "3", "RTGeneralPlanModule");
 
         // --- RTPrescriptionModule (U) ---
         getAndCheckElementFromDataset(dataset, PrescriptionDescription, "1", "3", "RTPrescriptionModule");
@@ -831,6 +953,14 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset)
             getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
+        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+
         // --- SOPCommonModule (M) ---
         getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule");
@@ -842,6 +972,8 @@ OFCondition DRTPlanIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -878,6 +1010,9 @@ OFCondition DRTPlanIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -893,12 +1028,19 @@ OFCondition DRTPlanIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -954,7 +1096,16 @@ OFCondition DRTPlanIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -991,6 +1142,7 @@ OFCondition DRTPlanIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -1029,6 +1181,9 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -1044,12 +1199,19 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -1094,7 +1256,16 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -1122,6 +1293,7 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1158,6 +1330,7 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1177,6 +1350,7 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
         if (result.good()) result = ReferencedStructureSetSequence.write(dataset, "1-n" ,"1C", "RTGeneralPlanModule");
         if (result.good()) result = ReferencedDoseSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule");
         if (result.good()) result = ReferencedRTPlanSequence.write(dataset, "1-n" ,"3", "RTGeneralPlanModule");
+        addElementToDataset(result, dataset, new DcmFloatingPointDouble(FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix), "16", "3", "RTGeneralPlanModule");
 
         // --- RTPrescriptionModule (U) ---
         if (isRTPrescriptionModulePresent(OFFalse /*complete*/))
@@ -1228,6 +1402,17 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
+        {
+            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
+            if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+        }
+
         // --- SOPCommonModule (M) ---
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule");
@@ -1239,6 +1424,8 @@ OFCondition DRTPlanIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1299,7 +1486,16 @@ OFBool DRTPlanIOD::isPatientStudyModulePresent(const OFBool /*complete*/)
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1416,6 +1612,18 @@ OFBool DRTPlanIOD::isApprovalModulePresent(const OFBool complete)
 }
 
 
+OFBool DRTPlanIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
+{
+    /* check whether at least one attribute is present */
+    return !ReferencedImageSequence.isEmpty() ||
+           !ReferencedInstanceSequence.isEmpty() ||
+           !DerivationDescription.isEmpty() ||
+           !DerivationCodeSequence.isEmpty() ||
+           !SourceImageSequence.isEmpty() ||
+           !SourceInstanceSequence.isEmpty();
+}
+
+
 OFBool DRTPlanIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/)
 {
     /* check whether at least one attribute is present */
@@ -1448,6 +1656,12 @@ OFCondition DRTPlanIOD::getAdmittingDiagnosesDescription(OFString &value, const
 }
 
 
+OFCondition DRTPlanIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getApprovalStatus(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(ApprovalStatus, value, pos);
@@ -1586,6 +1800,12 @@ OFCondition DRTPlanIOD::getDeidentificationMethod(OFString &value, const signed
 }
 
 
+OFCondition DRTPlanIOD::getDerivationDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(DerivationDescription, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(DeviceSerialNumber, value, pos);
@@ -1598,6 +1818,12 @@ OFCondition DRTPlanIOD::getEthnicGroup(OFString &value, const signed long pos) c
 }
 
 
+OFCondition DRTPlanIOD::getFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmFloatingPointDouble &, FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix).getFloat64(value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getFrameOfReferenceUID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(FrameOfReferenceUID, value, pos);
@@ -1670,6 +1896,12 @@ OFCondition DRTPlanIOD::getIssuerOfPatientID(OFString &value, const signed long
 }
 
 
+OFCondition DRTPlanIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -1688,6 +1920,36 @@ OFCondition DRTPlanIOD::getManufacturerModelName(OFString &value, const signed l
 }
 
 
+OFCondition DRTPlanIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -1736,18 +1998,42 @@ OFCondition DRTPlanIOD::getPatientAge(OFString &value, const signed long pos) co
 }
 
 
+OFCondition DRTPlanIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTPlanIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTPlanIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -1760,6 +2046,12 @@ OFCondition DRTPlanIOD::getPatientComments(OFString &value, const signed long po
 }
 
 
+OFCondition DRTPlanIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -1808,6 +2100,12 @@ OFCondition DRTPlanIOD::getPatientSpeciesDescription(OFString &value, const sign
 }
 
 
+OFCondition DRTPlanIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getPatientWeight(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientWeight, value, pos);
@@ -1880,6 +2178,12 @@ OFCondition DRTPlanIOD::getPositionReferenceIndicator(OFString &value, const sig
 }
 
 
+OFCondition DRTPlanIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getPrescriptionDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PrescriptionDescription, value, pos);
@@ -2060,6 +2364,12 @@ OFCondition DRTPlanIOD::getServiceEpisodeID(OFString &value, const signed long p
 }
 
 
+OFCondition DRTPlanIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -2090,6 +2400,24 @@ OFCondition DRTPlanIOD::getStationName(OFString &value, const signed long pos) c
 }
 
 
+OFCondition DRTPlanIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTPlanIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTPlanIOD::getStudyDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StudyDate, value, pos);
@@ -2180,6 +2508,15 @@ OFCondition DRTPlanIOD::setAdmittingDiagnosesDescription(const OFString &value,
 }
 
 
+OFCondition DRTPlanIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setApprovalStatus(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2387,6 +2724,15 @@ OFCondition DRTPlanIOD::setDeidentificationMethod(const OFString &value, const O
 }
 
 
+OFCondition DRTPlanIOD::setDerivationDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = DerivationDescription.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2405,6 +2751,12 @@ OFCondition DRTPlanIOD::setEthnicGroup(const OFString &value, const OFBool check
 }
 
 
+OFCondition DRTPlanIOD::setFrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix(const Float64 value, const unsigned long pos)
+{
+    return FrameOfReferenceToDisplayedCoordinateSystemTransformationMatrix.putFloat64(value, pos);
+}
+
+
 OFCondition DRTPlanIOD::setFrameOfReferenceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmUniqueIdentifier::checkStringValue(value, "1") : EC_Normal;
@@ -2504,6 +2856,15 @@ OFCondition DRTPlanIOD::setIssuerOfPatientID(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTPlanIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2531,6 +2892,33 @@ OFCondition DRTPlanIOD::setManufacturerModelName(const OFString &value, const OF
 }
 
 
+OFCondition DRTPlanIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTPlanIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTPlanIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2603,6 +2991,15 @@ OFCondition DRTPlanIOD::setPatientAge(const OFString &value, const OFBool check)
 }
 
 
+OFCondition DRTPlanIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -2612,6 +3009,15 @@ OFCondition DRTPlanIOD::setPatientBirthDate(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTPlanIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -2621,6 +3027,15 @@ OFCondition DRTPlanIOD::setPatientBirthTime(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTPlanIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2639,6 +3054,15 @@ OFCondition DRTPlanIOD::setPatientComments(const OFString &value, const OFBool c
 }
 
 
+OFCondition DRTPlanIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2702,6 +3126,15 @@ OFCondition DRTPlanIOD::setPatientSpeciesDescription(const OFString &value, cons
 }
 
 
+OFCondition DRTPlanIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setPatientWeight(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -2798,6 +3231,12 @@ OFCondition DRTPlanIOD::setPositionReferenceIndicator(const OFString &value, con
 }
 
 
+OFCondition DRTPlanIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTPlanIOD::setPrescriptionDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
@@ -3059,6 +3498,15 @@ OFCondition DRTPlanIOD::setServiceEpisodeID(const OFString &value, const OFBool
 }
 
 
+OFCondition DRTPlanIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -3095,6 +3543,33 @@ OFCondition DRTPlanIOD::setStationName(const OFString &value, const OFBool check
 }
 
 
+OFCondition DRTPlanIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTPlanIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTPlanIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTPlanIOD::setStudyDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
diff --git a/dcmrt/libsrc/drtporcs.cc b/dcmrt/libsrc/drtporcs.cc
index 7543d60..8bcc50d 100644
--- a/dcmrt/libsrc/drtporcs.cc
+++ b/dcmrt/libsrc/drtporcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPurposeOfReferenceCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTPurposeOfReferenceCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTPurposeOfReferenceCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTPurposeOfReferenceCodeSequence::Item &DRTPurposeOfReferenceCodeSequence::Item
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTPurposeOfReferenceCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTPurposeOfReferenceCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PurposeOfReferenceCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PurposeOfReferenceCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PurposeOfReferenceCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PurposeOfReferenceCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PurposeOfReferenceCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PurposeOfReferenceCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PurposeOfReferenceCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PurposeOfReferenceCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PurposeOfReferenceCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PurposeOfReferenceCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PurposeOfReferenceCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PurposeOfReferenceCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PurposeOfReferenceCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PurposeOfReferenceCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTPurposeOfReferenceCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTPurposeOfReferenceCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTPurposeOfReferenceCodeSequence::Item::setMappingResource(const OF
 }
 
 
+OFCondition DRTPurposeOfReferenceCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTPurposeOfReferenceCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtporis.cc b/dcmrt/libsrc/drtporis.cc
index baa1c80..c05a992 100644
--- a/dcmrt/libsrc/drtporis.cc
+++ b/dcmrt/libsrc/drtporis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPhysiciansOfRecordIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtppcs.cc b/dcmrt/libsrc/drtppcs.cc
index 9180bdd..cfdff50 100644
--- a/dcmrt/libsrc/drtppcs.cc
+++ b/dcmrt/libsrc/drtppcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPerformedProtocolCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTPerformedProtocolCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     ProtocolContextSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     URNCodeValue(DCM_URNCodeValue)
@@ -56,6 +57,7 @@ DRTPerformedProtocolCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     ProtocolContextSequence(copy.ProtocolContextSequence),
     URNCodeValue(copy.URNCodeValue)
@@ -86,6 +88,7 @@ DRTPerformedProtocolCodeSequence::Item &DRTPerformedProtocolCodeSequence::Item::
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         ProtocolContextSequence = copy.ProtocolContextSequence;
         URNCodeValue = copy.URNCodeValue;
@@ -110,6 +113,7 @@ void DRTPerformedProtocolCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -132,6 +136,7 @@ OFBool DRTPerformedProtocolCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -164,6 +169,7 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PerformedProtocolCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PerformedProtocolCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PerformedProtocolCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PerformedProtocolCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PerformedProtocolCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PerformedProtocolCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PerformedProtocolCodeSequence");
@@ -192,6 +198,7 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PerformedProtocolCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PerformedProtocolCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PerformedProtocolCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PerformedProtocolCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PerformedProtocolCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PerformedProtocolCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PerformedProtocolCodeSequence");
@@ -310,6 +317,15 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTPerformedProtocolCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTPerformedProtocolCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -484,6 +500,19 @@ OFCondition DRTPerformedProtocolCodeSequence::Item::setMappingResource(const OFS
 }
 
 
+OFCondition DRTPerformedProtocolCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTPerformedProtocolCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtprsis.cc b/dcmrt/libsrc/drtprsis.cc
index bb30d25..cfb961b 100644
--- a/dcmrt/libsrc/drtprsis.cc
+++ b/dcmrt/libsrc/drtprsis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPhysiciansReadingStudyIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtpscs.cc b/dcmrt/libsrc/drtpscs.cc
index 8ea5480..7606bc8 100644
--- a/dcmrt/libsrc/drtpscs.cc
+++ b/dcmrt/libsrc/drtpscs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPatientSpeciesCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTPatientSpeciesCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTPatientSpeciesCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTPatientSpeciesCodeSequence::Item &DRTPatientSpeciesCodeSequence::Item::operat
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTPatientSpeciesCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTPatientSpeciesCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PatientSpeciesCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PatientSpeciesCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PatientSpeciesCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PatientSpeciesCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PatientSpeciesCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PatientSpeciesCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PatientSpeciesCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PatientSpeciesCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PatientSpeciesCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PatientSpeciesCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PatientSpeciesCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PatientSpeciesCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PatientSpeciesCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PatientSpeciesCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::getMappingResource(OFString &va
 }
 
 
+OFCondition DRTPatientSpeciesCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTPatientSpeciesCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTPatientSpeciesCodeSequence::Item::setMappingResource(const OFStri
 }
 
 
+OFCondition DRTPatientSpeciesCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTPatientSpeciesCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtpsics.cc b/dcmrt/libsrc/drtpsics.cc
index d35b732..1643e84 100644
--- a/dcmrt/libsrc/drtpsics.cc
+++ b/dcmrt/libsrc/drtpsics.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPatientSizeCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTPatientSizeCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTPatientSizeCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTPatientSizeCodeSequence::Item &DRTPatientSizeCodeSequence::Item::operator=(co
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTPatientSizeCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTPatientSizeCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTPatientSizeCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PatientSizeCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PatientSizeCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PatientSizeCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "PatientSizeCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PatientSizeCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PatientSizeCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PatientSizeCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTPatientSizeCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PatientSizeCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PatientSizeCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PatientSizeCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "PatientSizeCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PatientSizeCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PatientSizeCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PatientSizeCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTPatientSizeCodeSequence::Item::getMappingResource(OFString &value
 }
 
 
+OFCondition DRTPatientSizeCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTPatientSizeCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTPatientSizeCodeSequence::Item::setMappingResource(const OFString
 }
 
 
+OFCondition DRTPatientSizeCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTPatientSizeCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtpss.cc b/dcmrt/libsrc/drtpss.cc
index d33128f..20b7461 100644
--- a/dcmrt/libsrc/drtpss.cc
+++ b/dcmrt/libsrc/drtpss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPatientSetupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtpsss.cc b/dcmrt/libsrc/drtpsss.cc
index e036f82..e36717f 100644
--- a/dcmrt/libsrc/drtpsss.cc
+++ b/dcmrt/libsrc/drtpsss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPredecessorStructureSetSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtpvis.cc b/dcmrt/libsrc/drtpvis.cc
index 11689b3..27316d1 100644
--- a/dcmrt/libsrc/drtpvis.cc
+++ b/dcmrt/libsrc/drtpvis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTPlannedVerificationImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtqds.cc b/dcmrt/libsrc/drtqds.cc
index 2f35e33..3a3696a 100644
--- a/dcmrt/libsrc/drtqds.cc
+++ b/dcmrt/libsrc/drtqds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTQuantityDefinitionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtras.cc b/dcmrt/libsrc/drtras.cc
index 5f9a1e7..7fef16c 100644
--- a/dcmrt/libsrc/drtras.cc
+++ b/dcmrt/libsrc/drtras.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRequestAttributesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrbas2.cc b/dcmrt/libsrc/drtrbas2.cc
index 361f0c5..a5fd700 100644
--- a/dcmrt/libsrc/drtrbas2.cc
+++ b/dcmrt/libsrc/drtrbas2.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBrachyApplicationSetupSequenceInRTDoseModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrbas8.cc b/dcmrt/libsrc/drtrbas8.cc
index 58051ea..479b65b 100644
--- a/dcmrt/libsrc/drtrbas8.cc
+++ b/dcmrt/libsrc/drtrbas8.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBrachyApplicationSetupSequenceInRTFractionSchemeModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrbls.cc b/dcmrt/libsrc/drtrbls.cc
index 5325428..8531845 100644
--- a/dcmrt/libsrc/drtrbls.cc
+++ b/dcmrt/libsrc/drtrbls.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedBlockSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrbos1.cc b/dcmrt/libsrc/drtrbos1.cc
index aae8b6a..6fb8762 100644
--- a/dcmrt/libsrc/drtrbos1.cc
+++ b/dcmrt/libsrc/drtrbos1.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBolusSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrbos6.cc b/dcmrt/libsrc/drtrbos6.cc
index 306e642..889c92e 100644
--- a/dcmrt/libsrc/drtrbos6.cc
+++ b/dcmrt/libsrc/drtrbos6.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBolusSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrbos7.cc b/dcmrt/libsrc/drtrbos7.cc
index 3b04a4c..e139bcb 100644
--- a/dcmrt/libsrc/drtrbos7.cc
+++ b/dcmrt/libsrc/drtrbos7.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBolusSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrbs2.cc b/dcmrt/libsrc/drtrbs2.cc
index 67a0c56..1b34d07 100644
--- a/dcmrt/libsrc/drtrbs2.cc
+++ b/dcmrt/libsrc/drtrbs2.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBeamSequenceInRTDoseModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrbs4.cc b/dcmrt/libsrc/drtrbs4.cc
index 54bc29e..cad82ea 100644
--- a/dcmrt/libsrc/drtrbs4.cc
+++ b/dcmrt/libsrc/drtrbs4.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -21,9 +21,12 @@
 
 DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
+    AlternateBeamDose(DCM_AlternateBeamDose),
+    AlternateBeamDoseType(DCM_AlternateBeamDoseType),
     BeamDeliveryDurationLimit(DCM_BeamDeliveryDurationLimit),
     BeamDose(DCM_BeamDose),
     BeamDoseSpecificationPoint(DCM_BeamDoseSpecificationPoint),
+    BeamDoseType(DCM_BeamDoseType),
     BeamDoseVerificationControlPointSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     BeamMeterset(DCM_BeamMeterset),
     ReferencedBeamNumber(DCM_ReferencedBeamNumber)
@@ -33,9 +36,12 @@ DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::Item(const OFBo
 
 DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
+    AlternateBeamDose(copy.AlternateBeamDose),
+    AlternateBeamDoseType(copy.AlternateBeamDoseType),
     BeamDeliveryDurationLimit(copy.BeamDeliveryDurationLimit),
     BeamDose(copy.BeamDose),
     BeamDoseSpecificationPoint(copy.BeamDoseSpecificationPoint),
+    BeamDoseType(copy.BeamDoseType),
     BeamDoseVerificationControlPointSequence(copy.BeamDoseVerificationControlPointSequence),
     BeamMeterset(copy.BeamMeterset),
     ReferencedBeamNumber(copy.ReferencedBeamNumber)
@@ -53,9 +59,12 @@ DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item &DRTReferencedBe
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
+        AlternateBeamDose = copy.AlternateBeamDose;
+        AlternateBeamDoseType = copy.AlternateBeamDoseType;
         BeamDeliveryDurationLimit = copy.BeamDeliveryDurationLimit;
         BeamDose = copy.BeamDose;
         BeamDoseSpecificationPoint = copy.BeamDoseSpecificationPoint;
+        BeamDoseType = copy.BeamDoseType;
         BeamDoseVerificationControlPointSequence = copy.BeamDoseVerificationControlPointSequence;
         BeamMeterset = copy.BeamMeterset;
         ReferencedBeamNumber = copy.ReferencedBeamNumber;
@@ -72,6 +81,9 @@ void DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::clear()
         ReferencedBeamNumber.clear();
         BeamDoseSpecificationPoint.clear();
         BeamDose.clear();
+        BeamDoseType.clear();
+        AlternateBeamDose.clear();
+        AlternateBeamDoseType.clear();
         BeamDoseVerificationControlPointSequence.clear();
         BeamMeterset.clear();
         BeamDeliveryDurationLimit.clear();
@@ -84,6 +96,9 @@ OFBool DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::isEmpty(
     return ReferencedBeamNumber.isEmpty() &&
            BeamDoseSpecificationPoint.isEmpty() &&
            BeamDose.isEmpty() &&
+           BeamDoseType.isEmpty() &&
+           AlternateBeamDose.isEmpty() &&
+           AlternateBeamDoseType.isEmpty() &&
            BeamDoseVerificationControlPointSequence.isEmpty() &&
            BeamMeterset.isEmpty() &&
            BeamDeliveryDurationLimit.isEmpty();
@@ -106,6 +121,9 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::rea
         getAndCheckElementFromDataset(item, ReferencedBeamNumber, "1", "1", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamDoseSpecificationPoint, "3", "3", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamDose, "1", "3", "ReferencedBeamSequence");
+        getAndCheckElementFromDataset(item, BeamDoseType, "1", "1C", "ReferencedBeamSequence");
+        getAndCheckElementFromDataset(item, AlternateBeamDose, "1", "3", "ReferencedBeamSequence");
+        getAndCheckElementFromDataset(item, AlternateBeamDoseType, "1", "1C", "ReferencedBeamSequence");
         BeamDoseVerificationControlPointSequence.read(item, "1-n", "3", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamMeterset, "1", "3", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamDeliveryDurationLimit, "1", "3", "ReferencedBeamSequence");
@@ -124,6 +142,9 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::wri
         addElementToDataset(result, item, new DcmIntegerString(ReferencedBeamNumber), "1", "1", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(BeamDoseSpecificationPoint), "3", "3", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(BeamDose), "1", "3", "ReferencedBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(BeamDoseType), "1", "1C", "ReferencedBeamSequence");
+        addElementToDataset(result, item, new DcmDecimalString(AlternateBeamDose), "1", "3", "ReferencedBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(AlternateBeamDoseType), "1", "1C", "ReferencedBeamSequence");
         if (result.good()) result = BeamDoseVerificationControlPointSequence.write(item, "1-n", "3", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(BeamMeterset), "1", "3", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointDouble(BeamDeliveryDurationLimit), "1", "3", "ReferencedBeamSequence");
@@ -132,6 +153,33 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::wri
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getAlternateBeamDose(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(AlternateBeamDose, value, pos);
+}
+
+
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getAlternateBeamDose(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, AlternateBeamDose).getFloat64(value, pos);
+}
+
+
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getAlternateBeamDoseType(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(AlternateBeamDoseType, value, pos);
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getBeamDeliveryDurationLimit(Float64 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
@@ -186,6 +234,15 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::get
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getBeamDoseType(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(BeamDoseType, value, pos);
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::getBeamMeterset(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -222,6 +279,32 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::get
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setAlternateBeamDose(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = AlternateBeamDose.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setAlternateBeamDoseType(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = AlternateBeamDoseType.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setBeamDeliveryDurationLimit(const Float64 value, const unsigned long pos)
 {
     if (EmptyDefaultItem)
@@ -257,6 +340,19 @@ OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::set
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setBeamDoseType(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = BeamDoseType.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTGeneralTreatmentRecordModule::Item::setBeamMeterset(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtrbs8.cc b/dcmrt/libsrc/drtrbs8.cc
index e2b2661..3fac5d6 100644
--- a/dcmrt/libsrc/drtrbs8.cc
+++ b/dcmrt/libsrc/drtrbs8.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedBeamSequenceInRTFractionSchemeModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -21,9 +21,12 @@
 
 DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
+    AlternateBeamDose(DCM_AlternateBeamDose),
+    AlternateBeamDoseType(DCM_AlternateBeamDoseType),
     BeamDeliveryDurationLimit(DCM_BeamDeliveryDurationLimit),
     BeamDose(DCM_BeamDose),
     BeamDoseSpecificationPoint(DCM_BeamDoseSpecificationPoint),
+    BeamDoseType(DCM_BeamDoseType),
     BeamDoseVerificationControlPointSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     BeamMeterset(DCM_BeamMeterset),
     ReferencedBeamNumber(DCM_ReferencedBeamNumber)
@@ -33,9 +36,12 @@ DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::Item(const OFBool empty
 
 DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
+    AlternateBeamDose(copy.AlternateBeamDose),
+    AlternateBeamDoseType(copy.AlternateBeamDoseType),
     BeamDeliveryDurationLimit(copy.BeamDeliveryDurationLimit),
     BeamDose(copy.BeamDose),
     BeamDoseSpecificationPoint(copy.BeamDoseSpecificationPoint),
+    BeamDoseType(copy.BeamDoseType),
     BeamDoseVerificationControlPointSequence(copy.BeamDoseVerificationControlPointSequence),
     BeamMeterset(copy.BeamMeterset),
     ReferencedBeamNumber(copy.ReferencedBeamNumber)
@@ -53,9 +59,12 @@ DRTReferencedBeamSequenceInRTFractionSchemeModule::Item &DRTReferencedBeamSequen
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
+        AlternateBeamDose = copy.AlternateBeamDose;
+        AlternateBeamDoseType = copy.AlternateBeamDoseType;
         BeamDeliveryDurationLimit = copy.BeamDeliveryDurationLimit;
         BeamDose = copy.BeamDose;
         BeamDoseSpecificationPoint = copy.BeamDoseSpecificationPoint;
+        BeamDoseType = copy.BeamDoseType;
         BeamDoseVerificationControlPointSequence = copy.BeamDoseVerificationControlPointSequence;
         BeamMeterset = copy.BeamMeterset;
         ReferencedBeamNumber = copy.ReferencedBeamNumber;
@@ -72,6 +81,9 @@ void DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::clear()
         ReferencedBeamNumber.clear();
         BeamDoseSpecificationPoint.clear();
         BeamDose.clear();
+        BeamDoseType.clear();
+        AlternateBeamDose.clear();
+        AlternateBeamDoseType.clear();
         BeamDoseVerificationControlPointSequence.clear();
         BeamMeterset.clear();
         BeamDeliveryDurationLimit.clear();
@@ -84,6 +96,9 @@ OFBool DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::isEmpty()
     return ReferencedBeamNumber.isEmpty() &&
            BeamDoseSpecificationPoint.isEmpty() &&
            BeamDose.isEmpty() &&
+           BeamDoseType.isEmpty() &&
+           AlternateBeamDose.isEmpty() &&
+           AlternateBeamDoseType.isEmpty() &&
            BeamDoseVerificationControlPointSequence.isEmpty() &&
            BeamMeterset.isEmpty() &&
            BeamDeliveryDurationLimit.isEmpty();
@@ -106,6 +121,9 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::read(DcmIte
         getAndCheckElementFromDataset(item, ReferencedBeamNumber, "1", "1", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamDoseSpecificationPoint, "3", "3", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamDose, "1", "3", "ReferencedBeamSequence");
+        getAndCheckElementFromDataset(item, BeamDoseType, "1", "1C", "ReferencedBeamSequence");
+        getAndCheckElementFromDataset(item, AlternateBeamDose, "1", "3", "ReferencedBeamSequence");
+        getAndCheckElementFromDataset(item, AlternateBeamDoseType, "1", "1C", "ReferencedBeamSequence");
         BeamDoseVerificationControlPointSequence.read(item, "1-n", "3", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamMeterset, "1", "3", "ReferencedBeamSequence");
         getAndCheckElementFromDataset(item, BeamDeliveryDurationLimit, "1", "3", "ReferencedBeamSequence");
@@ -124,6 +142,9 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::write(DcmIt
         addElementToDataset(result, item, new DcmIntegerString(ReferencedBeamNumber), "1", "1", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(BeamDoseSpecificationPoint), "3", "3", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(BeamDose), "1", "3", "ReferencedBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(BeamDoseType), "1", "1C", "ReferencedBeamSequence");
+        addElementToDataset(result, item, new DcmDecimalString(AlternateBeamDose), "1", "3", "ReferencedBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(AlternateBeamDoseType), "1", "1C", "ReferencedBeamSequence");
         if (result.good()) result = BeamDoseVerificationControlPointSequence.write(item, "1-n", "3", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(BeamMeterset), "1", "3", "ReferencedBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointDouble(BeamDeliveryDurationLimit), "1", "3", "ReferencedBeamSequence");
@@ -132,6 +153,33 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::write(DcmIt
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getAlternateBeamDose(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(AlternateBeamDose, value, pos);
+}
+
+
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getAlternateBeamDose(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmDecimalString &, AlternateBeamDose).getFloat64(value, pos);
+}
+
+
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getAlternateBeamDoseType(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(AlternateBeamDoseType, value, pos);
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamDeliveryDurationLimit(Float64 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
@@ -186,6 +234,15 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamDose
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamDoseType(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(BeamDoseType, value, pos);
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getBeamMeterset(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -222,6 +279,32 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::getReferenc
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setAlternateBeamDose(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = AlternateBeamDose.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setAlternateBeamDoseType(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = AlternateBeamDoseType.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamDeliveryDurationLimit(const Float64 value, const unsigned long pos)
 {
     if (EmptyDefaultItem)
@@ -257,6 +340,19 @@ OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamDose
 }
 
 
+OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamDoseType(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = BeamDoseType.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTReferencedBeamSequenceInRTFractionSchemeModule::Item::setBeamMeterset(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtrcdrs.cc b/dcmrt/libsrc/drtrcdrs.cc
index acad21e..f39f1ea 100644
--- a/dcmrt/libsrc/drtrcdrs.cc
+++ b/dcmrt/libsrc/drtrcdrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedCalculatedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrcos.cc b/dcmrt/libsrc/drtrcos.cc
index 0b3b03b..41c1e29 100644
--- a/dcmrt/libsrc/drtrcos.cc
+++ b/dcmrt/libsrc/drtrcos.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedCompensatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrcps.cc b/dcmrt/libsrc/drtrcps.cc
index c115bab..4b31bea 100644
--- a/dcmrt/libsrc/drtrcps.cc
+++ b/dcmrt/libsrc/drtrcps.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedControlPointSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrcs.cc b/dcmrt/libsrc/drtrcs.cc
index b64abf7..3256767 100644
--- a/dcmrt/libsrc/drtrcs.cc
+++ b/dcmrt/libsrc/drtrcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTROIContourSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrdros.cc b/dcmrt/libsrc/drtrdros.cc
index d2f0e91..f976e85 100644
--- a/dcmrt/libsrc/drtrdros.cc
+++ b/dcmrt/libsrc/drtrdros.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRTDoseROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrdrs1.cc b/dcmrt/libsrc/drtrdrs1.cc
index 4cd20b7..69eed36 100644
--- a/dcmrt/libsrc/drtrdrs1.cc
+++ b/dcmrt/libsrc/drtrdrs1.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedDoseReferenceSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrdrs6.cc b/dcmrt/libsrc/drtrdrs6.cc
index 0061003..2d0e3ad 100644
--- a/dcmrt/libsrc/drtrdrs6.cc
+++ b/dcmrt/libsrc/drtrdrs6.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedDoseReferenceSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrdrs8.cc b/dcmrt/libsrc/drtrdrs8.cc
index 0dadddd..5eb40a9 100644
--- a/dcmrt/libsrc/drtrdrs8.cc
+++ b/dcmrt/libsrc/drtrdrs8.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedDoseReferenceSequenceInRTFractionSchemeModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrds.cc b/dcmrt/libsrc/drtrds.cc
index 9db4526..de7c5fe 100644
--- a/dcmrt/libsrc/drtrds.cc
+++ b/dcmrt/libsrc/drtrds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedDoseSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrecs.cc b/dcmrt/libsrc/drtrecs.cc
index ec67009..887e6ea 100644
--- a/dcmrt/libsrc/drtrecs.cc
+++ b/dcmrt/libsrc/drtrecs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTROIElementalCompositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrfgs.cc b/dcmrt/libsrc/drtrfgs.cc
index e82a286..204d045 100644
--- a/dcmrt/libsrc/drtrfgs.cc
+++ b/dcmrt/libsrc/drtrfgs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedFractionGroupSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrfors.cc b/dcmrt/libsrc/drtrfors.cc
index a8b33d0..9bc8443 100644
--- a/dcmrt/libsrc/drtrfors.cc
+++ b/dcmrt/libsrc/drtrfors.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedFrameOfReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrics.cc b/dcmrt/libsrc/drtrics.cc
index 8b21d11..b2a13a0 100644
--- a/dcmrt/libsrc/drtrics.cc
+++ b/dcmrt/libsrc/drtrics.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRTROIIdentificationCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,7 +34,9 @@ DRTRTROIIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
+    SegmentedPropertyTypeModifierCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     URNCodeValue(DCM_URNCodeValue)
 {
 }
@@ -55,7 +57,9 @@ DRTRTROIIdentificationCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
+    SegmentedPropertyTypeModifierCodeSequence(copy.SegmentedPropertyTypeModifierCodeSequence),
     URNCodeValue(copy.URNCodeValue)
 {
 }
@@ -84,7 +88,9 @@ DRTRTROIIdentificationCodeSequence::Item &DRTRTROIIdentificationCodeSequence::It
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
+        SegmentedPropertyTypeModifierCodeSequence = copy.SegmentedPropertyTypeModifierCodeSequence;
         URNCodeValue = copy.URNCodeValue;
     }
     return *this;
@@ -107,10 +113,12 @@ void DRTRTROIIdentificationCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
         ContextGroupExtensionCreatorUID.clear();
+        SegmentedPropertyTypeModifierCodeSequence.clear();
     }
 }
 
@@ -128,10 +136,12 @@ OFBool DRTRTROIIdentificationCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
-           ContextGroupExtensionCreatorUID.isEmpty();
+           ContextGroupExtensionCreatorUID.isEmpty() &&
+           SegmentedPropertyTypeModifierCodeSequence.isEmpty();
 }
 
 
@@ -159,10 +169,12 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "RTROIIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "RTROIIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "RTROIIdentificationCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "RTROIIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "RTROIIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "RTROIIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "RTROIIdentificationCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "RTROIIdentificationCodeSequence");
+        SegmentedPropertyTypeModifierCodeSequence.read(item, "1-n", "3", "RTROIIdentificationCodeSequence");
         result = EC_Normal;
     }
     return result;
@@ -186,10 +198,12 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "RTROIIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "RTROIIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "RTROIIdentificationCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "RTROIIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "RTROIIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "RTROIIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "RTROIIdentificationCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "RTROIIdentificationCodeSequence");
+        if (result.good()) result = SegmentedPropertyTypeModifierCodeSequence.write(item, "1-n", "3", "RTROIIdentificationCodeSequence");
     }
     return result;
 }
@@ -303,6 +317,15 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::getMappingResource(OFStrin
 }
 
 
+OFCondition DRTRTROIIdentificationCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTRTROIIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +500,19 @@ OFCondition DRTRTROIIdentificationCodeSequence::Item::setMappingResource(const O
 }
 
 
+OFCondition DRTRTROIIdentificationCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTRTROIIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtrims.cc b/dcmrt/libsrc/drtrims.cc
index 27c6926..48bc24e 100644
--- a/dcmrt/libsrc/drtrims.cc
+++ b/dcmrt/libsrc/drtrims.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtris.cc b/dcmrt/libsrc/drtris.cc
index 4628e26..3948abc 100644
--- a/dcmrt/libsrc/drtris.cc
+++ b/dcmrt/libsrc/drtris.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedInstanceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrlsds.cc b/dcmrt/libsrc/drtrlsds.cc
index 41c2ead..2b6f8e2 100644
--- a/dcmrt/libsrc/drtrlsds.cc
+++ b/dcmrt/libsrc/drtrlsds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedLateralSpreadingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrmdrs.cc b/dcmrt/libsrc/drtrmdrs.cc
index f1548d2..a77e52a 100644
--- a/dcmrt/libsrc/drtrmdrs.cc
+++ b/dcmrt/libsrc/drtrmdrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedMeasuredDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrms.cc b/dcmrt/libsrc/drtrms.cc
index e13e9d3..66c108c 100644
--- a/dcmrt/libsrc/drtrms.cc
+++ b/dcmrt/libsrc/drtrms.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRangeModulatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrmss6.cc b/dcmrt/libsrc/drtrmss6.cc
index d1710ae..f386980 100644
--- a/dcmrt/libsrc/drtrmss6.cc
+++ b/dcmrt/libsrc/drtrmss6.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrmss7.cc b/dcmrt/libsrc/drtrmss7.cc
index 125b195..012e113 100644
--- a/dcmrt/libsrc/drtrmss7.cc
+++ b/dcmrt/libsrc/drtrmss7.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRangeModulatorSettingsSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrpcs.cc b/dcmrt/libsrc/drtrpcs.cc
index 093a758..cf13ee9 100644
--- a/dcmrt/libsrc/drtrpcs.cc
+++ b/dcmrt/libsrc/drtrpcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRequestedProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTRequestedProcedureCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTRequestedProcedureCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTRequestedProcedureCodeSequence::Item &DRTRequestedProcedureCodeSequence::Item
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTRequestedProcedureCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTRequestedProcedureCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "RequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "RequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "RequestedProcedureCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "RequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "RequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "RequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "RequestedProcedureCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "RequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "RequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "RequestedProcedureCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "RequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "RequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "RequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "RequestedProcedureCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTRequestedProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTRequestedProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTRequestedProcedureCodeSequence::Item::setMappingResource(const OF
 }
 
 
+OFCondition DRTRequestedProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTRequestedProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtrpis.cc b/dcmrt/libsrc/drtrpis.cc
index 0fd7a5d..a3b4cfe 100644
--- a/dcmrt/libsrc/drtrpis.cc
+++ b/dcmrt/libsrc/drtrpis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferringPhysicianIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrppcs.cc b/dcmrt/libsrc/drtrppcs.cc
index 53cd0a2..d5df172 100644
--- a/dcmrt/libsrc/drtrppcs.cc
+++ b/dcmrt/libsrc/drtrppcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReasonForPerformedProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item::Item(const OFBool emptyDefault
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTReasonForPerformedProcedureCodeSequence::Item &DRTReasonForPerformedProcedure
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTReasonForPerformedProcedureCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTReasonForPerformedProcedureCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::read(DcmItem &item
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ReasonForPerformedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ReasonForPerformedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ReasonForPerformedProcedureCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ReasonForPerformedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ReasonForPerformedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ReasonForPerformedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ReasonForPerformedProcedureCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::write(DcmItem &ite
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ReasonForPerformedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ReasonForPerformedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ReasonForPerformedProcedureCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ReasonForPerformedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ReasonForPerformedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ReasonForPerformedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ReasonForPerformedProcedureCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::getMappingResource
 }
 
 
+OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::setMappingResource
 }
 
 
+OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTReasonForPerformedProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtrpphs.cc b/dcmrt/libsrc/drtrpphs.cc
index 0a8910b..bf0eaa3 100644
--- a/dcmrt/libsrc/drtrpphs.cc
+++ b/dcmrt/libsrc/drtrpphs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedPatientPhotoSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrpps.cc b/dcmrt/libsrc/drtrpps.cc
index 6eb0ef4..b270a49 100644
--- a/dcmrt/libsrc/drtrpps.cc
+++ b/dcmrt/libsrc/drtrpps.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTROIPhysicalPropertiesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrppss.cc b/dcmrt/libsrc/drtrppss.cc
index 14f0744..57cfe61 100644
--- a/dcmrt/libsrc/drtrppss.cc
+++ b/dcmrt/libsrc/drtrppss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedPerformedProcedureStepSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrps.cc b/dcmrt/libsrc/drtrps.cc
index 03e800e..f29c4e9 100644
--- a/dcmrt/libsrc/drtrps.cc
+++ b/dcmrt/libsrc/drtrps.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedPatientSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrris1.cc b/dcmrt/libsrc/drtrris1.cc
index 0feb958..9604026 100644
--- a/dcmrt/libsrc/drtrris1.cc
+++ b/dcmrt/libsrc/drtrris1.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedReferenceImageSequenceInRTBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrris6.cc b/dcmrt/libsrc/drtrris6.cc
index d583bd4..eb7d750 100644
--- a/dcmrt/libsrc/drtrris6.cc
+++ b/dcmrt/libsrc/drtrris6.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedReferenceImageSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrris9.cc b/dcmrt/libsrc/drtrris9.cc
index 3f51ce5..f497625 100644
--- a/dcmrt/libsrc/drtrris9.cc
+++ b/dcmrt/libsrc/drtrris9.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedReferenceImageSequenceInRTBrachyApplicationSetupsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrrms.cc b/dcmrt/libsrc/drtrrms.cc
index 1938aae..c72e282 100644
--- a/dcmrt/libsrc/drtrrms.cc
+++ b/dcmrt/libsrc/drtrrms.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedRangeModulatorSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrros.cc b/dcmrt/libsrc/drtrros.cc
index 5d8ad67..d6e3bf2 100644
--- a/dcmrt/libsrc/drtrros.cc
+++ b/dcmrt/libsrc/drtrros.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRTROIObservationsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -21,7 +21,6 @@
 
 DRTRTROIObservationsSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
-    AdditionalRTROIIdentificationCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     MaterialID(DCM_MaterialID),
     ObservationNumber(DCM_ObservationNumber),
     ROIInterpreter(DCM_ROIInterpreter),
@@ -40,7 +39,6 @@ DRTRTROIObservationsSequence::Item::Item(const OFBool emptyDefaultItem)
 
 DRTRTROIObservationsSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
-    AdditionalRTROIIdentificationCodeSequence(copy.AdditionalRTROIIdentificationCodeSequence),
     MaterialID(copy.MaterialID),
     ObservationNumber(copy.ObservationNumber),
     ROIInterpreter(copy.ROIInterpreter),
@@ -67,7 +65,6 @@ DRTRTROIObservationsSequence::Item &DRTRTROIObservationsSequence::Item::operator
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
-        AdditionalRTROIIdentificationCodeSequence = copy.AdditionalRTROIIdentificationCodeSequence;
         MaterialID = copy.MaterialID;
         ObservationNumber = copy.ObservationNumber;
         ROIInterpreter = copy.ROIInterpreter;
@@ -97,7 +94,6 @@ void DRTRTROIObservationsSequence::Item::clear()
         RTRelatedROISequence.clear();
         SegmentedPropertyCategoryCodeSequence.clear();
         RTROIIdentificationCodeSequence.clear();
-        AdditionalRTROIIdentificationCodeSequence.clear();
         RelatedRTROIObservationsSequence.clear();
         RTROIInterpretedType.clear();
         ROIInterpreter.clear();
@@ -116,7 +112,6 @@ OFBool DRTRTROIObservationsSequence::Item::isEmpty()
            RTRelatedROISequence.isEmpty() &&
            SegmentedPropertyCategoryCodeSequence.isEmpty() &&
            RTROIIdentificationCodeSequence.isEmpty() &&
-           AdditionalRTROIIdentificationCodeSequence.isEmpty() &&
            RelatedRTROIObservationsSequence.isEmpty() &&
            RTROIInterpretedType.isEmpty() &&
            ROIInterpreter.isEmpty() &&
@@ -145,7 +140,6 @@ OFCondition DRTRTROIObservationsSequence::Item::read(DcmItem &item)
         RTRelatedROISequence.read(item, "1-n", "3", "RTROIObservationsSequence");
         SegmentedPropertyCategoryCodeSequence.read(item, "1-n", "3", "RTROIObservationsSequence");
         RTROIIdentificationCodeSequence.read(item, "1-n", "3", "RTROIObservationsSequence");
-        AdditionalRTROIIdentificationCodeSequence.read(item, "1-n", "3", "RTROIObservationsSequence");
         RelatedRTROIObservationsSequence.read(item, "1-n", "3", "RTROIObservationsSequence");
         getAndCheckElementFromDataset(item, RTROIInterpretedType, "1", "2", "RTROIObservationsSequence");
         getAndCheckElementFromDataset(item, ROIInterpreter, "1", "2", "RTROIObservationsSequence");
@@ -170,7 +164,6 @@ OFCondition DRTRTROIObservationsSequence::Item::write(DcmItem &item)
         if (result.good()) result = RTRelatedROISequence.write(item, "1-n", "3", "RTROIObservationsSequence");
         if (result.good()) result = SegmentedPropertyCategoryCodeSequence.write(item, "1-n", "3", "RTROIObservationsSequence");
         if (result.good()) result = RTROIIdentificationCodeSequence.write(item, "1-n", "3", "RTROIObservationsSequence");
-        if (result.good()) result = AdditionalRTROIIdentificationCodeSequence.write(item, "1-n", "3", "RTROIObservationsSequence");
         if (result.good()) result = RelatedRTROIObservationsSequence.write(item, "1-n", "3", "RTROIObservationsSequence");
         addElementToDataset(result, item, new DcmCodeString(RTROIInterpretedType), "1", "2", "RTROIObservationsSequence");
         addElementToDataset(result, item, new DcmPersonName(ROIInterpreter), "1", "2", "RTROIObservationsSequence");
diff --git a/dcmrt/libsrc/drtrrpcs.cc b/dcmrt/libsrc/drtrrpcs.cc
index 8847f97..eb89126 100644
--- a/dcmrt/libsrc/drtrrpcs.cc
+++ b/dcmrt/libsrc/drtrrpcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReasonForRequestedProcedureCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item::Item(const OFBool emptyDefault
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTReasonForRequestedProcedureCodeSequence::Item &DRTReasonForRequestedProcedure
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTReasonForRequestedProcedureCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTReasonForRequestedProcedureCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::read(DcmItem &item
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ReasonForRequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ReasonForRequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ReasonForRequestedProcedureCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ReasonForRequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ReasonForRequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ReasonForRequestedProcedureCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ReasonForRequestedProcedureCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::write(DcmItem &ite
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ReasonForRequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ReasonForRequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ReasonForRequestedProcedureCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ReasonForRequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ReasonForRequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ReasonForRequestedProcedureCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ReasonForRequestedProcedureCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::getMappingResource
 }
 
 
+OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::setMappingResource
 }
 
 
+OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTReasonForRequestedProcedureCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtrrros.cc b/dcmrt/libsrc/drtrrros.cc
index e11fe87..2a76df7 100644
--- a/dcmrt/libsrc/drtrrros.cc
+++ b/dcmrt/libsrc/drtrrros.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRelatedRTROIObservationsSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrrs.cc b/dcmrt/libsrc/drtrrs.cc
index d149cb8..990e3d7 100644
--- a/dcmrt/libsrc/drtrrs.cc
+++ b/dcmrt/libsrc/drtrrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRTRelatedROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrrshs.cc b/dcmrt/libsrc/drtrrshs.cc
index b2988b0..ecd958b 100644
--- a/dcmrt/libsrc/drtrrshs.cc
+++ b/dcmrt/libsrc/drtrrshs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedRangeShifterSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrrtps.cc b/dcmrt/libsrc/drtrrtps.cc
index 2e16c55..a2945db 100644
--- a/dcmrt/libsrc/drtrrtps.cc
+++ b/dcmrt/libsrc/drtrrtps.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedRTPlanSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrrtps3.cc b/dcmrt/libsrc/drtrrtps3.cc
index 3f084b0..9b88d80 100644
--- a/dcmrt/libsrc/drtrrtps3.cc
+++ b/dcmrt/libsrc/drtrrtps3.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedRTPlanSequenceInRTGeneralPlanModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrrtps4.cc b/dcmrt/libsrc/drtrrtps4.cc
index 008b6c4..87b11b5 100644
--- a/dcmrt/libsrc/drtrrtps4.cc
+++ b/dcmrt/libsrc/drtrrtps4.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedRTPlanSequenceInRTGeneralTreatmentRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrrtps5.cc b/dcmrt/libsrc/drtrrtps5.cc
index 830ede1..a1657bc 100644
--- a/dcmrt/libsrc/drtrrtps5.cc
+++ b/dcmrt/libsrc/drtrrtps5.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedRTPlanSequenceInRTImageModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrscs.cc b/dcmrt/libsrc/drtrscs.cc
index c31e213..abe4cb0 100644
--- a/dcmrt/libsrc/drtrscs.cc
+++ b/dcmrt/libsrc/drtrscs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRequestingServiceCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTRequestingServiceCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTRequestingServiceCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTRequestingServiceCodeSequence::Item &DRTRequestingServiceCodeSequence::Item::
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTRequestingServiceCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTRequestingServiceCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTRequestingServiceCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "RequestingServiceCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "RequestingServiceCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "RequestingServiceCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "RequestingServiceCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "RequestingServiceCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "RequestingServiceCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "RequestingServiceCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTRequestingServiceCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "RequestingServiceCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "RequestingServiceCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "RequestingServiceCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "RequestingServiceCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "RequestingServiceCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "RequestingServiceCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "RequestingServiceCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTRequestingServiceCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTRequestingServiceCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTRequestingServiceCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTRequestingServiceCodeSequence::Item::setMappingResource(const OFS
 }
 
 
+OFCondition DRTRequestingServiceCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTRequestingServiceCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtrsers.cc b/dcmrt/libsrc/drtrsers.cc
index fa949ae..987b24a 100644
--- a/dcmrt/libsrc/drtrsers.cc
+++ b/dcmrt/libsrc/drtrsers.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedSeriesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrses.cc b/dcmrt/libsrc/drtrses.cc
index c373227..14f9a09 100644
--- a/dcmrt/libsrc/drtrses.cc
+++ b/dcmrt/libsrc/drtrses.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRTReferencedSeriesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrshs.cc b/dcmrt/libsrc/drtrshs.cc
index 42d12ba..fd34f1c 100644
--- a/dcmrt/libsrc/drtrshs.cc
+++ b/dcmrt/libsrc/drtrshs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRangeShifterSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrshs6.cc b/dcmrt/libsrc/drtrshs6.cc
index cfc26d5..27a12cc 100644
--- a/dcmrt/libsrc/drtrshs6.cc
+++ b/dcmrt/libsrc/drtrshs6.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRangeShifterSettingsSequenceInRTIonBeamsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrshs7.cc b/dcmrt/libsrc/drtrshs7.cc
index 8f63f78..0710c44 100644
--- a/dcmrt/libsrc/drtrshs7.cc
+++ b/dcmrt/libsrc/drtrshs7.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRangeShifterSettingsSequenceInRTIonBeamsSessionRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrsis.cc b/dcmrt/libsrc/drtrsis.cc
index 302f371..590b9b0 100644
--- a/dcmrt/libsrc/drtrsis.cc
+++ b/dcmrt/libsrc/drtrsis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedSetupImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrsns.cc b/dcmrt/libsrc/drtrsns.cc
index bbe4571..f193893 100644
--- a/dcmrt/libsrc/drtrsns.cc
+++ b/dcmrt/libsrc/drtrsns.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedSnoutSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrsos.cc b/dcmrt/libsrc/drtrsos.cc
index 857ed82..fa1f355 100644
--- a/dcmrt/libsrc/drtrsos.cc
+++ b/dcmrt/libsrc/drtrsos.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedSOPSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrsrs.cc b/dcmrt/libsrc/drtrsrs.cc
index a36e5c1..a5c6332 100644
--- a/dcmrt/libsrc/drtrsrs.cc
+++ b/dcmrt/libsrc/drtrsrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedSpatialRegistrationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrss.cc b/dcmrt/libsrc/drtrss.cc
index 0f4da67..ab21a6a 100644
--- a/dcmrt/libsrc/drtrss.cc
+++ b/dcmrt/libsrc/drtrss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedStudySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrsss.cc b/dcmrt/libsrc/drtrsss.cc
index 3165635..a03b9c2 100644
--- a/dcmrt/libsrc/drtrsss.cc
+++ b/dcmrt/libsrc/drtrsss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedStructureSetSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrsts.cc b/dcmrt/libsrc/drtrsts.cc
index 90ab23c..c399bc8 100644
--- a/dcmrt/libsrc/drtrsts.cc
+++ b/dcmrt/libsrc/drtrsts.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRTReferencedStudySequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrtrs2.cc b/dcmrt/libsrc/drtrtrs2.cc
index f8824e2..52013db 100644
--- a/dcmrt/libsrc/drtrtrs2.cc
+++ b/dcmrt/libsrc/drtrtrs2.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedTreatmentRecordSequenceInRTDoseModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrtrs4.cc b/dcmrt/libsrc/drtrtrs4.cc
index b14e829..b671db6 100644
--- a/dcmrt/libsrc/drtrtrs4.cc
+++ b/dcmrt/libsrc/drtrtrs4.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedTreatmentRecordSequenceInRTGeneralTreatmentRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrvis.cc b/dcmrt/libsrc/drtrvis.cc
index 7934196..8e9d7f4 100644
--- a/dcmrt/libsrc/drtrvis.cc
+++ b/dcmrt/libsrc/drtrvis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTReferencedVerificationImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrws.cc b/dcmrt/libsrc/drtrws.cc
index c794534..1547bda 100644
--- a/dcmrt/libsrc/drtrws.cc
+++ b/dcmrt/libsrc/drtrws.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRecordedWedgeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrwvms.cc b/dcmrt/libsrc/drtrwvms.cc
index 9f70955..6698b8e 100644
--- a/dcmrt/libsrc/drtrwvms.cc
+++ b/dcmrt/libsrc/drtrwvms.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTRealWorldValueMappingSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -21,6 +21,8 @@
 
 DRTRealWorldValueMappingSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
+    DoubleFloatRealWorldValueFirstValueMapped(DCM_DoubleFloatRealWorldValueFirstValueMapped),
+    DoubleFloatRealWorldValueLastValueMapped(DCM_DoubleFloatRealWorldValueLastValueMapped),
     LUTExplanation(DCM_LUTExplanation),
     LUTLabel(DCM_LUTLabel),
     MeasurementUnitsCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
@@ -36,6 +38,8 @@ DRTRealWorldValueMappingSequence::Item::Item(const OFBool emptyDefaultItem)
 
 DRTRealWorldValueMappingSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
+    DoubleFloatRealWorldValueFirstValueMapped(copy.DoubleFloatRealWorldValueFirstValueMapped),
+    DoubleFloatRealWorldValueLastValueMapped(copy.DoubleFloatRealWorldValueLastValueMapped),
     LUTExplanation(copy.LUTExplanation),
     LUTLabel(copy.LUTLabel),
     MeasurementUnitsCodeSequence(copy.MeasurementUnitsCodeSequence),
@@ -59,6 +63,8 @@ DRTRealWorldValueMappingSequence::Item &DRTRealWorldValueMappingSequence::Item::
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
+        DoubleFloatRealWorldValueFirstValueMapped = copy.DoubleFloatRealWorldValueFirstValueMapped;
+        DoubleFloatRealWorldValueLastValueMapped = copy.DoubleFloatRealWorldValueLastValueMapped;
         LUTExplanation = copy.LUTExplanation;
         LUTLabel = copy.LUTLabel;
         MeasurementUnitsCodeSequence = copy.MeasurementUnitsCodeSequence;
@@ -80,6 +86,8 @@ void DRTRealWorldValueMappingSequence::Item::clear()
         /* clear all DICOM attributes */
         RealWorldValueFirstValueMapped.clear();
         RealWorldValueLastValueMapped.clear();
+        DoubleFloatRealWorldValueFirstValueMapped.clear();
+        DoubleFloatRealWorldValueLastValueMapped.clear();
         RealWorldValueIntercept.clear();
         RealWorldValueSlope.clear();
         RealWorldValueLUTData.clear();
@@ -95,6 +103,8 @@ OFBool DRTRealWorldValueMappingSequence::Item::isEmpty()
 {
     return RealWorldValueFirstValueMapped.isEmpty() &&
            RealWorldValueLastValueMapped.isEmpty() &&
+           DoubleFloatRealWorldValueFirstValueMapped.isEmpty() &&
+           DoubleFloatRealWorldValueLastValueMapped.isEmpty() &&
            RealWorldValueIntercept.isEmpty() &&
            RealWorldValueSlope.isEmpty() &&
            RealWorldValueLUTData.isEmpty() &&
@@ -118,8 +128,10 @@ OFCondition DRTRealWorldValueMappingSequence::Item::read(DcmItem &item)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, RealWorldValueFirstValueMapped, "1", "1", "RealWorldValueMappingSequence");
-        getAndCheckElementFromDataset(item, RealWorldValueLastValueMapped, "1", "1", "RealWorldValueMappingSequence");
+        getAndCheckElementFromDataset(item, RealWorldValueFirstValueMapped, "1", "1C", "RealWorldValueMappingSequence");
+        getAndCheckElementFromDataset(item, RealWorldValueLastValueMapped, "1", "1C", "RealWorldValueMappingSequence");
+        getAndCheckElementFromDataset(item, DoubleFloatRealWorldValueFirstValueMapped, "1", "1C", "RealWorldValueMappingSequence");
+        getAndCheckElementFromDataset(item, DoubleFloatRealWorldValueLastValueMapped, "1", "1C", "RealWorldValueMappingSequence");
         getAndCheckElementFromDataset(item, RealWorldValueIntercept, "1", "1C", "RealWorldValueMappingSequence");
         getAndCheckElementFromDataset(item, RealWorldValueSlope, "1", "1C", "RealWorldValueMappingSequence");
         getAndCheckElementFromDataset(item, RealWorldValueLUTData, "1-n", "1C", "RealWorldValueMappingSequence");
@@ -139,8 +151,10 @@ OFCondition DRTRealWorldValueMappingSequence::Item::write(DcmItem &item)
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueFirstValueMapped), "1", "1", "RealWorldValueMappingSequence");
-        addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueLastValueMapped), "1", "1", "RealWorldValueMappingSequence");
+        addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueFirstValueMapped), "1", "1C", "RealWorldValueMappingSequence");
+        addElementToDataset(result, item, new DcmUnsignedShort(RealWorldValueLastValueMapped), "1", "1C", "RealWorldValueMappingSequence");
+        addElementToDataset(result, item, new DcmFloatingPointDouble(DoubleFloatRealWorldValueFirstValueMapped), "1", "1C", "RealWorldValueMappingSequence");
+        addElementToDataset(result, item, new DcmFloatingPointDouble(DoubleFloatRealWorldValueLastValueMapped), "1", "1C", "RealWorldValueMappingSequence");
         addElementToDataset(result, item, new DcmFloatingPointDouble(RealWorldValueIntercept), "1", "1C", "RealWorldValueMappingSequence");
         addElementToDataset(result, item, new DcmFloatingPointDouble(RealWorldValueSlope), "1", "1C", "RealWorldValueMappingSequence");
         addElementToDataset(result, item, new DcmFloatingPointDouble(RealWorldValueLUTData), "1-n", "1C", "RealWorldValueMappingSequence");
@@ -153,6 +167,24 @@ OFCondition DRTRealWorldValueMappingSequence::Item::write(DcmItem &item)
 }
 
 
+OFCondition DRTRealWorldValueMappingSequence::Item::getDoubleFloatRealWorldValueFirstValueMapped(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointDouble &, DoubleFloatRealWorldValueFirstValueMapped).getFloat64(value, pos);
+}
+
+
+OFCondition DRTRealWorldValueMappingSequence::Item::getDoubleFloatRealWorldValueLastValueMapped(Float64 &value, const unsigned long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return OFconst_cast(DcmFloatingPointDouble &, DoubleFloatRealWorldValueLastValueMapped).getFloat64(value, pos);
+}
+
+
 OFCondition DRTRealWorldValueMappingSequence::Item::getLUTExplanation(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -216,6 +248,24 @@ OFCondition DRTRealWorldValueMappingSequence::Item::getRealWorldValueSlope(Float
 }
 
 
+OFCondition DRTRealWorldValueMappingSequence::Item::setDoubleFloatRealWorldValueFirstValueMapped(const Float64 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DoubleFloatRealWorldValueFirstValueMapped.putFloat64(value, pos);
+}
+
+
+OFCondition DRTRealWorldValueMappingSequence::Item::setDoubleFloatRealWorldValueLastValueMapped(const Float64 value, const unsigned long pos)
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return DoubleFloatRealWorldValueLastValueMapped.putFloat64(value, pos);
+}
+
+
 OFCondition DRTRealWorldValueMappingSequence::Item::setLUTExplanation(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtscris.cc b/dcmrt/libsrc/drtscris.cc
index 78a10f0..45f0d8a 100644
--- a/dcmrt/libsrc/drtscris.cc
+++ b/dcmrt/libsrc/drtscris.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTStudiesContainingOtherReferencedInstancesSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtccs.cc b/dcmrt/libsrc/drtscs.cc
similarity index 74%
copy from dcmrt/libsrc/drtccs.cc
copy to dcmrt/libsrc/drtscs.cc
index 979f490..143661c 100644
--- a/dcmrt/libsrc/drtccs.cc
+++ b/dcmrt/libsrc/drtscs.cc
@@ -1,25 +1,25 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Source file for class DRTConceptCodeSequence
+ *  Source file for class DRTStrainCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
-#include "dcmtk/dcmrt/seq/drtccs.h"
+#include "dcmtk/dcmrt/seq/drtscs.h"
 
 
 // --- item class ---
 
-DRTConceptCodeSequence::Item::Item(const OFBool emptyDefaultItem)
+DRTStrainCodeSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
     CodeMeaning(DCM_CodeMeaning),
     CodeValue(DCM_CodeValue),
@@ -34,13 +34,14 @@ DRTConceptCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
 }
 
 
-DRTConceptCodeSequence::Item::Item(const Item &copy)
+DRTStrainCodeSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
     CodeMeaning(copy.CodeMeaning),
     CodeValue(copy.CodeValue),
@@ -55,18 +56,19 @@ DRTConceptCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
 }
 
 
-DRTConceptCodeSequence::Item::~Item()
+DRTStrainCodeSequence::Item::~Item()
 {
 }
 
 
-DRTConceptCodeSequence::Item &DRTConceptCodeSequence::Item::operator=(const Item &copy)
+DRTStrainCodeSequence::Item &DRTStrainCodeSequence::Item::operator=(const Item &copy)
 {
     if (this != &copy)
     {
@@ -84,6 +86,7 @@ DRTConceptCodeSequence::Item &DRTConceptCodeSequence::Item::operator=(const Item
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -91,7 +94,7 @@ DRTConceptCodeSequence::Item &DRTConceptCodeSequence::Item::operator=(const Item
 }
 
 
-void DRTConceptCodeSequence::Item::clear()
+void DRTStrainCodeSequence::Item::clear()
 {
     if (!EmptyDefaultItem)
     {
@@ -107,6 +110,7 @@ void DRTConceptCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -115,7 +119,7 @@ void DRTConceptCodeSequence::Item::clear()
 }
 
 
-OFBool DRTConceptCodeSequence::Item::isEmpty()
+OFBool DRTStrainCodeSequence::Item::isEmpty()
 {
     return CodeValue.isEmpty() &&
            CodingSchemeDesignator.isEmpty() &&
@@ -128,6 +132,7 @@ OFBool DRTConceptCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -135,67 +140,69 @@ OFBool DRTConceptCodeSequence::Item::isEmpty()
 }
 
 
-OFBool DRTConceptCodeSequence::Item::isValid() const
+OFBool DRTStrainCodeSequence::Item::isValid() const
 {
     return !EmptyDefaultItem;
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::read(DcmItem &item)
+OFCondition DRTStrainCodeSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "ConceptCodeSequence");
-        EquivalentCodeSequence.read(item, "1-n", "3", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ConceptCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "ConceptCodeSequence");
+        getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "StrainCodeSequence");
+        EquivalentCodeSequence.read(item, "1-n", "3", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "StrainCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "StrainCodeSequence");
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::write(DcmItem &item)
+OFCondition DRTStrainCodeSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "ConceptCodeSequence");
-        if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ConceptCodeSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "ConceptCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "StrainCodeSequence");
+        if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "StrainCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "StrainCodeSequence");
     }
     return result;
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -204,7 +211,7 @@ OFCondition DRTConceptCodeSequence::Item::getCodeMeaning(OFString &value, const
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -213,7 +220,7 @@ OFCondition DRTConceptCodeSequence::Item::getCodeValue(OFString &value, const si
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -222,7 +229,7 @@ OFCondition DRTConceptCodeSequence::Item::getCodingSchemeDesignator(OFString &va
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -231,7 +238,7 @@ OFCondition DRTConceptCodeSequence::Item::getCodingSchemeVersion(OFString &value
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -240,7 +247,7 @@ OFCondition DRTConceptCodeSequence::Item::getContextGroupExtensionCreatorUID(OFS
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -249,7 +256,7 @@ OFCondition DRTConceptCodeSequence::Item::getContextGroupExtensionFlag(OFString
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -258,7 +265,7 @@ OFCondition DRTConceptCodeSequence::Item::getContextGroupLocalVersion(OFString &
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -267,7 +274,7 @@ OFCondition DRTConceptCodeSequence::Item::getContextGroupVersion(OFString &value
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -276,7 +283,7 @@ OFCondition DRTConceptCodeSequence::Item::getContextIdentifier(OFString &value,
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -285,7 +292,7 @@ OFCondition DRTConceptCodeSequence::Item::getContextUID(OFString &value, const s
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -294,7 +301,7 @@ OFCondition DRTConceptCodeSequence::Item::getLongCodeValue(OFString &value, cons
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -303,7 +310,16 @@ OFCondition DRTConceptCodeSequence::Item::getMappingResource(OFString &value, co
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -312,7 +328,7 @@ OFCondition DRTConceptCodeSequence::Item::getMappingResourceUID(OFString &value,
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const
+OFCondition DRTStrainCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -321,7 +337,7 @@ OFCondition DRTConceptCodeSequence::Item::getURNCodeValue(OFString &value, const
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -334,7 +350,7 @@ OFCondition DRTConceptCodeSequence::Item::setCodeMeaning(const OFString &value,
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -347,7 +363,7 @@ OFCondition DRTConceptCodeSequence::Item::setCodeValue(const OFString &value, co
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -360,7 +376,7 @@ OFCondition DRTConceptCodeSequence::Item::setCodingSchemeDesignator(const OFStri
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -373,7 +389,7 @@ OFCondition DRTConceptCodeSequence::Item::setCodingSchemeVersion(const OFString
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -386,7 +402,7 @@ OFCondition DRTConceptCodeSequence::Item::setContextGroupExtensionCreatorUID(con
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -399,7 +415,7 @@ OFCondition DRTConceptCodeSequence::Item::setContextGroupExtensionFlag(const OFS
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -412,7 +428,7 @@ OFCondition DRTConceptCodeSequence::Item::setContextGroupLocalVersion(const OFSt
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -425,7 +441,7 @@ OFCondition DRTConceptCodeSequence::Item::setContextGroupVersion(const OFString
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -438,7 +454,7 @@ OFCondition DRTConceptCodeSequence::Item::setContextIdentifier(const OFString &v
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setContextUID(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setContextUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -451,7 +467,7 @@ OFCondition DRTConceptCodeSequence::Item::setContextUID(const OFString &value, c
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -464,7 +480,7 @@ OFCondition DRTConceptCodeSequence::Item::setLongCodeValue(const OFString &value
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -477,7 +493,20 @@ OFCondition DRTConceptCodeSequence::Item::setMappingResource(const OFString &val
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -490,7 +519,7 @@ OFCondition DRTConceptCodeSequence::Item::setMappingResourceUID(const OFString &
 }
 
 
-OFCondition DRTConceptCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check)
+OFCondition DRTStrainCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -505,7 +534,7 @@ OFCondition DRTConceptCodeSequence::Item::setURNCodeValue(const OFString &value,
 
 // --- sequence class ---
 
-DRTConceptCodeSequence::DRTConceptCodeSequence(const OFBool emptyDefaultSequence)
+DRTStrainCodeSequence::DRTStrainCodeSequence(const OFBool emptyDefaultSequence)
   : EmptyDefaultSequence(emptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -515,7 +544,7 @@ DRTConceptCodeSequence::DRTConceptCodeSequence(const OFBool emptyDefaultSequence
 }
 
 
-DRTConceptCodeSequence::DRTConceptCodeSequence(const DRTConceptCodeSequence &copy)
+DRTStrainCodeSequence::DRTStrainCodeSequence(const DRTStrainCodeSequence &copy)
   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -541,7 +570,7 @@ DRTConceptCodeSequence::DRTConceptCodeSequence(const DRTConceptCodeSequence &cop
 }
 
 
-DRTConceptCodeSequence &DRTConceptCodeSequence::operator=(const DRTConceptCodeSequence &copy)
+DRTStrainCodeSequence &DRTStrainCodeSequence::operator=(const DRTStrainCodeSequence &copy)
 {
     if (this != &copy)
     {
@@ -569,13 +598,13 @@ DRTConceptCodeSequence &DRTConceptCodeSequence::operator=(const DRTConceptCodeSe
 }
 
 
-DRTConceptCodeSequence::~DRTConceptCodeSequence()
+DRTStrainCodeSequence::~DRTStrainCodeSequence()
 {
     clear();
 }
 
 
-void DRTConceptCodeSequence::clear()
+void DRTStrainCodeSequence::clear()
 {
     if (!EmptyDefaultSequence)
     {
@@ -594,25 +623,25 @@ void DRTConceptCodeSequence::clear()
 }
 
 
-OFBool DRTConceptCodeSequence::isEmpty()
+OFBool DRTStrainCodeSequence::isEmpty()
 {
     return SequenceOfItems.empty();
 }
 
 
-OFBool DRTConceptCodeSequence::isValid() const
+OFBool DRTStrainCodeSequence::isValid() const
 {
     return !EmptyDefaultSequence;
 }
 
 
-unsigned long DRTConceptCodeSequence::getNumberOfItems() const
+unsigned long DRTStrainCodeSequence::getNumberOfItems() const
 {
     return SequenceOfItems.size();
 }
 
 
-OFCondition DRTConceptCodeSequence::gotoFirstItem()
+OFCondition DRTStrainCodeSequence::gotoFirstItem()
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -624,7 +653,7 @@ OFCondition DRTConceptCodeSequence::gotoFirstItem()
 }
 
 
-OFCondition DRTConceptCodeSequence::gotoNextItem()
+OFCondition DRTStrainCodeSequence::gotoNextItem()
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -636,7 +665,7 @@ OFCondition DRTConceptCodeSequence::gotoNextItem()
 }
 
 
-OFCondition DRTConceptCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+OFCondition DRTStrainCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -656,7 +685,7 @@ OFCondition DRTConceptCodeSequence::gotoItem(const unsigned long num, OFListIter
 }
 
 
-OFCondition DRTConceptCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+OFCondition DRTStrainCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -676,13 +705,13 @@ OFCondition DRTConceptCodeSequence::gotoItem(const unsigned long num, OFListCons
 }
 
 
-OFCondition DRTConceptCodeSequence::gotoItem(const unsigned long num)
+OFCondition DRTStrainCodeSequence::gotoItem(const unsigned long num)
 {
     return gotoItem(num, CurrentItem);
 }
 
 
-OFCondition DRTConceptCodeSequence::getCurrentItem(Item *&item) const
+OFCondition DRTStrainCodeSequence::getCurrentItem(Item *&item) const
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -694,7 +723,7 @@ OFCondition DRTConceptCodeSequence::getCurrentItem(Item *&item) const
 }
 
 
-DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getCurrentItem()
+DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getCurrentItem()
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -703,7 +732,7 @@ DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getCurrentItem()
 }
 
 
-const DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getCurrentItem() const
+const DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getCurrentItem() const
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -712,7 +741,7 @@ const DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getCurrentItem() con
 }
 
 
-OFCondition DRTConceptCodeSequence::getItem(const unsigned long num, Item *&item)
+OFCondition DRTStrainCodeSequence::getItem(const unsigned long num, Item *&item)
 {
     OFListIterator(Item *) iterator;
     OFCondition result = gotoItem(num, iterator);
@@ -722,7 +751,7 @@ OFCondition DRTConceptCodeSequence::getItem(const unsigned long num, Item *&item
 }
 
 
-DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getItem(const unsigned long num)
+DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getItem(const unsigned long num)
 {
     OFListIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -732,7 +761,7 @@ DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getItem(const unsigned lon
 }
 
 
-const DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getItem(const unsigned long num) const
+const DRTStrainCodeSequence::Item &DRTStrainCodeSequence::getItem(const unsigned long num) const
 {
     OFListConstIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -742,19 +771,19 @@ const DRTConceptCodeSequence::Item &DRTConceptCodeSequence::getItem(const unsign
 }
 
 
-DRTConceptCodeSequence::Item &DRTConceptCodeSequence::operator[](const unsigned long num)
+DRTStrainCodeSequence::Item &DRTStrainCodeSequence::operator[](const unsigned long num)
 {
     return getItem(num);
 }
 
 
-const DRTConceptCodeSequence::Item &DRTConceptCodeSequence::operator[](const unsigned long num) const
+const DRTStrainCodeSequence::Item &DRTStrainCodeSequence::operator[](const unsigned long num) const
 {
     return getItem(num);
 }
 
 
-OFCondition DRTConceptCodeSequence::addItem(Item *&item)
+OFCondition DRTStrainCodeSequence::addItem(Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -771,7 +800,7 @@ OFCondition DRTConceptCodeSequence::addItem(Item *&item)
 }
 
 
-OFCondition DRTConceptCodeSequence::insertItem(const unsigned long pos, Item *&item)
+OFCondition DRTStrainCodeSequence::insertItem(const unsigned long pos, Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -794,7 +823,7 @@ OFCondition DRTConceptCodeSequence::insertItem(const unsigned long pos, Item *&i
 }
 
 
-OFCondition DRTConceptCodeSequence::removeItem(const unsigned long pos)
+OFCondition DRTStrainCodeSequence::removeItem(const unsigned long pos)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -812,10 +841,10 @@ OFCondition DRTConceptCodeSequence::removeItem(const unsigned long pos)
 }
 
 
-OFCondition DRTConceptCodeSequence::read(DcmItem &dataset,
-                                         const OFString &card,
-                                         const OFString &type,
-                                         const char *moduleName)
+OFCondition DRTStrainCodeSequence::read(DcmItem &dataset,
+                                        const OFString &card,
+                                        const OFString &type,
+                                        const char *moduleName)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -824,7 +853,7 @@ OFCondition DRTConceptCodeSequence::read(DcmItem &dataset,
         clear();
         /* retrieve sequence element from dataset */
         DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_ConceptCodeSequence, sequence);
+        result = dataset.findAndGetSequence(DCM_StrainCodeSequence, sequence);
         if (sequence != NULL)
         {
             if (checkElementValue(*sequence, card, type, result, moduleName))
@@ -854,7 +883,7 @@ OFCondition DRTConceptCodeSequence::read(DcmItem &dataset,
                 }
             }
         } else {
-            DcmSequenceOfItems element(DCM_ConceptCodeSequence);
+            DcmSequenceOfItems element(DCM_StrainCodeSequence);
             checkElementValue(element, card, type, result, moduleName);
         }
     }
@@ -862,16 +891,16 @@ OFCondition DRTConceptCodeSequence::read(DcmItem &dataset,
 }
 
 
-OFCondition DRTConceptCodeSequence::write(DcmItem &dataset,
-                                          const OFString &card,
-                                          const OFString &type,
-                                          const char *moduleName)
+OFCondition DRTStrainCodeSequence::write(DcmItem &dataset,
+                                         const OFString &card,
+                                         const OFString &type,
+                                         const char *moduleName)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
     {
         result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_ConceptCodeSequence);
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_StrainCodeSequence);
         if (sequence != NULL)
         {
             result = EC_Normal;
diff --git a/dcmrt/libsrc/drtsdcs.cc b/dcmrt/libsrc/drtsdcs.cc
index 5dd75d9..d53b336 100644
--- a/dcmrt/libsrc/drtsdcs.cc
+++ b/dcmrt/libsrc/drtsdcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTSeriesDescriptionCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTSeriesDescriptionCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTSeriesDescriptionCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTSeriesDescriptionCodeSequence::Item &DRTSeriesDescriptionCodeSequence::Item::
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTSeriesDescriptionCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTSeriesDescriptionCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "SeriesDescriptionCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "SeriesDescriptionCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "SeriesDescriptionCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "SeriesDescriptionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "SeriesDescriptionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "SeriesDescriptionCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "SeriesDescriptionCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "SeriesDescriptionCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "SeriesDescriptionCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "SeriesDescriptionCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "SeriesDescriptionCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "SeriesDescriptionCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "SeriesDescriptionCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "SeriesDescriptionCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTSeriesDescriptionCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTSeriesDescriptionCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTSeriesDescriptionCodeSequence::Item::setMappingResource(const OFS
 }
 
 
+OFCondition DRTSeriesDescriptionCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTSeriesDescriptionCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtsds.cc b/dcmrt/libsrc/drtsds.cc
index 946e593..b97c050 100644
--- a/dcmrt/libsrc/drtsds.cc
+++ b/dcmrt/libsrc/drtsds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTSetupDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtshds.cc b/dcmrt/libsrc/drtshds.cc
index 844fc95..8c796d7 100644
--- a/dcmrt/libsrc/drtshds.cc
+++ b/dcmrt/libsrc/drtshds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTShieldingDeviceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrds.cc b/dcmrt/libsrc/drtsins.cc
similarity index 78%
copy from dcmrt/libsrc/drtrds.cc
copy to dcmrt/libsrc/drtsins.cc
index 9db4526..7eb427b 100644
--- a/dcmrt/libsrc/drtrds.cc
+++ b/dcmrt/libsrc/drtsins.cc
@@ -1,50 +1,53 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Source file for class DRTReferencedDoseSequence
+ *  Source file for class DRTSourceInstanceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
-#include "dcmtk/dcmrt/seq/drtrds.h"
+#include "dcmtk/dcmrt/seq/drtsins.h"
 
 
 // --- item class ---
 
-DRTReferencedDoseSequence::Item::Item(const OFBool emptyDefaultItem)
+DRTSourceInstanceSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
+    PurposeOfReferenceCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     ReferencedSOPClassUID(DCM_ReferencedSOPClassUID),
     ReferencedSOPInstanceUID(DCM_ReferencedSOPInstanceUID)
 {
 }
 
 
-DRTReferencedDoseSequence::Item::Item(const Item &copy)
+DRTSourceInstanceSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
+    PurposeOfReferenceCodeSequence(copy.PurposeOfReferenceCodeSequence),
     ReferencedSOPClassUID(copy.ReferencedSOPClassUID),
     ReferencedSOPInstanceUID(copy.ReferencedSOPInstanceUID)
 {
 }
 
 
-DRTReferencedDoseSequence::Item::~Item()
+DRTSourceInstanceSequence::Item::~Item()
 {
 }
 
 
-DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::Item::operator=(const Item &copy)
+DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::Item::operator=(const Item &copy)
 {
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
+        PurposeOfReferenceCodeSequence = copy.PurposeOfReferenceCodeSequence;
         ReferencedSOPClassUID = copy.ReferencedSOPClassUID;
         ReferencedSOPInstanceUID = copy.ReferencedSOPInstanceUID;
     }
@@ -52,59 +55,63 @@ DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::Item::operator=(cons
 }
 
 
-void DRTReferencedDoseSequence::Item::clear()
+void DRTSourceInstanceSequence::Item::clear()
 {
     if (!EmptyDefaultItem)
     {
         /* clear all DICOM attributes */
         ReferencedSOPClassUID.clear();
         ReferencedSOPInstanceUID.clear();
+        PurposeOfReferenceCodeSequence.clear();
     }
 }
 
 
-OFBool DRTReferencedDoseSequence::Item::isEmpty()
+OFBool DRTSourceInstanceSequence::Item::isEmpty()
 {
     return ReferencedSOPClassUID.isEmpty() &&
-           ReferencedSOPInstanceUID.isEmpty();
+           ReferencedSOPInstanceUID.isEmpty() &&
+           PurposeOfReferenceCodeSequence.isEmpty();
 }
 
 
-OFBool DRTReferencedDoseSequence::Item::isValid() const
+OFBool DRTSourceInstanceSequence::Item::isValid() const
 {
     return !EmptyDefaultItem;
 }
 
 
-OFCondition DRTReferencedDoseSequence::Item::read(DcmItem &item)
+OFCondition DRTSourceInstanceSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, ReferencedSOPClassUID, "1", "1", "ReferencedDoseSequence");
-        getAndCheckElementFromDataset(item, ReferencedSOPInstanceUID, "1", "1", "ReferencedDoseSequence");
+        getAndCheckElementFromDataset(item, ReferencedSOPClassUID, "1", "1", "SourceInstanceSequence");
+        getAndCheckElementFromDataset(item, ReferencedSOPInstanceUID, "1", "1", "SourceInstanceSequence");
+        PurposeOfReferenceCodeSequence.read(item, "1-n", "3", "SourceInstanceSequence");
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTReferencedDoseSequence::Item::write(DcmItem &item)
+OFCondition DRTSourceInstanceSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmUniqueIdentifier(ReferencedSOPClassUID), "1", "1", "ReferencedDoseSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(ReferencedSOPInstanceUID), "1", "1", "ReferencedDoseSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ReferencedSOPClassUID), "1", "1", "SourceInstanceSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ReferencedSOPInstanceUID), "1", "1", "SourceInstanceSequence");
+        if (result.good()) result = PurposeOfReferenceCodeSequence.write(item, "1-n", "3", "SourceInstanceSequence");
     }
     return result;
 }
 
 
-OFCondition DRTReferencedDoseSequence::Item::getReferencedSOPClassUID(OFString &value, const signed long pos) const
+OFCondition DRTSourceInstanceSequence::Item::getReferencedSOPClassUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -113,7 +120,7 @@ OFCondition DRTReferencedDoseSequence::Item::getReferencedSOPClassUID(OFString &
 }
 
 
-OFCondition DRTReferencedDoseSequence::Item::getReferencedSOPInstanceUID(OFString &value, const signed long pos) const
+OFCondition DRTSourceInstanceSequence::Item::getReferencedSOPInstanceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -122,7 +129,7 @@ OFCondition DRTReferencedDoseSequence::Item::getReferencedSOPInstanceUID(OFStrin
 }
 
 
-OFCondition DRTReferencedDoseSequence::Item::setReferencedSOPClassUID(const OFString &value, const OFBool check)
+OFCondition DRTSourceInstanceSequence::Item::setReferencedSOPClassUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -135,7 +142,7 @@ OFCondition DRTReferencedDoseSequence::Item::setReferencedSOPClassUID(const OFSt
 }
 
 
-OFCondition DRTReferencedDoseSequence::Item::setReferencedSOPInstanceUID(const OFString &value, const OFBool check)
+OFCondition DRTSourceInstanceSequence::Item::setReferencedSOPInstanceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -150,7 +157,7 @@ OFCondition DRTReferencedDoseSequence::Item::setReferencedSOPInstanceUID(const O
 
 // --- sequence class ---
 
-DRTReferencedDoseSequence::DRTReferencedDoseSequence(const OFBool emptyDefaultSequence)
+DRTSourceInstanceSequence::DRTSourceInstanceSequence(const OFBool emptyDefaultSequence)
   : EmptyDefaultSequence(emptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -160,7 +167,7 @@ DRTReferencedDoseSequence::DRTReferencedDoseSequence(const OFBool emptyDefaultSe
 }
 
 
-DRTReferencedDoseSequence::DRTReferencedDoseSequence(const DRTReferencedDoseSequence &copy)
+DRTSourceInstanceSequence::DRTSourceInstanceSequence(const DRTSourceInstanceSequence &copy)
   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -186,7 +193,7 @@ DRTReferencedDoseSequence::DRTReferencedDoseSequence(const DRTReferencedDoseSequ
 }
 
 
-DRTReferencedDoseSequence &DRTReferencedDoseSequence::operator=(const DRTReferencedDoseSequence &copy)
+DRTSourceInstanceSequence &DRTSourceInstanceSequence::operator=(const DRTSourceInstanceSequence &copy)
 {
     if (this != &copy)
     {
@@ -214,13 +221,13 @@ DRTReferencedDoseSequence &DRTReferencedDoseSequence::operator=(const DRTReferen
 }
 
 
-DRTReferencedDoseSequence::~DRTReferencedDoseSequence()
+DRTSourceInstanceSequence::~DRTSourceInstanceSequence()
 {
     clear();
 }
 
 
-void DRTReferencedDoseSequence::clear()
+void DRTSourceInstanceSequence::clear()
 {
     if (!EmptyDefaultSequence)
     {
@@ -239,25 +246,25 @@ void DRTReferencedDoseSequence::clear()
 }
 
 
-OFBool DRTReferencedDoseSequence::isEmpty()
+OFBool DRTSourceInstanceSequence::isEmpty()
 {
     return SequenceOfItems.empty();
 }
 
 
-OFBool DRTReferencedDoseSequence::isValid() const
+OFBool DRTSourceInstanceSequence::isValid() const
 {
     return !EmptyDefaultSequence;
 }
 
 
-unsigned long DRTReferencedDoseSequence::getNumberOfItems() const
+unsigned long DRTSourceInstanceSequence::getNumberOfItems() const
 {
     return SequenceOfItems.size();
 }
 
 
-OFCondition DRTReferencedDoseSequence::gotoFirstItem()
+OFCondition DRTSourceInstanceSequence::gotoFirstItem()
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -269,7 +276,7 @@ OFCondition DRTReferencedDoseSequence::gotoFirstItem()
 }
 
 
-OFCondition DRTReferencedDoseSequence::gotoNextItem()
+OFCondition DRTSourceInstanceSequence::gotoNextItem()
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -281,7 +288,7 @@ OFCondition DRTReferencedDoseSequence::gotoNextItem()
 }
 
 
-OFCondition DRTReferencedDoseSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+OFCondition DRTSourceInstanceSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -301,7 +308,7 @@ OFCondition DRTReferencedDoseSequence::gotoItem(const unsigned long num, OFListI
 }
 
 
-OFCondition DRTReferencedDoseSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+OFCondition DRTSourceInstanceSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -321,13 +328,13 @@ OFCondition DRTReferencedDoseSequence::gotoItem(const unsigned long num, OFListC
 }
 
 
-OFCondition DRTReferencedDoseSequence::gotoItem(const unsigned long num)
+OFCondition DRTSourceInstanceSequence::gotoItem(const unsigned long num)
 {
     return gotoItem(num, CurrentItem);
 }
 
 
-OFCondition DRTReferencedDoseSequence::getCurrentItem(Item *&item) const
+OFCondition DRTSourceInstanceSequence::getCurrentItem(Item *&item) const
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -339,7 +346,7 @@ OFCondition DRTReferencedDoseSequence::getCurrentItem(Item *&item) const
 }
 
 
-DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getCurrentItem()
+DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getCurrentItem()
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -348,7 +355,7 @@ DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getCurrentItem()
 }
 
 
-const DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getCurrentItem() const
+const DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getCurrentItem() const
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -357,7 +364,7 @@ const DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getCurrentItem
 }
 
 
-OFCondition DRTReferencedDoseSequence::getItem(const unsigned long num, Item *&item)
+OFCondition DRTSourceInstanceSequence::getItem(const unsigned long num, Item *&item)
 {
     OFListIterator(Item *) iterator;
     OFCondition result = gotoItem(num, iterator);
@@ -367,7 +374,7 @@ OFCondition DRTReferencedDoseSequence::getItem(const unsigned long num, Item *&i
 }
 
 
-DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getItem(const unsigned long num)
+DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getItem(const unsigned long num)
 {
     OFListIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -377,7 +384,7 @@ DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getItem(const unsign
 }
 
 
-const DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getItem(const unsigned long num) const
+const DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::getItem(const unsigned long num) const
 {
     OFListConstIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -387,19 +394,19 @@ const DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::getItem(const
 }
 
 
-DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::operator[](const unsigned long num)
+DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::operator[](const unsigned long num)
 {
     return getItem(num);
 }
 
 
-const DRTReferencedDoseSequence::Item &DRTReferencedDoseSequence::operator[](const unsigned long num) const
+const DRTSourceInstanceSequence::Item &DRTSourceInstanceSequence::operator[](const unsigned long num) const
 {
     return getItem(num);
 }
 
 
-OFCondition DRTReferencedDoseSequence::addItem(Item *&item)
+OFCondition DRTSourceInstanceSequence::addItem(Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -416,7 +423,7 @@ OFCondition DRTReferencedDoseSequence::addItem(Item *&item)
 }
 
 
-OFCondition DRTReferencedDoseSequence::insertItem(const unsigned long pos, Item *&item)
+OFCondition DRTSourceInstanceSequence::insertItem(const unsigned long pos, Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -439,7 +446,7 @@ OFCondition DRTReferencedDoseSequence::insertItem(const unsigned long pos, Item
 }
 
 
-OFCondition DRTReferencedDoseSequence::removeItem(const unsigned long pos)
+OFCondition DRTSourceInstanceSequence::removeItem(const unsigned long pos)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -457,7 +464,7 @@ OFCondition DRTReferencedDoseSequence::removeItem(const unsigned long pos)
 }
 
 
-OFCondition DRTReferencedDoseSequence::read(DcmItem &dataset,
+OFCondition DRTSourceInstanceSequence::read(DcmItem &dataset,
                                             const OFString &card,
                                             const OFString &type,
                                             const char *moduleName)
@@ -469,7 +476,7 @@ OFCondition DRTReferencedDoseSequence::read(DcmItem &dataset,
         clear();
         /* retrieve sequence element from dataset */
         DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_ReferencedDoseSequence, sequence);
+        result = dataset.findAndGetSequence(DCM_SourceInstanceSequence, sequence);
         if (sequence != NULL)
         {
             if (checkElementValue(*sequence, card, type, result, moduleName))
@@ -499,7 +506,7 @@ OFCondition DRTReferencedDoseSequence::read(DcmItem &dataset,
                 }
             }
         } else {
-            DcmSequenceOfItems element(DCM_ReferencedDoseSequence);
+            DcmSequenceOfItems element(DCM_SourceInstanceSequence);
             checkElementValue(element, card, type, result, moduleName);
         }
     }
@@ -507,7 +514,7 @@ OFCondition DRTReferencedDoseSequence::read(DcmItem &dataset,
 }
 
 
-OFCondition DRTReferencedDoseSequence::write(DcmItem &dataset,
+OFCondition DRTSourceInstanceSequence::write(DcmItem &dataset,
                                              const OFString &card,
                                              const OFString &type,
                                              const char *moduleName)
@@ -516,7 +523,7 @@ OFCondition DRTReferencedDoseSequence::write(DcmItem &dataset,
     if (!EmptyDefaultSequence)
     {
         result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_ReferencedDoseSequence);
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SourceInstanceSequence);
         if (sequence != NULL)
         {
             result = EC_Normal;
diff --git a/dcmrt/libsrc/drtsis.cc b/dcmrt/libsrc/drtsis.cc
index 85b953c..0213e7c 100644
--- a/dcmrt/libsrc/drtsis.cc
+++ b/dcmrt/libsrc/drtsis.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTSourceImageSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtsns.cc b/dcmrt/libsrc/drtsns.cc
index b0febd2..f1a1d35 100644
--- a/dcmrt/libsrc/drtsns.cc
+++ b/dcmrt/libsrc/drtsns.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTSnoutSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtspccs.cc b/dcmrt/libsrc/drtspccs.cc
index be55f83..a504265 100644
--- a/dcmrt/libsrc/drtspccs.cc
+++ b/dcmrt/libsrc/drtspccs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTSegmentedPropertyCategoryCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item::Item(const OFBool emptyDefaultIt
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
@@ -55,6 +56,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
@@ -84,6 +86,7 @@ DRTSegmentedPropertyCategoryCodeSequence::Item &DRTSegmentedPropertyCategoryCode
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -107,6 +110,7 @@ void DRTSegmentedPropertyCategoryCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -128,6 +132,7 @@ OFBool DRTSegmentedPropertyCategoryCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -159,6 +164,7 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "SegmentedPropertyCategoryCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "SegmentedPropertyCategoryCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "SegmentedPropertyCategoryCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "SegmentedPropertyCategoryCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "SegmentedPropertyCategoryCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "SegmentedPropertyCategoryCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "SegmentedPropertyCategoryCodeSequence");
@@ -186,6 +192,7 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "SegmentedPropertyCategoryCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "SegmentedPropertyCategoryCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "SegmentedPropertyCategoryCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "SegmentedPropertyCategoryCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "SegmentedPropertyCategoryCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "SegmentedPropertyCategoryCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "SegmentedPropertyCategoryCodeSequence");
@@ -303,6 +310,15 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::getMappingResource(O
 }
 
 
+OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -477,6 +493,19 @@ OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::setMappingResource(c
 }
 
 
+OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTSegmentedPropertyCategoryCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtspcs.cc b/dcmrt/libsrc/drtspcs.cc
index 7f47f65..fc2a440 100644
--- a/dcmrt/libsrc/drtspcs.cc
+++ b/dcmrt/libsrc/drtspcs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTScheduledProtocolCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -34,6 +34,7 @@ DRTScheduledProtocolCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     ProtocolContextSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     URNCodeValue(DCM_URNCodeValue)
@@ -56,6 +57,7 @@ DRTScheduledProtocolCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     ProtocolContextSequence(copy.ProtocolContextSequence),
     URNCodeValue(copy.URNCodeValue)
@@ -86,6 +88,7 @@ DRTScheduledProtocolCodeSequence::Item &DRTScheduledProtocolCodeSequence::Item::
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         ProtocolContextSequence = copy.ProtocolContextSequence;
         URNCodeValue = copy.URNCodeValue;
@@ -110,6 +113,7 @@ void DRTScheduledProtocolCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -132,6 +136,7 @@ OFBool DRTScheduledProtocolCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -164,6 +169,7 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, ContextUID, "1", "3", "ScheduledProtocolCodeSequence");
         getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "ScheduledProtocolCodeSequence");
         getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "ScheduledProtocolCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "ScheduledProtocolCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "ScheduledProtocolCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "ScheduledProtocolCodeSequence");
         getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "ScheduledProtocolCodeSequence");
@@ -192,6 +198,7 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "ScheduledProtocolCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "ScheduledProtocolCodeSequence");
         addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "ScheduledProtocolCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "ScheduledProtocolCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "ScheduledProtocolCodeSequence");
         addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "ScheduledProtocolCodeSequence");
         addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "ScheduledProtocolCodeSequence");
@@ -310,6 +317,15 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::getMappingResource(OFString
 }
 
 
+OFCondition DRTScheduledProtocolCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
 OFCondition DRTScheduledProtocolCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -484,6 +500,19 @@ OFCondition DRTScheduledProtocolCodeSequence::Item::setMappingResource(const OFS
 }
 
 
+OFCondition DRTScheduledProtocolCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTScheduledProtocolCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drtopis.cc b/dcmrt/libsrc/drtspgis.cc
similarity index 69%
copy from dcmrt/libsrc/drtopis.cc
copy to dcmrt/libsrc/drtspgis.cc
index a47bd1e..a105a57 100644
--- a/dcmrt/libsrc/drtopis.cc
+++ b/dcmrt/libsrc/drtspgis.cc
@@ -1,50 +1,48 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Source file for class DRTOtherPatientIDsSequence
+ *  Source file for class DRTSourcePatientGroupIdentificationSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
-#include "dcmtk/dcmrt/seq/drtopis.h"
+#include "dcmtk/dcmrt/seq/drtspgis.h"
 
 
 // --- item class ---
 
-DRTOtherPatientIDsSequence::Item::Item(const OFBool emptyDefaultItem)
+DRTSourcePatientGroupIdentificationSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(emptyDefaultItem /*emptyDefaultSequence*/),
-    PatientID(DCM_PatientID),
-    TypeOfPatientID(DCM_TypeOfPatientID)
+    PatientID(DCM_PatientID)
 {
 }
 
 
-DRTOtherPatientIDsSequence::Item::Item(const Item &copy)
+DRTSourcePatientGroupIdentificationSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
-    PatientID(copy.PatientID),
-    TypeOfPatientID(copy.TypeOfPatientID)
+    PatientID(copy.PatientID)
 {
 }
 
 
-DRTOtherPatientIDsSequence::Item::~Item()
+DRTSourcePatientGroupIdentificationSequence::Item::~Item()
 {
 }
 
 
-DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::Item::operator=(const Item &copy)
+DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::Item::operator=(const Item &copy)
 {
     if (this != &copy)
     {
@@ -52,13 +50,12 @@ DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::Item::operator=(co
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientID = copy.PatientID;
-        TypeOfPatientID = copy.TypeOfPatientID;
     }
     return *this;
 }
 
 
-void DRTOtherPatientIDsSequence::Item::clear()
+void DRTSourcePatientGroupIdentificationSequence::Item::clear()
 {
     if (!EmptyDefaultItem)
     {
@@ -66,59 +63,55 @@ void DRTOtherPatientIDsSequence::Item::clear()
         PatientID.clear();
         IssuerOfPatientID.clear();
         IssuerOfPatientIDQualifiersSequence.clear();
-        TypeOfPatientID.clear();
     }
 }
 
 
-OFBool DRTOtherPatientIDsSequence::Item::isEmpty()
+OFBool DRTSourcePatientGroupIdentificationSequence::Item::isEmpty()
 {
     return PatientID.isEmpty() &&
            IssuerOfPatientID.isEmpty() &&
-           IssuerOfPatientIDQualifiersSequence.isEmpty() &&
-           TypeOfPatientID.isEmpty();
+           IssuerOfPatientIDQualifiersSequence.isEmpty();
 }
 
 
-OFBool DRTOtherPatientIDsSequence::Item::isValid() const
+OFBool DRTSourcePatientGroupIdentificationSequence::Item::isValid() const
 {
     return !EmptyDefaultItem;
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::read(DcmItem &item)
+OFCondition DRTSourcePatientGroupIdentificationSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, PatientID, "1", "1", "OtherPatientIDsSequence");
-        getAndCheckElementFromDataset(item, IssuerOfPatientID, "1", "3", "OtherPatientIDsSequence");
-        IssuerOfPatientIDQualifiersSequence.read(item, "1-n", "3", "OtherPatientIDsSequence");
-        getAndCheckElementFromDataset(item, TypeOfPatientID, "1", "1", "OtherPatientIDsSequence");
+        getAndCheckElementFromDataset(item, PatientID, "1", "1", "SourcePatientGroupIdentificationSequence");
+        getAndCheckElementFromDataset(item, IssuerOfPatientID, "1", "3", "SourcePatientGroupIdentificationSequence");
+        IssuerOfPatientIDQualifiersSequence.read(item, "1-n", "3", "SourcePatientGroupIdentificationSequence");
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::write(DcmItem &item)
+OFCondition DRTSourcePatientGroupIdentificationSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmLongString(PatientID), "1", "1", "OtherPatientIDsSequence");
-        addElementToDataset(result, item, new DcmLongString(IssuerOfPatientID), "1", "3", "OtherPatientIDsSequence");
-        if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(item, "1-n", "3", "OtherPatientIDsSequence");
-        addElementToDataset(result, item, new DcmCodeString(TypeOfPatientID), "1", "1", "OtherPatientIDsSequence");
+        addElementToDataset(result, item, new DcmLongString(PatientID), "1", "1", "SourcePatientGroupIdentificationSequence");
+        addElementToDataset(result, item, new DcmLongString(IssuerOfPatientID), "1", "3", "SourcePatientGroupIdentificationSequence");
+        if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(item, "1-n", "3", "SourcePatientGroupIdentificationSequence");
     }
     return result;
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::getIssuerOfPatientID(OFString &value, const signed long pos) const
+OFCondition DRTSourcePatientGroupIdentificationSequence::Item::getIssuerOfPatientID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -127,7 +120,7 @@ OFCondition DRTOtherPatientIDsSequence::Item::getIssuerOfPatientID(OFString &val
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::getPatientID(OFString &value, const signed long pos) const
+OFCondition DRTSourcePatientGroupIdentificationSequence::Item::getPatientID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -136,16 +129,7 @@ OFCondition DRTOtherPatientIDsSequence::Item::getPatientID(OFString &value, cons
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::getTypeOfPatientID(OFString &value, const signed long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return getStringValueFromElement(TypeOfPatientID, value, pos);
-}
-
-
-OFCondition DRTOtherPatientIDsSequence::Item::setIssuerOfPatientID(const OFString &value, const OFBool check)
+OFCondition DRTSourcePatientGroupIdentificationSequence::Item::setIssuerOfPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -158,7 +142,7 @@ OFCondition DRTOtherPatientIDsSequence::Item::setIssuerOfPatientID(const OFStrin
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::setPatientID(const OFString &value, const OFBool check)
+OFCondition DRTSourcePatientGroupIdentificationSequence::Item::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -171,22 +155,9 @@ OFCondition DRTOtherPatientIDsSequence::Item::setPatientID(const OFString &value
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::Item::setTypeOfPatientID(const OFString &value, const OFBool check)
-{
-    OFCondition result = EC_IllegalCall;
-    if (!EmptyDefaultItem)
-    {
-        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
-        if (result.good())
-            result = TypeOfPatientID.putOFStringArray(value);
-    }
-    return result;
-}
-
-
 // --- sequence class ---
 
-DRTOtherPatientIDsSequence::DRTOtherPatientIDsSequence(const OFBool emptyDefaultSequence)
+DRTSourcePatientGroupIdentificationSequence::DRTSourcePatientGroupIdentificationSequence(const OFBool emptyDefaultSequence)
   : EmptyDefaultSequence(emptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -196,7 +167,7 @@ DRTOtherPatientIDsSequence::DRTOtherPatientIDsSequence(const OFBool emptyDefault
 }
 
 
-DRTOtherPatientIDsSequence::DRTOtherPatientIDsSequence(const DRTOtherPatientIDsSequence &copy)
+DRTSourcePatientGroupIdentificationSequence::DRTSourcePatientGroupIdentificationSequence(const DRTSourcePatientGroupIdentificationSequence &copy)
   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -222,7 +193,7 @@ DRTOtherPatientIDsSequence::DRTOtherPatientIDsSequence(const DRTOtherPatientIDsS
 }
 
 
-DRTOtherPatientIDsSequence &DRTOtherPatientIDsSequence::operator=(const DRTOtherPatientIDsSequence &copy)
+DRTSourcePatientGroupIdentificationSequence &DRTSourcePatientGroupIdentificationSequence::operator=(const DRTSourcePatientGroupIdentificationSequence &copy)
 {
     if (this != &copy)
     {
@@ -250,13 +221,13 @@ DRTOtherPatientIDsSequence &DRTOtherPatientIDsSequence::operator=(const DRTOther
 }
 
 
-DRTOtherPatientIDsSequence::~DRTOtherPatientIDsSequence()
+DRTSourcePatientGroupIdentificationSequence::~DRTSourcePatientGroupIdentificationSequence()
 {
     clear();
 }
 
 
-void DRTOtherPatientIDsSequence::clear()
+void DRTSourcePatientGroupIdentificationSequence::clear()
 {
     if (!EmptyDefaultSequence)
     {
@@ -275,25 +246,25 @@ void DRTOtherPatientIDsSequence::clear()
 }
 
 
-OFBool DRTOtherPatientIDsSequence::isEmpty()
+OFBool DRTSourcePatientGroupIdentificationSequence::isEmpty()
 {
     return SequenceOfItems.empty();
 }
 
 
-OFBool DRTOtherPatientIDsSequence::isValid() const
+OFBool DRTSourcePatientGroupIdentificationSequence::isValid() const
 {
     return !EmptyDefaultSequence;
 }
 
 
-unsigned long DRTOtherPatientIDsSequence::getNumberOfItems() const
+unsigned long DRTSourcePatientGroupIdentificationSequence::getNumberOfItems() const
 {
     return SequenceOfItems.size();
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::gotoFirstItem()
+OFCondition DRTSourcePatientGroupIdentificationSequence::gotoFirstItem()
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -305,7 +276,7 @@ OFCondition DRTOtherPatientIDsSequence::gotoFirstItem()
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::gotoNextItem()
+OFCondition DRTSourcePatientGroupIdentificationSequence::gotoNextItem()
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -317,7 +288,7 @@ OFCondition DRTOtherPatientIDsSequence::gotoNextItem()
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+OFCondition DRTSourcePatientGroupIdentificationSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -337,7 +308,7 @@ OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num, OFList
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+OFCondition DRTSourcePatientGroupIdentificationSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -357,13 +328,13 @@ OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num, OFList
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::gotoItem(const unsigned long num)
+OFCondition DRTSourcePatientGroupIdentificationSequence::gotoItem(const unsigned long num)
 {
     return gotoItem(num, CurrentItem);
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::getCurrentItem(Item *&item) const
+OFCondition DRTSourcePatientGroupIdentificationSequence::getCurrentItem(Item *&item) const
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -375,7 +346,7 @@ OFCondition DRTOtherPatientIDsSequence::getCurrentItem(Item *&item) const
 }
 
 
-DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getCurrentItem()
+DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getCurrentItem()
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -384,7 +355,7 @@ DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getCurrentItem()
 }
 
 
-const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getCurrentItem() const
+const DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getCurrentItem() const
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -393,7 +364,7 @@ const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getCurrentIt
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::getItem(const unsigned long num, Item *&item)
+OFCondition DRTSourcePatientGroupIdentificationSequence::getItem(const unsigned long num, Item *&item)
 {
     OFListIterator(Item *) iterator;
     OFCondition result = gotoItem(num, iterator);
@@ -403,7 +374,7 @@ OFCondition DRTOtherPatientIDsSequence::getItem(const unsigned long num, Item *&
 }
 
 
-DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(const unsigned long num)
+DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getItem(const unsigned long num)
 {
     OFListIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -413,7 +384,7 @@ DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(const unsi
 }
 
 
-const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(const unsigned long num) const
+const DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::getItem(const unsigned long num) const
 {
     OFListConstIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -423,19 +394,19 @@ const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::getItem(cons
 }
 
 
-DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::operator[](const unsigned long num)
+DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::operator[](const unsigned long num)
 {
     return getItem(num);
 }
 
 
-const DRTOtherPatientIDsSequence::Item &DRTOtherPatientIDsSequence::operator[](const unsigned long num) const
+const DRTSourcePatientGroupIdentificationSequence::Item &DRTSourcePatientGroupIdentificationSequence::operator[](const unsigned long num) const
 {
     return getItem(num);
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::addItem(Item *&item)
+OFCondition DRTSourcePatientGroupIdentificationSequence::addItem(Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -452,7 +423,7 @@ OFCondition DRTOtherPatientIDsSequence::addItem(Item *&item)
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::insertItem(const unsigned long pos, Item *&item)
+OFCondition DRTSourcePatientGroupIdentificationSequence::insertItem(const unsigned long pos, Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -475,7 +446,7 @@ OFCondition DRTOtherPatientIDsSequence::insertItem(const unsigned long pos, Item
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::removeItem(const unsigned long pos)
+OFCondition DRTSourcePatientGroupIdentificationSequence::removeItem(const unsigned long pos)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -493,10 +464,10 @@ OFCondition DRTOtherPatientIDsSequence::removeItem(const unsigned long pos)
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::read(DcmItem &dataset,
-                                             const OFString &card,
-                                             const OFString &type,
-                                             const char *moduleName)
+OFCondition DRTSourcePatientGroupIdentificationSequence::read(DcmItem &dataset,
+                                                              const OFString &card,
+                                                              const OFString &type,
+                                                              const char *moduleName)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -505,7 +476,7 @@ OFCondition DRTOtherPatientIDsSequence::read(DcmItem &dataset,
         clear();
         /* retrieve sequence element from dataset */
         DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_OtherPatientIDsSequence, sequence);
+        result = dataset.findAndGetSequence(DCM_SourcePatientGroupIdentificationSequence, sequence);
         if (sequence != NULL)
         {
             if (checkElementValue(*sequence, card, type, result, moduleName))
@@ -535,7 +506,7 @@ OFCondition DRTOtherPatientIDsSequence::read(DcmItem &dataset,
                 }
             }
         } else {
-            DcmSequenceOfItems element(DCM_OtherPatientIDsSequence);
+            DcmSequenceOfItems element(DCM_SourcePatientGroupIdentificationSequence);
             checkElementValue(element, card, type, result, moduleName);
         }
     }
@@ -543,16 +514,16 @@ OFCondition DRTOtherPatientIDsSequence::read(DcmItem &dataset,
 }
 
 
-OFCondition DRTOtherPatientIDsSequence::write(DcmItem &dataset,
-                                              const OFString &card,
-                                              const OFString &type,
-                                              const char *moduleName)
+OFCondition DRTSourcePatientGroupIdentificationSequence::write(DcmItem &dataset,
+                                                               const OFString &card,
+                                                               const OFString &type,
+                                                               const char *moduleName)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
     {
         result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_OtherPatientIDsSequence);
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SourcePatientGroupIdentificationSequence);
         if (sequence != NULL)
         {
             result = EC_Normal;
diff --git a/dcmrt/libsrc/drtarics.cc b/dcmrt/libsrc/drtsptcs.cc
similarity index 74%
rename from dcmrt/libsrc/drtarics.cc
rename to dcmrt/libsrc/drtsptcs.cc
index 7e6d530..ac10cb9 100644
--- a/dcmrt/libsrc/drtarics.cc
+++ b/dcmrt/libsrc/drtsptcs.cc
@@ -1,25 +1,25 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Source file for class DRTAdditionalRTROIIdentificationCodeSequence
+ *  Source file for class DRTSegmentedPropertyTypeModifierCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
-#include "dcmtk/dcmrt/seq/drtarics.h"
+#include "dcmtk/dcmrt/seq/drtsptcs.h"
 
 
 // --- item class ---
 
-DRTAdditionalRTROIIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem)
+DRTSegmentedPropertyTypeModifierCodeSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
     CodeMeaning(DCM_CodeMeaning),
     CodeValue(DCM_CodeValue),
@@ -34,14 +34,14 @@ DRTAdditionalRTROIIdentificationCodeSequence::Item::Item(const OFBool emptyDefau
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
-    PurposeOfReferenceCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     URNCodeValue(DCM_URNCodeValue)
 {
 }
 
 
-DRTAdditionalRTROIIdentificationCodeSequence::Item::Item(const Item &copy)
+DRTSegmentedPropertyTypeModifierCodeSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
     CodeMeaning(copy.CodeMeaning),
     CodeValue(copy.CodeValue),
@@ -56,19 +56,19 @@ DRTAdditionalRTROIIdentificationCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
-    PurposeOfReferenceCodeSequence(copy.PurposeOfReferenceCodeSequence),
     URNCodeValue(copy.URNCodeValue)
 {
 }
 
 
-DRTAdditionalRTROIIdentificationCodeSequence::Item::~Item()
+DRTSegmentedPropertyTypeModifierCodeSequence::Item::~Item()
 {
 }
 
 
-DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::Item::operator=(const Item &copy)
+DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::Item::operator=(const Item &copy)
 {
     if (this != &copy)
     {
@@ -86,15 +86,15 @@ DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentifica
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
-        PurposeOfReferenceCodeSequence = copy.PurposeOfReferenceCodeSequence;
         URNCodeValue = copy.URNCodeValue;
     }
     return *this;
 }
 
 
-void DRTAdditionalRTROIIdentificationCodeSequence::Item::clear()
+void DRTSegmentedPropertyTypeModifierCodeSequence::Item::clear()
 {
     if (!EmptyDefaultItem)
     {
@@ -110,16 +110,16 @@ void DRTAdditionalRTROIIdentificationCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
         ContextGroupExtensionCreatorUID.clear();
-        PurposeOfReferenceCodeSequence.clear();
     }
 }
 
 
-OFBool DRTAdditionalRTROIIdentificationCodeSequence::Item::isEmpty()
+OFBool DRTSegmentedPropertyTypeModifierCodeSequence::Item::isEmpty()
 {
     return CodeValue.isEmpty() &&
            CodingSchemeDesignator.isEmpty() &&
@@ -132,77 +132,77 @@ OFBool DRTAdditionalRTROIIdentificationCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
-           ContextGroupExtensionCreatorUID.isEmpty() &&
-           PurposeOfReferenceCodeSequence.isEmpty();
+           ContextGroupExtensionCreatorUID.isEmpty();
 }
 
 
-OFBool DRTAdditionalRTROIIdentificationCodeSequence::Item::isValid() const
+OFBool DRTSegmentedPropertyTypeModifierCodeSequence::Item::isValid() const
 {
     return !EmptyDefaultItem;
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::read(DcmItem &item)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        EquivalentCodeSequence.read(item, "1-n", "3", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        PurposeOfReferenceCodeSequence.read(item, "1-n", "1", "AdditionalRTROIIdentificationCodeSequence");
+        getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        EquivalentCodeSequence.read(item, "1-n", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::write(DcmItem &item)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "AdditionalRTROIIdentificationCodeSequence");
-        if (result.good()) result = PurposeOfReferenceCodeSequence.write(item, "1-n", "1", "AdditionalRTROIIdentificationCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "SegmentedPropertyTypeModifierCodeSequence");
     }
     return result;
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -211,7 +211,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodeMeaning(O
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -220,7 +220,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodeValue(OFS
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -229,7 +229,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodingSchemeD
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -238,7 +238,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getCodingSchemeV
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -247,7 +247,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupE
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -256,7 +256,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupE
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -265,7 +265,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupL
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -274,7 +274,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextGroupV
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -283,7 +283,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextIdenti
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -292,7 +292,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getContextUID(OF
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -301,7 +301,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getLongCodeValue
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -310,7 +310,16 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getMappingResour
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -319,7 +328,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getMappingResour
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -328,7 +337,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::getURNCodeValue(
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -341,7 +350,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodeMeaning(c
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -354,7 +363,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodeValue(con
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -367,7 +376,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodingSchemeD
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -380,7 +389,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setCodingSchemeV
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -393,7 +402,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupE
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -406,7 +415,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupE
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -419,7 +428,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupL
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -432,7 +441,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextGroupV
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -445,7 +454,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextIdenti
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextUID(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setContextUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -458,7 +467,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setContextUID(co
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -471,7 +480,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setLongCodeValue
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -484,7 +493,20 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setMappingResour
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -497,7 +519,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setMappingResour
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -512,7 +534,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::Item::setURNCodeValue(
 
 // --- sequence class ---
 
-DRTAdditionalRTROIIdentificationCodeSequence::DRTAdditionalRTROIIdentificationCodeSequence(const OFBool emptyDefaultSequence)
+DRTSegmentedPropertyTypeModifierCodeSequence::DRTSegmentedPropertyTypeModifierCodeSequence(const OFBool emptyDefaultSequence)
   : EmptyDefaultSequence(emptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -522,7 +544,7 @@ DRTAdditionalRTROIIdentificationCodeSequence::DRTAdditionalRTROIIdentificationCo
 }
 
 
-DRTAdditionalRTROIIdentificationCodeSequence::DRTAdditionalRTROIIdentificationCodeSequence(const DRTAdditionalRTROIIdentificationCodeSequence &copy)
+DRTSegmentedPropertyTypeModifierCodeSequence::DRTSegmentedPropertyTypeModifierCodeSequence(const DRTSegmentedPropertyTypeModifierCodeSequence &copy)
   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -548,7 +570,7 @@ DRTAdditionalRTROIIdentificationCodeSequence::DRTAdditionalRTROIIdentificationCo
 }
 
 
-DRTAdditionalRTROIIdentificationCodeSequence &DRTAdditionalRTROIIdentificationCodeSequence::operator=(const DRTAdditionalRTROIIdentificationCodeSequence &copy)
+DRTSegmentedPropertyTypeModifierCodeSequence &DRTSegmentedPropertyTypeModifierCodeSequence::operator=(const DRTSegmentedPropertyTypeModifierCodeSequence &copy)
 {
     if (this != &copy)
     {
@@ -576,13 +598,13 @@ DRTAdditionalRTROIIdentificationCodeSequence &DRTAdditionalRTROIIdentificationCo
 }
 
 
-DRTAdditionalRTROIIdentificationCodeSequence::~DRTAdditionalRTROIIdentificationCodeSequence()
+DRTSegmentedPropertyTypeModifierCodeSequence::~DRTSegmentedPropertyTypeModifierCodeSequence()
 {
     clear();
 }
 
 
-void DRTAdditionalRTROIIdentificationCodeSequence::clear()
+void DRTSegmentedPropertyTypeModifierCodeSequence::clear()
 {
     if (!EmptyDefaultSequence)
     {
@@ -601,25 +623,25 @@ void DRTAdditionalRTROIIdentificationCodeSequence::clear()
 }
 
 
-OFBool DRTAdditionalRTROIIdentificationCodeSequence::isEmpty()
+OFBool DRTSegmentedPropertyTypeModifierCodeSequence::isEmpty()
 {
     return SequenceOfItems.empty();
 }
 
 
-OFBool DRTAdditionalRTROIIdentificationCodeSequence::isValid() const
+OFBool DRTSegmentedPropertyTypeModifierCodeSequence::isValid() const
 {
     return !EmptyDefaultSequence;
 }
 
 
-unsigned long DRTAdditionalRTROIIdentificationCodeSequence::getNumberOfItems() const
+unsigned long DRTSegmentedPropertyTypeModifierCodeSequence::getNumberOfItems() const
 {
     return SequenceOfItems.size();
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoFirstItem()
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoFirstItem()
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -631,7 +653,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoFirstItem()
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoNextItem()
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoNextItem()
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -643,7 +665,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoNextItem()
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -663,7 +685,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigne
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -683,13 +705,13 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigne
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::gotoItem(const unsigned long num)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::gotoItem(const unsigned long num)
 {
     return gotoItem(num, CurrentItem);
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem(Item *&item) const
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::getCurrentItem(Item *&item) const
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -701,7 +723,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem(Item *&
 }
 
 
-DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem()
+DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getCurrentItem()
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -710,7 +732,7 @@ DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentifica
 }
 
 
-const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getCurrentItem() const
+const DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getCurrentItem() const
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -719,7 +741,7 @@ const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIden
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned long num, Item *&item)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::getItem(const unsigned long num, Item *&item)
 {
     OFListIterator(Item *) iterator;
     OFCondition result = gotoItem(num, iterator);
@@ -729,7 +751,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned
 }
 
 
-DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned long num)
+DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getItem(const unsigned long num)
 {
     OFListIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -739,7 +761,7 @@ DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentifica
 }
 
 
-const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::getItem(const unsigned long num) const
+const DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::getItem(const unsigned long num) const
 {
     OFListConstIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -749,19 +771,19 @@ const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIden
 }
 
 
-DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::operator[](const unsigned long num)
+DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::operator[](const unsigned long num)
 {
     return getItem(num);
 }
 
 
-const DRTAdditionalRTROIIdentificationCodeSequence::Item &DRTAdditionalRTROIIdentificationCodeSequence::operator[](const unsigned long num) const
+const DRTSegmentedPropertyTypeModifierCodeSequence::Item &DRTSegmentedPropertyTypeModifierCodeSequence::operator[](const unsigned long num) const
 {
     return getItem(num);
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::addItem(Item *&item)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::addItem(Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -778,7 +800,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::addItem(Item *&item)
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::insertItem(const unsigned long pos, Item *&item)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::insertItem(const unsigned long pos, Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -801,7 +823,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::insertItem(const unsig
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::removeItem(const unsigned long pos)
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::removeItem(const unsigned long pos)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -819,7 +841,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::removeItem(const unsig
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::read(DcmItem &dataset,
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::read(DcmItem &dataset,
                                                                const OFString &card,
                                                                const OFString &type,
                                                                const char *moduleName)
@@ -831,7 +853,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::read(DcmItem &dataset,
         clear();
         /* retrieve sequence element from dataset */
         DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_AdditionalRTROIIdentificationCodeSequence, sequence);
+        result = dataset.findAndGetSequence(DCM_SegmentedPropertyTypeModifierCodeSequence, sequence);
         if (sequence != NULL)
         {
             if (checkElementValue(*sequence, card, type, result, moduleName))
@@ -861,7 +883,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::read(DcmItem &dataset,
                 }
             }
         } else {
-            DcmSequenceOfItems element(DCM_AdditionalRTROIIdentificationCodeSequence);
+            DcmSequenceOfItems element(DCM_SegmentedPropertyTypeModifierCodeSequence);
             checkElementValue(element, card, type, result, moduleName);
         }
     }
@@ -869,7 +891,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::read(DcmItem &dataset,
 }
 
 
-OFCondition DRTAdditionalRTROIIdentificationCodeSequence::write(DcmItem &dataset,
+OFCondition DRTSegmentedPropertyTypeModifierCodeSequence::write(DcmItem &dataset,
                                                                 const OFString &card,
                                                                 const OFString &type,
                                                                 const char *moduleName)
@@ -878,7 +900,7 @@ OFCondition DRTAdditionalRTROIIdentificationCodeSequence::write(DcmItem &dataset
     if (!EmptyDefaultSequence)
     {
         result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_AdditionalRTROIIdentificationCodeSequence);
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SegmentedPropertyTypeModifierCodeSequence);
         if (sequence != NULL)
         {
             result = EC_Normal;
diff --git a/dcmrt/libsrc/drtss.cc b/dcmrt/libsrc/drtss.cc
index 0bfbd0c..00bb93a 100644
--- a/dcmrt/libsrc/drtss.cc
+++ b/dcmrt/libsrc/drtss.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTSourceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtpics.cc b/dcmrt/libsrc/drtssrcs.cc
similarity index 75%
copy from dcmrt/libsrc/drtpics.cc
copy to dcmrt/libsrc/drtssrcs.cc
index 77b1ad8..da24b05 100644
--- a/dcmrt/libsrc/drtpics.cc
+++ b/dcmrt/libsrc/drtssrcs.cc
@@ -1,25 +1,25 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Source file for class DRTPersonIdentificationCodeSequence
+ *  Source file for class DRTStrainSourceRegistryCodeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
-#include "dcmtk/dcmrt/seq/drtpics.h"
+#include "dcmtk/dcmrt/seq/drtssrcs.h"
 
 
 // --- item class ---
 
-DRTPersonIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem)
+DRTStrainSourceRegistryCodeSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
     CodeMeaning(DCM_CodeMeaning),
     CodeValue(DCM_CodeValue),
@@ -34,13 +34,14 @@ DRTPersonIdentificationCodeSequence::Item::Item(const OFBool emptyDefaultItem)
     EquivalentCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     LongCodeValue(DCM_LongCodeValue),
     MappingResource(DCM_MappingResource),
+    MappingResourceName(DCM_MappingResourceName),
     MappingResourceUID(DCM_MappingResourceUID),
     URNCodeValue(DCM_URNCodeValue)
 {
 }
 
 
-DRTPersonIdentificationCodeSequence::Item::Item(const Item &copy)
+DRTStrainSourceRegistryCodeSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
     CodeMeaning(copy.CodeMeaning),
     CodeValue(copy.CodeValue),
@@ -55,18 +56,19 @@ DRTPersonIdentificationCodeSequence::Item::Item(const Item &copy)
     EquivalentCodeSequence(copy.EquivalentCodeSequence),
     LongCodeValue(copy.LongCodeValue),
     MappingResource(copy.MappingResource),
+    MappingResourceName(copy.MappingResourceName),
     MappingResourceUID(copy.MappingResourceUID),
     URNCodeValue(copy.URNCodeValue)
 {
 }
 
 
-DRTPersonIdentificationCodeSequence::Item::~Item()
+DRTStrainSourceRegistryCodeSequence::Item::~Item()
 {
 }
 
 
-DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::Item::operator=(const Item &copy)
+DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::Item::operator=(const Item &copy)
 {
     if (this != &copy)
     {
@@ -84,6 +86,7 @@ DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::
         EquivalentCodeSequence = copy.EquivalentCodeSequence;
         LongCodeValue = copy.LongCodeValue;
         MappingResource = copy.MappingResource;
+        MappingResourceName = copy.MappingResourceName;
         MappingResourceUID = copy.MappingResourceUID;
         URNCodeValue = copy.URNCodeValue;
     }
@@ -91,7 +94,7 @@ DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::
 }
 
 
-void DRTPersonIdentificationCodeSequence::Item::clear()
+void DRTStrainSourceRegistryCodeSequence::Item::clear()
 {
     if (!EmptyDefaultItem)
     {
@@ -107,6 +110,7 @@ void DRTPersonIdentificationCodeSequence::Item::clear()
         ContextUID.clear();
         MappingResource.clear();
         MappingResourceUID.clear();
+        MappingResourceName.clear();
         ContextGroupVersion.clear();
         ContextGroupExtensionFlag.clear();
         ContextGroupLocalVersion.clear();
@@ -115,7 +119,7 @@ void DRTPersonIdentificationCodeSequence::Item::clear()
 }
 
 
-OFBool DRTPersonIdentificationCodeSequence::Item::isEmpty()
+OFBool DRTStrainSourceRegistryCodeSequence::Item::isEmpty()
 {
     return CodeValue.isEmpty() &&
            CodingSchemeDesignator.isEmpty() &&
@@ -128,6 +132,7 @@ OFBool DRTPersonIdentificationCodeSequence::Item::isEmpty()
            ContextUID.isEmpty() &&
            MappingResource.isEmpty() &&
            MappingResourceUID.isEmpty() &&
+           MappingResourceName.isEmpty() &&
            ContextGroupVersion.isEmpty() &&
            ContextGroupExtensionFlag.isEmpty() &&
            ContextGroupLocalVersion.isEmpty() &&
@@ -135,67 +140,69 @@ OFBool DRTPersonIdentificationCodeSequence::Item::isEmpty()
 }
 
 
-OFBool DRTPersonIdentificationCodeSequence::Item::isValid() const
+OFBool DRTStrainSourceRegistryCodeSequence::Item::isValid() const
 {
     return !EmptyDefaultItem;
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::read(DcmItem &item)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "PersonIdentificationCodeSequence");
-        EquivalentCodeSequence.read(item, "1-n", "3", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "PersonIdentificationCodeSequence");
-        getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "PersonIdentificationCodeSequence");
+        getAndCheckElementFromDataset(item, CodeValue, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, CodingSchemeDesignator, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, CodingSchemeVersion, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, CodeMeaning, "1", "1", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, LongCodeValue, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, URNCodeValue, "1", "1C", "StrainSourceRegistryCodeSequence");
+        EquivalentCodeSequence.read(item, "1-n", "3", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, ContextIdentifier, "1", "3", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, ContextUID, "1", "3", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResource, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceUID, "1", "3", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, MappingResourceName, "1", "3", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupVersion, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionFlag, "1", "3", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupLocalVersion, "1", "1C", "StrainSourceRegistryCodeSequence");
+        getAndCheckElementFromDataset(item, ContextGroupExtensionCreatorUID, "1", "1C", "StrainSourceRegistryCodeSequence");
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::write(DcmItem &item)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "PersonIdentificationCodeSequence");
-        if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "PersonIdentificationCodeSequence");
-        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "PersonIdentificationCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodeValue), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodingSchemeDesignator), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmShortString(CodingSchemeVersion), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(CodeMeaning), "1", "1", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmUnlimitedCharacters(LongCodeValue), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmUniversalResourceIdentifierOrLocator(URNCodeValue), "1", "1C", "StrainSourceRegistryCodeSequence");
+        if (result.good()) result = EquivalentCodeSequence.write(item, "1-n", "3", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextIdentifier), "1", "3", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextUID), "1", "3", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(MappingResource), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(MappingResourceUID), "1", "3", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmLongString(MappingResourceName), "1", "3", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupVersion), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmCodeString(ContextGroupExtensionFlag), "1", "3", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmDateTime(ContextGroupLocalVersion), "1", "1C", "StrainSourceRegistryCodeSequence");
+        addElementToDataset(result, item, new DcmUniqueIdentifier(ContextGroupExtensionCreatorUID), "1", "1C", "StrainSourceRegistryCodeSequence");
     }
     return result;
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodeMeaning(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -204,7 +211,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getCodeMeaning(OFString &
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -213,7 +220,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getCodeValue(OFString &va
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodingSchemeDesignator(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -222,7 +229,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getCodingSchemeDesignator
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getCodingSchemeVersion(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -231,7 +238,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getCodingSchemeVersion(OF
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupExtensionCreatorUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -240,7 +247,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getContextGroupExtensionC
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupExtensionFlag(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -249,7 +256,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getContextGroupExtensionF
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupLocalVersion(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -258,7 +265,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getContextGroupLocalVersi
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextGroupVersion(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -267,7 +274,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getContextGroupVersion(OF
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextIdentifier(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -276,7 +283,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getContextIdentifier(OFSt
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getContextUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -285,7 +292,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getContextUID(OFString &v
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getLongCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -294,7 +301,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getLongCodeValue(OFString
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getMappingResource(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -303,7 +310,16 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResource(OFStri
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getMappingResourceName(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(MappingResourceName, value, pos);
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getMappingResourceUID(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -312,7 +328,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getMappingResourceUID(OFS
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::getURNCodeValue(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
@@ -321,7 +337,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::getURNCodeValue(OFString
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodeMeaning(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -334,7 +350,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setCodeMeaning(const OFSt
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -347,7 +363,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setCodeValue(const OFStri
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodingSchemeDesignator(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -360,7 +376,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setCodingSchemeDesignator
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setCodingSchemeVersion(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -373,7 +389,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setCodingSchemeVersion(co
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupExtensionCreatorUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -386,7 +402,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setContextGroupExtensionC
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupExtensionFlag(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -399,7 +415,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setContextGroupExtensionF
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupLocalVersion(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -412,7 +428,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setContextGroupLocalVersi
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextGroupVersion(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -425,7 +441,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setContextGroupVersion(co
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextIdentifier(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -438,7 +454,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setContextIdentifier(cons
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setContextUID(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setContextUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -451,7 +467,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setContextUID(const OFStr
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setLongCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -464,7 +480,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setLongCodeValue(const OF
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setMappingResource(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -477,7 +493,20 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResource(const
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setMappingResourceName(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = MappingResourceName.putOFStringArray(value);
+    }
+    return result;
+}
+
+
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setMappingResourceUID(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -490,7 +519,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setMappingResourceUID(con
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check)
+OFCondition DRTStrainSourceRegistryCodeSequence::Item::setURNCodeValue(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
@@ -505,7 +534,7 @@ OFCondition DRTPersonIdentificationCodeSequence::Item::setURNCodeValue(const OFS
 
 // --- sequence class ---
 
-DRTPersonIdentificationCodeSequence::DRTPersonIdentificationCodeSequence(const OFBool emptyDefaultSequence)
+DRTStrainSourceRegistryCodeSequence::DRTStrainSourceRegistryCodeSequence(const OFBool emptyDefaultSequence)
   : EmptyDefaultSequence(emptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -515,7 +544,7 @@ DRTPersonIdentificationCodeSequence::DRTPersonIdentificationCodeSequence(const O
 }
 
 
-DRTPersonIdentificationCodeSequence::DRTPersonIdentificationCodeSequence(const DRTPersonIdentificationCodeSequence &copy)
+DRTStrainSourceRegistryCodeSequence::DRTStrainSourceRegistryCodeSequence(const DRTStrainSourceRegistryCodeSequence &copy)
   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -541,7 +570,7 @@ DRTPersonIdentificationCodeSequence::DRTPersonIdentificationCodeSequence(const D
 }
 
 
-DRTPersonIdentificationCodeSequence &DRTPersonIdentificationCodeSequence::operator=(const DRTPersonIdentificationCodeSequence &copy)
+DRTStrainSourceRegistryCodeSequence &DRTStrainSourceRegistryCodeSequence::operator=(const DRTStrainSourceRegistryCodeSequence &copy)
 {
     if (this != &copy)
     {
@@ -569,13 +598,13 @@ DRTPersonIdentificationCodeSequence &DRTPersonIdentificationCodeSequence::operat
 }
 
 
-DRTPersonIdentificationCodeSequence::~DRTPersonIdentificationCodeSequence()
+DRTStrainSourceRegistryCodeSequence::~DRTStrainSourceRegistryCodeSequence()
 {
     clear();
 }
 
 
-void DRTPersonIdentificationCodeSequence::clear()
+void DRTStrainSourceRegistryCodeSequence::clear()
 {
     if (!EmptyDefaultSequence)
     {
@@ -594,25 +623,25 @@ void DRTPersonIdentificationCodeSequence::clear()
 }
 
 
-OFBool DRTPersonIdentificationCodeSequence::isEmpty()
+OFBool DRTStrainSourceRegistryCodeSequence::isEmpty()
 {
     return SequenceOfItems.empty();
 }
 
 
-OFBool DRTPersonIdentificationCodeSequence::isValid() const
+OFBool DRTStrainSourceRegistryCodeSequence::isValid() const
 {
     return !EmptyDefaultSequence;
 }
 
 
-unsigned long DRTPersonIdentificationCodeSequence::getNumberOfItems() const
+unsigned long DRTStrainSourceRegistryCodeSequence::getNumberOfItems() const
 {
     return SequenceOfItems.size();
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::gotoFirstItem()
+OFCondition DRTStrainSourceRegistryCodeSequence::gotoFirstItem()
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -624,7 +653,7 @@ OFCondition DRTPersonIdentificationCodeSequence::gotoFirstItem()
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::gotoNextItem()
+OFCondition DRTStrainSourceRegistryCodeSequence::gotoNextItem()
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -636,7 +665,7 @@ OFCondition DRTPersonIdentificationCodeSequence::gotoNextItem()
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+OFCondition DRTStrainSourceRegistryCodeSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -656,7 +685,7 @@ OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const unsigned long nu
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+OFCondition DRTStrainSourceRegistryCodeSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -676,13 +705,13 @@ OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const unsigned long nu
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::gotoItem(const unsigned long num)
+OFCondition DRTStrainSourceRegistryCodeSequence::gotoItem(const unsigned long num)
 {
     return gotoItem(num, CurrentItem);
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::getCurrentItem(Item *&item) const
+OFCondition DRTStrainSourceRegistryCodeSequence::getCurrentItem(Item *&item) const
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -694,7 +723,7 @@ OFCondition DRTPersonIdentificationCodeSequence::getCurrentItem(Item *&item) con
 }
 
 
-DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::getCurrentItem()
+DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getCurrentItem()
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -703,7 +732,7 @@ DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::
 }
 
 
-const DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::getCurrentItem() const
+const DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getCurrentItem() const
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -712,7 +741,7 @@ const DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequ
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::getItem(const unsigned long num, Item *&item)
+OFCondition DRTStrainSourceRegistryCodeSequence::getItem(const unsigned long num, Item *&item)
 {
     OFListIterator(Item *) iterator;
     OFCondition result = gotoItem(num, iterator);
@@ -722,7 +751,7 @@ OFCondition DRTPersonIdentificationCodeSequence::getItem(const unsigned long num
 }
 
 
-DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::getItem(const unsigned long num)
+DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getItem(const unsigned long num)
 {
     OFListIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -732,7 +761,7 @@ DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::
 }
 
 
-const DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::getItem(const unsigned long num) const
+const DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::getItem(const unsigned long num) const
 {
     OFListConstIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -742,19 +771,19 @@ const DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequ
 }
 
 
-DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::operator[](const unsigned long num)
+DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::operator[](const unsigned long num)
 {
     return getItem(num);
 }
 
 
-const DRTPersonIdentificationCodeSequence::Item &DRTPersonIdentificationCodeSequence::operator[](const unsigned long num) const
+const DRTStrainSourceRegistryCodeSequence::Item &DRTStrainSourceRegistryCodeSequence::operator[](const unsigned long num) const
 {
     return getItem(num);
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::addItem(Item *&item)
+OFCondition DRTStrainSourceRegistryCodeSequence::addItem(Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -771,7 +800,7 @@ OFCondition DRTPersonIdentificationCodeSequence::addItem(Item *&item)
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::insertItem(const unsigned long pos, Item *&item)
+OFCondition DRTStrainSourceRegistryCodeSequence::insertItem(const unsigned long pos, Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -794,7 +823,7 @@ OFCondition DRTPersonIdentificationCodeSequence::insertItem(const unsigned long
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::removeItem(const unsigned long pos)
+OFCondition DRTStrainSourceRegistryCodeSequence::removeItem(const unsigned long pos)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -812,7 +841,7 @@ OFCondition DRTPersonIdentificationCodeSequence::removeItem(const unsigned long
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::read(DcmItem &dataset,
+OFCondition DRTStrainSourceRegistryCodeSequence::read(DcmItem &dataset,
                                                       const OFString &card,
                                                       const OFString &type,
                                                       const char *moduleName)
@@ -824,7 +853,7 @@ OFCondition DRTPersonIdentificationCodeSequence::read(DcmItem &dataset,
         clear();
         /* retrieve sequence element from dataset */
         DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_PersonIdentificationCodeSequence, sequence);
+        result = dataset.findAndGetSequence(DCM_StrainSourceRegistryCodeSequence, sequence);
         if (sequence != NULL)
         {
             if (checkElementValue(*sequence, card, type, result, moduleName))
@@ -854,7 +883,7 @@ OFCondition DRTPersonIdentificationCodeSequence::read(DcmItem &dataset,
                 }
             }
         } else {
-            DcmSequenceOfItems element(DCM_PersonIdentificationCodeSequence);
+            DcmSequenceOfItems element(DCM_StrainSourceRegistryCodeSequence);
             checkElementValue(element, card, type, result, moduleName);
         }
     }
@@ -862,7 +891,7 @@ OFCondition DRTPersonIdentificationCodeSequence::read(DcmItem &dataset,
 }
 
 
-OFCondition DRTPersonIdentificationCodeSequence::write(DcmItem &dataset,
+OFCondition DRTStrainSourceRegistryCodeSequence::write(DcmItem &dataset,
                                                        const OFString &card,
                                                        const OFString &type,
                                                        const char *moduleName)
@@ -871,7 +900,7 @@ OFCondition DRTPersonIdentificationCodeSequence::write(DcmItem &dataset,
     if (!EmptyDefaultSequence)
     {
         result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_PersonIdentificationCodeSequence);
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_StrainSourceRegistryCodeSequence);
         if (sequence != NULL)
         {
             result = EC_Normal;
diff --git a/dcmrt/libsrc/drtssrs.cc b/dcmrt/libsrc/drtssrs.cc
index bf467a7..94220cc 100644
--- a/dcmrt/libsrc/drtssrs.cc
+++ b/dcmrt/libsrc/drtssrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTStructureSetROISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtrrs.cc b/dcmrt/libsrc/drtsss.cc
similarity index 68%
copy from dcmrt/libsrc/drtrrs.cc
copy to dcmrt/libsrc/drtsss.cc
index d149cb8..c7ca8ed 100644
--- a/dcmrt/libsrc/drtrrs.cc
+++ b/dcmrt/libsrc/drtsss.cc
@@ -1,157 +1,155 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Source file for class DRTRTRelatedROISequence
+ *  Source file for class DRTStrainStockSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
-#include "dcmtk/dcmrt/seq/drtrrs.h"
+#include "dcmtk/dcmrt/seq/drtsss.h"
 
 
 // --- item class ---
 
-DRTRTRelatedROISequence::Item::Item(const OFBool emptyDefaultItem)
+DRTStrainStockSequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
-    RTROIRelationship(DCM_RTROIRelationship),
-    ReferencedROINumber(DCM_ReferencedROINumber)
+    StrainSource(DCM_StrainSource),
+    StrainSourceRegistryCodeSequence(emptyDefaultItem /*emptyDefaultSequence*/),
+    StrainStockNumber(DCM_StrainStockNumber)
 {
 }
 
 
-DRTRTRelatedROISequence::Item::Item(const Item &copy)
+DRTStrainStockSequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
-    RTROIRelationship(copy.RTROIRelationship),
-    ReferencedROINumber(copy.ReferencedROINumber)
+    StrainSource(copy.StrainSource),
+    StrainSourceRegistryCodeSequence(copy.StrainSourceRegistryCodeSequence),
+    StrainStockNumber(copy.StrainStockNumber)
 {
 }
 
 
-DRTRTRelatedROISequence::Item::~Item()
+DRTStrainStockSequence::Item::~Item()
 {
 }
 
 
-DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::Item::operator=(const Item &copy)
+DRTStrainStockSequence::Item &DRTStrainStockSequence::Item::operator=(const Item &copy)
 {
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
-        RTROIRelationship = copy.RTROIRelationship;
-        ReferencedROINumber = copy.ReferencedROINumber;
+        StrainSource = copy.StrainSource;
+        StrainSourceRegistryCodeSequence = copy.StrainSourceRegistryCodeSequence;
+        StrainStockNumber = copy.StrainStockNumber;
     }
     return *this;
 }
 
 
-void DRTRTRelatedROISequence::Item::clear()
+void DRTStrainStockSequence::Item::clear()
 {
     if (!EmptyDefaultItem)
     {
         /* clear all DICOM attributes */
-        ReferencedROINumber.clear();
-        RTROIRelationship.clear();
+        StrainStockNumber.clear();
+        StrainSource.clear();
+        StrainSourceRegistryCodeSequence.clear();
     }
 }
 
 
-OFBool DRTRTRelatedROISequence::Item::isEmpty()
+OFBool DRTStrainStockSequence::Item::isEmpty()
 {
-    return ReferencedROINumber.isEmpty() &&
-           RTROIRelationship.isEmpty();
+    return StrainStockNumber.isEmpty() &&
+           StrainSource.isEmpty() &&
+           StrainSourceRegistryCodeSequence.isEmpty();
 }
 
 
-OFBool DRTRTRelatedROISequence::Item::isValid() const
+OFBool DRTStrainStockSequence::Item::isValid() const
 {
     return !EmptyDefaultItem;
 }
 
 
-OFCondition DRTRTRelatedROISequence::Item::read(DcmItem &item)
+OFCondition DRTStrainStockSequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, ReferencedROINumber, "1", "1", "RTRelatedROISequence");
-        getAndCheckElementFromDataset(item, RTROIRelationship, "1", "3", "RTRelatedROISequence");
+        getAndCheckElementFromDataset(item, StrainStockNumber, "1", "1", "StrainStockSequence");
+        getAndCheckElementFromDataset(item, StrainSource, "1", "1", "StrainStockSequence");
+        StrainSourceRegistryCodeSequence.read(item, "1-n", "1", "StrainStockSequence");
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTRTRelatedROISequence::Item::write(DcmItem &item)
+OFCondition DRTStrainStockSequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmIntegerString(ReferencedROINumber), "1", "1", "RTRelatedROISequence");
-        addElementToDataset(result, item, new DcmCodeString(RTROIRelationship), "1", "3", "RTRelatedROISequence");
+        addElementToDataset(result, item, new DcmLongString(StrainStockNumber), "1", "1", "StrainStockSequence");
+        addElementToDataset(result, item, new DcmLongString(StrainSource), "1", "1", "StrainStockSequence");
+        if (result.good()) result = StrainSourceRegistryCodeSequence.write(item, "1-n", "1", "StrainStockSequence");
     }
     return result;
 }
 
 
-OFCondition DRTRTRelatedROISequence::Item::getRTROIRelationship(OFString &value, const signed long pos) const
+OFCondition DRTStrainStockSequence::Item::getStrainSource(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(RTROIRelationship, value, pos);
+        return getStringValueFromElement(StrainSource, value, pos);
 }
 
 
-OFCondition DRTRTRelatedROISequence::Item::getReferencedROINumber(OFString &value, const signed long pos) const
+OFCondition DRTStrainStockSequence::Item::getStrainStockNumber(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(ReferencedROINumber, value, pos);
+        return getStringValueFromElement(StrainStockNumber, value, pos);
 }
 
 
-OFCondition DRTRTRelatedROISequence::Item::getReferencedROINumber(Sint32 &value, const unsigned long pos) const
-{
-    if (EmptyDefaultItem)
-        return EC_IllegalCall;
-    else
-        return OFconst_cast(DcmIntegerString &, ReferencedROINumber).getSint32(value, pos);
-}
-
-
-OFCondition DRTRTRelatedROISequence::Item::setRTROIRelationship(const OFString &value, const OFBool check)
+OFCondition DRTStrainStockSequence::Item::setStrainSource(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
-        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
         if (result.good())
-            result = RTROIRelationship.putOFStringArray(value);
+            result = StrainSource.putOFStringArray(value);
     }
     return result;
 }
 
 
-OFCondition DRTRTRelatedROISequence::Item::setReferencedROINumber(const OFString &value, const OFBool check)
+OFCondition DRTStrainStockSequence::Item::setStrainStockNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
-        result = (check) ? DcmIntegerString::checkStringValue(value, "1") : EC_Normal;
+        result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
         if (result.good())
-            result = ReferencedROINumber.putOFStringArray(value);
+            result = StrainStockNumber.putOFStringArray(value);
     }
     return result;
 }
@@ -159,7 +157,7 @@ OFCondition DRTRTRelatedROISequence::Item::setReferencedROINumber(const OFString
 
 // --- sequence class ---
 
-DRTRTRelatedROISequence::DRTRTRelatedROISequence(const OFBool emptyDefaultSequence)
+DRTStrainStockSequence::DRTStrainStockSequence(const OFBool emptyDefaultSequence)
   : EmptyDefaultSequence(emptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -169,7 +167,7 @@ DRTRTRelatedROISequence::DRTRTRelatedROISequence(const OFBool emptyDefaultSequen
 }
 
 
-DRTRTRelatedROISequence::DRTRTRelatedROISequence(const DRTRTRelatedROISequence &copy)
+DRTStrainStockSequence::DRTStrainStockSequence(const DRTStrainStockSequence &copy)
   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -195,7 +193,7 @@ DRTRTRelatedROISequence::DRTRTRelatedROISequence(const DRTRTRelatedROISequence &
 }
 
 
-DRTRTRelatedROISequence &DRTRTRelatedROISequence::operator=(const DRTRTRelatedROISequence &copy)
+DRTStrainStockSequence &DRTStrainStockSequence::operator=(const DRTStrainStockSequence &copy)
 {
     if (this != &copy)
     {
@@ -223,13 +221,13 @@ DRTRTRelatedROISequence &DRTRTRelatedROISequence::operator=(const DRTRTRelatedRO
 }
 
 
-DRTRTRelatedROISequence::~DRTRTRelatedROISequence()
+DRTStrainStockSequence::~DRTStrainStockSequence()
 {
     clear();
 }
 
 
-void DRTRTRelatedROISequence::clear()
+void DRTStrainStockSequence::clear()
 {
     if (!EmptyDefaultSequence)
     {
@@ -248,25 +246,25 @@ void DRTRTRelatedROISequence::clear()
 }
 
 
-OFBool DRTRTRelatedROISequence::isEmpty()
+OFBool DRTStrainStockSequence::isEmpty()
 {
     return SequenceOfItems.empty();
 }
 
 
-OFBool DRTRTRelatedROISequence::isValid() const
+OFBool DRTStrainStockSequence::isValid() const
 {
     return !EmptyDefaultSequence;
 }
 
 
-unsigned long DRTRTRelatedROISequence::getNumberOfItems() const
+unsigned long DRTStrainStockSequence::getNumberOfItems() const
 {
     return SequenceOfItems.size();
 }
 
 
-OFCondition DRTRTRelatedROISequence::gotoFirstItem()
+OFCondition DRTStrainStockSequence::gotoFirstItem()
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -278,7 +276,7 @@ OFCondition DRTRTRelatedROISequence::gotoFirstItem()
 }
 
 
-OFCondition DRTRTRelatedROISequence::gotoNextItem()
+OFCondition DRTStrainStockSequence::gotoNextItem()
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -290,7 +288,7 @@ OFCondition DRTRTRelatedROISequence::gotoNextItem()
 }
 
 
-OFCondition DRTRTRelatedROISequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+OFCondition DRTStrainStockSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -310,7 +308,7 @@ OFCondition DRTRTRelatedROISequence::gotoItem(const unsigned long num, OFListIte
 }
 
 
-OFCondition DRTRTRelatedROISequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+OFCondition DRTStrainStockSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -330,13 +328,13 @@ OFCondition DRTRTRelatedROISequence::gotoItem(const unsigned long num, OFListCon
 }
 
 
-OFCondition DRTRTRelatedROISequence::gotoItem(const unsigned long num)
+OFCondition DRTStrainStockSequence::gotoItem(const unsigned long num)
 {
     return gotoItem(num, CurrentItem);
 }
 
 
-OFCondition DRTRTRelatedROISequence::getCurrentItem(Item *&item) const
+OFCondition DRTStrainStockSequence::getCurrentItem(Item *&item) const
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -348,7 +346,7 @@ OFCondition DRTRTRelatedROISequence::getCurrentItem(Item *&item) const
 }
 
 
-DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getCurrentItem()
+DRTStrainStockSequence::Item &DRTStrainStockSequence::getCurrentItem()
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -357,7 +355,7 @@ DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getCurrentItem()
 }
 
 
-const DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getCurrentItem() const
+const DRTStrainStockSequence::Item &DRTStrainStockSequence::getCurrentItem() const
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -366,7 +364,7 @@ const DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getCurrentItem() c
 }
 
 
-OFCondition DRTRTRelatedROISequence::getItem(const unsigned long num, Item *&item)
+OFCondition DRTStrainStockSequence::getItem(const unsigned long num, Item *&item)
 {
     OFListIterator(Item *) iterator;
     OFCondition result = gotoItem(num, iterator);
@@ -376,7 +374,7 @@ OFCondition DRTRTRelatedROISequence::getItem(const unsigned long num, Item *&ite
 }
 
 
-DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getItem(const unsigned long num)
+DRTStrainStockSequence::Item &DRTStrainStockSequence::getItem(const unsigned long num)
 {
     OFListIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -386,7 +384,7 @@ DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getItem(const unsigned l
 }
 
 
-const DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getItem(const unsigned long num) const
+const DRTStrainStockSequence::Item &DRTStrainStockSequence::getItem(const unsigned long num) const
 {
     OFListConstIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -396,19 +394,19 @@ const DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::getItem(const unsi
 }
 
 
-DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::operator[](const unsigned long num)
+DRTStrainStockSequence::Item &DRTStrainStockSequence::operator[](const unsigned long num)
 {
     return getItem(num);
 }
 
 
-const DRTRTRelatedROISequence::Item &DRTRTRelatedROISequence::operator[](const unsigned long num) const
+const DRTStrainStockSequence::Item &DRTStrainStockSequence::operator[](const unsigned long num) const
 {
     return getItem(num);
 }
 
 
-OFCondition DRTRTRelatedROISequence::addItem(Item *&item)
+OFCondition DRTStrainStockSequence::addItem(Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -425,7 +423,7 @@ OFCondition DRTRTRelatedROISequence::addItem(Item *&item)
 }
 
 
-OFCondition DRTRTRelatedROISequence::insertItem(const unsigned long pos, Item *&item)
+OFCondition DRTStrainStockSequence::insertItem(const unsigned long pos, Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -448,7 +446,7 @@ OFCondition DRTRTRelatedROISequence::insertItem(const unsigned long pos, Item *&
 }
 
 
-OFCondition DRTRTRelatedROISequence::removeItem(const unsigned long pos)
+OFCondition DRTStrainStockSequence::removeItem(const unsigned long pos)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -466,10 +464,10 @@ OFCondition DRTRTRelatedROISequence::removeItem(const unsigned long pos)
 }
 
 
-OFCondition DRTRTRelatedROISequence::read(DcmItem &dataset,
-                                          const OFString &card,
-                                          const OFString &type,
-                                          const char *moduleName)
+OFCondition DRTStrainStockSequence::read(DcmItem &dataset,
+                                         const OFString &card,
+                                         const OFString &type,
+                                         const char *moduleName)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -478,7 +476,7 @@ OFCondition DRTRTRelatedROISequence::read(DcmItem &dataset,
         clear();
         /* retrieve sequence element from dataset */
         DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_RTRelatedROISequence, sequence);
+        result = dataset.findAndGetSequence(DCM_StrainStockSequence, sequence);
         if (sequence != NULL)
         {
             if (checkElementValue(*sequence, card, type, result, moduleName))
@@ -508,7 +506,7 @@ OFCondition DRTRTRelatedROISequence::read(DcmItem &dataset,
                 }
             }
         } else {
-            DcmSequenceOfItems element(DCM_RTRelatedROISequence);
+            DcmSequenceOfItems element(DCM_StrainStockSequence);
             checkElementValue(element, card, type, result, moduleName);
         }
     }
@@ -516,16 +514,16 @@ OFCondition DRTRTRelatedROISequence::read(DcmItem &dataset,
 }
 
 
-OFCondition DRTRTRelatedROISequence::write(DcmItem &dataset,
-                                           const OFString &card,
-                                           const OFString &type,
-                                           const char *moduleName)
+OFCondition DRTStrainStockSequence::write(DcmItem &dataset,
+                                          const OFString &card,
+                                          const OFString &type,
+                                          const char *moduleName)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
     {
         result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_RTRelatedROISequence);
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_StrainStockSequence);
         if (sequence != NULL)
         {
             result = EC_Normal;
diff --git a/dcmrt/libsrc/drtstrct.cc b/dcmrt/libsrc/drtstrct.cc
index 29308f0..f0ad51c 100644
--- a/dcmrt/libsrc/drtstrct.cc
+++ b/dcmrt/libsrc/drtstrct.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTStructureSetIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -77,7 +87,16 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -119,6 +139,7 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -140,6 +161,12 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     ReviewDate(DCM_ReviewDate),
     ReviewTime(DCM_ReviewTime),
     ReviewerName(DCM_ReviewerName),
+    ReferencedImageSequence(),
+    ReferencedInstanceSequence(),
+    DerivationDescription(DCM_DerivationDescription),
+    DerivationCodeSequence(),
+    SourceImageSequence(),
+    SourceInstanceSequence(),
     SOPClassUID(DCM_SOPClassUID),
     SOPInstanceUID(DCM_SOPInstanceUID),
     SpecificCharacterSet(DCM_SpecificCharacterSet),
@@ -150,6 +177,8 @@ DRTStructureSetIOD::DRTStructureSetIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -180,6 +209,9 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -195,12 +227,19 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -234,7 +273,16 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -254,6 +302,7 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -276,6 +325,7 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -297,6 +347,12 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     ReviewDate(copy.ReviewDate),
     ReviewTime(copy.ReviewTime),
     ReviewerName(copy.ReviewerName),
+    ReferencedImageSequence(copy.ReferencedImageSequence),
+    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
+    DerivationDescription(copy.DerivationDescription),
+    DerivationCodeSequence(copy.DerivationCodeSequence),
+    SourceImageSequence(copy.SourceImageSequence),
+    SourceInstanceSequence(copy.SourceInstanceSequence),
     SOPClassUID(copy.SOPClassUID),
     SOPInstanceUID(copy.SOPInstanceUID),
     SpecificCharacterSet(copy.SpecificCharacterSet),
@@ -307,6 +363,8 @@ DRTStructureSetIOD::DRTStructureSetIOD(const DRTStructureSetIOD &copy)
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -343,6 +401,9 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -358,12 +419,19 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -397,7 +465,16 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -417,6 +494,7 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -439,6 +517,7 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -460,6 +539,12 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         ReviewDate = copy.ReviewDate;
         ReviewTime = copy.ReviewTime;
         ReviewerName = copy.ReviewerName;
+        ReferencedImageSequence = copy.ReferencedImageSequence;
+        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
+        DerivationDescription = copy.DerivationDescription;
+        DerivationCodeSequence = copy.DerivationCodeSequence;
+        SourceImageSequence = copy.SourceImageSequence;
+        SourceInstanceSequence = copy.SourceInstanceSequence;
         SOPClassUID = copy.SOPClassUID;
         SOPInstanceUID = copy.SOPInstanceUID;
         SpecificCharacterSet = copy.SpecificCharacterSet;
@@ -470,6 +555,8 @@ DRTStructureSetIOD &DRTStructureSetIOD::operator=(const DRTStructureSetIOD &copy
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -501,6 +588,9 @@ void DRTStructureSetIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -516,12 +606,19 @@ void DRTStructureSetIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -555,7 +652,16 @@ void DRTStructureSetIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -575,6 +681,7 @@ void DRTStructureSetIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -597,6 +704,7 @@ void DRTStructureSetIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -618,6 +726,12 @@ void DRTStructureSetIOD::clear()
     ReviewDate.clear();
     ReviewTime.clear();
     ReviewerName.clear();
+    ReferencedImageSequence.clear();
+    ReferencedInstanceSequence.clear();
+    DerivationDescription.clear();
+    DerivationCodeSequence.clear();
+    SourceImageSequence.clear();
+    SourceInstanceSequence.clear();
     SOPClassUID.clear();
     SOPInstanceUID.clear();
     SpecificCharacterSet.clear();
@@ -628,6 +742,8 @@ void DRTStructureSetIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -703,6 +819,7 @@ OFCondition DRTStructureSetIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -742,6 +859,14 @@ OFCondition DRTStructureSetIOD::read(DcmItem &dataset)
             getAndCheckElementFromDataset(dataset, ReviewerName, "1", "2C", "ApprovalModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
+        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+
         // --- SOPCommonModule (M) ---
         getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule");
@@ -753,6 +878,8 @@ OFCondition DRTStructureSetIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -789,6 +916,9 @@ OFCondition DRTStructureSetIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -804,12 +934,19 @@ OFCondition DRTStructureSetIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -865,7 +1002,16 @@ OFCondition DRTStructureSetIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -902,6 +1048,7 @@ OFCondition DRTStructureSetIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -940,6 +1087,9 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -955,12 +1105,19 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -1005,7 +1162,16 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -1033,6 +1199,7 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1062,6 +1229,7 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1100,6 +1268,17 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmPersonName(ReviewerName), "1", "2C", "ApprovalModule");
         }
 
+        // --- GeneralReferenceModule (U) ---
+        if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
+        {
+            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
+            if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+        }
+
         // --- SOPCommonModule (M) ---
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule");
@@ -1111,6 +1290,8 @@ OFCondition DRTStructureSetIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1171,7 +1352,16 @@ OFBool DRTStructureSetIOD::isPatientStudyModulePresent(const OFBool /*complete*/
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1231,6 +1421,18 @@ OFBool DRTStructureSetIOD::isApprovalModulePresent(const OFBool complete)
 }
 
 
+OFBool DRTStructureSetIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
+{
+    /* check whether at least one attribute is present */
+    return !ReferencedImageSequence.isEmpty() ||
+           !ReferencedInstanceSequence.isEmpty() ||
+           !DerivationDescription.isEmpty() ||
+           !DerivationCodeSequence.isEmpty() ||
+           !SourceImageSequence.isEmpty() ||
+           !SourceInstanceSequence.isEmpty();
+}
+
+
 OFBool DRTStructureSetIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/)
 {
     /* check whether at least one attribute is present */
@@ -1263,6 +1465,12 @@ OFCondition DRTStructureSetIOD::getAdmittingDiagnosesDescription(OFString &value
 }
 
 
+OFCondition DRTStructureSetIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getApprovalStatus(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(ApprovalStatus, value, pos);
@@ -1389,6 +1597,12 @@ OFCondition DRTStructureSetIOD::getDeidentificationMethod(OFString &value, const
 }
 
 
+OFCondition DRTStructureSetIOD::getDerivationDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(DerivationDescription, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(DeviceSerialNumber, value, pos);
@@ -1473,6 +1687,12 @@ OFCondition DRTStructureSetIOD::getIssuerOfPatientID(OFString &value, const sign
 }
 
 
+OFCondition DRTStructureSetIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -1491,6 +1711,36 @@ OFCondition DRTStructureSetIOD::getManufacturerModelName(OFString &value, const
 }
 
 
+OFCondition DRTStructureSetIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -1539,18 +1789,42 @@ OFCondition DRTStructureSetIOD::getPatientAge(OFString &value, const signed long
 }
 
 
+OFCondition DRTStructureSetIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTStructureSetIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTStructureSetIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -1563,6 +1837,12 @@ OFCondition DRTStructureSetIOD::getPatientComments(OFString &value, const signed
 }
 
 
+OFCondition DRTStructureSetIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -1611,6 +1891,12 @@ OFCondition DRTStructureSetIOD::getPatientSpeciesDescription(OFString &value, co
 }
 
 
+OFCondition DRTStructureSetIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getPatientWeight(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientWeight, value, pos);
@@ -1677,6 +1963,12 @@ OFCondition DRTStructureSetIOD::getPositionReferenceIndicator(OFString &value, c
 }
 
 
+OFCondition DRTStructureSetIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getQualityControlSubject(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(QualityControlSubject, value, pos);
@@ -1815,6 +2107,12 @@ OFCondition DRTStructureSetIOD::getServiceEpisodeID(OFString &value, const signe
 }
 
 
+OFCondition DRTStructureSetIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -1845,6 +2143,24 @@ OFCondition DRTStructureSetIOD::getStationName(OFString &value, const signed lon
 }
 
 
+OFCondition DRTStructureSetIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTStructureSetIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::getStructureSetDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StructureSetDate, value, pos);
@@ -1953,6 +2269,15 @@ OFCondition DRTStructureSetIOD::setAdmittingDiagnosesDescription(const OFString
 }
 
 
+OFCondition DRTStructureSetIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setApprovalStatus(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2142,6 +2467,15 @@ OFCondition DRTStructureSetIOD::setDeidentificationMethod(const OFString &value,
 }
 
 
+OFCondition DRTStructureSetIOD::setDerivationDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = DerivationDescription.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2259,6 +2593,15 @@ OFCondition DRTStructureSetIOD::setIssuerOfPatientID(const OFString &value, cons
 }
 
 
+OFCondition DRTStructureSetIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2286,6 +2629,33 @@ OFCondition DRTStructureSetIOD::setManufacturerModelName(const OFString &value,
 }
 
 
+OFCondition DRTStructureSetIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTStructureSetIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTStructureSetIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2358,6 +2728,15 @@ OFCondition DRTStructureSetIOD::setPatientAge(const OFString &value, const OFBoo
 }
 
 
+OFCondition DRTStructureSetIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -2367,6 +2746,15 @@ OFCondition DRTStructureSetIOD::setPatientBirthDate(const OFString &value, const
 }
 
 
+OFCondition DRTStructureSetIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -2376,6 +2764,15 @@ OFCondition DRTStructureSetIOD::setPatientBirthTime(const OFString &value, const
 }
 
 
+OFCondition DRTStructureSetIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2394,6 +2791,15 @@ OFCondition DRTStructureSetIOD::setPatientComments(const OFString &value, const
 }
 
 
+OFCondition DRTStructureSetIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2457,6 +2863,15 @@ OFCondition DRTStructureSetIOD::setPatientSpeciesDescription(const OFString &val
 }
 
 
+OFCondition DRTStructureSetIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setPatientWeight(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -2544,6 +2959,12 @@ OFCondition DRTStructureSetIOD::setPositionReferenceIndicator(const OFString &va
 }
 
 
+OFCondition DRTStructureSetIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTStructureSetIOD::setQualityControlSubject(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2742,6 +3163,15 @@ OFCondition DRTStructureSetIOD::setServiceEpisodeID(const OFString &value, const
 }
 
 
+OFCondition DRTStructureSetIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -2778,6 +3208,33 @@ OFCondition DRTStructureSetIOD::setStationName(const OFString &value, const OFBo
 }
 
 
+OFCondition DRTStructureSetIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTStructureSetIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTStructureSetIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTStructureSetIOD::setStructureSetDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
diff --git a/dcmrt/libsrc/drttms0.cc b/dcmrt/libsrc/drttms0.cc
index 60acc41..9032c7e 100644
--- a/dcmrt/libsrc/drttms0.cc
+++ b/dcmrt/libsrc/drttms0.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTTreatmentMachineSequenceInRTTreatmentMachineRecordModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drttms9.cc b/dcmrt/libsrc/drttms9.cc
index 8d9d2f5..802cb99 100644
--- a/dcmrt/libsrc/drttms9.cc
+++ b/dcmrt/libsrc/drttms9.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTTreatmentMachineSequenceInRTBrachyApplicationSetupsModule
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drttreat.cc b/dcmrt/libsrc/drttreat.cc
index 9748d14..e284267 100644
--- a/dcmrt/libsrc/drttreat.cc
+++ b/dcmrt/libsrc/drttreat.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTTreatmentSummaryRecordIOD
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -23,6 +23,9 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     IssuerOfPatientID(DCM_IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(),
     PatientBirthDate(DCM_PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(DCM_PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(DCM_PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(DCM_PatientAlternativeCalendar),
     PatientSex(DCM_PatientSex),
     ReferencedPatientPhotoSequence(),
     QualityControlSubject(DCM_QualityControlSubject),
@@ -38,12 +41,19 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     PatientBreedDescription(DCM_PatientBreedDescription),
     PatientBreedCodeSequence(),
     BreedRegistrationSequence(),
+    StrainDescription(DCM_StrainDescription),
+    StrainNomenclature(DCM_StrainNomenclature),
+    StrainCodeSequence(),
+    StrainAdditionalInformation(DCM_StrainAdditionalInformation),
+    StrainStockSequence(),
     ResponsiblePerson(DCM_ResponsiblePerson),
     ResponsiblePersonRole(DCM_ResponsiblePersonRole),
     ResponsibleOrganization(DCM_ResponsibleOrganization),
     PatientIdentityRemoved(DCM_PatientIdentityRemoved),
     DeidentificationMethod(DCM_DeidentificationMethod),
     DeidentificationMethodCodeSequence(),
+    SourcePatientGroupIdentificationSequence(),
+    GroupOfPatientsIdentificationSequence(),
     ClinicalTrialSponsorName(DCM_ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(DCM_ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(DCM_ClinicalTrialProtocolName),
@@ -77,7 +87,16 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     PatientAge(DCM_PatientAge),
     PatientSize(DCM_PatientSize),
     PatientWeight(DCM_PatientWeight),
+    PatientBodyMassIndex(DCM_PatientBodyMassIndex),
+    MeasuredAPDimension(DCM_MeasuredAPDimension),
+    MeasuredLateralDimension(DCM_MeasuredLateralDimension),
     PatientSizeCodeSequence(),
+    MedicalAlerts(DCM_MedicalAlerts),
+    Allergies(DCM_Allergies),
+    SmokingStatus(DCM_SmokingStatus),
+    PregnancyStatus(DCM_PregnancyStatus),
+    LastMenstrualDate(DCM_LastMenstrualDate),
+    PatientState(DCM_PatientState),
     Occupation(DCM_Occupation),
     AdditionalPatientHistory(DCM_AdditionalPatientHistory),
     AdmissionID(DCM_AdmissionID),
@@ -97,6 +116,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     SeriesDescription(DCM_SeriesDescription),
     SeriesDescriptionCodeSequence(),
     OperatorsName(DCM_OperatorsName),
+    OperatorIdentificationSequence(),
     ReferencedPerformedProcedureStepSequence(),
     RequestAttributesSequence(),
     PerformedProcedureStepID(DCM_PerformedProcedureStepID),
@@ -119,6 +139,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     DeviceSerialNumber(DCM_DeviceSerialNumber),
     SoftwareVersions(DCM_SoftwareVersions),
     GantryID(DCM_GantryID),
+    UDISequence(),
     SpatialResolution(DCM_SpatialResolution),
     DateOfLastCalibration(DCM_DateOfLastCalibration),
     TimeOfLastCalibration(DCM_TimeOfLastCalibration),
@@ -135,6 +156,12 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     FractionGroupSummarySequence(),
     TreatmentSummaryMeasuredDoseReferenceSequence(),
     TreatmentSummaryCalculatedDoseReferenceSequence(),
+    ReferencedImageSequence(),
+    ReferencedInstanceSequence(),
+    DerivationDescription(DCM_DerivationDescription),
+    DerivationCodeSequence(),
+    SourceImageSequence(),
+    SourceInstanceSequence(),
     SOPClassUID(DCM_SOPClassUID),
     SOPInstanceUID(DCM_SOPInstanceUID),
     SpecificCharacterSet(DCM_SpecificCharacterSet),
@@ -145,6 +172,8 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD()
     RelatedGeneralSOPClassUID(DCM_RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(DCM_OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(),
+    ContextGroupIdentificationSequence(),
+    MappingResourceIdentificationSequence(),
     TimezoneOffsetFromUTC(DCM_TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(),
     SOPInstanceStatus(DCM_SOPInstanceStatus),
@@ -175,6 +204,9 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     IssuerOfPatientID(copy.IssuerOfPatientID),
     IssuerOfPatientIDQualifiersSequence(copy.IssuerOfPatientIDQualifiersSequence),
     PatientBirthDate(copy.PatientBirthDate),
+    PatientBirthDateInAlternativeCalendar(copy.PatientBirthDateInAlternativeCalendar),
+    PatientDeathDateInAlternativeCalendar(copy.PatientDeathDateInAlternativeCalendar),
+    PatientAlternativeCalendar(copy.PatientAlternativeCalendar),
     PatientSex(copy.PatientSex),
     ReferencedPatientPhotoSequence(copy.ReferencedPatientPhotoSequence),
     QualityControlSubject(copy.QualityControlSubject),
@@ -190,12 +222,19 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     PatientBreedDescription(copy.PatientBreedDescription),
     PatientBreedCodeSequence(copy.PatientBreedCodeSequence),
     BreedRegistrationSequence(copy.BreedRegistrationSequence),
+    StrainDescription(copy.StrainDescription),
+    StrainNomenclature(copy.StrainNomenclature),
+    StrainCodeSequence(copy.StrainCodeSequence),
+    StrainAdditionalInformation(copy.StrainAdditionalInformation),
+    StrainStockSequence(copy.StrainStockSequence),
     ResponsiblePerson(copy.ResponsiblePerson),
     ResponsiblePersonRole(copy.ResponsiblePersonRole),
     ResponsibleOrganization(copy.ResponsibleOrganization),
     PatientIdentityRemoved(copy.PatientIdentityRemoved),
     DeidentificationMethod(copy.DeidentificationMethod),
     DeidentificationMethodCodeSequence(copy.DeidentificationMethodCodeSequence),
+    SourcePatientGroupIdentificationSequence(copy.SourcePatientGroupIdentificationSequence),
+    GroupOfPatientsIdentificationSequence(copy.GroupOfPatientsIdentificationSequence),
     ClinicalTrialSponsorName(copy.ClinicalTrialSponsorName),
     ClinicalTrialProtocolID(copy.ClinicalTrialProtocolID),
     ClinicalTrialProtocolName(copy.ClinicalTrialProtocolName),
@@ -229,7 +268,16 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     PatientAge(copy.PatientAge),
     PatientSize(copy.PatientSize),
     PatientWeight(copy.PatientWeight),
+    PatientBodyMassIndex(copy.PatientBodyMassIndex),
+    MeasuredAPDimension(copy.MeasuredAPDimension),
+    MeasuredLateralDimension(copy.MeasuredLateralDimension),
     PatientSizeCodeSequence(copy.PatientSizeCodeSequence),
+    MedicalAlerts(copy.MedicalAlerts),
+    Allergies(copy.Allergies),
+    SmokingStatus(copy.SmokingStatus),
+    PregnancyStatus(copy.PregnancyStatus),
+    LastMenstrualDate(copy.LastMenstrualDate),
+    PatientState(copy.PatientState),
     Occupation(copy.Occupation),
     AdditionalPatientHistory(copy.AdditionalPatientHistory),
     AdmissionID(copy.AdmissionID),
@@ -249,6 +297,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     SeriesDescription(copy.SeriesDescription),
     SeriesDescriptionCodeSequence(copy.SeriesDescriptionCodeSequence),
     OperatorsName(copy.OperatorsName),
+    OperatorIdentificationSequence(copy.OperatorIdentificationSequence),
     ReferencedPerformedProcedureStepSequence(copy.ReferencedPerformedProcedureStepSequence),
     RequestAttributesSequence(copy.RequestAttributesSequence),
     PerformedProcedureStepID(copy.PerformedProcedureStepID),
@@ -271,6 +320,7 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     DeviceSerialNumber(copy.DeviceSerialNumber),
     SoftwareVersions(copy.SoftwareVersions),
     GantryID(copy.GantryID),
+    UDISequence(copy.UDISequence),
     SpatialResolution(copy.SpatialResolution),
     DateOfLastCalibration(copy.DateOfLastCalibration),
     TimeOfLastCalibration(copy.TimeOfLastCalibration),
@@ -287,6 +337,12 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     FractionGroupSummarySequence(copy.FractionGroupSummarySequence),
     TreatmentSummaryMeasuredDoseReferenceSequence(copy.TreatmentSummaryMeasuredDoseReferenceSequence),
     TreatmentSummaryCalculatedDoseReferenceSequence(copy.TreatmentSummaryCalculatedDoseReferenceSequence),
+    ReferencedImageSequence(copy.ReferencedImageSequence),
+    ReferencedInstanceSequence(copy.ReferencedInstanceSequence),
+    DerivationDescription(copy.DerivationDescription),
+    DerivationCodeSequence(copy.DerivationCodeSequence),
+    SourceImageSequence(copy.SourceImageSequence),
+    SourceInstanceSequence(copy.SourceInstanceSequence),
     SOPClassUID(copy.SOPClassUID),
     SOPInstanceUID(copy.SOPInstanceUID),
     SpecificCharacterSet(copy.SpecificCharacterSet),
@@ -297,6 +353,8 @@ DRTTreatmentSummaryRecordIOD::DRTTreatmentSummaryRecordIOD(const DRTTreatmentSum
     RelatedGeneralSOPClassUID(copy.RelatedGeneralSOPClassUID),
     OriginalSpecializedSOPClassUID(copy.OriginalSpecializedSOPClassUID),
     CodingSchemeIdentificationSequence(copy.CodingSchemeIdentificationSequence),
+    ContextGroupIdentificationSequence(copy.ContextGroupIdentificationSequence),
+    MappingResourceIdentificationSequence(copy.MappingResourceIdentificationSequence),
     TimezoneOffsetFromUTC(copy.TimezoneOffsetFromUTC),
     ContributingEquipmentSequence(copy.ContributingEquipmentSequence),
     SOPInstanceStatus(copy.SOPInstanceStatus),
@@ -333,6 +391,9 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         IssuerOfPatientID = copy.IssuerOfPatientID;
         IssuerOfPatientIDQualifiersSequence = copy.IssuerOfPatientIDQualifiersSequence;
         PatientBirthDate = copy.PatientBirthDate;
+        PatientBirthDateInAlternativeCalendar = copy.PatientBirthDateInAlternativeCalendar;
+        PatientDeathDateInAlternativeCalendar = copy.PatientDeathDateInAlternativeCalendar;
+        PatientAlternativeCalendar = copy.PatientAlternativeCalendar;
         PatientSex = copy.PatientSex;
         ReferencedPatientPhotoSequence = copy.ReferencedPatientPhotoSequence;
         QualityControlSubject = copy.QualityControlSubject;
@@ -348,12 +409,19 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         PatientBreedDescription = copy.PatientBreedDescription;
         PatientBreedCodeSequence = copy.PatientBreedCodeSequence;
         BreedRegistrationSequence = copy.BreedRegistrationSequence;
+        StrainDescription = copy.StrainDescription;
+        StrainNomenclature = copy.StrainNomenclature;
+        StrainCodeSequence = copy.StrainCodeSequence;
+        StrainAdditionalInformation = copy.StrainAdditionalInformation;
+        StrainStockSequence = copy.StrainStockSequence;
         ResponsiblePerson = copy.ResponsiblePerson;
         ResponsiblePersonRole = copy.ResponsiblePersonRole;
         ResponsibleOrganization = copy.ResponsibleOrganization;
         PatientIdentityRemoved = copy.PatientIdentityRemoved;
         DeidentificationMethod = copy.DeidentificationMethod;
         DeidentificationMethodCodeSequence = copy.DeidentificationMethodCodeSequence;
+        SourcePatientGroupIdentificationSequence = copy.SourcePatientGroupIdentificationSequence;
+        GroupOfPatientsIdentificationSequence = copy.GroupOfPatientsIdentificationSequence;
         ClinicalTrialSponsorName = copy.ClinicalTrialSponsorName;
         ClinicalTrialProtocolID = copy.ClinicalTrialProtocolID;
         ClinicalTrialProtocolName = copy.ClinicalTrialProtocolName;
@@ -387,7 +455,16 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         PatientAge = copy.PatientAge;
         PatientSize = copy.PatientSize;
         PatientWeight = copy.PatientWeight;
+        PatientBodyMassIndex = copy.PatientBodyMassIndex;
+        MeasuredAPDimension = copy.MeasuredAPDimension;
+        MeasuredLateralDimension = copy.MeasuredLateralDimension;
         PatientSizeCodeSequence = copy.PatientSizeCodeSequence;
+        MedicalAlerts = copy.MedicalAlerts;
+        Allergies = copy.Allergies;
+        SmokingStatus = copy.SmokingStatus;
+        PregnancyStatus = copy.PregnancyStatus;
+        LastMenstrualDate = copy.LastMenstrualDate;
+        PatientState = copy.PatientState;
         Occupation = copy.Occupation;
         AdditionalPatientHistory = copy.AdditionalPatientHistory;
         AdmissionID = copy.AdmissionID;
@@ -407,6 +484,7 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         SeriesDescription = copy.SeriesDescription;
         SeriesDescriptionCodeSequence = copy.SeriesDescriptionCodeSequence;
         OperatorsName = copy.OperatorsName;
+        OperatorIdentificationSequence = copy.OperatorIdentificationSequence;
         ReferencedPerformedProcedureStepSequence = copy.ReferencedPerformedProcedureStepSequence;
         RequestAttributesSequence = copy.RequestAttributesSequence;
         PerformedProcedureStepID = copy.PerformedProcedureStepID;
@@ -429,6 +507,7 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         DeviceSerialNumber = copy.DeviceSerialNumber;
         SoftwareVersions = copy.SoftwareVersions;
         GantryID = copy.GantryID;
+        UDISequence = copy.UDISequence;
         SpatialResolution = copy.SpatialResolution;
         DateOfLastCalibration = copy.DateOfLastCalibration;
         TimeOfLastCalibration = copy.TimeOfLastCalibration;
@@ -445,6 +524,12 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         FractionGroupSummarySequence = copy.FractionGroupSummarySequence;
         TreatmentSummaryMeasuredDoseReferenceSequence = copy.TreatmentSummaryMeasuredDoseReferenceSequence;
         TreatmentSummaryCalculatedDoseReferenceSequence = copy.TreatmentSummaryCalculatedDoseReferenceSequence;
+        ReferencedImageSequence = copy.ReferencedImageSequence;
+        ReferencedInstanceSequence = copy.ReferencedInstanceSequence;
+        DerivationDescription = copy.DerivationDescription;
+        DerivationCodeSequence = copy.DerivationCodeSequence;
+        SourceImageSequence = copy.SourceImageSequence;
+        SourceInstanceSequence = copy.SourceInstanceSequence;
         SOPClassUID = copy.SOPClassUID;
         SOPInstanceUID = copy.SOPInstanceUID;
         SpecificCharacterSet = copy.SpecificCharacterSet;
@@ -455,6 +540,8 @@ DRTTreatmentSummaryRecordIOD &DRTTreatmentSummaryRecordIOD::operator=(const DRTT
         RelatedGeneralSOPClassUID = copy.RelatedGeneralSOPClassUID;
         OriginalSpecializedSOPClassUID = copy.OriginalSpecializedSOPClassUID;
         CodingSchemeIdentificationSequence = copy.CodingSchemeIdentificationSequence;
+        ContextGroupIdentificationSequence = copy.ContextGroupIdentificationSequence;
+        MappingResourceIdentificationSequence = copy.MappingResourceIdentificationSequence;
         TimezoneOffsetFromUTC = copy.TimezoneOffsetFromUTC;
         ContributingEquipmentSequence = copy.ContributingEquipmentSequence;
         SOPInstanceStatus = copy.SOPInstanceStatus;
@@ -486,6 +573,9 @@ void DRTTreatmentSummaryRecordIOD::clear()
     IssuerOfPatientID.clear();
     IssuerOfPatientIDQualifiersSequence.clear();
     PatientBirthDate.clear();
+    PatientBirthDateInAlternativeCalendar.clear();
+    PatientDeathDateInAlternativeCalendar.clear();
+    PatientAlternativeCalendar.clear();
     PatientSex.clear();
     ReferencedPatientPhotoSequence.clear();
     QualityControlSubject.clear();
@@ -501,12 +591,19 @@ void DRTTreatmentSummaryRecordIOD::clear()
     PatientBreedDescription.clear();
     PatientBreedCodeSequence.clear();
     BreedRegistrationSequence.clear();
+    StrainDescription.clear();
+    StrainNomenclature.clear();
+    StrainCodeSequence.clear();
+    StrainAdditionalInformation.clear();
+    StrainStockSequence.clear();
     ResponsiblePerson.clear();
     ResponsiblePersonRole.clear();
     ResponsibleOrganization.clear();
     PatientIdentityRemoved.clear();
     DeidentificationMethod.clear();
     DeidentificationMethodCodeSequence.clear();
+    SourcePatientGroupIdentificationSequence.clear();
+    GroupOfPatientsIdentificationSequence.clear();
     ClinicalTrialSponsorName.clear();
     ClinicalTrialProtocolID.clear();
     ClinicalTrialProtocolName.clear();
@@ -540,7 +637,16 @@ void DRTTreatmentSummaryRecordIOD::clear()
     PatientAge.clear();
     PatientSize.clear();
     PatientWeight.clear();
+    PatientBodyMassIndex.clear();
+    MeasuredAPDimension.clear();
+    MeasuredLateralDimension.clear();
     PatientSizeCodeSequence.clear();
+    MedicalAlerts.clear();
+    Allergies.clear();
+    SmokingStatus.clear();
+    PregnancyStatus.clear();
+    LastMenstrualDate.clear();
+    PatientState.clear();
     Occupation.clear();
     AdditionalPatientHistory.clear();
     AdmissionID.clear();
@@ -560,6 +666,7 @@ void DRTTreatmentSummaryRecordIOD::clear()
     SeriesDescription.clear();
     SeriesDescriptionCodeSequence.clear();
     OperatorsName.clear();
+    OperatorIdentificationSequence.clear();
     ReferencedPerformedProcedureStepSequence.clear();
     RequestAttributesSequence.clear();
     PerformedProcedureStepID.clear();
@@ -582,6 +689,7 @@ void DRTTreatmentSummaryRecordIOD::clear()
     DeviceSerialNumber.clear();
     SoftwareVersions.clear();
     GantryID.clear();
+    UDISequence.clear();
     SpatialResolution.clear();
     DateOfLastCalibration.clear();
     TimeOfLastCalibration.clear();
@@ -598,6 +706,12 @@ void DRTTreatmentSummaryRecordIOD::clear()
     FractionGroupSummarySequence.clear();
     TreatmentSummaryMeasuredDoseReferenceSequence.clear();
     TreatmentSummaryCalculatedDoseReferenceSequence.clear();
+    ReferencedImageSequence.clear();
+    ReferencedInstanceSequence.clear();
+    DerivationDescription.clear();
+    DerivationCodeSequence.clear();
+    SourceImageSequence.clear();
+    SourceInstanceSequence.clear();
     SOPClassUID.clear();
     SOPInstanceUID.clear();
     SpecificCharacterSet.clear();
@@ -608,6 +722,8 @@ void DRTTreatmentSummaryRecordIOD::clear()
     RelatedGeneralSOPClassUID.clear();
     OriginalSpecializedSOPClassUID.clear();
     CodingSchemeIdentificationSequence.clear();
+    ContextGroupIdentificationSequence.clear();
+    MappingResourceIdentificationSequence.clear();
     TimezoneOffsetFromUTC.clear();
     ContributingEquipmentSequence.clear();
     SOPInstanceStatus.clear();
@@ -683,6 +799,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, DeviceSerialNumber, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SoftwareVersions, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, GantryID, "1", "3", "GeneralEquipmentModule");
+        UDISequence.read(dataset, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, SpatialResolution, "1", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, DateOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
         getAndCheckElementFromDataset(dataset, TimeOfLastCalibration, "1-n", "3", "GeneralEquipmentModule");
@@ -704,6 +821,14 @@ OFCondition DRTTreatmentSummaryRecordIOD::read(DcmItem &dataset)
         TreatmentSummaryMeasuredDoseReferenceSequence.read(dataset, "1-n", "3", "RTTreatmentSummaryRecordModule");
         TreatmentSummaryCalculatedDoseReferenceSequence.read(dataset, "1-n", "3", "RTTreatmentSummaryRecordModule");
 
+        // --- GeneralReferenceModule (U) ---
+        ReferencedImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        ReferencedInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        getAndCheckElementFromDataset(dataset, DerivationDescription, "1", "3", "GeneralReferenceModule");
+        DerivationCodeSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceImageSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+        SourceInstanceSequence.read(dataset, "1-n", "3", "GeneralReferenceModule");
+
         // --- SOPCommonModule (M) ---
         getAndCheckElementFromDataset(dataset, SOPClassUID, "1", "1", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, SOPInstanceUID, "1", "1", "SOPCommonModule");
@@ -715,6 +840,8 @@ OFCondition DRTTreatmentSummaryRecordIOD::read(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, RelatedGeneralSOPClassUID, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, OriginalSpecializedSOPClassUID, "1", "3", "SOPCommonModule");
         CodingSchemeIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        ContextGroupIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
+        MappingResourceIdentificationSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         getAndCheckElementFromDataset(dataset, TimezoneOffsetFromUTC, "1", "3", "SOPCommonModule");
         ContributingEquipmentSequence.read(dataset, "1-n", "3", "SOPCommonModule");
         // getAndCheckElementFromDataset(dataset, InstanceNumber, "1", "3", "SOPCommonModule");
@@ -751,6 +878,9 @@ OFCondition DRTTreatmentSummaryRecordIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, IssuerOfPatientID, "1", "3", "PatientModule");
     IssuerOfPatientIDQualifiersSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientBirthDate, "1", "2", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientBirthDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientDeathDateInAlternativeCalendar, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, PatientAlternativeCalendar, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientSex, "1", "2", "PatientModule");
     ReferencedPatientPhotoSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, QualityControlSubject, "1", "3", "PatientModule");
@@ -766,12 +896,19 @@ OFCondition DRTTreatmentSummaryRecordIOD::readPatientData(DcmItem &dataset)
     getAndCheckElementFromDataset(dataset, PatientBreedDescription, "1", "2C", "PatientModule");
     PatientBreedCodeSequence.read(dataset, "1-n", "2C", "PatientModule");
     BreedRegistrationSequence.read(dataset, "1-n", "2C", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainDescription, "1", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainNomenclature, "1", "3", "PatientModule");
+    StrainCodeSequence.read(dataset, "1-n", "3", "PatientModule");
+    getAndCheckElementFromDataset(dataset, StrainAdditionalInformation, "1", "3", "PatientModule");
+    StrainStockSequence.read(dataset, "1-n", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePerson, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsiblePersonRole, "1", "1C", "PatientModule");
     getAndCheckElementFromDataset(dataset, ResponsibleOrganization, "1", "2C", "PatientModule");
     getAndCheckElementFromDataset(dataset, PatientIdentityRemoved, "1", "3", "PatientModule");
     getAndCheckElementFromDataset(dataset, DeidentificationMethod, "1-n", "1C", "PatientModule");
     DeidentificationMethodCodeSequence.read(dataset, "1-n", "1C", "PatientModule");
+    SourcePatientGroupIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
+    GroupOfPatientsIdentificationSequence.read(dataset, "1-n", "3", "PatientModule");
 
     // --- ClinicalTrialSubjectModule (U) ---
     if (dataset.tagExists(DCM_ClinicalTrialSponsorName) ||
@@ -827,7 +964,16 @@ OFCondition DRTTreatmentSummaryRecordIOD::readStudyData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, PatientAge, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientSize, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, PatientWeight, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientBodyMassIndex, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredAPDimension, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MeasuredLateralDimension, "1", "3", "PatientStudyModule");
         PatientSizeCodeSequence.read(dataset, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, MedicalAlerts, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, Allergies, "1-n", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, SmokingStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PregnancyStatus, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, LastMenstrualDate, "1", "3", "PatientStudyModule");
+        getAndCheckElementFromDataset(dataset, PatientState, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, Occupation, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdditionalPatientHistory, "1", "3", "PatientStudyModule");
         getAndCheckElementFromDataset(dataset, AdmissionID, "1", "3", "PatientStudyModule");
@@ -864,6 +1010,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::readSeriesData(DcmItem &dataset)
         getAndCheckElementFromDataset(dataset, SeriesDescription, "1", "3", "RTSeriesModule");
         SeriesDescriptionCodeSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, OperatorsName, "1-n", "2", "RTSeriesModule");
+        OperatorIdentificationSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         ReferencedPerformedProcedureStepSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         RequestAttributesSequence.read(dataset, "1-n", "3", "RTSeriesModule");
         getAndCheckElementFromDataset(dataset, PerformedProcedureStepID, "1", "3", "RTSeriesModule");
@@ -902,6 +1049,9 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(IssuerOfPatientID), "1", "3", "PatientModule");
         if (result.good()) result = IssuerOfPatientIDQualifiersSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmDate(PatientBirthDate), "1", "2", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientBirthDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(PatientDeathDateInAlternativeCalendar), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmCodeString(PatientAlternativeCalendar), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientSex), "1", "2", "PatientModule");
         if (result.good()) result = ReferencedPatientPhotoSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(QualityControlSubject), "1", "3", "PatientModule");
@@ -917,12 +1067,19 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(PatientBreedDescription), "1", "2C", "PatientModule");
         if (result.good()) result = PatientBreedCodeSequence.write(dataset, "1-n" ,"2C", "PatientModule");
         if (result.good()) result = BreedRegistrationSequence.write(dataset, "1-n" ,"2C", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedCharacters(StrainDescription), "1", "3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmLongString(StrainNomenclature), "1", "3", "PatientModule");
+        if (result.good()) result = StrainCodeSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        addElementToDataset(result, dataset, new DcmUnlimitedText(StrainAdditionalInformation), "1", "3", "PatientModule");
+        if (result.good()) result = StrainStockSequence.write(dataset, "1-n" ,"3", "PatientModule");
         addElementToDataset(result, dataset, new DcmPersonName(ResponsiblePerson), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(ResponsiblePersonRole), "1", "1C", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(ResponsibleOrganization), "1", "2C", "PatientModule");
         addElementToDataset(result, dataset, new DcmCodeString(PatientIdentityRemoved), "1", "3", "PatientModule");
         addElementToDataset(result, dataset, new DcmLongString(DeidentificationMethod), "1-n", "1C", "PatientModule");
         if (result.good()) result = DeidentificationMethodCodeSequence.write(dataset, "1-n" ,"1C", "PatientModule");
+        if (result.good()) result = SourcePatientGroupIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
+        if (result.good()) result = GroupOfPatientsIdentificationSequence.write(dataset, "1-n" ,"3", "PatientModule");
 
         // --- ClinicalTrialSubjectModule (U) ---
         if (isClinicalTrialSubjectModulePresent(OFFalse /*complete*/))
@@ -967,7 +1124,16 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
             addElementToDataset(result, dataset, new DcmAgeString(PatientAge), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientSize), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmDecimalString(PatientWeight), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(PatientBodyMassIndex), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredAPDimension), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDecimalString(MeasuredLateralDimension), "1", "3", "PatientStudyModule");
             if (result.good()) result = PatientSizeCodeSequence.write(dataset, "1-n" ,"3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(MedicalAlerts), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(Allergies), "1-n", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmCodeString(SmokingStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmUnsignedShort(PregnancyStatus), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmDate(LastMenstrualDate), "1", "3", "PatientStudyModule");
+            addElementToDataset(result, dataset, new DcmLongString(PatientState), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmShortString(Occupation), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongText(AdditionalPatientHistory), "1", "3", "PatientStudyModule");
             addElementToDataset(result, dataset, new DcmLongString(AdmissionID), "1", "3", "PatientStudyModule");
@@ -995,6 +1161,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(SeriesDescription), "1", "3", "RTSeriesModule");
         if (result.good()) result = SeriesDescriptionCodeSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmPersonName(OperatorsName), "1-n", "2", "RTSeriesModule");
+        if (result.good()) result = OperatorIdentificationSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = ReferencedPerformedProcedureStepSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         if (result.good()) result = RequestAttributesSequence.write(dataset, "1-n" ,"3", "RTSeriesModule");
         addElementToDataset(result, dataset, new DcmShortString(PerformedProcedureStepID), "1", "3", "RTSeriesModule");
@@ -1024,6 +1191,7 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmLongString(DeviceSerialNumber), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(SoftwareVersions), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmLongString(GantryID), "1", "3", "GeneralEquipmentModule");
+        if (result.good()) result = UDISequence.write(dataset, "1-n" ,"3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDecimalString(SpatialResolution), "1", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmDate(DateOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
         addElementToDataset(result, dataset, new DcmTime(TimeOfLastCalibration), "1-n", "3", "GeneralEquipmentModule");
@@ -1045,6 +1213,17 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
         if (result.good()) result = TreatmentSummaryMeasuredDoseReferenceSequence.write(dataset, "1-n" ,"3", "RTTreatmentSummaryRecordModule");
         if (result.good()) result = TreatmentSummaryCalculatedDoseReferenceSequence.write(dataset, "1-n" ,"3", "RTTreatmentSummaryRecordModule");
 
+        // --- GeneralReferenceModule (U) ---
+        if (isGeneralReferenceModulePresent(OFFalse /*complete*/))
+        {
+            if (result.good()) result = ReferencedImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = ReferencedInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            addElementToDataset(result, dataset, new DcmShortText(DerivationDescription), "1", "3", "GeneralReferenceModule");
+            if (result.good()) result = DerivationCodeSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceImageSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+            if (result.good()) result = SourceInstanceSequence.write(dataset, "1-n" ,"3", "GeneralReferenceModule");
+        }
+
         // --- SOPCommonModule (M) ---
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPClassUID), "1", "1", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(SOPInstanceUID), "1", "1", "SOPCommonModule");
@@ -1056,6 +1235,8 @@ OFCondition DRTTreatmentSummaryRecordIOD::write(DcmItem &dataset)
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(RelatedGeneralSOPClassUID), "1-n", "3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmUniqueIdentifier(OriginalSpecializedSOPClassUID), "1", "3", "SOPCommonModule");
         if (result.good()) result = CodingSchemeIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = ContextGroupIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
+        if (result.good()) result = MappingResourceIdentificationSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         addElementToDataset(result, dataset, new DcmShortString(TimezoneOffsetFromUTC), "1", "3", "SOPCommonModule");
         if (result.good()) result = ContributingEquipmentSequence.write(dataset, "1-n" ,"3", "SOPCommonModule");
         // addElementToDataset(result, dataset, new DcmIntegerString(InstanceNumber), "1", "3", "SOPCommonModule");
@@ -1116,7 +1297,16 @@ OFBool DRTTreatmentSummaryRecordIOD::isPatientStudyModulePresent(const OFBool /*
            !PatientAge.isEmpty() ||
            !PatientSize.isEmpty() ||
            !PatientWeight.isEmpty() ||
+           !PatientBodyMassIndex.isEmpty() ||
+           !MeasuredAPDimension.isEmpty() ||
+           !MeasuredLateralDimension.isEmpty() ||
            !PatientSizeCodeSequence.isEmpty() ||
+           !MedicalAlerts.isEmpty() ||
+           !Allergies.isEmpty() ||
+           !SmokingStatus.isEmpty() ||
+           !PregnancyStatus.isEmpty() ||
+           !LastMenstrualDate.isEmpty() ||
+           !PatientState.isEmpty() ||
            !Occupation.isEmpty() ||
            !AdditionalPatientHistory.isEmpty() ||
            !AdmissionID.isEmpty() ||
@@ -1146,6 +1336,18 @@ OFBool DRTTreatmentSummaryRecordIOD::isClinicalTrialSeriesModulePresent(const OF
 }
 
 
+OFBool DRTTreatmentSummaryRecordIOD::isGeneralReferenceModulePresent(const OFBool /*complete*/)
+{
+    /* check whether at least one attribute is present */
+    return !ReferencedImageSequence.isEmpty() ||
+           !ReferencedInstanceSequence.isEmpty() ||
+           !DerivationDescription.isEmpty() ||
+           !DerivationCodeSequence.isEmpty() ||
+           !SourceImageSequence.isEmpty() ||
+           !SourceInstanceSequence.isEmpty();
+}
+
+
 OFBool DRTTreatmentSummaryRecordIOD::isCommonInstanceReferenceModulePresent(const OFBool /*complete*/)
 {
     /* check whether at least one attribute is present */
@@ -1178,6 +1380,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getAdmittingDiagnosesDescription(OFStr
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getAllergies(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(Allergies, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getAuthorizationEquipmentCertificationNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(AuthorizationEquipmentCertificationNumber, value, pos);
@@ -1304,6 +1512,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getDeidentificationMethod(OFString &va
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getDerivationDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(DerivationDescription, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getDeviceSerialNumber(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(DeviceSerialNumber, value, pos);
@@ -1388,6 +1602,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getIssuerOfPatientID(OFString &value,
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getLastMenstrualDate(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(LastMenstrualDate, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getLongitudinalTemporalInformationModified(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(LongitudinalTemporalInformationModified, value, pos);
@@ -1406,6 +1626,36 @@ OFCondition DRTTreatmentSummaryRecordIOD::getManufacturerModelName(OFString &val
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredAPDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredAPDimension, value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredAPDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredAPDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredLateralDimension(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MeasuredLateralDimension, value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getMeasuredLateralDimension(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, MeasuredLateralDimension).getFloat64(value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getMedicalAlerts(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(MedicalAlerts, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getModality(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(Modality, value, pos);
@@ -1460,18 +1710,42 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPatientAge(OFString &value, const s
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getPatientAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getPatientBirthDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthDate, value, pos);
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getPatientBirthDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBirthDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getPatientBirthTime(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBirthTime, value, pos);
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getPatientBodyMassIndex(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientBodyMassIndex, value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getPatientBodyMassIndex(Float64 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmDecimalString &, PatientBodyMassIndex).getFloat64(value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getPatientBreedDescription(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientBreedDescription, value, pos);
@@ -1484,6 +1758,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPatientComments(OFString &value, co
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getPatientDeathDateInAlternativeCalendar(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientDeathDateInAlternativeCalendar, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getPatientID(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientID, value, pos);
@@ -1532,6 +1812,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPatientSpeciesDescription(OFString
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getPatientState(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(PatientState, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getPatientWeight(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(PatientWeight, value, pos);
@@ -1592,6 +1878,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getPixelPaddingValue(Uint16 &value, co
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getPregnancyStatus(Uint16 &value, const unsigned long pos) const
+{
+    return OFconst_cast(DcmUnsignedShort &, PregnancyStatus).getUint16(value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getQualityControlSubject(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(QualityControlSubject, value, pos);
@@ -1712,6 +2004,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::getServiceEpisodeID(OFString &value, c
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getSmokingStatus(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(SmokingStatus, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getSoftwareVersions(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(SoftwareVersions, value, pos);
@@ -1742,6 +2040,24 @@ OFCondition DRTTreatmentSummaryRecordIOD::getStationName(OFString &value, const
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::getStrainAdditionalInformation(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainAdditionalInformation, value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getStrainDescription(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainDescription, value, pos);
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::getStrainNomenclature(OFString &value, const signed long pos) const
+{
+    return getStringValueFromElement(StrainNomenclature, value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::getStudyDate(OFString &value, const signed long pos) const
 {
     return getStringValueFromElement(StudyDate, value, pos);
@@ -1838,6 +2154,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setAdmittingDiagnosesDescription(const
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setAllergies(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = Allergies.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setAuthorizationEquipmentCertificationNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2027,6 +2352,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setDeidentificationMethod(const OFStri
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setDerivationDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmShortText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = DerivationDescription.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setDeviceSerialNumber(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2144,6 +2478,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setIssuerOfPatientID(const OFString &v
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setLastMenstrualDate(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = LastMenstrualDate.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setLongitudinalTemporalInformationModified(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2171,6 +2514,33 @@ OFCondition DRTTreatmentSummaryRecordIOD::setManufacturerModelName(const OFStrin
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setMeasuredAPDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredAPDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::setMeasuredLateralDimension(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = MeasuredLateralDimension.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::setMedicalAlerts(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
+    if (result.good())
+        result = MedicalAlerts.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setModality(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2252,6 +2622,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientAge(const OFString &value, c
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setPatientAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
@@ -2261,6 +2640,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthDate(const OFString &va
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBirthDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthTime(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmTime::checkStringValue(value, "1") : EC_Normal;
@@ -2270,6 +2658,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientBirthTime(const OFString &va
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setPatientBodyMassIndex(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientBodyMassIndex.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setPatientBreedDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2288,6 +2685,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientComments(const OFString &val
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setPatientDeathDateInAlternativeCalendar(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientDeathDateInAlternativeCalendar.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setPatientID(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
@@ -2351,6 +2757,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPatientSpeciesDescription(const OFS
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setPatientState(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = PatientState.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setPatientWeight(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDecimalString::checkStringValue(value, "1") : EC_Normal;
@@ -2429,6 +2844,12 @@ OFCondition DRTTreatmentSummaryRecordIOD::setPixelPaddingValue(const Uint16 valu
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setPregnancyStatus(const Uint16 value, const unsigned long pos)
+{
+    return PregnancyStatus.putUint16(value, pos);
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setQualityControlSubject(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
@@ -2600,6 +3021,15 @@ OFCondition DRTTreatmentSummaryRecordIOD::setServiceEpisodeID(const OFString &va
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setSmokingStatus(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = SmokingStatus.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setSoftwareVersions(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1-n") : EC_Normal;
@@ -2636,6 +3066,33 @@ OFCondition DRTTreatmentSummaryRecordIOD::setStationName(const OFString &value,
 }
 
 
+OFCondition DRTTreatmentSummaryRecordIOD::setStrainAdditionalInformation(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
+    if (result.good())
+        result = StrainAdditionalInformation.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::setStrainDescription(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmUnlimitedCharacters::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainDescription.putOFStringArray(value);
+    return result;
+}
+
+
+OFCondition DRTTreatmentSummaryRecordIOD::setStrainNomenclature(const OFString &value, const OFBool check)
+{
+    OFCondition result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
+    if (result.good())
+        result = StrainNomenclature.putOFStringArray(value);
+    return result;
+}
+
+
 OFCondition DRTTreatmentSummaryRecordIOD::setStudyDate(const OFString &value, const OFBool check)
 {
     OFCondition result = (check) ? DcmDate::checkStringValue(value, "1") : EC_Normal;
diff --git a/dcmrt/libsrc/drttscds.cc b/dcmrt/libsrc/drttscds.cc
index e9b64a1..b30e8e3 100644
--- a/dcmrt/libsrc/drttscds.cc
+++ b/dcmrt/libsrc/drttscds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTTreatmentSummaryCalculatedDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drttsibs.cc b/dcmrt/libsrc/drttsibs.cc
index a69c892..de35e64 100644
--- a/dcmrt/libsrc/drttsibs.cc
+++ b/dcmrt/libsrc/drttsibs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTTreatmentSessionIonBeamSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
@@ -27,13 +27,16 @@ DRTTreatmentSessionIonBeamSequence::Item::Item(const OFBool emptyDefaultItem)
     BeamName(DCM_BeamName),
     BeamType(DCM_BeamType),
     CurrentFractionNumber(DCM_CurrentFractionNumber),
+    DeliveredDepthDoseParametersSequence(emptyDefaultItem /*emptyDefaultSequence*/),
     DeliveredPrimaryMeterset(DCM_DeliveredPrimaryMeterset),
     DeliveredSecondaryMeterset(DCM_DeliveredSecondaryMeterset),
     DeliveredTreatmentTime(DCM_DeliveredTreatmentTime),
+    FixationEye(DCM_FixationEye),
     FixationLightAzimuthalAngle(DCM_FixationLightAzimuthalAngle),
     FixationLightPolarAngle(DCM_FixationLightPolarAngle),
     GeneralAccessorySequence(emptyDefaultItem /*emptyDefaultSequence*/),
     IonControlPointDeliverySequence(emptyDefaultItem /*emptyDefaultSequence*/),
+    ModulatedScanModeType(DCM_ModulatedScanModeType),
     NumberOfBlocks(DCM_NumberOfBlocks),
     NumberOfBoli(DCM_NumberOfBoli),
     NumberOfCompensators(DCM_NumberOfCompensators),
@@ -83,13 +86,16 @@ DRTTreatmentSessionIonBeamSequence::Item::Item(const Item &copy)
     BeamName(copy.BeamName),
     BeamType(copy.BeamType),
     CurrentFractionNumber(copy.CurrentFractionNumber),
+    DeliveredDepthDoseParametersSequence(copy.DeliveredDepthDoseParametersSequence),
     DeliveredPrimaryMeterset(copy.DeliveredPrimaryMeterset),
     DeliveredSecondaryMeterset(copy.DeliveredSecondaryMeterset),
     DeliveredTreatmentTime(copy.DeliveredTreatmentTime),
+    FixationEye(copy.FixationEye),
     FixationLightAzimuthalAngle(copy.FixationLightAzimuthalAngle),
     FixationLightPolarAngle(copy.FixationLightPolarAngle),
     GeneralAccessorySequence(copy.GeneralAccessorySequence),
     IonControlPointDeliverySequence(copy.IonControlPointDeliverySequence),
+    ModulatedScanModeType(copy.ModulatedScanModeType),
     NumberOfBlocks(copy.NumberOfBlocks),
     NumberOfBoli(copy.NumberOfBoli),
     NumberOfCompensators(copy.NumberOfCompensators),
@@ -147,13 +153,16 @@ DRTTreatmentSessionIonBeamSequence::Item &DRTTreatmentSessionIonBeamSequence::It
         BeamName = copy.BeamName;
         BeamType = copy.BeamType;
         CurrentFractionNumber = copy.CurrentFractionNumber;
+        DeliveredDepthDoseParametersSequence = copy.DeliveredDepthDoseParametersSequence;
         DeliveredPrimaryMeterset = copy.DeliveredPrimaryMeterset;
         DeliveredSecondaryMeterset = copy.DeliveredSecondaryMeterset;
         DeliveredTreatmentTime = copy.DeliveredTreatmentTime;
+        FixationEye = copy.FixationEye;
         FixationLightAzimuthalAngle = copy.FixationLightAzimuthalAngle;
         FixationLightPolarAngle = copy.FixationLightPolarAngle;
         GeneralAccessorySequence = copy.GeneralAccessorySequence;
         IonControlPointDeliverySequence = copy.IonControlPointDeliverySequence;
+        ModulatedScanModeType = copy.ModulatedScanModeType;
         NumberOfBlocks = copy.NumberOfBlocks;
         NumberOfBoli = copy.NumberOfBoli;
         NumberOfCompensators = copy.NumberOfCompensators;
@@ -210,6 +219,7 @@ void DRTTreatmentSessionIonBeamSequence::Item::clear()
         RadiationAtomicNumber.clear();
         RadiationChargeState.clear();
         ScanMode.clear();
+        ModulatedScanModeType.clear();
         ReferencedToleranceTableNumber.clear();
         BeamLimitingDeviceLeafPairsSequence.clear();
         ReferencedPatientSetupNumber.clear();
@@ -238,6 +248,7 @@ void DRTTreatmentSessionIonBeamSequence::Item::clear()
         PatientSupportAccessoryCode.clear();
         FixationLightAzimuthalAngle.clear();
         FixationLightPolarAngle.clear();
+        FixationEye.clear();
         CurrentFractionNumber.clear();
         TreatmentDeliveryType.clear();
         TreatmentTerminationStatus.clear();
@@ -249,6 +260,7 @@ void DRTTreatmentSessionIonBeamSequence::Item::clear()
         DeliveredSecondaryMeterset.clear();
         SpecifiedTreatmentTime.clear();
         DeliveredTreatmentTime.clear();
+        DeliveredDepthDoseParametersSequence.clear();
         NumberOfControlPoints.clear();
         IonControlPointDeliverySequence.clear();
     }
@@ -266,6 +278,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::Item::isEmpty()
            RadiationAtomicNumber.isEmpty() &&
            RadiationChargeState.isEmpty() &&
            ScanMode.isEmpty() &&
+           ModulatedScanModeType.isEmpty() &&
            ReferencedToleranceTableNumber.isEmpty() &&
            BeamLimitingDeviceLeafPairsSequence.isEmpty() &&
            ReferencedPatientSetupNumber.isEmpty() &&
@@ -294,6 +307,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::Item::isEmpty()
            PatientSupportAccessoryCode.isEmpty() &&
            FixationLightAzimuthalAngle.isEmpty() &&
            FixationLightPolarAngle.isEmpty() &&
+           FixationEye.isEmpty() &&
            CurrentFractionNumber.isEmpty() &&
            TreatmentDeliveryType.isEmpty() &&
            TreatmentTerminationStatus.isEmpty() &&
@@ -305,6 +319,7 @@ OFBool DRTTreatmentSessionIonBeamSequence::Item::isEmpty()
            DeliveredSecondaryMeterset.isEmpty() &&
            SpecifiedTreatmentTime.isEmpty() &&
            DeliveredTreatmentTime.isEmpty() &&
+           DeliveredDepthDoseParametersSequence.isEmpty() &&
            NumberOfControlPoints.isEmpty() &&
            IonControlPointDeliverySequence.isEmpty();
 }
@@ -332,6 +347,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, RadiationAtomicNumber, "1", "1C", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, RadiationChargeState, "1", "1C", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, ScanMode, "1", "1", "TreatmentSessionIonBeamSequence");
+        getAndCheckElementFromDataset(item, ModulatedScanModeType, "1", "1C", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, ReferencedToleranceTableNumber, "1", "3", "TreatmentSessionIonBeamSequence");
         BeamLimitingDeviceLeafPairsSequence.read(item, "1-n", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, ReferencedPatientSetupNumber, "1", "3", "TreatmentSessionIonBeamSequence");
@@ -360,6 +376,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, PatientSupportAccessoryCode, "1", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, FixationLightAzimuthalAngle, "1", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, FixationLightPolarAngle, "1", "3", "TreatmentSessionIonBeamSequence");
+        getAndCheckElementFromDataset(item, FixationEye, "1", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, CurrentFractionNumber, "1", "2", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, TreatmentDeliveryType, "1", "2", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, TreatmentTerminationStatus, "1", "1", "TreatmentSessionIonBeamSequence");
@@ -371,6 +388,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::read(DcmItem &item)
         getAndCheckElementFromDataset(item, DeliveredSecondaryMeterset, "1", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, SpecifiedTreatmentTime, "1", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, DeliveredTreatmentTime, "1", "3", "TreatmentSessionIonBeamSequence");
+        DeliveredDepthDoseParametersSequence.read(item, "1-n", "3", "TreatmentSessionIonBeamSequence");
         getAndCheckElementFromDataset(item, NumberOfControlPoints, "1", "1", "TreatmentSessionIonBeamSequence");
         IonControlPointDeliverySequence.read(item, "1-n", "1", "TreatmentSessionIonBeamSequence");
         result = EC_Normal;
@@ -394,6 +412,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmIntegerString(RadiationAtomicNumber), "1", "1C", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmSignedShort(RadiationChargeState), "1", "1C", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmCodeString(ScanMode), "1", "1", "TreatmentSessionIonBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(ModulatedScanModeType), "1", "1C", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(ReferencedToleranceTableNumber), "1", "3", "TreatmentSessionIonBeamSequence");
         if (result.good()) result = BeamLimitingDeviceLeafPairsSequence.write(item, "1-n", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(ReferencedPatientSetupNumber), "1", "3", "TreatmentSessionIonBeamSequence");
@@ -422,6 +441,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmLongString(PatientSupportAccessoryCode), "1", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightAzimuthalAngle), "1", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmFloatingPointSingle(FixationLightPolarAngle), "1", "3", "TreatmentSessionIonBeamSequence");
+        addElementToDataset(result, item, new DcmCodeString(FixationEye), "1", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(CurrentFractionNumber), "1", "2", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmCodeString(TreatmentDeliveryType), "1", "2", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmCodeString(TreatmentTerminationStatus), "1", "1", "TreatmentSessionIonBeamSequence");
@@ -433,6 +453,7 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::write(DcmItem &item)
         addElementToDataset(result, item, new DcmDecimalString(DeliveredSecondaryMeterset), "1", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(SpecifiedTreatmentTime), "1", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmDecimalString(DeliveredTreatmentTime), "1", "3", "TreatmentSessionIonBeamSequence");
+        if (result.good()) result = DeliveredDepthDoseParametersSequence.write(item, "1-n", "3", "TreatmentSessionIonBeamSequence");
         addElementToDataset(result, item, new DcmIntegerString(NumberOfControlPoints), "1", "1", "TreatmentSessionIonBeamSequence");
         if (result.good()) result = IonControlPointDeliverySequence.write(item, "1-n", "1", "TreatmentSessionIonBeamSequence");
     }
@@ -539,6 +560,15 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::getDeliveredTreatmentTime(
 }
 
 
+OFCondition DRTTreatmentSessionIonBeamSequence::Item::getFixationEye(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(FixationEye, value, pos);
+}
+
+
 OFCondition DRTTreatmentSessionIonBeamSequence::Item::getFixationLightAzimuthalAngle(Float32 &value, const unsigned long pos) const
 {
     if (EmptyDefaultItem)
@@ -557,6 +587,15 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::getFixationLightPolarAngle
 }
 
 
+OFCondition DRTTreatmentSessionIonBeamSequence::Item::getModulatedScanModeType(OFString &value, const signed long pos) const
+{
+    if (EmptyDefaultItem)
+        return EC_IllegalCall;
+    else
+        return getStringValueFromElement(ModulatedScanModeType, value, pos);
+}
+
+
 OFCondition DRTTreatmentSessionIonBeamSequence::Item::getNumberOfBlocks(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
@@ -1026,6 +1065,19 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::setDeliveredTreatmentTime(
 }
 
 
+OFCondition DRTTreatmentSessionIonBeamSequence::Item::setFixationEye(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = FixationEye.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTTreatmentSessionIonBeamSequence::Item::setFixationLightAzimuthalAngle(const Float32 value, const unsigned long pos)
 {
     if (EmptyDefaultItem)
@@ -1044,6 +1096,19 @@ OFCondition DRTTreatmentSessionIonBeamSequence::Item::setFixationLightPolarAngle
 }
 
 
+OFCondition DRTTreatmentSessionIonBeamSequence::Item::setModulatedScanModeType(const OFString &value, const OFBool check)
+{
+    OFCondition result = EC_IllegalCall;
+    if (!EmptyDefaultItem)
+    {
+        result = (check) ? DcmCodeString::checkStringValue(value, "1") : EC_Normal;
+        if (result.good())
+            result = ModulatedScanModeType.putOFStringArray(value);
+    }
+    return result;
+}
+
+
 OFCondition DRTTreatmentSessionIonBeamSequence::Item::setNumberOfBlocks(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
diff --git a/dcmrt/libsrc/drttsmds.cc b/dcmrt/libsrc/drttsmds.cc
index c70d66c..b9b104e 100644
--- a/dcmrt/libsrc/drttsmds.cc
+++ b/dcmrt/libsrc/drttsmds.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTTreatmentSummaryMeasuredDoseReferenceSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drttts.cc b/dcmrt/libsrc/drttts.cc
index bb271cd..11fd485 100644
--- a/dcmrt/libsrc/drttts.cc
+++ b/dcmrt/libsrc/drttts.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTToleranceTableSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtsns.cc b/dcmrt/libsrc/drtudis.cc
similarity index 71%
copy from dcmrt/libsrc/drtsns.cc
copy to dcmrt/libsrc/drtudis.cc
index b0febd2..b48c393 100644
--- a/dcmrt/libsrc/drtsns.cc
+++ b/dcmrt/libsrc/drtudis.cc
@@ -1,148 +1,148 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
- *  Source file for class DRTSnoutSequence
+ *  Source file for class DRTUDISequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
 
 #include "dcmtk/config/osconfig.h"     // make sure OS specific configuration is included first
 
-#include "dcmtk/dcmrt/seq/drtsns.h"
+#include "dcmtk/dcmrt/seq/drtudis.h"
 
 
 // --- item class ---
 
-DRTSnoutSequence::Item::Item(const OFBool emptyDefaultItem)
+DRTUDISequence::Item::Item(const OFBool emptyDefaultItem)
   : EmptyDefaultItem(emptyDefaultItem),
-    AccessoryCode(DCM_AccessoryCode),
-    SnoutID(DCM_SnoutID)
+    DeviceDescription(DCM_DeviceDescription),
+    UniqueDeviceIdentifier(DCM_UniqueDeviceIdentifier)
 {
 }
 
 
-DRTSnoutSequence::Item::Item(const Item &copy)
+DRTUDISequence::Item::Item(const Item &copy)
   : EmptyDefaultItem(copy.EmptyDefaultItem),
-    AccessoryCode(copy.AccessoryCode),
-    SnoutID(copy.SnoutID)
+    DeviceDescription(copy.DeviceDescription),
+    UniqueDeviceIdentifier(copy.UniqueDeviceIdentifier)
 {
 }
 
 
-DRTSnoutSequence::Item::~Item()
+DRTUDISequence::Item::~Item()
 {
 }
 
 
-DRTSnoutSequence::Item &DRTSnoutSequence::Item::operator=(const Item &copy)
+DRTUDISequence::Item &DRTUDISequence::Item::operator=(const Item &copy)
 {
     if (this != &copy)
     {
         EmptyDefaultItem = copy.EmptyDefaultItem;
-        AccessoryCode = copy.AccessoryCode;
-        SnoutID = copy.SnoutID;
+        DeviceDescription = copy.DeviceDescription;
+        UniqueDeviceIdentifier = copy.UniqueDeviceIdentifier;
     }
     return *this;
 }
 
 
-void DRTSnoutSequence::Item::clear()
+void DRTUDISequence::Item::clear()
 {
     if (!EmptyDefaultItem)
     {
         /* clear all DICOM attributes */
-        SnoutID.clear();
-        AccessoryCode.clear();
+        UniqueDeviceIdentifier.clear();
+        DeviceDescription.clear();
     }
 }
 
 
-OFBool DRTSnoutSequence::Item::isEmpty()
+OFBool DRTUDISequence::Item::isEmpty()
 {
-    return SnoutID.isEmpty() &&
-           AccessoryCode.isEmpty();
+    return UniqueDeviceIdentifier.isEmpty() &&
+           DeviceDescription.isEmpty();
 }
 
 
-OFBool DRTSnoutSequence::Item::isValid() const
+OFBool DRTUDISequence::Item::isValid() const
 {
     return !EmptyDefaultItem;
 }
 
 
-OFCondition DRTSnoutSequence::Item::read(DcmItem &item)
+OFCondition DRTUDISequence::Item::read(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         /* re-initialize object */
         clear();
-        getAndCheckElementFromDataset(item, SnoutID, "1", "1", "SnoutSequence");
-        getAndCheckElementFromDataset(item, AccessoryCode, "1", "3", "SnoutSequence");
+        getAndCheckElementFromDataset(item, UniqueDeviceIdentifier, "1", "1", "UDISequence");
+        getAndCheckElementFromDataset(item, DeviceDescription, "1", "3", "UDISequence");
         result = EC_Normal;
     }
     return result;
 }
 
 
-OFCondition DRTSnoutSequence::Item::write(DcmItem &item)
+OFCondition DRTUDISequence::Item::write(DcmItem &item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = EC_Normal;
-        addElementToDataset(result, item, new DcmShortString(SnoutID), "1", "1", "SnoutSequence");
-        addElementToDataset(result, item, new DcmLongString(AccessoryCode), "1", "3", "SnoutSequence");
+        addElementToDataset(result, item, new DcmUnlimitedText(UniqueDeviceIdentifier), "1", "1", "UDISequence");
+        addElementToDataset(result, item, new DcmLongString(DeviceDescription), "1", "3", "UDISequence");
     }
     return result;
 }
 
 
-OFCondition DRTSnoutSequence::Item::getAccessoryCode(OFString &value, const signed long pos) const
+OFCondition DRTUDISequence::Item::getDeviceDescription(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(AccessoryCode, value, pos);
+        return getStringValueFromElement(DeviceDescription, value, pos);
 }
 
 
-OFCondition DRTSnoutSequence::Item::getSnoutID(OFString &value, const signed long pos) const
+OFCondition DRTUDISequence::Item::getUniqueDeviceIdentifier(OFString &value, const signed long pos) const
 {
     if (EmptyDefaultItem)
         return EC_IllegalCall;
     else
-        return getStringValueFromElement(SnoutID, value, pos);
+        return getStringValueFromElement(UniqueDeviceIdentifier, value, pos);
 }
 
 
-OFCondition DRTSnoutSequence::Item::setAccessoryCode(const OFString &value, const OFBool check)
+OFCondition DRTUDISequence::Item::setDeviceDescription(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
         result = (check) ? DcmLongString::checkStringValue(value, "1") : EC_Normal;
         if (result.good())
-            result = AccessoryCode.putOFStringArray(value);
+            result = DeviceDescription.putOFStringArray(value);
     }
     return result;
 }
 
 
-OFCondition DRTSnoutSequence::Item::setSnoutID(const OFString &value, const OFBool check)
+OFCondition DRTUDISequence::Item::setUniqueDeviceIdentifier(const OFString &value, const OFBool check)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultItem)
     {
-        result = (check) ? DcmShortString::checkStringValue(value, "1") : EC_Normal;
+        result = (check) ? DcmUnlimitedText::checkStringValue(value) : EC_Normal;
         if (result.good())
-            result = SnoutID.putOFStringArray(value);
+            result = UniqueDeviceIdentifier.putOFStringArray(value);
     }
     return result;
 }
@@ -150,7 +150,7 @@ OFCondition DRTSnoutSequence::Item::setSnoutID(const OFString &value, const OFBo
 
 // --- sequence class ---
 
-DRTSnoutSequence::DRTSnoutSequence(const OFBool emptyDefaultSequence)
+DRTUDISequence::DRTUDISequence(const OFBool emptyDefaultSequence)
   : EmptyDefaultSequence(emptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -160,7 +160,7 @@ DRTSnoutSequence::DRTSnoutSequence(const OFBool emptyDefaultSequence)
 }
 
 
-DRTSnoutSequence::DRTSnoutSequence(const DRTSnoutSequence &copy)
+DRTUDISequence::DRTUDISequence(const DRTUDISequence &copy)
   : EmptyDefaultSequence(copy.EmptyDefaultSequence),
     SequenceOfItems(),
     CurrentItem(),
@@ -186,7 +186,7 @@ DRTSnoutSequence::DRTSnoutSequence(const DRTSnoutSequence &copy)
 }
 
 
-DRTSnoutSequence &DRTSnoutSequence::operator=(const DRTSnoutSequence &copy)
+DRTUDISequence &DRTUDISequence::operator=(const DRTUDISequence &copy)
 {
     if (this != &copy)
     {
@@ -214,13 +214,13 @@ DRTSnoutSequence &DRTSnoutSequence::operator=(const DRTSnoutSequence &copy)
 }
 
 
-DRTSnoutSequence::~DRTSnoutSequence()
+DRTUDISequence::~DRTUDISequence()
 {
     clear();
 }
 
 
-void DRTSnoutSequence::clear()
+void DRTUDISequence::clear()
 {
     if (!EmptyDefaultSequence)
     {
@@ -239,25 +239,25 @@ void DRTSnoutSequence::clear()
 }
 
 
-OFBool DRTSnoutSequence::isEmpty()
+OFBool DRTUDISequence::isEmpty()
 {
     return SequenceOfItems.empty();
 }
 
 
-OFBool DRTSnoutSequence::isValid() const
+OFBool DRTUDISequence::isValid() const
 {
     return !EmptyDefaultSequence;
 }
 
 
-unsigned long DRTSnoutSequence::getNumberOfItems() const
+unsigned long DRTUDISequence::getNumberOfItems() const
 {
     return SequenceOfItems.size();
 }
 
 
-OFCondition DRTSnoutSequence::gotoFirstItem()
+OFCondition DRTUDISequence::gotoFirstItem()
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -269,7 +269,7 @@ OFCondition DRTSnoutSequence::gotoFirstItem()
 }
 
 
-OFCondition DRTSnoutSequence::gotoNextItem()
+OFCondition DRTUDISequence::gotoNextItem()
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -281,7 +281,7 @@ OFCondition DRTSnoutSequence::gotoNextItem()
 }
 
 
-OFCondition DRTSnoutSequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
+OFCondition DRTUDISequence::gotoItem(const unsigned long num, OFListIterator(Item *) &iterator)
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -301,7 +301,7 @@ OFCondition DRTSnoutSequence::gotoItem(const unsigned long num, OFListIterator(I
 }
 
 
-OFCondition DRTSnoutSequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
+OFCondition DRTUDISequence::gotoItem(const unsigned long num, OFListConstIterator(Item *) &iterator) const
 {
     OFCondition result = EC_IllegalCall;
     if (!SequenceOfItems.empty())
@@ -321,13 +321,13 @@ OFCondition DRTSnoutSequence::gotoItem(const unsigned long num, OFListConstItera
 }
 
 
-OFCondition DRTSnoutSequence::gotoItem(const unsigned long num)
+OFCondition DRTUDISequence::gotoItem(const unsigned long num)
 {
     return gotoItem(num, CurrentItem);
 }
 
 
-OFCondition DRTSnoutSequence::getCurrentItem(Item *&item) const
+OFCondition DRTUDISequence::getCurrentItem(Item *&item) const
 {
     OFCondition result = EC_IllegalCall;
     if (CurrentItem != SequenceOfItems.end())
@@ -339,7 +339,7 @@ OFCondition DRTSnoutSequence::getCurrentItem(Item *&item) const
 }
 
 
-DRTSnoutSequence::Item &DRTSnoutSequence::getCurrentItem()
+DRTUDISequence::Item &DRTUDISequence::getCurrentItem()
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -348,7 +348,7 @@ DRTSnoutSequence::Item &DRTSnoutSequence::getCurrentItem()
 }
 
 
-const DRTSnoutSequence::Item &DRTSnoutSequence::getCurrentItem() const
+const DRTUDISequence::Item &DRTUDISequence::getCurrentItem() const
 {
     if (CurrentItem != SequenceOfItems.end())
         return **CurrentItem;
@@ -357,7 +357,7 @@ const DRTSnoutSequence::Item &DRTSnoutSequence::getCurrentItem() const
 }
 
 
-OFCondition DRTSnoutSequence::getItem(const unsigned long num, Item *&item)
+OFCondition DRTUDISequence::getItem(const unsigned long num, Item *&item)
 {
     OFListIterator(Item *) iterator;
     OFCondition result = gotoItem(num, iterator);
@@ -367,7 +367,7 @@ OFCondition DRTSnoutSequence::getItem(const unsigned long num, Item *&item)
 }
 
 
-DRTSnoutSequence::Item &DRTSnoutSequence::getItem(const unsigned long num)
+DRTUDISequence::Item &DRTUDISequence::getItem(const unsigned long num)
 {
     OFListIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -377,7 +377,7 @@ DRTSnoutSequence::Item &DRTSnoutSequence::getItem(const unsigned long num)
 }
 
 
-const DRTSnoutSequence::Item &DRTSnoutSequence::getItem(const unsigned long num) const
+const DRTUDISequence::Item &DRTUDISequence::getItem(const unsigned long num) const
 {
     OFListConstIterator(Item *) iterator;
     if (gotoItem(num, iterator).good())
@@ -387,19 +387,19 @@ const DRTSnoutSequence::Item &DRTSnoutSequence::getItem(const unsigned long num)
 }
 
 
-DRTSnoutSequence::Item &DRTSnoutSequence::operator[](const unsigned long num)
+DRTUDISequence::Item &DRTUDISequence::operator[](const unsigned long num)
 {
     return getItem(num);
 }
 
 
-const DRTSnoutSequence::Item &DRTSnoutSequence::operator[](const unsigned long num) const
+const DRTUDISequence::Item &DRTUDISequence::operator[](const unsigned long num) const
 {
     return getItem(num);
 }
 
 
-OFCondition DRTSnoutSequence::addItem(Item *&item)
+OFCondition DRTUDISequence::addItem(Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -416,7 +416,7 @@ OFCondition DRTSnoutSequence::addItem(Item *&item)
 }
 
 
-OFCondition DRTSnoutSequence::insertItem(const unsigned long pos, Item *&item)
+OFCondition DRTUDISequence::insertItem(const unsigned long pos, Item *&item)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -439,7 +439,7 @@ OFCondition DRTSnoutSequence::insertItem(const unsigned long pos, Item *&item)
 }
 
 
-OFCondition DRTSnoutSequence::removeItem(const unsigned long pos)
+OFCondition DRTUDISequence::removeItem(const unsigned long pos)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -457,10 +457,10 @@ OFCondition DRTSnoutSequence::removeItem(const unsigned long pos)
 }
 
 
-OFCondition DRTSnoutSequence::read(DcmItem &dataset,
-                                   const OFString &card,
-                                   const OFString &type,
-                                   const char *moduleName)
+OFCondition DRTUDISequence::read(DcmItem &dataset,
+                                 const OFString &card,
+                                 const OFString &type,
+                                 const char *moduleName)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
@@ -469,7 +469,7 @@ OFCondition DRTSnoutSequence::read(DcmItem &dataset,
         clear();
         /* retrieve sequence element from dataset */
         DcmSequenceOfItems *sequence;
-        result = dataset.findAndGetSequence(DCM_SnoutSequence, sequence);
+        result = dataset.findAndGetSequence(DCM_UDISequence, sequence);
         if (sequence != NULL)
         {
             if (checkElementValue(*sequence, card, type, result, moduleName))
@@ -499,7 +499,7 @@ OFCondition DRTSnoutSequence::read(DcmItem &dataset,
                 }
             }
         } else {
-            DcmSequenceOfItems element(DCM_SnoutSequence);
+            DcmSequenceOfItems element(DCM_UDISequence);
             checkElementValue(element, card, type, result, moduleName);
         }
     }
@@ -507,16 +507,16 @@ OFCondition DRTSnoutSequence::read(DcmItem &dataset,
 }
 
 
-OFCondition DRTSnoutSequence::write(DcmItem &dataset,
-                                    const OFString &card,
-                                    const OFString &type,
-                                    const char *moduleName)
+OFCondition DRTUDISequence::write(DcmItem &dataset,
+                                  const OFString &card,
+                                  const OFString &type,
+                                  const char *moduleName)
 {
     OFCondition result = EC_IllegalCall;
     if (!EmptyDefaultSequence)
     {
         result = EC_MemoryExhausted;
-        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_SnoutSequence);
+        DcmSequenceOfItems *sequence = new DcmSequenceOfItems(DCM_UDISequence);
         if (sequence != NULL)
         {
             result = EC_Normal;
diff --git a/dcmrt/libsrc/drtvls.cc b/dcmrt/libsrc/drtvls.cc
index 3694971..4e5afb7 100644
--- a/dcmrt/libsrc/drtvls.cc
+++ b/dcmrt/libsrc/drtvls.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTVOILUTSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtwps.cc b/dcmrt/libsrc/drtwps.cc
index 3ccbe58..b96acb5 100644
--- a/dcmrt/libsrc/drtwps.cc
+++ b/dcmrt/libsrc/drtwps.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTWedgePositionSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtwrs.cc b/dcmrt/libsrc/drtwrs.cc
index bac1256..292e736 100644
--- a/dcmrt/libsrc/drtwrs.cc
+++ b/dcmrt/libsrc/drtwrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTWADORetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtwrsrs.cc b/dcmrt/libsrc/drtwrsrs.cc
index c2a748b..666be36 100644
--- a/dcmrt/libsrc/drtwrsrs.cc
+++ b/dcmrt/libsrc/drtwrsrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTWADORSRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtws.cc b/dcmrt/libsrc/drtws.cc
index 99b9f52..05e0b82 100644
--- a/dcmrt/libsrc/drtws.cc
+++ b/dcmrt/libsrc/drtws.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTWedgeSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/libsrc/drtxrs.cc b/dcmrt/libsrc/drtxrs.cc
index a9fffff..17e4732 100644
--- a/dcmrt/libsrc/drtxrs.cc
+++ b/dcmrt/libsrc/drtxrs.cc
@@ -1,13 +1,13 @@
 /*
  *
  *  Copyright (C) 2008-2012, OFFIS e.V. and ICSMED AG, Oldenburg, Germany
- *  Copyright (C) 2013-2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2013-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class DRTXDSRetrievalSequence
  *
- *  Generated automatically from DICOM PS 3.3-2015c
- *  File created on 2015-12-07 16:29:33
+ *  Generated automatically from DICOM PS 3.3-2016d
+ *  File created on 2016-10-12 13:44:31
  *
  */
 
diff --git a/dcmrt/tests/Makefile.dep b/dcmrt/tests/Makefile.dep
index 8535fc6..9e87cb0 100644
--- a/dcmrt/tests/Makefile.dep
+++ b/dcmrt/tests/Makefile.dep
@@ -118,7 +118,8 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
@@ -128,16 +129,17 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../include/dcmtk/dcmrt/seq/drteas.h ../include/dcmtk/dcmrt/seq/drtfes.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtiis.h ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmls.h \
- ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
- ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtmls.h ../include/dcmtk/dcmrt/seq/drtoas.h \
+ ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h \
  ../include/dcmtk/dcmrt/seq/drtpsics.h \
  ../include/dcmtk/dcmrt/seq/drtpscs.h \
@@ -151,17 +153,17 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpsss.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
- ../include/dcmtk/dcmrt/seq/drtrcs.h ../include/dcmtk/dcmrt/seq/drtcs.h \
- ../include/dcmtk/dcmrt/seq/drtcis.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h ../include/dcmtk/dcmrt/seq/drtrcs.h \
+ ../include/dcmtk/dcmrt/seq/drtcs.h ../include/dcmtk/dcmrt/seq/drtcis.h \
  ../include/dcmtk/dcmrt/seq/drtrdros.h \
  ../include/dcmtk/dcmrt/seq/drtrwvms.h \
  ../include/dcmtk/dcmrt/seq/drtqds.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
  ../include/dcmtk/dcmrt/seq/drtrfors.h \
  ../include/dcmtk/dcmrt/seq/drtrsts.h \
- ../include/dcmtk/dcmrt/seq/drtrses.h \
- ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
+ ../include/dcmtk/dcmrt/seq/drtrses.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -183,9 +185,13 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtssrs.h \
- ../include/dcmtk/dcmrt/seq/drtscris.h ../include/dcmtk/dcmrt/drtimage.h \
+ ../include/dcmtk/dcmrt/seq/drtscris.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h ../include/dcmtk/dcmrt/drtimage.h \
  ../include/dcmtk/dcmrt/seq/drtcbars.h \
  ../include/dcmtk/dcmrt/seq/drtads.h ../include/dcmtk/dcmrt/seq/drtbas.h \
  ../include/dcmtk/dcmrt/seq/drtds.h ../include/dcmtk/dcmrt/seq/drtes.h \
@@ -194,8 +200,9 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtbl5.h ../include/dcmtk/dcmrt/seq/drtgas.h \
  ../include/dcmtk/dcmrt/seq/drtpfms.h ../include/dcmtk/dcmrt/seq/drtfms.h \
  ../include/dcmtk/dcmrt/seq/drtmacds.h \
- ../include/dcmtk/dcmrt/seq/drtcss.h \
+ ../include/dcmtk/dcmrt/seq/drtcss.h ../include/dcmtk/dcmrt/seq/drtrims.h \
  ../include/dcmtk/dcmrt/seq/drtrrtps5.h \
+ ../include/dcmtk/dcmrt/seq/drtsis.h ../include/dcmtk/dcmrt/seq/drtsins.h \
  ../include/dcmtk/dcmrt/seq/drtvls.h ../include/dcmtk/dcmrt/drtplan.h \
  ../include/dcmtk/dcmrt/seq/drtass.h ../include/dcmtk/dcmrt/seq/drtbads.h \
  ../include/dcmtk/dcmrt/seq/drtchs.h ../include/dcmtk/dcmrt/seq/drtbcps.h \
@@ -225,10 +232,11 @@ drttest.o: drttest.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtbldts.h \
  ../include/dcmtk/dcmrt/seq/drttms9.h ../include/dcmtk/dcmrt/drtstrct.h \
  ../include/dcmtk/dcmrt/seq/drtrros.h \
- ../include/dcmtk/dcmrt/seq/drtarics.h \
  ../include/dcmtk/dcmrt/seq/drtrpps.h \
  ../include/dcmtk/dcmrt/seq/drtrecs.h \
- ../include/dcmtk/dcmrt/seq/drtrics.h ../include/dcmtk/dcmrt/seq/drtrrs.h \
+ ../include/dcmtk/dcmrt/seq/drtrics.h \
+ ../include/dcmtk/dcmrt/seq/drtsptcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrrs.h \
  ../include/dcmtk/dcmrt/seq/drtrrros.h \
  ../include/dcmtk/dcmrt/seq/drtspccs.h ../include/dcmtk/dcmrt/drttreat.h \
  ../include/dcmtk/dcmrt/seq/drtfgss.h \
@@ -419,27 +427,30 @@ tsearch.o: tsearch.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtcsis.h \
  ../include/dcmtk/dcmrt/seq/drtcctus.h \
  ../include/dcmtk/dcmrt/seq/drtcpis.h ../include/dcmtk/dcmrt/seq/drtics.h \
- ../include/dcmtk/dcmrt/seq/drtpics.h ../include/dcmtk/dcmrt/seq/drtces.h \
+ ../include/dcmtk/dcmrt/seq/drtpics.h \
+ ../include/dcmtk/dcmrt/seq/drtcgis.h ../include/dcmtk/dcmrt/seq/drtces.h \
  ../include/dcmtk/dcmrt/seq/drtois.h \
  ../include/dcmtk/dcmrt/seq/drtporcs.h \
  ../include/dcmtk/dcmrt/seq/drtcsas.h \
  ../include/dcmtk/dcmrt/seq/drtdimcs.h \
- ../include/dcmtk/dcmrt/seq/drtdss.h \
+ ../include/dcmtk/dcmrt/seq/drtdcs.h ../include/dcmtk/dcmrt/seq/drtdss.h \
  ../include/dcmtk/dcmrt/seq/drtdspcs.h \
  ../include/dcmtk/dcmrt/seq/drtdrs.h ../include/dcmtk/dcmrt/seq/drteas.h \
  ../include/dcmtk/dcmrt/seq/drtfgs.h ../include/dcmtk/dcmrt/seq/drtrbs8.h \
  ../include/dcmtk/dcmrt/seq/drtbvcps.h \
  ../include/dcmtk/dcmrt/seq/drtrbas8.h \
  ../include/dcmtk/dcmrt/seq/drtrdrs8.h \
- ../include/dcmtk/dcmrt/seq/drthsdrs.h \
- ../include/dcmtk/dcmrt/seq/drtians.h \
- ../include/dcmtk/dcmrt/seq/drtiais.h \
+ ../include/dcmtk/dcmrt/seq/drtgpis.h \
  ../include/dcmtk/dcmrt/seq/drtipiqs.h \
  ../include/dcmtk/dcmrt/seq/drtaadcs.h \
  ../include/dcmtk/dcmrt/seq/drtafs.h ../include/dcmtk/dcmrt/seq/drtajcs.h \
+ ../include/dcmtk/dcmrt/seq/drthsdrs.h \
+ ../include/dcmtk/dcmrt/seq/drtians.h \
+ ../include/dcmtk/dcmrt/seq/drtiais.h \
  ../include/dcmtk/dcmrt/seq/drtiseis.h \
- ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtoas.h \
- ../include/dcmtk/dcmrt/seq/drtmas.h ../include/dcmtk/dcmrt/seq/drtopis.h \
+ ../include/dcmtk/dcmrt/seq/drtmps.h ../include/dcmtk/dcmrt/seq/drtmris.h \
+ ../include/dcmtk/dcmrt/seq/drtoas.h ../include/dcmtk/dcmrt/seq/drtmas.h \
+ ../include/dcmtk/dcmrt/seq/drtopis.h \
  ../include/dcmtk/dcmrt/seq/drtpbcs.h ../include/dcmtk/dcmrt/seq/drtpss.h \
  ../include/dcmtk/dcmrt/seq/drtfds.h ../include/dcmtk/dcmrt/seq/drtmss.h \
  ../include/dcmtk/dcmrt/seq/drtrsis.h ../include/dcmtk/dcmrt/seq/drtsds.h \
@@ -455,8 +466,11 @@ tsearch.o: tsearch.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtporis.h \
  ../include/dcmtk/dcmrt/seq/drtprsis.h \
  ../include/dcmtk/dcmrt/seq/drtpdecs.h \
- ../include/dcmtk/dcmrt/seq/drtdias.h ../include/dcmtk/dcmrt/seq/drtpcs.h \
+ ../include/dcmtk/dcmrt/seq/drtdias.h \
+ ../include/dcmtk/dcmrt/seq/drtpdeds.h \
+ ../include/dcmtk/dcmrt/seq/drtpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrppcs.h \
+ ../include/dcmtk/dcmrt/seq/drtrims.h ../include/dcmtk/dcmrt/seq/drtris.h \
  ../include/dcmtk/dcmrt/seq/drtrpphs.h \
  ../include/dcmtk/dcmrt/seq/drtdimrs.h \
  ../include/dcmtk/dcmrt/seq/drtdirs.h \
@@ -466,15 +480,19 @@ tsearch.o: tsearch.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmrt/seq/drtrppss.h \
  ../include/dcmtk/dcmrt/seq/drtrrtps3.h \
  ../include/dcmtk/dcmrt/seq/drtrsers.h \
- ../include/dcmtk/dcmrt/seq/drtris.h ../include/dcmtk/dcmrt/seq/drtrsss.h \
- ../include/dcmtk/dcmrt/seq/drtrss.h ../include/dcmtk/dcmrt/seq/drtrpis.h \
- ../include/dcmtk/dcmrt/seq/drtras.h \
+ ../include/dcmtk/dcmrt/seq/drtrsss.h ../include/dcmtk/dcmrt/seq/drtrss.h \
+ ../include/dcmtk/dcmrt/seq/drtrpis.h ../include/dcmtk/dcmrt/seq/drtras.h \
  ../include/dcmtk/dcmrt/seq/drtrrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtrpcs.h \
  ../include/dcmtk/dcmrt/seq/drtspcs.h \
  ../include/dcmtk/dcmrt/seq/drtrscs.h \
- ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtss.h \
+ ../include/dcmtk/dcmrt/seq/drtsdcs.h ../include/dcmtk/dcmrt/seq/drtsis.h \
+ ../include/dcmtk/dcmrt/seq/drtsins.h \
+ ../include/dcmtk/dcmrt/seq/drtspgis.h ../include/dcmtk/dcmrt/seq/drtss.h \
+ ../include/dcmtk/dcmrt/seq/drtscs.h ../include/dcmtk/dcmrt/seq/drtsss.h \
+ ../include/dcmtk/dcmrt/seq/drtssrcs.h \
  ../include/dcmtk/dcmrt/seq/drtscris.h \
  ../include/dcmtk/dcmrt/seq/drttts.h \
  ../include/dcmtk/dcmrt/seq/drtbldts.h \
- ../include/dcmtk/dcmrt/seq/drttms9.h
+ ../include/dcmtk/dcmrt/seq/drttms9.h \
+ ../include/dcmtk/dcmrt/seq/drtudis.h
diff --git a/dcmseg/include/dcmtk/dcmseg/segdoc.h b/dcmseg/include/dcmtk/dcmseg/segdoc.h
index 5e70154..1e0de33 100644
--- a/dcmseg/include/dcmtk/dcmseg/segdoc.h
+++ b/dcmseg/include/dcmtk/dcmseg/segdoc.h
@@ -26,6 +26,7 @@
 #include "dcmtk/ofstd/ofvector.h"               // for OFVector
 #include "dcmtk/dcmiod/iodimage.h"              // common image IOD attribute access
 #include "dcmtk/dcmiod/iodmacro.h"
+#include "dcmtk/dcmiod/modimagepixel.h"
 #include "dcmtk/dcmiod/modsegmentationseries.h" // for segmentation series module
 #include "dcmtk/dcmiod/modenhequipment.h"       // for enhanced general equipment module
 
@@ -48,7 +49,7 @@ class FGDerivationImage;
 /** Class representing an object of the "Segmentation SOP Class".
  */
 class DCMTK_DCMSEG_EXPORT DcmSegmentation
-: public DcmIODImage
+: public DcmIODImage<IODImagePixelModule<Uint8> >
 {
 
 public:
@@ -61,7 +62,7 @@ public:
 
   // -------------------- loading and saving ---------------------
 
-  /** Load Segmentation object from item file
+  /** Load Segmentation object from file
    *  @param  filename The file to read from
    *  @param  segmentation  The resulting segmentation object. NULL if dataset
    *          could not be read successfully.
@@ -70,7 +71,7 @@ public:
   static OFCondition loadFile(const OFString& filename,
                               DcmSegmentation*& segmentation);
 
-  /** Load Segmentation object from item object.
+  /** Load Segmentation object from dataset object.
    *  @param  dataset The dataset to read from
    *  @param  segmentation  The resulting segmentation object. NULL if dataset
    *          could not be read successfully.
@@ -146,22 +147,6 @@ public:
   static FGDerivationImage* createDerivationImageFG(const OFVector<ImageSOPInstanceReferenceMacro>& derivationImages,
                                                     const OFString& derivationDescription);
 
-  /** Take over general information for Patient, Study, Series and/or Frame of Reference
-   *  from existing file
-   *  @param  filename The filename to read from
-   *  @param  usePatient If OFTrue, Patient level information is imported
-   *  @param  useStudy If OFTrue, Study level information is imported
-   *  @param  useSeries If OFTrue, Series level information is imported
-   *  @param  useFoR If OFTrue, Frame of Reference information is imported
-   *  @return EC_Normal if reading was successful (i.e.\ if any information could
-   *          be read), otherwise an error is returned
-   */
-  OFCondition importPatientStudyFoR(const OFString& filename,
-                                    const OFBool usePatient,
-                                    const OFBool useStudy,
-                                    const OFBool useSeries,
-                                    const OFBool useFoR = OFFalse);
-
   // -------------------- access ---------------------
 
   /** Get number of frames, based on the number of items in the shared
@@ -273,7 +258,7 @@ public:
                                  Uint16& segmentNumber);
 
   /** Add a functional group for all frames
-   *  @param  group The group to be added as shared functional group
+   *  @param  group The group to be added as shared functional group. The
    *  @return EC_Normal if adding was successful, error otherwise
    */
   virtual OFCondition addForAllFrames(const FGBase& group);
@@ -287,7 +272,9 @@ public:
    *  @param  segmentNumber The logical segment number (>=1) this frame refers to.
    *          The segment identified by the segmentNumber must already exist.
    *  @param  perFrameInformation The functional groups that identify this frame (i.e.
-   *           which are planned to be not common for all other frames)
+   *          which are planned to be not common for all other frames). The
+   *          functional groups are copied, so ownership of each group stays
+   *          with the caller no matter what the method returns.
    *  @return EC_Normal if adding was successful, error otherwise
    */
   virtual OFCondition addFrame(Uint8* pixData,
@@ -373,7 +360,7 @@ protected:
   *  the image pixel module manually.
   *  @return The Image Pixel Module
   */
-  virtual IODImagePixelModule& getImagePixel();
+  virtual IODImagePixelModule<Uint8>& getImagePixel();
 
   /** Initialize IOD rules
    */
diff --git a/dcmseg/libsrc/Makefile.dep b/dcmseg/libsrc/Makefile.dep
index a9ee8fb..f0a3add 100644
--- a/dcmseg/libsrc/Makefile.dep
+++ b/dcmseg/libsrc/Makefile.dep
@@ -10,13 +10,17 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmseg/segdoc.h \
  ../../ofstd/include/dcmtk/ofstd/ofvector.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofutil.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofstring.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
- ../../ofstd/include/dcmtk/ofstd/ofutil.h \
- ../../ofstd/include/dcmtk/ofstd/oftraits.h \
- ../../ofstd/include/dcmtk/ofstd/variadic/tuplefwd.h \
  ../../ofstd/include/dcmtk/ofstd/oflist.h \
  ../../ofstd/include/dcmtk/ofstd/ofcond.h \
  ../../dcmdata/include/dcmtk/dcmdata/dctagkey.h \
@@ -123,7 +127,6 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/modbase.h \
  ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
  ../../ofstd/include/dcmtk/ofstd/ofoption.h \
- ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodmacro.h \
  ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
@@ -133,6 +136,8 @@ segdoc.o: segdoc.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
  ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
  ../../dcmiod/include/dcmtk/dcmiod/modsegmentationseries.h \
  ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
@@ -212,6 +217,8 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -244,11 +251,9 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -279,11 +284,14 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmseg/segtypes.h ../include/dcmtk/dcmseg/segdef.h \
  ../include/dcmtk/dcmseg/segdoc.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodimage.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvriant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/variant.h \
+ ../../ofstd/include/dcmtk/ofstd/variadic/helpers.h \
+ ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodcommn.h \
  ../../dcmiod/include/dcmtk/dcmiod/modpatient.h \
  ../../dcmiod/include/dcmtk/dcmiod/modpatientstudy.h \
  ../../ofstd/include/dcmtk/ofstd/ofoption.h \
- ../../ofstd/include/dcmtk/ofstd/ofalign.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h \
  ../../dcmiod/include/dcmtk/dcmiod/modequipment.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralseries.h \
@@ -292,6 +300,8 @@ segment.o: segment.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodreferences.h \
  ../../dcmiod/include/dcmtk/dcmiod/modgeneralimage.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h \
+ ../../dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h \
  ../../dcmiod/include/dcmtk/dcmiod/modimagepixel.h \
  ../../dcmiod/include/dcmtk/dcmiod/modsegmentationseries.h \
  ../../dcmiod/include/dcmtk/dcmiod/modenhequipment.h \
@@ -362,6 +372,8 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -392,11 +404,9 @@ segtypes.o: segtypes.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
diff --git a/dcmseg/libsrc/segdoc.cc b/dcmseg/libsrc/segdoc.cc
index 2261fc9..fcf7338 100644
--- a/dcmseg/libsrc/segdoc.cc
+++ b/dcmseg/libsrc/segdoc.cc
@@ -33,11 +33,11 @@
 
 // default constructor (protected, instance creation via create() function)
 DcmSegmentation::DcmSegmentation()
-: DcmIODImage(),
-  m_SegmentationSeries(DcmIODImage::getData(), DcmIODImage::getRules()),
-  m_EnhancedGeneralEquipmentModule(DcmIODImage::getData(), DcmIODImage::getRules()),
-  m_FG(DcmIODImage::getData(), DcmIODImage::getRules()),
-  m_DimensionModule(DcmIODImage::getData(), DcmIODImage::getRules()),
+: DcmSegmentation::IODImage(OFin_place<IODImagePixelModule<Uint8> >),
+  m_SegmentationSeries(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()),
+  m_EnhancedGeneralEquipmentModule(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()),
+  m_FG(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()),
+  m_DimensionModule(DcmSegmentation::IODImage::getData(), DcmSegmentation::IODImage::getRules()),
   m_Frames(),
   m_ImageType("DERIVED\\PRIMARY"),
   m_ContentIdentificationMacro(),
@@ -182,15 +182,8 @@ OFCondition DcmSegmentation::createCommon(DcmSegmentation*& segmentation,
       segmentation = NULL;
       return EC_InvalidValue;
     }
-    OFDate date;
-    date.setCurrentDate();
-    date.getISOFormattedDate(tempstr, OFFalse /* no delimiters */);
-    segmentation->getGeneralImage().setContentDate(tempstr);
-    OFTime time;
-    time.setCurrentTime();
-    time.getISOFormattedTime(tempstr, OFTrue /* include seconds */, OFFalse, OFFalse, OFFalse);
-    segmentation->getGeneralImage().setContentTime(tempstr);
 
+    DcmIODUtil::setContentDateAndTimeNow(segmentation->getGeneralImage());
     result = segmentation->setEquipmentInfo(equipmentInfo, OFTrue /* check */);
   }
 
@@ -227,7 +220,7 @@ OFCondition DcmSegmentation::read(DcmItem &dataset)
   }
 
   // Read attributes in base classes
-  DcmIODImage::read(dataset);
+  DcmSegmentation::IODImage::read(dataset);
 
   // Read Segmentation Series Module
   m_SegmentationSeries.read(dataset);
@@ -309,37 +302,12 @@ OFCondition DcmSegmentation::write(DcmItem &dataset)
   // Multi-frame Functional Groups Module (except functional groups itself)
   // SOP Common Module
   // Common Instance Reference Module
-  if (result.good()) result = DcmIODImage::write(dataset);
+  if (result.good()) result = DcmSegmentation::IODImage::write(dataset);
 
   return result;
 }
 
 
-OFCondition DcmSegmentation::importPatientStudyFoR(const OFString& filename,
-                                                   const OFBool usePatient,
-                                                   const OFBool useStudy,
-                                                   const OFBool useSeries,
-                                                   const OFBool useFoR)
-{
-  DcmFileFormat dcmff;
-  OFCondition result = dcmff.loadFile(filename.c_str());
-  if ( result.good() )
-  {
-    DcmDataset *dset = dcmff.getDataset();
-    if (dset != NULL)
-    {
-      result = import(*dset, usePatient, useStudy, useSeries, useFoR);
-    }
-    else
-    {
-      DCMSEG_ERROR("Unable to get dataset from file for copying patient, study, series and/or frame of reference information");
-      result = EC_IllegalCall;
-    }
-  }
-  return result;
-}
-
-
 FGInterface& DcmSegmentation::getFunctionalGroups()
 {
   return m_FGInterface;
@@ -361,7 +329,7 @@ size_t DcmSegmentation::getNumberOfSegments()
 
 IODGeneralEquipmentModule& DcmSegmentation::getEquipment()
 {
-  return DcmIODImage::getEquipment();
+  return DcmSegmentation::IODImage::getEquipment();
 }
 
 
@@ -1036,7 +1004,7 @@ OFCondition DcmSegmentation::writeSegmentationImageModule(DcmItem& dataset)
 
 void DcmSegmentation::clearData()
 {
-  DcmIODImage::clearData();
+  DcmSegmentation::IODImage::clearData();
   m_FG.clearData();
   m_FGInterface.clear();
   DcmIODUtil::freeContainer(m_Frames);
@@ -1180,9 +1148,9 @@ OFCondition DcmSegmentation::readSegmentationType(DcmItem& item)
 
 
 // protected override of public base class function
-IODImagePixelModule& DcmSegmentation::getImagePixel()
+IODImagePixelModule<Uint8>& DcmSegmentation::getImagePixel()
 {
-  return DcmIODImage::getImagePixel();
+  return *OFget<IODImagePixelModule<Uint8> >( &DcmSegmentation::IODImage::getImagePixel() );
 }
 
 
@@ -1253,7 +1221,7 @@ OFCondition DcmSegmentation::decompress(DcmDataset& dset)
     }
     else // We do not accept any transfer syntax that could be lossy compressed
     {
-      DCMSEG_ERROR("No conversion from RLE original to uncompressed transfer syntax possible!");
+      DCMSEG_ERROR("Transfer syntax " << DcmXfer(xfer).getXferName() << " uses lossy compression, not supported for Segmentation objects!");
       result = IOD_EC_CannotDecompress;
     }
   }
diff --git a/dcmsr/apps/xml2dsr.cc b/dcmsr/apps/xml2dsr.cc
index 9937499..d6fae3e 100644
--- a/dcmsr/apps/xml2dsr.cc
+++ b/dcmsr/apps/xml2dsr.cc
@@ -175,13 +175,22 @@ int main(int argc, char *argv[])
             opt_readFlags |= DSRTypes::XF_useDcmsrNamespace;
 
         if (cmd.findOption("--generate-new-uids"))
+        {
             opt_generateUIDs = OFTrue;
+            opt_readFlags |= DSRTypes::XF_acceptEmptyStudySeriesInstanceUID;
+        }
 
         cmd.beginOptionBlock();
         if (cmd.findOption("--dont-overwrite-uids"))
+        {
+            app.checkDependence("--dont-overwrite-uids", "--generate-new-uids", opt_generateUIDs);
             opt_overwriteUIDs = OFFalse;
+        }
         if (cmd.findOption("--overwrite-uids"))
+        {
+            app.checkDependence("--overwrite-uids", "--generate-new-uids", opt_generateUIDs);
             opt_overwriteUIDs = OFTrue;
+        }
         cmd.endOptionBlock();
 
         /* output options */
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid100.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid100.h
index a57f915..4f10a96 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid100.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid100.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID100_QuantitativeDiagnosticImagingProcedures
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:37 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:46 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h
index 8f143fa..d92349f 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID10013_CTAcquisitionType
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:27:00 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:09 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h
index 6402909..6c5f88e 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID10033_CTReconstructionAlgorithm
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:27:02 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:11 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid11.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid11.h
index f32990e..e8f2a79 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid11.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid11.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID11_RouteOfAdministration
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:32 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:40 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid244.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid244.h
index d7a2c45..ccebd52 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid244.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid244.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID244_Laterality
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:38 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:47 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid29.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid29.h
index dc9f383..4b862e9 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid29.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid29.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID29_AcquisitionModality
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:33 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:42 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h
index bf39d92..c58943f 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID4020_PETRadionuclide
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:40 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:49 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h
index 72c4b03..6a77858 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID4021_PETRadiopharmaceutical
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:42 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:51 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h
index 55b26ac..df27017 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID4031_CommonAnatomicRegions
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:44 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:53 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid42.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid42.h
index da14b72..581d5f7 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid42.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid42.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID42_NumericValueQualifier
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:35 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:44 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h
index 66ef949..0175798 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h
@@ -40,29 +40,29 @@ class DCMTK_CMR_EXPORT CID5000_Languages
      */
     enum EnumType
     {
-        /// (eng,IETF4646,"English")
+        /// (eng,RFC5646,"English")
         English,
-        /// (en-CA,IETF4646","English (CA)")
+        /// (en-CA,RFC5646,"English (CA)")
         English_CA,
-        /// (en-GB,IETF4646","English (GB)")
+        /// (en-GB,RFC5646,"English (GB)")
         English_GB,
-        /// (en-US,IETF4646","English (US)")
+        /// (en-US,RFC5646,"English (US)")
         English_US,
-        /// (fra,IETF4646","French")
+        /// (fra,RFC5646,"French")
         French,
-        /// (fr-CA,IETF4646","French (CA)")
+        /// (fr-CA,RFC5646,"French (CA)")
         French_CA,
-        /// (fr-CH,IETF4646","French (CH)")
+        /// (fr-CH,RFC5646,"French (CH)")
         French_CH,
-        /// (fr-FR,IETF4646","French (FR)")
+        /// (fr-FR,RFC5646,"French (FR)")
         French_FR,
-        /// (deu,IETF4646","German")
+        /// (deu,RFC5646,"German")
         German,
-        /// (de-AT,IETF4646","German (AT)")
+        /// (de-AT,RFC5646,"German (AT)")
         German_AT,
-        /// (de-CH,IETF4646","German (CH)")
+        /// (de-CH,RFC5646,"German (CH)")
         German_CH,
-        /// (de-DE,IETF4646","German (DE)")
+        /// (de-DE,RFC5646,"German (DE)")
         German_DE
     };
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h
index 911538b..792fbc4 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID6147_ResponseCriteria
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:45 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:55 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h
index 04867c6..05eb16d 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7021_MeasurementReportDocumentTitles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:47 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:56 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h
index 95ffa0c..ce54d9d 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7181_AbstractMultiDimensionalImageModelComponentUnits
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:49 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:58 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h
index 6b3e3a5..b8e3a09 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7445_DeviceParticipatingRoles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:51 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:00 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h
index 7e937d0..479070c 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7452_OrganizationalRoles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:53 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:02 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h
index c259b37..1361040 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7453_PerformingRoles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:55 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:03 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h
index df4c815..33a8797 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7464_GeneralRegionOfInterestMeasurementModifiers
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:57 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:05 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h b/dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h
index dd60c96..8405589 100644
--- a/dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h
+++ b/dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h
@@ -5,8 +5,8 @@
  *
  *  Header file for class CID7469_GenericIntensityAndSizeMeasurements
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:59 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:07 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/codes/dcm.h b/dcmsr/include/dcmtk/dcmsr/codes/dcm.h
index 960c0df..a0072d0 100644
--- a/dcmsr/include/dcmtk/dcmsr/codes/dcm.h
+++ b/dcmsr/include/dcmtk/dcmsr/codes/dcm.h
@@ -5,8 +5,8 @@
  *
  *  Header file with DICOM Code Definitions (Coding Scheme "DCM", Version "01")
  *
- *  Generated automatically from DICOM PS 3.16-2016c
- *  File created on 2016-06-13 09:53:55 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 11:50:13 by J. Riesmeier
  *
  */
 
@@ -33,7 +33,7 @@
  *  code definitions  *
  *--------------------*/
 
-// total number of codes: 3400
+// total number of codes: 3471
 // - retired: 143
 // - no name: 27
 // - not unique: 14
@@ -3447,5 +3447,76 @@
 #define CODE_DCM_VascularImagingSpecialty                                  DSRBasicCodedEntry("128017", "DCM", "Vascular Imaging Specialty")
 #define CODE_DCM_FWPByGA_Campbell_1991                                     DSRBasicCodedEntry("128040", "DCM", "FWP by GA, Campbell, 1991")
 #define CODE_DCM_FWPByGA_Hadlock_1991                                      DSRBasicCodedEntry("128041", "DCM", "FWP by GA, Hadlock, 1991")
+#define CODE_DCM_PlaneThroughSuperiorExtent                                DSRBasicCodedEntry("128120", "DCM", "Plane through Superior Extent")
+#define CODE_DCM_PlaneThroughInferiorExtent                                DSRBasicCodedEntry("128121", "DCM", "Plane through Inferior Extent")
+#define CODE_DCM_PlaneThroughProximalExtent                                DSRBasicCodedEntry("128122", "DCM", "Plane through Proximal Extent")
+#define CODE_DCM_PlaneThroughDistalExtent                                  DSRBasicCodedEntry("128123", "DCM", "Plane through Distal Extent")
+#define CODE_DCM_PlaneThroughMedialExtent                                  DSRBasicCodedEntry("128124", "DCM", "Plane through Medial Extent")
+#define CODE_DCM_PlaneThroughLateralExtent                                 DSRBasicCodedEntry("128125", "DCM", "Plane through Lateral Extent")
+#define CODE_DCM_PlaneThroughLeftmostExtent                                DSRBasicCodedEntry("128126", "DCM", "Plane through Leftmost Extent")
+#define CODE_DCM_PlaneThroughRightmostExtent                               DSRBasicCodedEntry("128127", "DCM", "Plane through Rightmost Extent")
+#define CODE_DCM_PlaneThroughAnteriorExtent                                DSRBasicCodedEntry("128128", "DCM", "Plane through Anterior Extent")
+#define CODE_DCM_PlaneThroughPosteriorExtent                               DSRBasicCodedEntry("128129", "DCM", "Plane through Posterior Extent")
+#define CODE_DCM_PlaneThroughCenter                                        DSRBasicCodedEntry("128130", "DCM", "Plane through Center")
+#define CODE_DCM_GeometricCenterpoint                                      DSRBasicCodedEntry("128137", "DCM", "Geometric Centerpoint")
+#define CODE_DCM_CenterOfMass                                              DSRBasicCodedEntry("128138", "DCM", "Center of Mass")
+#define CODE_DCM_ImpairedRenalFunction                                     DSRBasicCodedEntry("128144", "DCM", "Impaired Renal Function")
+#define CODE_DCM_LaserCrossHairs                                           DSRBasicCodedEntry("128151", "DCM", "Laser Cross-hairs")
+#define CODE_DCM_AcquiredVolume                                            DSRBasicCodedEntry("128160", "DCM", "Acquired Volume")
+#define CODE_DCM_AbdominalRadiology                                        DSRBasicCodedEntry("128170", "DCM", "Abdominal Radiology")
+#define CODE_DCM_BiomedicalEngineering                                     DSRBasicCodedEntry("128171", "DCM", "Biomedical Engineering")
+#define CODE_DCM_CardiovascularRadiology                                   DSRBasicCodedEntry("128172", "DCM", "Cardiovascular Radiology")
+#define CODE_DCM_InformationTechnology                                     DSRBasicCodedEntry("128173", "DCM", "Information Technology")
+#define CODE_DCM_MedicalPhysics                                            DSRBasicCodedEntry("128174", "DCM", "Medical Physics")
+#define CODE_DCM_MusculoskeletalRadiology                                  DSRBasicCodedEntry("128175", "DCM", "Musculoskeletal Radiology")
+#define CODE_DCM_PediatricRadiology                                        DSRBasicCodedEntry("128177", "DCM", "Pediatric Radiology")
+#define CODE_DCM_ThoracicRadiology                                         DSRBasicCodedEntry("128179", "DCM", "Thoracic Radiology")
+#define CODE_DCM_ForRTWorkflow                                             DSRBasicCodedEntry("128180", "DCM", "For RT Workflow")
+#define CODE_DCM_DiagnosticSourceImages                                    DSRBasicCodedEntry("128181", "DCM", "Diagnostic Source Images")
+#define CODE_DCM_SegmentationResult                                        DSRBasicCodedEntry("128182", "DCM", "Segmentation Result")
+#define CODE_DCM_RegistrationResult                                        DSRBasicCodedEntry("128183", "DCM", "Registration Result")
+#define CODE_DCM_PrePlanningResult                                         DSRBasicCodedEntry("128184", "DCM", "Pre-Planning Result")
+#define CODE_DCM_RTPrescriptionResult                                      DSRBasicCodedEntry("128185", "DCM", "RT Prescription Result")
+#define CODE_DCM_DoseCalculationImageSeries                                DSRBasicCodedEntry("128186", "DCM", "Dose Calculation Image Series")
+#define CODE_DCM_CoordinateAlignmentImageSeries                            DSRBasicCodedEntry("128187", "DCM", "Coordinate Alignment Image Series")
+#define CODE_DCM_RTTreatmentSimulationResult                               DSRBasicCodedEntry("128188", "DCM", "RT Treatment Simulation Result")
+#define CODE_DCM_RTPlanningResult                                          DSRBasicCodedEntry("128189", "DCM", "RT Planning Result")
+#define CODE_DCM_DosimetricResult                                          DSRBasicCodedEntry("128190", "DCM", "Dosimetric Result")
+#define CODE_DCM_PatientSetupVerificationResult                            DSRBasicCodedEntry("128191", "DCM", "Patient Setup Verification Result")
+#define CODE_DCM_RTTreatmentSessionResult                                  DSRBasicCodedEntry("128192", "DCM", "RT Treatment Session Result")
+#define CODE_DCM_RTTreatmentCourseSummary                                  DSRBasicCodedEntry("128193", "DCM", "RT Treatment Course Summary")
+#define CODE_DCM_RTTreatmentQAResult                                       DSRBasicCodedEntry("128194", "DCM", "RT Treatment QA Result")
+#define CODE_DCM_ForDiagnosis                                              DSRBasicCodedEntry("128195", "DCM", "For Diagnosis")
+#define CODE_DCM_ForSegmentation                                           DSRBasicCodedEntry("128196", "DCM", "For Segmentation")
+#define CODE_DCM_ForRTPrescription                                         DSRBasicCodedEntry("128197", "DCM", "For RT Prescription")
+#define CODE_DCM_ForRTTreatmentPlanning                                    DSRBasicCodedEntry("128198", "DCM", "For RT Treatment Planning")
+#define CODE_DCM_ForPlanComparison                                         DSRBasicCodedEntry("128199", "DCM", "For Plan Comparison")
+#define CODE_DCM_ForRTPlanSummation                                        DSRBasicCodedEntry("128200", "DCM", "For RT Plan Summation")
+#define CODE_DCM_ForPhysicianReview                                        DSRBasicCodedEntry("128201", "DCM", "For Physician Review")
+#define CODE_DCM_ForPhysicistReview                                        DSRBasicCodedEntry("128202", "DCM", "For Physicist Review")
+#define CODE_DCM_ForTumorBoard                                             DSRBasicCodedEntry("128203", "DCM", "For Tumor Board")
+#define CODE_DCM_ForPlanQualityAssurance                                   DSRBasicCodedEntry("128204", "DCM", "For Plan Quality Assurance")
+#define CODE_DCM_ForMachineQualityAssurance                                DSRBasicCodedEntry("128205", "DCM", "For Machine Quality Assurance")
+#define CODE_DCM_ForPatientSetupVerification                               DSRBasicCodedEntry("128206", "DCM", "For Patient Setup Verification")
+#define CODE_DCM_ForClinicalTrialSubmission                                DSRBasicCodedEntry("128207", "DCM", "For Clinical Trial Submission")
+#define CODE_DCM_ForTumorRegistry                                          DSRBasicCodedEntry("128208", "DCM", "For Tumor Registry")
+#define CODE_DCM_RTWorkflowInputUsed                                       DSRBasicCodedEntry("128209", "DCM", "RT Workflow Input Used")
+#define CODE_DCM_RTPrescriptionInputUsed                                   DSRBasicCodedEntry("128210", "DCM", "RT Prescription Input Used")
+#define CODE_DCM_RTTreatmentPlanningInputUsed                              DSRBasicCodedEntry("128211", "DCM", "RT Treatment Planning Input Used")
+#define CODE_DCM_RTPlanSummationInputUsed                                  DSRBasicCodedEntry("128212", "DCM", "RT Plan Summation Input Used")
+#define CODE_DCM_PhysicianReviewInputUsed                                  DSRBasicCodedEntry("128213", "DCM", "Physician Review Input Used")
+#define CODE_DCM_PhysicistReviewInputUsed                                  DSRBasicCodedEntry("128214", "DCM", "Physicist Review Input Used")
+#define CODE_DCM_PlanQualityAssuranceInputUsed                             DSRBasicCodedEntry("128215", "DCM", "Plan Quality Assurance Input Used")
+#define CODE_DCM_MachineQualityAssuranceInputUsed                          DSRBasicCodedEntry("128216", "DCM", "Machine Quality Assurance Input Used")
+#define CODE_DCM_PatientSetupVerificationInputUsed                         DSRBasicCodedEntry("128217", "DCM", "Patient Setup Verification Input Used")
+#define CODE_DCM_DiagnosisInputUsed                                        DSRBasicCodedEntry("128218", "DCM", "Diagnosis Input Used")
+#define CODE_DCM_ContouringInputUsed                                       DSRBasicCodedEntry("128219", "DCM", "Contouring Input Used")
+#define CODE_DCM_PlanComparisonInputUsed                                   DSRBasicCodedEntry("128220", "DCM", "Plan Comparison Input Used")
+#define CODE_DCM_TumorBoardInputUsed                                       DSRBasicCodedEntry("128221", "DCM", "Tumor Board Input Used")
+#define CODE_DCM_TumorRegistryInputUsed                                    DSRBasicCodedEntry("128222", "DCM", "Tumor Registry Input Used")
+#define CODE_DCM_ClinicalTrialSubmissionInputUsed                          DSRBasicCodedEntry("128223", "DCM", "Clinical Trial Submission Input Used")
+#define CODE_DCM_SourceMeasurement                                         DSRBasicCodedEntry("128224", "DCM", "Source measurement")
+#define CODE_DCM_SourceReport                                              DSRBasicCodedEntry("128225", "DCM", "Source report")
+#define CODE_DCM_SourceRawData                                             DSRBasicCodedEntry("128226", "DCM", "Source raw data")
 
 #endif
diff --git a/dcmsr/include/dcmtk/dcmsr/codes/ncit.h b/dcmsr/include/dcmtk/dcmsr/codes/ncit.h
index c917a16..995f73e 100644
--- a/dcmsr/include/dcmtk/dcmsr/codes/ncit.h
+++ b/dcmsr/include/dcmtk/dcmsr/codes/ncit.h
@@ -5,8 +5,8 @@
  *
  *  Header file with NCIt Code Definitions (Coding Scheme "NCIt")
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:08:01 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 11:50:21 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/include/dcmtk/dcmsr/codes/umls.h b/dcmsr/include/dcmtk/dcmsr/codes/umls.h
index b7ef28e..6d6a387 100644
--- a/dcmsr/include/dcmtk/dcmsr/codes/umls.h
+++ b/dcmsr/include/dcmtk/dcmsr/codes/umls.h
@@ -5,8 +5,8 @@
  *
  *  Header file with UMLS Code Definitions (Coding Scheme "UMLS")
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:08:00 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 11:50:20 by J. Riesmeier
  *
  */
 
@@ -33,7 +33,7 @@
  *  code definitions  *
  *--------------------*/
 
-// total number of codes: 39
+// total number of codes: 40
 // - retired: 0
 // - no name: 0
 // - not unique: 0
@@ -77,6 +77,7 @@
 #define CODE_UMLS_Tyrosine3Octreotate_Ga68                                 DSRBasicCodedEntry("C1742831", "UMLS", "tyrosine-3-octreotate Ga^68^")
 #define CODE_UMLS_Fluoroestradiol_FES_F18                                  DSRBasicCodedEntry("C1831937", "UMLS", "Fluoroestradiol (FES) F^18^")
 #define CODE_UMLS_Sonographer                                              DSRBasicCodedEntry("C1954848", "UMLS", "Sonographer")
+#define CODE_UMLS_Neuroradiology                                           DSRBasicCodedEntry("C2183225", "UMLS", "Neuroradiology")
 #define CODE_UMLS_InverseRatioVentilation                                  DSRBasicCodedEntry("C2223982", "UMLS", "Inverse ratio ventilation")
 #define CODE_UMLS_RootMeanSquare                                           DSRBasicCodedEntry("C2347976", "UMLS", "Root Mean Square")
 #define CODE_UMLS_TimePoint                                                DSRBasicCodedEntry("C2348792", "UMLS", "Time Point")
diff --git a/dcmsr/include/dcmtk/dcmsr/dsrcodvl.h b/dcmsr/include/dcmtk/dcmsr/dsrcodvl.h
index 467dd38..a5a8f0a 100644
--- a/dcmsr/include/dcmtk/dcmsr/dsrcodvl.h
+++ b/dcmsr/include/dcmtk/dcmsr/dsrcodvl.h
@@ -726,6 +726,10 @@ class DCMTK_DCMSR_EXPORT DSRCodedEntryValue
     OFString ContextUID;
     /// Mapping Resource (VR=CS, type 1C)
     OFString MappingResource;
+    /// Mapping Resource UID (VR=UI, type 3)
+     // - tbd: optional attribute not yet supported
+    /// Mapping Resource Name (VR=LO, type 3)
+     // - tbd: optional attribute not yet supported
     /// Context Group Version (VR=DT, type 1C)
     OFString ContextGroupVersion;
     /// Context Group Local Version (VR=DT, type 1C)
diff --git a/dcmsr/include/dcmtk/dcmsr/dsrdoc.h b/dcmsr/include/dcmtk/dcmsr/dsrdoc.h
index 3a0df65..efb6f3f 100644
--- a/dcmsr/include/dcmtk/dcmsr/dsrdoc.h
+++ b/dcmsr/include/dcmtk/dcmsr/dsrdoc.h
@@ -1230,6 +1230,10 @@ class DCMTK_DCMSR_EXPORT DSRDocument
     DcmUniqueIdentifier InstanceCreatorUID;
     /// Coding Scheme Identification Sequence: (SQ, 1-n, 3)
     DSRCodingSchemeIdentificationList CodingSchemeIdentification;
+    /// Context Group Identification Sequence: (SQ, 1-n, 3)
+     // - tbd: optional attribute not yet supported
+    /// Mapping Resource Identification Sequence: (SQ, 1-n, 3)
+     // - tbd: optional attribute not yet supported
 
     // --- General Study Module (M) ---
 
diff --git a/dcmsr/include/dcmtk/dcmsr/dsrsoprf.h b/dcmsr/include/dcmtk/dcmsr/dsrsoprf.h
index 1d4d2f0..7152c0a 100644
--- a/dcmsr/include/dcmtk/dcmsr/dsrsoprf.h
+++ b/dcmsr/include/dcmtk/dcmsr/dsrsoprf.h
@@ -139,7 +139,7 @@ class DCMTK_DCMSR_EXPORT DSRSOPInstanceReferenceList
                         const OFBool check = OFTrue);
 
     /** add item from specified DICOM dataset to the list of references.
-     *  Internally an item representing the given dataset is inserted into the hierarchical
+     *  Internally, an item representing the given dataset is inserted into the hierarchical
      *  structure of studies, series and instances, if not already contained in the list.
      *  In any case, the specified item is selected as the current one.
      ** @param  dataset  reference to DICOM dataset from which the relevant UIDs are retrieved
diff --git a/dcmsr/include/dcmtk/dcmsr/dsrtlist.h b/dcmsr/include/dcmtk/dcmsr/dsrtlist.h
index ed58b35..21e9446 100644
--- a/dcmsr/include/dcmtk/dcmsr/dsrtlist.h
+++ b/dcmsr/include/dcmtk/dcmsr/dsrtlist.h
@@ -29,6 +29,7 @@
 #include "dcmtk/dcmdata/dcerror.h"
 
 #include "dcmtk/ofstd/oflist.h"
+#include "dcmtk/ofstd/ofvector.h"
 
 
 /*---------------------*
@@ -148,6 +149,32 @@ template<class T> class DSRListOfItems
         return result;
     }
 
+    /** get copy of all items (as a vector)
+     ** @param  items  reference to a variable where the result should be stored.
+     *                 (always cleared before items are added)
+     ** @return status, EC_Normal if successful, an error code otherwise
+     */
+    OFCondition getItems(OFVector<T> &items) const
+    {
+        items.clear();
+        if (!ItemList.empty())
+        {
+            /* avoid re-allocations */
+            items.reserve(ItemList.size());
+            /* iterate over all list items */
+            const OFLIST_TYPENAME OFListConstIterator(T) endPos = ItemList.end();
+            OFLIST_TYPENAME OFListConstIterator(T) iterator = ItemList.begin();
+            while (iterator != endPos)
+            {
+                /* and copy them to the passed vector */
+                items.push_back(*iterator);
+                iterator++;
+            }
+        }
+        /* always return OK */
+        return EC_Normal;
+    }
+
     /** add item to the list
      ** @param  item  item to be added
      */
@@ -165,6 +192,20 @@ template<class T> class DSRListOfItems
             ItemList.push_back(item);
     }
 
+    /** add items to the list
+     ** @param  items  items to be added (stored as a vector)
+     */
+    inline void addItems(const OFVector<T> &items)
+    {
+        const OFTypename OFVector<T>::const_iterator endPos = items.end();
+        OFTypename OFVector<T>::const_iterator iterator = items.begin();
+        while (iterator != endPos)
+        {
+            ItemList.push_back(*iterator);
+            iterator++;
+        }
+    }
+
     /** insert item at specified position to the list
      ** @param  idx   index of the item before the new one should be inserted (starting from 1)
      *  @param  item  item to be inserted
diff --git a/dcmsr/include/dcmtk/dcmsr/dsrtypes.h b/dcmsr/include/dcmtk/dcmsr/dsrtypes.h
index 5ba54ad..21cb147 100644
--- a/dcmsr/include/dcmtk/dcmsr/dsrtypes.h
+++ b/dcmsr/include/dcmtk/dcmsr/dsrtypes.h
@@ -396,6 +396,9 @@ class DCMTK_DCMSR_EXPORT DSRTypes
     /// write: add comments with details at beginning/end of included template (might be useful for debugging purposes)
     static const size_t XF_addCommentsForIncludedTemplate;
 
+    /// read: accept empty Study/Series/SOP Instance UID attribute values (must be filled later)
+    static const size_t XF_acceptEmptyStudySeriesInstanceUID;
+
     /// shortcut: combines all XF_xxxAsAttribute write flags (see above)
     static const size_t XF_encodeEverythingAsAttribute;
     //@}
diff --git a/dcmsr/include/dcmtk/dcmsr/dsrxmld.h b/dcmsr/include/dcmtk/dcmsr/dsrxmld.h
index 871e909..9da2add 100644
--- a/dcmsr/include/dcmtk/dcmsr/dsrxmld.h
+++ b/dcmsr/include/dcmtk/dcmsr/dsrxmld.h
@@ -242,6 +242,13 @@ class DCMTK_DCMSR_EXPORT DSRXMLDocument
      */
     void printUnexpectedNodeWarning(const DSRXMLCursor &cursor) const;
 
+    /** print warning message for missing attribute
+     ** @param  cursor  cursor pointing to the relevant node
+     *  @param  name    name of the XML attribute
+     */
+    void printMissingAttributeWarning(const DSRXMLCursor &cursor,
+                                      const char *name) const;
+
     /** print general node error message
      ** @param  cursor  cursor pointing to the unexpected node
      *  @param  result  status used to print details on the error (no message if EC_Normal)
diff --git a/dcmsr/libcmr/cid100.cc b/dcmsr/libcmr/cid100.cc
index 7e89977..245d9e8 100644
--- a/dcmsr/libcmr/cid100.cc
+++ b/dcmsr/libcmr/cid100.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID100_QuantitativeDiagnosticImagingProcedures
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:37 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:46 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid10013.cc b/dcmsr/libcmr/cid10013.cc
index 39eec59..5630fe2 100644
--- a/dcmsr/libcmr/cid10013.cc
+++ b/dcmsr/libcmr/cid10013.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID10013_CTAcquisitionType
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:27:00 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:09 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid10033.cc b/dcmsr/libcmr/cid10033.cc
index 7ebbee8..b55b399 100644
--- a/dcmsr/libcmr/cid10033.cc
+++ b/dcmsr/libcmr/cid10033.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID10033_CTReconstructionAlgorithm
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:27:02 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:11 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid11.cc b/dcmsr/libcmr/cid11.cc
index 0ea6597..ba5e4ce 100644
--- a/dcmsr/libcmr/cid11.cc
+++ b/dcmsr/libcmr/cid11.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID11_RouteOfAdministration
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:32 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:40 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid244.cc b/dcmsr/libcmr/cid244.cc
index f6affd9..5240677 100644
--- a/dcmsr/libcmr/cid244.cc
+++ b/dcmsr/libcmr/cid244.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID244_Laterality
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:38 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:47 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid29.cc b/dcmsr/libcmr/cid29.cc
index 770b2ac..7b35180 100644
--- a/dcmsr/libcmr/cid29.cc
+++ b/dcmsr/libcmr/cid29.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID29_AcquisitionModality
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:33 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:42 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid4020.cc b/dcmsr/libcmr/cid4020.cc
index e64f47d..8e93b56 100644
--- a/dcmsr/libcmr/cid4020.cc
+++ b/dcmsr/libcmr/cid4020.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID4020_PETRadionuclide
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:40 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:49 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid4021.cc b/dcmsr/libcmr/cid4021.cc
index a64408e..8a66790 100644
--- a/dcmsr/libcmr/cid4021.cc
+++ b/dcmsr/libcmr/cid4021.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID4021_PETRadiopharmaceutical
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:42 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:51 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid4031.cc b/dcmsr/libcmr/cid4031.cc
index 5e9dfee..750c1c2 100644
--- a/dcmsr/libcmr/cid4031.cc
+++ b/dcmsr/libcmr/cid4031.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID4031_CommonAnatomicRegions
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:44 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:53 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid42.cc b/dcmsr/libcmr/cid42.cc
index 02c6ce3..e53fcae 100644
--- a/dcmsr/libcmr/cid42.cc
+++ b/dcmsr/libcmr/cid42.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID42_NumericValueQualifier
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:35 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:44 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid5000.cc b/dcmsr/libcmr/cid5000.cc
index 7921bb9..da64f58 100644
--- a/dcmsr/libcmr/cid5000.cc
+++ b/dcmsr/libcmr/cid5000.cc
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2015, J. Riesmeier, Oldenburg, Germany
+ *  Copyright (C) 2015-2016, J. Riesmeier, Oldenburg, Germany
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  Source file for class CID5000_Languages
@@ -147,19 +147,19 @@ CID5000_Languages::CodeList &CID5000_Languages::getCodes()
     {
         /* create a new code list (should never fail) */
         Codes = new CodeList();
-        /*Codes and initialize it by adding the coded entries */
-        Codes->insert(OFMake_pair(English, DSRBasicCodedEntry("eng", "IETF4646", "English")));
-        Codes->insert(OFMake_pair(English_CA, DSRBasicCodedEntry("en-CA", "IETF4646", "English (CA)")));
-        Codes->insert(OFMake_pair(English_GB, DSRBasicCodedEntry("en-GB", "IETF4646", "English (GB)")));
-        Codes->insert(OFMake_pair(English_US, DSRBasicCodedEntry("en-US", "IETF4646", "English (US)")));
-        Codes->insert(OFMake_pair(French, DSRBasicCodedEntry("fra", "IETF4646", "French")));
-        Codes->insert(OFMake_pair(French_CA, DSRBasicCodedEntry("fr-CA", "IETF4646", "French (CA)")));
-        Codes->insert(OFMake_pair(French_CH, DSRBasicCodedEntry("fr-CH", "IETF4646", "French (CH)")));
-        Codes->insert(OFMake_pair(French_FR, DSRBasicCodedEntry("fr-FR", "IETF4646", "French (FR)")));
-        Codes->insert(OFMake_pair(German, DSRBasicCodedEntry("deu", "IETF4646", "German")));
-        Codes->insert(OFMake_pair(German_AT, DSRBasicCodedEntry("de-AT", "IETF4646", "German (AT)")));
-        Codes->insert(OFMake_pair(German_CH, DSRBasicCodedEntry("de-CH", "IETF4646", "German (CH)")));
-        Codes->insert(OFMake_pair(German_DE, DSRBasicCodedEntry("de-DE", "IETF4646", "German (DE)")));
+        /* and initialize it by adding the coded entries */
+        Codes->insert(OFMake_pair(English, DSRBasicCodedEntry("eng", "RFC5646", "English")));
+        Codes->insert(OFMake_pair(English_CA, DSRBasicCodedEntry("en-CA", "RFC5646", "English (CA)")));
+        Codes->insert(OFMake_pair(English_GB, DSRBasicCodedEntry("en-GB", "RFC5646", "English (GB)")));
+        Codes->insert(OFMake_pair(English_US, DSRBasicCodedEntry("en-US", "RFC5646", "English (US)")));
+        Codes->insert(OFMake_pair(French, DSRBasicCodedEntry("fra", "RFC5646", "French")));
+        Codes->insert(OFMake_pair(French_CA, DSRBasicCodedEntry("fr-CA", "RFC5646", "French (CA)")));
+        Codes->insert(OFMake_pair(French_CH, DSRBasicCodedEntry("fr-CH", "RFC5646", "French (CH)")));
+        Codes->insert(OFMake_pair(French_FR, DSRBasicCodedEntry("fr-FR", "RFC5646", "French (FR)")));
+        Codes->insert(OFMake_pair(German, DSRBasicCodedEntry("deu", "RFC5646", "German")));
+        Codes->insert(OFMake_pair(German_AT, DSRBasicCodedEntry("de-AT", "RFC5646", "German (AT)")));
+        Codes->insert(OFMake_pair(German_CH, DSRBasicCodedEntry("de-CH", "RFC5646", "German (CH)")));
+        Codes->insert(OFMake_pair(German_DE, DSRBasicCodedEntry("de-DE", "RFC5646", "German (DE)")));
     }
     /* should never be NULL */
     return *Codes;
diff --git a/dcmsr/libcmr/cid6147.cc b/dcmsr/libcmr/cid6147.cc
index 14cdec8..fa59526 100644
--- a/dcmsr/libcmr/cid6147.cc
+++ b/dcmsr/libcmr/cid6147.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID6147_ResponseCriteria
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:45 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:55 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid7021.cc b/dcmsr/libcmr/cid7021.cc
index 7680f03..b9f1ecc 100644
--- a/dcmsr/libcmr/cid7021.cc
+++ b/dcmsr/libcmr/cid7021.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7021_MeasurementReportDocumentTitles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:47 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:56 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid7181.cc b/dcmsr/libcmr/cid7181.cc
index baf6763..803e7a9 100644
--- a/dcmsr/libcmr/cid7181.cc
+++ b/dcmsr/libcmr/cid7181.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7181_AbstractMultiDimensionalImageModelComponentUnits
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:49 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:38:58 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid7445.cc b/dcmsr/libcmr/cid7445.cc
index 035cdb5..2d6a597 100644
--- a/dcmsr/libcmr/cid7445.cc
+++ b/dcmsr/libcmr/cid7445.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7445_DeviceParticipatingRoles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:51 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:00 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid7452.cc b/dcmsr/libcmr/cid7452.cc
index a54cbfd..ec2c2b6 100644
--- a/dcmsr/libcmr/cid7452.cc
+++ b/dcmsr/libcmr/cid7452.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7452_OrganizationalRoles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:53 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:02 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid7453.cc b/dcmsr/libcmr/cid7453.cc
index 2d74874..e824c50 100644
--- a/dcmsr/libcmr/cid7453.cc
+++ b/dcmsr/libcmr/cid7453.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7453_PerformingRoles
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:55 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:03 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid7464.cc b/dcmsr/libcmr/cid7464.cc
index f0dd006..c66e215 100644
--- a/dcmsr/libcmr/cid7464.cc
+++ b/dcmsr/libcmr/cid7464.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7464_GeneralRegionOfInterestMeasurementModifiers
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:57 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:05 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libcmr/cid7469.cc b/dcmsr/libcmr/cid7469.cc
index e41b27c..7b49449 100644
--- a/dcmsr/libcmr/cid7469.cc
+++ b/dcmsr/libcmr/cid7469.cc
@@ -5,8 +5,8 @@
  *
  *  Source file for class CID7469_GenericIntensityAndSizeMeasurements
  *
- *  Generated automatically from DICOM PS 3.16-2016b
- *  File created on 2016-04-06 16:26:59 by J. Riesmeier
+ *  Generated automatically from DICOM PS 3.16-2016d
+ *  File created on 2016-10-04 12:39:07 by J. Riesmeier
  *
  */
 
diff --git a/dcmsr/libsrc/dsrdoc.cc b/dcmsr/libsrc/dsrdoc.cc
index 00f2abe..abaf4bc 100644
--- a/dcmsr/libsrc/dsrdoc.cc
+++ b/dcmsr/libsrc/dsrdoc.cc
@@ -910,14 +910,20 @@ OFCondition DSRDocument::readXMLPatientData(const DSRXMLDocument &doc,
 
 OFCondition DSRDocument::readXMLStudyData(const DSRXMLDocument &doc,
                                           DSRXMLCursor cursor,
-                                          const size_t /*flags*/)
+                                          const size_t flags)
 {
     OFCondition result = SR_EC_InvalidDocument;
     if (cursor.valid())
     {
         OFString tmpString;
         /* get Study Instance UID from XML attribute */
-        result = doc.getElementFromAttribute(cursor, StudyInstanceUID, "uid");
+        if (flags & XF_acceptEmptyStudySeriesInstanceUID)
+        {
+            if (doc.getElementFromAttribute(cursor, StudyInstanceUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/).bad())
+                doc.printMissingAttributeWarning(cursor, "uid");
+            result = EC_Normal;
+        } else
+            result = doc.getElementFromAttribute(cursor, StudyInstanceUID, "uid");
         /* goto first sub-element */
         cursor.gotoChild();
         /* iterate over all nodes */
@@ -956,14 +962,20 @@ OFCondition DSRDocument::readXMLStudyData(const DSRXMLDocument &doc,
 
 OFCondition DSRDocument::readXMLSeriesData(const DSRXMLDocument &doc,
                                            DSRXMLCursor cursor,
-                                           const size_t /*flags*/)
+                                           const size_t flags)
 {
     OFCondition result = SR_EC_InvalidDocument;
     if (cursor.valid())
     {
         OFString tmpString;
         /* get Series Instance UID from XML attribute */
-        result = doc.getElementFromAttribute(cursor, SeriesInstanceUID, "uid");
+        if (flags & XF_acceptEmptyStudySeriesInstanceUID)
+        {
+            if (doc.getElementFromAttribute(cursor, SeriesInstanceUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/).bad())
+                doc.printMissingAttributeWarning(cursor, "uid");
+            result = EC_Normal;
+        } else
+            result = doc.getElementFromAttribute(cursor, SeriesInstanceUID, "uid");
         /* goto first sub-element */
         cursor.gotoChild();
         /* iterate over all nodes */
@@ -999,14 +1011,20 @@ OFCondition DSRDocument::readXMLSeriesData(const DSRXMLDocument &doc,
 
 OFCondition DSRDocument::readXMLInstanceData(const DSRXMLDocument &doc,
                                              DSRXMLCursor cursor,
-                                             const size_t /*flags*/)
+                                             const size_t flags)
 {
     OFCondition result = SR_EC_InvalidDocument;
     if (cursor.valid())
     {
         OFString tmpString;
         /* get SOP Instance UID from XML attribute */
-        result = doc.getElementFromAttribute(cursor, SOPInstanceUID, "uid");
+        if (flags & XF_acceptEmptyStudySeriesInstanceUID)
+        {
+            if (doc.getElementFromAttribute(cursor, SOPInstanceUID, "uid", OFFalse /*encoding*/, OFFalse /*required*/).bad())
+                doc.printMissingAttributeWarning(cursor, "uid");
+            result = EC_Normal;
+        } else
+            result = doc.getElementFromAttribute(cursor, SOPInstanceUID, "uid");
         /* goto first sub-element */
         cursor.gotoChild();
         /* iterate over all nodes */
@@ -1539,7 +1557,7 @@ OFCondition DSRDocument::renderHTML(STD_NAMESPACE ostream &stream,
         /* used for HTML tmpString conversion */
         OFString htmlString;
         /* update only some DICOM attributes */
-        updateAttributes(OFFalse /* updateAll */);
+        updateAttributes(OFFalse /*updateAll*/);
 
         // --- HTML/XHTML document structure (start) ---
 
@@ -2831,6 +2849,7 @@ OFCondition DSRDocument::finalizeDocument()
 
 void DSRDocument::updateAttributes(const OFBool updateAll)
 {
+    DCMSR_DEBUG("Updating " << (updateAll ? "all " : "") << "DICOM header attributes");
     const E_DocumentType documentType = getDocumentType();
     /* retrieve SOP class UID from internal document type */
     SOPClassUID.putString(documentTypeToSOPClassUID(documentType));
@@ -2849,6 +2868,7 @@ void DSRDocument::updateAttributes(const OFBool updateAll)
         /* create new SOP instance UID if required */
         if (SOPInstanceUID.isEmpty())
         {
+            DCMSR_DEBUG("  Generating new value for SOP Instance UID");
             OFString tmpString;
             SOPInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_INSTANCE_UID_ROOT));
             /* set instance creation date to current date (YYYYMMDD) */
@@ -2860,10 +2880,16 @@ void DSRDocument::updateAttributes(const OFBool updateAll)
         }
         /* create new study instance UID if required */
         if (StudyInstanceUID.isEmpty())
+        {
+            DCMSR_DEBUG("  Generating new value for Study Instance UID");
             StudyInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_STUDY_UID_ROOT));
+        }
         /* create new series instance UID if required */
         if (SeriesInstanceUID.isEmpty())
+        {
+            DCMSR_DEBUG("  Generating new value for Series Instance UID");
             SeriesInstanceUID.putString(dcmGenerateUniqueIdentifier(uid, SITE_SERIES_UID_ROOT));
+        }
 
         /* check and set content date if required */
         if (ContentDate.isEmpty())
diff --git a/dcmsr/libsrc/dsrtypes.cc b/dcmsr/libsrc/dsrtypes.cc
index 19a4d49..0bebd99 100644
--- a/dcmsr/libsrc/dsrtypes.cc
+++ b/dcmsr/libsrc/dsrtypes.cc
@@ -74,96 +74,97 @@
  *---------------------------------*/
 
 /* read flags */
-const size_t DSRTypes::RF_readDigitalSignatures          = 1 <<  0;
-const size_t DSRTypes::RF_acceptUnknownRelationshipType  = 1 <<  1;
-const size_t DSRTypes::RF_acceptInvalidContentItemValue  = 1 <<  2;
-const size_t DSRTypes::RF_ignoreRelationshipConstraints  = 1 <<  3;
-const size_t DSRTypes::RF_ignoreContentItemErrors        = 1 <<  4;
-const size_t DSRTypes::RF_skipInvalidContentItems        = 1 <<  5;
-const size_t DSRTypes::RF_showCurrentlyProcessedItem     = 1 <<  6;
+const size_t DSRTypes::RF_readDigitalSignatures             = 1 <<  0;
+const size_t DSRTypes::RF_acceptUnknownRelationshipType     = 1 <<  1;
+const size_t DSRTypes::RF_acceptInvalidContentItemValue     = 1 <<  2;
+const size_t DSRTypes::RF_ignoreRelationshipConstraints     = 1 <<  3;
+const size_t DSRTypes::RF_ignoreContentItemErrors           = 1 <<  4;
+const size_t DSRTypes::RF_skipInvalidContentItems           = 1 <<  5;
+const size_t DSRTypes::RF_showCurrentlyProcessedItem        = 1 <<  6;
 
 /* renderHTML flags */
-const size_t DSRTypes::HF_neverExpandChildrenInline      = 1 <<  0;
-const size_t DSRTypes::HF_alwaysExpandChildrenInline     = 1 <<  1;
-const size_t DSRTypes::HF_renderInlineCodes              = 1 <<  2;
-const size_t DSRTypes::HF_useCodeDetailsTooltip          = 1 <<  3;
-const size_t DSRTypes::HF_renderConceptNameCodes         = 1 <<  4;
-const size_t DSRTypes::HF_renderNumericUnitCodes         = 1 <<  5;
-const size_t DSRTypes::HF_useCodeMeaningAsUnit           = 1 <<  6;
-const size_t DSRTypes::HF_renderPatientTitle             = 1 <<  7;
-const size_t DSRTypes::HF_renderNoDocumentHeader         = 1 <<  8;
-const size_t DSRTypes::HF_renderDcmtkFootnote            = 1 <<  9;
-const size_t DSRTypes::HF_renderFullData                 = 1 << 10;
-const size_t DSRTypes::HF_renderSectionTitlesInline      = 1 << 11;
-const size_t DSRTypes::HF_copyStyleSheetContent          = 1 << 12;
-const size_t DSRTypes::HF_HTML32Compatibility            = 1 << 13;
-const size_t DSRTypes::HF_XHTML11Compatibility           = 1 << 14;
-const size_t DSRTypes::HF_addDocumentTypeReference       = 1 << 15;
-const size_t DSRTypes::HF_omitGeneratorMetaElement       = 1 << 16;
+const size_t DSRTypes::HF_neverExpandChildrenInline         = 1 <<  0;
+const size_t DSRTypes::HF_alwaysExpandChildrenInline        = 1 <<  1;
+const size_t DSRTypes::HF_renderInlineCodes                 = 1 <<  2;
+const size_t DSRTypes::HF_useCodeDetailsTooltip             = 1 <<  3;
+const size_t DSRTypes::HF_renderConceptNameCodes            = 1 <<  4;
+const size_t DSRTypes::HF_renderNumericUnitCodes            = 1 <<  5;
+const size_t DSRTypes::HF_useCodeMeaningAsUnit              = 1 <<  6;
+const size_t DSRTypes::HF_renderPatientTitle                = 1 <<  7;
+const size_t DSRTypes::HF_renderNoDocumentHeader            = 1 <<  8;
+const size_t DSRTypes::HF_renderDcmtkFootnote               = 1 <<  9;
+const size_t DSRTypes::HF_renderFullData                    = 1 << 10;
+const size_t DSRTypes::HF_renderSectionTitlesInline         = 1 << 11;
+const size_t DSRTypes::HF_copyStyleSheetContent             = 1 << 12;
+const size_t DSRTypes::HF_HTML32Compatibility               = 1 << 13;
+const size_t DSRTypes::HF_XHTML11Compatibility              = 1 << 14;
+const size_t DSRTypes::HF_addDocumentTypeReference          = 1 << 15;
+const size_t DSRTypes::HF_omitGeneratorMetaElement          = 1 << 16;
 /* internal */
-const size_t DSRTypes::HF_renderItemsSeparately          = 1 << 17;
-const size_t DSRTypes::HF_renderItemInline               = 1 << 18;
-const size_t DSRTypes::HF_currentlyInsideAnnex           = 1 << 19;
-const size_t DSRTypes::HF_createFootnoteReferences       = 1 << 20;
-const size_t DSRTypes::HF_convertNonASCIICharacters      = 1 << 21;
+const size_t DSRTypes::HF_renderItemsSeparately             = 1 << 17;
+const size_t DSRTypes::HF_renderItemInline                  = 1 << 18;
+const size_t DSRTypes::HF_currentlyInsideAnnex              = 1 << 19;
+const size_t DSRTypes::HF_createFootnoteReferences          = 1 << 20;
+const size_t DSRTypes::HF_convertNonASCIICharacters         = 1 << 21;
 /* shortcuts */
-const size_t DSRTypes::HF_renderAllCodes                 = DSRTypes::HF_renderInlineCodes |
-                                                           DSRTypes::HF_renderConceptNameCodes |
-                                                           DSRTypes::HF_renderNumericUnitCodes;
-const size_t DSRTypes::HF_internalUseOnly                = DSRTypes::HF_renderItemsSeparately |
-                                                           DSRTypes::HF_renderItemInline |
-                                                           DSRTypes::HF_currentlyInsideAnnex |
-                                                           DSRTypes::HF_createFootnoteReferences |
-                                                           DSRTypes::HF_convertNonASCIICharacters;
+const size_t DSRTypes::HF_renderAllCodes                    = DSRTypes::HF_renderInlineCodes |
+                                                              DSRTypes::HF_renderConceptNameCodes |
+                                                              DSRTypes::HF_renderNumericUnitCodes;
+const size_t DSRTypes::HF_internalUseOnly                   = DSRTypes::HF_renderItemsSeparately |
+                                                              DSRTypes::HF_renderItemInline |
+                                                              DSRTypes::HF_currentlyInsideAnnex |
+                                                              DSRTypes::HF_createFootnoteReferences |
+                                                              DSRTypes::HF_convertNonASCIICharacters;
 
 /* read/writeXML flags */
-const size_t DSRTypes::XF_writeEmptyTags                 = 1 << 0;
-const size_t DSRTypes::XF_writeTemplateIdentification    = 1 << 1;
-const size_t DSRTypes::XF_alwaysWriteItemIdentifier      = 1 << 2;
-const size_t DSRTypes::XF_codeComponentsAsAttribute      = 1 << 3;
-const size_t DSRTypes::XF_relationshipTypeAsAttribute    = 1 << 4;
-const size_t DSRTypes::XF_valueTypeAsAttribute           = 1 << 5;
-const size_t DSRTypes::XF_templateIdentifierAsAttribute  = 1 << 6;
-const size_t DSRTypes::XF_useDcmsrNamespace              = 1 << 7;
-const size_t DSRTypes::XF_addSchemaReference             = 1 << 8;
-const size_t DSRTypes::XF_validateSchema                 = 1 << 9;
-const size_t DSRTypes::XF_templateElementEnclosesItems   = 1 << 10;
-const size_t DSRTypes::XF_addCommentsForIncludedTemplate = 1 << 11;
+const size_t DSRTypes::XF_writeEmptyTags                    = 1 << 0;
+const size_t DSRTypes::XF_writeTemplateIdentification       = 1 << 1;
+const size_t DSRTypes::XF_alwaysWriteItemIdentifier         = 1 << 2;
+const size_t DSRTypes::XF_codeComponentsAsAttribute         = 1 << 3;
+const size_t DSRTypes::XF_relationshipTypeAsAttribute       = 1 << 4;
+const size_t DSRTypes::XF_valueTypeAsAttribute              = 1 << 5;
+const size_t DSRTypes::XF_templateIdentifierAsAttribute     = 1 << 6;
+const size_t DSRTypes::XF_useDcmsrNamespace                 = 1 << 7;
+const size_t DSRTypes::XF_addSchemaReference                = 1 << 8;
+const size_t DSRTypes::XF_validateSchema                    = 1 << 9;
+const size_t DSRTypes::XF_templateElementEnclosesItems      = 1 << 10;
+const size_t DSRTypes::XF_addCommentsForIncludedTemplate    = 1 << 11;
+const size_t DSRTypes::XF_acceptEmptyStudySeriesInstanceUID = 1 << 12;
 /* shortcuts */
-const size_t DSRTypes::XF_encodeEverythingAsAttribute    = DSRTypes::XF_codeComponentsAsAttribute |
-                                                           DSRTypes::XF_relationshipTypeAsAttribute |
-                                                           DSRTypes::XF_valueTypeAsAttribute |
-                                                           DSRTypes::XF_templateIdentifierAsAttribute;
+const size_t DSRTypes::XF_encodeEverythingAsAttribute       = DSRTypes::XF_codeComponentsAsAttribute |
+                                                              DSRTypes::XF_relationshipTypeAsAttribute |
+                                                              DSRTypes::XF_valueTypeAsAttribute |
+                                                              DSRTypes::XF_templateIdentifierAsAttribute;
 
 /* print flags */
-const size_t DSRTypes::PF_printItemPosition              = 1 << 0;
-const size_t DSRTypes::PF_shortenLongItemValues          = 1 << 1;
-const size_t DSRTypes::PF_printSOPInstanceUID            = 1 << 2;
-const size_t DSRTypes::PF_printConceptNameCodes          = 1 << 3;
-const size_t DSRTypes::PF_printNoDocumentHeader          = 1 << 4;
-const size_t DSRTypes::PF_printTemplateIdentification    = 1 << 5;
-const size_t DSRTypes::PF_useANSIEscapeCodes             = 1 << 6;
-const size_t DSRTypes::PF_printLongSOPClassName          = 1 << 7;
-const size_t DSRTypes::PF_printSOPClassUID               = 1 << 8;
-const size_t DSRTypes::PF_printInvalidCodes              = 1 << 9;
-const size_t DSRTypes::PF_printNodeID                    = 1 << 10;
-const size_t DSRTypes::PF_indicateEnhancedEncodingMode   = 1 << 11;
-const size_t DSRTypes::PF_printAnnotation                = 1 << 12;
-const size_t DSRTypes::PF_hideIncludedTemplateNodes      = 1 << 13;
-const size_t DSRTypes::PF_dontCountIncludedTemplateNodes = 1 << 14;
+const size_t DSRTypes::PF_printItemPosition                 = 1 << 0;
+const size_t DSRTypes::PF_shortenLongItemValues             = 1 << 1;
+const size_t DSRTypes::PF_printSOPInstanceUID               = 1 << 2;
+const size_t DSRTypes::PF_printConceptNameCodes             = 1 << 3;
+const size_t DSRTypes::PF_printNoDocumentHeader             = 1 << 4;
+const size_t DSRTypes::PF_printTemplateIdentification       = 1 << 5;
+const size_t DSRTypes::PF_useANSIEscapeCodes                = 1 << 6;
+const size_t DSRTypes::PF_printLongSOPClassName             = 1 << 7;
+const size_t DSRTypes::PF_printSOPClassUID                  = 1 << 8;
+const size_t DSRTypes::PF_printInvalidCodes                 = 1 << 9;
+const size_t DSRTypes::PF_printNodeID                       = 1 << 10;
+const size_t DSRTypes::PF_indicateEnhancedEncodingMode      = 1 << 11;
+const size_t DSRTypes::PF_printAnnotation                   = 1 << 12;
+const size_t DSRTypes::PF_hideIncludedTemplateNodes         = 1 << 13;
+const size_t DSRTypes::PF_dontCountIncludedTemplateNodes    = 1 << 14;
 /* shortcuts */
-const size_t DSRTypes::PF_printAllCodes                  = DSRTypes::PF_printConceptNameCodes;
+const size_t DSRTypes::PF_printAllCodes                     = DSRTypes::PF_printConceptNameCodes;
 
 /* checkByReferenceRelationships modes */
-const size_t DSRTypes::CM_updatePositionString           = 1 << 0;
-const size_t DSRTypes::CM_updateNodeID                   = 1 << 1;
-const size_t DSRTypes::CM_resetReferenceTargetFlag       = 1 << 2;
+const size_t DSRTypes::CM_updatePositionString              = 1 << 0;
+const size_t DSRTypes::CM_updateNodeID                      = 1 << 1;
+const size_t DSRTypes::CM_resetReferenceTargetFlag          = 1 << 2;
 
 /* checkByReferenceRelationships bit masks (avoid conflicts!) */
-const size_t DSRTypes::CB_maskPrintFlags                 = DSRTypes::PF_dontCountIncludedTemplateNodes;
-const size_t DSRTypes::CB_maskReadFlags                  = DSRTypes::RF_acceptUnknownRelationshipType |
-                                                           DSRTypes::RF_ignoreRelationshipConstraints |
-                                                           DSRTypes::RF_showCurrentlyProcessedItem;
+const size_t DSRTypes::CB_maskPrintFlags                    = DSRTypes::PF_dontCountIncludedTemplateNodes;
+const size_t DSRTypes::CB_maskReadFlags                     = DSRTypes::RF_acceptUnknownRelationshipType |
+                                                              DSRTypes::RF_ignoreRelationshipConstraints |
+                                                              DSRTypes::RF_showCurrentlyProcessedItem;
 
 
 /*---------------------*
diff --git a/dcmsr/libsrc/dsrxmld.cc b/dcmsr/libsrc/dsrxmld.cc
index 23658ce..55c9690 100644
--- a/dcmsr/libsrc/dsrxmld.cc
+++ b/dcmsr/libsrc/dsrxmld.cc
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2003-2014, OFFIS e.V.
+ *  Copyright (C) 2003-2016, OFFIS e.V.
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation were developed by
@@ -684,11 +684,24 @@ DSRTypes::E_RelationshipType DSRXMLDocument::getRelationshipTypeFromNode(const D
 
 void DSRXMLDocument::printUnexpectedNodeWarning(const DSRXMLCursor &cursor) const
 {
+    /* report warning message */
     OFString tmpString;
     DCMSR_WARN("Unexpected node '" << getFullNodePath(cursor, tmpString) << "', skipping");
 }
 
 
+void DSRXMLDocument::printMissingAttributeWarning(const DSRXMLCursor &cursor,
+                                                  const char *name) const
+{
+    /* report warning message */
+    if (name != NULL)
+    {
+        OFString tmpString;
+        DCMSR_WARN("XML attribute '" << name << "' missing/empty in " << getFullNodePath(cursor, tmpString));
+    }
+}
+
+
 void DSRXMLDocument::printMissingAttributeError(const DSRXMLCursor &cursor,
                                                 const char *name) const
 {
diff --git a/dcmsr/tests/CMakeLists.txt b/dcmsr/tests/CMakeLists.txt
index e1ea238..fcbf1f5 100644
--- a/dcmsr/tests/CMakeLists.txt
+++ b/dcmsr/tests/CMakeLists.txt
@@ -1,6 +1,6 @@
 # declare executables
 DCMTK_ADD_EXECUTABLE(mkreport mkreport)
-DCMTK_ADD_EXECUTABLE(dcmsr_tests tests tsrtree tsrdoctr tsrdoc tsrcodvl tsrnumvl tsrtpl tsrcmr)
+DCMTK_ADD_EXECUTABLE(dcmsr_tests tests tsrtree tsrdoctr tsrdoc tsrcodvl tsrnumvl tsrtpl tsrcmr tsrlist)
 
 # make sure executables are linked to the corresponding libraries
 DCMTK_TARGET_LINK_MODULES(mkreport dcmsr dcmimage dcmimgle dcmdata oflog ofstd)
diff --git a/dcmsr/tests/Makefile.dep b/dcmsr/tests/Makefile.dep
index 21d5734..c3114bf 100644
--- a/dcmsr/tests/Makefile.dep
+++ b/dcmsr/tests/Makefile.dep
@@ -565,6 +565,52 @@ tsrdoctr.o: tsrdoctr.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/dcmsr/dsrtpltn.h ../include/dcmtk/dcmsr/dsrstpl.h \
  ../include/dcmtk/dcmsr/dsrnumtn.h ../include/dcmtk/dcmsr/dsrtextn.h \
  ../include/dcmtk/dcmsr/dsrstrvl.h
+tsrlist.o: tsrlist.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../../ofstd/include/dcmtk/ofstd/oftest.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
+ ../../ofstd/include/dcmtk/ofstd/oftypes.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdefine.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcast.h \
+ ../../ofstd/include/dcmtk/ofstd/ofexport.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstdinc.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstream.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcmdln.h \
+ ../../ofstd/include/dcmtk/ofstd/oflist.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstring.h \
+ ../../ofstd/include/dcmtk/ofstd/ofconsol.h \
+ ../../ofstd/include/dcmtk/ofstd/ofthread.h \
+ ../../ofstd/include/dcmtk/ofstd/offile.h \
+ ../../ofstd/include/dcmtk/ofstd/ofstd.h \
+ ../../ofstd/include/dcmtk/ofstd/oftraits.h \
+ ../../ofstd/include/dcmtk/ofstd/ofcond.h \
+ ../../ofstd/include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcuid.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcdefine.h \
+ ../../oflog/include/dcmtk/oflog/oflog.h \
+ ../../oflog/include/dcmtk/oflog/logger.h \
+ ../../oflog/include/dcmtk/oflog/config.h \
+ ../../oflog/include/dcmtk/oflog/config/defines.h \
+ ../../oflog/include/dcmtk/oflog/helpers/threadcf.h \
+ ../../oflog/include/dcmtk/oflog/loglevel.h \
+ ../../ofstd/include/dcmtk/ofstd/ofvector.h \
+ ../../oflog/include/dcmtk/oflog/tstring.h \
+ ../../oflog/include/dcmtk/oflog/tchar.h \
+ ../../oflog/include/dcmtk/oflog/spi/apndatch.h \
+ ../../oflog/include/dcmtk/oflog/appender.h \
+ ../../ofstd/include/dcmtk/ofstd/ofaptr.h \
+ ../../oflog/include/dcmtk/oflog/layout.h \
+ ../../oflog/include/dcmtk/oflog/streams.h \
+ ../../oflog/include/dcmtk/oflog/helpers/pointer.h \
+ ../../oflog/include/dcmtk/oflog/thread/syncprim.h \
+ ../../oflog/include/dcmtk/oflog/spi/filter.h \
+ ../../oflog/include/dcmtk/oflog/helpers/lockfile.h \
+ ../../oflog/include/dcmtk/oflog/spi/logfact.h \
+ ../../oflog/include/dcmtk/oflog/logmacro.h \
+ ../../oflog/include/dcmtk/oflog/helpers/snprintf.h \
+ ../../oflog/include/dcmtk/oflog/tracelog.h \
+ ../include/dcmtk/dcmsr/dsrtlist.h \
+ ../../dcmdata/include/dcmtk/dcmdata/dcerror.h
 tsrnumvl.o: tsrnumvl.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../ofstd/include/dcmtk/ofstd/oftest.h \
  ../../ofstd/include/dcmtk/ofstd/ofconapp.h \
diff --git a/dcmsr/tests/Makefile.in b/dcmsr/tests/Makefile.in
index 8509e6c..11dd711 100644
--- a/dcmsr/tests/Makefile.in
+++ b/dcmsr/tests/Makefile.in
@@ -26,7 +26,8 @@ LIBDIRS = -L$(top_srcdir)/libcmr -L$(top_srcdir)/libsrc -L$(ofstddir)/libsrc \
 LOCALLIBS = -lcmr -ldcmsr -ldcmimage -ldcmimgle -ldcmdata -loflog -lofstd $(TIFFLIBS) \
 	$(PNGLIBS) $(XMLLIBS) $(ZLIBLIBS) $(ICONVLIBS)
 
-tstobjs = tests.o tsrtree.o tsrdoctr.o tsrdoc.o tsrcodvl.o tsrnumvl.o tsrtpl.o tsrcmr.o
+tstobjs = tests.o tsrtree.o tsrdoctr.o tsrdoc.o tsrcodvl.o tsrnumvl.o tsrtpl.o tsrcmr.o \
+	tsrlist.o
 objs = mkreport.o $(tstobjs)
 progs = mkreport tests
 
diff --git a/dcmsr/tests/tests.cc b/dcmsr/tests/tests.cc
index c688077..36fd320 100644
--- a/dcmsr/tests/tests.cc
+++ b/dcmsr/tests/tests.cc
@@ -23,6 +23,8 @@
 
 #include "dcmtk/ofstd/oftest.h"
 
+OFTEST_REGISTER(dcmsr_addItems);
+OFTEST_REGISTER(dcmsr_getItems);
 OFTEST_REGISTER(dcmsr_addTreeNode_1);
 OFTEST_REGISTER(dcmsr_addTreeNode_2);
 OFTEST_REGISTER(dcmsr_addTreeNode_3);
diff --git a/dcmsr/tests/tsrlist.cc b/dcmsr/tests/tsrlist.cc
new file mode 100644
index 0000000..499ce1c
--- /dev/null
+++ b/dcmsr/tests/tsrlist.cc
@@ -0,0 +1,68 @@
+/*
+ *
+ *  Copyright (C) 2016, J. Riesmeier, Oldenburg, Germany
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation are maintained by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module: dcmsr
+ *
+ *  Author: Joerg Riesmeier
+ *
+ *  Purpose:
+ *    test program for class DSRListOfItems
+ *
+ */
+
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+#include "dcmtk/ofstd/oftest.h"
+
+#include "dcmtk/dcmsr/dsrtlist.h"
+
+
+OFTEST(dcmsr_addItems)
+{
+    // disable test case when building shared libraries because of linker errors
+#ifndef DCMTK_SHARED
+    /* prepare test data */
+    OFVector<Uint16> vec;
+    for (Uint16 i = 0; i < 10; ++i)
+        vec.push_back(i);
+    /* add data to list */
+    DSRListOfItems<Uint16> lst;
+    lst.addItems(vec);
+    /* and check result */
+    OFCHECK_EQUAL(lst.getNumberOfItems(), 10);
+    for (Uint16 j = 0; j < 10; ++j)
+        OFCHECK_EQUAL(lst.getItem(j + 1), j);
+    OFCHECK(lst.isElement(7));
+    OFCHECK(!lst.isElement(10));
+#endif
+}
+
+
+OFTEST(dcmsr_getItems)
+{
+    // disable test case when building shared libraries because of linker errors
+#ifndef DCMTK_SHARED
+    DSRListOfItems<Uint16> lst;
+    /* add data to list */
+    for (Uint16 i = 0; i < 10; ++i)
+        lst.addItem(i);
+    /* and check result */
+    OFCHECK_EQUAL(lst.getNumberOfItems(), 10);
+    OFVector<Uint16> vec;
+    OFCHECK(lst.getItems(vec).good());
+    OFCHECK_EQUAL(vec.size(), 10);
+    for (Uint16 j = 0; j < 10; ++j)
+        OFCHECK_EQUAL(vec.at(j), j);
+#endif
+}
diff --git a/dcmtract/docs/dcmtract.dox b/dcmtract/docs/dcmtract.dox
index 12566ff..94d3379 100644
--- a/dcmtract/docs/dcmtract.dox
+++ b/dcmtract/docs/dcmtract.dox
@@ -1,6 +1,6 @@
 /*!
 
-\page mod_dcmtract dcmtract: a library for working with Tractography Results
+\page mod_dcmtract dcmtract: a library for working with tractography results
 
 This module contains classes to deal with DICOM Tractography Results objects.
 It is able to create, load and access the contained fiber tracks and the related
@@ -22,7 +22,6 @@ Module.
 The main class of this module is:
 \li \b TrcTractographyResults
 
-
 \section Examples
 
 The following (complete) example shows how to load a DICOM Tractography Results
diff --git a/dcmtract/libsrc/Makefile.dep b/dcmtract/libsrc/Makefile.dep
index 16a7637..ff84b2e 100644
--- a/dcmtract/libsrc/Makefile.dep
+++ b/dcmtract/libsrc/Makefile.dep
@@ -59,6 +59,8 @@ trcmeasurement.o: trcmeasurement.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -91,11 +93,9 @@ trcmeasurement.o: trcmeasurement.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -183,6 +183,8 @@ trcmodtractresults.o: trcmodtractresults.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -216,11 +218,9 @@ trcmodtractresults.o: trcmodtractresults.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -312,6 +312,8 @@ trcstatistic.o: trcstatistic.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -344,11 +346,9 @@ trcstatistic.o: trcstatistic.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -436,6 +436,8 @@ trctrack.o: trctrack.cc ../../config/include/dcmtk/config/osconfig.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -512,6 +514,8 @@ trctrackset.o: trctrackset.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -542,11 +546,9 @@ trctrackset.o: trctrackset.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
@@ -638,6 +640,8 @@ trctractographyresults.o: trctractographyresults.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcitem.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcpcache.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcdatutl.h \
+ ../../ofstd/include/dcmtk/ofstd/ofdate.h \
+ ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmiod/include/dcmtk/dcmiod/ioddef.h \
  ../../dcmiod/include/dcmtk/dcmiod/iodrules.h \
  ../../ofstd/include/dcmtk/ofstd/ofmap.h \
@@ -668,11 +672,9 @@ trctractographyresults.o: trctractographyresults.cc \
  ../../dcmdata/include/dcmtk/dcmdata/dcvras.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrcs.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrda.h \
- ../../ofstd/include/dcmtk/ofstd/ofdate.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrds.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrdt.h \
  ../../ofstd/include/dcmtk/ofstd/ofdatime.h \
- ../../ofstd/include/dcmtk/ofstd/oftime.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvris.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrtm.h \
  ../../dcmdata/include/dcmtk/dcmdata/dcvrui.h \
diff --git a/docs/CHANGES.361 b/docs/CHANGES.361
index 2d05cde..1e546b1 100644
--- a/docs/CHANGES.361
+++ b/docs/CHANGES.361
@@ -1,6 +1,1073 @@
 
 Changes between releases are documented here.
 
+**** Changes from 2016.11.02 (schlamelcher)
+
+- Updated CHANGES.361 for new development snapshot.
+  Affects: docs/CHANGES.361
+
+- Updated DCMTK_ABI_VERSION for new development snapshot.
+  Affects: CMake/dcmtkPrepare.cmake
+
+- Updated man pages for new development snapshot.
+  Affects: doxygen/manpages/man1/dcm2pdf.1
+           doxygen/manpages/man1/dcm2pnm.1
+           doxygen/manpages/man1/dcm2xml.1
+           doxygen/manpages/man1/dcmcjpeg.1
+           doxygen/manpages/man1/dcmcjpls.1
+           doxygen/manpages/man1/dcmconv.1
+           doxygen/manpages/man1/dcmcrle.1
+           doxygen/manpages/man1/dcmdjpeg.1
+           doxygen/manpages/man1/dcmdjpls.1
+           doxygen/manpages/man1/dcmdrle.1
+           doxygen/manpages/man1/dcmdspfn.1
+           doxygen/manpages/man1/dcmdump.1
+           doxygen/manpages/man1/dcmftest.1
+           doxygen/manpages/man1/dcmgpdir.1
+           doxygen/manpages/man1/dcmj2pnm.1
+           doxygen/manpages/man1/dcml2pnm.1
+           doxygen/manpages/man1/dcmmkcrv.1
+           doxygen/manpages/man1/dcmmkdir.1
+           doxygen/manpages/man1/dcmmklut.1
+           doxygen/manpages/man1/dcmodify.1
+           doxygen/manpages/man1/dcmp2pgm.1
+           doxygen/manpages/man1/dcmprscp.1
+           doxygen/manpages/man1/dcmprscu.1
+           doxygen/manpages/man1/dcmpschk.1
+           doxygen/manpages/man1/dcmpsmk.1
+           doxygen/manpages/man1/dcmpsprt.1
+           doxygen/manpages/man1/dcmpsrcv.1
+           doxygen/manpages/man1/dcmpssnd.1
+           doxygen/manpages/man1/dcmqridx.1
+           doxygen/manpages/man1/dcmqrscp.1
+           doxygen/manpages/man1/dcmqrti.1
+           doxygen/manpages/man1/dcmquant.1
+           doxygen/manpages/man1/dcmrecv.1
+           doxygen/manpages/man1/dcmscale.1
+           doxygen/manpages/man1/dcmsend.1
+           doxygen/manpages/man1/dcmsign.1
+           doxygen/manpages/man1/dcod2lum.1
+           doxygen/manpages/man1/dconvlum.1
+           doxygen/manpages/man1/drtdump.1
+           doxygen/manpages/man1/dsr2html.1
+           doxygen/manpages/man1/dsr2xml.1
+           doxygen/manpages/man1/dsrdump.1
+           doxygen/manpages/man1/dump2dcm.1
+           doxygen/manpages/man1/echoscu.1
+           doxygen/manpages/man1/findscu.1
+           doxygen/manpages/man1/getscu.1
+           doxygen/manpages/man1/img2dcm.1
+           doxygen/manpages/man1/movescu.1
+           doxygen/manpages/man1/pdf2dcm.1
+           doxygen/manpages/man1/storescp.1
+           doxygen/manpages/man1/storescu.1
+           doxygen/manpages/man1/termscu.1
+           doxygen/manpages/man1/wlmscpfs.1
+           doxygen/manpages/man1/xml2dcm.1
+           doxygen/manpages/man1/xml2dsr.1
+
+- Updated Makefile dependencies.
+  Affects: ofstd/libsrc/Makefile.dep
+
+- Added API documentation for OFvariant etc.
+  Affects: ofstd/include/dcmtk/ofstd/ofutil.h
+           ofstd/include/dcmtk/ofstd/ofvriant.h
+
+**** Changes from 2016.11.01 (riesmeier)
+
+- Added readXML mode that accepts empty/missing UID:
+  Added new mode to readXML() that accepts empty or missing Study/Series/
+  SOP Instance UID values in the input document. This is required if only
+  some of these three UID values should be re-generated (replaced). Now,
+  option --generate-new-uids (with --dont-overwrite-uids) works as expected.
+  Thanks to Martin Wenger <Martin.Wenger at klinikum-hef.de> for the original
+  report that resulted in this improvement/fix.
+  Affects: dcmsr/apps/xml2dsr.cc
+           dcmsr/include/dcmtk/dcmsr/dsrtypes.h
+           dcmsr/include/dcmtk/dcmsr/dsrxmld.h
+           dcmsr/libsrc/dsrdoc.cc
+           dcmsr/libsrc/dsrtypes.cc
+           dcmsr/libsrc/dsrxmld.cc
+
+- Output debug messages when updating attributes:
+  Output messages to the debug logger when updating DICOM header attributes,
+  especially when generating new Study / Series / SOP Instance UIDs.
+  Affects: dcmsr/libsrc/dsrdoc.cc
+
+- Made clear that options +/-Uo require +Ug:
+  Now it is checked whether option --generate-new-uids (+Ug) is used when
+  --overwrite-uids (+Uo) or --dont-overwrite-uids (-Uo) is also specified
+  on the command line. This should avoid possible confusions.
+  Affects: dcmdata/apps/xml2dcm.cc
+           dcmsr/apps/xml2dsr.cc
+
+**** Changes from 2016.10.31 (schlamelcher)
+
+- Added OFvariant implementation for C++11:
+  Closes DCMTK bug #693.
+  Affects: dcmiod/include/dcmtk/dcmiod/iodimage.h
+           dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h
+           ofstd/include/dcmtk/ofstd/ofutil.h
+           ofstd/include/dcmtk/ofstd/ofvriant.h
+
+**** Changes from 2016.10.30 (schlamelcher)
+
+- Fixed a problem with a previous commit:
+  A line in a previous commit was truncated, leading to compiler errors.
+  Affects: dcmpstat/libsrc/dviface.cc
+
+**** Changes from 2016.10.28 (schlamelcher)
+
+- Fixed using third party libraries with MinGW:
+  Modified 3rdparty.cmake such that MinGW is handled the same as Unix like
+  systems regarding the integration of third party libraries.
+  Affects: CMake/3rdparty.cmake
+
+- Fixed 32 vs. 64 bit problem in dcmqrdb:
+  Fixed incompatibility of dcmqrdb databases between 32 bit and 64 bit code on
+  the same platform. Don't forget to re-create your databases using dcmqridx.
+  Affects: dcmqrdb/include/dcmtk/dcmqrdb/dcmqridx.h
+
+- Several fixes for dcmpstat:
+  Fixed detecting structured reporting objects based on the SOP class.
+  Fixed print job execution and cleanup. Print job executing was bugged when
+  the name of one print job was a prefix to the name of another print job.
+  Fixed deadlock in instanceReviewed() regarding database access.
+  Fixed opening files named using non ASCII characters (only relevant on
+  Windows).
+  Affects: dcmpstat/apps/dcmprscu.cc
+           dcmpstat/libsrc/dviface.cc
+           dcmpstat/libsrc/dvpshlp.cc
+
+- Fixed wrong usage of checkStringValue() in dcmpmap:
+  Fixed passing the attribute type to checkStringValue() where the value multi-
+  plicity is expected.
+  Affects: dcmpmap/libsrc/dpmmodparametricmapimage.cc
+
+**** Changes from 2016.10.12 (riesmeier)
+
+- Added comment on recently added DICOM attributes:
+  Added comment on DICOM attributes that were recently added to the DICOM
+  standard but which are not (yet) supported by the "dcmsr" module.
+  As usual, these "things to be done" can be found by searching for "tbd:"
+  in the source code of this module.
+  Affects: dcmsr/include/dcmtk/dcmsr/dsrcodvl.h
+           dcmsr/include/dcmtk/dcmsr/dsrdoc.h
+
+- Updated "dcmrt" classes based on DICOM 2016d:
+  Updated automatically generated IOD and sequence C++ classes for the various
+  RT objects based on the current edition of the DICOM standard (2016d).
+  Added:   dcmrt/include/dcmtk/dcmrt/seq/drtcgis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdddps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtddps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtgpis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmris.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpdeds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtscs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsins.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtspgis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsptcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtssrcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtudis.h
+           dcmrt/libsrc/drtcgis.cc
+           dcmrt/libsrc/drtdddps.cc
+           dcmrt/libsrc/drtddps.cc
+           dcmrt/libsrc/drtgpis.cc
+           dcmrt/libsrc/drtmris.cc
+           dcmrt/libsrc/drtpdeds.cc
+           dcmrt/libsrc/drtscs.cc
+           dcmrt/libsrc/drtsins.cc
+           dcmrt/libsrc/drtspgis.cc
+           dcmrt/libsrc/drtsptcs.cc
+           dcmrt/libsrc/drtssrcs.cc
+           dcmrt/libsrc/drtsss.cc
+           dcmrt/libsrc/drtudis.cc
+  Removed: dcmrt/include/dcmtk/dcmrt/seq/drtarics.h
+           dcmrt/libsrc/drtarics.cc
+  Affects: dcmrt/apps/Makefile.dep
+           dcmrt/include/dcmtk/dcmrt/drtdose.h
+           dcmrt/include/dcmtk/dcmrt/drtimage.h
+           dcmrt/include/dcmtk/dcmrt/drtionpl.h
+           dcmrt/include/dcmtk/dcmrt/drtiontr.h
+           dcmrt/include/dcmtk/dcmrt/drtplan.h
+           dcmrt/include/dcmtk/dcmrt/drtstrct.h
+           dcmrt/include/dcmtk/dcmrt/drttreat.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtaadcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtadcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtads.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtafs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtags.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtajcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtas1.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtas5.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtas6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtas7.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtass.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbads.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbcps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbl2.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbl5.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbldls.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbldps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtblds1.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtblds5.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtblds6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbldts.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbrcss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbrdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtbvcps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcbars.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtccs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcctus.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtces.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtchs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcims.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcncs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcos.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcpas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcpis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcsas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcshs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcsis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtcss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdias.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdimcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdimrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdirs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdspcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdvhs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtdvrrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drteas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtecs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtes.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtfds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtfes.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtfgs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtfgss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtfms.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtfsss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtgas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drthsdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtiais.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtians.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtiblds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtibls.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtibs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drticpds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drticps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtics.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtiis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtipiqs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtircs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtiseis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtitts.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtiwps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtiws.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtlsds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtlsds6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtlsds7.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmacds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmls.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtmucs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtoas.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtois.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtopis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtos.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpbcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpcxs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpdecs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpfms.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpics.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtporcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtporis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtppcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtprsis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpscs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpsics.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpsss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtpvis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtqds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtras.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbas2.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbas8.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbls.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbos1.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbos6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbos7.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbs2.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbs4.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrbs8.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrcdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrcos.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrcps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrdros.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrdrs1.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrdrs6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrdrs8.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrecs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrfgs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrfors.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrics.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrims.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtris.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrlsds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrmdrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrms.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrmss6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrmss7.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrpcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrpis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrppcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrpphs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrpps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrppss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrris1.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrris6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrris9.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrms.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrros.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrpcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrros.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrshs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrtps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrtps3.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrtps4.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrrtps5.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrscs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsers.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrses.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrshs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrshs6.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrshs7.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsns.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsos.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrsts.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrtrs2.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrtrs4.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrvis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrws.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtrwvms.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtscris.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsdcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtshds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsis.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtsns.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtspccs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtspcs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtss.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtssrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drttms0.h
+           dcmrt/include/dcmtk/dcmrt/seq/drttms9.h
+           dcmrt/include/dcmtk/dcmrt/seq/drttscds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drttsibs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drttsmds.h
+           dcmrt/include/dcmtk/dcmrt/seq/drttts.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtvls.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtwps.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtwrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtwrsrs.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtws.h
+           dcmrt/include/dcmtk/dcmrt/seq/drtxrs.h
+           dcmrt/libsrc/CMakeLists.txt
+           dcmrt/libsrc/Makefile.dep
+           dcmrt/libsrc/Makefile.in
+           dcmrt/libsrc/drtaadcs.cc
+           dcmrt/libsrc/drtadcs.cc
+           dcmrt/libsrc/drtads.cc
+           dcmrt/libsrc/drtafs.cc
+           dcmrt/libsrc/drtags.cc
+           dcmrt/libsrc/drtajcs.cc
+           dcmrt/libsrc/drtas1.cc
+           dcmrt/libsrc/drtas5.cc
+           dcmrt/libsrc/drtas6.cc
+           dcmrt/libsrc/drtas7.cc
+           dcmrt/libsrc/drtass.cc
+           dcmrt/libsrc/drtbads.cc
+           dcmrt/libsrc/drtbas.cc
+           dcmrt/libsrc/drtbcps.cc
+           dcmrt/libsrc/drtbl2.cc
+           dcmrt/libsrc/drtbl5.cc
+           dcmrt/libsrc/drtbldls.cc
+           dcmrt/libsrc/drtbldps.cc
+           dcmrt/libsrc/drtblds1.cc
+           dcmrt/libsrc/drtblds5.cc
+           dcmrt/libsrc/drtblds6.cc
+           dcmrt/libsrc/drtbldts.cc
+           dcmrt/libsrc/drtbrcss.cc
+           dcmrt/libsrc/drtbrdrs.cc
+           dcmrt/libsrc/drtbrs.cc
+           dcmrt/libsrc/drtbs.cc
+           dcmrt/libsrc/drtbss.cc
+           dcmrt/libsrc/drtbvcps.cc
+           dcmrt/libsrc/drtcbars.cc
+           dcmrt/libsrc/drtccs.cc
+           dcmrt/libsrc/drtcctus.cc
+           dcmrt/libsrc/drtcdrs.cc
+           dcmrt/libsrc/drtces.cc
+           dcmrt/libsrc/drtchs.cc
+           dcmrt/libsrc/drtcims.cc
+           dcmrt/libsrc/drtcis.cc
+           dcmrt/libsrc/drtcncs.cc
+           dcmrt/libsrc/drtcos.cc
+           dcmrt/libsrc/drtcpas.cc
+           dcmrt/libsrc/drtcpis.cc
+           dcmrt/libsrc/drtcps.cc
+           dcmrt/libsrc/drtcs.cc
+           dcmrt/libsrc/drtcsas.cc
+           dcmrt/libsrc/drtcshs.cc
+           dcmrt/libsrc/drtcsis.cc
+           dcmrt/libsrc/drtcss.cc
+           dcmrt/libsrc/drtdcs.cc
+           dcmrt/libsrc/drtdias.cc
+           dcmrt/libsrc/drtdimcs.cc
+           dcmrt/libsrc/drtdimrs.cc
+           dcmrt/libsrc/drtdirs.cc
+           dcmrt/libsrc/drtdose.cc
+           dcmrt/libsrc/drtdrs.cc
+           dcmrt/libsrc/drtds.cc
+           dcmrt/libsrc/drtdspcs.cc
+           dcmrt/libsrc/drtdss.cc
+           dcmrt/libsrc/drtdvhs.cc
+           dcmrt/libsrc/drtdvrrs.cc
+           dcmrt/libsrc/drteas.cc
+           dcmrt/libsrc/drtecs.cc
+           dcmrt/libsrc/drtes.cc
+           dcmrt/libsrc/drtfds.cc
+           dcmrt/libsrc/drtfes.cc
+           dcmrt/libsrc/drtfgs.cc
+           dcmrt/libsrc/drtfgss.cc
+           dcmrt/libsrc/drtfms.cc
+           dcmrt/libsrc/drtfsss.cc
+           dcmrt/libsrc/drtgas.cc
+           dcmrt/libsrc/drthsdrs.cc
+           dcmrt/libsrc/drtiais.cc
+           dcmrt/libsrc/drtians.cc
+           dcmrt/libsrc/drtiblds.cc
+           dcmrt/libsrc/drtibls.cc
+           dcmrt/libsrc/drtibs.cc
+           dcmrt/libsrc/drticpds.cc
+           dcmrt/libsrc/drticps.cc
+           dcmrt/libsrc/drtics.cc
+           dcmrt/libsrc/drtiis.cc
+           dcmrt/libsrc/drtimage.cc
+           dcmrt/libsrc/drtionpl.cc
+           dcmrt/libsrc/drtiontr.cc
+           dcmrt/libsrc/drtipiqs.cc
+           dcmrt/libsrc/drtircs.cc
+           dcmrt/libsrc/drtiseis.cc
+           dcmrt/libsrc/drtitts.cc
+           dcmrt/libsrc/drtiwps.cc
+           dcmrt/libsrc/drtiws.cc
+           dcmrt/libsrc/drtlsds.cc
+           dcmrt/libsrc/drtlsds6.cc
+           dcmrt/libsrc/drtlsds7.cc
+           dcmrt/libsrc/drtmacds.cc
+           dcmrt/libsrc/drtmas.cc
+           dcmrt/libsrc/drtmdrs.cc
+           dcmrt/libsrc/drtmls.cc
+           dcmrt/libsrc/drtmps.cc
+           dcmrt/libsrc/drtmss.cc
+           dcmrt/libsrc/drtmucs.cc
+           dcmrt/libsrc/drtoas.cc
+           dcmrt/libsrc/drtois.cc
+           dcmrt/libsrc/drtopis.cc
+           dcmrt/libsrc/drtos.cc
+           dcmrt/libsrc/drtpbcs.cc
+           dcmrt/libsrc/drtpcs.cc
+           dcmrt/libsrc/drtpcxs.cc
+           dcmrt/libsrc/drtpdecs.cc
+           dcmrt/libsrc/drtpfms.cc
+           dcmrt/libsrc/drtpics.cc
+           dcmrt/libsrc/drtplan.cc
+           dcmrt/libsrc/drtporcs.cc
+           dcmrt/libsrc/drtporis.cc
+           dcmrt/libsrc/drtppcs.cc
+           dcmrt/libsrc/drtprsis.cc
+           dcmrt/libsrc/drtpscs.cc
+           dcmrt/libsrc/drtpsics.cc
+           dcmrt/libsrc/drtpss.cc
+           dcmrt/libsrc/drtpsss.cc
+           dcmrt/libsrc/drtpvis.cc
+           dcmrt/libsrc/drtqds.cc
+           dcmrt/libsrc/drtras.cc
+           dcmrt/libsrc/drtrbas2.cc
+           dcmrt/libsrc/drtrbas8.cc
+           dcmrt/libsrc/drtrbls.cc
+           dcmrt/libsrc/drtrbos1.cc
+           dcmrt/libsrc/drtrbos6.cc
+           dcmrt/libsrc/drtrbos7.cc
+           dcmrt/libsrc/drtrbs2.cc
+           dcmrt/libsrc/drtrbs4.cc
+           dcmrt/libsrc/drtrbs8.cc
+           dcmrt/libsrc/drtrcdrs.cc
+           dcmrt/libsrc/drtrcos.cc
+           dcmrt/libsrc/drtrcps.cc
+           dcmrt/libsrc/drtrcs.cc
+           dcmrt/libsrc/drtrdros.cc
+           dcmrt/libsrc/drtrdrs1.cc
+           dcmrt/libsrc/drtrdrs6.cc
+           dcmrt/libsrc/drtrdrs8.cc
+           dcmrt/libsrc/drtrds.cc
+           dcmrt/libsrc/drtrecs.cc
+           dcmrt/libsrc/drtrfgs.cc
+           dcmrt/libsrc/drtrfors.cc
+           dcmrt/libsrc/drtrics.cc
+           dcmrt/libsrc/drtrims.cc
+           dcmrt/libsrc/drtris.cc
+           dcmrt/libsrc/drtrlsds.cc
+           dcmrt/libsrc/drtrmdrs.cc
+           dcmrt/libsrc/drtrms.cc
+           dcmrt/libsrc/drtrmss6.cc
+           dcmrt/libsrc/drtrmss7.cc
+           dcmrt/libsrc/drtrpcs.cc
+           dcmrt/libsrc/drtrpis.cc
+           dcmrt/libsrc/drtrppcs.cc
+           dcmrt/libsrc/drtrpphs.cc
+           dcmrt/libsrc/drtrpps.cc
+           dcmrt/libsrc/drtrppss.cc
+           dcmrt/libsrc/drtrps.cc
+           dcmrt/libsrc/drtrris1.cc
+           dcmrt/libsrc/drtrris6.cc
+           dcmrt/libsrc/drtrris9.cc
+           dcmrt/libsrc/drtrrms.cc
+           dcmrt/libsrc/drtrros.cc
+           dcmrt/libsrc/drtrrpcs.cc
+           dcmrt/libsrc/drtrrros.cc
+           dcmrt/libsrc/drtrrs.cc
+           dcmrt/libsrc/drtrrshs.cc
+           dcmrt/libsrc/drtrrtps.cc
+           dcmrt/libsrc/drtrrtps3.cc
+           dcmrt/libsrc/drtrrtps4.cc
+           dcmrt/libsrc/drtrrtps5.cc
+           dcmrt/libsrc/drtrscs.cc
+           dcmrt/libsrc/drtrsers.cc
+           dcmrt/libsrc/drtrses.cc
+           dcmrt/libsrc/drtrshs.cc
+           dcmrt/libsrc/drtrshs6.cc
+           dcmrt/libsrc/drtrshs7.cc
+           dcmrt/libsrc/drtrsis.cc
+           dcmrt/libsrc/drtrsns.cc
+           dcmrt/libsrc/drtrsos.cc
+           dcmrt/libsrc/drtrsrs.cc
+           dcmrt/libsrc/drtrss.cc
+           dcmrt/libsrc/drtrsss.cc
+           dcmrt/libsrc/drtrsts.cc
+           dcmrt/libsrc/drtrtrs2.cc
+           dcmrt/libsrc/drtrtrs4.cc
+           dcmrt/libsrc/drtrvis.cc
+           dcmrt/libsrc/drtrws.cc
+           dcmrt/libsrc/drtrwvms.cc
+           dcmrt/libsrc/drtscris.cc
+           dcmrt/libsrc/drtsdcs.cc
+           dcmrt/libsrc/drtsds.cc
+           dcmrt/libsrc/drtshds.cc
+           dcmrt/libsrc/drtsis.cc
+           dcmrt/libsrc/drtsns.cc
+           dcmrt/libsrc/drtspccs.cc
+           dcmrt/libsrc/drtspcs.cc
+           dcmrt/libsrc/drtss.cc
+           dcmrt/libsrc/drtssrs.cc
+           dcmrt/libsrc/drtstrct.cc
+           dcmrt/libsrc/drttms0.cc
+           dcmrt/libsrc/drttms9.cc
+           dcmrt/libsrc/drttreat.cc
+           dcmrt/libsrc/drttscds.cc
+           dcmrt/libsrc/drttsibs.cc
+           dcmrt/libsrc/drttsmds.cc
+           dcmrt/libsrc/drttts.cc
+           dcmrt/libsrc/drtvls.cc
+           dcmrt/libsrc/drtwps.cc
+           dcmrt/libsrc/drtwrs.cc
+           dcmrt/libsrc/drtwrsrs.cc
+           dcmrt/libsrc/drtws.cc
+           dcmrt/libsrc/drtxrs.cc
+           dcmrt/tests/Makefile.dep
+
+- Fixed typo in comments.
+  Affects: dcmimgle/include/dcmtk/dcmimgle/dimoopxt.h
+
+**** Changes from 2016.10.04 (riesmeier)
+
+- Updated Context Group classes for DICOM 2016d:
+  Updated automatically generated Context Group classes for the 2016d
+  edition of the DICOM standard. There were no changes to the supported
+  Context Groups.
+  Affects: dcmsr/include/dcmtk/dcmsr/cmr/cid100.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid10013.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid10033.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid11.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid244.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid29.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid4020.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid4021.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid4031.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid42.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid6147.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7021.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7181.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7445.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7452.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7453.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7464.h
+           dcmsr/include/dcmtk/dcmsr/cmr/cid7469.h
+           dcmsr/libcmr/cid100.cc
+           dcmsr/libcmr/cid10013.cc
+           dcmsr/libcmr/cid10033.cc
+           dcmsr/libcmr/cid11.cc
+           dcmsr/libcmr/cid244.cc
+           dcmsr/libcmr/cid29.cc
+           dcmsr/libcmr/cid4020.cc
+           dcmsr/libcmr/cid4021.cc
+           dcmsr/libcmr/cid4031.cc
+           dcmsr/libcmr/cid42.cc
+           dcmsr/libcmr/cid6147.cc
+           dcmsr/libcmr/cid7021.cc
+           dcmsr/libcmr/cid7181.cc
+           dcmsr/libcmr/cid7445.cc
+           dcmsr/libcmr/cid7452.cc
+           dcmsr/libcmr/cid7453.cc
+           dcmsr/libcmr/cid7464.cc
+           dcmsr/libcmr/cid7469.cc
+
+- Updated code definitions for DICOM 2016d:
+  Updated automatically generated code definitions for coding scheme "DCM",
+  "NCIt" and "UMLS" for the 2016d edition of the DICOM standard.
+  Affects: dcmsr/include/dcmtk/dcmsr/codes/dcm.h
+           dcmsr/include/dcmtk/dcmsr/codes/ncit.h
+           dcmsr/include/dcmtk/dcmsr/codes/umls.h
+
+- Update data dictionary for DICOM 2016d.
+  Affects: dcmdata/data/dicom.dic
+           dcmdata/include/dcmtk/dcmdata/dcdeftag.h
+           dcmdata/libsrc/dcdictbi.cc
+
+**** Changes from 2016.10.04 (schlamelcher)
+
+- Fixed a problem in OFtuple's constructor:
+  GCC 6.2.1 wasn't able to compile OFtuple's constructor, which is fixed in
+  this commit.
+  Affects: ofstd/include/dcmtk/ofstd/oftuple.h
+
+**** Changes from 2016.09.22 (riesmeier)
+
+- Added new DCMTK modules "dcmtract" and "dcmpmap":
+  These two (still pretty new) modules were missing in the README file.
+  Also updated description of "dcmsr" module in order to be consistent
+  with the Doxygen file.
+  Affects: README
+
+**** Changes from 2016.09.21 (onken)
+
+- Make Manufacturer type 2, consistency fixes:
+  Thanks to Jörg Riesmeier for the hint and proposed patch.
+  Affects: dcmiod/include/dcmtk/dcmiod/modenhequipment.h
+           dcmiod/include/dcmtk/dcmiod/modequipment.h
+           dcmiod/libsrc/modenhequipment.cc
+           dcmiod/libsrc/modequipment.cc
+
+**** Changes from 2016.09.20 (riesmeier)
+
+- Disable two test cases when building shared libs:
+  Temporarily disable two new test cases when building shared libraries
+  because of unresolvable linker errors (static member "EmptyItem" not
+  found).
+  See DCMTK Bug #694.
+  Affects: dcmsr/tests/Makefile.dep
+           dcmsr/tests/tsrlist.cc
+
+**** Changes from 2016.09.19 (riesmeier)
+
+- Fixed compiler warnings on unused variables:
+  Fixed compiler warnings on unused variables reported by Visual Studio 2010.
+  Affects: dcmjpls/libcharls/intrface.cc
+
+- Fixed linker errors on non-gcc platforms:
+  Fixed linker errors on non-gcc platforms that occurred after adding new
+  "dcmsr" test cases (which make use of the class DSRListOfItems).
+  Affects: dcmsr/tests/tsrlist.cc
+
+**** Changes from 2016.09.17 (riesmeier)
+
+- Added missing source file (new test cases):
+  Added new source file that was missing for the previous commit.
+  Added:   dcmsr/tests/tsrlist.cc
+
+**** Changes from 2016.09.16 (hasenpusch)
+
+- Fixed include paths in DCMTK's package config file:
+  Fixed exporting wrong module include paths inside generated DCMTKConfig.cmake.
+  The specified module include paths went two levels too deep into the folder
+  hierarchy, leading to system include shadowing under certain circumstances.
+  This fixes DCMTK bug #692.
+  Thanks to forum user jakecobb for reporting this bug.
+  Affects: CMake/DCMTKConfig.cmake.in
+
+**** Changes from 2016.09.16 (riesmeier)
+
+- Enhanced template class DSRListOfItems:
+  Added new methods addItems() and getItems() to the template class
+  DSRListOfItems. These new methods expect a vector as a parameter
+  and thus allow for adding/getting multiple items with a single call.
+  Closes DCMTK Feature #572.
+  Affects: dcmsr/include/dcmtk/dcmsr/dsrtlist.h
+           dcmsr/tests/CMakeLists.txt
+           dcmsr/tests/Makefile.in
+           dcmsr/tests/tests.cc
+
+**** Changes from 2016.09.15 (schlamelcher)
+
+- Further fixes for OFvariant:
+  OFvariant's copy constructor and assignment operator are now disabled for
+  types that can not be converted to one of the variant's alternatives (using
+  OFenable_if).
+  Fixed OFvariant's fallback implementation for systems that do not provide
+  memory alignment facilities.
+  Affects: ofstd/include/dcmtk/ofstd/variadic/variant.h
+
+**** Changes from 2016.09.14 (riesmeier)
+
+- Fixed minor issues in modules' documentation:
+  Fixed minor issues in modules' documentation of "dcmpmap" und "dcmtract".
+  Some of these are related to Doxygen (the tool that is used for generating
+  the rendered output) and some have been fixed for reasons of consistency
+  with other DCMTK modules.
+  Affects: dcmpmap/docs/dcmpmap.dox
+           dcmtract/docs/dcmtract.dox
+
+**** Changes from 2016.09.14 (schlamelcher)
+
+- Fixes for OFvariant, dcmiod, dcmseg and dcmpmap:
+  Removed DLL export macros from several template classes as this does not seem
+  to work for templates.
+  Introduced a workaround for older C++ compilers regarding base class
+  definitions in derived classes, e.g. OFvariant<int,char> will not be available
+  as OFvariant (without the template parameters) in derived classes on these
+  compilers. OFvariant and DcmIODImage now define the types 'variant' and
+  'IODImage' resp. instead, which may be used in derived classes for referring
+  to the resp. base class or one of its methods etc.
+  Affects: dcmiod/include/dcmtk/dcmiod/iodimage.h
+           dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h
+           dcmpmap/libsrc/dpmparametricmapbase.cc
+           dcmseg/libsrc/segdoc.cc
+           ofstd/include/dcmtk/ofstd/variadic/variant.h
+
+**** Changes from 2016.09.13 (schlamelcher)
+
+- Trying possible fix for OFvariant vs DLLs.
+  Affects: ofstd/include/dcmtk/ofstd/ofutil.h
+           ofstd/libsrc/ofstd.cc
+
+**** Changes from 2016.09.12 (riesmeier)
+
+- Updated coding scheme designator (CP-1567):
+  Updated coding scheme designator for CID 5000 (Languages) based on recently
+  approved CP-1567: The designator changed from "IETF4646" to "RFC5646".
+  Affects: dcmsr/include/dcmtk/dcmsr/cmr/cid5000.h
+           dcmsr/libcmr/cid5000.cc
+
+- Added support for recently approved CPs:
+  Added support for CP-1418 and CP-1586 to the data dictionary.
+  These CPs were approved during last week's DICOM WG-06 t-con.
+  Also fixed an attribute name change in "dcmrt" due to retirement.
+  Affects: dcmdata/data/dicom.dic
+           dcmdata/include/dcmtk/dcmdata/dcdeftag.h
+           dcmdata/libsrc/dcdictbi.cc
+           dcmrt/libsrc/drtarics.cc
+
+- Added support for new UIDs from Supplement 121:
+  Added support for new Storage and Query/Retrieve SOP Class UIDs from
+  Supplement 121 (CT Protocol Storage).
+  Affects: dcmdata/include/dcmtk/dcmdata/dcuid.h
+           dcmdata/libsrc/dcuid.cc
+           dcmnet/docs/movescu.man
+           dcmnet/docs/storescp.man
+           dcmnet/etc/storescp.cfg
+           dcmnet/etc/storescu.cfg
+           dcmqrdb/docs/dcmqrscp.man
+
+- Added support for Supplement 121 to dictionary:
+  Added support for the final text version of Supplement 121 (CT Protocol
+  Storage) to the data dictionary.
+  Affects: dcmdata/data/dicom.dic
+           dcmdata/include/dcmtk/dcmdata/dcdeftag.h
+           dcmdata/libsrc/dcdictbi.cc
+
+**** Changes from 2016.09.10 (onken)
+
+- Corrected value checking and setters for VM > 1:
+  Some value checks have been filling the VM parameter incorrectly by providing
+  the value type (like "1C") instead, leading to an error if value checking is
+  not disabled.
+  Thanks to Andrey Fedorov <andrey.fedorov at gmail.com> for the bug report.
+  Also, some type of values (e.g. Floating Point Value) allow more than one
+  value which is now possible using an optional parameter in the related setter()
+  method.
+  Affects: dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h
+           dcmiod/libsrc/iodcontentitemmacro.cc
+
+**** Changes from 2016.09.05 (onken)
+
+- Fixed typos and other enhancements.
+  Affects: dcmpmap/docs/dcmpmap.dox
+
+**** Changes from 2016.09.02 (onken)
+
+- Make sure setValueType() sets correct string value:
+  Due to a copy/paste error setValueType() has constantly set the value "CODE"
+  instead of the value provided by the user.
+  Affects: dcmiod/libsrc/iodcontentitemmacro.cc
+
+**** Changes from 2016.09.01 (onken)
+
+- Remove default value for first parameter:
+  Remove default value for first method parameter in constructor
+  since otherwise Visual Studio moans that it overlaps with the
+  default constructor (which is undefined and private, though).
+  Affects: dcmiod/include/dcmtk/dcmiod/iodmacro.h
+
+- Introduced new module dcmpmap for Parametric Maps:
+  The new dcmpmap module offers an API for creation, loading, accessing and
+  saving DICOM Parametric Map objects as introduced in DICOM Supplement 172.
+  All binary data types supported by the standard (16 bit signed and unsigned
+  integer as well as 32 bit and 64 bit floating point data) are handled by the
+  library.
+  Acknowledgement: This work has been supported in part by the "QIICR" project.
+  QIICR is supported by NIH National Cancer Institute, award U24 CA180918.
+  Added:   dcmfg/include/dcmtk/dcmfg/fgframeanatomy.h
+           dcmfg/include/dcmtk/dcmfg/fgidentpixeltransform.h
+           dcmfg/include/dcmtk/dcmfg/fgparametricmapframetype.h
+           dcmfg/libsrc/fgframeanatomy.cc
+           dcmfg/libsrc/fgidentpixeltransform.cc
+           dcmfg/libsrc/fgparametricmapframetype.cc
+           dcmiod/include/dcmtk/dcmiod/iodcontentitemmacro.h
+           dcmiod/include/dcmtk/dcmiod/modfloatingpointimagepixel.h
+           dcmiod/include/dcmtk/dcmiod/modimagepixelbase.h
+           dcmiod/include/dcmtk/dcmiod/modimagepixelvariant.h
+           dcmiod/libsrc/iodcontentitemmacro.cc
+           dcmiod/libsrc/modfloatingpointimagepixel.cc
+           dcmiod/libsrc/modimagepixelbase.cc
+           dcmiod/tests/timagepixel.cc
+           dcmpmap/CMakeLists.txt
+           dcmpmap/Makefile.in
+           dcmpmap/configure
+           dcmpmap/data/Makefile.in
+           dcmpmap/docs/Makefile.in
+           dcmpmap/docs/dcmpmap.dox
+           dcmpmap/etc/Makefile.in
+           dcmpmap/include/CMakeLists.txt
+           dcmpmap/include/Makefile.in
+           dcmpmap/include/dcmtk/dcmpmap/dpmdef.h
+           dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapimage.h
+           dcmpmap/include/dcmtk/dcmpmap/dpmmodparametricmapseries.h
+           dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapbase.h
+           dcmpmap/include/dcmtk/dcmpmap/dpmparametricmapiod.h
+           dcmpmap/include/dcmtk/dcmpmap/dpmtypes.h
+           dcmpmap/libsrc/CMakeLists.txt
+           dcmpmap/libsrc/Makefile.dep
+           dcmpmap/libsrc/Makefile.in
+           dcmpmap/libsrc/dpmmodparametricmapimage.cc
+           dcmpmap/libsrc/dpmmodparametricmapseries.cc
+           dcmpmap/libsrc/dpmparametricmapbase.cc
+           dcmpmap/libsrc/dpmparametricmapiod.cc
+           dcmpmap/libsrc/dpmtypes.cc
+           dcmpmap/tests/Makefile.dep
+           dcmpmap/tests/Makefile.in
+           ofstd/include/dcmtk/ofstd/ofvriant.h
+           ofstd/include/dcmtk/ofstd/variadic/helpers.h
+           ofstd/include/dcmtk/ofstd/variadic/variant.h
+           ofstd/tests/tvariant.cc
+  Removed: dcmiod/libsrc/iodimage.cc
+  Affects: CMakeLists.txt
+           Makefile
+           config/modules
+           dcmdata/include/dcmtk/dcmdata/dcerror.h
+           dcmfg/include/dcmtk/dcmfg/fgderimg.h
+           dcmfg/include/dcmtk/dcmfg/fgfracon.h
+           dcmfg/include/dcmtk/dcmfg/fginterface.h
+           dcmfg/include/dcmtk/dcmfg/fgrealworldvaluemapping.h
+           dcmfg/include/dcmtk/dcmfg/fgtypes.h
+           dcmfg/include/dcmtk/dcmfg/stack.h
+           dcmfg/libsrc/CMakeLists.txt
+           dcmfg/libsrc/Makefile.dep
+           dcmfg/libsrc/fgbase.cc
+           dcmfg/libsrc/fgderimg.cc
+           dcmfg/libsrc/fgfact.cc
+           dcmfg/libsrc/fgfracon.cc
+           dcmfg/libsrc/fgframevoilut.cc
+           dcmfg/libsrc/fgimagedatatype.cc
+           dcmfg/libsrc/fginterface.cc
+           dcmfg/libsrc/fgpixmsr.cc
+           dcmfg/libsrc/fgplanor.cc
+           dcmfg/libsrc/fgplanorvol.cc
+           dcmfg/libsrc/fgplanpo.cc
+           dcmfg/libsrc/fgplanposvol.cc
+           dcmfg/libsrc/fgrealworldvaluemapping.cc
+           dcmfg/libsrc/fgseg.cc
+           dcmfg/libsrc/fgtypes.cc
+           dcmfg/libsrc/fgusimagedescription.cc
+           dcmiod/include/dcmtk/dcmiod/iodcommn.h
+           dcmiod/include/dcmtk/dcmiod/iodimage.h
+           dcmiod/include/dcmtk/dcmiod/iodmacro.h
+           dcmiod/include/dcmtk/dcmiod/iodutil.h
+           dcmiod/include/dcmtk/dcmiod/modbase.h
+           dcmiod/include/dcmtk/dcmiod/modcommoninstanceref.h
+           dcmiod/include/dcmtk/dcmiod/modenhequipment.h
+           dcmiod/include/dcmtk/dcmiod/modequipment.h
+           dcmiod/include/dcmtk/dcmiod/modfor.h
+           dcmiod/include/dcmtk/dcmiod/modimagepixel.h
+           dcmiod/include/dcmtk/dcmiod/modmultiframedimension.h
+           dcmiod/include/dcmtk/dcmiod/modsynchronisation.h
+           dcmiod/libsrc/CMakeLists.txt
+           dcmiod/libsrc/Makefile.dep
+           dcmiod/libsrc/Makefile.in
+           dcmiod/libsrc/iodcommn.cc
+           dcmiod/libsrc/iodmacro.cc
+           dcmiod/libsrc/modbase.cc
+           dcmiod/libsrc/modcommoninstanceref.cc
+           dcmiod/libsrc/modenhequipment.cc
+           dcmiod/libsrc/modequipment.cc
+           dcmiod/libsrc/modfor.cc
+           dcmiod/libsrc/modimagepixel.cc
+           dcmiod/libsrc/modmultiframedimension.cc
+           dcmiod/libsrc/modmultiframefg.cc
+           dcmiod/libsrc/modsynchronization.cc
+           dcmiod/libsrc/modusfor.cc
+           dcmiod/tests/CMakeLists.txt
+           dcmiod/tests/Makefile.dep
+           dcmiod/tests/Makefile.in
+           dcmiod/tests/tests.cc
+           dcmnet/libsrc/dstorscu.cc
+           dcmseg/include/dcmtk/dcmseg/segdoc.h
+           dcmseg/libsrc/Makefile.dep
+           dcmseg/libsrc/segdoc.cc
+           dcmtract/libsrc/Makefile.dep
+           doxygen/htmldocs.dox
+           ofstd/include/dcmtk/ofstd/oftraits.h
+           ofstd/include/dcmtk/ofstd/ofutil.h
+           ofstd/libsrc/Makefile.dep
+           ofstd/libsrc/ofstd.cc
+           ofstd/tests/CMakeLists.txt
+           ofstd/tests/Makefile.dep
+           ofstd/tests/Makefile.in
+           ofstd/tests/tests.cc
+
+**** Changes from 2016.08.23 (riesmeier)
+
+- Fixed typos in comments and log output.
+  Affects: config/Makefile.def.in
+           dcmnet/libsrc/dulparse.cc
+
+**** Changes from 2016.08.22 (onken)
+
+- Optimized iterator usage to speed up execution.
+  Affects: dcmfg/libsrc/fg.cc
+           dcmfg/libsrc/fginterface.cc
+
+**** Changes from 2016.08.06 (onken)
+
+- Updated copyright.
+  Affects: dcmiod/include/dcmtk/dcmiod/iodcommn.h
+           dcmiod/libsrc/iodcommn.cc
+
+- Create SourceImageItem from DcmDataset as input:
+  Thanks to Christian Herz <cherz at bwh.harvard.edu> for the suggested patch.
+  Affects: dcmfg/include/dcmtk/dcmfg/fgderimg.h
+           dcmfg/libsrc/fgderimg.cc
+
+- Moved import..() functionality into IODCommon:
+  Moved import...() into base class of IOD classes in order to make it usable
+  from all derived IOD implementations, e.g. Segmentation IOD in dcmseg, which
+  directly offered this function before, and Parametric Maps IOD in dcmpmap.
+  Affects: dcmiod/include/dcmtk/dcmiod/iodcommn.h
+           dcmiod/libsrc/iodcommn.cc
+           dcmseg/include/dcmtk/dcmseg/segdoc.h
+           dcmseg/libsrc/segdoc.cc
+
+**** Changes from 2016.08.03 (onken)
+
+- Switched VR and VM in comment.
+  Affects: dcmiod/include/dcmtk/dcmiod/modgeneralstudy.h
+
+**** Changes from 2016.07.27 (riesmeier)
+
+- Fixed warnings with Clang -Wparentheses-equality:
+  Fixed warnings reported by Clang compiler, which uses -Wparentheses-equality
+  by default, i.e. removed extraneous parentheses around equality comparison.
+  Also fixed various typos in comments.
+  Affects: dcmjpeg/libsrc/djcodece.cc
+
+**** Changes from 2016.07.25 (riesmeier)
+
+- Added explicit type cast to avoid warning:
+  Added explicit typecast to a parameter value in order to avoid a warning
+  reported by MSVC++ on Windows 64-bit systems.
+  Affects: dcmimgle/libsrc/dimoimg.cc
+
+- Changed type of local variable to avoid warning:
+  Changed type of local variable from size_t to unsigned long in order to
+  avoid a warning reported by MSVC++ on Windows 64-bit systems.
+  Affects: dcmjpeg/libsrc/ddpiimpl.cc
+
+**** Changes from 2016.07.19 (hasenpusch)
+
+- Fixed and refactored mutex & rwlock tests:
+  Made sure thread 2 starts after thread 1 claims the first lock.
+  Closes DCMTK bug #689.
+  Affects: ofstd/tests/tthread.cc
+
+**** Changes from 2016.07.18 (riesmeier)
+
+- Fixed typos in comments.
+  Affects: dcmsr/include/dcmtk/dcmsr/dsrsoprf.h
+           dcmsr/libcmr/cid5000.cc
+           oflog/include/dcmtk/oflog/oflog.h
+           oflog/libsrc/oflog.cc
+
+**** Changes from 2016.07.08 (hasenpusch)
+
+- Fixed potential buffer overflow in libcharls:
+  Libcharls' encoding facility now reallocates the given target buffer if
+  the initial capacity happens to be too small.
+  Closes DCMTK bug #688.
+  Affects: dcmjpls/libcharls/decodstr.h
+           dcmjpls/libcharls/encodstr.h
+           dcmjpls/libcharls/header.cc
+           dcmjpls/libcharls/intrface.cc
+           dcmjpls/libcharls/intrface.h
+           dcmjpls/libcharls/pubtypes.h
+           dcmjpls/libcharls/scan.h
+           dcmjpls/libcharls/streams.h
+           dcmjpls/libcharls/util.h
+           dcmjpls/libsrc/djcodece.cc
+
 **** Changes from 2016.06.30 (schlamelcher)
 
 - Updated CHANGES.361 for new development snapshot.
diff --git a/doxygen/htmldocs.cfg b/doxygen/htmldocs.cfg
index 5e869a6..84d0e40 100644
--- a/doxygen/htmldocs.cfg
+++ b/doxygen/htmldocs.cfg
@@ -38,7 +38,7 @@ PROJECT_NAME           = DCMTK
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = "Version @DCMTK_VERSION@ 20160630"
+PROJECT_NUMBER         = "Version @DCMTK_VERSION@ 20161102"
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
diff --git a/doxygen/htmldocs.dox b/doxygen/htmldocs.dox
index 770d447..b4ecff7 100644
--- a/doxygen/htmldocs.dox
+++ b/doxygen/htmldocs.dox
@@ -17,6 +17,7 @@ DCMTK contains the following sub-packages, each in its own sub-directory:
 \li \ref mod_dcmjpeg
 \li \ref mod_dcmjpls
 \li \ref mod_dcmnet
+\li \ref mod_dcmpmap
 \li \ref mod_dcmpstat
 \li \ref mod_dcmqrdb
 \li \ref mod_dcmrt
diff --git a/doxygen/manpages.cfg b/doxygen/manpages.cfg
index 668ff43..0ff393e 100644
--- a/doxygen/manpages.cfg
+++ b/doxygen/manpages.cfg
@@ -38,7 +38,7 @@ PROJECT_NAME           = "OFFIS DCMTK"
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
-PROJECT_NUMBER         = "@DCMTK_VERSION@ 20160630"
+PROJECT_NUMBER         = "@DCMTK_VERSION@ 20161102"
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
diff --git a/doxygen/manpages/man1/dcm2pdf.1 b/doxygen/manpages/man1/dcm2pdf.1
index d3c602c..39d1209 100644
--- a/doxygen/manpages/man1/dcm2pdf.1
+++ b/doxygen/manpages/man1/dcm2pdf.1
@@ -1,4 +1,4 @@
-.TH "dcm2pdf" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcm2pdf" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcm2pdf \- Extract PDF file from DICOM encapsulated PDF
diff --git a/doxygen/manpages/man1/dcm2pnm.1 b/doxygen/manpages/man1/dcm2pnm.1
index 2616a6c..9b3f16d 100644
--- a/doxygen/manpages/man1/dcm2pnm.1
+++ b/doxygen/manpages/man1/dcm2pnm.1
@@ -1,4 +1,4 @@
-.TH "dcm2pnm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcm2pnm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcm2pnm \- Convert DICOM images to PGM/PPM, PNG, TIFF or BMP
diff --git a/doxygen/manpages/man1/dcm2xml.1 b/doxygen/manpages/man1/dcm2xml.1
index 67efbe6..cc1eaac 100644
--- a/doxygen/manpages/man1/dcm2xml.1
+++ b/doxygen/manpages/man1/dcm2xml.1
@@ -1,4 +1,4 @@
-.TH "dcm2xml" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcm2xml" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcm2xml \- Convert DICOM file and data set to XML
diff --git a/doxygen/manpages/man1/dcmcjpeg.1 b/doxygen/manpages/man1/dcmcjpeg.1
index 58345cf..e9b4d6e 100644
--- a/doxygen/manpages/man1/dcmcjpeg.1
+++ b/doxygen/manpages/man1/dcmcjpeg.1
@@ -1,4 +1,4 @@
-.TH "dcmcjpeg" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmcjpeg" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmcjpeg \- Encode DICOM file to JPEG transfer syntax
diff --git a/doxygen/manpages/man1/dcmcjpls.1 b/doxygen/manpages/man1/dcmcjpls.1
index ca50467..6e5ed70 100644
--- a/doxygen/manpages/man1/dcmcjpls.1
+++ b/doxygen/manpages/man1/dcmcjpls.1
@@ -1,4 +1,4 @@
-.TH "dcmcjpls" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmcjpls" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmcjpls \- Encode DICOM file to JPEG-LS transfer syntax
diff --git a/doxygen/manpages/man1/dcmconv.1 b/doxygen/manpages/man1/dcmconv.1
index 5f9fa60..ef5b2d0 100644
--- a/doxygen/manpages/man1/dcmconv.1
+++ b/doxygen/manpages/man1/dcmconv.1
@@ -1,4 +1,4 @@
-.TH "dcmconv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmconv" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmconv \- Convert DICOM file encoding
diff --git a/doxygen/manpages/man1/dcmcrle.1 b/doxygen/manpages/man1/dcmcrle.1
index 3cf798e..d6e959a 100644
--- a/doxygen/manpages/man1/dcmcrle.1
+++ b/doxygen/manpages/man1/dcmcrle.1
@@ -1,4 +1,4 @@
-.TH "dcmcrle" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmcrle" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmcrle \- Encode DICOM file to RLE transfer syntax
diff --git a/doxygen/manpages/man1/dcmdjpeg.1 b/doxygen/manpages/man1/dcmdjpeg.1
index 38264e8..29d35e4 100644
--- a/doxygen/manpages/man1/dcmdjpeg.1
+++ b/doxygen/manpages/man1/dcmdjpeg.1
@@ -1,4 +1,4 @@
-.TH "dcmdjpeg" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmdjpeg" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmdjpeg \- Decode JPEG-compressed DICOM file
diff --git a/doxygen/manpages/man1/dcmdjpls.1 b/doxygen/manpages/man1/dcmdjpls.1
index 4e61ba5..6eaa71f 100644
--- a/doxygen/manpages/man1/dcmdjpls.1
+++ b/doxygen/manpages/man1/dcmdjpls.1
@@ -1,4 +1,4 @@
-.TH "dcmdjpls" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmdjpls" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmdjpls \- Decode JPEG-LS compressed DICOM file
diff --git a/doxygen/manpages/man1/dcmdrle.1 b/doxygen/manpages/man1/dcmdrle.1
index 8af08b0..2cf013c 100644
--- a/doxygen/manpages/man1/dcmdrle.1
+++ b/doxygen/manpages/man1/dcmdrle.1
@@ -1,4 +1,4 @@
-.TH "dcmdrle" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmdrle" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmdrle \- Decode RLE-compressed DICOM file
diff --git a/doxygen/manpages/man1/dcmdspfn.1 b/doxygen/manpages/man1/dcmdspfn.1
index ba9a84d..1ff9ad5 100644
--- a/doxygen/manpages/man1/dcmdspfn.1
+++ b/doxygen/manpages/man1/dcmdspfn.1
@@ -1,4 +1,4 @@
-.TH "dcmdspfn" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmdspfn" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmdspfn \- Export standard display curves to a text file
diff --git a/doxygen/manpages/man1/dcmdump.1 b/doxygen/manpages/man1/dcmdump.1
index fe755b2..e152cd9 100644
--- a/doxygen/manpages/man1/dcmdump.1
+++ b/doxygen/manpages/man1/dcmdump.1
@@ -1,4 +1,4 @@
-.TH "dcmdump" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmdump" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmdump \- Dump DICOM file and data set
diff --git a/doxygen/manpages/man1/dcmftest.1 b/doxygen/manpages/man1/dcmftest.1
index a0b2280..f38408c 100644
--- a/doxygen/manpages/man1/dcmftest.1
+++ b/doxygen/manpages/man1/dcmftest.1
@@ -1,4 +1,4 @@
-.TH "dcmftest" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmftest" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmftest \- Test if file uses DICOM part 10 format
diff --git a/doxygen/manpages/man1/dcmgpdir.1 b/doxygen/manpages/man1/dcmgpdir.1
index 27b8897..e751617 100644
--- a/doxygen/manpages/man1/dcmgpdir.1
+++ b/doxygen/manpages/man1/dcmgpdir.1
@@ -1,4 +1,4 @@
-.TH "dcmgpdir" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmgpdir" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmgpdir \- Create a general purpose DICOMDIR
diff --git a/doxygen/manpages/man1/dcmj2pnm.1 b/doxygen/manpages/man1/dcmj2pnm.1
index 7d628f7..c8e811d 100644
--- a/doxygen/manpages/man1/dcmj2pnm.1
+++ b/doxygen/manpages/man1/dcmj2pnm.1
@@ -1,4 +1,4 @@
-.TH "dcmj2pnm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmj2pnm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmj2pnm \- Convert DICOM images to PGM/PPM, PNG, TIFF, JPEG or BMP
diff --git a/doxygen/manpages/man1/dcml2pnm.1 b/doxygen/manpages/man1/dcml2pnm.1
index 45e8eac..6146f79 100644
--- a/doxygen/manpages/man1/dcml2pnm.1
+++ b/doxygen/manpages/man1/dcml2pnm.1
@@ -1,4 +1,4 @@
-.TH "dcml2pnm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcml2pnm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcml2pnm \- Convert DICOM images to PGM/PPM, PNG, TIFF or BMP
diff --git a/doxygen/manpages/man1/dcmmkcrv.1 b/doxygen/manpages/man1/dcmmkcrv.1
index 2ff7a1d..ba6b987 100644
--- a/doxygen/manpages/man1/dcmmkcrv.1
+++ b/doxygen/manpages/man1/dcmmkcrv.1
@@ -1,4 +1,4 @@
-.TH "dcmmkcrv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmmkcrv" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmmkcrv \- Add 2D curve data to image
diff --git a/doxygen/manpages/man1/dcmmkdir.1 b/doxygen/manpages/man1/dcmmkdir.1
index 2d152a6..9612f23 100644
--- a/doxygen/manpages/man1/dcmmkdir.1
+++ b/doxygen/manpages/man1/dcmmkdir.1
@@ -1,4 +1,4 @@
-.TH "dcmmkdir" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmmkdir" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmmkdir \- Create a DICOMDIR file
diff --git a/doxygen/manpages/man1/dcmmklut.1 b/doxygen/manpages/man1/dcmmklut.1
index 5b53dab..f9d8c59 100644
--- a/doxygen/manpages/man1/dcmmklut.1
+++ b/doxygen/manpages/man1/dcmmklut.1
@@ -1,4 +1,4 @@
-.TH "dcmmklut" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmmklut" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmmklut \- Create DICOM look-up tables
diff --git a/doxygen/manpages/man1/dcmodify.1 b/doxygen/manpages/man1/dcmodify.1
index 414f5fe..aa7233f 100644
--- a/doxygen/manpages/man1/dcmodify.1
+++ b/doxygen/manpages/man1/dcmodify.1
@@ -1,4 +1,4 @@
-.TH "dcmodify" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmodify" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmodify \- Modify DICOM files
diff --git a/doxygen/manpages/man1/dcmp2pgm.1 b/doxygen/manpages/man1/dcmp2pgm.1
index da0e53b..dd86de6 100644
--- a/doxygen/manpages/man1/dcmp2pgm.1
+++ b/doxygen/manpages/man1/dcmp2pgm.1
@@ -1,4 +1,4 @@
-.TH "dcmp2pgm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmp2pgm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmp2pgm \- Read DICOM image and presentation state and render bitmap
diff --git a/doxygen/manpages/man1/dcmprscp.1 b/doxygen/manpages/man1/dcmprscp.1
index cff018b..0cfc727 100644
--- a/doxygen/manpages/man1/dcmprscp.1
+++ b/doxygen/manpages/man1/dcmprscp.1
@@ -1,4 +1,4 @@
-.TH "dcmprscp" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmprscp" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmprscp \- DICOM basic grayscale print management SCP
diff --git a/doxygen/manpages/man1/dcmprscu.1 b/doxygen/manpages/man1/dcmprscu.1
index 298279e..f04e66d 100644
--- a/doxygen/manpages/man1/dcmprscu.1
+++ b/doxygen/manpages/man1/dcmprscu.1
@@ -1,4 +1,4 @@
-.TH "dcmprscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmprscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmprscu \- Print spooler for presentation state viewer
diff --git a/doxygen/manpages/man1/dcmpschk.1 b/doxygen/manpages/man1/dcmpschk.1
index dd3102f..58fd994 100644
--- a/doxygen/manpages/man1/dcmpschk.1
+++ b/doxygen/manpages/man1/dcmpschk.1
@@ -1,4 +1,4 @@
-.TH "dcmpschk" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmpschk" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmpschk \- Checking tool for presentation states
diff --git a/doxygen/manpages/man1/dcmpsmk.1 b/doxygen/manpages/man1/dcmpsmk.1
index c738149..b446d5b 100644
--- a/doxygen/manpages/man1/dcmpsmk.1
+++ b/doxygen/manpages/man1/dcmpsmk.1
@@ -1,4 +1,4 @@
-.TH "dcmpsmk" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmpsmk" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmpsmk \- Create DICOM grayscale softcopy presentation state
diff --git a/doxygen/manpages/man1/dcmpsprt.1 b/doxygen/manpages/man1/dcmpsprt.1
index cecf66c..d63081e 100644
--- a/doxygen/manpages/man1/dcmpsprt.1
+++ b/doxygen/manpages/man1/dcmpsprt.1
@@ -1,4 +1,4 @@
-.TH "dcmpsprt" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmpsprt" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmpsprt \- Read DICOM images and presentation states and render print job
diff --git a/doxygen/manpages/man1/dcmpsrcv.1 b/doxygen/manpages/man1/dcmpsrcv.1
index fc329a4..610fe05 100644
--- a/doxygen/manpages/man1/dcmpsrcv.1
+++ b/doxygen/manpages/man1/dcmpsrcv.1
@@ -1,4 +1,4 @@
-.TH "dcmpsrcv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmpsrcv" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmpsrcv \- Network receive for presentation state viewer
diff --git a/doxygen/manpages/man1/dcmpssnd.1 b/doxygen/manpages/man1/dcmpssnd.1
index cfd970b..c200656 100644
--- a/doxygen/manpages/man1/dcmpssnd.1
+++ b/doxygen/manpages/man1/dcmpssnd.1
@@ -1,4 +1,4 @@
-.TH "dcmpssnd" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmpssnd" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmpssnd \- Network send for presentation state viewer
diff --git a/doxygen/manpages/man1/dcmqridx.1 b/doxygen/manpages/man1/dcmqridx.1
index e02f750..52f000c 100644
--- a/doxygen/manpages/man1/dcmqridx.1
+++ b/doxygen/manpages/man1/dcmqridx.1
@@ -1,4 +1,4 @@
-.TH "dcmqridx" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmqridx" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmqridx \- Register a DICOM image file in an image database index file
diff --git a/doxygen/manpages/man1/dcmqrscp.1 b/doxygen/manpages/man1/dcmqrscp.1
index be00041..598ccd1 100644
--- a/doxygen/manpages/man1/dcmqrscp.1
+++ b/doxygen/manpages/man1/dcmqrscp.1
@@ -1,4 +1,4 @@
-.TH "dcmqrscp" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmqrscp" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmqrscp \- DICOM image archive (central test node)
@@ -740,6 +740,8 @@ LegacyConvertedEnhancedPETImageStorage               1.2.840.10008.5.1.4.1.1.128
 RETIRED_StandalonePETCurveStorage                    1.2.840.10008.5.1.4.1.1.129
 EnhancedPETImageStorage                              1.2.840.10008.5.1.4.1.1.130
 BasicStructuredDisplayStorage                        1.2.840.10008.5.1.4.1.1.131
+CTDefinedProcedureProtocolStorage                    1.2.840.10008.5.1.4.1.1.200.1
+CTPerformedProcedureProtocolStorage                  1.2.840.10008.5.1.4.1.1.200.2
 RTImageStorage                                       1.2.840.10008.5.1.4.1.1.481.1
 RTDoseStorage                                        1.2.840.10008.5.1.4.1.1.481.2
 RTStructureSetStorage                                1.2.840.10008.5.1.4.1.1.481.3
diff --git a/doxygen/manpages/man1/dcmqrti.1 b/doxygen/manpages/man1/dcmqrti.1
index 0b48e69..7b188f0 100644
--- a/doxygen/manpages/man1/dcmqrti.1
+++ b/doxygen/manpages/man1/dcmqrti.1
@@ -1,4 +1,4 @@
-.TH "dcmqrti" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmqrti" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmqrti \- The Terminal Initiator Telnet Client Program
diff --git a/doxygen/manpages/man1/dcmquant.1 b/doxygen/manpages/man1/dcmquant.1
index 4dcfd99..ef82e11 100644
--- a/doxygen/manpages/man1/dcmquant.1
+++ b/doxygen/manpages/man1/dcmquant.1
@@ -1,4 +1,4 @@
-.TH "dcmquant" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmquant" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmquant \- Convert DICOM color images to palette color
diff --git a/doxygen/manpages/man1/dcmrecv.1 b/doxygen/manpages/man1/dcmrecv.1
index bc2d224..3731924 100644
--- a/doxygen/manpages/man1/dcmrecv.1
+++ b/doxygen/manpages/man1/dcmrecv.1
@@ -1,4 +1,4 @@
-.TH "dcmrecv" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmrecv" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmrecv \- Simple DICOM storage SCP (receiver)
diff --git a/doxygen/manpages/man1/dcmscale.1 b/doxygen/manpages/man1/dcmscale.1
index 77b73e1..831e656 100644
--- a/doxygen/manpages/man1/dcmscale.1
+++ b/doxygen/manpages/man1/dcmscale.1
@@ -1,4 +1,4 @@
-.TH "dcmscale" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmscale" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmscale \- Scale DICOM images
diff --git a/doxygen/manpages/man1/dcmsend.1 b/doxygen/manpages/man1/dcmsend.1
index 2d04ec1..c29db11 100644
--- a/doxygen/manpages/man1/dcmsend.1
+++ b/doxygen/manpages/man1/dcmsend.1
@@ -1,4 +1,4 @@
-.TH "dcmsend" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmsend" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmsend \- Simple DICOM storage SCU (sender)
diff --git a/doxygen/manpages/man1/dcmsign.1 b/doxygen/manpages/man1/dcmsign.1
index 53e718b..2b25d81 100644
--- a/doxygen/manpages/man1/dcmsign.1
+++ b/doxygen/manpages/man1/dcmsign.1
@@ -1,4 +1,4 @@
-.TH "dcmsign" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcmsign" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcmsign \- Sign and Verify DICOM Files
diff --git a/doxygen/manpages/man1/dcod2lum.1 b/doxygen/manpages/man1/dcod2lum.1
index aec7f54..a15317c 100644
--- a/doxygen/manpages/man1/dcod2lum.1
+++ b/doxygen/manpages/man1/dcod2lum.1
@@ -1,4 +1,4 @@
-.TH "dcod2lum" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dcod2lum" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dcod2lum \- Convert hardcopy characteristic curve file to softcopy format
diff --git a/doxygen/manpages/man1/dconvlum.1 b/doxygen/manpages/man1/dconvlum.1
index 93d71b8..e15eeaa 100644
--- a/doxygen/manpages/man1/dconvlum.1
+++ b/doxygen/manpages/man1/dconvlum.1
@@ -1,4 +1,4 @@
-.TH "dconvlum" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dconvlum" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dconvlum \- Convert VeriLUM files to DCMTK display files
diff --git a/doxygen/manpages/man1/drtdump.1 b/doxygen/manpages/man1/drtdump.1
index 69bc3bd..fd92e0d 100644
--- a/doxygen/manpages/man1/drtdump.1
+++ b/doxygen/manpages/man1/drtdump.1
@@ -1,4 +1,4 @@
-.TH "drtdump" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "drtdump" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 drtdump \- Dump DICOM RT file and data set
diff --git a/doxygen/manpages/man1/dsr2html.1 b/doxygen/manpages/man1/dsr2html.1
index 6471461..c4b3909 100644
--- a/doxygen/manpages/man1/dsr2html.1
+++ b/doxygen/manpages/man1/dsr2html.1
@@ -1,4 +1,4 @@
-.TH "dsr2html" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dsr2html" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dsr2html \- Render DICOM SR file and data set to HTML/XHTML
diff --git a/doxygen/manpages/man1/dsr2xml.1 b/doxygen/manpages/man1/dsr2xml.1
index 49b116c..96a6226 100644
--- a/doxygen/manpages/man1/dsr2xml.1
+++ b/doxygen/manpages/man1/dsr2xml.1
@@ -1,4 +1,4 @@
-.TH "dsr2xml" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dsr2xml" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dsr2xml \- Convert DICOM SR file and data set to XML
diff --git a/doxygen/manpages/man1/dsrdump.1 b/doxygen/manpages/man1/dsrdump.1
index 7227495..371a710 100644
--- a/doxygen/manpages/man1/dsrdump.1
+++ b/doxygen/manpages/man1/dsrdump.1
@@ -1,4 +1,4 @@
-.TH "dsrdump" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dsrdump" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dsrdump \- Dump DICOM SR file and data set
diff --git a/doxygen/manpages/man1/dump2dcm.1 b/doxygen/manpages/man1/dump2dcm.1
index 8ef03f6..42e36e4 100644
--- a/doxygen/manpages/man1/dump2dcm.1
+++ b/doxygen/manpages/man1/dump2dcm.1
@@ -1,4 +1,4 @@
-.TH "dump2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "dump2dcm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 dump2dcm \- Convert ASCII dump to DICOM file
diff --git a/doxygen/manpages/man1/echoscu.1 b/doxygen/manpages/man1/echoscu.1
index a3c9fa9..a7dd3aa 100644
--- a/doxygen/manpages/man1/echoscu.1
+++ b/doxygen/manpages/man1/echoscu.1
@@ -1,4 +1,4 @@
-.TH "echoscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "echoscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 echoscu \- DICOM verification (C-ECHO) SCU
diff --git a/doxygen/manpages/man1/findscu.1 b/doxygen/manpages/man1/findscu.1
index caf1e42..189c5e7 100644
--- a/doxygen/manpages/man1/findscu.1
+++ b/doxygen/manpages/man1/findscu.1
@@ -1,4 +1,4 @@
-.TH "findscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "findscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 findscu \- DICOM query (C-FIND) SCU
diff --git a/doxygen/manpages/man1/getscu.1 b/doxygen/manpages/man1/getscu.1
index d78c93c..3effdf2 100644
--- a/doxygen/manpages/man1/getscu.1
+++ b/doxygen/manpages/man1/getscu.1
@@ -1,4 +1,4 @@
-.TH "getscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "getscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 getscu \- DICOM retrieve (C-GET) SCU
diff --git a/doxygen/manpages/man1/img2dcm.1 b/doxygen/manpages/man1/img2dcm.1
index a95358c..f96888d 100644
--- a/doxygen/manpages/man1/img2dcm.1
+++ b/doxygen/manpages/man1/img2dcm.1
@@ -1,4 +1,4 @@
-.TH "img2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "img2dcm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 img2dcm \- Convert standard image formats into DICOM format
diff --git a/doxygen/manpages/man1/movescu.1 b/doxygen/manpages/man1/movescu.1
index 423b320..e478f02 100644
--- a/doxygen/manpages/man1/movescu.1
+++ b/doxygen/manpages/man1/movescu.1
@@ -1,4 +1,4 @@
-.TH "movescu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "movescu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 movescu \- DICOM retrieve (C-MOVE) SCU
@@ -508,6 +508,8 @@ LegacyConvertedEnhancedPETImageStorage               1.2.840.10008.5.1.4.1.1.128
 RETIRED_StandalonePETCurveStorage                    1.2.840.10008.5.1.4.1.1.129
 EnhancedPETImageStorage                              1.2.840.10008.5.1.4.1.1.130
 BasicStructuredDisplayStorage                        1.2.840.10008.5.1.4.1.1.131
+CTDefinedProcedureProtocolStorage                    1.2.840.10008.5.1.4.1.1.200.1
+CTPerformedProcedureProtocolStorage                  1.2.840.10008.5.1.4.1.1.200.2
 RTImageStorage                                       1.2.840.10008.5.1.4.1.1.481.1
 RTDoseStorage                                        1.2.840.10008.5.1.4.1.1.481.2
 RTStructureSetStorage                                1.2.840.10008.5.1.4.1.1.481.3
diff --git a/doxygen/manpages/man1/pdf2dcm.1 b/doxygen/manpages/man1/pdf2dcm.1
index 9c15deb..e6a15b0 100644
--- a/doxygen/manpages/man1/pdf2dcm.1
+++ b/doxygen/manpages/man1/pdf2dcm.1
@@ -1,4 +1,4 @@
-.TH "pdf2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "pdf2dcm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 pdf2dcm \- Convert PDF file to DICOM
diff --git a/doxygen/manpages/man1/storescp.1 b/doxygen/manpages/man1/storescp.1
index 00ac7d7..6bca14b 100644
--- a/doxygen/manpages/man1/storescp.1
+++ b/doxygen/manpages/man1/storescp.1
@@ -1,4 +1,4 @@
-.TH "storescp" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "storescp" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 storescp \- DICOM storage (C-STORE) SCP
@@ -602,6 +602,8 @@ LegacyConvertedEnhancedPETImageStorage               1.2.840.10008.5.1.4.1.1.128
 RETIRED_StandalonePETCurveStorage                    1.2.840.10008.5.1.4.1.1.129
 EnhancedPETImageStorage                              1.2.840.10008.5.1.4.1.1.130
 BasicStructuredDisplayStorage                        1.2.840.10008.5.1.4.1.1.131
+CTDefinedProcedureProtocolStorage                    1.2.840.10008.5.1.4.1.1.200.1
+CTPerformedProcedureProtocolStorage                  1.2.840.10008.5.1.4.1.1.200.2
 RTImageStorage                                       1.2.840.10008.5.1.4.1.1.481.1
 RTDoseStorage                                        1.2.840.10008.5.1.4.1.1.481.2
 RTStructureSetStorage                                1.2.840.10008.5.1.4.1.1.481.3
diff --git a/doxygen/manpages/man1/storescu.1 b/doxygen/manpages/man1/storescu.1
index 275ed6a..9cfed80 100644
--- a/doxygen/manpages/man1/storescu.1
+++ b/doxygen/manpages/man1/storescu.1
@@ -1,4 +1,4 @@
-.TH "storescu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "storescu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 storescu \- DICOM storage (C-STORE) SCU
diff --git a/doxygen/manpages/man1/termscu.1 b/doxygen/manpages/man1/termscu.1
index a968b58..10d3f03 100644
--- a/doxygen/manpages/man1/termscu.1
+++ b/doxygen/manpages/man1/termscu.1
@@ -1,4 +1,4 @@
-.TH "termscu" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "termscu" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 termscu \- DICOM termination SCU
diff --git a/doxygen/manpages/man1/wlmscpfs.1 b/doxygen/manpages/man1/wlmscpfs.1
index 0e12999..f98d3df 100644
--- a/doxygen/manpages/man1/wlmscpfs.1
+++ b/doxygen/manpages/man1/wlmscpfs.1
@@ -1,4 +1,4 @@
-.TH "wlmscpfs" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "wlmscpfs" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 wlmscpfs \- DICOM Basic Worklist Management SCP (based on data files)
diff --git a/doxygen/manpages/man1/xml2dcm.1 b/doxygen/manpages/man1/xml2dcm.1
index 24bcd7b..9096d91 100644
--- a/doxygen/manpages/man1/xml2dcm.1
+++ b/doxygen/manpages/man1/xml2dcm.1
@@ -1,4 +1,4 @@
-.TH "xml2dcm" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "xml2dcm" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 xml2dcm \- Convert XML document to DICOM file or data set
diff --git a/doxygen/manpages/man1/xml2dsr.1 b/doxygen/manpages/man1/xml2dsr.1
index cee3c23..a515aa1 100644
--- a/doxygen/manpages/man1/xml2dsr.1
+++ b/doxygen/manpages/man1/xml2dsr.1
@@ -1,4 +1,4 @@
-.TH "xml2dsr" 1 "Thu Jun 30 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
+.TH "xml2dsr" 1 "Wed Nov 2 2016" "Version 3.6.1" "OFFIS DCMTK" \" -*- nroff -*-
 .nh
 .SH NAME
 xml2dsr \- Convert DICOM SR file and data set to XML
diff --git a/oflog/include/dcmtk/oflog/oflog.h b/oflog/include/dcmtk/oflog/oflog.h
index 7f9829b..bb8ddbc 100644
--- a/oflog/include/dcmtk/oflog/oflog.h
+++ b/oflog/include/dcmtk/oflog/oflog.h
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2009-2011, OFFIS e.V.
+ *  Copyright (C) 2009-2016, OFFIS e.V.
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation were developed by
@@ -63,7 +63,7 @@ public:
         ERROR_LOG_LEVEL = dcmtk::log4cplus::ERROR_LOG_LEVEL,
         /// fatal: very severe error events that will presumably lead the application to abort
         FATAL_LOG_LEVEL = dcmtk::log4cplus::FATAL_LOG_LEVEL,
-        /// internal: turn off logging competely
+        /// internal: turn off logging completely
         OFF_LOG_LEVEL = dcmtk::log4cplus::OFF_LOG_LEVEL
     };
 
diff --git a/oflog/libsrc/oflog.cc b/oflog/libsrc/oflog.cc
index c8a1741..fa14b31 100644
--- a/oflog/libsrc/oflog.cc
+++ b/oflog/libsrc/oflog.cc
@@ -1,6 +1,6 @@
 /*
  *
- *  Copyright (C) 2009-2011, OFFIS e.V.
+ *  Copyright (C) 2009-2016, OFFIS e.V.
  *  All rights reserved.  See COPYRIGHT file for details.
  *
  *  This software and supporting documentation were developed by
@@ -184,7 +184,7 @@ void OFLog::configureFromCommandLine(OFCommandLine &cmd,
 
         app.checkValue(cmd.getValue(logConfig));
 
-        // check wether config file exists at all and is readable
+        // check whether config file exists at all and is readable
         if (!OFStandard::fileExists(logConfig))
             app.printError("Specified --log-config file does not exist");
         if (!OFStandard::isReadable(logConfig))
diff --git a/ofstd/include/dcmtk/ofstd/oftraits.h b/ofstd/include/dcmtk/ofstd/oftraits.h
index a05b4a7..a8a4e8b 100644
--- a/ofstd/include/dcmtk/ofstd/oftraits.h
+++ b/ofstd/include/dcmtk/ofstd/oftraits.h
@@ -100,7 +100,7 @@ template<typename T,typename F>
 struct OFconditional<OFFalse,T,F> { typedef F type; };
 
 template<typename T,T Value>
-struct OFintegral_constant { static const T value = Value; };
+struct OFintegral_constant { typedef OFintegral_constant type; static const T value = Value; };
 
 template<typename T,T Value>
 const T OFintegral_constant<T,Value>::value;
diff --git a/ofstd/include/dcmtk/ofstd/oftuple.h b/ofstd/include/dcmtk/ofstd/oftuple.h
index 4000993..46341af 100644
--- a/ofstd/include/dcmtk/ofstd/oftuple.h
+++ b/ofstd/include/dcmtk/ofstd/oftuple.h
@@ -297,8 +297,7 @@ template<>
 struct OFtuple_content<>
 {
     OFtuple_content() {}
-    template<typename X>
-    OFtuple_content(const X&) {}
+    OFtuple_content(va_list*) {}
     template<typename X>
     void assign(const X&) {}
     template<typename X>
diff --git a/ofstd/include/dcmtk/ofstd/ofutil.h b/ofstd/include/dcmtk/ofstd/ofutil.h
index 0dd8734..db7f71f 100644
--- a/ofstd/include/dcmtk/ofstd/ofutil.h
+++ b/ofstd/include/dcmtk/ofstd/ofutil.h
@@ -36,11 +36,23 @@
 
 #ifdef DCMTK_USE_CXX11_STL
 #include <utility>
+#include <tuple>
 #define OFmove std::move
 #define OFswap std::swap
-#define OFget std::get
 #define OFMake_pair std::make_pair
 
+template<std::size_t Index,typename T>
+constexpr auto OFget( T&& t ) -> decltype( std::get<Index>( std::forward<T>( t ) ) )
+{
+    return std::get<Index>( std::forward<T>( t ) );
+}
+
+template<typename X,typename T>
+constexpr auto OFget( T&& t ) -> decltype( std::get<X>( std::forward<T>( t ) ) )
+{
+    return std::get<X>( std::forward<T>( t ) );
+}
+
 template<typename K,typename V>
 using OFPair = std::pair<K,V>;
 
@@ -525,4 +537,343 @@ const typename OFtuple_element<Index,Tuple>::type& OFget( const Tuple& tuple );
 
 #endif // NOT C++11
 
+#ifndef DOXYGEN
+
+// OFin_place hacks, look at the doxygen documentation instead if
+// you know what's good for you!
+class DCMTK_OFSTD_EXPORT OFin_place_tag { OFin_place_tag(); };
+typedef OFin_place_tag(&OFin_place_t)();
+#define OFin_place_type_t(T) OFin_place_tag(&)(T&)
+#define OFin_place_index_t(I) OFin_place_tag(&)(OFintegral_constant<size_t,I>&)
+DCMTK_OFSTD_EXPORT OFin_place_tag OFin_place();
+template<typename T>
+OFin_place_tag OFin_place(T&) { return OFin_place(); }
+template<size_t I>
+OFin_place_tag OFin_place(OFintegral_constant<size_t,I>&) { return OFin_place(); }
+
+#else // NOT DOXYGEN
+
+/** @defgroup OFin_place_helpers_brief
+ *  @details Tools for in-place construction of objects, e.g. certain OFvariant alternatives.
+ *  @defgroup OFin_place_helpers Tools for in-place construction
+ *  @details
+ *  <b><em style="color:#7f0000">#include</em> <span class="keyword">"dcmtk/ofstd/ofutil.h"</span></b><br><br>
+ *  @copydoc OFin_place_helpers_brief
+ *  <table class="memberdecls">
+ *    <tr class="heading">
+ *      <td colspan="2"><div><h2 class="groupheader">Type Definitions</h2></div></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="memItemLeft" align="right" valign="top"><span class="keyword">typedef</span> <em style="color:#7f0000;opacity:.7">unspecified</em></td>
+ *      <td class="memItemRight" valign="bottom"><a href="#OFin_place_t">OFin_place_t</a></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="mdescLeft"></td>
+ *      <td class="mdescRight">A type for tagging an in-place constructor as such. <a href="#OFin_place_t">More...</a></td>
+ *    </tr>
+ *    <tr><td class="memSeparator" colspan="2"></td></tr>
+ *    <tr><td class="memTemplParams" colspan="2">template<typename T></td></tr>
+ *    <tr>
+ *      <td class="memItemLeft" align="right" valign="top"><span class="keyword">typedef</span> <em style="color:#7f0000;opacity:.7">unspecified</em></td>
+ *      <td class="memItemRight" valign="bottom"><a href="#OFin_place_type_t">OFin_place_type_t(T)</a></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="mdescLeft"></td>
+ *      <td class="mdescRight">A type for tagging an in-place constructor for a certain type as such. <a href="#OFin_place_type_t">More...</a></td>
+ *    </tr>
+ *    <tr><td class="memSeparator" colspan="2"></td></tr>
+ *    <tr><td class="memTemplParams" colspan="2">template<size_t I></td></tr>
+ *    <tr>
+ *      <td class="memItemLeft" align="right" valign="top"><span class="keyword">typedef</span> <em style="color:#7f0000;opacity:.7">unspecified</em></td>
+ *      <td class="memItemRight" valign="bottom"><a href="#OFin_place_index_t">OFin_place_index_t(I)</a></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="mdescLeft"></td>
+ *      <td class="mdescRight">A type for tagging an in-place constructor based on a certain index  as such. <a href="#OFin_place_index_t">More...</a></td>
+ *    </tr>
+ *    <tr><td class="memSeparator" colspan="2"></td></tr>
+ *  </table>
+ *  <table class="memberdecls">
+ *    <tr class="heading">
+ *      <td colspan="2"><div><h2 class="groupheader">Global Constants</h2></div></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="memItemLeft" align="right" valign="top"><a href="#OFin_place_t">OFin_place_t</a></td>
+ *      <td class="memItemRight" valign="bottom"><a href="#OFin_place_generic">OFin_place</a></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="mdescLeft"></td>
+ *      <td class="mdescRight">
+ *        A constant of type <a href="#OFin_place_t">OFin_place_t</a> that may be used for in-place construction.
+ *        <a href="#OFin_place_generic">More...</a>
+ *      </td>
+ *    </tr>
+ *    <tr><td class="memSeparator" colspan="2"></td></tr>
+ *    <tr><td class="memTemplParams" colspan="2">template<typename T></td></tr>
+ *    <tr>
+ *      <td class="memItemLeft" align="right" valign="top"><a href="#OFin_place_type_t">OFin_place_type_t(T)</a></td>
+ *      <td class="memItemRight" valign="bottom"><a href="#OFin_place_type">OFin_place<T></a></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="mdescLeft"></td>
+ *      <td class="mdescRight">
+ *        A constant of type <a href="#OFin_place_type_t">OFin_place_type_t(T)</a> that may be used for in-place construction.
+ *        <a href="#OFin_place_type">More...</a>
+ *      </td>
+ *    </tr>
+ *    <tr><td class="memSeparator" colspan="2"></td></tr>
+ *    <tr><td class="memTemplParams" colspan="2">template<size_t I></td></tr>
+ *    <tr>
+ *      <td class="memItemLeft" align="right" valign="top"><a href="#OFin_place_index_t">OFin_place_index_t(I)</a></td>
+ *      <td class="memItemRight" valign="bottom"><a href="#OFin_place_index">OFin_place<I></a></td>
+ *    </tr>
+ *    <tr>
+ *      <td class="mdescLeft"></td>
+ *      <td class="mdescRight">
+ *        A constant of type <a href="#OFin_place_index_t">OFin_place_index_t(I)</a> that may be used for in-place construction.
+ *        <a href="#OFin_place_index">More...</a>
+ *      </td>
+ *    </tr>
+ *    <tr><td class="memSeparator" colspan="2"></td></tr>
+ *  </table>
+ *  <h2 class="groupheader">Type Definition Documentation</h2>
+ *  @anchor OFin_place_t
+ *  <div class="memitem">
+ *    <div class="memproto">
+ *      <div class="memname">
+ *        <span class="keyword">typedef</span> <em style="color:#7f0000;opacity:.7">unspecified</em> OFin_place_t
+ *      </div>
+ *    </div>
+ *    <div class="memdoc">
+ *      <br>A type for tagging an in-place constructor as such.<br>
+ *      <dl></dl>
+ *      <b>Usage Example:</b><br>
+ *      @code{.cpp}
+ *      template<typename T>
+ *      class Wrapper
+ *      {
+ *      public:
+ *        // Will copy construct the wrapped value from a T.
+ *        Wrapper( const T& t );
+ *
+ *        // Will in-place construct the value from the given arguments,
+ *        // calling T( arguments... ) internally, without unnecessary
+ *        // copies.
+ *        template<typename... Arguments>
+ *        Wrapper( OFin_place_t, Arguments... arguments );
+ *
+ *      private:
+ *        // ... wrapper implementation ...
+ *      };
+ *      @endcode
+ *    </div>
+ *  </div>
+ *  @anchor OFin_place_type_t
+ *  <div class="memitem">
+ *    <div class="memproto">
+ *      <div class="memtemplate">template<typename T></div>
+ *      <div class="memname">
+ *        <span class="keyword">typedef</span> <em style="color:#7f0000;opacity:.7">unspecified</em> OFin_place_type_t(T)
+ *      </div>
+ *    </div>
+ *    <div class="memdoc">
+ *      <br>A type for tagging an in-place constructor for a certain type as such.
+ *      <br>
+ *      <dl class="tparams">
+ *        <dt>Template Parameters<dt>
+ *        <dd><span class="paramname">T</span> the type this in-pace constructor handles, i.e. the type that will be constructed.</dd>
+ *      </dl>
+ *      @note Pre C++11 compilers do not support alias templates, therefore, OFin_place_type_t is implemented
+ *        using preprocessor macros internally. This is why you need to use curved brackets instead of angled ones.
+ *
+ *      <b>Usage Example:</b><br>
+ *      @code{.cpp}
+ *      template<typename A,typename B>
+ *      class Union
+ *      {
+ *      public:
+ *        // Will copy construct the wrapped value as an A from a.
+ *        Union( const A& a );
+ *
+ *        // Will copy construct the wrapped value as a B from b.
+ *        Union( const B& b );
+ *
+ *        // Will in-place construct the value as an A from the given
+ *        // arguments, calling A( arguments... ) internally, without
+ *        // unnecessary copies.
+ *        template<typename... Arguments>
+ *        Union( OFin_place_type_t(A), Arguments... arguments );
+ *
+ *        // Will in-place construct the value as a B from the given
+ *        // arguments, calling B( arguments... ) internally, without
+ *        // unnecessary copies.
+ *        template<typename... Arguments>
+ *        Union( OFin_place_type_t(B), Arguments... arguments );
+ *
+ *      private:
+ *        // ... union implementation ...
+ *      };
+ *      @endcode
+ *    </div>
+ *  </div>
+ *  @anchor OFin_place_index_t
+ *  <div class="memitem">
+ *    <div class="memproto">
+ *      <div class="memtemplate">template<size_t I></div>
+ *      <div class="memname">
+ *        <span class="keyword">typedef</span> <em style="color:#7f0000;opacity:.7">unspecified</em> OFin_place_index_t(I)
+ *      </div>
+ *    </div>
+ *    <div class="memdoc">
+ *      <br>A type for tagging an in-place constructor for a certain index as such.<br>
+ *      <dl class="tparams">
+ *        <dt>Template Parameters<dt>
+ *        <dd>
+ *          <span class="paramname">I</span> the index this in-pace constructor handles, i.e. the zero
+ *          based index of the type that will be constructed.
+ *        </dd>
+ *      </dl>
+ *      @note Pre C++11 compilers do not support alias templates, therefore, OFin_place_index_t is implemented
+ *        using preprocessor macros internally. This is why you need to use curved brackets instead of angled ones.
+ *
+ *      <b>Usage Example:</b><br>
+ *      @code{.cpp}
+ *      template<typename A,typename B>
+ *      class Union
+ *      {
+ *      public:
+ *        // Will copy construct the wrapped value as an A from a.
+ *        Union( const A& a );
+ *
+ *        // Will copy construct the wrapped value as a B from b.
+ *        Union( const B& b );
+ *
+ *        // Will in-place construct the value as an A from the given
+ *        // arguments, calling A( arguments... ) internally, without
+ *        // unnecessary copies.
+ *        // This will even work if A and B refer to the same type.
+ *        template<typename... Arguments>
+ *        Union( OFin_place_index_t(0), Arguments... arguments );
+ *
+ *        // Will in-place construct the value as a B from the given
+ *        // arguments, calling B( arguments... ) internally, without
+ *        // unnecessary copies.
+ *        // This will even work if A and B refer to the same type.
+ *        template<typename... Arguments>
+ *        Union( OFin_place_index_t(1), Arguments... arguments );
+ *
+ *      private:
+ *        // ... union implementation ...
+ *      };
+ *      @endcode
+ *    </div>
+ *  </div>
+ *  <h2 class="groupheader">Global Constant Documentation</h2>
+ *  @anchor OFin_place_generic
+ *  <div class="memitem">
+ *    <div class="memproto">
+ *      <div class="memname">
+ *        <a href="#OFin_place_t">OFin_place_t</a> OFin_place
+ *      </div>
+ *    </div>
+ *    <div class="memdoc">
+ *      <br>A constant of type <a href="#OFin_place_t">OFin_place_t</a> that may be used for in-place construction.<br>
+ *      @remarks OFin_place is actually an overloaded function, but instead of calling it
+ *        (which one should never do), its address is used as a tag, since the type of
+ *        its address differs depending on which overload and template parameters are used.
+ *        See http://en.cppreference.com/w/cpp/utility/in_place for more information.
+ *
+ *      <b>Usage Example:</b><br>
+ *      @code{.cpp}
+ *      template<typename T>
+ *      class Wrapper; // see OFin_place_t example
+ *      // ...
+ *      // will construct an OFString and then copy construct the value in the wrapper
+ *      Wrapper<OFString>( "Hello World" );
+ *      // will in-place construct the value in the wrapper
+ *      Wrapper<OFString>( OFin_place, "Hello World" );
+ *      // this also works with multiple arguments:
+ *      // will take only the fist five characters of the const char*
+ *      Wrapper<OFString>( OFin_place, "Hello World", 5 );
+ *      @endcode
+ *    </div>
+ *  </div>
+ *  @anchor OFin_place_type
+ *  <div class="memitem">
+ *    <div class="memproto">
+ *      <div class="memtemplate">template<typename T></div>
+ *      <div class="memname">
+ *        <a href="#OFin_place_type_t">OFin_place_type_t(T)</a> OFin_place<T>
+ *      </div>
+ *    </div>
+ *    <div class="memdoc">
+ *      <br>A constant of type <a href="#OFin_place_type_t">OFin_place_type_t(T)</a> that may be used for in-place construction.<br>
+ *      <dl class="tparams">
+ *        <dt>Template Parameters<dt>
+ *        <dd><span class="paramname">T</span> the type for selecting an in-pace constructor, i.e. the type that will be constructed.</dd>
+ *      </dl>
+ *      @remarks OFin_place is actually an overloaded function, but instead of calling it
+ *        (which one should never do), its address is used as a tag, since the type of
+ *        its address differs depending on which overload and template parameters are used.
+ *        See http://en.cppreference.com/w/cpp/utility/in_place for more information.
+ *
+ *      <b>Usage Example:</b><br>
+ *      @code{.cpp}
+ *      template<typename A,typename B>
+ *      class Union; // see OFin_place_type_t example
+ *      // ...
+ *      // will construct an OFString and then copy construct the value inside the union
+ *      Union<int,OFString>( OFString( "Hello World" ) );
+ *      // will in-place construct an OFString value inside the union
+ *      // with only the fist five characters
+ *      Union<int,OFString>( OFin_place<OFString>, "Hello World", 5 );
+ *      // will construct an integer value inside the union by casting
+ *      // the address of the character array constant to int
+ *      Union<int,OFString>( OFin_place<int>, "Hello World" );
+ *      @endcode
+ *    </div>
+ *  </div>
+ *  @anchor OFin_place_index
+ *  <div class="memitem">
+ *    <div class="memproto">
+ *      <div class="memtemplate">template<size_t I></div>
+ *      <div class="memname">
+ *        <a href="#OFin_place_index_t">OFin_place_index_t(I)</a> OFin_place<I>
+ *      </div>
+ *    </div>
+ *    <div class="memdoc">
+ *      <br>A constant of type <a href="#OFin_place_index_t">OFin_place_index_t(I)</a> that may be used for in-place construction.<br>
+ *      <dl class="tparams">
+ *        <dt>Template Parameters<dt>
+ *        <dd>
+ *          <span class="paramname">I</span> the index for selecting an in-pace constructor, i.e. the
+ *          zero based index of the type that will be constructed.
+ *        </dd>
+ *      </dl>
+ *      @remarks OFin_place is actually an overloaded function, but instead of calling it
+ *        (which one should never do), its address is used as a tag, since the type of
+ *        its address differs depending on which overload and template parameters are used.
+ *        See http://en.cppreference.com/w/cpp/utility/in_place for more information.
+ *
+ *      <b>Usage Example:</b><br>
+ *      @code{.cpp}
+ *      template<typename A,typename B>
+ *      class Union; // see OFin_place_index_t example
+ *      // ...
+ *      // error, cannot determine which constructor shall be used,
+ *      // since both take an int
+ *      Union<int,int>( 3 );
+ *      // will in-place construct an int value inside the union
+ *      // tagging it as an A
+ *      Union<int,int>( OFin_place<0>, 3 );
+ *      // will in-place construct an int value inside the union
+ *      // tagging it as a B
+ *      Union<int,int>( OFin_place<1>, 3 );
+ *      @endcode
+ *    </div>
+ *  </div>
+ */
+
+#endif // DOXYGEN
+
 #endif // OFUTIL_H
diff --git a/ofstd/include/dcmtk/ofstd/ofvriant.h b/ofstd/include/dcmtk/ofstd/ofvriant.h
new file mode 100644
index 0000000..f617b4e
--- /dev/null
+++ b/ofstd/include/dcmtk/ofstd/ofvriant.h
@@ -0,0 +1,736 @@
+/*
+ *
+ *  Copyright (C) 2016, OFFIS e.V.
+ *  All rights reserved.  See COPYRIGHT file for details.
+ *
+ *  This software and supporting documentation were developed by
+ *
+ *    OFFIS e.V.
+ *    R&D Division Health
+ *    Escherweg 2
+ *    D-26121 Oldenburg, Germany
+ *
+ *
+ *  Module:  ofstd
+ *
+ *  Author:  Jan Schlamelcher
+ *
+ *  Purpose: Implementing tagged unions similar to C++17's std::variant.
+ *
+ */
+
+#ifndef OFVARIANT_H
+#define OFVARIANT_H
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+/** @file
+ *  Declares OFvariant and related functionality.
+ *  @defgroup ofvisit_variant OFvisit – OFvariant
+ *  Apply a visitor to an OFvariant object.
+ *  @see @ref ofget_variant "OFget" – @copybrief ofget_variant
+ *  @defgroup ofget_variant OFget – OFvariant
+ *  Get a pointer to the value stored in an OFvariant holding the selected alternative.
+ *  @see @ref ofvisit_variant "OFvisit" – @copybrief ofvisit_variant
+ */
+
+#ifdef DCMTK_USE_CXX11_STL
+#include <type_traits>
+#include <cassert>
+#include <limits>
+
+template<std::size_t,typename... Alternatives>
+struct OFvariant_traits
+{
+    using is_constructible = std::false_type;
+    static constexpr inline std::size_t alignment() { return 1; }
+    static constexpr inline std::size_t size() { return 0; }
+    static void index_of();
+};
+
+template<std::size_t Index,typename Alternative0,typename... Alternatives>
+struct OFvariant_traits<Index,Alternative0,Alternatives...>
+: OFvariant_traits<Index+1,Alternatives...>
+{
+    using OFvariant_traits<Index+1,Alternatives...>::index_of;
+
+    using first_alternative = Alternative0;
+
+    static constexpr inline std::size_t alignment()
+    {
+        struct test { alignas(OFvariant_traits<Index+1,Alternatives...>::alignment()) first_alternative a; };
+        return alignof(test);
+    }
+
+    static constexpr inline std::size_t size()
+    {
+        return sizeof( first_alternative ) > OFvariant_traits<Index+1,Alternatives...>::size()
+        ?
+            sizeof( first_alternative )
+        :
+            OFvariant_traits<Index+1,Alternatives...>::size()
+        ;
+    }
+
+    static std::integral_constant<std::size_t,Index> index_of( first_alternative );
+};
+
+template<std::size_t AlternativeCount,typename... IndexAlternatives>
+struct OFvariant_select_index_type {};
+
+template<std::size_t AlternativeCount,typename IndexAlternative0,typename... IndexAlternatives>
+struct OFvariant_select_index_type<AlternativeCount,IndexAlternative0,IndexAlternatives...>
+{
+    using type = typename std::conditional
+    <
+        AlternativeCount <= std::numeric_limits<IndexAlternative0>::max(),
+        std::enable_if<true,IndexAlternative0>,
+        OFvariant_select_index_type<AlternativeCount,IndexAlternatives...>
+    >::type::type;
+};
+
+template<typename...>
+class OFvariant;
+
+template<std::size_t Index,typename Variant>
+struct OFvariant_alternative;
+
+template<std::size_t Index,typename Alternative0,typename... Alternatives>
+struct OFvariant_alternative<Index,OFvariant<Alternative0,Alternatives...>>
+: OFvariant_alternative<Index - 1,OFvariant<Alternatives...>> {};
+
+template<typename Alternative0,typename... Alternatives>
+struct OFvariant_alternative<0,OFvariant<Alternative0,Alternatives...>>
+{
+    using type = Alternative0;
+};
+
+template<typename... Alternatives>
+class OFvariant
+{
+    using traits = OFvariant_traits<0,Alternatives...>;
+    using index_type = typename OFvariant_select_index_type<sizeof...(Alternatives),std::uint8_t,std::uint16_t,std::uint32_t,std::uint64_t>::type;
+    template<typename T>
+    using index_of = decltype(traits::index_of(std::declval<T>()));
+
+public:
+    using variant = OFvariant;
+
+    OFvariant()
+    : m_Content()
+    , m_Index( 0 )
+    {
+        new (m_Content) typename traits::first_alternative;
+    }
+
+    template<typename T,index_type Index = index_of<T>()>
+    OFvariant( T&& t )
+    : m_Content()
+    , m_Index( Index )
+    {
+        new (m_Content) typename OFvariant_alternative<Index,OFvariant>::type( std::forward<T>( t ) );
+    }
+
+    OFvariant( OFvariant& rhs )
+    : OFvariant( const_cast<const OFvariant&>( rhs ) )
+    {
+
+    }
+
+    OFvariant( const OFvariant& rhs )
+    : m_Content()
+    , m_Index( rhs.index() )
+    {
+        copy_construct( rhs );
+    }
+
+    OFvariant( OFvariant&& rhs )
+    : m_Content()
+    , m_Index( rhs.index() )
+    {
+        move_construct( std::move( rhs ) );
+    }
+
+    template<typename T,index_type Index = index_of<T>()>
+    OFvariant& operator=( T&& t )
+    {
+        if( m_Index != Index )
+        {
+            destroy();
+            m_Index = Index;
+            new (m_Content) typename OFvariant_alternative<Index,OFvariant>::type( std::forward<T>( t ) );
+        }
+        else
+        {
+            *reinterpret_cast<typename OFvariant_alternative<Index,OFvariant>::type*>( m_Content ) = std::forward<T>( t );
+        }
+        return *this;
+    }
+
+    OFvariant& operator=( OFvariant& rhs )
+    {
+        return *this = const_cast<const OFvariant&>( rhs );
+    }
+
+    OFvariant& operator=( const OFvariant& rhs )
+    {
+        if( this != &rhs )
+        {
+            if( m_Index != rhs.m_Index )
+            {
+                destroy();
+                m_Index = rhs.m_Index;
+                copy_construct( rhs );
+            }
+            else
+            {
+                using functor = void(OFvariant::*)(const OFvariant&);
+                static const functor assignment[] =
+                {
+                    &OFvariant::template copy_assign_alternative<Alternatives>...
+                };
+                (this->*assignment[m_Index])( rhs );
+            }
+        }
+        return *this;
+    }
+
+    OFvariant& operator=( OFvariant&& rhs )
+    {
+        if( this != &rhs )
+        {
+            if( m_Index != rhs.m_Index )
+            {
+                destroy();
+                m_Index = rhs.m_Index;
+                move_construct( std::move( rhs ) );
+            }
+            else
+            {
+                using functor = void(OFvariant::*)(OFvariant&&);
+                static const functor assignment[] =
+                {
+                    &OFvariant::template move_assign_alternative<Alternatives>...
+                };
+                (this->*assignment[m_Index])( std::move( rhs ) );
+            }
+        }
+        return *this;
+    }
+
+    ~OFvariant()
+    {
+        destroy();
+    }
+
+    std::size_t index() const
+    {
+        return m_Index;
+    }
+
+private:
+    template<typename T,typename... Xs>
+    friend T* OFget( OFvariant<Xs...>* );
+    template<typename T,typename... Xs>
+    friend const T* OFget( const OFvariant<Xs...>* );
+    template<typename ReturnType,typename FN,typename... Xs>
+    friend ReturnType OFvisit( FN&&, OFvariant<Xs...>& );
+    template<typename ReturnType,typename FN,typename... Xs>
+    friend ReturnType OFvisit( FN&&, const OFvariant<Xs...>& );
+
+    template<typename Alternative>
+    void copy_construct_alternative( const OFvariant& rhs )
+    {
+        new (m_Content) Alternative( *reinterpret_cast<const Alternative*>( rhs.m_Content ) );
+    }
+
+    template<typename Alternative>
+    void move_construct_alternative( OFvariant&& rhs )
+    {
+        new (m_Content) Alternative( std::move( *reinterpret_cast<Alternative*>( rhs.m_Content ) ) );
+    }
+
+    template<typename Alternative>
+    void copy_assign_alternative( const OFvariant& rhs )
+    {
+        *reinterpret_cast<Alternative*>( m_Content ) = *reinterpret_cast<const Alternative*>( rhs.m_Content );
+    }
+
+    template<typename Alternative>
+    void move_assign_alternative( OFvariant&& rhs )
+    {
+        *reinterpret_cast<Alternative*>( m_Content ) = std::move( *reinterpret_cast<Alternative*>( rhs.m_Content ) );
+    }
+
+    template<typename Alternative>
+    void destructor()
+    {
+        reinterpret_cast<Alternative*>( m_Content )->~Alternative();
+    }
+
+    template<typename ReturnType,typename Alternative,typename FN>
+    ReturnType visit_alternative( FN&& fn )
+    {
+        return fn( *reinterpret_cast<Alternative*>( m_Content ) );
+    }
+
+    template<typename ReturnType,typename Alternative,typename FN>
+    ReturnType const_visit_alternative( FN&& fn ) const
+    {
+        return fn( *reinterpret_cast<const Alternative*>( m_Content ) );
+    }
+
+    void copy_construct( const OFvariant& rhs )
+    {
+        using functor = void(OFvariant::*)(const OFvariant&);
+        static const functor constructor[] =
+        {
+            &OFvariant::template copy_construct_alternative<Alternatives>...
+        };
+        assert( m_Index < sizeof...(Alternatives) );
+        (this->*constructor[m_Index])( rhs );
+    }
+
+    void move_construct( OFvariant&& rhs )
+    {
+        using functor = void(OFvariant::*)(OFvariant&&);
+        static const functor constructor[] =
+        {
+            &OFvariant::template move_construct_alternative<Alternatives>...
+        };
+        assert( m_Index < sizeof...(Alternatives) );
+        (this->*constructor[m_Index])( std::move( rhs ) );
+    }
+
+    void destroy()
+    {
+        using functor = void(OFvariant::*)();
+        static const functor destructor[] =
+        {
+            &OFvariant::template destructor<Alternatives>...
+        };
+        assert( m_Index < sizeof...(Alternatives) );
+        (this->*destructor[m_Index])();
+    }
+
+    alignas(traits::alignment()) std::uint8_t m_Content[traits::size()];
+    index_type m_Index;
+};
+
+template<std::size_t Index,typename X,typename T0,typename... Tn>
+struct OFvariant_index_of_type
+: OFvariant_index_of_type<Index + 1,X,Tn...> {};
+
+template<std::size_t Index,typename X,typename... Tn>
+struct OFvariant_index_of_type<Index,X,X,Tn...>
+: std::integral_constant<std::size_t,Index> {};
+
+template<typename T,typename... Alternatives>
+constexpr bool OFholds_alternative( const OFvariant<Alternatives...>& v )
+{
+    return v.index() == OFvariant_index_of_type<0,T,Alternatives...>::value;
+}
+
+template<typename T,typename... Alternatives>
+T* OFget( OFvariant<Alternatives...>* v )
+{
+    if( OFholds_alternative<T>( *v ) )
+        return reinterpret_cast<T*>( v->m_Content );
+    return nullptr;
+}
+
+template<typename T,typename... Alternatives>
+const T* OFget( const OFvariant<Alternatives...>* v )
+{
+    if( OFholds_alternative<T>( *v ) )
+        return reinterpret_cast<const T*>( v->m_Content );
+    return nullptr;
+}
+
+template<typename ReturnType,typename FN,typename... Alternatives>
+ReturnType OFvisit( FN&& fn, OFvariant<Alternatives...>& v )
+{
+    using functor = ReturnType(OFvariant<Alternatives...>::*)(FN&&);
+    static const functor visit[] =
+    {
+        &OFvariant<Alternatives...>::template visit_alternative<ReturnType,Alternatives,FN>...
+    };
+    return (v.*visit[v.index()])( std::forward<FN>( fn ) );
+}
+
+template<typename ReturnType,typename FN,typename... Alternatives>
+ReturnType OFvisit( FN&& fn, const OFvariant<Alternatives...>& v )
+{
+    using functor = ReturnType(OFvariant<Alternatives...>::*)(FN&&) const;
+    static const functor visit[] =
+    {
+        &OFvariant<Alternatives...>::template const_visit_alternative<ReturnType,Alternatives,FN>...
+    };
+    return (v.*visit[v.index()])( std::forward<FN>( fn ) );
+}
+
+#elif !defined(DOXYGEN) // fallback implementation
+
+// Include the actual implementation (that emulates variadic templates)
+#include "dcmtk/ofstd/variadic/variant.h"
+
+#else // NOT C++11 && NOT DOXYGEN
+
+/** A class template that represents a type-safe union.
+ *  <b><em>#include</em> "dcmtk/ofstd/ofvriant.h"</b> for using this class<br>
+ *  @headerfile ofvriant.h "dcmtk/ofstd/ofvriant.h"
+ *  @tparam Alternatives a set of types that may be stored in this variant. All types must be (possibly
+ *    cv-qualified) object types.
+ *  @details
+ *  OFvariant is a custom implementation of a subset of C++17's std::variant,
+ *  see http://en.cppreference.com/w/cpp/utility/variant for a description of std::variant.
+ *  An instance of OFvariant at any given time holds a value of one of its alternative types.
+ *  As with unions, if a variant holds a value of some object type T, the object representation of T is
+ *  allocated directly within the object representation of the variant itself if possible.
+ *  @note If no suitable alignment specifiers were available for the target platform, OFvariant will
+ *    use a fallback implementation that stores the alternative on the heap – as opposite to std::variant.
+ *  @details
+ *  The preferred way to access an OFvariant object is visitation utilizing @ref ofvisit_variant "OFvisit".
+ *  If a certain alternative is expected to be held by the variant, @ref ofget_variant "OFget" may be used to
+ *  access it directly.
+ *  @see @ref ofvisit_variant "OFvisit" – @copybrief ofvisit_variant
+ *  @see @ref ofget_variant "OFget" – @copybrief ofget_variant
+ *  @see OFmonostate – @copybrief OFmonostate
+ *  @see @ref OFin_place_helpers "OFin_place" – @copydoc OFin_place_helpers_brief
+ */
+template<typename... Alternatives>
+class OFvariant
+{
+public:
+
+    /** Constructs a variant holding a default constructed value of the first alternative.
+     *  @pre The first alternative must be default constructible.
+     *  @see OFmonostate – @copybrief OFmonostate
+     */
+    OFvariant();
+
+    /** Copy constructs a variant holding a copy of the value rhs holds.
+     *  @param rhs a const reference to another object of equal type.
+     *  @pre All alternatives must be copy constructible.
+     */
+    OFvariant( const OFvariant& rhs );
+
+    /** Move constructs a variant by moving the value rhs holds.
+     *  @param rhs an rvalue reference to another object of equal type.
+     *  @pre All alternatives must be move constructible.
+     *  @note This constructor is currently only available if C++11 support was enabled.
+     */
+    OFvariant( OFvariant&& rhs );
+
+    /** Constructs a variant holding the alternative that most closely matches the given
+     *  argument.
+     *  @tparam T the type of the argument, will be deduced automatically.
+     *  @param t an object of type `T` that will be converted to one of the alternatives.
+     *  @precondition There must be at least one alternative that can be constructed from
+     *    the given parameter `t` and there must be exactly one such alternative that
+     *    takes precedence over the others.
+     *  @attention t will be perfectly forwarded if C++11 support is available, i.e. the
+     *    alternative may be move constructed from `t` if possible. Support for perfect
+     *    forwarding is NOT available without C++11 support, therefore the alternative
+     *    will be copy constructed in this case, this means: <b>the selected alternative
+     *    must be copy constructible if pre C++11 compilers shall be supported</b>.
+     *  @details
+     *  <h3>Usage Example:</h3>
+     *  @code{.cpp}
+     *  OFvariant<int,float,long>( 3 );      // OK
+     *  OFvariant<int,int>( 3 );             // ill formed, both alternatives take equal precedence
+     *  OFvariant<OFString,OFBool>( "abc" ); // OK, but chooses OFBool!
+     *  @endcode
+     */
+    template<typename T>
+    OFvariant( T t );
+
+    /** Destroys the value that the variant currently holds.
+     */
+    ~OFvariant();
+
+    /** Copy assigns the value rhs holds to *this.
+     *  @param rhs a const reference to another object of equal type.
+     *  @pre all alternatives must be copy constructible and copy assignable.
+     *  @return `*this`
+     *  @post
+     *  @li if `*this` and `rhs` hold the same alternative, the value contained in `rhs`
+     *    is copy assigned to the value contained in `*this`.
+     *  @li if `*this` and `rhs` hold different alternatives, the value contained in `*this`
+     *    is destroyed and a new one is copy constructed from the value contained in `rhs`.
+     */
+    OFvariant& operator=( const OFvariant& rhs );
+
+    /** Move assigns the value rhs holds to *this.
+     *  @param rhs an rvalue reference to another object of equal type.
+     *  @pre all alternatives must be move constructible and move assignable.
+     *  @return `*this`
+     *  @post
+     *  @li if `*this` and `rhs` hold the same alternative, the value contained in `rhs`
+     *    is move assigned to the value contained in `*this`.
+     *  @li if `*this` and `rhs` hold different alternatives, the value contained in `*this`
+     *    is destroyed and a new one is move constructed from the value contained in `rhs`.
+     *  @note This constructor is currently only available if C++11 support was enabled.
+     */
+    OFvariant& operator=( OFvariant&& rhs );
+
+    /** Converts the given argument to one of the alternatives and assigns it to *this.
+     *  @tparam T the type of the argument, will be deduced automatically.
+     *  @param t an object of type `T` that will be converted to one of the alternatives
+     *    for assignment.
+     *  @return `*this`
+     *  @pre There must be at least one alternative that can be constructed from
+     *    the given parameter `t` and there must be exactly one such alternative that
+     *    takes precedence over the others.
+     *  @attention `t` will be perfectly forwarded if C++11 support is available, i.e. the
+     *    alternative may be move constructed from t if possible. Support for perfect
+     *    forwarding is NOT available without C++11 support, therefore the alternative
+     *    will be copy constructed in this case, this means: <b>the selected alternative
+     *    must be copy constructible if pre C++11 compilers shall be supported</b>.
+     *  @details
+     *  <h3>Usage Example:</h3>
+     *  @code{.cpp}
+     *  OFvariant<int,float,long> v1;
+     *  v1 = 3                         // OK
+     *  OFvariant<int,int> v2;
+     *  v2 = 3                         // ill formed, both alternatives take equal precedence
+     *  OFvariant<OFString,OFBool> v3;
+     *  v3 = "abc";                    // OK, but chooses OFBool!
+     *  @endcode
+     */
+    template<typename T>
+    OFvariant& operator=( T t );
+
+    /** Get the index of alternative that is currently being held.
+     *  @return the zero based index of that alternative that is currently being held by
+     *    `*this`, i.e. `0` for the first alternative, `1` for the second, etc.
+     */
+    size_t index() const;
+};
+
+/** Try to get a pointer to the given alternative from an OFvariant object.
+ *  @ingroup ofget_variant
+ *  @relates OFvariant
+ *  @tparam Alternative the chosen alternative that shall be accessed.
+ *  @tparam Alternatives the alternatives the given variant could hold, will be deduced
+ *    automatically.
+ *  @param v a reference to an OFvariant object potentially holding `Alternative`.
+ *  @return the address of the contained value of type `Alternative` if such a value is
+ *    contained. `OFnullptr` otherwise.
+ *  @details
+ *  <h3>Usage Example:</h3>
+ *  @code{.cpp}
+ *  OFvariant<int,OFString> v;
+ *  // ... some value is assigned to v ...
+ *  if( int* pI = OFget<int>( v ) )
+ *  {
+ *    COUT << "Yes, it really is an int with the value " << *pI << '!' << OFendl;
+ *    *pI = "27"; // now, let's directly assign something else
+ *  }
+ *  @endcode
+ */
+template<typename Alternative,typename... Alternatives>
+Alternative* OFget( OFvariant<Alternatives...>* v );
+
+/** Try to get a pointer to the given alternative from an OFvariant object.
+ *  @ingroup ofget_variant
+ *  @relates OFvariant
+ *  @tparam Alternative the chosen alternative that shall be accessed.
+ *  @tparam Alternatives the alternatives the given variant could hold, will be deduced
+ *    automatically.
+ *  @param v a const reference to an OFvariant object potentially holding `Alternative`.
+ *  @return the address of the contained value of type `const Alternative` if such a value is
+ *    contained. `OFnullptr` otherwise.
+ *  @details
+ *  <h3>Usage Example:</h3>
+ *  @code{.cpp}
+ *  const OFvariant<int,OFString> v( ... some value is assigned to v ... );
+ *  if( int* pI = OFget<int>( v ) )        // error, the result is const!
+ *  if( const int* pI = OFget<int>( v ) )  // OK
+ *  {
+ *    COUT << "Yes, it really is an int with the value " << *pI << '!' << OFendl;
+ *    *pI = "27"; // Error, *pI is const!
+ *  }
+ *  @endcode
+ */
+template<typename Alternative,typename... Alternatives>
+const Alternative* OFget( const OFvariant<Alternatives...>* v );
+
+/** Applies the given visitor to the given OFvariant object.
+ *  @ingroup ofvisit_variant
+ *  @relates OFvariant
+ *  @details at anchor ofget_alternative_const_variant
+ *  @tparam Result the type of the returned value. Pre C++11 compiles do not allow determining the
+ *    result type automatically in a portable way, therefore, it must be explicitly given by
+ *    the caller.
+ *  @tparam Visitor the type of the visitor, will be deduced automatically.
+ *  @tparam Alternatives the alternatives the given variant could hold, will be deduced
+ *    automatically.
+ *  @param visitor the visitor that will be invoked with the alternative currently being
+ *    held by the given OFvariant object.
+ *  @param v a reference to an OFvariant object that is going to be visited.
+ *  @return Let `CurrentAlternative` be the alternative that v currently holds: the result
+ *    of `visitor( *OFget<CurrentAlternative>( &v ) )` will be converted to `Result` and then
+ *    returned.
+ *  @pre all possible results must be convertible to `Result`.
+ *  @pre `visitor` must be able to take all possible alternatives.
+ *  @note If C++11 support is available, the visitor will be forwarded using perfect forwarding.
+ *    If not, the visitor may be copy constructed at least once, therefore, the visitor needs
+ *    to be copy constructible when pre C++11 compilers are targeted.
+ *  @details
+ *  <h3>Usage Example:</h3>
+ *  @code{.cpp}
+ *  struct PowerVisitor
+ *  {
+ *      template<typename Number>
+ *      Number operator()( Number number )
+ *      {
+ *          return number * number;
+ *      }
+ *  };
+ *  struct PrintVisitor
+ *  {
+ *      template<typename Number>
+ *      void operator()( Number number )
+ *      {
+ *          COUT << number << OFendl;
+ *      }
+ *  };
+ *  struct AssignVisitor
+ *  {
+ *      template<typename Number>
+ *      void operator()( Number& number )
+ *      {
+ *          number *= number;
+ *      }
+ *  };
+ *  // ...
+ *  OFvariant<int,float,double> v( 3.14 );
+ *  OFvariant<int,float,double> result = OFvisit<OFvariant<int,float,double> >( PowerVisitor(), v );
+ *  switch( result.index() )
+ *  {
+ *  case 0: COUT << "int "; break;
+ *  case 1: COUT << "float "; break;
+ *  case 2: COUT << "double "; break;
+ *  }
+ *  OFvisit<void>( PrintVisitor(), result );
+ *  COUT << "double " << OFvisit<double>( PowerVisitor(), v ) << OFendl;   // OK, every alternative fits inside double
+ *  COUT << "int " << OFvisit<int>( PowerVisitor(), v ) << OFendl;         // OK, value will be truncated!
+ *  COUT << "string " << OFvisit<OFString>( PowerVisitor(), v ) << OFendl; // ERROR!
+ *  OFvisit<void>( AssignVisitor(), v );
+ *  OFvisit<void>( PrintVisitor(), v );
+ *  @endcode
+ *  <b>Output (if the error was removed):</b>
+ *  @verbatim
+    double 9.8596
+    double 9.8596
+    int 9
+    9.8596
+    @endverbatim
+ */
+template<typename Result,typename Visitor,typename... Alternatives>
+Result OFvisit( Visitor visitor, OFvariant<Alternatives...>& v );
+
+/** Applies the given visitor to the given OFvariant object.
+ *  @ingroup ofvisit_variant
+ *  @relates OFvariant
+ *  @tparam Result the type of the returned value. Pre C++11 compiles do not allow determining the
+ *    result type automatically in a portable way, therefore, it must be explicitly given by
+ *    the caller.
+ *  @tparam Visitor the type of the visitor, will be deduced automatically.
+ *  @tparam Alternatives the alternatives the given variant could hold, will be deduced
+ *    automatically.
+ *  @param visitor the visitor that will be invoked with the alternative currently being
+ *    held by the given OFvariant object.
+ *  @param v a const reference to an OFvariant object that is going to be visited.
+ *  @return Let `CurrentAlternative` be the alternative that v currently holds: the result
+ *    of `visitor( *OFget<CurrentAlternative>( &v ) )` will be converted to `Result` and then
+ *    returned.
+ *  @pre all possible results must be convertible to `Result`.
+ *  @pre `visitor` must be able to take all possible alternatives.
+ *  @note If C++11 support is available, the visitor will be forwarded using perfect forwarding.
+ *    If not, the visitor may be copy constructed at least once, therefore, the visitor needs
+ *    to be copy constructible when pre C++11 compilers are targeted.
+ *  @details
+ *  <h3>Usage Example:</h3>
+ *  @code{.cpp}
+ *  struct PowerVisitor
+ *  {
+ *      template<typename Number>
+ *      Number operator()( Number number )
+ *      {
+ *          return number * number;
+ *      }
+ *  };
+ *  struct PrintVisitor
+ *  {
+ *      template<typename Number>
+ *      void operator()( Number number )
+ *      {
+ *          COUT << number << OFendl;
+ *      }
+ *  };
+ *  struct AssignVisitor
+ *  {
+ *      template<typename Number>
+ *      void operator()( Number& number )
+ *      {
+ *          number *= number;
+ *      }
+ *  };
+ *  // ...
+ *  const OFvariant<int,float,double> v( 3.14 );
+ *  OFvariant<int,float,double> result = OFvisit<OFvariant<int,float,double> >( PowerVisitor(), v );
+ *  switch( result.index() )
+ *  {
+ *  case 0: COUT << "int "; break;
+ *  case 1: COUT << "float "; break;
+ *  case 2: COUT << "double "; break;
+ *  }
+ *  OFvisit<void>( PrintVisitor(), result );
+ *  COUT << "double " << OFvisit<double>( PowerVisitor(), v ) << OFendl;   // OK, every alternative fits inside double
+ *  COUT << "int " << OFvisit<int>( PowerVisitor(), v ) << OFendl;         // OK, value will be truncated!
+ *  COUT << "string " << OFvisit<OFString>( PowerVisitor(), v ) << OFendl; // ERROR!
+ *  OFvisit<void>( AssignVisitor(), v );                                   // ERROR, v is const!
+ *  OFvisit<void>( PrintVisitor(), v );
+ *  @endcode
+ *  <b>Output (if the errors were removed):</b>
+ *  @verbatim
+    double 9.8596
+    double 9.8596
+    int 9
+    3.14
+    @endverbatim
+ */
+template<typename Result,typename Visitor,typename... Alternatives>
+Result OFvisit( Visitor visitor, const OFvariant<Alternatives...>& v );
+
+#endif // DOXYGEN
+
+/** A helper type for making OFvariant default constructible.
+ *  @relates OFvariant
+ *  @details
+ *  Use OFmonostate as the first alternative of an OFvariant otherwise holding a non default constructible type as
+ *  the first alternative for making the variant itself default constructible.
+ *  @note Be aware that any visitor applied to such an OFvariant object must also accept OFmonostate as an argument.
+ *  @details
+ *  <h3>Example</h3>
+ *  @code{.cpp}
+ *  template<typename T>
+ *  struct NonDefaultConstructible
+ *  {
+ *      NonDefaultConstructible( T t ) : value( t ) {}
+ *      T value;
+ *  };
+ *  typedef NonDefaultConstructible<int>   nint;
+ *  typedef NonDefaultConstructible<float> nfloat;
+ *  // ...
+ *  OFvariant<nint,nfloat> v( 3 );        // OK, but what if we don't know the value yet?
+ *  OFvariant<nint,nfloat> v;             // ERROR!
+ *  OFvariant<OFmonostate,nint,nfloat> v; // OK
+ *  v = 3;                                // assign the value when it's known
+ *  @endcode
+ */
+struct OFmonostate {};
+
+#endif // OFVARIANT_H
diff --git a/ofstd/include/dcmtk/ofstd/variadic/helpers.h b/ofstd/include/dcmtk/ofstd/variadic/helpers.h
new file mode 100644
index 0000000..c8a11c2
--- /dev/null
+++ b/ofstd/include/dcmtk/ofstd/variadic/helpers.h
@@ -0,0 +1,91 @@
+/*
+** DO NOT EDIT THIS FILE !!!
+** It was generated automatically by:
+**
+**   User: jan
+**   Host: NBOFFIS99
+**   Date: 2016-07-19 19:01:07
+**   Prog: /home/jan/Desktop/homes/scripts/make_variadic.sh
+**
+** Purpose:
+**   Defining some helper template metafunctions for emulating variadic
+**   templates.
+*/
+#ifndef VARIADIC_HELPERS_H
+#define VARIADIC_HELPERS_H
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+#include "dcmtk/ofstd/oftraits.h"
+#include "dcmtk/ofstd/ofalign.h"
+
+// Some macros for being used in non generated code
+#define OFVARIADIC_DECLARE_TEMPLATE_PARAMETER_PACK_WITH_DEFAULTS(N) typename N ## 1=OFvariadic_nil,typename N ## 2=OFvariadic_nil,typename N ## 3=OFvariadic_nil,typename N ## 4=OFvariadic_nil,typename N ## 5=OFvariadic_nil,typename N ## 6=OFvariadic_nil,typename N ## 7=OFvariadic_nil,typename N ## 8=OFvariadic_nil,typename N ## 9=OFvariadic_nil,typename N ## 10=OFvariadic_nil,typename N ## 11=OFvariadic_nil,typename N ## 12=OFvariadic_nil,typename N ## 13=OFvariadic_nil,typename N ## 14= [...]
+#define OFVARIADIC_DECLARE_TEMPLATE_PARAMETER_PACK(N) typename N ## 1,typename N ## 2,typename N ## 3,typename N ## 4,typename N ## 5,typename N ## 6,typename N ## 7,typename N ## 8,typename N ## 9,typename N ## 10,typename N ## 11,typename N ## 12,typename N ## 13,typename N ## 14,typename N ## 15,typename N ## 16,typename N ## 17,typename N ## 18,typename N ## 19,typename N ## 20,typename N ## 21,typename N ## 22,typename N ## 23,typename N ## 24,typename N ## 25,typename N ## 26,typen [...]
+#define OFVARIADIC_TEMPLATE_PARAMETER_PACK(N) N ## 1,N ## 2,N ## 3,N ## 4,N ## 5,N ## 6,N ## 7,N ## 8,N ## 9,N ## 10,N ## 11,N ## 12,N ## 13,N ## 14,N ## 15,N ## 16,N ## 17,N ## 18,N ## 19,N ## 20,N ## 21,N ## 22,N ## 23,N ## 24,N ## 25,N ## 26,N ## 27,N ## 28,N ## 29,N ## 30,N ## 31,N ## 32,N ## 33,N ## 34,N ## 35,N ## 36,N ## 37,N ## 38,N ## 39,N ## 40,N ## 41,N ## 42,N ## 43,N ## 44,N ## 45,N ## 46,N ## 47,N ## 48,N ## 49
+
+/** A tag for template parameters to mark them as 'not a template parameter'.
+ */
+struct OFvariadic_nil;
+
+template<typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typename T17=OFva [...]
+struct OFvariadic_parameter_pack_sizeof
+: OFintegral_constant<size_t,OFvariadic_parameter_pack_sizeof<T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value+1> {};
+
+template<>
+struct OFvariadic_parameter_pack_sizeof<>
+: OFintegral_constant<size_t,0> {};
+
+template<size_t Index,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,type [...]
+struct OFvariadic_nth_type
+: OFvariadic_nth_type<Index-1,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49> {};
+
+template<typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typename T35,typename T36,typename T37 [...]
+struct OFvariadic_nth_type<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>
+{ typedef T0 type; };
+
+template<size_t Index,typename T,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariad [...]
+struct OFvariadic_find_type_t
+: OFvariadic_find_type_t<Index+1,T,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49> {};
+
+template<size_t Index,typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typename T35,typename T36 [...]
+struct OFvariadic_find_type_t<Index,T0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>
+: OFintegral_constant<size_t,Index> {};
+
+template<size_t Index,typename T>
+struct OFvariadic_find_type_t<Index,T>
+: OFintegral_constant<size_t,-1> {};
+
+template<typename T,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typena [...]
+struct OFvariadic_find_type
+: OFintegral_constant<size_t,OFvariadic_find_type_t<0,T,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value> {};
+
+template<template<typename L,typename R> class Accumulator,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic [...]
+struct OFfold
+: OFfold<Accumulator,typename Accumulator<T0,T1>::type,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49> {};
+
+template<template<typename L,typename R> class Accumulator,typename T0>
+struct OFfold<Accumulator,T0> : T0 { typedef T0 type; };
+
+template<template<typename L,typename R> class Accumulator>
+struct OFfold<Accumulator> {};
+
+template<typename L,typename R>
+struct OFmax_sizeof
+: OFintegral_constant<size_t,(sizeof(L) > sizeof(R) ? sizeof(L) : sizeof(R))> {};
+
+template<size_t L,typename R>
+struct OFmax_sizeof<OFintegral_constant<size_t,L>,R>
+: OFintegral_constant<size_t,(L > sizeof(R) ? L : sizeof(R))> {};
+
+#ifdef OFalignof
+template<typename L,typename R>
+struct OFmax_alignof
+: OFintegral_constant<size_t,(OFalignof(L) > OFalignof(R) ? OFalignof(L) : OFalignof(R))> {};
+
+template<size_t L,typename R>
+struct OFmax_alignof<OFintegral_constant<size_t,L>,R>
+: OFintegral_constant<size_t,(L > OFalignof(R) ? L : OFalignof(R))> {};
+#endif // OFalignof
+
+#endif // VARIADIC_HELPERS_H
diff --git a/ofstd/include/dcmtk/ofstd/variadic/variant.h b/ofstd/include/dcmtk/ofstd/variadic/variant.h
new file mode 100644
index 0000000..d7752cb
--- /dev/null
+++ b/ofstd/include/dcmtk/ofstd/variadic/variant.h
@@ -0,0 +1,426 @@
+/*
+** DO NOT EDIT THIS FILE !!!
+** It was generated automatically by:
+**
+**   User: jan
+**   Host: caesar
+**   Date: 2016-07-14 14:48:02
+**   Prog: /home/jan/scripts/make_variadic.sh
+**
+** Purpose:
+**   Emulating variadic template parameters support for OFvariant with generated
+**   code.
+*/
+#ifndef VARIADIC_VARIANT_H
+#define VARIADIC_VARIANT_H
+
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+#include "dcmtk/ofstd/variadic/helpers.h"
+
+// We hide all this from doxygen, because it would only scare sane people
+// (and it is not needed for understanding how to use OFvariant).
+#ifndef DOXYGEN
+
+// Template recursively overload constructor and assignment operator for the
+// different alternatives of the variant (used in the template constructor/
+// assignment members).
+template<size_t Index,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,type [...]
+struct OFvariant_overload
+: OFvariant_overload<Index+1,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>
+{
+    // Let the inherited methods take part in overload resolution
+    using OFvariant_overload<Index+1,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::constructor;
+    using OFvariant_overload<Index+1,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::assignment;
+    static Uint16 test_accepts( T0 );
+    static Uint8 test_accepts( ... );
+#ifdef OFalign
+    static size_t constructor( void* content, const T0& t0 )
+    {
+        new (content) T0( t0 );
+#else
+    static size_t constructor( void*& content, const T0& t0 )
+    {
+        content = new T0( t0 );
+#endif
+        return Index;
+    }
+
+    static bool assignment( size_t index, void* content, const T0& t0 )
+    {
+        if( index == Index )
+        {
+            *static_cast<T0*>( content ) = t0;
+            return true;
+        }
+        return false;
+    }
+
+    template<typename T>
+    struct accepts : OFintegral_constant<OFBool,sizeof(test_accepts(*OFstatic_cast(T*,OFnullptr)))==2 || OFvariant_overload<Index+1,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::template accepts<T>::value> {};
+};
+
+// Template recursion end, declares both functions with incompatible
+// signatures so that the 'using' statements work but the functions
+// do not effectively take part in the overload resolution.
+template<size_t Index>
+struct OFvariant_overload<Index>
+{
+    static void constructor();
+    static void assignment();
+    template<typename T>
+    struct accepts : OFfalse_type {};
+};
+
+// Creates a function pointer lookup table to select a function for the
+// currently contained alternative based on the stored index.
+// This is not really magic, the syntax will hurt your eyes though!
+template<typename Invoker,typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil, [...]
+class OFvariant_invoke_t
+{
+public:
+    OFvariant_invoke_t()
+    {
+        // Template-recursively assign the function pointers to the fitting
+        // position inside the function pointer array. This will most likely
+        // be inlined by the compiler (it is tail recursive) and therefore
+        // not hurt the performance.
+        init<0>();
+    }
+
+    OFTypename Invoker::return_type operator()( size_t index, void* content, const Invoker& invoker = Invoker() )
+    {
+        // Select the fitting function pointer based on the index and call it with
+        // the given pointer to the current contents.
+        return (invoker.*m_Alternatives[index])( content );
+    }
+
+private:
+
+    // This is the recursion step for the Init template, it initializes the current
+    // function pointer and recurses to the Init template for the next index.
+    template<size_t Index>
+    OFTypename OFenable_if<(Index < OFvariadic_parameter_pack_sizeof<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value)>::type init()
+    {
+        m_Alternatives[Index] = &Invoker::template invoke<OFTypename OFvariadic_nth_type<Index,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::type>;
+        init<Index+1>();
+    }
+
+    // this is the specialization for the base of the recursion, doing nothing for the
+    // N+1th alternative, effectively stopping the recursion.
+    template<size_t Index>
+    OFTypename OFenable_if<(Index >= OFvariadic_parameter_pack_sizeof<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value)>::type init()
+    {
+
+    }
+
+    // the actual function pointer array
+    OFTypename Invoker::return_type (Invoker::*m_Alternatives[OFvariadic_parameter_pack_sizeof<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value])(void*) const;
+};
+
+// A helper template function for initializing and using a function
+// pointer lookup table as dispatcher for variant visitation etc.
+template<typename Invoker,typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typename T35,typename [...]
+OFTypename Invoker::return_type OFvariant_invoke( size_t index, void* content, const Invoker& invoker = Invoker() )
+{
+    // this may be a race condition in older compilers, which is no
+    // problem since the copied addresses of the functions are always
+    // the same.
+    static OFvariant_invoke_t<Invoker,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49> invocation_table;
+    return invocation_table( index, content, invoker );
+}
+
+// A functor that does copy construction from another variant
+// object.
+struct OFvariant_copy_construct_invoker
+{
+    typedef void return_type;
+
+#ifdef OFalign
+    OFvariant_copy_construct_invoker( void* content )
+    : m_Content( content )
+#else
+    OFvariant_copy_construct_invoker( void*& content )
+    : m_pContent( content )
+#endif
+    {
+
+    }
+
+    template<typename T>
+    void invoke( void* content ) const
+    {
+#ifdef OFalign
+        new (m_Content) T( *static_cast<const T*>( content ) );
+#else
+        m_pContent = new T( *static_cast<const T*>( content ) );
+#endif
+    }
+
+#ifdef OFalign
+    void* m_Content;
+#else
+    void*& m_pContent;
+#endif
+};
+
+// A functor that assigns the contents of another variant object
+// that contains the same alternative (regarding the type).
+struct OFvariant_assign_invoker
+{
+    typedef void return_type;
+
+    OFvariant_assign_invoker( void* content )
+    : m_Content( content )
+    {
+
+    }
+
+    template<typename T>
+    void invoke( void* rhs ) const
+    {
+        *static_cast<T*>( m_Content ) = *static_cast<const T*>( rhs );
+    }
+
+    void* m_Content;
+};
+
+// A functor that destroys the contained object.
+struct OFvariant_destroy_invoker
+{
+    typedef void return_type;
+
+    template<typename T>
+    void invoke( void* content ) const
+    {
+#ifdef OFalign
+        static_cast<T*>( content )->~T();
+#else
+        delete static_cast<T*>( content );
+#endif
+    }
+};
+
+// A functor that invokes the given functor, seriously!
+template<typename ReturnType,typename FN>
+struct OFvariant_visit_invoker
+{
+    typedef ReturnType return_type;
+
+    OFvariant_visit_invoker( FN& fn )
+    : m_Fn( fn )
+    {
+
+    }
+
+    template<typename T>
+    ReturnType invoke( void* content ) const
+    {
+        return m_Fn( *static_cast<T*>( content ) );
+    }
+
+    FN& m_Fn;
+};
+
+// The same as above, but for the const case.
+template<typename ReturnType,typename FN>
+struct OFvariant_const_visit_invoker
+{
+    typedef ReturnType return_type;
+
+    OFvariant_const_visit_invoker( FN& fn )
+    : m_Fn( fn )
+    {
+
+    }
+
+    template<typename T>
+    ReturnType invoke( void* content ) const
+    {
+        return m_Fn( *static_cast<const T*>( content ) );
+    }
+
+    FN& m_Fn;
+};
+
+// The actual variant implementation. Don't mess with this, look
+// at the doxygen API description instead.
+template<typename T0=OFvariadic_nil,typename T1=OFvariadic_nil,typename T2=OFvariadic_nil,typename T3=OFvariadic_nil,typename T4=OFvariadic_nil,typename T5=OFvariadic_nil,typename T6=OFvariadic_nil,typename T7=OFvariadic_nil,typename T8=OFvariadic_nil,typename T9=OFvariadic_nil,typename T10=OFvariadic_nil,typename T11=OFvariadic_nil,typename T12=OFvariadic_nil,typename T13=OFvariadic_nil,typename T14=OFvariadic_nil,typename T15=OFvariadic_nil,typename T16=OFvariadic_nil,typename T17=OFva [...]
+class OFvariant
+{
+public:
+    // typedef for old compilers that do not define the type 'OFvariant' in derived classes
+    typedef OFvariant variant;
+
+    OFvariant()
+#ifdef OFalign
+    : m_Content()
+#else
+    : m_pContent( new T0 )
+#endif
+    , m_Index( 0 )
+    {
+#ifdef OFalign
+        new (content()) T0;
+#endif
+    }
+
+    template<typename T>
+    OFvariant( const T& t, OFTypename OFenable_if<OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::template accepts<T>::value,int>::type = 0 )
+#ifdef OFalign
+    : m_Content()
+#else
+    : m_pContent()
+#endif
+    , m_Index( OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::constructor( content(), t ) )
+    {
+
+    }
+
+    OFvariant( const OFvariant& rhs )
+#ifdef OFalign
+    : m_Content()
+#else
+    : m_pContent()
+#endif
+    , m_Index( rhs.index() )
+    {
+        copy_construct( rhs.content() );
+    }
+
+    template<typename T>
+    OFTypename OFenable_if<OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::template accepts<T>::value,OFvariant>::type& operator=( const T& t )
+    {
+        // Either assign 't' if the contained alternative fits.
+        if( !OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::assignment( index(), content(), t ) )
+        {
+            // Or destroy the contained alternative and construct
+            // a new one, based on 't'.
+            destroy();
+            m_Index = OFvariant_overload<0,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::constructor( content(), t );
+        }
+        return *this;
+    }
+
+    OFvariant& operator=( const OFvariant& rhs )
+    {
+        if( this != &rhs )
+        {
+            // Do 'native' assignment if both variants contain
+            // the same alternative
+            if( m_Index == rhs.m_Index )
+            {
+                OFvariant_invoke<OFvariant_assign_invoker,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>
+                (
+                    m_Index,
+                    rhs.content(),
+                    OFvariant_assign_invoker( content() )
+                );
+            }
+            else
+            {
+                // Destroy the contents and copy construct a new
+                // one
+                destroy();
+                m_Index = rhs.m_Index;
+                copy_construct( rhs.content() );
+            }
+        }
+        return *this;
+    }
+
+    ~OFvariant()
+    {
+        // Destroy the contained object
+        destroy();
+    }
+
+    size_t index() const
+    {
+        // Well, this is easy
+        return m_Index;
+    }
+
+private:
+    // Friend declarations for visitation and get<>.
+    template<typename T,typename X0,typename X1,typename X2,typename X3,typename X4,typename X5,typename X6,typename X7,typename X8,typename X9,typename X10,typename X11,typename X12,typename X13,typename X14,typename X15,typename X16,typename X17,typename X18,typename X19,typename X20,typename X21,typename X22,typename X23,typename X24,typename X25,typename X26,typename X27,typename X28,typename X29,typename X30,typename X31,typename X32,typename X33,typename X34,typename X35,typename X [...]
+    friend T* OFget( OFvariant<X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36,X37,X38,X39,X40,X41,X42,X43,X44,X45,X46,X47,X48,X49>* );
+    template<typename T,typename X0,typename X1,typename X2,typename X3,typename X4,typename X5,typename X6,typename X7,typename X8,typename X9,typename X10,typename X11,typename X12,typename X13,typename X14,typename X15,typename X16,typename X17,typename X18,typename X19,typename X20,typename X21,typename X22,typename X23,typename X24,typename X25,typename X26,typename X27,typename X28,typename X29,typename X30,typename X31,typename X32,typename X33,typename X34,typename X35,typename X [...]
+    friend const T* OFget( const OFvariant<X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36,X37,X38,X39,X40,X41,X42,X43,X44,X45,X46,X47,X48,X49>* );
+    template<typename ReturnType,typename FN,typename X0,typename X1,typename X2,typename X3,typename X4,typename X5,typename X6,typename X7,typename X8,typename X9,typename X10,typename X11,typename X12,typename X13,typename X14,typename X15,typename X16,typename X17,typename X18,typename X19,typename X20,typename X21,typename X22,typename X23,typename X24,typename X25,typename X26,typename X27,typename X28,typename X29,typename X30,typename X31,typename X32,typename X33,typename X34,ty [...]
+    friend ReturnType OFvisit( FN, OFvariant<X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36,X37,X38,X39,X40,X41,X42,X43,X44,X45,X46,X47,X48,X49>& );
+    template<typename ReturnType,typename FN,typename X0,typename X1,typename X2,typename X3,typename X4,typename X5,typename X6,typename X7,typename X8,typename X9,typename X10,typename X11,typename X12,typename X13,typename X14,typename X15,typename X16,typename X17,typename X18,typename X19,typename X20,typename X21,typename X22,typename X23,typename X24,typename X25,typename X26,typename X27,typename X28,typename X29,typename X30,typename X31,typename X32,typename X33,typename X34,ty [...]
+    friend ReturnType OFvisit( FN, const OFvariant<X0,X1,X2,X3,X4,X5,X6,X7,X8,X9,X10,X11,X12,X13,X14,X15,X16,X17,X18,X19,X20,X21,X22,X23,X24,X25,X26,X27,X28,X29,X30,X31,X32,X33,X34,X35,X36,X37,X38,X39,X40,X41,X42,X43,X44,X45,X46,X47,X48,X49>& );
+
+    // Invoke copy construction
+    void copy_construct( void* rhs )
+    {
+        OFvariant_invoke<OFvariant_copy_construct_invoker,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>
+        (
+            m_Index,
+            rhs,
+            OFvariant_copy_construct_invoker( content() )
+        );
+    }
+
+    // Invoke destructor
+    void destroy()
+    {
+        OFvariant_invoke<OFvariant_destroy_invoker,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>( m_Index, content() );
+    }
+
+#ifdef OFalign
+    // Allocate content with alignment.
+    typedef OFTypename OFfold<OFmax_sizeof,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::type max_sizeof_type;
+    typedef OFTypename OFfold<OFmax_alignof,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::type max_alignof_type;
+    void* content() const { return m_Content; }
+    mutable OFalign_typename(Uint8[max_sizeof_type::value],max_alignof_type::value) m_Content;
+#else
+    // Allocate content on the heap.
+    void*& content() const { return OFconst_cast(void*&,m_pContent); }
+    void* m_pContent;
+#endif
+    size_t m_Index;
+};
+
+// Actual implementation of get<> by type.
+template<typename T,typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typename T35,typename T36,t [...]
+T* OFget( OFvariant<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>* v )
+{
+    return v->index() == OFvariadic_find_type<T,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value
+    ?
+        static_cast<T*>( v->content() )
+    :
+        OFnullptr
+    ;
+}
+
+// The same as above, but for the const case.
+template<typename T,typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typename T35,typename T36,t [...]
+const T* OFget( const OFvariant<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>* v )
+{
+    return v->index() == OFvariadic_find_type<T,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>::value
+    ?
+        static_cast<const T*>( v->content() )
+    :
+        OFnullptr
+    ;
+}
+
+// Actual implementation if variant visitation.
+template<typename ReturnType,typename FN,typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typena [...]
+ReturnType OFvisit( FN fn, OFvariant<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>& v )
+{
+    return OFvariant_invoke<OFvariant_visit_invoker<ReturnType,FN>,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>( v.index(), v.content(), OFvariant_visit_invoker<ReturnType,FN>( fn ) );
+}
+
+// The same as above, but for the const case.
+template<typename ReturnType,typename FN,typename T0,typename T1,typename T2,typename T3,typename T4,typename T5,typename T6,typename T7,typename T8,typename T9,typename T10,typename T11,typename T12,typename T13,typename T14,typename T15,typename T16,typename T17,typename T18,typename T19,typename T20,typename T21,typename T22,typename T23,typename T24,typename T25,typename T26,typename T27,typename T28,typename T29,typename T30,typename T31,typename T32,typename T33,typename T34,typena [...]
+ReturnType OFvisit( FN fn, const OFvariant<T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>& v )
+{
+    return OFvariant_invoke<OFvariant_const_visit_invoker<ReturnType,FN>,T0,T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11,T12,T13,T14,T15,T16,T17,T18,T19,T20,T21,T22,T23,T24,T25,T26,T27,T28,T29,T30,T31,T32,T33,T34,T35,T36,T37,T38,T39,T40,T41,T42,T43,T44,T45,T46,T47,T48,T49>( v.index(), v.content(), OFvariant_const_visit_invoker<ReturnType,FN>( fn ) );
+}
+
+#endif // !DOXYGEN
+
+#endif // VARIADIC_VARIANT_H
diff --git a/ofstd/libsrc/ofstd.cc b/ofstd/libsrc/ofstd.cc
index d4fb683..f71b0c7 100644
--- a/ofstd/libsrc/ofstd.cc
+++ b/ofstd/libsrc/ofstd.cc
@@ -2880,3 +2880,5 @@ OFString OFStandard::getHostName()
     return "localhost";
 #endif
 }
+
+DCMTK_OFSTD_EXPORT OFin_place_tag OFin_place() { return *static_cast<OFin_place_tag*>(OFnullptr); }
diff --git a/ofstd/tests/CMakeLists.txt b/ofstd/tests/CMakeLists.txt
index 88d12e3..add39cc 100644
--- a/ofstd/tests/CMakeLists.txt
+++ b/ofstd/tests/CMakeLists.txt
@@ -1,5 +1,5 @@
 # declare executables
-DCMTK_ADD_EXECUTABLE(ofstd_tests tests tatof tmap tvec tftoa tthread tbase64 tstring tlist tstack tofdatim tofstd tmarkup tchrenc txml tuuid toffile tmem toption ttuple tlimits)
+DCMTK_ADD_EXECUTABLE(ofstd_tests tests tatof tmap tvec tftoa tthread tbase64 tstring tlist tstack tofdatim tofstd tmarkup tchrenc txml tuuid toffile tmem toption ttuple tlimits tvariant)
 
 # make sure executables are linked to the corresponding libraries
 DCMTK_TARGET_LINK_MODULES(ofstd_tests ofstd)
diff --git a/ofstd/tests/Makefile.dep b/ofstd/tests/Makefile.dep
index 8175ae3..b4bd322 100644
--- a/ofstd/tests/Makefile.dep
+++ b/ofstd/tests/Makefile.dep
@@ -226,6 +226,21 @@ tuuid.o: tuuid.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oflimits.h \
  ../../config/include/dcmtk/config/arith.h \
  ../include/dcmtk/ofstd/ofuuid.h
+tvariant.o: tvariant.cc ../../config/include/dcmtk/config/osconfig.h \
+ ../include/dcmtk/ofstd/oftest.h ../include/dcmtk/ofstd/ofconapp.h \
+ ../include/dcmtk/ofstd/oftypes.h ../include/dcmtk/ofstd/ofdefine.h \
+ ../include/dcmtk/ofstd/ofcast.h ../include/dcmtk/ofstd/ofexport.h \
+ ../include/dcmtk/ofstd/ofstdinc.h ../include/dcmtk/ofstd/ofstream.h \
+ ../include/dcmtk/ofstd/ofcmdln.h ../include/dcmtk/ofstd/oflist.h \
+ ../include/dcmtk/ofstd/ofstring.h ../include/dcmtk/ofstd/ofconsol.h \
+ ../include/dcmtk/ofstd/ofthread.h ../include/dcmtk/ofstd/offile.h \
+ ../include/dcmtk/ofstd/ofstd.h ../include/dcmtk/ofstd/oftraits.h \
+ ../include/dcmtk/ofstd/ofcond.h ../include/dcmtk/ofstd/oflimits.h \
+ ../../config/include/dcmtk/config/arith.h \
+ ../include/dcmtk/ofstd/ofvriant.h \
+ ../include/dcmtk/ofstd/variadic/variant.h \
+ ../include/dcmtk/ofstd/variadic/helpers.h \
+ ../include/dcmtk/ofstd/ofalign.h
 tvec.o: tvec.cc ../../config/include/dcmtk/config/osconfig.h \
  ../include/dcmtk/ofstd/oftest.h ../include/dcmtk/ofstd/ofconapp.h \
  ../include/dcmtk/ofstd/oftypes.h ../include/dcmtk/ofstd/ofdefine.h \
diff --git a/ofstd/tests/Makefile.in b/ofstd/tests/Makefile.in
index 77f18a6..3b6aa89 100644
--- a/ofstd/tests/Makefile.in
+++ b/ofstd/tests/Makefile.in
@@ -20,7 +20,7 @@ LOCALTRASH = *.out testfile.\$$\$$\$$
 test_objs = tests.o tatof.o tmap.o tvec.o tftoa.o tthread.o tbase64.o \
             tstring.o tlist.o tstack.o tofdatim.o tofstd.o tmarkup.o \
             tchrenc.o txml.o tuuid.o toffile.o tmem.o toption.o ttuple.o \
-            tlimits.o
+            tlimits.o tvariant.o
 objs = $(test_objs)
 progs = tests
 
diff --git a/ofstd/tests/tests.cc b/ofstd/tests/tests.cc
index b41e78d..cd0b974 100644
--- a/ofstd/tests/tests.cc
+++ b/ofstd/tests/tests.cc
@@ -78,4 +78,5 @@ OFTEST_REGISTER(ofstd_optional);
 OFTEST_REGISTER(ofstd_tuple);
 OFTEST_REGISTER(ofstd_limits);
 OFTEST_REGISTER(ofstd_safeSubtractAndAdd);
+OFTEST_REGISTER(ofstd_variant);
 OFTEST_MAIN("ofstd")
diff --git a/ofstd/tests/tthread.cc b/ofstd/tests/tthread.cc
index 630f22b..5a47291 100644
--- a/ofstd/tests/tthread.cc
+++ b/ofstd/tests/tthread.cc
@@ -228,44 +228,47 @@ static int rw_cond5=0;
 static int rw_cond6=0;
 static int rw_cond7=0;
 
-class RWLockT1: public OFThread
+class RWLockT2: public OFThread
 {
 public:
-  RWLockT1(): OFThread() {}
-  ~RWLockT1() {}
+  RWLockT2(): OFThread() {}
+  ~RWLockT2() {}
 
   virtual void run()
   {
-    if (0 == rwlock->rdlock())
+    if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == rwlock->trywrlock())) rw_cond5=1;
+    if (0 == rwlock->wrlock())
     {
-      rw_cond1 = 1; // acquired read lock
-      mutex->lock();
-      mutex->unlock();
-      if (0== rwlock->unlock()) rw_cond2=1;
-      mutex2->lock();
+      rw_cond6=1;
       mutex2->unlock();
-      if (OFReadWriteLock::busy == rwlock->tryrdlock()) rw_cond3=1;
-      if ((0 == rwlock->rdlock())&&(0==rwlock->unlock())) rw_cond4=1;
+      OFStandard::milliSleep(wait_timeout);
+      if (0==rwlock->unlock()) rw_cond7=1;
     }
     return;
   }
 };
 
-class RWLockT2: public OFThread
+class RWLockT1: public OFThread
 {
+private:
+  RWLockT2 &t2;
 public:
-  RWLockT2(): OFThread() {}
-  ~RWLockT2() {}
+  RWLockT1(RWLockT2 &t2) : OFThread(), t2(t2) {}
+  ~RWLockT1() {}
 
   virtual void run()
   {
-    if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == rwlock->trywrlock())) rw_cond5=1;
-    if (0 == rwlock->wrlock())
+    if (0 == rwlock->rdlock())
     {
-      rw_cond6=1;
+      t2.start();
+      rw_cond1 = 1; // acquired read lock
+      mutex->lock();
+      mutex->unlock();
+      if (0== rwlock->unlock()) rw_cond2=1;
+      mutex2->lock();
       mutex2->unlock();
-      OFStandard::milliSleep(wait_timeout);
-      if (0==rwlock->unlock()) rw_cond7=1;
+      if (OFReadWriteLock::busy == rwlock->tryrdlock()) rw_cond3=1;
+      if ((0 == rwlock->rdlock())&&(0==rwlock->unlock())) rw_cond4=1;
     }
     return;
   }
@@ -298,12 +301,9 @@ static void rwlock_test()
     BAILOUT(errmsg);
   }
 
-  RWLockT1 t1;
-  if (0 != t1.start()) BAILOUT("unable to create thread, semaphore test failed");
-
   RWLockT2 t2;
-  if (0 != t2.start()) BAILOUT("unable to create thread, semaphore test failed");
-
+  RWLockT1 t1(t2);
+  if (0 != t1.start()) BAILOUT("unable to create thread, read/write lock/unlock test failed");
 
   int i=0;
   while ((i++<5) && ((!rw_cond1)||(!rw_cond5))) OFStandard::milliSleep(wait_timeout);
@@ -317,7 +317,7 @@ static void rwlock_test()
     BAILOUT(errmsg);
   }
   OFStandard::milliSleep(wait_timeout);
-  if (rw_cond6) BAILOUT("read/write lock test failed");
+  if (rw_cond6) BAILOUT("read/write lock/unlock test failed");
 
   mutex->unlock();
 
@@ -325,56 +325,59 @@ static void rwlock_test()
   while ((i++<5) && ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7))) OFStandard::milliSleep(wait_timeout);
   if ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7)) BAILOUT("read/write lock/unlock test failed");
 
-  if (0 != t1.join()) BAILOUT("unable to join thread, semaphore test failed");
-  if (0 != t2.join()) BAILOUT("unable to join thread, semaphore test failed");
+  if (0 != t1.join()) BAILOUT("unable to join thread, read/write lock/unlock test failed");
+  if (0 != t2.join()) BAILOUT("unable to join thread, read/write lock/unlock test failed");
 
   delete mutex;
   delete mutex2;
   delete rwlock;
 }
 
-class RWLockerT1: public OFThread
+class RWLockerT2: public OFThread
 {
 public:
-  RWLockerT1(): OFThread() {}
-  ~RWLockerT1() {}
+  RWLockerT2(): OFThread() {}
+  ~RWLockerT2() {}
 
   virtual void run()
   {
     OFReadWriteLocker locker(*rwlock);
-    if (0 == locker.rdlock())
+    if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == locker.trywrlock())) rw_cond5=1;
+    if (0 == locker.wrlock())
     {
-      rw_cond1 = 1; // acquired read lock
-      mutex->lock();
-      mutex->unlock();
-      if (0== locker.unlock()) rw_cond2=1;
-      mutex2->lock();
+      rw_cond6=1;
       mutex2->unlock();
-      if (OFReadWriteLock::busy == locker.tryrdlock()) rw_cond3=1;
-      if (0 == locker.rdlock()) rw_cond4=1;
-      // Implicit unlock() at the end
+      OFStandard::milliSleep(wait_timeout);
+      // Explicite unlock(), check if this causes one unlock() too much
+      if (0==locker.unlock()) rw_cond7=1;
     }
     return;
   }
 };
 
-class RWLockerT2: public OFThread
+class RWLockerT1: public OFThread
 {
+private:
+  RWLockerT2 &t2;
 public:
-  RWLockerT2(): OFThread() {}
-  ~RWLockerT2() {}
+  RWLockerT1(RWLockerT2 &t2): OFThread(), t2(t2) {}
+  ~RWLockerT1() {}
 
   virtual void run()
   {
     OFReadWriteLocker locker(*rwlock);
-    if ((0==mutex2->trylock())&&(OFReadWriteLock::busy == locker.trywrlock())) rw_cond5=1;
-    if (0 == locker.wrlock())
+    if (0 == locker.rdlock())
     {
-      rw_cond6=1;
+      t2.start();
+      rw_cond1 = 1; // acquired read lock
+      mutex->lock();
+      mutex->unlock();
+      if (0== locker.unlock()) rw_cond2=1;
+      mutex2->lock();
       mutex2->unlock();
-      OFStandard::milliSleep(wait_timeout);
-      // Explicite unlock(), check if this causes one unlock() too much
-      if (0==locker.unlock()) rw_cond7=1;
+      if (OFReadWriteLock::busy == locker.tryrdlock()) rw_cond3=1;
+      if (0 == locker.rdlock()) rw_cond4=1;
+      // Implicit unlock() at the end
     }
     return;
   }
@@ -419,17 +422,14 @@ static void rwlocker_test()
     BAILOUT(errmsg);
   }
 
-  RWLockerT1 t1;
-  if (0 != t1.start()) BAILOUT("unable to create thread, semaphore test failed");
-
   RWLockerT2 t2;
-  if (0 != t2.start()) BAILOUT("unable to create thread, semaphore test failed");
-
+  RWLockerT1 t1(t2);
+  if (0 != t1.start()) BAILOUT("unable to create thread, read/write lock test failed");
 
   int i=0;
   while ((i++<5) && ((!rw_cond1)||(!rw_cond5))) OFStandard::milliSleep(wait_timeout);
 
-  if ((!rw_cond1)||(!rw_cond5)) BAILOUT("read/write lock/unlock test failed");
+  if ((!rw_cond1)||(!rw_cond5)) BAILOUT("read/write lock test failed");
   condition = rwlockLocker.unlock();
   if (condition)
   {
@@ -444,10 +444,10 @@ static void rwlocker_test()
 
   i=0;
   while ((i++<5) && ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7))) OFStandard::milliSleep(wait_timeout);
-  if ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7)) BAILOUT("read/write lock/unlock test failed");
+  if ((!rw_cond2)||(!rw_cond3)||(!rw_cond4)||(!rw_cond5)||(!rw_cond6)||(!rw_cond7)) BAILOUT("read/write lock test failed");
 
-  if (0 != t1.join()) BAILOUT("unable to join thread, semaphore test failed");
-  if (0 != t2.join()) BAILOUT("unable to join thread, semaphore test failed");
+  if (0 != t1.join()) BAILOUT("unable to join thread, read/write lock test failed");
+  if (0 != t2.join()) BAILOUT("unable to join thread, read/write lock test failed");
 
   delete mutex;
   delete mutex2;
diff --git a/ofstd/tests/tvariant.cc b/ofstd/tests/tvariant.cc
new file mode 100644
index 0000000..da0f4af
--- /dev/null
+++ b/ofstd/tests/tvariant.cc
@@ -0,0 +1,110 @@
+#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
+
+#define OFTEST_OFSTD_ONLY
+#include "dcmtk/ofstd/oftest.h"
+#include "dcmtk/ofstd/ofvriant.h"
+
+struct int_visitor
+{
+    void operator()( double d )
+    {
+        // Avoid compiler warning on unused parameter
+        (void)d;
+        OFCHECK_FAIL( "wrong alternative <double> selected" );
+    }
+
+    void operator()( int i )
+    {
+        // Avoid compiler warning on unused parameter
+        (void)i;
+        OFCHECK( i == 42 );
+    }
+
+    void operator()( char c )
+    {
+        // Avoid compiler warning on unused parameter
+        (void)c;
+        OFCHECK_FAIL( "wrong alternative <char> selected" );
+    }
+};
+
+struct double_visitor
+{
+    bool operator()( double d )
+    {
+        // Avoid compiler warning on unused parameter
+        (void)d;
+        return d == 27.912456f;
+    }
+
+    bool operator()( int i )
+    {
+        // Avoid compiler warning on unused parameter
+        (void)i;
+        OFCHECK_FAIL( "wrong alternative <int> selected" );
+        return false;
+    }
+
+    bool operator()( char c )
+    {
+        // Avoid compiler warning on unused parameter
+        (void)c;
+        OFCHECK_FAIL( "wrong alternative <char> selected" );
+        return false;
+    }
+};
+
+OFTEST(ofstd_variant)
+{
+    // copy construction from alternative
+    OFvariant<int,float,bool> v0( true );
+
+    // default construction
+    OFvariant<int,float,bool> v1;
+
+    OFCHECK( OFget<bool>( &v0 ) );
+    OFCHECK( *OFget<bool>( &v0 ) );
+    OFCHECK( OFget<int>( &v1 ) );
+
+    // alternative changing assignment
+    v0 = 3.1415f;
+
+    // same alternative assignment
+    v1 = 7;
+
+    OFCHECK( !OFget<bool>( &v0 ) );
+    OFCHECK( OFget<float>( &v0 ) );
+    OFCHECK( *OFget<float>( &v0 ) == 3.1415f );
+    OFCHECK( OFget<int>( &v1 ) );
+    OFCHECK( *OFget<int>( &v1 ) == 7 );
+
+    // alternative changing assignment and copy construction
+    OFvariant<int,float,bool> v2( v0 = v1 );
+
+    OFCHECK( OFget<int>( &v0 ) );
+    OFCHECK( *OFget<int>( &v0 ) == 7 );
+    OFCHECK( OFget<int>( &v1 ) );
+    OFCHECK( *OFget<int>( &v1 ) == 7 );
+    OFCHECK( OFget<int>( &v2 ) );
+    OFCHECK( *OFget<int>( &v2 ) == 7 );
+
+    // same alternative assignment
+    v0 = 42;
+
+    OFCHECK( OFget<int>( &v0 ) );
+    OFCHECK( *OFget<int>( &v0 ) == 42 );
+
+    // same alternative assignment
+    v1 = v0;
+
+    OFCHECK( OFget<int>( &v0 ) );
+    OFCHECK( *OFget<int>( &v0 ) == 42 );
+    OFCHECK( OFget<int>( &v1 ) );
+    OFCHECK( *OFget<int>( &v1 ) == 42 );
+
+    v2 = 27.912456f;
+
+    // test visitation
+    OFvisit<void>( int_visitor(), v0 );
+    OFCHECK( OFvisit<bool>( double_visitor(), const_cast<const OFvariant<int,float,bool>&>( v2 ) ) );
+}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/dcmtk.git



More information about the debian-med-commit mailing list