SpecificCharacterSet in queries, was Re: Empty Query Results
Hi Mike
I have identified the cause of the problem.
It turns out that when the DVTK Q/R SCP emulator gets a query that
contains a SpecificCharacterSet, it just returns nothing at all,
without returning any error status, or making any comment in its log,
which is unfortunate.
The DicomImageViewer was sending "ISO_IR 100" in SpecificCharacterSet,
and hence triggering the problem.
In today's build, I have changed the behavior of DicomImageViewer to
only insert a value of SpecificCharacterSet when it is necessary to
encode whatever text has been typed into the filter panel by the user,
and so if you don't type in any funky accented characters, the default
(US-ASCII) will be used, and the DVTK Q/R SCP emulator returns responses.
Note that in the course of adding this support, some additional
methods have been added to AttributeList to support rationalizing the
SpecificCharacterSet of all attributes in a list to use the same
SpecificCharacterSet, or to change it from what it was when the
attributes were read, or created and inserted. See in particular
AttributeList.insertSuitableSpecificCharacterSetForAllStringValues().
David
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
After sending this message I went back and modified my subclass of ServiceClassUser to not set the CharSet Element while building a C-Find Query. The Patient level query now succeeds. The same is true if I set the charset element to "ISO_IR 100". I still get the lockup against ClearCanvas. I must have become confused while trying my various permutations before.
In a C-Find, the results do set the CharSet, so it is probably best to not send the Charset in the C-FIND-RQ but pay attention to it on the C-FIND-RSP. This probably only makes a difference to the CompositeNetworkFunctions class because it sets the CharSet in ConstructQuery.
I'll let you know if I find out anything else.
Thanks
-- Scott
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Seems like this is a known issue:
http://tech.groups.yahoo.com/group/pixelmed_dicom/message/622
SpecificCharacterSet in queries, was Re: Empty Query Results
Hi Mike
I have identified the cause of the problem.
It turns out that when the DVTK Q/R SCP emulator gets a query that
contains a SpecificCharacterSet, it just returns nothing at all,
without returning any error status, or making any comment in its log,
which is unfortunate.
The DicomImageViewer was sending "ISO_IR 100" in SpecificCharacterSet,
and hence triggering the problem.
In today's build, I have changed the behavior of DicomImageViewer to
only insert a value of SpecificCharacterSet when it is necessary to
encode whatever text has been typed into the filter panel by the user,
and so if you don't type in any funky accented characters, the default
(US-ASCII) will be used, and the DVTK Q/R SCP emulator returns responses.
Note that in the course of adding this support, some additional
methods have been added to AttributeList to support rationalizing the
SpecificCharacterSet of all attributes in a list to use the same
SpecificCharacterSet, or to change it from what it was when the
attributes were read, or created and inserted. See in particular
AttributeList.insertSuitableSpecificCharacterSetForAllStringValues().
David
from gdcm-dev mailing list:
Hello Mark and Mathieu,
I've got an update for the connection to DVT.
After sending this message I went back and modified my subclass of ServiceClassUser to not set the CharSet Element while building a C-Find Query. The Patient level query now succeeds. The same is true if I set the charset element to "ISO_IR 100". I still get the lockup against ClearCanvas. I must have become confused while trying my various permutations before.
In a C-Find, the results do set the CharSet, so it is probably best to not send the Charset in the C-FIND-RQ but pay attention to it on the C-FIND-RSP. This probably only makes a difference to the CompositeNetworkFunctions class because it sets the CharSet in ConstructQuery.
I'll let you know if I find out anything else.
Thanks
-- Scott