Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
5048d12
More improvements to mGAP ETL
bbimber May 6, 2025
1fb9bc8
Missed with prior commit
bbimber May 6, 2025
f0fc5b8
Bugfix to mGAP ETL
bbimber May 7, 2025
e683e40
Conditionalize aligner index memory based on aligner type
bbimber May 11, 2025
3176687
Improve mGapMaintenanceTask handling of symlinks
bbimber May 13, 2025
91bd908
Improve mGapMaintenanceTask handling of symlinks
bbimber May 13, 2025
7721673
Bugfix to JBrowseSessionTransform
bbimber May 17, 2025
e9feedd
Update download docs
bbimber May 18, 2025
b5d84e7
Improve curl syntax
bbimber May 18, 2025
e07a084
Use mGapMaintenanceTask to create symlink alias for latest versions
bbimber May 22, 2025
82ef09f
Bugfix name of symlink
bbimber May 23, 2025
88f7ea5
Add link to mGAP dashboard
bbimber May 28, 2025
847dcef
Update ETL order and npm dependencies
bbimber Jun 3, 2025
4c62ac7
Add draft notification
bbimber Jun 6, 2025
9559abc
Improve formatting
bbimber Jun 6, 2025
36f5e7a
Expand DiskUsageNotification
bbimber Jun 7, 2025
04a313f
Suppress ssh banners
bbimber Jun 7, 2025
f2ef1ff
Remove field from table
bbimber Jun 7, 2025
3890848
New ETL method to sync data based on a source of subject IDs
bbimber Jun 9, 2025
510810c
Add new ETL type to sync based on subject ID
bbimber Jun 9, 2025
0aa7498
Make IDs unique
bbimber Jun 10, 2025
8beb68a
Refactor code into discrete SivStudies module
bbimber Jun 10, 2025
6382ab1
Correct URL for track
bbimber Jun 10, 2025
df263c7
Refactor several TCR tables
bbimber Jun 11, 2025
477fdf6
Fix SQL syntax
bbimber Jun 11, 2025
50648bf
Move class
bbimber Jun 13, 2025
ac47736
Missed with prior commit
bbimber Jun 13, 2025
b2e8037
Null check
bbimber Jun 13, 2025
d353e90
Bugfixes to SubjectScopedSelect
bbimber Jun 13, 2025
989b82a
Bugfixes to SubjectScopedSelect
bbimber Jun 13, 2025
4df6420
Enhance calculated fields in SIV Studies
bbimber Jun 14, 2025
57f79ff
Update TCRdb schema
bbimber Jun 16, 2025
ee4c1c1
Update TCRdb views
bbimber Jun 16, 2025
e0e8d67
Update TCRdb views
bbimber Jun 16, 2025
f3ad067
Merge discvr-25.3 to develop
bbimber Jun 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions PMR/resources/etls/pmr-datasets.xml
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,7 @@
</transforms>

<!-- <incrementalFilter className="ModifiedSinceFilterStrategy" timestampColumnName="modified" >-->
<!-- &lt;!&ndash; TODO: enable once PRIMe deploys 23.7 &ndash;&gt;-->
<!-- &lt;!&ndash;<deletedRowsSource remoteSource="EHR_ClinicalSource" schemaName="AuditSummary" queryName="DatasetUpdateAuditLog" deletedSourceKeyColumnName="primaryKey" targetKeyColumnName="objectid"/>&ndash;&gt;-->
<!-- <deletedRowsSource remoteSource="EHR_ClinicalSource" schemaName="AuditSummary" queryName="DatasetUpdateAuditLog" deletedSourceKeyColumnName="primaryKey" targetKeyColumnName="objectid"/>-->
<!-- </incrementalFilter>-->
<schedule>
<!--11PM-->
Expand Down
20 changes: 20 additions & 0 deletions SivStudies/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import org.labkey.gradle.util.BuildUtils

plugins {
id 'org.labkey.build.module'
}

