diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts index 54dc36236eee9ad35c1caa31685b09db00c15c1f..f81c8bd36dd495e844cea4f8ac9a388944f916ab 100644 --- a/api/src/engine/connectors/exareme/converters.ts +++ b/api/src/engine/connectors/exareme/converters.ts @@ -1,10 +1,8 @@ import { Category } from 'src/engine/models/category.model'; +import { Dataset } from 'src/engine/models/dataset.model'; import { Algorithm } from 'src/engine/models/experiment/algorithm.model'; import { Experiment } from 'src/engine/models/experiment/experiment.model'; -import { - AlgorithmParamInput, - ParamType, -} from 'src/engine/models/experiment/input/algorithm-parameter.input'; +import { AlgorithmParamInput } from 'src/engine/models/experiment/input/algorithm-parameter.input'; import { ExperimentCreateInput } from 'src/engine/models/experiment/input/experiment-create.input'; import { Group } from 'src/engine/models/group.model'; import { ResultUnion } from 'src/engine/models/result/common/result-union.model'; @@ -51,6 +49,14 @@ export const dataToCategory = (data: Entity): Category => { }; }; +export const dataToDataset = (data: Entity): Dataset => { + return { + id: data.code, + label: data.label, + isLongitudinal: !!data.code.toLowerCase().includes('longitudinal'), + }; +}; + export const dataToVariable = (data: VariableEntity): Variable => { return { id: data.code, diff --git a/api/src/engine/connectors/exareme/main.connector.ts b/api/src/engine/connectors/exareme/main.connector.ts index 2f78318ded6fe5baeeedf9f0da8efd20bfbd021c..5733366f9125337a555ff7f7df7faad52dae6627 100644 --- a/api/src/engine/connectors/exareme/main.connector.ts +++ b/api/src/engine/connectors/exareme/main.connector.ts @@ -24,7 +24,7 @@ import { Group } from 'src/engine/models/group.model'; import { Variable } from 'src/engine/models/variable.model'; import { dataToAlgorithms, - dataToCategory, + dataToDataset, dataToExperiment, dataToGroup, dataToVariable, @@ -141,7 +141,7 @@ export default class ExaremeService implements IEngineService { label: data.label, groups: groups, rootGroup: dataToGroup(data.metadataHierarchy), - datasets: data.datasets ? data.datasets.map(dataToCategory) : [], + datasets: data.datasets ? data.datasets.map(dataToDataset) : [], variables: data.metadataHierarchy ? this.flattenVariables(data.metadataHierarchy, groups) : [], diff --git a/api/src/engine/models/dataset.model.ts b/api/src/engine/models/dataset.model.ts new file mode 100644 index 0000000000000000000000000000000000000000..a15340b0281906705dfc12e32a8af5db4165a27f --- /dev/null +++ b/api/src/engine/models/dataset.model.ts @@ -0,0 +1,8 @@ +import { Field, ObjectType } from '@nestjs/graphql'; +import { Entity } from './entity.model'; + +@ObjectType() +export class Dataset extends Entity { + @Field({ nullable: true, defaultValue: false }) + isLongitudinal?: boolean; +} diff --git a/api/src/engine/models/domain.model.ts b/api/src/engine/models/domain.model.ts index f5b8def42a318613b348040b2eccb3ea67a7aa29..1cfef22fb86343d0c521ada3e1e7c7ebc5e7e001 100644 --- a/api/src/engine/models/domain.model.ts +++ b/api/src/engine/models/domain.model.ts @@ -1,5 +1,5 @@ import { Field, ObjectType } from '@nestjs/graphql'; -import { Category } from './category.model'; +import { Dataset } from './dataset.model'; import { Entity } from './entity.model'; import { Group } from './group.model'; import { Variable } from './variable.model'; @@ -15,8 +15,8 @@ export class Domain extends Entity { @Field(() => [Variable]) variables: Variable[]; - @Field(() => [Category]) - datasets: Category[]; + @Field(() => [Dataset]) + datasets: Dataset[]; @Field(() => Group) rootGroup: Group; diff --git a/api/src/schema.gql b/api/src/schema.gql index 7a13c77f44e5272fdb8eeec25a20317bb3f81518..7e173aded938434460d9d151fc7d514b8ad8889d 100644 --- a/api/src/schema.gql +++ b/api/src/schema.gql @@ -2,9 +2,10 @@ # THIS FILE WAS AUTOMATICALLY GENERATED (DO NOT MODIFY) # ------------------------------------------------------ -type Category { +type Dataset { id: String! label: String + isLongitudinal: Boolean } type Group { @@ -17,6 +18,11 @@ type Group { variables: [String!] } +type Category { + id: String! + label: String +} + type Variable { id: String! label: String @@ -32,7 +38,7 @@ type Domain { description: String groups: [Group!]! variables: [Variable!]! - datasets: [Category!]! + datasets: [Dataset!]! rootGroup: Group! }