HIMMS and RSNA
IHE
Integrating the Healthcare Enterprise

Test Plan for Print Composers
Version  9.0.0
20-September-2005


Marco Eichelberg,  Klaus Kleber, Jörg Riesmeier,
Adapted for IHE Year 5 by David Maffitt


   Kuratorium OFFIS e.V., Escherweg 2, 26121 Oldenburg, Germany
Institute for Microtherapy, Universitätsstraße 142, 44799 Bochum, Germany
Mallinckrodt Institute of Radiology, Washington University, St Louis, MO, USA

Contents:

Introduction
Submission of Results
Print Composer Test 522

  1. Configuring and Using the DICOMscope Print SCP
  2. Test Procedure
  3. Syntactical Validation of DICOM Print Communication
  4. Visual Validation of DICOM Print Communication

Test Cases: PDI

  1. Test Case 1931: Media “Reader” Read RSNA 2004 CD
  2. Test Case 1932: Media “Reader” Reads Vendor CDs

Introduction

Print Composer Actors are required to implement the IHE “Print Request with Presentation LUT“ Transaction defined in the Technical Framework. Interoperability between Print Composer and Print Server actors is a prerequisite for a successful performance of this transaction. 
Section 2 contains a test procedure describing how Print Composers can be tested with the IHE MESA tools.  The MESA tools contain a Print Server that implements the requirements of the “Print Request with Presentation LUT” transaction.  It should be noted that interoperability between a Print Composer and the MESA testing Print Server does improve the probability for interoperability between the Print Composer Actor and a Print Server Actor provided by a different vendor, but is in no way a guarantee for interoperability.
You are required to submit at least two log files to project management: One log file showing successful printing to PRINTSCP1 and a second log file showing printing to PRINTSCP2. See section 2 for details.

Submission of Results

Test descriptions below inform the reader to “submit results to the Project Manager”. This is does not mean “email”. The current submission process should be documented by the Project Manager, but will not include emailing files directly to the Project Manager.

Print Composer Test 522

The IHE MESA Tools contain, among other components, a Java-based GUI application called “DICOMscope”.  This application is used in the test procedure for Print Composers.  Installation instructions and a user manual for the DICOMscope application are provided in different documents with the IHE MESA distribution.  The following discussion assumes that the application has been successfully installed and that the user has a basic understanding of the application’s concepts as laid out in the user manual.  However, not all functions offered by the DICOMscope application are required or used in this test procedure.

Configuring and Using the DICOMscope Print SCP

The DICOMscope Print SCP shares a common configuration file with other parts of the DICOMscope application.  The configuration file is a simple text file and can be edited with any text editor.  The overall structure of the configuration file is described in the DICOMscope manual.  Of interest for the Print SCP are only the parts of the file that are started with the identifier [[COMMUNICATION]].
DICOMscope allows to have multiple Print SCPs operating in parallel, with different configurations. Each configuration is described by a separate section, which is started by a section name in square brackets that must be unique for the configuration file, e. g. [MY_PRINTER].  Section names should consist only of uppercase letters, numbers and the underscore character.  The section name is followed by a number of entries of the form keyword = value.  The following table describes all keywords that can be used to configure a DICOMscope Print SCP instance.

Keyword

Value

Description

Description

string

Human readable description of the Print SCP.

Hostname

string

The IP number or domain name of the communication partner in conventional TCP/IP notation. Value must be: localhost

Port

1..65535

IP port number under which the Print SCP receives DICOM associations. Different Print SCPs on one system require different port numbers.  Please note that port numbers < 1024 require root privileges on Unix systems.

Type

string

Value must be: LOCALPRINTER

AETitle

string

DICOM application entity title used by the Print SCP to identify itself during association negotiation.

MaxPDU

4096..131072

Maximum receive PDU (protocol data unit) size to use.  Must be between 4096 and 131072.  Default is 16384.

DisableNewVRs

true or false

