storescu problem with presentation context

All other questions regarding DCMTK

Moderator: Moderator Team

Post Reply
Message
Author
hollebolle
Posts: 28
Joined: Tue, 2005-09-20, 10:09

storescu problem with presentation context

#1 Post by hollebolle »

Hi everybody!

I converted a MPEG2-file into a DICOM Video Photographic Image object. That's working fine so far. But when I send that file to Osirix (my Test-PACS) by the use of storescu I get the following error-message

Code: Select all

Sending file: C:\test\16-21-27_12345678.dic
storescu: No presentation context for: (VVp) 1.2.840.10008.5.1.4.1.1.77.1.4.1
storescu: SCU Failed:
0006:0208 DIMSE No valid Presentation Context ID
Aborting Association
What can I do to make it work? How can I use a configuration-file with storescu to add support for that presentation context?

Thanks in advance and kind regards

Michael Onken
DCMTK Developer
Posts: 2051
Joined: Fri, 2004-11-05, 13:47
Location: Oldenburg, Germany
Contact:

#2 Post by Michael Onken »

Hi,

It seems that storescu fails to negotiate the Video Photographic Image SOP class with the PACS.

Are you sure your Osirix installation accepts images of Video Photographic Image SOP class? Also, if that works, be sure that you are proposing the correct transfer syntax with storescu (I dont know which Transfer Syntax your converted file has. If it's uncompressed, you won't need any specific options; for JPEG and some other there are command line options; for other Transfer Syntaxes you need to use a configuration file - see storescu documentation).

You can see which SOP classes / Transfer Syntaxes (->which Presentation Contexts) are proposed by storescu, and which Presentation contexts are accepted by the PACS when calling storescp in debug mode ("-d").

Regards,
Michael

hollebolle
Posts: 28
Joined: Tue, 2005-09-20, 10:09

#3 Post by hollebolle »

Hi Michael,

thanks for Your reply. Osirix does not support that. Consequently I am now using DCMTK storescp. The Transfer Syntax of the converted file is 1.2.840.10008.1.2.4.100 (MPEG2 Main Profile @ Main Level).

I already read the storescu documentation, but I still do not know, how I have to modify the config-file for storescu (storescp) to add support for a MPEG2 converted DICOM-file.

Michael Onken
DCMTK Developer
Posts: 2051
Joined: Fri, 2004-11-05, 13:47
Location: Oldenburg, Germany
Contact:

#4 Post by Michael Onken »

Hi,

try reading the documentation that comes with DCMTK: dcmnet/docs/asconfig.txt

Hope that helps,
Michael

hollebolle
Posts: 28
Joined: Tue, 2005-09-20, 10:09

#5 Post by hollebolle »

Hi again,

I'm using the config file storescu.cfg with the profile:

Code: Select all

[MPEG2]
TransferSyntaxes = MPEG2
PresentationContexts = StorageCompressedAndUncompressed
and storescp.cfg with:

Code: Select all

[Default]
TransferSyntaxes = AnyTransferSyntax
PresentationContexts = GenericStorageSCP
Both config-files do support MPEG2MainProfile@MainLevel but when I send my file I get the following message:

Code: Select all

Sending file: C:\dicom\test2.dic
Transfer: MPEG2MainProfile@MainLevel -> LittleEndianExplicit
Store SCU RQ: MsgID 1, (VLp)
XMIT:DIMSE Warning: (STORESCU,ANY-SCP): sendMessage: unable to convert dataset
from 'MPEG2 Main Profile @ Main Level' transfer syntax to 'LittleEndianExplicit'
.

storescu: Store Failed, file: C:\dicom\test2.dic:
0006:020e DIMSE Failed to send message
storescu: SCU Failed:
0006:020e DIMSE Failed to send message
Aborting Association
Obviously there is a problem concerning the presentation context. 'MPEG2 Main Profile @ Main Level' should not be converted to 'LittleEndianExplicit'. Is there a chance to send a MPEG2-DICOM-file with dcmtk?

Michael Onken
DCMTK Developer
Posts: 2051
Joined: Fri, 2004-11-05, 13:47
Location: Oldenburg, Germany
Contact:

#6 Post by Michael Onken »

[MPEG2]
TransferSyntaxes = MPEG2
PresentationContexts = StorageCompressedAndUncompressed
Don't mix TransferSyntaxes into the profile secition.

Explained top down: You have some profiles under the [[Profiles]] section. For storescu and storescp, you select one of these profiles that specify the complete behaviour of these tools for association negotiation. One association consists of a set of Presentation Contexts proposed (storescp: accepted Presentation Contexts). So for a profile you introduce in this section, you specify then an identifier of a presentation context list. This identifier (or as many as you want) is defined in the [[PresentationContexts]] section. So, if you want to create a new profile in the standard configuration file, add under [[Profiles]]

Code: Select all

[HolleBolleMPEG2]
PresentationContexts = HolleBollesPresentationContexts
Now specify which presentation contexts you need in "HolleBollesPresentationContexts". You want to send VL Photographic Image SOP instances, using MPEG2 transfer syntax. So add under section [[PresentationContexts]]

Code: Select all

[HolleBollesPresentationContexts]

PresentationContext1  = VLPhotographicImageStorage\MPEG2
PresentationContext2  = VLPhotographicImageStorage\Uncompressed
In this definition you can use any Transfer Syntax identifier you can specify in section [[TransferSyntaxes]]. In my quote above, i select identifers "MPEG2" and "Uncompressed", which are already defined in the standard configuration file:

Code: Select all

[Uncompressed]
TransferSyntax1 = LittleEndianExplicit
TransferSyntax2 = BigEndianExplicit
TransferSyntax3 = LittleEndianImplicit

[MPEG2]
TransferSyntax1 = MPEG2MainProfile@MainLevel
I also added Uncompressed to also propose DICOM's Default Transfer Syntax (being part of "Uncompressed") (which can be left out if original data was already lossy compressed).

Then call storescu with parameter "-xf storescu.cfg HolleBolleMPEG2".
With that you get during association negotiation (small excerpt from debug mode):

Code: Select all

Presentation Contexts:
  Context ID:        1 (Proposed)
    Abstract Syntax: =VLPhotographicImageStorage
    Proposed SCP/SCU Role: Default
    Accepted SCP/SCU Role: Default
    Proposed Transfer Syntax(es):
      =MPEG2MainProfile@MainLevel
  Context ID:        3 (Proposed)
    Abstract Syntax: =VLPhotographicImageStorage
    Proposed SCP/SCU Role: Default
    Accepted SCP/SCU Role: Default
    Proposed Transfer Syntax(es):
      =LittleEndianExplicit
      =BigEndianExplicit
      =LittleEndianImplicit
storescp works the same way.

Regards,
Michael

hollebolle
Posts: 28
Joined: Tue, 2005-09-20, 10:09

#7 Post by hollebolle »

That's ist, now it' working :D

Thank You very much

Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 1 guest