diff --git a/Packages/worklist/client/components/worklistResult/worklistResult.js b/Packages/worklist/client/components/worklistResult/worklistResult.js index 7d20e37c2..4b847dee6 100644 --- a/Packages/worklist/client/components/worklistResult/worklistResult.js +++ b/Packages/worklist/client/components/worklistResult/worklistResult.js @@ -45,7 +45,7 @@ Template.worklistResult.helpers({ sortingColumnsIcons() { const instance = Template.instance(); - + let sortingColumnsIcons = {}; Object.keys(instance.sortingColumns.keys).forEach(key => { const value = instance.sortingColumns.get(key); @@ -218,13 +218,20 @@ Template.worklistResult.onRendered(() => { const instance = Template.instance(); // Initialize daterangepicker - instance.$('#studyDate').daterangepicker({ + const today = moment(); + const lastWeek = moment().subtract(6, 'days'); + const lastMonth = moment().subtract(29, 'days'); + const datePicker = instance.$('#studyDate').daterangepicker({ + maxDate: today, + autoUpdateInput: true, ranges: { - Today: [moment(), moment()], - 'Last 7 Days': [moment().subtract(6, 'days'), moment()], - 'Last 30 Days': [moment().subtract(29, 'days'), moment()] + Today: [today, today], + 'Last 7 Days': [lastWeek, today], + 'Last 30 Days': [lastMonth, today] } - }); + }).data('daterangepicker'); + datePicker.setStartDate(lastWeek); + datePicker.setEndDate(today); // Retrieve all studies search(); @@ -251,7 +258,7 @@ Template.worklistResult.events({ 'change #studyDate'(event) { let dateRange = $(event.currentTarget).val(); - + // Remove all space chars dateRange = dateRange.replace(/ /g, ''); @@ -287,4 +294,3 @@ Template.worklistResult.events({ Session.set('sortOption', sortOption); } }); - diff --git a/Packages/worklist/server/services/dimse/studies.js b/Packages/worklist/server/services/dimse/studies.js index 105e95df6..32b7fa400 100755 --- a/Packages/worklist/server/services/dimse/studies.js +++ b/Packages/worklist/server/services/dimse/studies.js @@ -1,47 +1,59 @@ -/** - * Parses resulting data from a QIDO call into a set of Study MetaData - * - * @param resultData - * @returns {Array} An array of Study MetaData objects - */ -function resultDataToStudies(resultData) { - var studies = []; - - resultData.forEach(function(studyRaw) { - var study = studyRaw.toObject(); - studies.push({ - studyInstanceUid: study[0x0020000D], - // 00080005 = SpecificCharacterSet - studyDate: study[0x00080020], - studyTime: study[0x00080030], - accessionNumber: study[0x00080050], - referringPhysicianName: study[0x00080090], - // 00081190 = URL - patientName: study[0x00100010], - patientId: study[0x00100020], - patientBirthdate: study[0x00100030], - patientSex: study[0x00100040], - imageCount: study[0x00201208], - studyId: study[0x00200010], - studyDescription: study[0x00081030], - modalities: study[0x00080061] - }); - }); - return studies; -} - -Services.DIMSE.Studies = function(filter) { - log.info('Services.DIMSE.Studies'); - var parameters = { - 0x00100010: filter.patientName, - 0x00100020: filter.patientId, - 0x00080050: filter.accessionNumber, - 0x00081030: filter.studyDescription, - 0x00100040: '', - 0x00201208: '', - 0x00080061: filter.modalitiesInStudy - }; - - var results = DIMSE.retrieveStudies(parameters); - return resultDataToStudies(results); -}; +import { moment } from 'meteor/mrt:moment'; + +/** + * Parses resulting data from a QIDO call into a set of Study MetaData + * + * @param resultData + * @returns {Array} An array of Study MetaData objects + */ +function resultDataToStudies(resultData) { + var studies = []; + + resultData.forEach(function(studyRaw) { + var study = studyRaw.toObject(); + studies.push({ + studyInstanceUid: study[0x0020000D], + // 00080005 = SpecificCharacterSet + studyDate: study[0x00080020], + studyTime: study[0x00080030], + accessionNumber: study[0x00080050], + referringPhysicianName: study[0x00080090], + // 00081190 = URL + patientName: study[0x00100010], + patientId: study[0x00100020], + patientBirthdate: study[0x00100030], + patientSex: study[0x00100040], + imageCount: study[0x00201208], + studyId: study[0x00200010], + studyDescription: study[0x00081030], + modalities: study[0x00080061] + }); + }); + return studies; +} + +Services.DIMSE.Studies = function(filter) { + log.info('Services.DIMSE.Studies'); + + let filterStudyDate = ''; + if (filter.studyDateFrom && filter.studyDateTo) { + const convertDate = date => moment(date, 'MM/DD/YYYY').format('YYYYMMDD'); + const dateFrom = convertDate(filter.studyDateFrom); + const dateTo = convertDate(filter.studyDateTo); + filterStudyDate = `${dateFrom}-${dateTo}`; + } + + var parameters = { + 0x00100010: filter.patientName, + 0x00100020: filter.patientId, + 0x00080050: filter.accessionNumber, + 0x00080020: filterStudyDate, + 0x00081030: filter.studyDescription, + 0x00100040: '', + 0x00201208: '', + 0x00080061: filter.modalitiesInStudy + }; + + var results = DIMSE.retrieveStudies(parameters); + return resultDataToStudies(results); +};