Possibly no support for combined Command and Data PDVs in a single P-DATA-TF-PDU

Forums > Onis operations > Database
Search the Forums
Keyword :
mulOMpUR
Hi guys,

Version: Onis 2.3.5 Free Edition
Our side: server under development (already working with several DICOM applications)

Warning: The reason of the Onis crash is only our assumption but the scenario is quite simple and we can test it with modifications (making it work)

This is what we do:

1. Start Onis
2. Select DICOM application as source
3. Enter patient name and hit enter

Onis crashes while receiving P-DATA-TF with combined command and data fragment.

This is explicitly allowed by DICOM standard, PS 3.8-2011, Annex E:

"Note: The above rules allow the sending in the same P-DATA request/indication of a Command fragment in the
first PDV (with the last fragment flag set) followed by a Data Fragment in the second PDV (with the last
fragment flag set or not). In particular, if the negotiated maximum length for the PDV List parameter of the
P-DATA request is sufficient to hold a complete message, a single P-DATA request can be used to
exchange an entire message"

This is naturally my guess. It is based on the fact that our server supports both mechanisms (combining command with data fragment when possible or sending them in a separate P-DATA-TF-PDUs). Switching to the simplier mechanism allows our server to work with Onis.

The combined aprooch is already tested with at least 3 other DICOM application entities (CONQUEST, PACSONE, K-PACS).

Regards,

Bartosz Meglicki

National Centre for Nuclear Research
Department of Nuclear Equipment
ul. Andrzeja Sołtana 7
05-400 Otwock, Poland

P.S. The forum engine is a real test for the patience. It can force one to type the post again if the user login times out.
Scenario: Add topic, write it for several minutes, click Add topic, timeout?, message lost after logging in, start over. Nothing hurts as having to retype long post.
 
11/7/2011 9:37:31 PM

mulOMpUR
Hello again,

This is a critical problem. Onis is supposed to be able to read combined command and data fragment.
I don't have a client software here which do that, can you recommend us one? Or maybe you could connect to one of our DICOM server in our office and send a C-FIND request. We will record your C-FIND command and check what generates the crash. I would appreciate that.

Regarding the forum engine, I apologize and will report the problem to the webmaster.

Kind regards,

 
11/8/2011 11:08:43 AM

mulOMpUR
Hi Madric,

Once again I warn that the reason of the crash is just my guess. We have made efforts to make sure the problem is not on our side but we might have overlooked something.

I will try to supply as much information as I can.

"I don't have a client software here which do that, can you recommend us one?"

Unfortunately no, all the software we know use the simpler mechanism (command and data fragment in separate P-DATA-TF).

"Or maybe you could connect to one of our DICOM server in our office and send a C-FIND request"

We have made some additional tests. When we connect to ONIS it seems to decode combined command/data properly. It's only when Onis initiates association and C-FIND request that it crashes.

I will sum up:

1. When we use mechanism "separate P-DATA-TF" for command and data fragment all is ok, Onis communicates with our server and retrieves data.
2. When we switch to mechanism "combined command and data fragments in P-DATA-TF" Onis crashes but only when it initiates C-FIND-RQ. The error comes from ONS_DicomClient.dll.
3. Same query works from other DICOM applications (e.g. Conquest, K-PACS). That doesn't mean naturally that we are not to blame.

The comunication looks like that (our logs framgment):

__________________________________________________________________________________________ (NETWORK) Tue Nov 08 10:43:09 2011
Server started (0.0.0.0:6789)
__________________________________________________________________________________________ (NETWORK) Tue Nov 08 10:43:33 2011
Client connection accepted (127.0.0.1:1804)
__________________________________________________________________________________________ (PDU) Tue Nov 08 10:43:33 2011
<- A-ASSOCIATE-RQ:
called AE: ZDAJCOMSRV
calling AE: ONIS23
application context: DICOM Application Context Name
user info: Maximum Length Received=8192 implementation class=1.2.392.200193
presentation contexts:
id=1 abstract syntax=Study Root Query/Retrieve Information Model - FIND transfer syntaxes: Implicit VR Little Endian,
__________________________________________________________________________________________ (PDU) Tue Nov 08 10:43:33 2011
-> A-ASSOCIATE-AC:
called AE: ZDAJCOMSRV
calling AE: ONIS23
application context: DICOM Application Context Name
user info: Maximum Length Received=65536 implementation class=1.2.3.4.5.6.7.8.9.10
presentation contexts:
id=1 result=ACCEPTANCE transfer syntax: Implicit VR Little Endian
__________________________________________________________________________________________ (PDU) Tue Nov 08 10:43:33 2011
<- P-DATA-TF:
command fragment last=1 presentation_id=1 pdv bytes=94
__________________________________________________________________________________________ (PDU) Tue Nov 08 10:43:33 2011
<- P-DATA-TF:
data fragment last=1 presentation_id=1 pdv bytes=162
__________________________________________________________________________________________ (DIMSE Message) Tue Nov 08 10:43:33 2011
<- C-FIND-RQ:
(0000,0000) Command Group Length=76
(0000,0002) Affected SOP Class UID=Study Root Query/Retrieve Information Model - FIND
(0000,0100) Command Field=C-FIND-RQ
(0000,0110) Message ID=1
(0000,0700) Priority=MEDIUM
(0000,0800) Command Data Set Type=present

