Unussual C-FIND requests handling

221 views
Skip to first unread message

Nesterov Denis

unread,
Nov 30, 2015, 12:29:10 PM11/30/15
to Orthanc Users
C-FIND requests from Efilm 2.0 and Vitrea are not working. Every request returns 'No patient found'.
Seems that this happens due to some violation of DICOM standard by Efilm and Vitrea. 
Here is examples of FIND requests of patient name matching  " SOL* " that I got from Orthanc logs. 

Efilm
I1130 19:43:44.172781 OrthancFindRequestHandler.cpp:259] DICOM C-Find request at level: Study
I1130
19:43:44.172828 OrthancFindRequestHandler.cpp:265]   (0008,0000)  GenericGroupLength = 86
I1130
19:43:44.172863 OrthancFindRequestHandler.cpp:265]   (0008,0020)  StudyDate =
I1130
19:43:44.172887 OrthancFindRequestHandler.cpp:265]   (0008,0030)  StudyTime =
I1130
19:43:44.172909 OrthancFindRequestHandler.cpp:265]   (0008,0050)  AccessionNumber =
I1130
19:43:44.172931 OrthancFindRequestHandler.cpp:265]   (0008,0052)  QueryRetrieveLevel = STUDY
I1130
19:43:44.172953 OrthancFindRequestHandler.cpp:265]   (0008,0056)  InstanceAvailability =
I1130
19:43:44.172976 OrthancFindRequestHandler.cpp:265]   (0008,0061)  ModalitiesInStudy =
I1130
19:43:44.172998 OrthancFindRequestHandler.cpp:265]   (0008,0080)  InstitutionName =
I1130
19:43:44.173020 OrthancFindRequestHandler.cpp:265]   (0008,0090)  ReferringPhysicianName =
I1130
19:43:44.173043 OrthancFindRequestHandler.cpp:265]   (0008,1030)  StudyDescription =
I1130
19:43:44.173065 OrthancFindRequestHandler.cpp:265]   (0008,1040)  InstitutionalDepartmentName =
I1130
19:43:44.173089 OrthancFindRequestHandler.cpp:265]   (0010,0000)  GenericGroupLength = 36
I1130
19:43:44.173111 OrthancFindRequestHandler.cpp:265]   (0010,0010)  PatientName = SOL*
I1130
19:43:44.173132 OrthancFindRequestHandler.cpp:265]   (0010,0020)  PatientID =
I1130
19:43:44.173154 OrthancFindRequestHandler.cpp:265]   (0010,0030)  PatientBirthDate =
I1130
19:43:44.173177 OrthancFindRequestHandler.cpp:265]   (0010,0040)  PatientSex =
I1130
19:43:44.173200 OrthancFindRequestHandler.cpp:265]   (0020,0000)  GenericGroupLength = 16
I1130
19:43:44.173222 OrthancFindRequestHandler.cpp:265]   (0020,000d)  StudyInstanceUID =
I1130
19:43:44.173244 OrthancFindRequestHandler.cpp:265]   (0020,0010)  StudyID =
I1130
19:43:44.910803 OrthancFindRequestHandler.cpp:333] Number of matching resources: 0
I1130
19:43:44.911567 CommandDispatcher.cpp:835] DUL Peer Requested Release
I1130
19:43:44.911588 CommandDispatcher.cpp:842] Association Release

Vitrea
I1130 19:37:10.776751 OrthancFindRequestHandler.cpp:259] DICOM C-Find request at level: Study
I1130
19:37:10.776784 OrthancFindRequestHandler.cpp:265]   (0008,0020)  StudyDate =
I1130
19:37:10.776809 OrthancFindRequestHandler.cpp:265]   (0008,0030)  StudyTime =
I1130
19:37:10.776830 OrthancFindRequestHandler.cpp:265]   (0008,0050)  AccessionNumber =
I1130
19:37:10.776851 OrthancFindRequestHandler.cpp:265]   (0008,0052)  QueryRetrieveLevel = STUDY
I1130
19:37:10.776873 OrthancFindRequestHandler.cpp:265]   (0008,0061)  ModalitiesInStudy =
I1130
19:37:10.776895 OrthancFindRequestHandler.cpp:265]   (0008,0090)  ReferringPhysicianName =
I1130
19:37:10.776916 OrthancFindRequestHandler.cpp:265]   (0008,1030)  StudyDescription =
I1130
19:37:10.776937 OrthancFindRequestHandler.cpp:265]   (0010,0010)  PatientName = SOL*
I1130
19:37:10.776957 OrthancFindRequestHandler.cpp:265]   (0010,0020)  PatientID =
I1130
19:37:10.776978 OrthancFindRequestHandler.cpp:265]   (0010,0030)  PatientBirthDate =
I1130
19:37:10.776998 OrthancFindRequestHandler.cpp:265]   (0020,000d)  StudyInstanceUID =
I1130
19:37:10.777019 OrthancFindRequestHandler.cpp:265]   (0020,0010)  StudyID =
I1130
19:37:10.777041 OrthancFindRequestHandler.cpp:265]   (0020,1208)  NumberOfStudyRelatedInstances =
I1130
19:37:10.777065 OrthancFindRequestHandler.cpp:265]   (5653,0010)  PrivateCreator = Vital Images SW 3.4
I1130
19:37:11.484736 OrthancFindRequestHandler.cpp:333] Number of matching resources: 0
I1130
19:37:11.485535 CommandDispatcher.cpp:835] DUL Peer Requested Release
I1130
19:37:11.485564 CommandDispatcher.cpp:842] Association Release

