Skip to content

Commit 3c4cc68

Browse files
committed
Add calculated column summarizing MCC transfers
1 parent 75c2f58 commit 3c4cc68

File tree

5 files changed

+76
-3
lines changed

5 files changed

+76
-3
lines changed

mcc/resources/etls/mcc.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
<column>usage_future</column>
3434
<column>date_of_observations</column>
3535
<column>colony</column>
36+
<column>source</column>
3637
<column>dam</column>
3738
<column>sire</column>
3839
<column>objectid</column>

mcc/resources/queries/study/demographicsLittermates.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ SELECT
33
d1.Id,
44
d1.litterId,
55

6-
(SELECT GROUP_CONCAT(distinct d2.Id, ',') as litterMates FROM study.Demographics d2 WHERE d2.qcstate.publicdata = true AND d1.litterId = d2.litterId AND d1.id != d2.id) as litterMates
6+
(SELECT GROUP_CONCAT(distinct d2.Id, ',') as litterMates FROM study.Demographics d2 WHERE d2.qcstate.publicdata = true AND d2.litterId IS NOT NULL AND d1.litterId = d2.litterId AND d1.id != d2.id) as litterMates
77

88
FROM study.Demographics d1
99

10-
WHERE d1.qcstate.publicdata = true
10+
WHERE d1.qcstate.publicdata = true AND d1.litterId IS NOT NULL
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<query xmlns="http://labkey.org/data/xml/query">
2+
<metadata>
3+
<tables xmlns="http://labkey.org/data/xml">
4+
<table tableName="demographicsMccTransfer" tableDbType="NOT_IN_DB">
5+
<tableTitle>MCC Transfers</tableTitle>
6+
<description>Summary of MCC Transfers</description>
7+
<columns>
8+
<column columnName="Id">
9+
<isKeyField>true</isKeyField>
10+
<isHidden>true</isHidden>
11+
</column>
12+
<column columnName="mccRequestId">
13+
<columnTitle>MCC Request ID</columnTitle>
14+
</column>
15+
<column columnName="piLastName">
16+
<columnTitle>PI Last Name</columnTitle>
17+
</column>
18+
<column columnName="piFirstName">
19+
<columnTitle>PI First Name</columnTitle>
20+
</column>
21+
<column columnName="piInstitution">
22+
<columnTitle>PI Institution</columnTitle>
23+
</column>
24+
</columns>
25+
<titleColumn>mccRequestId</titleColumn>
26+
</table>
27+
</tables>
28+
</metadata>
29+
</query>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
SELECT
2+
d.Id,
3+
GROUP_CONCAT(DISTINCT d.mccRequestId.rowId, ', ') as mccRequestId,
4+
GROUP_CONCAT(DISTINCT d.mccRequestId.lastName, char(10)) as piLastName,
5+
GROUP_CONCAT(DISTINCT d.mccRequestId.firstName, char(10)) as piFirstName,
6+
GROUP_CONCAT(DISTINCT d.mccRequestId.institution, char(10)) as piInstitution
7+
FROM study.departure d
8+
WHERE w.qcstate.publicdata = true AND mccRequestId IS NOT NULL
9+
GROUP BY d.Id

mcc/src/org/labkey/mcc/query/MccEhrCustomizer.java

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,11 @@
1616
import org.labkey.api.query.FieldKey;
1717
import org.labkey.api.query.LookupForeignKey;
1818
import org.labkey.api.query.QueryForeignKey;
19-
import org.labkey.api.query.QueryService;
2019
import org.labkey.api.query.UserSchema;
20+
import org.labkey.api.security.User;
2121
import org.labkey.mcc.MccManager;
2222
import org.labkey.mcc.MccSchema;
23+
import org.labkey.mcc.security.MccRequestAdminPermission;
2324

2425
public class MccEhrCustomizer extends AbstractTableCustomizer
2526
{
@@ -141,6 +142,39 @@ private void customizeAnimalTable(AbstractTableInfo ti)
141142
col.setDescription("Summary of genomic data");
142143
ti.addColumn(col);
143144
}
145+
146+
// Only allow this for authorized users:
147+
possiblyAddRequestSummary(ti);
148+
}
149+
150+
private void possiblyAddRequestSummary(AbstractTableInfo ti)
151+
{
152+
if (ti.getColumn("mccTransfers") != null)
153+
{
154+
return;
155+
}
156+
157+
Container animalDataContainer = MccManager.get().getMCCContainer(ti.getUserSchema().getContainer());
158+
if (animalDataContainer == null)
159+
{
160+
return;
161+
}
162+
163+
if (!animalDataContainer.equals(ti.getUserSchema().getContainer()))
164+
{
165+
return;
166+
}
167+
168+
User u = ti.getUserSchema().getUser();
169+
if (!animalDataContainer.hasPermission(u, MccRequestAdminPermission.class))
170+
{
171+
return;
172+
}
173+
174+
var col = getWrappedIdCol(ti.getUserSchema(), ti, "mccTransfers", "demographicsMccTransfer");
175+
col.setLabel("MCC Transfers");
176+
col.setDescription("Summarizes MCC Transfer Information");
177+
ti.addColumn(col);
144178
}
145179

146180
private BaseColumnInfo getWrappedIdCol(UserSchema us, AbstractTableInfo ds, String name, String queryName)

0 commit comments

Comments
 (0)