diff --git a/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.js b/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.js
index 9a40f8ca5..e8381f39f 100644
--- a/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.js
+++ b/extensions/measurement-tracking/src/panels/PanelMeasurementTableTracking/index.js
@@ -21,7 +21,12 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) {
measurementChangeTimestamp,
200
);
- const { MeasurementService, UINotificationService, UIDialogService, DisplaySetService } = servicesManager.services;
+ const {
+ MeasurementService,
+ UINotificationService,
+ UIDialogService,
+ DisplaySetService,
+ } = servicesManager.services;
const [
trackedMeasurements,
sendTrackedMeasurementsEvent,
@@ -31,9 +36,7 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) {
DISPLAY_STUDY_SUMMARY_INITIAL_VALUE
);
const [displayMeasurements, setDisplayMeasurements] = useState([]);
- // TODO: measurements subscribtion
- // Initial?
useEffect(() => {
const measurements = MeasurementService.getMeasurements();
const filteredMeasurements = measurements.filter(
@@ -120,7 +123,7 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) {
isDraggable: false,
centralize: true,
// TODO: Create a loading indicator component + zeplin design?
- content: () =>
Loading...
+ content: () => Loading...
,
});
try {
@@ -136,13 +139,18 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) {
// Would need some way of saying which one is the "push" dataSource
const dataSource = dataSources[0];
- const naturalizedReport = await DICOMSR.storeMeasurements(trackedMeasurements, dataSource);
+ const naturalizedReport = await DICOMSR.storeMeasurements(
+ trackedMeasurements,
+ dataSource
+ );
- DisplaySetService.makeDisplaySets([naturalizedReport], { madeInClient: true });
+ DisplaySetService.makeDisplaySets([naturalizedReport], {
+ madeInClient: true,
+ });
UINotificationService.show({
title: 'STOW SR',
message: 'Measurements saved successfully',
- type: 'success'
+ type: 'success',
});
} catch (error) {
UINotificationService.show({
@@ -169,7 +177,7 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) {
title="Measurements"
amount={displayMeasurements.length}
data={displayMeasurements}
- onClick={() => { }}
+ onClick={() => {}}
onEdit={id => alert(`Edit: ${id}`)}
/>
@@ -183,7 +191,16 @@ function PanelMeasurementTableTracking({ servicesManager, extensionManager }) {
);
}
-PanelMeasurementTableTracking.propTypes = {};
+PanelMeasurementTableTracking.propTypes = {
+ servicesManager: PropTypes.shape({
+ services: PropTypes.shape({
+ MeasurementService: PropTypes.shape({
+ getMeasurements: PropTypes.func.isRequired,
+ VALUE_TYPES: PropTypes.object.isRequired,
+ }).isRequired,
+ }).isRequired,
+ }).isRequired,
+};
// TODO: This could be a MeasurementService mapper
function _mapMeasurementToDisplay(measurement, index, types) {
@@ -203,9 +220,6 @@ function _mapMeasurementToDisplay(measurement, index, types) {
);
const { PixelSpacing, SeriesNumber, InstanceNumber } = instance;
- console.log('mapping....', measurement);
- console.log(instance);
-
return {
id: index + 1,
label: '(empty)', // 'Label short description',
@@ -234,15 +248,7 @@ function _getDisplayText(
instanceNumber,
types
) {
- // TODO: determination of shape influences text
- // Length: 'xx.x unit (S:x, I:x)'
- // Rectangle: 'xx.x x xx.x unit (S:x, I:x)',
- // Ellipse?
- // Bidirectional?
- // Freehand?
-
const { type, points } = measurement;
-
const hasPixelSpacing =
pixelSpacing !== undefined &&
Array.isArray(pixelSpacing) &&
@@ -253,18 +259,16 @@ function _getDisplayText(
const unit = hasPixelSpacing ? 'mm' : 'px';
switch (type) {
- case types.POLYLINE:
+ case types.POLYLINE: {
const { length } = measurement;
-
const roundedLength = _round(length, 1);
return [
`${roundedLength} ${unit} (S:${seriesNumber}, I:${instanceNumber})`,
];
-
- case types.BIDIRECTIONAL:
+ }
+ case types.BIDIRECTIONAL: {
const { shortestDiameter, longestDiameter } = measurement;
-
const roundedShortestDiameter = _round(shortestDiameter, 1);
const roundedLongestDiameter = _round(longestDiameter, 1);
@@ -272,16 +276,19 @@ function _getDisplayText(
`l: ${roundedLongestDiameter} ${unit} (S:${seriesNumber}, I:${instanceNumber})`,
`s: ${roundedShortestDiameter} ${unit}`,
];
- case types.ELLIPSE:
+ }
+ case types.ELLIPSE: {
const { area } = measurement;
-
const roundedArea = _round(area, 1);
+
return [
`${roundedArea} ${unit}2 (S:${seriesNumber}, I:${instanceNumber})`,
];
- case types.POINT:
+ }
+ case types.POINT: {
const { text } = measurement;
return [`${text} (S:${seriesNumber}, I:${instanceNumber})`];
+ }
}
}