Skip to content

Commit bb1eadc

Browse files
committed
Add calculated column listing cohorts
1 parent 62ba3a1 commit bb1eadc

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<customView xmlns="http://labkey.org/data/xml/queryCustomView" hidden="false" canOverride="false">
2+
<columns>
3+
<column name="rowId"/>
4+
<column name="studyName"/>
5+
<column name="label"/>
6+
<column name="category"/>
7+
<column name="description"/>
8+
<column name="cohorts"/>
9+
</columns>
10+
<sorts>
11+
<sort column="studyName" descending="false"/>
12+
</sorts>
13+
</customView>

Studies/resources/schemas/studies.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@
132132
<auditLogging>DETAILED</auditLogging>
133133
<columns>
134134
<column columnName="rowid">
135+
<columnTitle>Study Id</columnTitle>
135136
<isAutoInc>true</isAutoInc>
136137
<shownInUpdateView>false</shownInUpdateView>
137138
<shownInInsertView>false</shownInInsertView>

Studies/src/org/labkey/studies/query/StudiesUserSchema.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,15 @@
77
import org.labkey.api.data.Container;
88
import org.labkey.api.data.ContainerFilter;
99
import org.labkey.api.data.DbSchema;
10+
import org.labkey.api.data.JdbcType;
11+
import org.labkey.api.data.SQLFragment;
1012
import org.labkey.api.data.SchemaTableInfo;
1113
import org.labkey.api.data.SimpleFilter;
1214
import org.labkey.api.data.TableInfo;
1315
import org.labkey.api.data.TableSelector;
1416
import org.labkey.api.ldk.table.ContainerScopedTable;
1517
import org.labkey.api.ldk.table.CustomPermissionsTable;
18+
import org.labkey.api.query.ExprColumn;
1619
import org.labkey.api.query.FieldKey;
1720
import org.labkey.api.query.QueryDefinition;
1821
import org.labkey.api.query.QueryException;
@@ -177,7 +180,16 @@ private TableInfo createStudyDesignTable(String name, ContainerFilter cf, boolea
177180
ret.addTriggerFactory(new StudiesTriggerFactory());
178181
}
179182

180-
return ret.init();
183+
ret = ret.init();
184+
185+
final String chr = ret.getSqlDialect().isPostgreSQL() ? "chr" : "char";
186+
SQLFragment sql1 = new SQLFragment("(SELECT ").append(ret.getSqlDialect().getGroupConcat(new SQLFragment("c.label"), true, true, new SQLFragment(chr + "(10)"))).append(" as expr FROM " + StudiesSchema.NAME + "." + TABLE_COHORTS + " c WHERE c.studyId = " + ExprColumn.STR_TABLE_ALIAS + ".rowId)");
187+
ExprColumn col1 = new ExprColumn(ret, "cohorts", sql1, JdbcType.VARCHAR, ret.getColumn("rowid"));
188+
col1.setLabel("Cohort(s)");
189+
col1.setDescription("This column lists the cohort labels for this study");
190+
ret.addColumn(col1);
191+
192+
return ret;
181193
}
182194

183195
private LookupSetTable createForPropertySet(StudiesUserSchema us, ContainerFilter cf, String setName, Map<String, Object> map)

0 commit comments

Comments
 (0)