<- Data Set:
(0008,0000) Unknown tag=". "
(0008,0020) Study Date=[zero length]
(0008,0030) Study Time=[zero length]
(0008,0050) Accession Number=[zero length]
(0008,0052) Query/Retrieve Level=STUDY
(0008,1030) Study Description=[zero length]
(0010,0000) Unknown tag="* "
(0010,0010) Patients Name=*Andrzej*
(0010,0020) Patient ID=[zero length]
(0010,0030) Patient’s Birth Date=[zero length]
(0010,0040) Patient’s Sex=[zero length]
(0020,0000) Unknown tag=" "
(0020,000d) Study Instance UID=[zero length]
(0020,0010) Study ID=[zero length]
(0020,1206) Number of Study Related Series=[zero length]
(0020,1208) Number of Study Related Instances=[zero length]
__________________________________________________________________________________________ (Service) Tue Nov 08 10:43:33 2011
-- Service requested: Study Root Query/Retrieve Information Model - FIND
__________________________________________________________________________________________ (DIMSE Message) Tue Nov 08 10:44:09 2011
-> C-FIND-RSP:
(0000,0000) Command Group Length=76
(0000,0002) Affected SOP Class UID=Study Root Query/Retrieve Information Model - FIND
(0000,0100) Command Field=C-FIND-RSP
(0000,0120) Message ID Being Responded To=1
(0000,0800) Command Data Set Type=present
(0000,0900) Status=PENDING

-> Data Set:
(0008,0020) Study Date=20111011
(0008,0030) Study Time=121000
(0008,0050) Accession Number=[zero length]
(0008,0052) Query/Retrieve Level=STUDY
(0008,0054) Retrieve AE Title=ZDAJCOMSRV
(0008,1030) Study Description=Testowe study Andrzeja. Dodane ręcznie przez Bartka.
(0010,0010) Patients Name=Andrzej Testowy
(0010,0020) Patient ID=103
(0020,000d) Study Instance UID=1.2.246.352.71.1.4352.116143.20111011120900
(0020,0010) Study ID=08080808
(0020,1206) Number of Study Related Series=1
(0020,1208) Number of Study Related Instances=1
__________________________________________________________________________________________ (PDU) Tue Nov 08 10:44:19 2011
-> P-DATA-TF:
command fragment last=1 presentation_id=1 pdv bytes=94
data fragment last=1 presentation_id=1 pdv bytes=260

This is where Onis crashes in ONS_DicomClient.dll, upon receiving P-DATA-TF with combined command and data fragment. Similiar communication when command and data fragment are separated is ok from Onis side. When we connect to Onis it also seems to handle combined command/data fragments ok.

Kind regards,

B.M.

 
11/8/2011 6:57:49 PM

mulOMpUR
Hi Bartosz,

I understood that Onis crashs when receiving the C-FIND response from your server.
Is there a way we could connect to your server to send a C-FIND request (we will record the bytes received from your server for futher simulation and test). If not possible, would you be able to provide us a binary file containing the bytes that your server send back to Onis as the C-FIND response?

With this, we can easy track down the problem.

Regards,

madric
 
11/8/2011 7:36:28 PM

mulOMpUR
Hi Madric,

We have e-mailed PDU dumps to address from support section of your webpage
(info@onis-viewer.com)

btw, shouldn't it be "Email Contact Form" instead of "Email Contact From"?

Kind regards,

B.M.

P.S. A good answer for "Email Contact Form" could be - shouldn't you post to "Other" section instead of "Database" one? Yes, I am aware I also err ;-)


 
11/8/2011 10:02:48 PM

mulOMpUR
Hi Bartosz,

Thank you, I got your email. We did some test and yes, Onis was crashing. It was a small mistake in our side. We have now fixed the problem. I would like to send you by email a new installer of Onis. Maybe you can run some tests in your side. Is that fine?

Kind regards,

madric

ps: yes, I was thinking to move your posts :) good point about the english though.
 
11/9/2011 5:35:12 PM

mulOMpUR
Hi Madric,

Certainly, we are already testing our COALA system with Onis and several other DICOM applications.

We will just switch to the new Onis version for tests and give you some feedback regarding that specific issue.

Kind regards,

Bartosz Meglicki

National Centre for Nuclear Research
Department of Nuclear Equipment
ul. Andrzeja Sołtana 7
05-400 Otwock, Poland
 
11/9/2011 8:12:02 PM

mulOMpUR
Hi,

I've just sent an email to you with a link for downloading a new version. I think it will be fine for you now.

Warm regards,

madric
 
11/9/2011 8:30:19 PM

mulOMpUR
Solved.

Thumbs up.
 
11/17/2011 8:22:11 PM
 
About us | Contact us | Terms and Conditions | Privacy policy | Copyright policy
Copyright © Digitalcore 2009-2022. All rights reserved.