diff --git a/api/src/engine/connectors/exareme/converters.ts b/api/src/engine/connectors/exareme/converters.ts index da94210ef8be3573f09992108ab59f2cf9fc1636..6f23e49455454872f5f2d16e61a490e384b59c68 100644 --- a/api/src/engine/connectors/exareme/converters.ts +++ b/api/src/engine/connectors/exareme/converters.ts @@ -47,7 +47,7 @@ export const dataToDataset = (data: Entity): Dataset => { //FIXME: Dirty workaround should be improved const lookupTypes = { - integer: 'int', + int: 'integer', }; export const dataToVariable = (data: VariableEntity): Variable => { diff --git a/api/src/engine/connectors/exareme/transformations/algorithms/index.ts b/api/src/engine/connectors/exareme/transformations/algorithms/index.ts index bee4e4a5d2274a7584dbeabc10759427ea6498fa..9af319e975f170e96ee371fc47c88f9a82ce4740 100644 --- a/api/src/engine/connectors/exareme/transformations/algorithms/index.ts +++ b/api/src/engine/connectors/exareme/transformations/algorithms/index.ts @@ -6,7 +6,11 @@ const transformToAlgorithms = jsonata(` 'integer': 'NumberParameter', 'real': 'NumberParameter' }; + $dictTypes:= { + 'int': 'integer' + }; $checkVal:= function($val) { $val ? $val : undefined}; + $getOrDefault:= function($v, $d) { $v ? $v : $d }; $excludedParams:= ['centers', 'formula']; $includes:= ['ANOVA_ONEWAY','ANOVA','LINEAR_REGRESSION', 'LOGISTIC_REGRESSION', 'LOGISTIC_REGRESSION_CV','TTEST_INDEPENDENT','TTEST_PAIRED', @@ -20,15 +24,17 @@ const transformToAlgorithms = jsonata(` $v='true' ? true : ($v='false'? false : undefined) )}; $extract:= function($v) { - $v? - { - "hint": $v.desc, - "isRequired": $truthy($checkVal($v.valueNotBlank)), - "hasMultiple": $truthy($checkVal($v.valueMultiple)), - "allowedTypes": $v.columnValuesIsCategorical = '' and $v.columnValuesSQLType = '' ? - undefined : $append($v.columnValuesIsCategorical = '' ? - ['nominal'] : [], $truthy($v.columnValuesIsCategorical) ? 'nominal' : $map(($checkVal($v.columnValuesSQLType) ~> $split(',')), $trim)) - } : undefined + ( + $categorical:=$v.columnValuesIsCategorical; + $varTypes:= ($split($getOrDefault($v.columnValuesSQLType, ''), ',')[]) ~> $map($trim) ~> $map(function($value) { $getOrDefault($lookup($dictTypes, $value), $value) }); + $v? + { + "hint": $v.desc, + "isRequired": $truthy($checkVal($v.valueNotBlank)), + "hasMultiple": $truthy($checkVal($v.valueMultiple)), + "allowedTypes": $categorical = '' and $v.columnValuesSQLType = '' ? undefined : $append($categorical = '' ? ['nominal'] : [], $truthy($categorical) ? 'nominal' : $varTypes) + } : undefined + ) }; $[name in $includes].{