Skip to content

Commit

Permalink
feat: update algorithm step
Browse files Browse the repository at this point in the history
  • Loading branch information
nicoalee committed Apr 25, 2023
1 parent 8288107 commit 4fbcc7c
Show file tree
Hide file tree
Showing 40 changed files with 345 additions and 286 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import BaseDialog, { IDialog } from '../BaseDialog';
import metaAnalysisSpec from 'assets/config/meta_analysis_params.json';
import { EAnalysisType } from 'legacy/MetaAnalysis/MetaAnalysisBuilderPage/MetaAnalysisBuilderPage';
import NeurosynthAccordion from 'components/NeurosynthAccordion/NeurosynthAccordion';
import DynamicForm from 'components/MetaAnalysisConfigComponents/MetaAnalysisAlgorithm/DynamicForm/DynamicForm';
import { useState } from 'react';
import EditAnalysesStyles from 'components/EditStudyComponents/EditAnalyses/EditAnalyses.styles';
import { useCreateAlgorithmSpecification } from 'hooks';
Expand All @@ -21,9 +20,12 @@ import {
useProjectId,
useProjectName,
useProjectSelectionMetadata,
useAlgorithmSpecificationId,
} from 'pages/Projects/ProjectPage/ProjectStore';
import LoadingButton from 'components/Buttons/LoadingButton/LoadingButton';
import StateHandlerComponent from 'components/StateHandlerComponent/StateHandlerComponent';
import DynamicForm from 'components/MetaAnalysisConfigComponents/DynamicForm/DynamicForm';
import useUpdateSpecification from 'hooks/requests/useUpdateSpecification';

const metaAnalysisSpecification: IMetaAnalysisParamsSpecification = metaAnalysisSpec;

Expand Down Expand Up @@ -70,26 +72,49 @@ const AlgorithmDialog: React.FC<IDialog> = (props) => {
const studysetId = useProjectExtractionStudysetId();
const annotationId = useProjectExtractionAnnotationId();
const setAlgorithmSpecification = useUpdateSpecificationMetadata();
const { mutate } = useUpdateSpecification();
const specificationId = useAlgorithmSpecificationId();

const handleSelectAlgorithm = async () => {
const metaAnalysis = await createMetaAnalysis(
projectId,
EAnalysisType.CBMA,
algorithmSpec.estimator,
algorithmSpec.corrector,
studysetId,
annotationId,
filter?.filter?.selectionKey,
`${projectName} Meta Analysis`,
'',
algorithmSpec.estimatorArgs,
algorithmSpec.correctorArgs
);
if (specificationId) {
// if we already have a specification
mutate({
specificationId,
specification: {
estimator: {
type: algorithmSpec.estimator?.label,
args: algorithmSpec.estimatorArgs || {},
},
type: EAnalysisType.CBMA,
corrector: algorithmSpec.corrector
? {
type: algorithmSpec.corrector.label as string,
args: algorithmSpec.correctorArgs || {},
}
: null,
},
});
} else {
const metaAnalysis = await createMetaAnalysis(
projectId,
EAnalysisType.CBMA,
algorithmSpec.estimator,
algorithmSpec.corrector,
studysetId,
annotationId,
filter?.filter?.selectionKey,
`${projectName} Meta Analysis`,
'',
algorithmSpec.estimatorArgs,
algorithmSpec.correctorArgs
);
if (!metaAnalysis.data.specification || !metaAnalysis.data.id)
throw new Error(
'no specification Id from create meta-analysis specification found'
);

if (!metaAnalysis.data.specification || !metaAnalysis.data.id)
throw new Error('no specification Id from create meta-analysis specification found');

// setAlgorithmSpecification(metaAnalysis.data.specification as string, metaAnalysis.data.id);
// setAlgorithmSpecification(metaAnalysis.data.specification as string, metaAnalysis.data.id);
}
};

const getMetaAnalyticAlgorithms: IAutocompleteObject[] = Object.keys(
Expand Down Expand Up @@ -259,7 +284,7 @@ const AlgorithmDialog: React.FC<IDialog> = (props) => {
variant="contained"
color="success"
>
save and run meta-analysis
save and go to run meta-analysis
</Button>
</Box>
</StateHandlerComponent>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react';
import { IParameter } from '../..';
import { IParameter } from 'components/MetaAnalysisConfigComponents/index';
import DynamicForm from './DynamicForm';

jest.mock('./DynamicFormBoolInput');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import {
IMetaAnalysisParamsSpecification,
IParameter,
KWARG_STRING,
} from '../..';
} from 'components/MetaAnalysisConfigComponents/index';
import DynamicFormBoolInput from './DynamicFormBoolInput';
import DynamicFormKwargInput from './DynamicFormKwargInput';
import DynamicFormNumericInput from './DynamicFormNumericInput';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Box, Typography, ToggleButtonGroup, ToggleButton } from '@mui/material';
import { IDynamicFormInput } from '../..';
import { IDynamicFormInput } from 'components/MetaAnalysisConfigComponents/index';
import DynamicFormStyles from './DynamicFormStyles';

const DynamicFormBoolInput: React.FC<IDynamicFormInput> = (props) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { Box, Button, Divider, TableCell, TableRow, Typography, IconButton } fro
import { useState } from 'react';
import { IMetadataRowModel } from 'components/EditMetadata';
import AddMetadataRow from 'components/EditMetadata/EditMetadataRow/AddMetadataRow';
import { IDynamicFormInput } from '../..';
import { IDynamicFormInput } from 'components/MetaAnalysisConfigComponents/index';
import DynamicFormBaseTitle from './DynamicFormBaseTitle';
import NeurosynthTable from 'components/Tables/NeurosynthTable/NeurosynthTable';
import RemoveCircle from '@mui/icons-material/RemoveCircle';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Box, TextField } from '@mui/material';
import { IDynamicFormInput } from '../..';
import { IDynamicFormInput } from 'components/MetaAnalysisConfigComponents/index';
import DynamicFormBaseTitle from './DynamicFormBaseTitle';
import DynamicFormStyles from './DynamicFormStyles';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Box, MenuItem, Select } from '@mui/material';
import { IDynamicFormInput } from '../..';
import { IDynamicFormInput } from 'components/MetaAnalysisConfigComponents/index';
import DynamicFormBaseTitle from './DynamicFormBaseTitle';
import DynamicFormStyles from './DynamicFormStyles';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Box, TextField } from '@mui/material';
import { IDynamicFormInput } from '../..';
import { IDynamicFormInput } from 'components/MetaAnalysisConfigComponents/index';
import DynamicFormBaseTitle from './DynamicFormBaseTitle';
import DynamicFormStyles from './DynamicFormStyles';

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { render, screen } from '@testing-library/react';
import { KWARG_STRING } from '../..';
import { KWARG_STRING } from '..';
import DynamicInputDisplay from './DynamicInputDisplay';

describe('DynamicInputDisplay Component', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Style } from '../../../..';
import { Style } from '../../..';

const DynamicInputDisplayStyles: Style = {
dynamicInputSection: {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Box, Typography } from '@mui/material';
import { IDynamicValueType, KWARG_STRING } from '../..';
import { IDynamicValueType, KWARG_STRING } from '..';
import DynamicInputDisplayStyles from './DynamicInputDisplay.styles';

const DynamicInputDisplay: React.FC<{ dynamicArg: IDynamicValueType }> = (props) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import { Style } from '../../../..';
import { Style } from '../../..';

const MetaAnalysisSummaryRowStyles: Style = {
titleColWidth: {
width: '350px',
colWidth: {
width: '45%',
},
dynamicInput: {
marginLeft: '350px',
marginLeft: '55%',
},
divider: {
margin: '1rem 0',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@ interface IMetaAnalysisSummaryRow {

const MetaAnalysisSummaryRow: React.FC<IMetaAnalysisSummaryRow> = (props) => {
return (
<Box sx={{ marginBottom: '1.5rem' }}>
<Box sx={{ display: 'flex' }}>
<Box sx={MetaAnalysisSummaryRowStyles.titleColWidth}>
<Box sx={{ marginBottom: '1.5rem', width: '100%' }}>
<Box sx={{ display: 'flex', justifyContent: 'space-between' }}>
<Box sx={MetaAnalysisSummaryRowStyles.colWidth}>
<Typography sx={{ color: 'primary.main' }} variant="h6">
{props.title}
</Typography>
</Box>
<Box>
<Box sx={MetaAnalysisSummaryRowStyles.colWidth}>
<Typography variant="h6">{props.value}</Typography>
<Typography variant="body1" sx={{ color: 'gray' }}>
{props.caption || ''}
Expand Down
Loading

0 comments on commit 4fbcc7c

Please sign in to comment.