Printing MG image

Questions regarding the DCMPRINT library, a DCMTK add-on that implements a DICOM Print Management SCP and SCU

Moderator: Moderator Team

Post Reply
Message
Author
martinrame
Posts: 347
Joined: Mon, 2009-02-23, 19:57

Printing MG image

#1 Post by martinrame »

Hi, I'm trying to print MG images using tcpprt (my company has payed for it, I tried contacting Offis.de by email, but I'm not receiving any answer :x, please, let me know if there's any official support way), no luck so far. I must point that I can only print US images.

This is the command I use:

Code: Select all

./tcpprt -c ./tcpprt.cfg --auto 1 my_image.dcm
This is my tcpprt.cfg file:

Code: Select all

;  =======================================================================
;  The "DICOM" configuration section is mandatory and used both by print client
;  and print server. It defines how the print server behaves in terms of the
;  DICOM protocol  which services, classes and attributes are supported.
;  Mandatory subsections are PRINTER, DIMSE, TCPIP and SESSION.
[[[DICOM]]]
;  =======================================================================

;  -----------------------------------------------------------------------
;  TCP/IP settings for the print client.
[[TCPIP]]
;  -----------------------------------------------------------------------

;  -----------------------------------------------------------------------
;  Default settings for the Print Server to print to.
;  Can be overridden by command line parameters.
[Server]
;  -----------------------------------------------------------------------

; default IP address or hostname of server
Address = 127.0.0.1 

; default port number of server
Port = 3100

; default server (called) AEtitle
ServerAETitle = DCMPRINT_SCP

; default client (calling) AEtitle
ClientAETitle = FCR-CSL


