Mercurial > hg > orthanc
comparison OrthancServer/OrthancExplorer/query-retrieve.js @ 4757:72a850947b11
In lookup and query/retrieve, possibility to provide a specific study date
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 20 Jul 2021 08:14:05 +0200 |
parents | 8661811abca3 |
children | b2417ac5055a 7053502fbf97 |
comparison
equal
deleted
inserted
replaced
4756:38374acc7435 | 4757:72a850947b11 |
---|---|
29 * You should have received a copy of the GNU General Public License | 29 * You should have received a copy of the GNU General Public License |
30 * along with this program. If not, see <http://www.gnu.org/licenses/>. | 30 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
31 **/ | 31 **/ |
32 | 32 |
33 | 33 |
34 function IsoToDicomDate(s) | |
35 { | |
36 return s.substring(0, 4) + s.substring(5, 7) + s.substring(8, 10); | |
37 } | |
38 | |
34 function GenerateDicomDate(days) | 39 function GenerateDicomDate(days) |
35 { | 40 { |
36 var today = new Date(); | 41 var today = new Date(); |
37 var utc = new Date(today); | 42 var utc = new Date(today); |
38 utc.setDate(today.getDate() + days); | 43 utc.setDate(today.getDate() + days); |
46 * https://groups.google.com/g/orthanc-users/c/dK7EEPVpedk/m/DPtMRFnKAgAJ | 51 * https://groups.google.com/g/orthanc-users/c/dK7EEPVpedk/m/DPtMRFnKAgAJ |
47 **/ | 52 **/ |
48 var timezoneOffset = today.getTimezoneOffset() * 60 * 1000; | 53 var timezoneOffset = today.getTimezoneOffset() * 60 * 1000; |
49 var localDate = new Date(utc.getTime() - timezoneOffset); | 54 var localDate = new Date(utc.getTime() - timezoneOffset); |
50 | 55 |
51 var s = localDate.toISOString(); | 56 return IsoToDicomDate(localDate.toISOString()); |
52 return s.substring(0, 4) + s.substring(5, 7) + s.substring(8, 10); | |
53 } | 57 } |
54 | 58 |
55 | 59 |
56 $('#query-retrieve').live('pagebeforeshow', function() { | 60 $('#query-retrieve').live('pagebeforeshow', function() { |
57 var targetDate; | 61 var targetDate; |
83 targetDate.append($('<option>').attr('value', GenerateDicomDate(-1)).text('Yesterday')); | 87 targetDate.append($('<option>').attr('value', GenerateDicomDate(-1)).text('Yesterday')); |
84 targetDate.append($('<option>').attr('value', GenerateDicomDate(-7) + '-').text('Last 7 days')); | 88 targetDate.append($('<option>').attr('value', GenerateDicomDate(-7) + '-').text('Last 7 days')); |
85 targetDate.append($('<option>').attr('value', GenerateDicomDate(-31) + '-').text('Last 31 days')); | 89 targetDate.append($('<option>').attr('value', GenerateDicomDate(-31) + '-').text('Last 31 days')); |
86 targetDate.append($('<option>').attr('value', GenerateDicomDate(-31 * 3) + '-').text('Last 3 months')); | 90 targetDate.append($('<option>').attr('value', GenerateDicomDate(-31 * 3) + '-').text('Last 3 months')); |
87 targetDate.append($('<option>').attr('value', GenerateDicomDate(-365) + '-').text('Last year')); | 91 targetDate.append($('<option>').attr('value', GenerateDicomDate(-365) + '-').text('Last year')); |
92 targetDate.append($('<option>').attr('value', 'specific').text('Specific date')); | |
88 targetDate.selectmenu('refresh'); | 93 targetDate.selectmenu('refresh'); |
94 | |
95 $('#qr-date-specific').hide(); | |
96 }); | |
97 | |
98 | |
99 $('#qr-date').live('change', function() { | |
100 if ($(this).val() == 'specific') { | |
101 $('#qr-date-specific').show(); | |
102 } else { | |
103 $('#qr-date-specific').hide(); | |
104 } | |
89 }); | 105 }); |
90 | 106 |
91 | 107 |
92 $('#qr-echo').live('click', function() { | 108 $('#qr-echo').live('click', function() { |
93 var server = $('#qr-server').val(); | 109 var server = $('#qr-server').val(); |
118 return false; | 134 return false; |
119 }); | 135 }); |
120 | 136 |
121 | 137 |
122 $('#qr-submit').live('click', function() { | 138 $('#qr-submit').live('click', function() { |
123 var query, server, modalities, field; | 139 var query, server, modalities, field, studyDate; |
140 | |
141 studyDate = $('#qr-date').val(); | |
142 if (studyDate == 'specific') { | |
143 studyDate = IsoToDicomDate($('#qr-date-specific').val()); | |
144 } | |
124 | 145 |
125 query = { | 146 query = { |
126 'Level' : 'Study', | 147 'Level' : 'Study', |
127 'Query' : { | 148 'Query' : { |
128 'AccessionNumber' : '', | 149 'AccessionNumber' : '', |
129 'PatientBirthDate' : '', | 150 'PatientBirthDate' : '', |
130 'PatientID' : '', | 151 'PatientID' : '', |
131 'PatientName' : '', | 152 'PatientName' : '', |
132 'PatientSex' : '', | 153 'PatientSex' : '', |
133 'StudyDate' : $('#qr-date').val(), | 154 'StudyDate' : studyDate, |
134 'StudyDescription' : '' | 155 'StudyDescription' : '' |
135 } | 156 } |
136 }; | 157 }; |
137 | 158 |
138 modalities = ''; | 159 modalities = ''; |