Do not create data types (VRs) that were defined in post-1993 editions of the DICOM standard when converting implicit VR files to explicit VR network transmission. Optional setting, default is: false.

ImplicitOnly

true or false

Only negotiate the default Implicit VR Little Endian transfer syntax for all abstract syntaxes. This setting is useful if we're communicating with very old DICOM software which claims to support Explicit VR communication but fails to do so... 

Supports12Bit

true or false

Accept image pixel data with 12 bits/pixel.  Optional setting, default is: true.

SupportsPresentationLUT

true or false

Activate support for the Presentation LUT SOP Class.  Optional setting, default is: false.

PresentationLUTinFilm­Session

true or false

The 1999 edition of the DICOM standard contains an inconsistency in the definition of the Presentation LUT SOP class.  The attributes "Referenced Presentation LUT", "Illumination" and "Reflected Ambient Light" can either be part of the Basic Film Session or be part of the Basic Film  Box. DICOM Correction Proposal CP 173 defines that these attributes have to be specified on Basic Film Box level.  However, not all existing Print SCPs supporting the Presentation LUT SOP Class are implemented in accordance with CP 173. The Print SCP can, therefore, be configured to use either Film Session or Film Box (but never both).
If flag is true, attributes are accepted and returned in Basic Film Session instead of Basic Film Box. Optional setting, default is: false (which means that behavior is consistent with CP 173.)

PresentationLUTMatch­Required

true or false

Some Print SCPs which support Presentation LUTs require that the number  of entries in a Presentation LUT matches the bit depth of the image pixel  data (4096 entries for 12 bit pixel data, 256 entries for 8 bit pixel  data). 
If flag is true, enforce a matching rule as described above. All Presentation LUT N-CREATE or Basic Grayscale Image Box N-SET operations that would violate the rule will be refused. Optional setting, default is: true.

SupportsImageSize

true or false

Some Print SCPs do not support the optional "Requested Image Size" attribute in Basic Grayscale Image Box N-SET operations.
If flag is true, support requested image size. Otherwise refuse N-SET operations containing a requested image size attribute. Optional setting, default is: false. 

SupportsDecimateCrop

true or false

Some Print SCPs do not support the optional "Requested Decimate/Crop Behavior" attribute defined in Supplement 37 in Basic Grayscale Image Box N-SET operations.
If flag is true, support requested decimate/crop behavior.  Otherwise refuse N-SET operations containing this attribute. Optional setting, default is: false.

SupportsTrim

true or false

Some Print SCPs do not support the optional "Trim" attribute in Basic Film Box N-CREATE or N-SET operations.
If flag is true, support trim. Otherwise refuse N-CREATE or N-SET operations containing this attribute. Optional setting, default is: false.

DisplayFormat

string\string…

this entry specifies all STANDARD\C,R image display formats accepted by the Print SCP for portrait orientation. Landscape image display formats are derived automatically. This is a mandatory entry, no default.

FilmSizeID

string\string…

Film Size ID identifiers supported by the printer for the Basic Film Box. Multiple values can be specified, must be separated by '\' characters.  The first specified value is used as the default. This is a mandatory setting.

MediumType

string\string…

Medium Type identifiers supported by the printer for the Basic Film Session. Multiple values can be specified, must be separated by '\' characters.  The first specified value is used as the default. This is a mandatory entry.

ResolutionID

string\string…

Requested Resolution ID identifiers supported by the printer for the Basic Film Box (optional attribute defined in Supplement 37). Multiple values can be specified, must be separated by '\' characters.
The first specified value is used as the default. This  is an optional entry. If omitted, the Print SCP does not support the  attribute and rejects N-CREATE or N-SET requests containing the attribute.

MagnificationType

string\string…

Magnification Type identifiers supported by the printer for the Basic  Film Box or Basic Grayscale Image Box. Multiple values can be specified,  must be separated by '\' characters.  The first specified value is used as the default. This is a mandatory entry.

SmoothingType