dependencies {
BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: ":server:modules:DiscvrLabKeyModules:Studies", depProjectConfig: "published", depExtension: "module")
BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: ":server:modules:premiumModules:dataintegration", depProjectConfig: "published", depExtension: "module")
BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: ":server:modules:DiscvrLabKeyModules:discvrcore", depProjectConfig: "published", depExtension: "module")

BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: ":server:modules:DiscvrLabKeyModules:Studies", depProjectConfig: "apiJarFile")
BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: ":server:modules:premiumModules:dataintegration", depProjectConfig: "apiJarFile")

BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: ":server:modules:LabDevKitModules:laboratory", depProjectConfig: "apiJarFile")
BuildUtils.addLabKeyDependency(project: project, config: "implementation", depProjectPath: ":server:modules:LabDevKitModules:LDK", depProjectConfig: "apiJarFile")

BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: ":server:modules:LabDevKitModules:laboratory", depProjectConfig: "published", depExtension: "module")
BuildUtils.addLabKeyDependency(project: project, config: "modules", depProjectPath: ":server:modules:LabDevKitModules:LDK", depProjectConfig: "published", depExtension: "module")
}
7 changes: 7 additions & 0 deletions SivStudies/module.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
ModuleClass: org.labkey.sivstudies.SivStudiesModule
Label: SIV Studies
Description: A module designed to manage data from SIV and related studies.
License: Apache 2.0
LicenseURL: http://www.apache.org/licenses/LICENSE-2.0
ManageVersion: false
SupportedDatabases: mssql, pgsql
11 changes: 11 additions & 0 deletions SivStudies/resources/data/amount_units.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
value
g
IU
U
mEq
mg
no units
ug
units
L/min
%
6 changes: 6 additions & 0 deletions SivStudies/resources/data/calculated_status_codes.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
value
Alive
Dead
No Record
Shipped
Unknown
12 changes: 12 additions & 0 deletions SivStudies/resources/data/conc_units.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
value denominator numerator
g/ml mL g
g/tsp tsp g
IU/ml mL IU
mEq/ml mL mEq
mg/capsule capsule(s) mg
mg/ml mL mg
mg/piece piece(s) mg
mg/tablet tablet(s) mg
mg/tsp tsp mg
ug/ml mL ug
units/ml mL units
11 changes: 11 additions & 0 deletions SivStudies/resources/data/dosage_units.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
value numerator denominator
g/kg g kg
IU/kg IU kg
mEq/kg mEq kg
mg/animal mg
mg/kg mg kg
ml/kg ml kg
no units
ounces/kg ounces kg
ug/kg ug kg
units/kg units kg
4 changes: 4 additions & 0 deletions SivStudies/resources/data/gender_codes.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
v meaning origgender
f Female f
m Male m
u Unknown
4 changes: 4 additions & 0 deletions SivStudies/resources/data/geographic_origins.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
value
Indian
Chinese
Hybrid
9 changes: 9 additions & 0 deletions SivStudies/resources/data/lookup_sets.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
setname label keyfield titleColumn
amount_units Amount Units unit
calculated_status_codes Calculated Status Codes code
conc_units Concentraiton Units unit
dosage_units Dosage Units unit
gender_codes Gender Codes
geographic_origins Geographic Origins origin
routes Routes route
volume_units Volume Units unit
12 changes: 12 additions & 0 deletions SivStudies/resources/data/reports.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
reportname category reporttype reporttitle visible containerpath schemaname queryname viewname report datefieldname todayonly queryhaslocation sort_order QCStateLabelFieldName description
activeAssignments Assignments and Groups query Active Assignments true study Assignment Active Assignments date false false qcstate/publicdata This report shows the active assignments for each animal
assignmentHistory Assignments and Groups query Assignment History true study Assignment date false false qcstate/publicdata This report shows all assignments records for the animals
activeGroups Assignments and Groups query Active Groups true study animal_group_members Active Members date false false qcstate/publicdata This report shows the active assignments for each animal
groupHistory Assignments and Groups query Group History true study animal_group_members date false false qcstate/publicdata This report shows all assignments records for the animals
microbiology Lab Results query Microbiology true study Microbiology Results date false false qcstate/publicdata
biochemistry Lab Results js Biochemistry true study bloodChemistry date false false Contains results of chemistry panels. Can be displayed either by panel, or showing reference ranges
clinPathRuns Lab Results query Lab Runs true study Clinpath Runs date false false qcstate/publicdata Contains all clinpath requests
iStat Lab Results js iStat true study iStat date false false qcstate/publicdata Contains iStat results
hematology Lab Results js Hematology true study hematology date false false Contains hematology data showing cell subsets
parasitology Lab Results query Parasitology true study Parasitology Results date false false qcstate/publicdata Contains results of parasitology testing
urinalysis Lab Results js Urinalysis true study urinalysisResults date false false Contains urinalysis results
24 changes: 24 additions & 0 deletions SivStudies/resources/data/routes.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
value title
IM
intracardiac
intracarotid
intracorneal Intracorneal
intracranial
IP intraperitoneal
ID
INH
IT
IV
CRI
IVAG
oral
PO
rectal
Spillage
SQ
OU
OD
OS
topical
topical (eye)
topical (skin)
10 changes: 10 additions & 0 deletions SivStudies/resources/data/species.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
common scientific_name id_prefix mhc_prefix blood_per_kg max_draw_pct blood_draw_interval cites_code dateDisabled
Baboon 60 0.2 30
Cotton-top Tamarin Saguinus oedipus so Saoe 60 0.2 30
Cynomolgus Macaca fascicularis cy Mafa 60 0.2 30
Marmoset Callithrix jacchus cj Caja 60 0.15 30
Pigtail Macaca Nemestrina Mane 60 0.2 30
Rhesus Macaca mulatta r|rh Mamu 60 0.2 30
Sooty Mangabey Cercocebus atys Ceat 60 0.2 30
Stump Tailed Macaca Arctoides Maar 60 0.2 30
Vervet Chlorocebus sabaeus ag Chsa 60 0.2 30
13 changes: 13 additions & 0 deletions SivStudies/resources/data/volume_units.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
value
capsule(s)
cup
drop(s)
cube
mL
mL/hr
no units
ounce(s)
pan
piece(s)
tablet(s)
tsp
143 changes: 143 additions & 0 deletions SivStudies/resources/etls/siv-studies.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8"?>
<etl xmlns="http://labkey.org/etl/xml">
<name>SIV_PRIMe</name>
<description>SIV Studies / PRIMe Data</description>
<transforms>
<transform id="demographics" type="TaskRefTransformStep">
<taskref ref="org.labkey.sivstudies.etl.SubjectScopedSelect">
<settings>
<setting name="mode" value="UPDATE_ONLY"/>

