LT-63: Applying date range filter for DicomWeb and DIMSE services on study list

This commit is contained in:
Bruno Alves de Faria 2016-09-30 11:19:46 -03:00
parent 8d5d1ee360
commit ed86c14807
2 changed files with 73 additions and 55 deletions

View File

@ -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);
}
});

View File

@ -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);
};