diff --git a/grails-app/controllers/org/transmartproject/rest/ExportController.groovy b/grails-app/controllers/org/transmartproject/rest/ExportController.groovy index 53be7ad..cb94575 100644 --- a/grails-app/controllers/org/transmartproject/rest/ExportController.groovy +++ b/grails-app/controllers/org/transmartproject/rest/ExportController.groovy @@ -26,7 +26,7 @@ class ExportController { } /**GET request on /export/datatypes - * Returns datatypes and patient number of given concepts. + * Returns datatypes and list with subjects of given concepts. * */ def datatypes() throws NoSuchResourceException { diff --git a/src/groovy/org/transmartproject/rest/marshallers/DataTypeSerializationHelper.groovy b/src/groovy/org/transmartproject/rest/marshallers/DataTypeSerializationHelper.groovy index d5f3f9c..14aa5b9 100644 --- a/src/groovy/org/transmartproject/rest/marshallers/DataTypeSerializationHelper.groovy +++ b/src/groovy/org/transmartproject/rest/marshallers/DataTypeSerializationHelper.groovy @@ -1,17 +1,17 @@ package org.transmartproject.rest.marshallers -import org.transmartproject.export.DataTypeRetrieved +import org.transmartproject.export.Datatypes -class DataTypeSerializationHelper extends AbstractHalOrJsonSerializationHelper{ +class DataTypeSerializationHelper extends AbstractHalOrJsonSerializationHelper{ - final Class targetType = DataTypeRetrieved - final String collectionName = 'dataTypeRetrieved' + final Class targetType = Datatypes + final String collectionName = 'datatypes' @Override - Map convertToMap(DataTypeRetrieved dataTypeRetrieved) { + Map convertToMap(Datatypes datatypes) { def cohortInfoList = [] def cohortsMap = [:] - dataTypeRetrieved.OntologyTermsMap.each { ID, terms -> + datatypes.OntologyTermsMap.each { ID, terms -> terms.collect { term -> if (ID in cohortsMap.keySet()) { cohortsMap[ID].add([subjects: term.patients.collect({ it.id }), conceptPath: term.fullName]) @@ -23,8 +23,8 @@ class DataTypeSerializationHelper extends AbstractHalOrJsonSerializationHelper< cohortsMap.each{ key, value -> cohortInfoList.add([concepts:value]) } - def datatypeMap = [dataType:dataTypeRetrieved.dataType, - dataTypeCode: dataTypeRetrieved.dataTypeCode, + def datatypeMap = [dataType:datatypes.dataType, + dataTypeCode: datatypes.dataTypeCode, cohorts:cohortInfoList] } diff --git a/test/functional/org/transmartproject/rest/ExportTests.groovy b/test/functional/org/transmartproject/rest/ExportTests.groovy index 13f1017..ed6a604 100644 --- a/test/functional/org/transmartproject/rest/ExportTests.groovy +++ b/test/functional/org/transmartproject/rest/ExportTests.groovy @@ -9,8 +9,7 @@ class ExportTests extends ResourceTestCase{ String version = "v1" - private static final String JSON_CONCEPTS_DATATYPES_URI = "%5B%7B%22conceptKeys%22%3A+%5B%22%5C%5C%5C%5Ci2b2+main%5C%5Cfoo%5C%5Cstudy1%5C%5Cbar%5C%5C%22%5D%7D%2C+%7B%22conceptKeys%22%3A+%5B%22%5C%5C%5C%5Ci2b2+main%5C%5Cfoo%5C%5Cstudy2%5C%5Clong+path%5C%5C%22%2C+%22%5C%5C%5C%5Ci2b2+main%5C%5Cfoo%5C%5Cstudy2%5C%5Csex%5C%5C%22%5D%7D%5D" - + private static final String JSON_CONCEPTS_DATATYPES_URI = "%7B%22cohorts%22%3A%20%5B%7B%22conceptKeys%22%3A%20%5B%22%5C%5C%5C%5Ci2b2%20main%5C%5Cfoo%5C%5Cstudy1%5C%5Cbar%5C%5C%22%5D%7D%2C%20%7B%22conceptKeys%22%3A%20%5B%22%5C%5C%5C%5Ci2b2%20main%5C%5Cfoo%5C%5Cstudy2%5C%5Clong%20path%5C%5C%22%2C%20%22%5C%5C%5C%5Ci2b2%20main%5C%5Cfoo%5C%5Cstudy2%5C%5Csex%5C%5C%22%5D%7D%5D%7D" void testDataTypes() { get("${baseURL}$version/export/datatypes", { concepts=JSON_CONCEPTS_DATATYPES_URI }) assertStatus 200