<setting name="subjectSourceSchema" value="study"/>
<setting name="subjectSourceQuery" value="demographics"/>
<setting name="subjectSourceColumn" value="Id"/>

<setting name="dataRemoteSource" value="PRIMe"/>
<setting name="dataSourceSchema" value="study"/>
<setting name="dataSourceQuery" value="demographics"/>
<setting name="dataSourceSubjectColumn" value="Id"/>
<setting name="dataSourceColumns" value="Id,gender,geographic_origin,species,Id/parents/dam,Id/parents/sire,birth,death,calculated_status,objectid"/>
<setting name="dataSourceColumnMapping" value="gender=sex,Id/Parents/dam=mother,Id/Parents/sire=father"/>

<setting name="targetSchema" value="study"/>
<setting name="targetQuery" value="demographics"/>
<setting name="targetSubjectColumn" value="Id"/>
</settings>
</taskref>
</transform>
<transform id="weight" type="TaskRefTransformStep">
<taskref ref="org.labkey.sivstudies.etl.SubjectScopedSelect">
<settings>
<setting name="subjectSourceSchema" value="study"/>
<setting name="subjectSourceQuery" value="demographics"/>
<setting name="subjectSourceColumn" value="Id"/>

<setting name="dataRemoteSource" value="PRIMe"/>
<setting name="dataSourceSchema" value="study"/>
<setting name="dataSourceQuery" value="weight"/>
<setting name="dataSourceSubjectColumn" value="Id"/>
<setting name="dataSourceColumns" value="Id,date,weight,objectid"/>