Log of successful request from Synedra:
I1130 19:35:49.528666 OrthancFindRequestHandler.cpp:259] DICOM C-Find request at level: Study
I1130
19:35:49.528700 OrthancFindRequestHandler.cpp:265]   (0008,0020)  StudyDate =
I1130
19:35:49.528725 OrthancFindRequestHandler.cpp:265]   (0008,0030)  StudyTime =
I1130
19:35:49.528755 OrthancFindRequestHandler.cpp:265]   (0008,0050)  AccessionNumber =
I1130
19:35:49.528777 OrthancFindRequestHandler.cpp:265]   (0008,0052)  QueryRetrieveLevel = STUDY
I1130
19:35:49.528799 OrthancFindRequestHandler.cpp:265]   (0008,0061)  ModalitiesInStudy =
I1130
19:35:49.528821 OrthancFindRequestHandler.cpp:265]   (0008,0090)  ReferringPhysicianName =
I1130
19:35:49.528843 OrthancFindRequestHandler.cpp:265]   (0008,1030)  StudyDescription =
I1130
19:35:49.528863 OrthancFindRequestHandler.cpp:265]   (0010,0010)  PatientName = SOL*
I1130
19:35:49.528883 OrthancFindRequestHandler.cpp:265]   (0010,0020)  PatientID =
I1130
19:35:49.528905 OrthancFindRequestHandler.cpp:265]   (0010,0030)  PatientBirthDate =
I1130
19:35:49.528927 OrthancFindRequestHandler.cpp:265]   (0010,0032)  PatientBirthTime =
I1130
19:35:49.528949 OrthancFindRequestHandler.cpp:265]   (0010,0040)  PatientSex =
I1130
19:35:49.528970 OrthancFindRequestHandler.cpp:265]   (0010,1010)  PatientAge =
I1130
19:35:49.528992 OrthancFindRequestHandler.cpp:265]   (0010,1020)  PatientSize =
I1130
19:35:49.529013 OrthancFindRequestHandler.cpp:265]   (0010,1030)  PatientWeight =
I1130
19:35:49.529035 OrthancFindRequestHandler.cpp:265]   (0010,4000)  PatientComments =
I1130
19:35:49.529056 OrthancFindRequestHandler.cpp:265]   (0020,000d)  StudyInstanceUID =
I1130
19:35:49.529077 OrthancFindRequestHandler.cpp:265]   (0020,0010)  StudyID =
I1130
19:35:49.529100 OrthancFindRequestHandler.cpp:265]   (0020,1206)  NumberOfStudyRelatedSeries =
I1130
19:35:49.529121 OrthancFindRequestHandler.cpp:265]   (0020,1208)  NumberOfStudyRelatedInstances =
I1130
19:35:51.872897 OrthancFindRequestHandler.cpp:333] Number of matching resources: 26
I1130
19:35:52.903936 CommandDispatcher.cpp:835] DUL Peer Requested Release
I1130
19:35:52.903979 CommandDispatcher.cpp:842] Association Release