string\string…

Smoothing Type identifiers supported by the printer for the Basic Film  Box or Image Box. Multiple values can be specified, must be separated by  '\' characters.
The first specified value is used as the default. This  is an optional entry. If omitted, the Print SCP does not support the  attribute and rejects N-CREATE or N-SET requests containing the attribute.

BorderDensity

string\string…

Border Density identifiers supported by the printer for the Basic Film Box. Multiple values can be specified, must be separated by '\' characters. If any of the identifiers is numeric, then all numbers  are accepted. The first specified value is used as the default. This is  an optional entry. If omitted, the Print SCP does not support the  attribute and rejects N-CREATE or N-SET requests containing the  attribute.

EmptyImageDensity

string\string…

Empty Image Density identifiers supported by the printer for the Basic  Film Box. Multiple values can be specified, must be separated by '\'  characters. If any of the identifiers is numeric, then all numbers  are accepted. The first specified value is used as the default. This is  an optional entry. If omitted, the Print SCP does not support the  attribute and rejects N-CREATE or N-SET requests containing the  attribute.

MaxDensity

int

Default max density that is used when the Print SCU does not specify max density.  This is a mandatory entry.  Note: the Print SCP will accept any syntactically correct value for Max Density even if the value is higher than the Max Density default defined here.

MinDensity

int

Default min density that is used when the Print SCU does not specify min density. This is an optional entry. If omitted, the Print SCP does not support the attribute and rejects N-CREATE or N-SET requests containing the attribute.  Note: the Print SCP will accept any syntactically correct value for Min Density even if the value is lower than the Min Density default defined here.

Configuration_n

string

Configuration Information that can be sent to the printer for the Basic  Film Box or Image Box. Only a single value per entry can be specified  because values may contain backslash characters. (VR=ST). Keywords are  "Configuration_1", "Configuration_2", etc., without leading zeroes. These are optional settings. If omitted, the Print  SCP does not support the attribute and rejects N-CREATE or N-SET requests  containing the attribute. The Print SCP default for Configuration  Information is always an empty string.

FilmDestination

string\string…

Film Destination identifiers supported by the Print SCP for the Basic  Film Session. Multiple values can be specified, must be separated by '\'  characters.  The first specified value is used as the default. This  is a mandatory entry.

OmitSOPClassUID­FromCreateResponse

true or false

The Affected SOP Class UID attribute is optional in DIMSE N-CREATE-RSP messages but some clients rely on its presence. This setting can be used to test client behavior. Defines whether the Print SCP should omit Affected SOP Class UID in DIMSE N-CREATE-RSP messages. This is an optional setting, default is false.

When the DICOMscope application is started, a separate Print SCP application is started for each section in the configuration file correctly defining a Print SCP.  As an alternative, a Print SCP can also be started manually without the DICOMscope GUI.  The command line Print SCP is called “dcmprscp” and is automatically installed together with DICOMscope.  The following command line options are available:

dcmprscp: DICOM basic grayscale print management SCP
usage: dcmprscp [options]
general options:
    -h  --help          print this help text and exit
    -v  --verbose       verbose mode, print actions
    -d     --debug         debug mode,    print debug information
processing options:
    -c  --config        [f]ilename: string
                        process using settings    from configuration file
    -p  --printer       [n]ame: string (default: 1st printer    in cfg file)
                        select printer with    identifier [n] from cfg file
    +d  --dump          print all DIMSE messages
    -l  --logfile       print to log file instead of stdout

