fix studyDate sort and display

This commit is contained in:
dannyrb 2020-05-12 14:56:30 -04:00 committed by James A. Petts
parent 10729c2414
commit e29a777a9f
2 changed files with 43 additions and 11 deletions

View File

@ -46,16 +46,17 @@ function processResults(qidoStudies) {
qidoStudies.forEach(qidoStudy =>
studies.push({
studyInstanceUid: getString(qidoStudy['0020000D']),
date: getString(qidoStudy['00080020']),
date: getString(qidoStudy['00080020']), // YYYYMMDD
time: getString(qidoStudy['00080030']), // HHmmss.SSS (24-hour, minutes, seconds, fractional seconds)
accession: getString(qidoStudy['00080050']), // short string, probably a number?
mrn: getString(qidoStudy['00100020']), // medicalRecordNumber
patientName: getName(qidoStudy['00100010']),
instances: Number(getString(qidoStudy['00201208'])), // number
description: getString(qidoStudy['00081030']),
modalities: getString(
getModalities(qidoStudy['00080060'], qidoStudy['00080061'])
),
accession: getString(qidoStudy['00080050']) || '', // short string, probably a number?
mrn: getString(qidoStudy['00100020']) || '', // medicalRecordNumber
patientName: getName(qidoStudy['00100010']) || '',
instances: Number(getString(qidoStudy['00201208'])) || 0, // number
description: getString(qidoStudy['00081030']) || '',
modalities:
getString(
getModalities(qidoStudy['00080060'], qidoStudy['00080061'])
) || '',
})
);

View File

@ -182,6 +182,21 @@ function StudyListContainer({ history, data: studies }) {
return -1 * sortModifier;
} else if (!s2Prop && s1Prop) {
return 1 * sortModifier;
} else if (sortBy === 'studyDate') {
// TODO: Delimiters are non-standard. Should we support them?
const s1Date = moment(s1.date, ['YYYYMMDD', 'YYYY.MM.DD'], true);
const s2Date = moment(s2.date, ['YYYYMMDD', 'YYYY.MM.DD'], true);
if (s1Date.isValid() && s2Date.isValid()) {
return (
(s1Date.toISOString() > s2Date.toISOString() ? 1 : -1) *
sortModifier
);
} else if (s1Date.isValid()) {
return sortModifier;
} else if (s2Date.isValid()) {
return -1 * sortModifier;
}
}
return 0;
@ -240,11 +255,27 @@ function StudyListContainer({ history, data: studies }) {
content: (
<div>
<span className="mr-4">
{moment(date).format('MMM-DD-YYYY')}
{date &&
moment(date, ['YYYYMMDD', 'YYYY.MM.DD'], true).isValid() &&
moment(date, ['YYYYMMDD', 'YYYY.MM.DD']).format(
'MMM-DD-YYYY'
)}
</span>
{time && (
<span>
{moment(time, 'HHmmss.SSS').format('hh:mm A')}
{time &&
moment(time, [
'HH',
'HHmm',
'HHmmss',
'HHmmss.SSS',
]).isValid() &&
moment(time, [
'HH',
'HHmm',
'HHmmss',
'HHmmss.SSS',
]).format('hh:mm A')}
</span>
)}
</div>