Skip to content

Commit f392bfe

Browse files
Merge 25.7 to 25.8
2 parents 3876e45 + 4f43534 commit f392bfe

3 files changed

Lines changed: 78 additions & 57 deletions

File tree

onprc_ehr/resources/data/reports.tsv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ tissueDistriutions Pathology query Tissue Distributions true study Tissue Distr
113113
#treatmentScheduleNight Daily Reports query Treatments - Evening true study treatmentSchedule Night Treatments date true false 6 qcstate/publicdata The report displays all treatments scheduled for today
114114
#treatmentSchedule Daily Reports query Treatments - Master true study treatmentSchedule date true false 7 qcstate/publicdata The report displays all treatments scheduled for today
115115
cases Daily Reports query Active Clinical Cases true study Cases Active Clinical Cases date false false qcstate/publicdata This displays active clinical cases
116-
behaviorCases Behavior query Behavior Cases true study cases Open Behavior Cases date false false qcstate/publicdata This displays active behavior cases
116+
behaviorCases Behavior query Behavior Cases true study mostRecentCasesBehavior Open Behavior Cases date false false qcstate/publicdata This displays active behavior cases
117117
#enrichment Behavior query Enrichment true study Enrichment date false false qcstate/publicdata
118118
surgicalCases Daily Reports query Active Surgery Cases true study Cases Active Surgery Cases date false false qcstate/publicdata This displays active surgery cases
119119
surgeryCasesClosedToday Surgery js Surgery Cases Closed Today true study surgeryCasesClosedToday date false false qcstate/publicdata This displays surgery cases closed today
Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
11

22
--- Created: 8-23-2018 R.Blasa
3-
select a.id,a.date,a.reviewdate,
4-
a.isactive,
5-
a.allproblemcategories,
6-
a.caseHistory,
7-
a.isopen,
8-
b.observations
9-
from study.cases a, mostrecentobservationsforcase b
10-
where a.id = b.id
11-
and a.objectid = b.caseid
12-
and a.category = 'Behavior'
3+
-- Converted to a left join to allow cases to appear even though the most recent observation is linked to
4+
-- another animal's case. See EHR Issue 12144: Behavior cases not showing.
5+
SELECT
6+
c.Id,
7+
c.date,
8+
c.reviewDate,
9+
c.isActive,
10+
c.allProblemCategories,
11+
c.caseHistory,
12+
c.isOpen,
13+
c.objectId,
14+
o.observations
15+
FROM study.cases AS c
16+
LEFT JOIN study.mostRecentObservationsForCase AS o
17+
ON c.Id = o.Id
18+
AND c.objectId = o.caseId
19+
WHERE c.category = 'Behavior'

onprc_ehr/resources/queries/study/mostRecentObservationsForCase.sql

Lines changed: 60 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -13,50 +13,64 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16+
WITH LatestObservationDates AS (
17+
SELECT
18+
Id,
19+
caseid,
20+
MAX(date) AS latest_date
21+
FROM study.clinical_observations
22+
WHERE caseid IS NOT NULL
23+
AND category NOT IN ('Vet Review', 'Reviewed')
24+
GROUP BY Id, caseid
25+
),
26+
FilteredObservations AS (
27+
SELECT
28+
o.Id,
29+
o.caseid,
30+
o.date,
31+
CASE WHEN o.category <> 'Observations' THEN o.category END AS category,
32+
NULLIF(o.area, 'N/A') AS area,
33+
o.observation,
34+
COALESCE(
35+
CASE WHEN o.remark IS NOT NULL AND o.observation IS NOT NULL
36+
THEN ('. ' || o.remark )
37+
ELSE o.remark
38+
END,
39+
''
40+
) AS remark
41+
FROM study.clinical_observations o
42+
WHERE o.caseid IS NOT NULL
43+
AND o.category NOT IN ('Vet Review', 'Reviewed')
44+
),
45+
ObservationStrings AS (
46+
SELECT
47+
fo.Id,
48+
fo.caseid,
49+
fo.date,
50+
CASE
51+
WHEN fo.category IS NULL AND fo.observation IS NOT NULL
52+
THEN (fo.observation || '. ' || fo.remark)
53+
WHEN fo.category IS NOT NULL AND fo.observation IS NULL
54+
THEN (fo.category || fo.remark)
55+
WHEN fo.category IS NOT NULL AND fo.area IS NULL
56+
THEN (fo.category || ': ' || fo.observation || fo.remark)
57+
WHEN fo.category IS NOT NULL AND fo.area IS NOT NULL
58+
THEN (fo.category || ': ' || fo.area || ', ' || fo.observation)
59+
ELSE fo.remark
60+
END AS observation_string
61+
FROM FilteredObservations fo
62+
INNER JOIN LatestObservationDates lod
63+
ON fo.Id = lod.Id
64+
AND fo.caseid = lod.caseid
65+
AND fo.date = lod.latest_date
66+
)
1667
SELECT
17-
t.Id,
18-
t.caseid,
19-
max(t.date) as date,
20-
21-
GROUP_CONCAT(CASE
22-
WHEN (t.category IS NOT NULL AND t.area IS NULL AND t.observation IS NOT NULL) THEN cast((t.category || ': ' || t.observation || t.remark) as varchar(1000))
23-
WHEN (t.category IS NOT NULL AND t.area IS NOT NULL AND t.observation IS NOT NULL) THEN cast((t.category || ': ' || t.area || ', ' || t.observation) as varchar(1000))
24-
WHEN (t.category IS NOT NULL AND t.observation IS NULL) THEN cast((t.category || t.remark) as varchar(1000))
25-
WHEN (t.category IS NULL AND t.observation IS NOT NULL) THEN cast((t.observation || t.remark) as varchar(1000))
26-
else t.remark
27-
END, chr(10)) as observations
28-
29-
FROM (SELECT
30-
o.Id,
31-
o.caseid,
32-
o.date,
33-
CASE
34-
WHEN o.category = 'Observations' THEN null
35-
ELSE o.category
36-
END as category,
37-
CASE
38-
WHEN o.area = 'N/A' THEN null
39-
ELSE o.area
40-
END as area,
41-
o.observation,
42-
COALESCE(CASE
43-
WHEN (o.remark IS NOT NULL AND o.observation IS NOT NULL) THEN ('. ' || o.remark)
44-
ELSE o.remark
45-
END, '') as remark
46-
47-
FROM study.clinical_observations o
48-
JOIN (
49-
SELECT o2.Id, o2.caseid, max(o2.date) as date
50-
FROM study.clinical_observations o2
51-
WHERE o2.caseid IS NOT NULL
52-
AND o2.category != 'Vet Review'
53-
AND o2.category != 'Reviewed'
54-
GROUP BY o2.Id, o2.caseid
55-
) t ON (t.Id = o.Id AND t.caseid = o.caseid AND t.date = o.date)
56-
57-
WHERE o.caseid IS NOT NULL
58-
AND o.category != 'Vet Review'
59-
AND o.category != 'Reviewed'
60-
61-
) t
62-
GROUP BY t.Id, t.caseid
68+
Id,
69+
caseid,
70+
MAX(date) AS latest_date,
71+
GROUP_CONCAT(
72+
CAST(observation_string AS VARCHAR(1000)),
73+
CHAR(10)
74+
) AS observations
75+
FROM ObservationStrings
76+
GROUP BY Id, caseid

0 commit comments

Comments
 (0)