As you see Efilm and Vitrea automaticaly add some tags to request (I've marked them with yellow). So is there a way to force Orthanc ignore some tags in C-FIND requests?

Sébastien Jodogne

unread,
Dec 1, 2015, 9:14:43 AM12/1/15
to Orthanc Users
Hello,

Thanks for this very clear and interesting issue report!

It is now possible to implement patches to the C-FIND SCU queries issued by the various manufacturers. Such patches can be put in the method "OrthancFindRequestHandler::FilterQueryTag()". Note that the manufacturer is read from the "DicomModalities" section of the configuration file.

I have just implemented the patches required for the two problems you reported:

However, they may be insufficient as such (e.g. if querying against the series and instance levels), so do not hesitate to send me other tags that should be filtered out.

Note that I am about to start the release of Orthanc 0.9.5. Would it be possible for you to give me a quick feedback by this evening, otherwise further patches will have to wait the next release?

Thanks again,
Sébastien-
...

Nesterov Denis

unread,
Dec 1, 2015, 10:45:05 AM12/1/15
to Orthanc Users
Hi, thanks for reply!

Unfortunately I'm out of the office already. Nex time I'll be there this friday at the soonest.

Also, notice that problem likely affects only version 2 of efilm, so its reasonable to mark version somewhere.


вторник, 1 декабря 2015 г., 17:14:43 UTC+3 пользователь Sébastien Jodogne написал:

Sébastien Jodogne

unread,
Dec 1, 2015, 11:00:06 AM12/1/15
to Orthanc Users
OK, fine. I will release 0.9.5 as such, hoping that the current fix is enough.

Following your feedback, the version of eFilm is now made explicit (as "EFilm2"):

Let me know when you'll have made the tests :)

Sébastien-

tim...@gmail.com

unread,
Jul 11, 2017, 4:28:31 AM7/11/17
to Orthanc Users
Hi guys,

I encountered a similar issue with the LEADTOOLS DICOM library. Here is the captured log with "GenericGroupLength":

I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579] (0008,0000) GenericGroupLength = 22
I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579] (0008,0052) QueryRetrieveLevel = STUDY
I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579] (0008,0061) ModalitiesInStudy =
I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579] (0010,0000) GenericGroupLength = 12
I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579] (0010,0010) PatientName = abc
I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579] (0020,0000) GenericGroupLength = 8
I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579] (0020,000d) StudyInstanceUID =

I reckon a fix was done for Efilm and Vitrea, I wonder if an additional fix for LEADTOOLS is possible? Better yet, the manufacturer list be configurable?

Many thanks!

Tim

Alain Mazy

unread,
Jul 11, 2017, 5:38:26 AM7/11/17
to tim...@gmail.com, Orthanc Users
On Tue, Jul 11, 2017 at 10:28 AM, <tim...@gmail.com> wrote:
Hi guys,

I encountered a similar issue with the LEADTOOLS DICOM library. Here is the captured log with "GenericGroupLength":

I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579]   (0008,0000)  GenericGroupLength = 22
I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579]   (0008,0052)  QueryRetrieveLevel = STUDY
I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579]   (0008,0061)  ModalitiesInStudy =
I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579]   (0010,0000)  GenericGroupLength = 12
I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579]   (0010,0010)  PatientName = abc
I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579]   (0020,0000)  GenericGroupLength = 8
I0711 15:12:07.343097 OrthancFindRequestHandler.cpp:579]   (0020,000d)  StudyInstanceUID =

I reckon a fix was done for Efilm and Vitrea, I wonder if an additional fix for LEADTOOLS is possible? Better yet, the manufacturer list be configurable?

We will remove all group-length in Orthanc 1.2.1 (to come later this month) so there won't be any need for a LEADTOOLS manufacturer.  In the mean-time, you may use EFilm or Vitrea.  

That would require quite a lot of work to make the manufacturer list configurable.  Removing all group-length will decrease the needs for this list anyway.



--

Alain Mazy / CTO 
a...@osimis.io / +32 494 31 67 27

Osimis

OSIMIS S.A. 
Rue bois Saint-Jean 15/1BE-4102 Seraing 
www.osimis.io

Twitter LinkedIn


Timothy Au

unread,
Jul 11, 2017, 5:51:45 AM7/11/17
to Orthanc Users, tim...@gmail.com
Thanks for the great news!

Tim

Timothy Au

unread,
Aug 10, 2017, 5:28:00 AM8/10/17
to Orthanc Users, tim...@gmail.com
Hi Alain,

I installed Orthanc 1.3.0 and tried again but the problem persists. Is the fix included in this release or will it be in a later one? Thanks :)

Tim 

Alain Mazy

unread,
Aug 21, 2017, 5:46:44 AM8/21/17
to Timothy Au, Orthanc Users
Hi Timothy,

Well, it seems the patch did not solve your issue (another user has reported the same problem).  I have updated the issue tracker and will check it asap:


Timothy Au

unread,
Sep 8, 2017, 12:43:17 AM9/8/17
to Orthanc Users
Hi Alain,

Thank you for the update. Looking forward to the fix :)

Timothy

Timothy Au

unread,
Oct 12, 2017, 5:52:05 AM10/12/17
to Orthanc Users
Hello,

Any news on the fix? Been looking forward to it, thank you!

Timothy

Alain Mazy

unread,
Oct 12, 2017, 3:47:28 PM10/12/17
to Timothy Au, Orthanc Users
No, sorry, no news and I'm afraid I can't give you any estimate right now.

Timothy Au

unread,
Dec 21, 2017, 2:11:35 AM12/21/17
to Orthanc Users
Thank you so much for the fix in the latest version!!
Reply all
Reply to author
Forward
0 new messages