diff --git a/platform/ui/index.js b/platform/ui/index.js index df6706cf9..0097336b1 100644 --- a/platform/ui/index.js +++ b/platform/ui/index.js @@ -35,6 +35,7 @@ export { StudyBrowser, StudyItem, StudyListExpandedRow, + StudyListFilter, StudyListPagination, StudyListTable, Svg, diff --git a/platform/ui/src/views/StudyList/components/StudyListFilter.js b/platform/ui/src/components/StudyListFilter/StudyListFilter.jsx similarity index 96% rename from platform/ui/src/views/StudyList/components/StudyListFilter.js rename to platform/ui/src/components/StudyListFilter/StudyListFilter.jsx index 229e084a0..eed2cb795 100644 --- a/platform/ui/src/views/StudyList/components/StudyListFilter.js +++ b/platform/ui/src/components/StudyListFilter/StudyListFilter.jsx @@ -73,8 +73,11 @@ const StudyListFilter = ({ -
-
+
+
+ {() => { + const defaultFilterValues = { + patientName: '', + mrn: '', + studyDate: { + startDate: null, + endDate: null, + }, + description: '', + modality: undefined, + accession: '', + sortBy: '', + sortDirection: 'none', + page: 0, + resultsPerPage: 25, + }; + const [filterValues, setFilterValues] = useState(defaultFilterValues); + const filtersMeta = [ + { + name: 'patientName', + displayName: 'Patient Name', + inputType: 'Text', + isSortable: true, + gridCol: 4, + }, + { + name: 'mrn', + displayName: 'MRN', + inputType: 'Text', + isSortable: true, + gridCol: 2, + }, + { + name: 'studyDate', + displayName: 'Study date', + inputType: 'DateRange', + isSortable: true, + gridCol: 5, + }, + { + name: 'description', + displayName: 'Description', + inputType: 'Text', + isSortable: true, + gridCol: 4, + }, + { + name: 'modality', + displayName: 'Modality', + inputType: 'MultiSelect', + inputProps: { + options: [ + { value: 'SEG', label: 'SEG' }, + { value: 'CT', label: 'CT' }, + { value: 'MR', label: 'MR' }, + { value: 'SR', label: 'SR' }, + ], + }, + isSortable: true, + gridCol: 3, + }, + { + name: 'accession', + displayName: 'Accession', + inputType: 'Text', + isSortable: true, + gridCol: 4, + }, + { + name: 'instances', + displayName: 'Instances', + inputType: 'None', + isSortable: true, + gridCol: 2, + }, + ]; + const isFiltering = (filterValues, defaultFilterValues) => { + return Object.keys(defaultFilterValues).some(name => { + return filterValues[name] !== defaultFilterValues[name]; + }); + }; + return ( + setFilterValues(defaultFilterValues)} + isFiltering={isFiltering(filterValues, defaultFilterValues)} + /> + ); + }} + + +## Properties + + diff --git a/platform/ui/src/components/StudyListFilter/index.js b/platform/ui/src/components/StudyListFilter/index.js new file mode 100644 index 000000000..c16fbbcb6 --- /dev/null +++ b/platform/ui/src/components/StudyListFilter/index.js @@ -0,0 +1 @@ +export { default } from './StudyListFilter'; diff --git a/platform/ui/src/components/StudyListPagination/StudyListPagination.js b/platform/ui/src/components/StudyListPagination/StudyListPagination.js index 05f2f64f7..4adbe1a07 100644 --- a/platform/ui/src/components/StudyListPagination/StudyListPagination.js +++ b/platform/ui/src/components/StudyListPagination/StudyListPagination.js @@ -1,6 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { Button, ButtonGroup, Icon, IconButton, Typography } from '@ohif/ui'; +import { Button, ButtonGroup, Icon, Typography } from '@ohif/ui'; const StudyListPagination = ({ onChangePage, @@ -21,8 +21,7 @@ const StudyListPagination = ({