<setting name="targetSchema" value="study"/>
<setting name="targetQuery" value="weight"/>
<setting name="targetSubjectColumn" value="Id"/>
</settings>
</taskref>
</transform>

<transform id="mhc" type="TaskRefTransformStep">
<taskref ref="org.labkey.sivstudies.etl.SubjectScopedSelect">
<settings>
<setting name="subjectSourceSchema" value="study"/>
<setting name="subjectSourceQuery" value="demographics"/>
<setting name="subjectSourceColumn" value="Id"/>

<setting name="dataSourceContainerPath" value="Internal/MHC_Typing"/>
<setting name="dataSourceSchema" value="geneticscore"/>
<setting name="dataSourceQuery" value="mhc_data"/>
<setting name="dataSourceSubjectColumn" value="subjectid"/>
<setting name="dataSourceColumns" value="subjectid,created,assaytype,marker,result,score"/>
<setting name="dataSourceColumnMapping" value="subjectId=Id,created=date"/>
<setting name="dataSourceColumnDefaults" value="category=MHC Typing"/>

<setting name="targetSchema" value="study"/>
<setting name="targetQuery" value="genetics"/>
<setting name="targetSubjectColumn" value="Id"/>
</settings>
</taskref>
</transform>

<transform id="cbc" type="TaskRefTransformStep">
<taskref ref="org.labkey.sivstudies.etl.SubjectScopedSelect">
<settings>
<setting name="subjectSourceSchema" value="study"/>
<setting name="subjectSourceQuery" value="demographics"/>
<setting name="subjectSourceColumn" value="Id"/>

<setting name="dataRemoteSource" value="PRIMe"/>
<setting name="dataSourceSchema" value="study"/>
<setting name="dataSourceQuery" value="hematologyResults"/>
<setting name="dataSourceSubjectColumn" value="Id"/>
<setting name="dataSourceColumns" value="Id,date,testid,result,units,qualresult,objectid"/>
<setting name="dataSourceColumnMapping" value="testid=test"/>
<setting name="dataSourceAdditionalFilters" value="qcstate/publicdata~eq=true"/>
<setting name="dataSourceColumnDefaults" value="category=CBC"/>

<setting name="targetSchema" value="study"/>
<setting name="targetQuery" value="labwork"/>
<setting name="targetSubjectColumn" value="Id"/>
<setting name="targetAdditionalFilters" value="category~eq=CBC"/>
</settings>
</taskref>
</transform>

<transform id="chem" type="TaskRefTransformStep">
<taskref ref="org.labkey.sivstudies.etl.SubjectScopedSelect">
<settings>
<setting name="subjectSourceSchema" value="study"/>
<setting name="subjectSourceQuery" value="demographics"/>
<setting name="subjectSourceColumn" value="Id"/>

<setting name="dataRemoteSource" value="PRIMe"/>
<setting name="dataSourceSchema" value="study"/>
<setting name="dataSourceQuery" value="chemistryResults"/>
<setting name="dataSourceSubjectColumn" value="Id"/>
<setting name="dataSourceColumns" value="Id,date,testid,result,units,qualresult,objectid"/>
<setting name="dataSourceColumnMapping" value="testid=test"/>
<setting name="dataSourceAdditionalFilters" value="qcstate/publicdata~eq=true"/>
<setting name="dataSourceColumnDefaults" value="category=Chemistry"/>

<setting name="targetSchema" value="study"/>
<setting name="targetQuery" value="labwork"/>
<setting name="targetSubjectColumn" value="Id"/>
<setting name="targetAdditionalFilters" value="category~eq=Chemistry"/>
</settings>
</taskref>
</transform>

<transform id="procedures" type="TaskRefTransformStep">
<taskref ref="org.labkey.sivstudies.etl.SubjectScopedSelect">
<settings>
<setting name="subjectSourceSchema" value="study"/>
<setting name="subjectSourceQuery" value="demographics"/>
<setting name="subjectSourceColumn" value="Id"/>

