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
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.
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.
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.
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. |
PresentationLUTinFilmSession |
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). |
PresentationLUTMatchRequired |
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). |
SupportsImageSize |
true or false |
Some Print SCPs do not support the optional "Requested Image Size" attribute in Basic Grayscale Image Box N-SET operations. |
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. |
SupportsTrim |
true or false |
Some Print SCPs do not support the optional "Trim" attribute in Basic Film Box N-CREATE or N-SET operations. |
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. |
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. |
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. |
OmitSOPClassUIDFromCreateResponse |
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.
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 = falseThe 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.
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.logwhere 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.
====================== 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
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.
These test cases are generally associated with the Radiology PDI profile
Test Case 1931: Media “Reader” Read RSNA 2004 CDThe 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. ReferencesRAD TF InstructionsTo run this test, follow these steps:
Evaluation
Supplemental Information |
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.
RAD TF
To run this test, follow these steps: