Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 11 additions & 7 deletions nbri_ehr/resources/data/pairing_formation_types.tsv
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
value
Full Contact Pair
Group Formation
Introduction
Limited Contact Pair
Pair Formation
Other
value title date_disabled
C Compatible 2026-08-06
CF CF
CP Continuous pair
F Fought 2026-08-06
FC Full Contact
IC Intermittent Contact
IG Indoor Group Housing
PC Protected Contact
S Single Housing
U Unsuccessful
106 changes: 3 additions & 103 deletions nbri_ehr/resources/domain-templates/ehr.template.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,118 +6,18 @@
<template xsi:type="EHRTemplateType">
<table tableName="protocol" tableDbType="TABLE">
<dat:columns>
<dat:column columnName="departmentId">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="authorId">
<dat:rangeURI>int</dat:rangeURI>
</dat:column>
<dat:column columnName="prefix">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="suffix">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="shortDescription">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="expirationDate">
<dat:rangeURI>dateTime</dat:rangeURI>
</dat:column>
<dat:column columnName="renewalDate">
<dat:rangeURI>dateTime</dat:rangeURI>
</dat:column>
<dat:column columnName="nextReviewDate">
<dat:rangeURI>dateTime</dat:rangeURI>
</dat:column>
<dat:column columnName="inactiveDate">
<dat:rangeURI>dateTime</dat:rangeURI>
</dat:column>
<dat:column columnName="requestedEffectiveDate">
<dat:rangeURI>dateTime</dat:rangeURI>
</dat:column>
<dat:column columnName="submissionDate">
<dat:rangeURI>dateTime</dat:rangeURI>
</dat:column>
<dat:column columnName="reviewCompletionDate">
<dat:rangeURI>dateTime</dat:rangeURI>
</dat:column>
<dat:column columnName="effectiveDate">
<dat:rangeURI>dateTime</dat:rangeURI>
</dat:column>
<dat:column columnName="emergencyPhoneNumber">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="currentState">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="ownerId">
<dat:rangeURI>int</dat:rangeURI>
</dat:column>
<dat:column columnName="userReferenceNumber">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="isUnrestrictedView">
<dat:rangeURI>boolean</dat:rangeURI>
</dat:column>
<dat:column columnName="isAudit">
<dat:column columnName="exemptFood">
<dat:rangeURI>boolean</dat:rangeURI>
</dat:column>
<dat:column columnName="isAuditModified">
<dat:column columnName="exemptHousing">
<dat:rangeURI>boolean</dat:rangeURI>
</dat:column>
<dat:column columnName="protocolTypeId">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="parentProtocolId">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="questionnaireId">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="amendmentReason">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="protocolCategoryId">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="objective">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="rationale">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
<dat:column columnName="isTissueHarvest">
<dat:rangeURI>boolean</dat:rangeURI>
</dat:column>
<dat:column columnName="isOrderTracking">
<dat:rangeURI>boolean</dat:rangeURI>
</dat:column>
<dat:column columnName="isLongTerm">
<dat:rangeURI>boolean</dat:rangeURI>
</dat:column>
<dat:column columnName="isInVivo">
<dat:column columnName="exemptPairing">
<dat:rangeURI>boolean</dat:rangeURI>
</dat:column>
<dat:column columnName="isStock">
<dat:rangeURI>boolean</dat:rangeURI>
</dat:column>
<dat:column columnName="isHonorReset">
<dat:rangeURI>boolean</dat:rangeURI>
</dat:column>
<dat:column columnName="area">
<dat:rangeURI>string</dat:rangeURI>
</dat:column>
</dat:columns>
</table>
</template>

<template xsi:type="EHRTemplateType">
<table tableName="protocol_counts" tableDbType="TABLE">
<dat:columns>
<dat:column columnName="Euthanasia">
<dat:rangeURI>int</dat:rangeURI>
</dat:column>
</dat:columns>
</table>
</template>
Expand Down
26 changes: 26 additions & 0 deletions nbri_ehr/resources/queries/ehr/investigators.query.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<query xmlns="http://labkey.org/data/xml/query">
<metadata>
<tables xmlns="http://labkey.org/data/xml">
<table tableName="investigators" tableDbType="TABLE">
<tableTitle>Investigators</tableTitle>
<insertUrl />
<importUrl />
<updateUrl />
<deleteUrl />
<columns>
<column columnName="lastName">
<columnTitle>Last Name</columnTitle>
<required>true</required>
</column>
<column columnName="firstName">
<columnTitle>First Name</columnTitle>
</column>
<column columnName="userid">
<columnTitle>User</columnTitle>
<conceptURI>http://www.labkey.org/types#userId</conceptURI>
</column>
</columns>
</table>
</tables>
</metadata>
</query>
8 changes: 4 additions & 4 deletions nbri_ehr/resources/queries/ehr/project.query.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@
<isHidden>true</isHidden>
<!-- lookup needed even though the column is hidden: EHR's project field selects investigatorId/lastName -->
<fk>
<fkDbSchema>core</fkDbSchema>
<fkTable>Users</fkTable>
<fkColumnName>UserId</fkColumnName>
<fkDisplayColumnName>DisplayName</fkDisplayColumnName>
<fkDbSchema>ehr</fkDbSchema>
<fkTable>investigators</fkTable>
<fkColumnName>rowid</fkColumnName>
<fkDisplayColumnName>lastName</fkDisplayColumnName>
</fk>
</column>
<column columnName="inves2">
Expand Down
73 changes: 5 additions & 68 deletions nbri_ehr/resources/queries/ehr/protocol.query.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,83 +9,20 @@
<columnTitle>PI</columnTitle>
<isHidden>false</isHidden>
<fk>
<fkDbSchema>core</fkDbSchema>
<fkTable>Users</fkTable>
<fkColumnName>UserId</fkColumnName>
<fkDisplayColumnName>DisplayName</fkDisplayColumnName>
<fkDbSchema>ehr</fkDbSchema>
<fkTable>investigators</fkTable>
<fkColumnName>rowid</fkColumnName>
<fkDisplayColumnName>lastName</fkDisplayColumnName>
</fk>
</column>
<column columnName="inves">
<isHidden>true</isHidden>
</column>
<column columnName="AuthorId">
<columnTitle>Author</columnTitle>
<fk>
<fkDbSchema>core</fkDbSchema>
<fkTable>Users</fkTable>
<fkColumnName>UserId</fkColumnName>
<fkDisplayColumnName>DisplayName</fkDisplayColumnName>
</fk>
</column>
<column columnName="OwnerId">
<columnTitle>Owner</columnTitle>
<fk>
<fkDbSchema>core</fkDbSchema>
<fkTable>Users</fkTable>
<fkColumnName>UserId</fkColumnName>
<fkDisplayColumnName>DisplayName</fkDisplayColumnName>
</fk>
</column>
<column columnName="ProtocolTypeId">
<columnTitle>Protocol Type</columnTitle>
<fk>
<fkDbSchema>ehr_lookups</fkDbSchema>
<fkTable>protocol_type</fkTable>
<fkColumnName>value</fkColumnName>
<fkDisplayColumnName>title</fkDisplayColumnName>
</fk>
</column>
<column columnName="ProtocolCategoryId">
<columnTitle>Protocol Category</columnTitle>
<fk>
<fkDbSchema>ehr_lookups</fkDbSchema>
<fkTable>protocol_category</fkTable>
<fkColumnName>value</fkColumnName>
<fkDisplayColumnName>title</fkDisplayColumnName>
</fk>
</column>
<column columnName="CurrentState">
<columnTitle>Current State</columnTitle>
<fk>
<fkDbSchema>ehr_lookups</fkDbSchema>
<fkTable>protocol_state</fkTable>
<fkColumnName>value</fkColumnName>
<fkDisplayColumnName>title</fkDisplayColumnName>
</fk>
</column>
<column columnName="ParentProtocolId">
<columnTitle>Parent Protocol</columnTitle>
<fk>
<fkDbSchema>ehr</fkDbSchema>
<fkTable>protocol</fkTable>
<fkColumnName>protocol</fkColumnName>
<fkDisplayColumnName>displayName</fkDisplayColumnName>
</fk>
</column>
<column columnName="QuestionnaireId">
<columnTitle>Questionnaire</columnTitle>
<fk>
<fkDbSchema>ehr_lookups</fkDbSchema>
<fkTable>questionnaire</fkTable>
<fkColumnName>value</fkColumnName>
<fkDisplayColumnName>title</fkDisplayColumnName>
</fk>
</column>
<column columnName="Approve">
<columnTitle>Approval Date</columnTitle>
</column>
</columns>
</table>
</tables>
</metadata>
</query>
</query>
34 changes: 4 additions & 30 deletions nbri_ehr/resources/queries/ehr/protocol/.qview.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,40 +2,14 @@
<columns>
<column name="protocol"/>
<column name="title"/>
<column name="shortDescription"/>
<column name="description"/>
<column name="prefix"/>
<column name="suffix"/>
<column name="investigatorId"/>
<column name="authorId"/>
<column name="ownerId"/>
<column name="approve"/>
<column name="endDate"/>
<column name="renewalDate"/>
<column name="nextReviewDate"/>
<column name="inactiveDate"/>
<column name="requestedEffectiveDate"/>
<column name="submissionDate"/>
<column name="reviewCompletionDate"/>
<column name="effectiveDate"/>
<column name="currentState"/>
<column name="protocolTypeId"/>
<column name="protocolCategory"/>
<column name="parentProtocolId"/>
<column name="departmentId"/>
<column name="emergencyPhoneNumber"/>
<column name="userReferenceNumber"/>
<column name="questionnaire"/>
<column name="amendmentReason"/>
<column name="objective"/>
<column name="rationale"/>
<column name="isTissueHarvest"/>
<column name="isOrderTracking"/>
<column name="isLongTerm"/>
<column name="isInVivo"/>
<column name="isStock"/>
<column name="isHonorReset"/>
<column name="exemptFood"/>
<column name="exemptHousing"/>
<column name="exemptPairing"/>
<column name="displayName"/>
<column name="isActive"/>
</columns>
</customView>
</customView>
9 changes: 0 additions & 9 deletions nbri_ehr/resources/queries/ehr/protocol_counts.query.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,6 @@
<fkDisplayColumnName>scientific_name</fkDisplayColumnName>
</fk>
</column>
<column columnName="euthanasia">
<columnTitle>Euthanasia</columnTitle>
<fk>
<fkDbSchema>ehr_lookups</fkDbSchema>
<fkTable>euthanasia_type</fkTable>
<fkColumnName>value</fkColumnName>
<fkDisplayColumnName>title</fkDisplayColumnName>
</fk>
</column>
</columns>
</table>
</tables>
Expand Down
2 changes: 1 addition & 1 deletion nbri_ehr/resources/queries/study/activeAssignments.sql
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
SELECT pa.Id,
pa.protocol.title AS protocolTitle,
pa.protocol.InvestigatorId AS investigatorId,
pa.protocol.InvestigatorId.DisplayName AS investigatorName,
initcap(pa.protocol.InvestigatorId.FirstName) || ' ' || initcap(pa.protocol.InvestigatorId.LastName) AS investigatorName,
pa.protocol.InvestigatorId.LastName AS investigatorLastName,
a.project.name AS project,
a.isActive AS isActiveAssignment,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<query xmlns="http://labkey.org/data/xml/query">
<metadata>
<tables xmlns="http://labkey.org/data/xml">
<table tableName="animalGroupHousingSummary" tableDbType="TABLE">
<tableTitle>Animal Groups Housing Summary</tableTitle>
<columns>
<column columnName="totalAnimals">
<columnTitle>Total Animals</columnTitle>
<url>/query/executeQuery.view?schemaName=study&amp;query.queryName=demographics&amp;query.id/curLocation/room~eq=${room}&amp;query.id/activeAnimalGroups/groups~contains=${groupId/title}</url>
</column>
</columns>
</table>
</tables>
</metadata>
</query>
13 changes: 13 additions & 0 deletions nbri_ehr/resources/queries/study/animalGroupHousingSummary.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/*
* Copyright (c) 2026 LabKey Corporation
*
* Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
*/
SELECT
m.groupId,
m.id.curLocation.room,
count(distinct m.id) as totalAnimals

FROM study.animal_group_members m
WHERE m.isActive = true
GROUP BY m.groupId, m.id.curLocation.room
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<query xmlns="http://labkey.org/data/xml/query">
<metadata>
<tables xmlns="http://labkey.org/data/xml">
<table tableName="animalGroupOverlapSummary" tableDbType="TABLE">
<tableTitle>Animal Group Member Summary</tableTitle>
<description>This query identifies the total distinct animals that were part of a group over the provided date range</description>
<columns>
<column columnName="totalAnimals">
<url>/query/executeQuery.view?schemaName=study&amp;query.queryName=animalGroupOverlaps&amp;query.param.StartDate=${StartDate}&amp;query.param.EndDate=${EndDate}&amp;query.groupId/title~eq=${groupId/title}</url>
<columnTitle>Total Animals</columnTitle>
</column>
<column columnName="startDate">
<isHidden>true</isHidden>
</column>
<column columnName="endDate">
<isHidden>true</isHidden>
</column>
</columns>
</table>
</tables>
</metadata>
</query>
Loading
Loading