From b3fd4751b17e292017e9ba2b5c8c1d5d46e5283f Mon Sep 17 00:00:00 2001
From: Mirco Nasuti <mirco.nasuti@chuv.ch>
Date: Fri, 2 Sep 2016 10:24:28 +0200
Subject: [PATCH] variables metadata into meta-db

---
 .gitignore                                    |    1 -
 .../PersistenceConfiguration.java             |    7 +
 .../eu/hbp/mip/controllers/GroupsApi.java     |   30 +-
 .../eu/hbp/mip/controllers/VariablesApi.java  |   40 +-
 src/main/resources/data/variables.json        | 2107 -----------------
 5 files changed, 46 insertions(+), 2139 deletions(-)
 delete mode 100644 src/main/resources/data/variables.json

diff --git a/.gitignore b/.gitignore
index 7ab25eb2c..533ab0d6d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,3 @@ target/
 .DS_Store
 .m2
 *.jar
-src/main/resources/data/
diff --git a/src/main/java/eu/hbp/mip/configuration/PersistenceConfiguration.java b/src/main/java/eu/hbp/mip/configuration/PersistenceConfiguration.java
index 09812b521..e7533bd90 100644
--- a/src/main/java/eu/hbp/mip/configuration/PersistenceConfiguration.java
+++ b/src/main/java/eu/hbp/mip/configuration/PersistenceConfiguration.java
@@ -47,6 +47,13 @@ public class PersistenceConfiguration {
         return new JdbcTemplate(dataSource());
     }
 
