Skip to content

Commit 0611e5b

Browse files
committed
Add ResultsOOODisplayColumn
1 parent eca5f07 commit 0611e5b

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed

Studies/resources/referenceStudy/study/datasets/datasets_metadata.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,10 @@
173173
</column>
174174
<column columnName="resultOORIndicator">
175175
<datatype>varchar</datatype>
176+
<isHidden>true</isHidden>
177+
<displayColumnFactory>
178+
<className>org.labkey.studies.query.ResultsOOODisplayColumn</className>
179+
</displayColumnFactory>
176180
</column>
177181
<column columnName="units">
178182
<datatype>varchar</datatype>
@@ -288,6 +292,9 @@
288292
<column columnName="subgroup">
289293
<datatype>varchar</datatype>
290294
</column>
295+
<column columnName="cohortId">
296+
<columnTitle>Cohort ID</columnTitle>
297+
</column>
291298
<column columnName="description">
292299
<datatype>varchar</datatype>
293300
</column>
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package org.labkey.studies.query;
2+
3+
import org.apache.commons.lang3.StringUtils;
4+
import org.labkey.api.data.ColumnInfo;
5+
import org.labkey.api.data.DataColumn;
6+
import org.labkey.api.data.RenderContext;
7+
import org.labkey.api.query.FieldKey;
8+
9+
import java.text.DecimalFormat;
10+
import java.util.Set;
11+
12+
public class ResultsOOODisplayColumn extends DataColumn
13+
{
14+
public ResultsOOODisplayColumn(ColumnInfo col)
15+
{
16+
super(col);
17+
}
18+
19+
@Override
20+
public Class getDisplayValueClass()
21+
{
22+
return String.class;
23+
}
24+
25+
@Override
26+
public Object getDisplayValue(RenderContext ctx)
27+
{
28+
Object result = ctx.get(getBoundColumn().getFieldKey(), Double.class);
29+
if (result == null)
30+
{
31+
return null;
32+
}
33+
34+
String oor = ctx.get(getOOR(), String.class);
35+
if (StringUtils.isEmpty(oor))
36+
{
37+
return result;
38+
}
39+
40+
if (getBoundColumn().getFormat() != null)
41+
{
42+
DecimalFormat fmt = new DecimalFormat(getBoundColumn().getFormat());
43+
result = fmt.format(result);
44+
}
45+
46+
return oor + result;
47+
}
48+
49+
private FieldKey getOOR()
50+
{
51+
FieldKey oor = FieldKey.fromString("resultOOOIndicator");
52+
if (getBoundColumn() != null)
53+
{
54+
return FieldKey.fromParts(getBoundColumn().getFieldKey().getParent(), oor);
55+
}
56+
else
57+
{
58+
return oor;
59+
}
60+
}
61+
62+
@Override
63+
public void addQueryFieldKeys(Set<FieldKey> keys)
64+
{
65+
super.addQueryFieldKeys(keys);
66+
keys.add(getOOR());
67+
}
68+
}

0 commit comments

Comments
 (0)