JnJ Software:

DicomLogger ScreenCaps:

JnJ DicomLogger
DICOM communications logger for your learning or testing/debugging pleasure. Works as stand-alone application or is created as needed by other (JnJ) applications. Organizes the many levels and details of DICOM protocol exchanges into a readily browseable format. the amount of logged information can be adjusted by the user. designed to be a singleton object - only one running at a time on the system - so can be shared among simultaneous applications.

More than you ever really wanted to know about the DICOM protocol. Underlying all the JnJ Software is a fairly complete implementation of the DICOM standard. This represented a lot of work and I needed a good mechanism for debugging. I developed this tool since most software typically provides no effective way to see what is happening between DICOM machines other than some lame final status code. Note only JnJ software will send logging detail to DicomLogger, but you can see all the data sent to and from the remote machine. This sure beats going through a million lines of printf output to a text file and it really teaches you how the DICOM protocol works.

Released for Public use 061030
Current version 3.1.2 (Release Notes)
NOTE no longer under license control - freely available for use with other JnJ software.
Under continuing development - check back for updates
Short Description
Dicom communications logger to display the details of the exchanges between DICOM transmitters and receivers. Note that events happening on the local computer are only logged from JnJ applications that have been built using the JnJ libDICOM software libraries. The level of information detail that is logged is configurable.

DICOM is great when everything works. However, when it does not, there are typically very few indications of what went wrong. Some public domain DICOM libraries can be put into a verbose mode, but this consists of selected print statements output to a text file or terminal window. This logging system uniquely organizes and presents the myriad details of the DICOM protocol in an efficient manner for browsing and debugging. In this regard, the log record has instructional value for translating the DICOM standards documentation into what actually happens during association negotiations and exchanges.

This logger is designed such that it can be created on the fly by other applications. In this case, it tries to ensure that all the invoking applications create and/or connect to a single (i.e. singleton) logging object so it can be shared among simultaneous processes.

The browseable log tree is organized by top level process number, process thread number, then the messages from the application/library from within the thread. This behavior is particularly useful when there are simultaneous applications/processes running - e.g. sending and receiving. Also when the application has been split into separate threads for improved performance - e.g. receiving from multiple systems. An event number counter is incremented with each message which allows tracing of events in time.

Developed and tested for Windows2000 and WindowsXP, only limited testing on other platforms.

JnJ DICOM specific
Since the logger relies on information sent to its external interfaces by elements of my DICOM software library, it does not display information from any other type of software running on the local computer. DICOM responses and data from any remote computer that are received by JnJ applications are fully logged. I have developed my libDICOM library as an implementation of the DICOM standards, and the structure of the logged information reflects my choices in how to design the software.

Simultaneous Messaging
The logger object can receive message entries from any number of simultaneous applications or application threads. Additional work needs to be completed on the implementation and testing associated with this wickedly complex design aspect of both libDICOM and the DicomLogger.

NOTE: Installed automatically with other JnJ software
NOTE - Before other applications can create this logger on demand, the COM classes must be registered on the computer. The installer should do this but if there is a problem, try running DicomLogger by itself at least once on the computer so that it becomes automatically registered as being available.
(Whattaya mean bugs?)
PLEASE send any comments about difficulties/bugs/desired features and I will try to incorporate them.
Bug Reports
Detailed Instructions
(Under Construction)
Copyright 2012, JnJ Associates LLC