[Ctk-developers] data exchange in the DICOM Hosting implementation
Sascha Zelzer
s.zelzer at dkfz-heidelberg.de
Wed Jun 8 16:48:34 UTC 2011
Hi Michael,
it looks like the deserialization code of QtSoapArray is buggy. When
serializing a QtSoapArray instance to XML, it writes a position
attribute like "[3]", but when reading it in, this string is getting
converted to an integer which always leads to 0 (because the conversion
fails due to the brackets). Please try to replace line 1284 in
qtsoap.cpp (located in your CTK superbuild build tree) with:
pos = posattr.value().mid(1, posattr.value().size()-2).toInt();
and make a build at the superbuild level. If that solves your problem I
will push that fix to our repo and update
http://www.commontk.org/index.php/Documentation/DicomApplicationHosting:DataExchangeDevelopment
with a comment. I am aware of the limitation that this will only allow
to deserialize one-dimensional arrays, but I think there is no
multi-dimensional use case in the DICOM AppHosting standard, so I would
refrain from writing support for it until we need it.
Best,
Sascha
On 06/08/2011 07:24 AM, Caylus, Michael (SCR US) wrote:
> Hi Sascha,
>
> I have been feeding the available data structure through multiple calls to the addToAvailableData(ctkDicomAppHosting::AvailableData& data,
> ctkDicomObjectLocatorCache* objectLocatorCache,
> const QString& filename)
>
> function: one call per file found in my DICOM folder and then I send the notifyDataAvailable message only once.
>
> You should have got the SOAP messages on both the server and client side from my previous mail if not let me know I can send you the files again.
>
> I have also tried to send only the objectDescriptors array as suggested by Ben but I have observed the same issue.
>
> Best,
> Michael
>
More information about the Ctk-developers
mailing list