diff --git a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx index 5183498b1f2..01803a350f6 100644 --- a/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx +++ b/extensions/measurement-tracking/src/panels/PanelStudyBrowserTracking/PanelStudyBrowserTracking.tsx @@ -1,4 +1,5 @@ import React, { useState, useEffect } from 'react'; +import { useTranslation } from 'react-i18next'; import PropTypes from 'prop-types'; import { utils } from '@ohif/core'; import { @@ -31,6 +32,8 @@ function PanelStudyBrowserTracking({ uiNotificationService, } = servicesManager.services; + const { t } = useTranslation('Common'); + // Normally you nest the components so the tree isn't so deep, and the data // doesn't have to have such an intense shape. This works well enough for now. // Tabs --> Studies --> DisplaySets --> Thumbnails @@ -134,7 +137,7 @@ function PanelStudyBrowserTracking({ const actuallyMappedStudies = mappedStudies.map(qidoStudy => { return { studyInstanceUid: qidoStudy.StudyInstanceUID, - date: formatDate(qidoStudy.StudyDate), + date: formatDate(qidoStudy.StudyDate) || t('NoStudyDate'), description: qidoStudy.StudyDescription, modalities: qidoStudy.ModalitiesInStudy, numInstances: qidoStudy.NumInstances, diff --git a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx index 81e796b877d..c53000caa41 100644 --- a/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx +++ b/extensions/measurement-tracking/src/viewports/TrackedCornerstoneViewport.tsx @@ -22,7 +22,7 @@ function TrackedCornerstoneViewport(props) { viewportOptions, } = props; - const { t } = useTranslation('TrackedViewport'); + const { t } = useTranslation('Common'); const { measurementService, @@ -54,6 +54,7 @@ function TrackedCornerstoneViewport(props) { PatientAge, SliceThickness, SpacingBetweenSlices, + StudyDate, ManufacturerModelName, } = displaySet.images[0]; @@ -194,7 +195,8 @@ function TrackedCornerstoneViewport(props) { getStatusComponent={() => _getStatusComponent(isTracked)} studyData={{ label: viewportLabel, - studyDate: formatDate(SeriesDate), // TODO: This is series date. Is that ok? + studyDate: + formatDate(SeriesDate) || formatDate(StudyDate) || t('NoStudyDate'), currentSeries: SeriesNumber, // TODO - switch entire currentSeries to be UID based or actual position based seriesDescription: SeriesDescription, patientInformation: { diff --git a/platform/core/src/utils/formatDate.js b/platform/core/src/utils/formatDate.js index a2a9a9bab3a..7b44277f200 100644 --- a/platform/core/src/utils/formatDate.js +++ b/platform/core/src/utils/formatDate.js @@ -8,5 +8,6 @@ import moment from 'moment'; * @returns {string} Formatted date */ export default (date, format = 'DD-MMM-YYYY') => { - return moment(date).format(format); + // moment(undefined) returns the current date, so return the empty string instead + return date ? moment(date).format(format) : ''; }; diff --git a/platform/i18n/src/locales/en-US/Common.json b/platform/i18n/src/locales/en-US/Common.json index ff2e5d3b170..2a9b748c32a 100644 --- a/platform/i18n/src/locales/en-US/Common.json +++ b/platform/i18n/src/locales/en-US/Common.json @@ -6,6 +6,7 @@ "Measurements": "Measurements", "More": "More", "Next": "Next", + "NoStudyDate": "No Study Date", "Play": "Play", "Previous": "Previous", "Reset": "Reset",