The name of the configuration file (option –-config) and the printer name (the section heading from the configuration file, option –-printer) should always be passed on the command line.  If the tool is started with the verbose and dump options, a detailed log of it’s operations including a complete log of the DIMSE communication is written to the console.  The –-logfile option causes this information to be written into a text file in the log subdirectory for later examination. 
When running, the Print SCP accepts a single DICOM association at a time – multiple clients in parallel are not supported.  Since Print SCP is not connected to a real printer, it does not create hardcopies.  Instead, a print job is stored in the local database (which is shared with the other parts of the DICOMscope application).  Each film of a print job is stored as a DICOM Stored Print object.  Each image of a print job is stored as a DICOM Hardcopy Grayscale Image object.  When Print SCP is run in parallel with the DICOMscope application, the DICOMscope database browser will indicate that new objects have arrived and will allow to load and display these objects.  Hardcopy Grayscale images can be loaded and displayed as any other DICOM image, however, specific characteristics like a Presentation LUT or the image’s polarity are not preserved in the Hardcopy Grayscale image but in the Stored Print object.  Loading a Stored Print causes a preview of the hardcopy to be rendered in DICOMscope’s print preview panel.  This display correctly renders Presentation LUT, Polarity etc.

Test Procedure

The IHE “Print Request with Presentation LUT“ transaction defines minimum requirements for Print Composer actors.  In particular, the Presentation LUT SOP Class must be supported, and Presentation LUTs must be referenced on Basic Film Box level (in accordance with DICOM Correction Proposal 173).  However, Print Composers still have many “degrees of freedom” in terms of their support for optional attributes.  Therefore, we do not propose a static set of tests for a Print Composer, but instead a (rather general) procedure.  The DICOMscope software default installation defines two Print SCPs:

PRINTSCP1 accepts associations on port 10005.  This Print SCP supports most optional features of the DICOM print protocol:

PRINTSCP2 accepts associations on port 10006.  This Print SCP is restricted to the minimum of features required by the IHE technical framework:

Testing a Print Composer should start with PRINTSCP1.  Vendors should create a couple of print jobs exercising the different options available to their Print Composer implementations.  The results of these print jobs should be checked as described in the following two sections. 
If the print jobs succeed, the tests should be repeated with PRINTSCP2, which poses many restrictions on the Print Composer.  If printing with PRINTSCP2 also succeeds, probability is high that printing on other Print Server actors will also succeed. 
A third, optional series of tests can be performed by changing the following setting in the DICOMscope configuration file for PRINTSCP2 and repeating the tests with PRINTSCP2:

     Supports12Bit =  false
The DICOMscope software must be restarted after this change.  Now PRINTSCP2 will refuse any image transmitted in a Basic Grayscale Image Box with more than 8 bits/pixel.  This is the most restrictive setting available with the DICOMscope Print SCP.
As described above, all print jobs created by the DICOMscope Print SCP are stored in the local database as a number of Stored Print and Hardcopy Grayscale Image objects.  With a large number of tests, the database can quickly become crowded.  We recommend to erase the database before starting a new series of tests.  This can be done by terminating the DICOMscope application and deleting all files (including index.dat) from the subdirectory named database in the DICOMscope folder.  We also recommend to delete all old log files from the subdirectory named log before starting a new series of tests.

Syntactical Validation of DICOM Print Communication

The DICOMscope Print SCP creates detailed logs of all DICOM communication with a Print SCU.  The log files are in plain text format and can be opened and printed with any text editor.  They are located in the log subdirectory of the DICOMscope application folder.  The filenames have the form

     PrintSCP_XXXX_YYYYMMDD_HHMMSS.log
where XXXX is the symbolic printer name (section title from the DICOMscope configuration file) and YYYYMMDD HHMMSS are date and time when the application was started.  A log file may contain multiple print jobs since it remains open as long as the DICOMscope Print SCP is running.
For each print job, the log file shows the DICOM association negotiation first, followed by the DIMSE messages exchanged between SCU and SCP.  Figure 3.3.1 below shows an example for an association request.  All items of the A-ASSOCIATE-RQ protocol data unit as defined in part 7 and 8 of the DICOM standard are shown.  A basic understanding of the DICOM association protocol (ACSE) is required to read this part of the log.  When evaluating the log, it should be checked whether the Presentation LUT SOP class has been both proposed and accepted.

