/* Define `ssize_t' to `long' if <sys/types.h> does not define. */
#define HAVE_NO_TYPEDEF_SSIZE_T
#ifdef HAVE_NO_TYPEDEF_SSIZE_T
#define ssize_t long
#endif
in DCMTK ssize_t is by definition of "long" has least 32 bit while in hdf5 it needs to be at least 64 bit wide (definition "long long"). So my impression is: tha if you only use the typedef from hdf5 I would not see a problem, and there should not be a problem (of course, if you compile on 32 bit platforms, hdf5 might fail then).
I agree. Using an ssize_t typedef with DCMTK that is "too large" is not a problem. DCMTK just expects ssize_t to be available, since on Posix/Linux platforms this is the return type for system functions like read() or write().