+    @Bean
+    @Autowired
+    @Qualifier("jdbcTemplateMeta")
+    public JdbcTemplate jdbcTemplateMeta() {
+        return new JdbcTemplate(metaDataSource());
+    }
+
     @Bean(name = "metaEntityManagerFactory")
     @DependsOn("flyway")
     public LocalContainerEntityManagerFactoryBean metaEntityManagerFactory() {
diff --git a/src/main/java/eu/hbp/mip/controllers/GroupsApi.java b/src/main/java/eu/hbp/mip/controllers/GroupsApi.java
index 4fa08179d..297d33e55 100644
--- a/src/main/java/eu/hbp/mip/controllers/GroupsApi.java
+++ b/src/main/java/eu/hbp/mip/controllers/GroupsApi.java
@@ -7,22 +7,22 @@ package eu.hbp.mip.controllers;
 import com.google.gson.Gson;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
-import com.google.gson.stream.JsonReader;
 import eu.hbp.mip.model.Group;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiResponse;
 import io.swagger.annotations.ApiResponses;
 import org.apache.log4j.Logger;
+import org.postgresql.util.PGobject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.http.ResponseEntity;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.support.rowset.SqlRowSet;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
 import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
 
 @RestController
@@ -32,10 +32,12 @@ public class GroupsApi {
 
     private static final Logger LOGGER = Logger.getLogger(GroupsApi.class);
 
-    private static final String VARIABLES_FILE = "data/variables.json";
-
     private static String groups;
 
+    @Autowired
+    @Qualifier("jdbcTemplateMeta")
+    private JdbcTemplate jdbcTemplateMeta;
+
 
     @ApiOperation(value = "Get the root group (containing all subgroups)", response = Group.class)
     @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") })
@@ -48,20 +50,22 @@ public class GroupsApi {
         return ResponseEntity.ok(new Gson().fromJson(groups, Object.class));
     }
 
-    private static void loadGroups() {
+    private void loadGroups() {
         if(groups == null)
         {
-            InputStream is = VariablesApi.class.getClassLoader().getResourceAsStream(VARIABLES_FILE);
-            InputStreamReader isr = new InputStreamReader(is);
-            BufferedReader br = new BufferedReader(isr);
+            String sqlQuery = "SELECT * FROM meta_variables";
+            SqlRowSet data = jdbcTemplateMeta.queryForRowSet(sqlQuery);
+            data.next();
+            String json = ((PGobject) data.getObject("hierarchy")).getValue();
+
+            JsonObject root = new Gson().fromJson(json, JsonObject.class);
 
-            JsonObject root = new Gson().fromJson(new JsonReader(br), JsonObject.class);
             removeVariablesRecursive(root);
             groups = new Gson().toJson(root);
         }
     }
 
-    private static void removeVariablesRecursive(JsonObject element) {
+    private void removeVariablesRecursive(JsonObject element) {
         if (element.has("groups")){
             for(JsonElement child : element.getAsJsonArray("groups")) {
                 removeVariablesRecursive(child.getAsJsonObject());
diff --git a/src/main/java/eu/hbp/mip/controllers/VariablesApi.java b/src/main/java/eu/hbp/mip/controllers/VariablesApi.java
index 62f386374..aa04555a2 100644
--- a/src/main/java/eu/hbp/mip/controllers/VariablesApi.java
+++ b/src/main/java/eu/hbp/mip/controllers/VariablesApi.java
@@ -9,16 +9,16 @@ import com.google.gson.Gson;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
-import com.google.gson.stream.JsonReader;
-import eu.hbp.mip.model.Variable;
 import io.swagger.annotations.*;
 import org.apache.log4j.Logger;
+import org.postgresql.util.PGobject;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.http.ResponseEntity;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.support.rowset.SqlRowSet;
 import org.springframework.web.bind.annotation.*;
 
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -31,10 +31,12 @@ public class VariablesApi {
 
     private static final Logger LOGGER = Logger.getLogger(VariablesApi.class);
 
-    private static final String VARIABLES_FILE = "data/variables.json";
-
     private static LinkedList<String> variables;
 
+    @Autowired
+    @Qualifier("jdbcTemplateMeta")
+    private JdbcTemplate jdbcTemplateMeta;
+
 
     @ApiOperation(value = "Get variables", response = List.class, responseContainer = "List")
     @ApiResponses(value = { @ApiResponse(code = 200, message = "Success") })
@@ -123,31 +125,33 @@ public class VariablesApi {
     )  {
         LOGGER.info("Get groups and variables hierarchy");
 
-        InputStream is = Variable.class.getClassLoader().getResourceAsStream(VARIABLES_FILE);
-        InputStreamReader isr = new InputStreamReader(is);
-        BufferedReader br = new BufferedReader(isr);
+        String sqlQuery = "SELECT * FROM meta_variables";
+        SqlRowSet data = jdbcTemplateMeta.queryForRowSet(sqlQuery);
+        data.next();
+        String json = ((PGobject) data.getObject("hierarchy")).getValue();
 
-        Object hierarchy = new Gson().fromJson(new JsonReader(br), Object.class);
+        Object hierarchy = new Gson().fromJson(json, Object.class);
 
         return ResponseEntity.ok(hierarchy);
     }
 
 
-    private static void loadVariables() {
+    private void loadVariables() {
         if(variables == null)
         {
-            InputStream is = VariablesApi.class.getClassLoader().getResourceAsStream(VARIABLES_FILE);
-            InputStreamReader isr = new InputStreamReader(is);
-            BufferedReader br = new BufferedReader(isr);
+            String sqlQuery = "SELECT * FROM meta_variables";
+            SqlRowSet data = jdbcTemplateMeta.queryForRowSet(sqlQuery);
+            data.next();
+            String json = ((PGobject) data.getObject("hierarchy")).getValue();
 
-            JsonObject root = new Gson().fromJson(new JsonReader(br), JsonObject.class);
-            variables = new LinkedList<>();
+            JsonObject root = new Gson().fromJson(json, JsonObject.class);
 
+            variables = new LinkedList<>();
             extractVariablesRecursive(root);
         }
     }
 
-    private static void extractVariablesRecursive(JsonObject element) {
+    private void extractVariablesRecursive(JsonObject element) {
         if (element.has("groups")){
             for(JsonElement child : element.getAsJsonArray("groups")) {
                 extractVariablesRecursive(child.getAsJsonObject());
diff --git a/src/main/resources/data/variables.json b/src/main/resources/data/variables.json
deleted file mode 100644
index a59785ddd..000000000
--- a/src/main/resources/data/variables.json
+++ /dev/null
@@ -1,2107 +0,0 @@
-{
-  "groups": [
-    {
-      "groups": [
-        {
-          "groups": [
-            {
-              "groups": [
-                {
-                  "groups": [
-                    {
-                      "groups": [],
-                      "variables": [
-                        {
-                          "description": "Right Accumbens Area",
-                          "units": "cm3",
-                          "methodology": "lren-nmm-volumes",
-                          "type": "real",
-                          "label": "Right Accumbens Area",
-                          "code": "RightAccumbensArea",
-                          "length": 20
-                        },
-                        {
-                          "description": "Left Accumbens Area",
-                          "units": "cm3",
-                          "methodology": "lren-nmm-volumes",
-                          "type": "real",
-                          "label": "Left Accumbens Area",
-                          "code": "LeftAccumbensArea",
-                          "length": 20
-                        },
-                        {
-                          "description": "Right Caudate",
-                          "units": "cm3",
-                          "methodology": "lren-nmm-volumes",
-                          "type": "real",
-                          "label": "Right Caudate",
-                          "code": "RightCaudate",
-                          "length": 20
-                        },
-                        {
-                          "description": "Left Caudate",
-                          "units": "cm3",
-                          "methodology": "lren-nmm-volumes",
-                          "type": "real",
-                          "label": "Left Caudate",
-                          "code": "LeftCaudate",
-                          "length": 20
-                        },
-                        {
-                          "description": "Right Pallidum",
-                          "units": "cm3",
-                          "methodology": "lren-nmm-volumes",
-                          "type": "real",
-                          "label": "Right Pallidum",
-                          "code": "RightPallidum",
-                          "length": 20
-                        },
-                        {
-                          "description": "Left Pallidum",
-                          "units": "cm3",
-                          "methodology": "lren-nmm-volumes",
-                          "type": "real",
-                          "label": "Left Pallidum",
-                          "code": "LeftPallidum",
-                          "length": 20
-                        },
-                        {
-                          "description": "Right Putamen",
-                          "units": "cm3",
-                          "methodology": "lren-nmm-volumes",
-                          "type": "real",
-                          "label": "Right Putamen",
-                          "code": "RightPutamen",
-                          "length": 20
-                        },
-                        {
-                          "description": "Left Putamen",
-                          "units": "cm3",
-                          "methodology": "lren-nmm-volumes",
-                          "type": "real",
-                          "label": "Left Putamen",
-                          "code": "LeftPutamen",
-                          "length": 20
-                        }
-                      ],
-                      "label": "Basal Ganglia",
-                      "code": "basal_ganglia"
-                    },
-                    {
-                      "groups": [],
-                      "variables": [
-                        {
-                          "description": "Right Amygdala",
-                          "units": "cm3",
-                          "methodology": "lren-nmm-volumes",
-                          "type": "real",
-                          "label": "Right Amygdala",
-                          "code": "RightAmygdala",
-                          "length": 20
-                        },
-                        {
-                          "description": "Left Amygdala",
-                          "units": "cm3",
-                          "methodology": "lren-nmm-volumes",
-                          "type": "real",
-                          "label": "Left Amygdala",
-                          "code": "LeftAmygdala",
-                          "length": 20
-                        }
-                      ],
-                      "label": "Amygdala",
-                      "code": "amygdala"
-                    }
-                  ],
-                  "label": "Cerebral nuclei",
-                  "code": "cerebral_nuclei"
-                },
-                {
-                  "groups": [],
-                  "variables": [
-                    {
-                      "type": "real",
-                      "description": "Entorhinal UCSF Entorhinal mm3",
-                      "label": "Entorhinal",
-                      "code": "Entorhinal",
-                      "methodology": "adni-merge"
-                    },
-                    {
-                      "description": "Right anterior cingulate gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right anterior cingulate gyrus",
-                      "code": "RightACgGanteriorcingulategyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left anterior cingulate gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left anterior cingulate gyrus",
-                      "code": "LeftACgGanteriorcingulategyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right entorhinal area",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right entorhinal area",
-                      "code": "RightEntentorhinalarea",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left entorhinal area",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left entorhinal area",
-                      "code": "LeftEntentorhinalarea",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right middle cingulate gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right middle cingulate gyrus",
-                      "code": "RightMCgGmiddlecingulategyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left middle cingulate gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left middle cingulate gyrus",
-                      "code": "LeftMCgGmiddlecingulategyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right posterior cingulate gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right posterior cingulate gyrus",
-                      "code": "RightPCgGposteriorcingulategyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left posterior cingulate gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left posterior cingulate gyrus",
-                      "code": "LeftPCgGposteriorcingulategyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right parahippocampal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right parahippocampal gyrus",
-                      "code": "RightPHGparahippocampalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left parahippocampal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left parahippocampal gyrus",
-                      "code": "LeftPHGparahippocampalgyrus",
-                      "length": 20
-                    }
-                  ],
-                  "label": "Limbic",
-                  "code": "limbic"
-                },
-                {
-                  "groups": [],
-                  "variables": [
-                    {
-                      "description": "Right fusiform gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right fusiform gyrus",
-                      "code": "RightFuGfusiformgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left fusiform gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left fusiform gyrus",
-                      "code": "LeftFuGfusiformgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right inferior temporal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right inferior temporal gyrus",
-                      "code": "RightITGinferiortemporalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left inferior temporal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left inferior temporal gyrus",
-                      "code": "LeftITGinferiortemporalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right middle temporal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right middle temporal gyrus",
-                      "code": "RightMTGmiddletemporalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left middle temporal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left middle temporal gyrus",
-                      "code": "LeftMTGmiddletemporalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right planum polare",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right planum polare",
-                      "code": "RightPPplanumpolare",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left planum polare",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left planum polare",
-                      "code": "LeftPPplanumpolare",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right planum temporale",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right planum temporale",
-                      "code": "RightPTplanumtemporale",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left planum temporale",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left planum temporale",
-                      "code": "LeftPTplanumtemporale",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right superior temporal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right superior temporal gyrus",
-                      "code": "RightSTGsuperiortemporalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left superior temporal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left superior temporal gyrus",
-                      "code": "LeftSTGsuperiortemporalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right temporal pole",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right temporal pole",
-                      "code": "RightTMPtemporalpole",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left temporal pole",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left temporal pole",
-                      "code": "LeftTMPtemporalpole",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right transverse temporal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right transverse temporal gyrus",
-                      "code": "RightTTGtransversetemporalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left transverse temporal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left transverse temporal gyrus",
-                      "code": "LeftTTGtransversetemporalgyrus",
-                      "length": 20
-                    }
-                  ],
-                  "label": "Temporal",
-                  "code": "temporal"
-                },
-                {
-                  "groups": [],
-                  "variables": [
-                    {
-                      "description": "Right calcarine cortex",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right calcarine cortex",
-                      "code": "RightCalccalcarinecortex",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left calcarine cortex",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left calcarine cortex",
-                      "code": "LeftCalccalcarinecortex",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right cuneus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right cuneus",
-                      "code": "RightCuncuneus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left cuneus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left cuneus",
-                      "code": "LeftCuncuneus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right inferior occipital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right inferior occipital gyrus",
-                      "code": "RightIOGinferioroccipitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left inferior occipital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left inferior occipital gyrus",
-                      "code": "LeftIOGinferioroccipitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right lingual gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right lingual gyrus",
-                      "code": "RightLiGlingualgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left lingual gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left lingual gyrus",
-                      "code": "LeftLiGlingualgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right middle occipital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right middle occipital gyrus",
-                      "code": "RightMOGmiddleoccipitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left middle occipital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left middle occipital gyrus",
-                      "code": "LeftMOGmiddleoccipitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right occipital pole",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right occipital pole",
-                      "code": "RightOCPoccipitalpole",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left occipital pole",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left occipital pole",
-                      "code": "LeftOCPoccipitalpole",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right occipital fusiform gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right occipital fusiform gyrus",
-                      "code": "RightOFuGoccipitalfusiformgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left occipital fusiform gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left occipital fusiform gyrus",
-                      "code": "LeftOFuGoccipitalfusiformgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right superior occipital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right superior occipital gyrus",
-                      "code": "RightSOGsuperioroccipitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left superior occipital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left superior occipital gyrus",
-                      "code": "LeftSOGsuperioroccipitalgyrus",
-                      "length": 20
-                    }
-                  ],
-                  "label": "Occipital",
-                  "code": "occipital"
-                },
-                {
-                  "groups": [],
-                  "variables": [
-                    {
-                      "description": "Right angular gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right angular gyrus",
-                      "code": "RightAnGangulargyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left angular gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left angular gyrus",
-                      "code": "LeftAnGangulargyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right postcentral gyrus medial segment",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right postcentral gyrus medial segment",
-                      "code": "RightMPoGpostcentralgyrusmedialsegment",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left postcentral gyrus medial segment",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left postcentral gyrus medial segment",
-                      "code": "LeftMPoGpostcentralgyrusmedialsegment",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right precuneus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right precuneus",
-                      "code": "RightPCuprecuneus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left precuneus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left precuneus",
-                      "code": "LeftPCuprecuneus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right postcentral gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right postcentral gyrus",
-                      "code": "RightPoGpostcentralgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left postcentral gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left postcentral gyrus",
-                      "code": "LeftPoGpostcentralgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right supramarginal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right supramarginal gyrus",
-                      "code": "RightSMGsupramarginalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left supramarginal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left supramarginal gyrus",
-                      "code": "LeftSMGsupramarginalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right superior parietal lobule",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right superior parietal lobule",
-                      "code": "RightSPLsuperiorparietallobule",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left superior parietal lobule",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left superior parietal lobule",
-                      "code": "LeftSPLsuperiorparietallobule",
-                      "length": 20
-                    }
-                  ],
-                  "label": "Parietal",
-                  "code": "parietal"
-                },
-                {
-                  "groups": [
-                  ],
-                  "variables": [
-                    {
-                      "description": "Right anterior orbital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right anterior orbital gyrus",
-                      "code": "RightAOrGanteriororbitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left anterior orbital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left anterior orbital gyrus",
-                      "code": "LeftAOrGanteriororbitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right central operculum",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right central operculum",
-                      "code": "RightCOcentraloperculum",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left central operculum",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left central operculum",
-                      "code": "LeftCOcentraloperculum",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right frontal operculum",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right frontal operculum",
-                      "code": "RightFOfrontaloperculum",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left frontal operculum",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left frontal operculum",
-                      "code": "LeftFOfrontaloperculum",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right frontal pole",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right frontal pole",
-                      "code": "RightFRPfrontalpole",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left frontal pole",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left frontal pole",
-                      "code": "LeftFRPfrontalpole",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right gyrus rectus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right gyrus rectus",
-                      "code": "RightGRegyrusrectus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left gyrus rectus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left gyrus rectus",
-                      "code": "LeftGRegyrusrectus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right lateral orbital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right lateral orbital gyrus",
-                      "code": "RightLOrGlateralorbitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left lateral orbital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left lateral orbital gyrus",
-                      "code": "LeftLOrGlateralorbitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right medial frontal cortex",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right medial frontal cortex",
-                      "code": "RightMFCmedialfrontalcortex",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left medial frontal cortex",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left medial frontal cortex",
-                      "code": "LeftMFCmedialfrontalcortex",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right middle frontal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right middle frontal gyrus",
-                      "code": "RightMFGmiddlefrontalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left middle frontal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left middle frontal gyrus",
-                      "code": "LeftMFGmiddlefrontalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right medial orbital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right medial orbital gyrus",
-                      "code": "RightMOrGmedialorbitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left medial orbital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left medial orbital gyrus",
-                      "code": "LeftMOrGmedialorbitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right precentral gyrus medial segment",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right precentral gyrus medial segment",
-                      "code": "RightMPrGprecentralgyrusmedialsegment",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left precentral gyrus medial segment",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left precentral gyrus medial segment",
-                      "code": "LeftMPrGprecentralgyrusmedialsegment",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right superior frontal gyrus medial segment",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right superior frontal gyrus medial segment",
-                      "code": "RightMSFGsuperiorfrontalgyrusmedialsegment",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left superior frontal gyrus medial segment",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left superior frontal gyrus medial segment",
-                      "code": "LeftMSFGsuperiorfrontalgyrusmedialsegment",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right opercular part of the inferior frontal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right opercular part of the inferior frontal gyrus",
-                      "code": "RightOpIFGopercularpartoftheinferiorfrontalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left opercular part of the inferior frontal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left opercular part of the inferior frontal gyrus",
-                      "code": "LeftOpIFGopercularpartoftheinferiorfrontalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right orbital part of the inferior frontal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right orbital part of the inferior frontal gyrus",
-                      "code": "RightOrIFGorbitalpartoftheinferiorfrontalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left orbital part of the inferior frontal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left orbital part of the inferior frontal gyrus",
-                      "code": "LeftOrIFGorbitalpartoftheinferiorfrontalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right parietal operculum",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right parietal operculum",
-                      "code": "RightPOparietaloperculum",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left parietal operculum",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left parietal operculum",
-                      "code": "LeftPOparietaloperculum",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right posterior orbital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right posterior orbital gyrus",
-                      "code": "RightPOrGposteriororbitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left posterior orbital gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left posterior orbital gyrus",
-                      "code": "LeftPOrGposteriororbitalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right precentral gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right precentral gyrus",
-                      "code": "RightPrGprecentralgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left precentral gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left precentral gyrus",
-                      "code": "LeftPrGprecentralgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right subcallosal area",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right subcallosal area",
-                      "code": "RightSCAsubcallosalarea",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left subcallosal area",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left subcallosal area",
-                      "code": "LeftSCAsubcallosalarea",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right superior frontal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right superior frontal gyrus",
-                      "code": "RightSFGsuperiorfrontalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left superior frontal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left superior frontal gyrus",
-                      "code": "LeftSFGsuperiorfrontalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right supplementary motor cortex",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right supplementary motor cortex",
-                      "code": "RightSMCsupplementarymotorcortex",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left supplementary motor cortex",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left supplementary motor cortex",
-                      "code": "LeftSMCsupplementarymotorcortex",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right triangular part of the inferior frontal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right triangular part of the inferior frontal gyrus",
-                      "code": "RightTrIFGtriangularpartoftheinferiorfrontalgyrus",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left triangular part of the inferior frontal gyrus",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left triangular part of the inferior frontal gyrus",
-                      "code": "LeftTrIFGtriangularpartoftheinferiorfrontalgyrus",
-                      "length": 20
-                    }
-                  ],
-                  "label": "Frontal",
-                  "code": "frontal"
-                },
-                {
-                  "groups": [],
-                  "variables": [
-                    {
-                      "description": "Right anterior insula",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right anterior insula",
-                      "code": "RightAInsanteriorinsula",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left anterior insula",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left anterior insula",
-                      "code": "LeftAInsanteriorinsula",
-                      "length": 20
-                    },
-                    {
-                      "description": "Right posterior insula",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right posterior insula",
-                      "code": "RightPInsposteriorinsula",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left posterior insula",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left posterior insula",
-                      "code": "LeftPInsposteriorinsula",
-                      "length": 20
-                    }
-                  ],
-                  "label": "Insula",
-                  "code": "insula"
-                }
-              ],
-              "label": "Grey matter volume",
-              "code": "grey_matter_volume"
-            },
-            {
-              "groups": [
-                {
-                  "groups": [],
-                  "variables": [
-                    {
-                      "type": "real",
-                      "description": "Ventricles UCSF Ventricles mm3. ",
-                      "label": "Ventricles",
-                      "code": "Ventricles",
-                      "methodology": "adni-merge"
-                    }
-                  ],
-                  "label": "Ventricule",
-                  "code": "ventricule"
-                }
-              ],
-              "label": "CSF",
-              "code": "csf"
-            },
-            {
-              "groups": [
-                {
-                  "groups": [],
-                  "variables": [
-                    {
-                      "description": "Right Ventral DC",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Right Ventral DC",
-                      "code": "RightVentralDC",
-                      "length": 20
-                    },
-                    {
-                      "description": "Left Ventral DC",
-                      "units": "cm3",
-                      "methodology": "lren-nmm-volumes",
-                      "type": "real",
-                      "label": "Left Ventral DC",
-                      "code": "LeftVentralDC",
-                      "length": 20
-                    }
-                  ],
-                  "label": "Diencephalon",
-                  "code": "diencephalon"
-                }
-              ],
-              "label": "White matter volume",
-              "code": "white_matter_volume"
-            }
-          ],
-          "label": "Brain anatomy",
-          "code": "brain_anatomy"
-        },
-        {
-          "groups": [],
-          "variables": [
-            {
-              "type": "real",
-              "description": "Hippocampus UCSF Hippocampus mm3",
-              "label": "Hippocampus",
-              "code": "Hippocampus",
-              "methodology": "adni-merge"
-            },
-            {
-              "type": "real",
-              "description": "WholeBrain UCSF WholeBrain mm3",
-              "label": "Whole Brain",
-              "code": "WholeBrain",
-              "methodology": "adni-merge"
-            },
-            {
-              "type": "real",
-              "description": "Fusiform UCSF Fusiform mm3",
-              "label": "Fusiform",
-              "code": "Fusiform",
-              "methodology": "adni-merge"
-            },
-            {
-              "type": "real",
-              "description": "MidTemp UCSF Med Temp mm3",
-              "label": "MidTemp",
-              "code": "MidTemp",
-              "methodology": "adni-merge"
-            },
-            {
-              "type": "real",
-              "description": "ICV UCSF ICV mm3",
-              "label": "ICV",
-              "code": "ICV",
-              "methodology": "adni-merge"
-            },
-            {
-              "description": "Right Hippocampus",
-              "units": "cm3",
-              "methodology": "lren-nmm-volumes",
-              "type": "real",
-              "label": "Right Hippocampus",
-              "code": "RightHippocampus",
-              "length": 20
-            },
-            {
-              "description": "Left Hippocampus",
-              "units": "cm3",
-              "methodology": "lren-nmm-volumes",
-              "type": "real",
-              "label": "Left Hippocampus",
-              "code": "LeftHippocampus",
-              "length": 20
-            },
-            {
-              "description": "Right Thalamus Proper",
-              "units": "cm3",
-              "methodology": "lren-nmm-volumes",
-              "type": "real",
-              "label": "Right Thalamus Proper",
-              "code": "RightThalamusProper",
-              "length": 20
-            },
-            {
-              "description": "Left Thalamus Proper",
-              "units": "cm3",
-              "methodology": "lren-nmm-volumes",
-              "type": "real",
-              "label": "Left Thalamus Proper",
-              "code": "LeftThalamusProper",
-              "length": 20
-            }
-          ],
-          "label": "Grey matter surface",
-          "code": "grey_matter_surface"
-        }
-      ],
-      "label": "Brain",
-      "code": "brain"
-    },
-    {
-      "groups": [
-        {
-          "groups": [],
-          "variables": [
-            {
-              "type": "integer",
-              "description": "Visit Number from the baseline",
-              "label": "Visit Number",
-              "code": "VisitNumber",
-              "methodology": "lren-nmm-volumes"
-            },
-            {
-              "type": "integer",
-              "description": "Total Number of Visits since the baseline",
-              "label": "Total Number of Visits",
-              "code": "TotalVisits",
-              "methodology": "lren-nmm-volumes"
-            }
-          ],
-          "label": "number",
-          "code": "number"
-        },
-        {
-          "groups": [],
-          "variables": [
-            {
-              "type": "real",
-              "description": "Period Time between the EXAMDATE (clinical evaluation) and the scan examdate ",
-              "label": "Period Time",
-              "code": "PeriodTime",
-              "methodology": "lren-nmm-volumes"
-            }
-          ],
-          "label": "period",
-          "code": "period"
-        }
-      ],
-      "label": "visit",
-      "code": "visit"
-    },
-    {
-      "groups": [
-        {
-          "groups": [
-            {
-              "groups": [],
-              "variables": [
-                {
-                  "description": "Apolipoprotein E (APOE) e4 allele: is the strongest risk factor for Late Onset Alzheimer Disease (LOAD). At least one copy of APOE-e4 ",
-                  "methodology": "adni-merge",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "APOE4",
-                  "code": "APOE4"
-                },
-                {
-                  "description": "APOE",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "APOE",
-                  "code": "APOE"
-                },
-                {
-                  "description": "rs3818361_T",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs3818361_T",
-                  "code": "rs3818361_T"
-                },
-                {
-                  "description": "rs744373_C",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs744373_C",
-                  "code": "rs744373_C"
-                },
-                {
-                  "description": "rs190982_G",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs190982_G",
-                  "code": "rs190982_G"
-                },
-                {
-                  "description": "rs1476679_C",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs1476679_C",
-                  "code": "rs1476679_C"
-                },
-                {
-                  "description": "rs11767557_C",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs11767557_C",
-                  "code": "rs11767557_C"
-                },
-                {
-                  "description": "rs11136000_T",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs11136000_T",
-                  "code": "rs11136000_T"
-                },
-                {
-                  "description": "rs610932_A",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs610932_A",
-                  "code": "rs610932_A"
-                },
-                {
-                  "description": "rs3851179_A",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs3851179_A",
-                  "code": "rs3851179_A"
-                },
-                {
-                  "description": "rs17125944_C",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs17125944_C",
-                  "code": "rs17125944_C"
-                },
-                {
-                  "description": "rs10498633_T",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs10498633_T",
-                  "code": "rs10498633_T"
-                },
-                {
-                  "description": "rs3764650_G",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs3764650_G",
-                  "code": "rs3764650_G"
-                },
-                {
-                  "description": "rs3865444_T",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs3865444_T",
-                  "code": "rs3865444_T"
-                },
-                {
-                  "description": "rs2718058_G",
-                  "methodology": "lren-nmm-volumes",
-                  "type": "polynominal",
-                  "enumerations": [
-                  	{ "code": 0, "value": 0 },
-                  	{ "code": 1, "value": 1 },
-                    { "code": 2, "value": 2 }
-                  ],
-                  "label": "rs2718058_G",
-                  "code": "rs2718058_G"
-                }
-              ],
-              "label": "APOE",
-              "code": "APOE"
-            }
-          ],
-          "label": "polymorphism",
-          "code": "polymorphism"
-        }
-      ],
-      "label": "Genetic",
-      "code": "genetic"
-    },
-    {
-      "groups": [
-        {
-          "groups": [],
-          "variables": [
-            {
-              "type": "polynominal",
-              "enumerations": [
-                  	{ "code": "Married", "value": "Married" },
-                  	{ "code": "Widowed", "value": "Widowed" },
-                    { "code": "Divorced", "value": "Divorced" },
-                    { "code": "Never married", "value": "Never married" },
-                    { "code": "Unknown", "value": "Unknown" }
-                  ],
-              "description": " Participant Marital Status. 1=Married; 2=Widowed; 3=Divorced; 4=Never married; 5=Unknown",
-              "label": "Participant Marital Status",
-              "code": "PTMARRY",
-              "methodology": "adni-merge"
-            }
-          ],
-          "label": "marital",
-          "code": "marital"
-        },
-        {
-          "groups": [],
-          "variables": [
-            {
-              "type": "polynominal",
-              "enumerations": [
-                  	{ "code": "Am Indian/Alaskan", "value": "American Indian or Alaskan Native" },
-                  	{ "code": "Asian", "value": "Asian" },
-                    { "code": "Hawaiian/Other PI", "value": "Native Hawaiian or Other Pacific Islander" },
-                    { "code": "Black/African American", "value": "Black or African American" },
-                    { "code": "More than one race", "value": "More than one race" },
-                    { "code": "White", "value": "White" },
-                    { "code": "Unknown", "value": "Unknown" }
-                  ],
-              "description": "Race. 1=American Indian or Alaskan Native; 2=Asian; 3=Native Hawaiian or Other Pacific Islander; 4=Black or African American; 5=White; 6=More than one race; 7=Unknown",
-              "label": "Participant Racial Category",
-              "code": "PTRACCAT",
-              "methodology": "adni-merge"
-            }
-          ],
-          "label": "country",
-          "code": "country"
-        },
-        {
-          "groups": [],
-          "variables": [
-            {
-              "type": "polynominal",
-              "enumerations": [
-                  	{ "code": "Hisp/Latino", "value": "Hispanic or Latino" },
-                  	{ "code": "Not Hisp/Latino", "value": "Not Hispanic or Latino" },
-                    { "code": "Unknown", "value": "Unknown" }
-                  ],
-              "description": "Ethnicity. 1=Hispanic or Latino; 2=Not Hispanic or Latino; 3=Unknown",
-              "label": "Participant Ethnicity",
-              "code": "PTETHCAT",
-              "methodology": "adni-merge"
-            }
-          ],
-          "label": "ethny",
-          "code": "ethny"
-        },
-        {
-          "groups": [],
-          "variables": [
-            {
-              "description": "Participant Education.Education expressed in years",
-              "length": 2,
-              "maxValue": 20.0,
-              "methodology": "adni-merge",
-              "type": "integer",
-              "label": "Participant Education",
-              "minValue": 0.0,
-              "code": "PTEDUCAT"
-            }
-          ],
-          "label": "education",
-          "code": "education"
-        },
-        {
-          "groups": [],
-          "variables": [
-            {
-              "description": "Participant Gender. Gender: refers to the socially constructed characteristics of women and men.",
-              "length": 1,
-              "methodology": "adni-merge",
-              "type": "binominal",
-              "enumerations": [
-                  	{ "code": "Male", "value": "Male" },
-                  	{ "code": "Female", "value": "Female" }
-                  ],
-              "label": "Participant Gender",
-              "code": "PTGENDER"
-            }
-          ],
-          "label": "genre",
-          "code": "genre"
-        },
-        {
-          "groups": [],
-          "variables": [
-            {
-              "description": "Participant Date of Birth. Age (Chronological age): refers to the calendar age. It is the number of years that have elapsed from birth to the exam date.",
-              "length": 3,
-              "maxValue": 130.0,
-              "methodology": "adni-merge",
-              "type": "real",
-              "label": "Age Baseline",
-              "minValue": 0.0,
-              "code": "AGE"
-            },
-            {
-              "description": "Participant Date of Birth. Age (Chronological age): refers to the calendar age. It is the number of years that have elapsed from birth to the exam date.",
-              "length": 3,
-              "maxValue": 130.0,
-              "methodology": "lren-nmm-volumes",
-              "type": "real",
-              "label": "Age",
-              "minValue": 0.0,
-              "code": "Exam-Age"
-            },
-            {
-              "description": "Participant Date of Birth. Age (Chronological age): refers to the calendar age. It is the number of years that have elapsed from birth to the exam date.",
-              "length": 3,
-              "maxValue": 130.0,
-              "methodology": "lren-nmm-volumes",
-              "type": "real",
-              "label": "Age",
-              "minValue": 0.0,
-              "code": "MRI-Age"
-            },
-            {
-              "description": "PTDOBYY",
-              "length": 4,
-              "methodology": "lren-nmm-volumes",
-              "type": "integer",
-              "label": "PTDOBYY",
-              "minValue": 0.0,
-              "code": "PTDOBYY"
-            },
-            {
-              "description": "PTDOBMM",
-              "maxValue": 12.0,
-              "methodology": "lren-nmm-volumes",
-              "type": "integer",
-              "label": "PTDOBMM",
-              "minValue": 0.0,
-              "code": "PTDOBMM"
-            }
-          ],
-          "label": "age",
-          "code": "age"
-        }
-      ],
-      "label": "demographic",
-      "code": "demographic"
-    },
-    {
-      "groups": [
-        {
-          "groups": [],
-          "variables": [
-            {
-              "type": "polynominal",
-              "enumerations": [
-                  	{ "code": "NL", "value": "NL" },
-                  	{ "code": "LMCI", "value": "LMCI" },
-                    { "code": "EMCI", "value": "EMCI" },
-                    { "code": "AD", "value": "AD" },
-                    { "code": "SMC", "value": "SMC" }
-                  ],
-              "label": "Diagnostic Status Baseline",
-              "description": "Diagnostic status based in clinical/cognitive evaluation (AD, MCI, NC). ADNI1 baseline diagnosis at VISCODE==\"bl,\" 1=NL;2=MCI;3=AD",
-              "code": "DX",
-              "methodology": "adni-merge"
-            },
-            {
-              "type": "polynominal",
-              "enumerations": [
-                  	{ "code": "NL", "value": "NL" },
-                  	{ "code": "LMCI", "value": "LMCI" },
-                    { "code": "EMCI", "value": "EMCI" },
-                    { "code": "AD", "value": "AD" }
-                  ],
-              "label": "GroupBL",
-              "description": "GroupBL",
-              "code": "GroupBL",
-              "methodology": "lren-nmm-volumes"
-            },
-            {
-              "type": "polynominal",
-              "enumerations": [
-                  	{ "code": "NL", "value": "NL" },
-                  	{ "code": "MCI", "value": "MCI" },
-                    { "code": "Dementia", "value": "Dementia" },
-                    { "code": "NL to MCI", "value": "NL to MCI" },
-                    { "code": "MCI to Dementia", "value": "MCI to Dementia" },
-                    { "code": "NL to Dementia", "value": "NL to Dementia" },
-                    { "code": "MCI to NL", "value": "MCI to NL" },
-                    { "code": "Dementia to MCI", "value": "Dementia to MCI" },
-                    { "code": "Dementia to NL", "value": "Dementia to NL" }
-                  ],
-              "label": "Conversion",
-              "description": "Conversion",
-              "code": "Conversion",
-              "methodology": "lren-nmm-volumes"
-            }
-          ],
-          "label": "diagnostic",
-          "code": "diagnostic"
-        },
-        {
-          "groups": [
-            {
-              "groups": [],
-              "variables": [
-                {
-                  "type": "real",
-                  "label": "CDRSB",
-                  "description": "Clinical Dementia Rating. CDR is derived from the scores in each of the six categories (“box scores\"): 1. Memory\n2. Orientation 3. Judgment and Problem Solving 4. Community Affairs 5. Home and Hobbies 6. Personal Care (0, 0.5…5)",
-                  "code": "CDRSB",
-                  "methodology": "adni-merge"
-                }
-              ],
-              "label": "CDRSB",
-              "code": "cdrsb"
-            },
-            {
-              "groups": [],
-              "variables": [
-                {
-                  "type": "integer",
-                  "maxValue": 30,
-                  "minValue": 0,
-                  "label": "FAQ",
-                  "description": "FAQ Total Score (0-30). The FAQ measures activities of daily living. Sum of 10 subscores (0=Normal (0);1=Never did, but could do now (0);2=Never did, would have difficulty now (1);3=Has difficulty, but does by self (1);4=Requires assistance (2);5=Dependent (3)",
-                  "code": "FAQ",
-                  "methodology": "adni-merge"
-                }
-              ],
-              "label": "FAQ",
-              "code": "faq"
-            },
-            {
-              "groups": [],
-              "variables": [
-                {
-                  "type": "integer",
-                  "maxValue": 30,
-                  "minValue": 0,
-                  "label": "MoCA",
-                  "description": "Montreal Cognitive Assessment (MoCA). was designed as a rapid screening instrument for mild cognitive dysfunction. It assesses different cognitive domains: a ttention and concentration, executive functions, memory, language, visuoconstructional skills, conceptual thinking, calculations, and orientation. Time to administer the MoCA is approximately 10 minutes. The total possible score is 30 points; a score of 26 or above is considered normal. This test was not applied in ADNI-I.",
-                  "code": "MOCA",
-                  "methodology": "adni-merge"
-                }
-              ],
-              "label": "MOCA",
-              "code": "moca"
-            },
-            {
-              "groups": [],
-              "variables": [
-                {
-                  "type": "real",
-                  "description": "RAVLT (forgetting). Test of episodic memory. Recall and recognize 15 words after a 30-minute delay interval.",
-                  "label": "RAVLT forgetting",
-                  "code": "RAVLT_forgetting",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "RAVLT (learning). Test of episodic memory. Recall and recognize 15 words after a 30-minute delay interval.",
-                  "label": "RAVLT learning",
-                  "code": "RAVLT_learning",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "maxValue": 100.0,
-                  "minValue": 2.0,
-                  "description": "RAVLT (percent forgetting). Test of episodic memory. Recall and recognize 15 words after a 30-minute delay interval.",
-                  "label": "RAVLT percent forgetting",
-                  "code": "RAVLT_perc_forgetting",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "RAVLT (immediate). Test of episodic memory. Recall 15 words immediately after an intervening interference list",
-                  "label": "RAVLT immediate",
-                  "code": "RAVLT_immediate",
-                  "methodology": "adni-merge"
-                }
-              ],
-              "label": "RAVLT",
-              "code": "ravlt"
-            },
-            {
-              "groups": [],
-              "variables": [
-                {
-                  "type": "integer",
-                  "maxValue": 30,
-                  "minValue": 0,
-                  "label": "MMSE",
-                  "description": "MMSE Total score. Mini-Mental State Examination (MMSE): is a global assessment of cognitive status (Folstein et al., 1975).The MMSE is a fully structured scale that consists of 30 points grouped into seven categories. A perfect score is 30 points; a score of 24 is the recommended, and most frequently used, cutpoint for dementia; a score of 23 or lower indicates dementia. ",
-                  "code": "MMSE",
-                  "methodology": "adni-merge"
-                }
-              ],
-              "label": "MMSE",
-              "code": "mmse"
-            },
-            {
-              "groups": [],
-              "variables": [
-                {
-                  "type": "real",
-                  "label": "ADAS11",
-                  "description": "ADAS Total score-11 items. Classic 70 point total. Excludes Q4 (Delayed Word Recall) and Q14 (Number Cancellation).",
-                  "code": "ADAS11",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "label": "ADAS13",
-                  "description": "ADAS Total score-13 items. 85 point total including Q4 (Delayed Word Recall) and Q14 (Number Cancellation). The ADAS is a brief cognitive test battery that assesses learning and memory, language production, language comprehension, constructional praxis, ideational praxis, and orientation.",
-                  "code": "ADAS13",
-                  "methodology": "adni-merge"
-                }
-              ],
-              "label": "ADAS",
-              "code": "adas"
-            },
-            {
-              "groups": [],
-              "variables": [
-                {
-                  "type": "real",
-                  "description": "Participant ECog - Mem. memory 8 items (memory1-memory8). Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2).",
-                  "label": "EcogPtMem",
-                  "code": "EcogPtMem",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Participant ECog - Lang. language 9 items (lang1-lang9). Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2). ",
-                  "label": "EcogPtLang",
-                  "code": "EcogPtLang",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Participant ECog - Vis/Spat. visuo-spatial 7 items (visspat1-visspat4, visspat6-visspat8 :visspat5 is a duplicated field (see DATADIC.csv)).Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2). ",
-                  "label": "EcogPtVisspat",
-                  "code": "EcogPtVisspat",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Participant ECog - Plan. planning 5 items (plan1-plan5). Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2). ",
-                  "label": "EcogPtPlan",
-                  "code": "EcogPtPlan",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Participant ECog - Organ. organization 6 items (organ1-organ6). Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2). ",
-                  "label": "EcogPtOrgan",
-                  "code": "EcogPtOrgan",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Participant ECog - Div atten. divided attention 4 items (divatt1-divatt4).Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2). ",
-                  "label": "EcogPtDivatt",
-                  "code": "EcogPtDivatt",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Participant ECog - Total. total score 39 items. Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2). ",
-                  "label": "EcogPtTotal",
-                  "code": "EcogPtTotal",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Study Partner ECog - Mem at baseline. memory 8 items (memory1-memory8). Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2).",
-                  "label": "EcogSPMem",
-                  "code": "EcogSPMem",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Study Partner ECog - Lang. language 9 items (lang1-lang9). Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2). ",
-                  "label": "EcogSPLang",
-                  "code": "EcogSPLang",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Study Partner ECog - Vis/Spat. visuo-spatial 7 items (visspat1-visspat4, visspat6-visspat8 :visspat5 is a duplicated field (see DATADIC.csv)).Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2). ",
-                  "label": "EcogSPVisspat",
-                  "code": "EcogSPVisspat",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Study Partner ECog - Plan. planning 5 items (plan1-plan5). Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2). ",
-                  "label": "EcogSPPlan",
-                  "code": "EcogSPPlan",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Study Partner ECog - Organ. organization 6 items (organ1-organ6). Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2). ",
-                  "label": "EcogSPOrgan",
-                  "code": "EcogSPOrgan",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Study Partner ECog - Div atten. divided attention 4 items (divatt1-divatt4).Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2). ",
-                  "label": "EcogSPDivatt",
-                  "code": "EcogSPDivatt",
-                  "methodology": "adni-merge"
-                },
-                {
-                  "type": "real",
-                  "description": "Study Partner ECog - Total. total score 39 items. Everyday Cognition-Participant Self Report (Only applied in ADNIGO, 2). ",
-                  "label": "EcogSPTotal",
-                  "code": "EcogSPTotal",
-                  "methodology": "adni-merge"
-                }
-              ],
-              "label": "ECoG",
-              "code": "ecog"
-            }
-          ],
-          "label": "cognition",
-          "code": "cognition"
-        }
-      ],
-      "label": "clinical",
-      "code": "clinical"
-    },
-    {
-      "groups": [
-        {
-          "groups": [],
-          "variables": [
-            {
-              "type": "real",
-              "description": "MRI Scanner field strength (1.5; 3..)",
-              "label": "",
-              "code": "MRIScanner",
-              "methodology": "lren-nmm-volumes"
-            },
-            {
-              "type": "real",
-              "description": "FLDSTRENG",
-              "label": "FLDSTRENG",
-              "code": "FLDSTRENG",
-              "methodology": "adni-merge"
-            },
-            {
-              "type": "text",
-              "description": "MRI-Code",
-              "label": "MRI-Code",
-              "code": "MRI-Code",
-              "methodology": "lren-nmm-volumes"
-            }
-          ],
-          "label": "machine",
-          "code": "machine"
-        }
-      ],
-      "label": "brain_scan",
-      "code": "brain_scan"
-    },
-    {
-      "groups": [
-        {
-          "groups": [],
-          "variables": [
-            {
-              "type": "real",
-              "description": "Average FDG-PET of angular, temporal, and posterior cingulate. Most important hypometabolic regions that are indicative of pathological metabolic change in MCI and AD.",
-              "label": "FDG",
-              "code": "FDG",
-              "methodology": "adni-merge"
-            },
-            {
-              "type": "real",
-              "description": "Average PIB SUVR of frontal cortex, anterior cingulate, precuneus cortex, and parietal cortex. ",
-              "label": "PIB",
-              "code": "PIB",
-              "methodology": "adni-merge"
-            },
-            {
-              "type": "real",
-              "description": "AV45 Average AV45 SUVR of frontal, anterior cingulate, precuneus, and parietal cortex\nrelative to the cerebellum",
-              "label": "AV45",
-              "code": "AV45",
-              "methodology": "adni-merge"
-            }
-          ],
-          "label": "PET",
-          "code": "PET"
-        }
-      ],
-      "variables": [
-        {
-          "type": "real",
-          "description": "AV45 Average AV45 SUVR of frontal, anterior cingulate, precuneus, and parietal cortex\nrelative to the cerebellum",
-          "label": "AV45",
-          "code": "AV45",
-          "methodology": "lren-nmm-volumes"
-        }
-      ],
-      "label": "brain_metabolism",
-      "code": "brain_metabolism"
-    },
-    {
-      "groups": [
-        {
-          "groups": [],
-          "variables": [
-            {
-              "type": "integer",
-              "description": "ADNI Site ID (see https://www.google.com/maps/d/u/0/viewer?mid=1iju64ttr8yCx7ZFTOAz0r3haNbg)",
-              "label": "Site ID",
-              "code": "SITE",
-              "methodology": "adni-merge"
-            }
-          ],
-          "label": "source",
-          "code": "source"
-        },
-        {
-          "groups": [],
-          "variables": [
-            {
-              "type": "polynominal",
-              "enumerations": [
-                  	{ "code": "ADNI1", "value": "ADNI" },
-                  	{ "code": "ADNIGO", "value": "GO" },
-                    { "code": "ADNI2", "value": "2" }
-                  ],
-              "description": "Protocol under which data was collected (ADNI1, GO or 2)",
-              "label": "Collection Protocol",
-              "code": "COLPROT",
-              "methodology": "adni-merge"
-            },
-            {
-              "type": "polynominal",
-              "enumerations": [
-                  	{ "code": "ADNI1", "value": "ADNI" },
-                  	{ "code": "ADNIGO", "value": "GO" },
-                    { "code": "ADNI2", "value": "2" }
-                  ],
-              "description": "Protocol from which subject methodologyated",
-              "label": "methodology Protocol",
-              "code": "ORIGPROT",
-              "methodology": "adni-merge"
-            }
-          ],
-          "label": "protocol",
-          "code": "protocol"
-        },
-        {
-          "groups": [],
-          "variables": [
-            {
-              "type": "date",
-              "description": "Date of the exam (EXAMDATE). You can extract EXAMDATE from the registry table (REGISTRY.csv) using RID, Phase, and VISCODE.",
-              "label": "Exam Date",
-              "code": "EXAMDATE",
-              "methodology": "adni-merge",
-              "length": 10
-            },
-            {
-              "type": "date",
-              "description": "Scan Exam Date",
-              "label": "Scan Date",
-              "code": "ScanDate",
-              "methodology": "lren-nmm-volumes",
-              "length": 10
-            },
-            {
-              "type": "text",
-              "description": "Visit code ( sc, scmri, bl, m03, m06, m12, m18, m24, etc) sc:screening visit, bl: baseline, m: month. See ADNI2 VISCODE2 Assignment.pdf in ADNI website",
-              "label": "Visit Code",
-              "code": "VISCODE",
-              "methodology": "lren-nmm-volumes"
-            }
-          ],
-          "label": "date",
-          "code": "date"
-        }
-      ],
-      "label": "provenance",
-      "code": "provenance"
-    },
-    {
-      "groups": [],
-      "variables": [
-        {
-          "type": "real",
-          "description": "Roster ID (RID) which you see in every ADNI CSV file. ",
-          "label": "Roster ID",
-          "code": "RID",
-          "methodology": "adni-merge",
-          "length": 38
-        },
-        {
-          "type": "text",
-          "description": "ADNI subject IDs of the form 123_S_5678 ( the last 4 digits correspond to the roster ID (RID) which you see in every CSV file)",
-          "label": "Subject ID (PTID)",
-          "code": "PTID",
-          "methodology": "adni-merge"
-        },
-        {
-          "type": "text",
-          "description": "Visit code ( sc, scmri, bl, m03, m06, m12, m18, m24, etc) sc:screening visit, bl: baseline, m: month. See ADNI2 VISCODE2 Assignment.pdf in ADNI website",
-          "label": "Visit Code",
-          "code": "VISCODE",
-          "methodology": "adni-merge",
-          "length": 20
-        },
-        {
-          "type": "integer",
-          "description": "Months from baseline (to nearest 6 months, as continuous, based on VISCODE)",
-          "label": "Months from baseline (based on VISCODE)",
-          "code": "M",
-          "methodology": "adni-merge"
-        },
-        {
-          "type": "real",
-          "description": "Months from baseline (to nearest 6 months, based on EXAMDATEs)",
-          "label": "Months from baseline (based on EXAMDATE)",
-          "code": "Month",
-          "methodology": "adni-merge"
-        },
-        {
-          "type": "text",
-          "description": "FSVERSION",
-          "label": "FSVERSION",
-          "code": "FSVERSION",
-          "methodology": "adni-merge"
-        },
-        {
-          "type": "text",
-          "description": "update_stamp",
-          "label": "update_stamp",
-          "code": "update_stamp",
-          "methodology": "adni-merge"
-        },
-        {
-          "type": "real",
-          "description": "TIV",
-          "label": "TIV",
-          "code": "TIV",
-          "methodology": "lren-nmm-volumes"
-        }
-      ],
-      "label": "no-group",
-      "code": "no-group"
-    }
-  ],
-  "label": "root",
-  "code": "root"
-}
\ No newline at end of file
-- 
GitLab