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 = '';