====================== BEGIN    A-ASSOCIATE-RQ =====================
          Our Implementation Class UID:    1.2.276.0.7230010.3.0.3.4.1
          Our Implementation Version Name:    OFFIS_DCMTK_341
          Their Implementation Class    UID:    1.2.276.0.7230010.3.0.3.4.1
          Their Implementation Version Name:    OFFIS_DCMTK_341
          Application Context Name:    1.2.840.10008.3.1.1.1
          Calling Application Name:    DCMPSTATE
          Called Application Name:     LOCALPRINTER_1
          Responding Application Name: 
          Our Max PDU Receive Size: 32768
          Their Max PDU Receive Size: 32768
          Presentation Contexts:
               Context ID:        1 (Proposed)
                 Abstract Syntax: =BasicGrayscalePrintManagementMetaSOPClass
                 Proposed SCP/SCU Role: Default
                 Accepted SCP/SCU Role: Default
                 Proposed Transfer Syntax(es):
                =BigEndianExplicit
                =LittleEndianExplicit
                =LittleEndianImplicit
               Context ID:        3 (Proposed)
                 Abstract Syntax: =PresentationLUTSOPClass
                 Proposed SCP/SCU Role: Default
                 Accepted SCP/SCU Role: Default
                 Proposed Transfer Syntax(es):
                =BigEndianExplicit
                =LittleEndianExplicit
                =LittleEndianImplicit
          Requested Extended Negotiation:    none
          Accepted Extended Negotiation:    none
          ======================= END    A-ASSOCIATE-RQ ======================

Figure 3.3.1: Print SCP Log – Association Negotiation
Figure 3.3.2 below shows an example for the DIMSE message log. It shows a N-SET request sent to a Basic Grayscale Image Box object, followed by the N-SET response from the Print SCP.  Evaluating this part of the log requires a basic understanding of the DICOM Message Service Element (DIMSE) and the definition of the DICOM Print Management Service Class.  In particular it should be checked whether a Presentation LUT instance has been created by the Print Composer and whether it has been correctly referenced (activated) as part of the Basic Film Box N-CREATE request.  The status codes sent back by the Print SCP for each message should be checked.  For most error and warning codes returned by the Print SCP, additional information is stored in the log file (preceding the response message).

===================== INCOMING    DIMSE MESSAGE ====================
          Message Type                  : N-SET RQ
          Message ID                    : 5
          Requested SOP Class UID       : BasicGrayscaleImageBoxSOPClass
          Requested SOP Instance UID    :    1.2.276.0.7230010.3.4.2139363186.2206.960455839.7
          Data Set                      : present