<setting name="dataRemoteSource" value="PRIMe"/>
<setting name="dataSourceSchema" value="study"/>
<setting name="dataSourceQuery" value="encounters"/>
<setting name="dataSourceSubjectColumn" value="Id"/>
<setting name="dataSourceColumns" value="Id,date,type,procedureid/name,objectid"/>
<setting name="dataSourceColumnMapping" value="procedureid/name=procedure,type=category"/>
<setting name="dataSourceAdditionalFilters" value="qcstate/publicdata~eq=true;procedureid/name~isnonblank="/>

<setting name="targetSchema" value="study"/>
<setting name="targetQuery" value="procedures"/>
<setting name="targetSubjectColumn" value="Id"/>
</settings>
</taskref>
</transform>
</transforms>
<schedule>
<cron expression="0 30 20 * * ?"/>
</schedule>
</etl>
78 changes: 78 additions & 0 deletions SivStudies/resources/folderTypes/SIV Studies.folderType.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<ft:folderType xmlns:ft="http://labkey.org/data/xml/folderType">
<ft:name>SIV Studies Overview</ft:name>
<ft:description>The default folder layout for Studies</ft:description>
<ft:folderTabs>
<!-- <ft:folderTab>-->
<!-- <ft:name>overview</ft:name>-->
<!-- <ft:caption>Overview</ft:caption>-->
<!-- <ft:selectors>-->
<!-- </ft:selectors>-->
<!-- <ft:requiredWebParts>-->
<!-- </ft:requiredWebParts>-->
<!-- <ft:preferredWebParts>-->
<!-- <ft:webPart>-->
<!-- <ft:name>Data and Analyses</ft:name>-->
<!-- <ft:location>body</ft:location>-->
<!-- </ft:webPart>-->
<!-- </ft:preferredWebParts>-->
<!-- </ft:folderTab>-->
<ft:folderTab>
<ft:name>datasets</ft:name>
<ft:caption>Datasets</ft:caption>
<ft:selectors>
<ft:selector>
<ft:view>datasets</ft:view>
</ft:selector>
</ft:selectors>
<ft:requiredWebParts>
</ft:requiredWebParts>
<ft:preferredWebParts>
<ft:webPart>
<ft:name>Datasets</ft:name>
<ft:location>body</ft:location>
</ft:webPart>
</ft:preferredWebParts>
</ft:folderTab>
<!-- <ft:folderTab>-->
<!-- <ft:name>analyses</ft:name>-->
<!-- <ft:caption>Analyses</ft:caption>-->
<!-- <ft:selectors>-->
<!-- <ft:selector>-->
<!-- <ft:view>analyses</ft:view>-->
<!-- </ft:selector>-->
<!-- </ft:selectors>-->
<!-- <ft:requiredWebParts>-->
<!-- </ft:requiredWebParts>-->
<!-- <ft:preferredWebParts>-->
<!-- <ft:webPart>-->
<!-- <ft:name>Analyses</ft:name>-->
<!-- <ft:location>body</ft:location>-->
<!-- </ft:webPart>-->
<!-- </ft:preferredWebParts>-->
<!-- </ft:folderTab>-->
<ft:folderTab>
<ft:name>admin</ft:name>
<ft:caption>Admin</ft:caption>
<ft:selectors>

</ft:selectors>
<ft:requiredWebParts>

</ft:requiredWebParts>
<ft:preferredWebParts>
<ft:webPart>
<ft:name>SIV Studies Admin</ft:name>
<ft:location>body</ft:location>
</ft:webPart>
</ft:preferredWebParts>
<ft:permissions>
<ft:permission name="org.labkey.api.security.permissions.AdminPermission"/>
</ft:permissions>
</ft:folderTab>
</ft:folderTabs>
<ft:modules>
<ft:moduleName>studies</ft:moduleName>
</ft:modules>
<ft:defaultModule>studies</ft:defaultModule>
<ft:forceAssayUploadIntoWorkbooks>true</ft:forceAssayUploadIntoWorkbooks>
</ft:folderType>
Loading