diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts index a9a165184c4cd7c11103b1e1ab156354e91bddd3..d010db00c546c1640e48913e0e2357dc8a64ad87 100644 --- a/api/src/engine/connectors/exareme/converters.ts +++ b/api/src/engine/connectors/exareme/converters.ts @@ -1,5 +1,4 @@ import { Logger } from '@nestjs/common'; -import { MIME_TYPES } from 'src/common/interfaces/utilities.interface'; import { Category } from 'src/engine/models/category.model'; import { Dataset } from 'src/engine/models/dataset.model'; import { Domain } from 'src/engine/models/domain.model'; @@ -8,25 +7,15 @@ import { ExperimentStatus, } from 'src/engine/models/experiment/experiment.model'; import { Group } from 'src/engine/models/group.model'; -import { - GroupResult, - GroupsResult, -} from 'src/engine/models/result/groups-result.model'; -import { RawResult } from 'src/engine/models/result/raw-result.model'; import { Variable } from 'src/engine/models/variable.model'; import { AlgorithmParamInput } from 'src/experiments/models/input/algorithm-parameter.input'; import { ExperimentCreateInput } from 'src/experiments/models/input/experiment-create.input'; import handlers from './handlers'; import { Entity } from './interfaces/entity.interface'; import { ExperimentData } from './interfaces/experiment/experiment.interface'; -import { ResultExperiment } from './interfaces/experiment/result-experiment.interface'; import { Hierarchy } from './interfaces/hierarchy.interface'; import { VariableEntity } from './interfaces/variable-entity.interface'; -import { - descriptiveModelToTables, - descriptiveSingleToTables, - transformToExperiment, -} from './transformations'; +import { transformToExperiment } from './transformations'; export const dataToGroup = (data: Hierarchy): Group => { return { @@ -182,31 +171,6 @@ export const experimentInputToData = ( return params; }; -export const descriptiveDataToTableResult = ( - data: ResultExperiment, -): GroupsResult[] => { - const result = new GroupsResult(); - - result.groups = [ - new GroupResult({ - name: 'Variables', - description: 'Descriptive statistics for the variables of interest.', - results: descriptiveSingleToTables.evaluate(data), - }), - ]; - - result.groups.push( - new GroupResult({ - name: 'Model', - description: - 'Intersection table for the variables of interest as it appears in the experiment.', - results: descriptiveModelToTables.evaluate(data), - }), - ); - - return [result]; -}; - export const dataToExperiment = ( data: ExperimentData, logger: Logger, @@ -269,20 +233,3 @@ export const dataToExperiment = ( }; } }; - -export const dataToRaw = ( - algo: string, - result: ResultExperiment, -): RawResult[] => { - let data = result; - - if (algo === 'CART') { - data = { ...data, type: MIME_TYPES.JSONBTREE }; - } - - return [ - { - rawdata: data, - }, - ]; -}; diff --git a/api/src/engine/connectors/exareme/transformations.ts b/api/src/engine/connectors/exareme/transformations.ts index 70d2989c2ef4d4668287f56d92607b3ef3fb55be..f54d8caa775ed1603d1c956ab1c2614283944062 100644 --- a/api/src/engine/connectors/exareme/transformations.ts +++ b/api/src/engine/connectors/exareme/transformations.ts @@ -49,85 +49,6 @@ export const transformToExperiment = jsonata(` ) `); -const headerDescriptivie = ` -$fnum := function($x) { $type($x) = 'number' ? $round($number($x),3) : $x }; - -$e := function($x, $r) {($x != null) ? $fnum($x) : ($r ? $r : '')}; - -$fn := function($o, $prefix) { - $type($o) = 'object' ? - $each($o, function($v, $k) {( - $type($v) = 'object' ? { $k: $v.count & ' (' & $v.percentage & '%)' } : { - $k: $v - } - )}) ~> $merge() - : {} -};`; - -export const descriptiveModelToTables = jsonata(` -( - ${headerDescriptivie} - - $vars := $count($keys(data.model.*.data))-1; - $varNames := $keys(data.model.*.data); - $model := data.model; - - [[0..$vars].( - $i := $; - $varName := $varNames[$i]; - $ks := $keys($model.*.data.*[$i][$type($) = 'object']); - { - 'name': $varName, - 'headers': $append("", $keys($$.data.model)).{ - 'name': $, - 'type': 'string' - }, - 'data': [ - [$varName, $model.*.($e(num_total))], - ['Datapoints', $model.*.($e(num_datapoints))], - ['Nulls', $model.*.($e(num_nulls))], - ($lookup($model.*.data, $varName).($fn($)) ~> $reduce(function($a, $b) { - $map($ks, function($k) {( - { - $k : [$e($lookup($a,$k), "No data"), $e($lookup($b,$k), "No data")] - } - )}) ~> $merge() - })).$each(function($v, $k) {$append($k,$v)})[] - ] - } - )] -)`); - -export const descriptiveSingleToTables = jsonata(` -( - ${headerDescriptivie} - - data.[ - $.single.*@$p#$i.( - $ks := $keys($p.*.data[$type($) = 'object']); - { - 'name': $keys(%)[$i], - 'headers': $append("", $keys(*)).{ - 'name': $, - 'type': 'string' - }, - 'data' : [ - [$keys(%)[$i], $p.*.($e(num_total))], - ['Datapoints', $p.*.($e(num_datapoints))], - ['Nulls', $p.*.($e(num_nulls))], - ($p.*.data.($fn($)) ~> $reduce(function($a, $b) { - $map($ks, function($k) {( - { - $k : [$e($lookup($a,$k), "No data"), $e($lookup($b,$k), "No data")] - } - )}) ~> $merge() - })).$each(function($v, $k) {$append($k,$v)})[] - ] - }) - ] -) -`); - export const dataROCToLineResult = jsonata(` ({ "name": data.title.text,