feat(studyPrefetcher): Study Prefetcher (#4206)
This commit is contained in:
1 parent
257cc477cd
commit
2048b19484
24 files changed
+992
-98
No files matched your search
@@ -33,7 +33,7 @@
|
||||
"react-dom": "^18.3.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@testing-library/react-hooks": "^3.2.1",
|
||||
"@testing-library/react": "^13.1.0",
|
||||
"browser-detect": "^0.2.28",
|
||||
"classnames": "^2.3.2",
|
||||
"d3-array": "3",
|
||||
@@ -56,7 +56,7 @@
|
||||
"react-modal": "3.11.2",
|
||||
"react-outside-click-handler": "^1.3.0",
|
||||
"react-select": "5.7.4",
|
||||
"react-test-renderer": "^16.12.0",
|
||||
"react-test-renderer": "^18.3.1",
|
||||
"react-window": "^1.8.9",
|
||||
"react-with-direction": "^1.3.1",
|
||||
"swiper": "^8.4.2",
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="19" height="19" viewBox="0 0 19 19" version="1.1" xmlns="http://www.w3.org/2000/svg">
|
||||
<g fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" transform="matrix(0.84873874,0,0,0.84873874,0.13586772,0.14249413)">
|
||||
<ellipse cx="11" cy="4" rx="9" ry="3"/>
|
||||
<path d="m 2,4 v 14 a 9,3 0 0 0 18,0 V 4" />
|
||||
<path d="m 2,11 a 9,3 0 0 0 18,0" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 474 B |
@@ -9,6 +9,7 @@ import { ReactComponent as calendar } from './../../assets/icons/calendar.svg';
|
||||
import { ReactComponent as cancel } from './../../assets/icons/cancel.svg';
|
||||
import { ReactComponent as clipboard } from './../../assets/icons/clipboard.svg';
|
||||
import { ReactComponent as close } from './../../assets/icons/closeIcon.svg';
|
||||
import { ReactComponent as database } from './../../assets/icons/database.svg';
|
||||
import { ReactComponent as dottedCircle } from './../../assets/icons/dotted-circle.svg';
|
||||
import { ReactComponent as circledCheckmark } from './../../assets/icons/circled-checkmark.svg';
|
||||
import { ReactComponent as chevronDown } from './../../assets/icons/chevron-down.svg';
|
||||
@@ -214,6 +215,7 @@ const ICONS = {
|
||||
cancel: cancel,
|
||||
clipboard: clipboard,
|
||||
close: close,
|
||||
database: database,
|
||||
'dotted-circle': dottedCircle,
|
||||
'circled-checkmark': circledCheckmark,
|
||||
'chevron-down': chevronDown,
|
||||
|
||||
@@ -17,6 +17,7 @@ const Thumbnail = ({
|
||||
description,
|
||||
seriesNumber,
|
||||
numInstances,
|
||||
loadingProgress,
|
||||
countIcon,
|
||||
messages,
|
||||
dragData = {},
|
||||
@@ -94,6 +95,17 @@ const Thumbnail = ({
|
||||
/>
|
||||
{` ${numInstances}`}
|
||||
</div>
|
||||
<div className="flex mr-2 last:mr-0">
|
||||
{loadingProgress && loadingProgress < 1 && (
|
||||
<>{Math.round(loadingProgress * 100)}%</>
|
||||
)}
|
||||
{loadingProgress && loadingProgress === 1 && (
|
||||
<Icon
|
||||
name={'database'}
|
||||
className="w-3"
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
<DisplaySetMessageListTooltip
|
||||
messages={messages}
|
||||
id={`display-set-tooltip-${displaySetInstanceUID}`}
|
||||
@@ -124,6 +136,7 @@ Thumbnail.propTypes = {
|
||||
description: PropTypes.string.isRequired,
|
||||
seriesNumber: StringNumber.isRequired,
|
||||
numInstances: PropTypes.number.isRequired,
|
||||
loadingProgress: PropTypes.number,
|
||||
messages: PropTypes.object,
|
||||
isActive: PropTypes.bool.isRequired,
|
||||
onClick: PropTypes.func.isRequired,
|
||||
|
||||
@@ -25,6 +25,7 @@ const ThumbnailList = ({
|
||||
dragData,
|
||||
seriesNumber,
|
||||
numInstances,
|
||||
loadingProgress,
|
||||
modality,
|
||||
componentType,
|
||||
seriesDate,
|
||||
@@ -66,6 +67,7 @@ const ThumbnailList = ({
|
||||
description={description}
|
||||
seriesNumber={seriesNumber}
|
||||
numInstances={numInstances}
|
||||
loadingProgress={loadingProgress}
|
||||
countIcon={countIcon}
|
||||
imageSrc={imageSrc}
|
||||
imageAltText={imageAltText}
|
||||
|
||||
@@ -18,6 +18,7 @@ function ThumbnailTracked({
|
||||
description,
|
||||
seriesNumber,
|
||||
numInstances,
|
||||
loadingProgress,
|
||||
countIcon,
|
||||
messages,
|
||||
dragData,
|
||||
@@ -87,6 +88,7 @@ function ThumbnailTracked({
|
||||
messages={messages}
|
||||
numInstances={numInstances}
|
||||
countIcon={countIcon}
|
||||
loadingProgress={loadingProgress}
|
||||
isActive={isActive}
|
||||
onClick={onClick}
|
||||
onDoubleClick={onDoubleClick}
|
||||
@@ -114,6 +116,7 @@ ThumbnailTracked.propTypes = {
|
||||
description: PropTypes.string.isRequired,
|
||||
seriesNumber: StringNumber.isRequired,
|
||||
numInstances: PropTypes.number.isRequired,
|
||||
loadingProgress: PropTypes.number,
|
||||
onClick: PropTypes.func.isRequired,
|
||||
onDoubleClick: PropTypes.func.isRequired,
|
||||
onClickUntrack: PropTypes.func.isRequired,
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { renderHook, act } from '@testing-library/react-hooks';
|
||||
import { act } from 'react';
|
||||
import { renderHook } from '@testing-library/react';
|
||||
import useSessionStorage from './useSessionStorage';
|
||||
|
||||
const SESSION_STORAGE_KEY = 'test';
|
||||
|
||||
Reference in new issue
Block a user