Skip to content
Open
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<query xmlns="http://labkey.org/data/xml/query">
<metadata>
<tables xmlns="http://labkey.org/data/xml">
<table tableName="vet_assignment_InvalidRule" tableDbType="NOT_IN_DB">
<tableTitle>Invalid Vet Assignment Rules</tableTitle>
</table>
</tables>
</metadata>
</query>
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/*
* Copyright (c) 2014-2026 LabKey Corporation
*
* Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
*/

WITH ruleData AS (
SELECT
rowid,
CASE
WHEN (userId IS NOT NULL AND Room IS NOT NULL AND Area IS NULL AND Project IS NULL AND Protocol IS NULL AND Priority = true) THEN 1
WHEN (userId IS NOT NULL AND Area IS NOT NULL AND Room IS NULL AND Project IS NULL AND Protocol IS NULL AND Priority = true) THEN 1
WHEN (userId IS NOT NULL AND Project IS NOT NULL AND Room IS NOT NULL AND Area IS NULL AND Protocol IS NULL AND Priority = true) THEN 1
WHEN (userId IS NOT NULL AND Project IS NOT NULL AND Room IS NOT NULL AND Area IS NULL AND Protocol IS NULL AND Priority = false) THEN 1
WHEN (userId IS NOT NULL AND Project IS NOT NULL AND Area IS NOT NULL AND Room IS NULL AND Protocol IS NULL AND Priority = true) THEN 1
WHEN (userId IS NOT NULL AND Project IS NOT NULL AND Area IS NOT NULL AND Room IS NULL AND Protocol IS NULL AND Priority = false) THEN 1
WHEN (userId IS NOT NULL AND Project IS NOT NULL AND Area IS NULL AND Room IS NULL AND Protocol IS NULL AND Priority = true) THEN 1
WHEN (userId IS NOT NULL AND Project IS NOT NULL AND Area IS NULL AND Room IS NULL AND Protocol IS NULL AND Priority = false) THEN 1
WHEN (userId IS NOT NULL AND Protocol.DisplayName IS NOT NULL AND Room IS NOT NULL AND Area IS NULL AND Project IS NULL AND Priority = true) THEN 1
WHEN (userId IS NOT NULL AND Protocol.DisplayName IS NOT NULL AND Area IS NOT NULL AND Room IS NULL AND Project IS NULL AND Priority = true) THEN 1
WHEN (userId IS NOT NULL AND Protocol.DisplayName IS NOT NULL AND Room IS NOT NULL AND Area IS NULL AND Project IS NULL AND Priority = false) THEN 1
WHEN (userId IS NOT NULL AND Protocol.DisplayName IS NOT NULL AND Area IS NOT NULL AND Room IS NULL AND Project IS NULL AND Priority = false) THEN 1
WHEN (userId IS NOT NULL AND Protocol.DisplayName IS NOT NULL AND Area IS NULL AND Room IS NULL AND Project IS NULL AND Priority = true) THEN 1
WHEN (userId IS NOT NULL AND Protocol.DisplayName IS NOT NULL AND Area IS NULL AND Room IS NULL AND Project IS NULL AND Priority = false) THEN 1
WHEN (userId IS NOT NULL AND Room IS NOT NULL AND Area IS NULL AND Protocol IS NULL AND Project IS NULL AND Priority = false) THEN 1
WHEN (userId IS NOT NULL AND Area IS NOT NULL AND Room IS NULL AND Protocol IS NULL AND Project IS NULL AND Priority = false) THEN 1
ELSE 0
END AS valid
FROM onprc_ehr.vet_assignment
)
SELECT
userId,
project,
protocol,
area,
room,
priority
FROM onprc_ehr.vet_assignment
WHERE rowid IN (SELECT rowid FROM ruleData WHERE valid = 0)
5 changes: 5 additions & 0 deletions onprc_ehr/resources/queries/study/demographicsAssignedVet.sql
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
/*
* Copyright (c) 2014-2026 LabKey Corporation
*
* Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
*/
/*
study.demographicsAssignedVet

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<query xmlns="http://labkey.org/data/xml/query">
<metadata>
<tables xmlns="http://labkey.org/data/xml">
<table tableName="observationsLinkedToAnotherAnimalsCase" tableDbType="NOT_IN_DB">
<tableTitle>Observations Linked to Another Animal's Case</tableTitle>
</table>
</tables>
</metadata>
</query>
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
WITH Observations AS (
SELECT
o.Id,
o.caseid,
o.caseid.id.id AS linkid,
o.caseid.caseNo AS linkCaseNo,
o.caseid._key AS linkCaseKey,
o.caseid.date AS linkCaseDate,
o.taskid,
o.performedby,
o.date,
o.created,

NULLIF(o.category, 'Observations') AS category,
NULLIF(o.area, 'N/A') AS area,

CASE
WHEN o.category IS NULL AND o.observation IS NOT NULL
THEN o.observation
WHEN o.category IS NOT NULL AND o.observation IS NULL
THEN o.category
WHEN o.category IS NOT NULL AND o.area IS NULL
THEN (o.category || ': ' || o.observation)
WHEN o.category IS NOT NULL AND o.area IS NOT NULL
THEN (o.category || ': ' || o.area || ', ' || o.observation)
ELSE NULL
END
||
COALESCE(
CASE
WHEN o.remark IS NOT NULL AND o.observation IS NOT NULL
THEN ('. ' || o.remark)
ELSE o.remark
END,
''
) AS observation_string
FROM study.clinical_observations o
WHERE
o.caseid IS NOT NULL
AND o.category NOT IN ('Vet Review', 'Reviewed')
AND o.id <> o.caseid.id.id -- MUCH faster than NOT LIKE
),

AggregatedObservations AS (
SELECT
Id,
caseid,
linkid,
linkCaseNo,
linkCaseKey,
linkCaseDate,
taskid,
performedby,
date,
MIN(created) AS created,
GROUP_CONCAT(
CAST(observation_string AS VARCHAR(1000)),
'; '
) AS observations
FROM Observations
GROUP BY
Id,
caseid,
linkid,
linkCaseNo,
linkCaseKey,
linkCaseDate,
taskid,
performedby,
date
),

AnimalCases AS (
SELECT
ao.*,
c.category,
c.caseNo,
c.objectId AS key
FROM AggregatedObservations ao
LEFT JOIN study.cases c
ON c.Id = ao.Id
AND ao.created >= c.date
AND (ao.created <= c.enddate OR c.enddate IS NULL)
)

SELECT
Id AS ObsAnimalId,
date,
created,
observations,
taskid,
performedby,
linkid AS LinkedCaseAnimalId,
caseid AS linkedCaseCategory,
linkCaseNo,
linkCaseKey,
linkCaseDate,
GROUP_CONCAT(category, ', ') AS openCasesAtObsCreation,
GROUP_CONCAT(caseNo, ', ') AS openCaseNosAtObsCreation,
GROUP_CONCAT(key, ', ') AS openCaseKeysAtObsCreation
FROM AnimalCases
GROUP BY
Id,
date,
created,
observations,
taskid,
performedby,
linkid,
caseid,
linkCaseNo,
linkCaseKey,
linkCaseDate
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<query xmlns="http://labkey.org/data/xml/query">
<metadata>
<tables xmlns="http://labkey.org/data/xml">
<table tableName="vetAssignment_multipleVets" tableDbType="NOT_IN_DB">
<tableTitle>NHPs With Multiple Assigned Vets</tableTitle>
</table>
</tables>
</metadata>
</query>
25 changes: 25 additions & 0 deletions onprc_ehr/resources/queries/study/vetAssignment_multipleVets.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/*
* Copyright (c) 2014-2026 LabKey Corporation
*
* Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
*/

WITH assignmentData AS (
SELECT DISTINCT
Id,
Area,
Room,
CASE
WHEN AssignmentType = 'Open Case' THEN (AssignedVet || ', Open Case: ' || COALESCE(MasterProblems, ''))
ELSE (AssignedVet || ', ' || AssignmentType)
END AS assignment
FROM demographicsAssignedVet
)
SELECT
Id,
Area,
Room,
GROUP_CONCAT(assignment, chr(10)) AS Vets
FROM assignmentData
GROUP BY Id, Area, Room
HAVING COUNT(*) > 1
5 changes: 5 additions & 0 deletions onprc_ehr/resources/queries/study/vetassignment_filter.sql
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
/*
* Copyright (c) 2014-2026 LabKey Corporation
*
* Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
*/
/*
study.vetAssignment_filter

Expand Down