dcm4chee-arc UI:Working with invalid dates

106 views
Skip to first unread message

Kirill K

unread,
Apr 29, 2019, 6:31:53 AM4/29/19
to dcm4che
Hi.
In 5.16.0 arc UI, if enter invalid date by hand, it allows you to do so, fetches wrong result and does not allow to correct date in range picker. IMHO it must not accept wrong date or shoud allow to correct it in picker, or both. Since i'm not sure if this is a bug i post it here.

dcm4chee-datepicker.png


Shefki Esadi

unread,
Apr 29, 2019, 8:36:46 AM4/29/19
to dcm...@googlegroups.com

Hi,

range picker is meant to be a helper-tool to generate the range.

If you add a range by hand It will check only the format but doesn't check if it is a valid date, if the format is wrong you should see a red border on the range filter but you can send the query anyway.

When you open the range-picker and the filter is filled up (like in this case) the range picker will try to split the string in range and date/time format and pass the date to the Date picker, if the date-string is not a valid date than the Date picker can not show any date.

The archive handles the range filter alphabetically as string (thet's why the format yyyymmdd, so in your case I thing it will probably make no difference if you add 20150631 or 20150630), it can be that in the study there is a wrong date, so you should be able to filter with a wrong date range.
You should/can change the wrong range by hand in the input filter.

I can add a check to validate the date so the user can see a red border if it is a wrong date but that's for me a nice to have thing but not a bug, thank you anyway for reporting it!

Best Regards
Shefki Esadi
Message has been deleted

Kirill K

unread,
Apr 29, 2019, 9:06:11 AM4/29/19
to dcm4che
 in your case I thing it will probably make no difference if you add 20150631 or 20150630
Thats what  i'm talking about, there *is* diference, results in this particular case fetched like it was 20150701 as the end date, i'm not sure if it is right to do so.

if the date-string is not a valid date than the Date picker can not show any date
The problem is that it not only show empty date, which is probably right, but it does not allow to pick date by clicking "calendar"  button near it.

понедельник, 29 апреля 2019 г., 13:31:53 UTC+3 пользователь Kirill K написал:

Shefki Esadi

unread,
Apr 29, 2019, 9:12:16 AM4/29/19
to dcm4che
Hi,
- so you are saying there is a difference if you pass as range 20150601-20150631 or 20150601-20150630, do you access the AET as external?, what's happen if you query as range only 20150631?
- You have to edit manually by hand the range if you pass a wrong range (Date picker (used by range picker) is an external module (not developed by my self, so there is probably a bug that "crashes" the date picker module))
- Like I said the range-picker is checking only the format (for example if you write "test-test2" or "12-51234" than you should see the red border. Like I said I can extend that validation to check if the date is wrong and maybe prevent opening the  range picker if the user pass a wrong range.

Best Regards
Shefki Esadi

Kirill K

unread,
Apr 29, 2019, 9:42:01 AM4/29/19
to dcm4che
20150601-20150630 total count 434
20150601-20150631 total count 460
20150631 total count 26, query returns studies made on 20150701

I'm totaly up for extended check, because i believe that good software shoud check for human errors as much as possible, imho. But since i'm just one of the users, maybe you shoud make a poll here, or decide yourself as a professional.


понедельник, 29 апреля 2019 г., 16:12:16 UTC+3 пользователь Shefki Esadi написал:

Shefki Esadi

unread,
Apr 29, 2019, 10:02:19 AM4/29/19
to dcm4che
I will forward the results to my colleagues that are responsible for the archive.
I opened an issue for that, you are of course right but I as developer have to set priorities.

Best Regards
Shefki Esadi

Gunter Zeilinger

unread,
Apr 29, 2019, 10:41:15 AM4/29/19
to dcm...@googlegroups.com
Typically users expect to be able to store also DICOM objects with invalid date/time values in an archive. Therefore, the archive just treats date/time values as strings. A study date range matching key is translated to
WHERE (study_date BETWEEN '<date1>' AND '<date2>') AND study_date<>'*' in the performed SQL. "AND study_date<>'*'" for excluding studies with unknown Study Date.

So you may verify
SELECT COUNT(*) FROM study WHERE (study_date BETWEEN '20150601' AND '20150630') AND study_date<>'*';
SELECT COUNT(*) FROM study WHERE (study_date BETWEEN '20150601' AND '20150631') AND study_date<>'*';
SELECT COUNT(*) FROM study WHERE (study_date='20150631') AND study_date<>'*';
SELECT COUNT(*) FROM study WHERE (study_date='20150701') AND study_date<>'*';
...

--
You received this message because you are subscribed to the Google Groups "dcm4che" group.
To unsubscribe from this group and stop receiving emails from it, send an email to dcm4che+u...@googlegroups.com.
To post to this group, send email to dcm...@googlegroups.com.
Visit this group at https://groups.google.com/group/dcm4che.
For more options, visit https://groups.google.com/d/optout.

Kirill K

unread,
Apr 29, 2019, 12:28:41 PM4/29/19
to dcm...@googlegroups.com
Theese queries yelds diferent result compared to UI:
434
434
0
26

when UI gives
434
460
26
26

понедельник, 29 апреля 2019 г., 17:41:15 UTC+3 пользователь gunterze написал:
To unsubscribe from this group and stop receiving emails from it, send an email to dcm...@googlegroups.com.

Gunter Zeilinger

unread,
Apr 30, 2019, 3:35:14 AM4/30/19
to dcm...@googlegroups.com
So I guess, there is something wrong with the QIDO requests invoked by the UI. You may verify the value of the StudyDate query attribute in the Network debug window of your browser or in the server.log of the archive.



On Mon, Apr 29, 2019 at 6:28 PM Kirill K <kkos...@gmail.com> wrote:
Theese queries yels diferent result compared to UI:
To unsubscribe from this group and stop receiving emails from it, send an email to dcm4che+u...@googlegroups.com.

Kirill K

unread,
Apr 30, 2019, 3:51:07 AM4/30/19
to dcm4che
Request URL:


вторник, 30 апреля 2019 г., 10:35:14 UTC+3 пользователь gunterze написал:

Gunter Zeilinger

unread,
Apr 30, 2019, 4:23:45 AM4/30/19
to dcm...@googlegroups.com
I was wrong. Processing of query attributes converts String -> Date -> String. So "20150631" becomes to  "20150701".

To unsubscribe from this group and stop receiving emails from it, send an email to dcm4che+u...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages