ohif-viewer/platform/ui/src/index.js
Joe Boccanfuso 66f6e3eade
feat(DICOM Upload): Added new DICOM upload dialogue launched from the worklist page (#3326)
* feat(DICOM Upload)
OHIF #3297
- DicomWebDataSource.store.dicom now accepts an ArrayBuffer of data sets to store
- DicomWebDataSource.store.dicom now also accepts optional callbacks to track upload and an AbortSignal object to cancel upload
- Added DicomFileUploader class that performs and tracks the upload of a DICOM file
- Added various UI pieces for the upload: DicomUpload, DicomUploadProgress, DicomUploadProgressItem
- ProgressLoadingBar was extracted from LoadingIndicatorProgress so it can be reused
- Modal dialogues can now optionally prevent an outside click from closing the Modal

* Passing an XMLHttpRequest to the dataSource.store.dicom method instead of callbacks and AbortSignal.
Cleanup of various UI pieces to minimize code and increase readability.

* Made the DicomUpload component a customization module exported by the cornerstone extension.

* Exposed a copy of the data source configuration via the IWebApiDataSource interface.
Added dicomUploadEnabled to a data source's configuration.

* Code clean up.

* Upgraded the dicomweb-client version to one that provides the ability to
pass a custom HTTP request. DICOM upload uses that custom HTTP request
to track progress and cancel requests.

* Distinguished between failed and cancelled uploads.

* Allow no selection in the upload dialogue.
Fixed the styling of various progress information so that everything aligns.

* Switched from cornerstone wado image loader to cornerstone dicom image loader for DICOM upload.

* Added special cancelled icon to differentiate from failed.

* Added a bit of spacing between the upload progress bar and percentage.

* Fixed minor issue with upload rejection.

* Performance improvement for cancel all uploads:
- use React memo for each upload item progress (row)
- do not await each request of a cancel all

* Fixed various padding/spacing for the DICOM upload drop zone component.
Changed the border dashing for the DICOM upload drop zone to be a background image gradient.
Added hover and active effects to the 'Cancel All Uploads' text.
2023-04-28 16:13:47 -04:00

117 lines
2.1 KiB
JavaScript

/** UTILS */
//import utils from './utils';
//export { utils };
/** CONTEXT/HOOKS */
// Export types - need to do as two lines due to a bug in babel
import * as Types from './types';
export {
useCine,
CineProvider,
DialogProvider,
useDialog,
withDialog,
DragAndDropProvider,
ModalProvider,
ModalConsumer,
useModal,
withModal,
ImageViewerContext,
ImageViewerProvider,
useImageViewer,
SnackbarProvider,
useSnackbar,
withSnackbar,
ViewportDialogProvider,
useViewportDialog,
ViewportGridContext,
ViewportGridProvider,
useViewportGrid,
UserAuthenticationContext,
UserAuthenticationProvider,
useUserAuthentication,
} from './contextProviders';
/** COMPONENTS */
export {
AboutModal,
HotkeyField,
Header,
UserPreferences,
HotkeysPreferences,
Button,
ButtonGroup,
ContextMenu,
CinePlayer,
DateRange,
Dialog,
Dropdown,
EmptyStudies,
ErrorBoundary,
ExpandableToolbarButton,
ListMenu,
Icon,
IconButton,
Input,
InputRange,
InputDateRange,
InputGroup,
InputLabelWrapper,
InputMultiSelect,
InputText,
Label,
LayoutSelector,
LegacyCinePlayer,
LegacyViewportActionBar,
LoadingIndicatorProgress,
LoadingIndicatorTotalPercent,
MeasurementTable,
Modal,
NavBar,
Notification,
ProgressLoadingBar,
Select,
SegmentationTable,
SegmentationGroupTable,
SidePanel,
SplitButton,
StudyBrowser,
StudyItem,
StudyListExpandedRow,
StudyListFilter,
StudyListPagination,
StudyListTable,
StudyListTableRow,
StudySummary,
Svg,
Table,
TableBody,
TableCell,
TableHead,
TableRow,
ThemeWrapper,
Thumbnail,
ThumbnailNoImage,
ThumbnailTracked,
ThumbnailList,
ToolbarButton,
Tooltip,
TooltipClipboard,
Typography,
Viewport,
ViewportActionBar,
ViewportDownloadForm,
ViewportGrid,
ViewportPane,
WindowLevelMenuItem,
ImageScrollbar,
ViewportOverlay,
} from './components';
/** These are mostly used in the docs */
export { getIcon, ICONS, addIcon } from './components/Icon/getIcon';
export { BackgroundColor } from './pages/Colors/BackgroundColor';
export { ModalComponent } from './contextProviders/ModalComponent';
export { Types };