/*! Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: MIT-0 */ import React, { useState } from 'react'; import { Panel, Placeholder, Tag, DatePicker, Message, Container, Header, Loader, Table } from 'rsuite'; import { format } from 'date-fns' import { useNavigate } from 'react-router-dom'; import CheckIcon from '@rsuite/icons/Check'; import TimeIcon from '@rsuite/icons/Time'; import RemindOutlineIcon from '@rsuite/icons/RemindOutline'; import { useWorkflows } from 'src/hooks/useWorkflows'; import isAfter from 'date-fns/isAfter'; import getTime from 'date-fns/getTime'; import startOfDay from 'date-fns/startOfDay'; import endOfDay from 'date-fns/endOfDay'; import './styles.less'; const { Column, HeaderCell, Cell } = Table; const CompactHeaderCell = props => { const headerStyle = { padding: (props.children === "Workflow ID")?18:4, color: '#757575', background: "#FAFAFA", fontSize: '14px', fontWeight: 'bold' } return }; const defaultColumns = [ { key: 'part_key', label: 'Workflow ID', fixed: true, minwidth: 300, flexGrow: 3, verticalAlign: 'middle' }, { key: 'total_files', label: 'Number of Docs', width: 200, verticalAlign: 'middle' }, { key: 'status', label: 'OCR Status', minwidth: 500, flexGrow: 1, verticalAlign: 'middle' }, { key: 'de_identification_status', label: 'De-dientification Status', minwidth: 550, flexGrow: 1, verticalAlign: 'middle' }, // { // key: 'de_identify', // label: undefined, // minwidth: 0 // }, { key: 'submit_ts', label: 'Time Submitted', width: 200, verticalAlign: 'middle' } ]; const getStatus = (status) => { switch (status) { case "processing": return case "complete": return {status} default: return {status} } } const getDeidStatus = (status) => { switch (status) { case "processing": return case "processed": return complete case "queued": return queued case "not_requested": return NOT REQUESTED default: return {status} } } const ReviewDocs = () => { const [columnKeys] = React.useState(defaultColumns.map(column => column.key)); const columns = defaultColumns.filter(column => columnKeys.some(key => key === column.key)); const [startDt, setstartDt] = useState(getTime(startOfDay(new Date()))); const [endDt, setendDt] = useState(getTime(endOfDay(new Date()))); const { data, isError, isFetching } = useWorkflows("workflow-list-global", "all", {startDt, endDt}); const navigate = useNavigate(); const setDateRange = (dt) => { const dtStr = format(dt, 'MM/dd/yyyy'); const start = getTime(startOfDay(new Date(dtStr))); const end = getTime(endOfDay(new Date(dtStr))) setstartDt(start) setendDt(end); } const CompactCell = (props) => { const cellStyle = {padding: 4, cursor: (props.rowData.status === "complete")?'pointer':undefined} if(props.dataKey === "status"){ return {getStatus(props.rowData.status)} }else if(props.dataKey === "submit_ts"){ return {format(props.rowData.submit_ts, 'MM/dd/yyyy p')} }else if(props.dataKey === "part_key"){ return {props.rowData.part_key} }else if(props.dataKey === "de_identification_status"){ return { (props.rowData.status === "processing")? getDeidStatus("queued") :getDeidStatus(props.rowData.de_identification_status) } } else{ return ; } } const navigateToDetail = (status, part_key) =>{ if (status === "complete"){ navigate(`/review/wf/${part_key}`) } } return (

Review Analysis Jobs

Review documents and outputs in your bulk OCR and de-dentification workflow
{ (isError)&& Error: Something went wrong while trying to process this request. Please refresh or try again. If the problem persists, please check your internet connection and log back in. } isAfter(date, new Date())}/> }> { (data)? navigateToDetail(obj.status, obj.part_key)} > {columns.map(column => { const { key, label, ...rest } = column; return ( {label} ); })}
: }
) } export default ReviewDocs;