# Dicom-Data-Set
          # Used TransferSyntax:    BigEndianExplicit
          (2020,0010) US    1                                      #     2,     1  ImageBoxPosition
          (2020,0110) SQ    (Sequence with explicit Length #=1)    #2097262,     1  BasicGrayscaleImageSequence
                 (fffe,e000) na    (Item with    explicit Length  #=9)       #2097254,  1     Item
                  (0028,0002) US    1                                      #     2,     1  SamplesPerPixel
                  (0028,0004) CS    [MONOCHROME2]                          #    12,     1  PhotometricInterpretation
                  (0028,0010) US    1024                                   #     2,     1  Rows
                  (0028,0011) US    1024                                   #     2,     1  Columns
                  (0028,0100) US    16                                     #     2,     1  BitsAllocated
                  (0028,0101) US    12                                     #     2,     1  BitsStored
                  (0028,0102) US    11                                     #     2,     1  HighBit
                  (0028,0103) US    0                                      #     2,     1  PixelRepresentation
                  (7fe0,0010) OW       0160\0160\0160\0160\0177\0177\0177\0177\017d\017d... #2097152,  1     PixelData
                 (fffe,e00d) na       (ItemDelimitationItem for re-encoding) #     0,     1  ItemDelimitationItem
          (fffe,e0dd) na    (SequenceDelimitationItem for re-enc.)    #     0,  1     SequenceDelimitationItem
          ======================= END DIMSE    MESSAGE =======================
===================== OUTGOING    DIMSE MESSAGE ====================
          Message Type                  : N-SET RSP
          Message ID Being Responded To : 5
          Affected SOP Class UID        : none
          Affected SOP Instance UID     : none
          Data Set                      : present
          DIMSE Status                  : 0x0000: Success
# Dicom-Data-Set
          # Used TransferSyntax: UnknownTransferSyntax
          (2020,0010) US    1                                      #     2,     1  ImageBoxPosition
          ======================= END DIMSE    MESSAGE =======================

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Figure 3.3.2: Print SCP Log – DIMSE Communication

Visual Validation of DICOM Print Communication

The second step of a print job validation is the visual test.  The stored print object related to the print job should be located in DICOMscope’s database browser and should be loaded into DICOMscope’s Print Preview panel (e. g. by double-clicking on the Stored Print object).  The Print Preview should display a correct softcopy look-alike of the intended hardcopy.  In particular, the images on the Print Preview are displayed with the appropriate Presentation LUT applied.  If DICOMscope is calibrated for the current softcopy display, GSDF is also correctly applied.  It should be noted that certain optional attributes such as Magnification Type, Smoothing Type, Requested Image Size and Requested Decimate/Crop Behavior are ignored in the Print Preview.  Scaling of the images is always done with a bilinear interpolation.  The image data, polarity, Presentation LUT, Image Display Format and Orientation are observed, however.

Test Cases: PDI

These test cases are generally associated with the Radiology PDI profile

Test Case 1931: Media “Reader” Read RSNA 2004 CD

The purpose of this test is for the Display actor to open the DICOMDIR file on the RSNA 2004 CD and render the images and other composite objects on the CD.

References

RAD TF

Instructions

To run this test, follow these steps:

  1. Obtain the RSNA 2004 PDI Demonstration CD. If you do not have a physical copy of the CD, download the ISO image of the CD from the MESA distribution page and create a CD from the ISO image.
  2. Obtain the text file RSNA2004CD.doc from the MESA documentation page. This file will list all of the vendor studies on the RSNA CD.
  3. Use your DICOM application to open the DICOMDIR file on the RSNA CD.
  4. Select and display all of the studies on the CD. For those studies with multiple images, you can select a small subset of the images.
  5. For each set of vendor data, modify the file RSNA2004CD.doc to indicate if you can successfully render/print the data. Questions are Yes/No. You can add comments at the bottom of the file.

Evaluation

  1. Submit the modified text file to the Project Manager.
  2. If there are problems with rendering, submit a screen capture demonstrating the problem and/or submit additional documentation in the RSNA2004CD.doc file.

Supplemental Information

Test Case 1932: Media “Reader” Reads Vendor CDs

The purpose of this test is for the Display actor to open the DICOMDIR file on CDs provided by vendors for the RSNA 2004 PDI demonstration and to render the composite objects on those CDs.

References

RAD TF

Instructions

To run this test, follow these steps:

  1. Obtain the vendor CDs from the RSNA 2004 PDI Demonstration. If you do not have a physical copy of the CDs, download the ISO images from the MESA distribution page and create a CD from the ISO image.
  2. Obtain the text file VENDOR2004CD.doc from the MESA documentation page. This file will list all of the vendor CDs.
  3. Use your DICOM application to open the DICOMDIR file on each vendor CD.
  4. Select and display all of the studies on the CD. For those studies with multiple images, you can select a small subset of the images.
  5. For each set of vendor data, modify the file VENDOR2004CD.doc to indicate if you can successfully render/print the data. Questions are Yes/No. You can add comments at the bottom of the file.

Evaluation

  1. Submit the modified text file to the Project Manager.
  2. If there are problems with rendering, submit a screen capture demonstrating the problem and/or submit additional documentation in the VENDOR2004CD.doc file.

Supplemental Information