;  -----------------------------------------------------------------------
;  This section is mandatory. It defines the DICOM behaviour of the print
;  server. The subsection SERVICECLASSES defines which Meta SOP Classes ("print
;  services") and which optional SOP classes will be supported by the print
;  server. This section can be used to enable/disable certain services.
[[DIMSE]]
;  -----------------------------------------------------------------------

;  -----------------------------------------------------------------------
;  DICOM SOP Classes and Meta SOP Classes that the Print Client should
;  try to negotiate.  In it is usually not recommendable to negotiate both
;  Basic Grayscale and Basic Color in a single association since many
;  print servers will have difficulties with that.
;
;  At least BasicGrayscaleMetaSOPClass or BasicColorMetaSOPClass
;  must be enabled. Annotation and PrintJob are optional.
[Service Classes]
;  -----------------------------------------------------------------------
BasicGrayscaleMetaSOPClass       = YES
BasicColorMetaSOPClass           = YES
Annotation                       = YES
PrintJob                         = YES
PresentationLUT                  = YES


;  -----------------------------------------------------------------------
;  Compatibility options that might require tweaking when talking to
;  very old or poorly implemented SCPs.
[Compatibility]
;  -----------------------------------------------------------------------

; Only negotiate Implicit VR Little Endian transfer syntax, default: NO
ImplicitOnly  = NO

; Maximum PDU (protocol data unit) size to use when negotiating
; incoming connections. Must be between 4096 and 131072.
; Default is 16384.
MaxPDU = 32768

; Print SCU: send image data with 12 bits/pixel instead of 8 bits/pixel.
; Optional setting, default: NO
Send12BitImages = YES

; Print SCU: always include the (optional) dataset when sending an
; N-CREATE message for the basic film session. Needed on some printers
; (including the Drystar 5500) which expect this dataset to be present.
; Optional setting, default: YES
SendSessionCreateDataset = NO

; Print SCU: generate SOP instance UIDs for N-CREATE messages instead of
; allowing the SCP to generate the UIDs. Needed on some printers that expect
; SOP instance UIDs to be always present.
; Optional setting, default: YES
GenerateSOPInstanceUID = NO


;  =======================================================================
;  The client reads this section in order to select the options and values
;  which are offered to the user.
;  The subsection PAGESIZE is mandatory, everything else is optional.
[[[CONFIGURATION]]]
;  =======================================================================

;  -----------------------------------------------------------------------
[[PAGE SIZE]]
;  -----------------------------------------------------------------------

;  -----------------------------------------------------------------------
;  Each section defines one keyword that may be sent in Film Size ID.
;  The keyword sent is identical to the keyword in brackets here after
;  name mangling (conversion to uppercase, removal of space characters).
[A4]
;  -----------------------------------------------------------------------

; optional: human readable description of this configuration setting
Description  = Page size A4

; optional: canonical DICOM name of this page size. Unlike the section
; header, this attribute value is not mangled, i.e. there is no uppercase
; conversion and space characters are not removed. Can be used to specify
; DICOM terms that would be 'destroyed' by the mangling algorithm.
; Default is the mangled value of the section header.
CanonicalName = A4

[8INX10IN]
Description  = 8x10 inch

[10INX12IN]
Description  = 10x12 inch

[10INX14IN]
Description  = 10x14 inch

[11INX14IN]
Description  = 11x14 inch

[14INX14IN]
Description  = 14x14 inch

[14INX17IN]
Description  = 14x17 inch

[24CMX24CM]
Description  = 24x24 cm

[24CMX30CM]
Description  = 24x30 cm


;  -----------------------------------------------------------------------
[[CONFIGURATION INFORMATION]]
;  -----------------------------------------------------------------------

;  -----------------------------------------------------------------------
;  each section defines one keyword that may be sent in Configuration Information.
;  The keyword sent is identical to the keyword in brackets here after name mangling
;  (conversion to uppercase, removal of space characters).
[Spot_DiagLines]
;  -----------------------------------------------------------------------

; optional: human readable description of this configuration setting
Description  = Use custom halftone procedure (diagonal lines)

; optional: canonical DICOM name of this configuration setting.
; Unlike the section header, this attribute value is not mangled, i.e.
; there is no uppercase conversion and space characters are not removed.
; Can be used to specify DICOM terms that would be 'destroyed' by the
; mangling algorithm.
; Default is the mangled value of the section header.
CanonicalName = SPOT_DIAGLINES

[Spot_HorzLines]
Description  = Use custom halftone procedure (horizontal lines)

[Spot_Dots]
Description  = Use custom halftone procedure (dot raster)


;  -----------------------------------------------------------------------
[[MEDIUM TYPE]]
;  -----------------------------------------------------------------------

;  -----------------------------------------------------------------------
;  each section defines one keyword that may be sent in Medium Type.
;  The keyword sent is identical to the keyword in brackets here after name mangling
;  (conversion to uppercase, removal of space characters).
[PAPER]
;  -----------------------------------------------------------------------

; optional: human readable description of this configuration setting
Description  = Create hardcopy on paper

; optional: canonical DICOM name of this medium type. Unlike the section
; header, this attribute value is not mangled, i.e. there is no uppercase
; conversion and space characters are not removed. Can be used to specify
; DICOM terms that would be 'destroyed' by the mangling algorithm.
; Default is the mangled value of the section header.
CanonicalName = PAPER

;  -----------------------------------------------------------------------
;  Remember that "BLUE FILM" is mangled to "BLUEFILM" in a section header
[BLUE FILM]
;  -----------------------------------------------------------------------

Description  = Create hardcopy on blue film
CanonicalName = BLUE FILM


;  =======================================================================
;  The Layout Formats section is mandatory for both client and server. It
;  defines the page layouts supported by the server.
;  DICOM defines the following print layouts ("Image Display Formats"):
;  STANDARD, ROW, COL, SLIDE, SUPERSLIDE and CUSTOM. Some of these layouts have
;  additional parameters.
[[[LAYOUTS]]]
;  =======================================================================

;  -----------------------------------------------------------------------
;  If this section is present, we assume the SCP supports the STANDARD\x,y
;  image display format. We don't define possible combinations of rows
;  and columns, though.
[[STANDARD]]
;  -----------------------------------------------------------------------

[General]

; optional: human readable description of this image display format
Description   = DICOM standard format

; optional: canonical DICOM name of this display format. Unlike the section
; header, this attribute value is not mangled, i.e. there is no uppercase
; conversion and space characters are not removed. Can be used to specify
; DICOM terms that would be 'destroyed' by the mangling algorithm.
; Default is the mangled value of the super-section header.
CanonicalName = STANDARD

;  -----------------------------------------------------------------------
;  If this section is present, we assume the SCP supports the COL\x,y,z
;  image display format (which is quite unusual).
[[COL]]
;  -----------------------------------------------------------------------

[General]
Description   = DICOM standard column format

;  -----------------------------------------------------------------------
;  If this section is present, we assume the SCP supports the ROW\x,y,z
;  image display format (which is quite unusual).
[[ROW]]
;  -----------------------------------------------------------------------

[General]
Description   = DICOM standard row format

;  -----------------------------------------------------------------------
;  If this section is present, we assume the SCP supports the SLIDE
;  image display format (which is quite unusual).
[[SLIDE]]
;  -----------------------------------------------------------------------

[General]
Description   = 35mm Slides

;  -----------------------------------------------------------------------
;  If this section is present, we assume the SCP supports the SUPERSLIDE
;  image display format (which is quite unusual).
[[SUPERSLIDE]]
;  -----------------------------------------------------------------------

[General]
Description   = 40mm Slides

;  -----------------------------------------------------------------------
;  This section defines that a proprietary image display format called
;  CUSTOM\1 is supported by the printer. Generally not recommended.
[[CUSTOM-1]]
;  -----------------------------------------------------------------------

[General]
Description  = Custom printer layout


;  =======================================================================
;  The Print Client Batch Mode section is optional.
;  The print client, supports a "batch mode" in which the
;  user only specifies a "mode" and one or more DICOM image file names at
;  command line. This section contains the definitions of the different modes.
;  All subsections are optional, but at least one must be present - otherwise it
;  will not be possible to use batch mode with the print client.
[[[CLIENT]]]
;  =======================================================================

;  -----------------------------------------------------------------------
;  Each section here should be named AUTO-number where <number> is passed
;  to tcpprt using the --auto command line parameter.
;  Each section defines one set of parameters for batch mode operation.
[[AUTO-1]]
;  -----------------------------------------------------------------------
[ANNOTATION-1]
TEXT=
[ANNOTATION-2]
TEXT=
[ANNOTATION-3]
TEXT=
[ANNOTATION-4]
TEXT=
[ANNOTATION-5]
TEXT=
[ANNOTATION-6]
TEXT=
;  -----------------------------------------------------------------------
[General]
;  -----------------------------------------------------------------------
; optional: human readable description of this batch mode
Description  = Printserver Custom Layout, 1 image/page, collated

; optional: enable or disable collation of multiple pages (i.e. N-ACTION-RQ
; on film session level except on film box level. Default is NO.
Collation = NO

; optional: number of images (files) per page. After each film box,
; the given number of image files will be marked as "done", independent
; from the image display format used. Normally this number is computed
; automatically from the number of [IMAGE-X] sections (see below).
; This setting may be useful if multiple frames of a multi-frame image
; should be printed. Default is 0 (automatic computation).
FilesPerPage = 0


;  -----------------------------------------------------------------------
;  This section is optional and may be used to define values for the
;  Basic Film Session.
[Session]
;  -----------------------------------------------------------------------

; optional: Number of Copies. Default: don't send, use SCP default
; Copies = 1

; optional: Print Priority. Default: don't send, use SCP default.
; Possible values are LOW, MED and HIGH.
; Priority = MED

; optional: Medium Type. Default: don't send, use SCP default.
; Defined terms are "PAPER", "BLUE FILM", "CLEAR FILM".
; MediumType = PAPER

; optional: Film Destination. Default: don't send, use SCP default.
; Defined terms are "MAGAZINE", "PROCESSOR", "BIN_1", "BIN_2"...
; Destination = MAGAZINE

; optional: Film Session Label. Default: don't send, use SCP default.
; Label = MY_HARDCOPY

;  -----------------------------------------------------------------------
;  This section is optional and may be used to define values for the
;  Presentation LUT, if the Presentation LUT SOP class is negotiated.
;  Default is to use an IDENTITY LUT Shape. The Presentation LUT specified
;  here is used for all film boxes.
[PresentationLUT]
;  -----------------------------------------------------------------------

; optional. Type of presentation LUT. Possible values are "IDENTITY",
; "LIN OD" and "FILE". While "IDENTITY" and "LIN OD" represent LUT shapes,
; FILE means that a Presentation LUT is read from the file specified
; in PresentationLUTFile. Default is IDENTITY.
PresentationLUT = IDENTITY

; optional. Complete path to Presentation LUT File to be activated.
; Only used if PresentationLUT is FILE.
PresentationLUTFile = gamma.lut


;  -----------------------------------------------------------------------
;  This section is mandatory. It is used to define values for each
;  Basic Film Box. At least the ImageDisplayFormat must be specified.
;  Everything else is optional.
[Page]
;  -----------------------------------------------------------------------

; This mandatory setting determines the Image Display Format (page layout).
ImageDisplayFormat = STANDARD\1,1

; optional: Annotation Display Format ID. Default: don't send, use SCP default.
; Possible values are totally printer specific, check conformance statement.
; Annotation = 1

; optional: Orientation. Default: don't send, use SCP default.
; Possible values: PORTRAIT, LANDSCAPE
Orientation = PORTRAIT

; optional: Film Size ID. Default: don't send, use SCP default.
; Defined terms: 8INX10IN, 8_5INX11IN, 10INX12IN, 10INX14IN, 11INX14IN, 11INX17IN
; 14INX14IN, 14INX17IN, 24CMX24CM, 24CMX30CM, A4, A3
PageSize = 8INX10IN

; optional: Magnification Type. Default: don't send, use SCP default.
; Defined terms: REPLICATE, BILINEAR, CUBIC, NONE
; Magnification = CUBIC

; optional: Smoothing Type. Default: don't send, use SCP default.
; Possible values are totally printer specific, check conformance statement.
; Smoothing = 1

; optional: Border Density. Default: don't send, use SCP default.
; Defined terms: BLACK, WHITE or hundreds of OD ("320" => 3.2 OD)
BorderDensity = BLACK

; optional: Empty Image Density. Default: don't send, use SCP default.
; Defined terms: BLACK, WHITE or hundreds of OD ("320" => 3.2 OD)
; EmptyImageDensity = BLACK

; optional: Trim. Default: don't send, use SCP default.
; Possible values: YES, NO.
; Trim = YES

; optional: Configuration Information. Default: don't send, use SCP default.
; possible values are defined in [[CONFIGURATION INFORMATION]] above.
; ConfigurationInformation =

; optional: minimum density. Default: don't send, use SCP default.
; Defined terms: hundreds of OD ("320" => 3.2 OD)
; MinDensity = 20

; optional: maximum density. Default: don't send, use SCP default.
; Defined terms: hundreds of OD ("320" => 3.2 OD)
; MaxDensity = 320

; optional: illumination. Default: don't send, use SCP default.
; Only used when Presentation LUT is negotiated.
; Illumination = 2000

; optional: reflected ambient light. Default: don't send, use SCP default.
; Only used when Presentation LUT is negotiated.
; ReflectedAmbientLight = 10


;  -----------------------------------------------------------------------
;  This section is mandatory. There must be as many [Image-X] sections as
;  there are image boxes on each page (film box) of the chose image display
;  format. This section defines the settings for the image box with
;  Image Position 1.
[Image-1]
;  -----------------------------------------------------------------------

; This entry is mandatory. It defines the order in which filenames passed
; to tcpprt on the command line are mapped to the image boxes. For an image
; display format with X images, numbers 1..X can be used, referring to the
; files of the file set chosen for the current page.
File = 1

; optional: frame number of the image file to be printed. Default is 1.
; Frame = 1

; optional: this parameter can be used to adjust the window level and width
; (i.e. apply a VOI LUT transformation) if and only if the parameters of
; the VOI are encoded in the image file, either as Window Center/Width or
; as a VOI LUT Sequence.
; The parameter only specifies the number of the transformation, in the case
; that multiple transformations are contained in the image. The index starts
; at 1 and counts all Window Center/Width pairs followed by all VOI LUT Sequence
; items.
; Default is not to apply a VOI transformation before printing the image.
; VOILUT = 1

; optional: Polarity. Default: don't send, use SCP default.
; Possible values are NORMAL, REVERSE.
; Polarity = NORMAL

; optional: Magnification Type. Default: don't send, use SCP default.
; Defined terms: REPLICATE, BILINEAR, CUBIC, NONE
; Magnification = CUBIC

; optional: Smoothing Type. Default: don't send, use SCP default.
; Possible values are totally printer specific, check conformance statement.
; Smoothing = 1

; optional: Requested Image Size. Default: don't send, use SCP default.
; Value is requested width of image in mm.
; RequestedSize = 200


;  -----------------------------------------------------------------------
;  This section is optional. It is required if annotation boxes of the
;  optional Annotation Box SOP Class are to be used. There must be as many
;  [Annotation-X] sections as there are annotations in use. This section
;  defines the text for the annotation box with Annotation Position 1.
[Annotation-1]
;  -----------------------------------------------------------------------

; Text to be printed within the annotation. Please note that annotations
; cannot be longer than 64 characters. The text may contain certain escape
; sequences starting with '\' that receive special handling:
; - \\ is printed as a single backslash character
; - \"a, \"o, \"u, \"A, \"O, \"U, \"s, are printed as the German umlaut
;   and double-s characters
; - \000 to \377: octal escape sequences are replaced by the corresponding
;   character. User should take care not to specify illegal characters for
;   the DICOM data type "ST" used. Don't use escape characters, CR, LF etc.
; - \[gggg,eeee,n] refers to a DICOM attribute tag (gggg,eeee) in hexadecimal
;   notation. tcpprt will replace this escape sequence with content of this
TEXT=

;
; $Log: tcpprt.cfg,v $
; Revision 1.5  2010-10-14 10:38:53  joergr
; Updated copyright header. Added reference to COPYRIGHT file.
;
; Revision 1.4  2006/06/23 10:06:34  meichel
; Converted compile time options GENERATE_SOPINSTANCEUID and INCLUDE_DATASET for
;   the print client into configuration options in the [Compatibility] section.
;   Both options are active by default.
;
; Revision 1.3  2004/07/22 13:43:23  meichel
; Added support for the Presentation LUT SOP Class to the Print SCU,
;   including both the interactive and the batch mode views.
;
; Revision 1.2  2004/07/19 13:40:50  meichel
; Added new set of configuration file entries that allow to specify
;   canonical DICOM names that are not mangled like section headers in the
;   configuration facility.
;
; Revision 1.1  2004/06/14 13:30:31  meichel
; Changed default name of tcpprt configuration file to tcpprt.cfg.
;   Added sample configuration file that only contains the settings
;   needed by the print client.
;
;
When I try to print MG or CR images, I get this:

Code: Select all

Using mode '1' (Printserver Custom Layout, 1 image/page, collated)
Setting page image display format to STANDARD\1,1
Setting page orientation to PORTRAIT
Setting page size to 8INX10IN
Creating presentation LUT shape IDENTITY
Creating new page.
Setting border density to BLACK
Downloading image file /home/leonardo/Documentos/Griensu/daa/dicom/CR_1.dcm
E: can't change to unencapsulated representation for pixel data
E: can't determine 'PhotometricInterpretation' of decompressed image
E: mandatory attribute 'PhotometricInterpretation' is missing or can't be determined
Status: error: processing failure
Printing...
Status: warning: empty page
Done.
I must add that I have DCMDICTPATH setted correctly.

What I'm doing wrong?.

BTW, as I mentioned earlier, I can print US (and SC images), so, to print MG or CR, I convert them to SC and print, but I'm affraid I'm lossing quality.

Uli Schlachter
DCMTK Developer
Posts: 120
Joined: Thu, 2009-11-26, 08:15

Re: Printing MG image

#2 Post by Uli Schlachter »

martinrame wrote:

Code: Select all

Downloading image file /home/leonardo/Documentos/Griensu/daa/dicom/CR_1.dcm
E: can't change to unencapsulated representation for pixel data
E: can't determine 'PhotometricInterpretation' of decompressed image
E: mandatory attribute 'PhotometricInterpretation' is missing or can't be determined
Status: error: processing failure
This sounds like a compressed file which tcpprt cannot uncompress. Which TransferSyntax does your file use?

According to its documentation, tcpprt only supports uncompressed transfer syntaxes.

martinrame
Posts: 347
Joined: Mon, 2009-02-23, 19:57

Re: Printing MG image

#3 Post by martinrame »

You are right Uli, the image is JPEG Lossles 1st order prediction:

Code: Select all

# Dicom-File-Format

# Dicom-Meta-Information-Header
# Used TransferSyntax: Little Endian Explicit
(0002,0000) UL 216                                      #   4, 1 FileMetaInformationGroupLength
(0002,0001) OB 00\01                                    #   2, 1 FileMetaInformationVersion
(0002,0002) UI =ComputedRadiographyImageStorage         #  26, 1 MediaStorageSOPClassUID
(0002,0003) UI [1.2.392.200036.9125.9.0.235883801.2028580024.544147813] #  54, 1 MediaStorageSOPInstanceUID
(0002,0010) UI =JPEGLossless:Non-hierarchical-1stOrderPrediction #  22, 1 TransferSyntaxUID
(0002,0012) UI [1.2.276.0.7230010.3.0.3.6.0]            #  28, 1 ImplementationClassUID
(0002,0013) SH [OFFIS_DCMTK_360]                        #  16, 1 ImplementationVersionName
(0002,0016) AE [FCR-CSL]                                #   8, 1 SourceApplicationEntityTitle
After uncompressing it with dcmdjpeg I was able to print without any issue.

Thank you very much.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest