diff --git a/snprc_ehr/module.properties b/snprc_ehr/module.properties
index 260e34592..c6a614d81 100644
--- a/snprc_ehr/module.properties
+++ b/snprc_ehr/module.properties
@@ -1,5 +1,5 @@
ModuleClass: org.labkey.snprc_ehr.SNPRC_EHRModule
-SupportedDatabases: mssql
+SupportedDatabases: mssql, pgsql
ManageVersion: true
License: Apache 2.0
LicenseURL: http://www.apache.org/licenses/LICENSE-2.0
diff --git a/snprc_ehr/resources/queries/ehr/ProtocolLookup.sql b/snprc_ehr/resources/queries/ehr/ProtocolLookup.sql
index 48d86c4a4..924705eab 100644
--- a/snprc_ehr/resources/queries/ehr/ProtocolLookup.sql
+++ b/snprc_ehr/resources/queries/ehr/ProtocolLookup.sql
@@ -3,7 +3,7 @@ PARAMETERS
newAssignmentsParm INTEGER DEFAULT 1
)
SELECT p.protocol AS Iacuc,
- p.protocol + ' - ' + RTRIM(p.inves)+ ' -' + RTRIM(p.title) AS DisplayValue,
+ p.protocol || ' - ' || RTRIM(p.inves) || ' -' || RTRIM(p.title) AS DisplayValue,
RIGHT(p.protocol, 2) AS Species,
p.project_type as ProjectType,
p.sequenceNumber as SequenceNumber,
diff --git a/snprc_ehr/resources/queries/ehr_lookups/AcquisitionTypesLookup.sql b/snprc_ehr/resources/queries/ehr_lookups/AcquisitionTypesLookup.sql
index 1469b0586..a784a809e 100644
--- a/snprc_ehr/resources/queries/ehr_lookups/AcquisitionTypesLookup.sql
+++ b/snprc_ehr/resources/queries/ehr_lookups/AcquisitionTypesLookup.sql
@@ -1,6 +1,6 @@
SELECT a.value as AcqCode,
a.category as Category,
- rtrim(a.value) + ' - ' + a.description as DisplayValue,
+ rtrim(a.value) || ' - ' || a.description as DisplayValue,
a.sort_order as SortOrder
from ehr_lookups.AcquisitionType as a
where a.date_disabled is null
diff --git a/snprc_ehr/resources/queries/ehr_lookups/AgeClassRanges.sql b/snprc_ehr/resources/queries/ehr_lookups/AgeClassRanges.sql
index 80aca8df9..6b486169e 100644
--- a/snprc_ehr/resources/queries/ehr_lookups/AgeClassRanges.sql
+++ b/snprc_ehr/resources/queries/ehr_lookups/AgeClassRanges.sql
@@ -20,13 +20,13 @@ SELECT
-- please excuse the ugly formatting - A sql server convert function would be helpful here!
case when (age."max" is NULL and age.label = 'Senior') then
- (CAST(age."min" as VARCHAR(5) ) + case when (age."min"- truncate(age."min", 0) > 0) then '' else '.0 - ' end)
+ (CAST(age."min" as VARCHAR(5) ) || case when (age."min"- FLOOR(age."min") > 0) then '' else '.0 - ' end)
ELSE
- (CAST(age."min" as VARCHAR(5)) +
- + case when (age."min"- truncate(age."min", 0) > 0) then ' - ' else '.0 - ' end
+ (CAST(age."min" as VARCHAR(5)) ||
+ case when (age."min"- FLOOR(age."min") > 0) then ' - ' else '.0 - ' end
- + CAST(age."max" as varchar(5))
- + case when (age."max"- truncate(age."max", 0) > 0) then '' else '.0' end )
+ || CAST(age."max" as varchar(5))
+ || case when (age."max"- FLOOR(age."max") > 0) then '' else '.0' end )
END AS ageRange,
age.gender
diff --git a/snprc_ehr/resources/queries/snprcApath/apath_encounters.sql b/snprc_ehr/resources/queries/snprcApath/apath_encounters.sql
index 92d309e0a..2e981c884 100644
--- a/snprc_ehr/resources/queries/snprcApath/apath_encounters.sql
+++ b/snprc_ehr/resources/queries/snprcApath/apath_encounters.sql
@@ -29,11 +29,11 @@ ELSE 'Completed'
END AS QCStateLabel,
CASE
-WHEN a.tissue IS NOT NULL THEN (a.tissue + '-' + b.description)
+WHEN a.tissue IS NOT NULL THEN (a.tissue || '-' || b.description)
ELSE b.description
END AS title
FROM snprcApath.apath a INNER JOIN snprcApath.valid_accession_codes b ON a.accession_code = b.accession_code
INNER JOIN snprcApath.valid_record_status d ON a.record_status = d.record_status
-WHERE a.animal_id IS NOT NULL AND COALESCE(a.biopsy, a.death) IS NOT NULL AND b.description IS NOT NULL
\ No newline at end of file
+WHERE a.animal_id IS NOT NULL AND COALESCE(a.biopsy, a.death) IS NOT NULL AND b.description IS NOT NULL
diff --git a/snprc_ehr/resources/queries/snprc_ehr/AccountLookup.sql b/snprc_ehr/resources/queries/snprc_ehr/AccountLookup.sql
index 15cb83ea3..ab6072d34 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/AccountLookup.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/AccountLookup.sql
@@ -4,7 +4,7 @@ SELECT a.accountGroup AS AccountGroup,
a.account AS Account,
a.date AS StartDate,
a.description AS Description,
- a.account + ' - ' + rtrim(a.description) as DisplayValue
+ a.account || ' - ' || rtrim(a.description) as DisplayValue
FROM snprc_ehr.validAccounts AS a
where enddate is null and a.account <> '0000-000-00'
diff --git a/snprc_ehr/resources/queries/snprc_ehr/CurrentSpeciesLookup.sql b/snprc_ehr/resources/queries/snprc_ehr/CurrentSpeciesLookup.sql
index 1df1f979c..284887112 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/CurrentSpeciesLookup.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/CurrentSpeciesLookup.sql
@@ -1,6 +1,6 @@
SELECT DISTINCT s.species_code as SpeciesCode,
rtrim(sc.common_name) as CommonName,
- s.species_code + ' (' + rtrim(s.arc_species_code) + ') - ' + rtrim(s.scientific_name) + '/'+ rtrim(sc.common_name) as DisplayColumn,
+ s.species_code || ' (' || rtrim(s.arc_species_code) || ') - ' || rtrim(s.scientific_name) || '/' || rtrim(sc.common_name) as DisplayColumn,
s.scientific_name as ScientificName,
s.arc_species_code as arcSpeciesCode
FROM snprc_ehr.species AS s
diff --git a/snprc_ehr/resources/queries/snprc_ehr/ExportSndLookupSets.sql b/snprc_ehr/resources/queries/snprc_ehr/ExportSndLookupSets.sql
index 0e545f3c7..68d6f0142 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/ExportSndLookupSets.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/ExportSndLookupSets.sql
@@ -2,9 +2,9 @@ SELECT
SetName as LOOKUP_KEY,
ObjectId as OBJECT_ID,
LEFT(s.Email,
- CASE WHEN charindex('@', s.Email) = 0
- THEN LEN(s.Email)
- ELSE (charindex('@', s.Email) - 1) END) as USER_NAME,
+ CASE WHEN LOCATE('@', s.Email) = 0
+ THEN LENGTH(s.Email)
+ ELSE (LOCATE('@', s.Email) - 1) END) as USER_NAME,
ls.Modified as ENTRY_DATE_TM
FROM
snd.LookupSets ls
diff --git a/snprc_ehr/resources/queries/snprc_ehr/ExportSndLookups.sql b/snprc_ehr/resources/queries/snprc_ehr/ExportSndLookups.sql
index 384cd38f2..ca4902739 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/ExportSndLookups.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/ExportSndLookups.sql
@@ -3,14 +3,14 @@ SELECT
ls.SetName as LOOKUP_KEY,
Value as VALUE,
CASE
- WHEN l.Displayable = 0 THEN 'Y' ELSE 'N' END as IS_HIDDEN,
+ WHEN l.Displayable = false THEN 'Y' ELSE 'N' END as IS_HIDDEN,
l.SortOrder as ORDER_NUM,
l.ObjectId as OBJECT_ID,
'N' as DEFAULT_FLAG,
LEFT(s.Email,
- CASE WHEN charindex('@', s.Email) = 0
- THEN LEN(s.Email)
- ELSE (charindex('@', s.Email) - 1) END) as USER_NAME,
+ CASE WHEN LOCATE('@', s.Email) = 0
+ THEN LENGTH(s.Email)
+ ELSE (LOCATE('@', s.Email) - 1) END) as USER_NAME,
l.Modified as ENTRY_DATE_TM
FROM
snd.Lookups l
diff --git a/snprc_ehr/resources/queries/snprc_ehr/FeeScheduleActivityIdLookup.sql b/snprc_ehr/resources/queries/snprc_ehr/FeeScheduleActivityIdLookup.sql
index 882a95fc6..00dc0fbeb 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/FeeScheduleActivityIdLookup.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/FeeScheduleActivityIdLookup.sql
@@ -15,12 +15,13 @@
*/
SELECT
fs.ActivityId,
- cast(fs.ActivityId as VARCHAR(5)) + ' - ' + fs.Description as description
+ cast(fs.ActivityId as VARCHAR(5)) || ' - ' || fs.Description as description
FROM snprc_ehr.FeeSchedule AS fs
WHERE fs.StartingYear = YEAR(NOW())
-AND fs.BudgetYear = YEAR(NOW())
+-- BudgetYear is VARCHAR in the schema; Postgres won't implicitly compare it to a numeric, so cast.
+AND fs.BudgetYear = CAST(YEAR(NOW()) AS VARCHAR)
AND fs.VersionLabel = 'Capped Fee Schedule'
AND fs.ActivityId between 4000 and 4999
-order by ActivityId
\ No newline at end of file
+order by ActivityId
diff --git a/snprc_ehr/resources/queries/snprc_ehr/HL7BiochemistryPivot.sql b/snprc_ehr/resources/queries/snprc_ehr/HL7BiochemistryPivot.sql
index de3a70914..5c6708980 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/HL7BiochemistryPivot.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/HL7BiochemistryPivot.sql
@@ -12,7 +12,7 @@ SELECT
FROM snprc_ehr.HL7_OBR obr
LEFT OUTER JOIN snprc_ehr.HL7_OBX obx ON obr.OBJECT_ID = obx.OBR_OBJECT_ID AND obr.SET_ID = obx.OBR_SET_ID
- LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = lp.ServiceId
+ LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = CAST(lp.ServiceId AS VARCHAR)
LEFT OUTER JOIN snprc_ehr.HL7_GroupNTE AS nte ON obr.OBJECT_ID = nte.OBR_OBJECT_ID AND obr.SET_ID = nte.OBR_SET_ID
WHERE obr.PROCEDURE_ID.Dataset = 'Biochemistry'
diff --git a/snprc_ehr/resources/queries/snprc_ehr/HL7CulturePivot.sql b/snprc_ehr/resources/queries/snprc_ehr/HL7CulturePivot.sql
index 07d6a6bf4..f720f8454 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/HL7CulturePivot.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/HL7CulturePivot.sql
@@ -12,7 +12,7 @@ SELECT
FROM snprc_ehr.HL7_OBR obr
LEFT OUTER JOIN snprc_ehr.HL7_OBX obx ON obr.OBJECT_ID = obx.OBR_OBJECT_ID AND obr.SET_ID = obx.OBR_SET_ID
- LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = lp.ServiceId
+ LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = CAST(lp.ServiceId AS VARCHAR)
LEFT OUTER JOIN snprc_ehr.HL7_GroupNTE AS nte ON obr.OBJECT_ID = nte.OBR_OBJECT_ID AND obr.SET_ID = nte.OBR_SET_ID
WHERE obr.PROCEDURE_ID.Dataset = 'Culture'
diff --git a/snprc_ehr/resources/queries/snprc_ehr/HL7HematologyPivot.sql b/snprc_ehr/resources/queries/snprc_ehr/HL7HematologyPivot.sql
index e85632f99..d775bfe7d 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/HL7HematologyPivot.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/HL7HematologyPivot.sql
@@ -12,7 +12,7 @@ SELECT
FROM snprc_ehr.HL7_OBR obr
LEFT OUTER JOIN snprc_ehr.HL7_OBX obx ON obr.OBJECT_ID = obx.OBR_OBJECT_ID AND obr.SET_ID = obx.OBR_SET_ID
- LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = lp.ServiceId
+ LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = CAST(lp.ServiceId AS VARCHAR)
LEFT OUTER JOIN snprc_ehr.HL7_GroupNTE AS nte ON obr.OBJECT_ID = nte.OBR_OBJECT_ID AND obr.SET_ID = nte.OBR_SET_ID
WHERE obr.PROCEDURE_ID.Dataset = 'Hematology'
diff --git a/snprc_ehr/resources/queries/snprc_ehr/HL7HistologyPivot.sql b/snprc_ehr/resources/queries/snprc_ehr/HL7HistologyPivot.sql
index 5158720ad..152a5ce59 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/HL7HistologyPivot.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/HL7HistologyPivot.sql
@@ -12,7 +12,7 @@ SELECT obr.ANIMAL_ID as id,
FROM snprc_ehr.HL7_OBR obr
LEFT OUTER JOIN snprc_ehr.HL7_OBX obx ON obr.OBJECT_ID = obx.OBR_OBJECT_ID AND obr.SET_ID = obx.OBR_SET_ID
LEFT OUTER JOIN snprc_ehr.HL7_GroupNTE AS nte ON obr.OBJECT_ID = nte.OBR_OBJECT_ID AND obr.SET_ID = nte.OBR_SET_ID
- LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = lp.ServiceId
+ LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = CAST(lp.ServiceId AS VARCHAR)
WHERE obr.PROCEDURE_ID.Dataset = 'Histology'
GROUP BY obr.ANIMAL_ID, obr.OBSERVATION_DATE_TM, obr.MESSAGE_ID, obr.PROCEDURE_NAME, obr.SET_ID, COALESCE (lp.ServiceId.ServiceName, obr.PROCEDURE_NAME), obr.PROCEDURE_ID, nte.COMMENT, COALESCE (lp.TestName, obx.TEST_NAME)
diff --git a/snprc_ehr/resources/queries/snprc_ehr/HL7MiscPivot.sql b/snprc_ehr/resources/queries/snprc_ehr/HL7MiscPivot.sql
index f80d03bf6..c14b3aa77 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/HL7MiscPivot.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/HL7MiscPivot.sql
@@ -12,7 +12,7 @@ SELECT obr.ANIMAL_ID as id,
FROM snprc_ehr.HL7_OBR obr
LEFT OUTER JOIN snprc_ehr.HL7_OBX obx ON obr.OBJECT_ID = obx.OBR_OBJECT_ID AND obr.SET_ID = obx.OBR_SET_ID
LEFT OUTER JOIN snprc_ehr.HL7_GroupNTE AS nte ON obr.OBJECT_ID = nte.OBR_OBJECT_ID AND obr.SET_ID = nte.OBR_SET_ID
- LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = lp.ServiceId
+ LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = CAST(lp.ServiceId AS VARCHAR)
WHERE obr.PROCEDURE_ID.Dataset = 'Misc Tests'
GROUP BY obr.ANIMAL_ID, obr.OBSERVATION_DATE_TM, obr.MESSAGE_ID, obr.PROCEDURE_NAME, obr.SET_ID, COALESCE (lp.ServiceId.ServiceName, obr.PROCEDURE_NAME), obr.PROCEDURE_ID, nte.COMMENT, COALESCE (lp.TestName, obx.TEST_NAME)
diff --git a/snprc_ehr/resources/queries/snprc_ehr/HL7ParasitologyPivot.sql b/snprc_ehr/resources/queries/snprc_ehr/HL7ParasitologyPivot.sql
index 7987d2e49..5a889cb84 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/HL7ParasitologyPivot.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/HL7ParasitologyPivot.sql
@@ -12,7 +12,7 @@ SELECT obr.ANIMAL_ID as id,
FROM snprc_ehr.HL7_OBR obr
LEFT OUTER JOIN snprc_ehr.HL7_OBX obx ON obr.OBJECT_ID = obx.OBR_OBJECT_ID AND obr.SET_ID = obx.OBR_SET_ID
LEFT OUTER JOIN snprc_ehr.HL7_GroupNTE AS nte ON obr.OBJECT_ID = nte.OBR_OBJECT_ID AND obr.SET_ID = nte.OBR_SET_ID
- LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = lp.ServiceId
+ LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = CAST(lp.ServiceId AS VARCHAR)
WHERE obr.PROCEDURE_ID.Dataset = 'Parasitology'
GROUP BY obr.ANIMAL_ID, obr.OBSERVATION_DATE_TM, obr.MESSAGE_ID, obr.PROCEDURE_NAME, obr.SET_ID, COALESCE (lp.ServiceId.ServiceName, obr.PROCEDURE_NAME), obr.PROCEDURE_ID, nte.COMMENT, COALESCE (lp.TestName, obx.TEST_NAME)
diff --git a/snprc_ehr/resources/queries/snprc_ehr/HL7SurveillancePivotInner.sql b/snprc_ehr/resources/queries/snprc_ehr/HL7SurveillancePivotInner.sql
index e25b11d69..79c079271 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/HL7SurveillancePivotInner.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/HL7SurveillancePivotInner.sql
@@ -12,7 +12,7 @@ SELECT
FROM snprc_ehr.HL7_OBR obr
LEFT OUTER JOIN snprc_ehr.HL7_OBX obx ON obr.OBJECT_ID = obx.OBR_OBJECT_ID AND obr.SET_ID = obx.OBR_SET_ID
LEFT OUTER JOIN snprc_ehr.HL7_GroupNTE nte ON obr.OBJECT_ID = nte.OBR_OBJECT_ID AND obr.SET_ID = nte.OBR_SET_ID
- LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = lp.ServiceId
+ LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = CAST(lp.ServiceId AS VARCHAR)
WHERE obr.PROCEDURE_ID.Dataset = 'Surveillance'
UNION
@@ -21,12 +21,14 @@ SELECT
b.id,
b.date,
b.serviceTestId.serviceId.ServiceName AS PROCEDURE_NAME,
- b.serviceTestId.serviceId AS PROCEDURE_ID,
+ -- HL7_OBR.PROCEDURE_ID is VARCHAR but labwork_services.ServiceId is INT; cast so the UNION types match on Postgres.
+ CAST(b.serviceTestId.serviceId AS VARCHAR) AS PROCEDURE_ID,
b.serviceTestId.testName AS TestName,
b.remark as COMMENT,
'' AS ABNORMAL_FLAGS,
b.qualresult as QUALITATIVE_RESULT,
- b.RESULT as RESULT
+ -- labworkTaqman.RESULT is DOUBLE but HL7_OBX.RESULT (first UNION branch) is TEXT; cast to VARCHAR so the UNION types match on Postgres.
+ CAST(b.RESULT AS VARCHAR) as RESULT
FROM study.labworkTaqman b
WHERE b.serviceTestId.includeInPanel = true and b.qcstate.publicdata = true and b.serviceTestid.ServiceId.Dataset = 'Surveillance'
@@ -36,11 +38,11 @@ SELECT
b.id,
b.date,
b.serviceTestId.serviceId.ServiceName AS PROCEDURE_NAME,
- b.serviceTestId.serviceId AS PROCEDURE_ID,
+ CAST(b.serviceTestId.serviceId AS VARCHAR) AS PROCEDURE_ID,
b.serviceTestId.testName AS TestName,
b.remark as COMMENT,
'' AS ABNORMAL_FLAGS,
b.qualresult as QUALITATIVE_RESULT,
- NULL as RESULT
+ CAST(NULL AS VARCHAR) as RESULT
FROM study.assay_labworkResults b
WHERE b.serviceTestId.includeInPanel = true and b.qcstate.publicdata = true and b.serviceTestid.ServiceId.Dataset = 'Surveillance'
\ No newline at end of file
diff --git a/snprc_ehr/resources/queries/snprc_ehr/HL7UnknownPivot.sql b/snprc_ehr/resources/queries/snprc_ehr/HL7UnknownPivot.sql
index c557fc0fb..b0e4d48be 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/HL7UnknownPivot.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/HL7UnknownPivot.sql
@@ -12,7 +12,7 @@ SELECT
FROM snprc_ehr.HL7_OBR obr
LEFT OUTER JOIN snprc_ehr.HL7_OBX obx ON obr.OBJECT_ID = obx.OBR_OBJECT_ID AND obr.SET_ID = obx.OBR_SET_ID
- LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = lp.ServiceId
+ LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = CAST(lp.ServiceId AS VARCHAR)
LEFT OUTER JOIN snprc_ehr.HL7_GroupNTE AS nte ON obr.OBJECT_ID = nte.OBR_OBJECT_ID AND obr.SET_ID = nte.OBR_SET_ID
WHERE obr.PROCEDURE_ID.Dataset = 'Unknown'
diff --git a/snprc_ehr/resources/queries/snprc_ehr/HL7UrinalysisPivot.sql b/snprc_ehr/resources/queries/snprc_ehr/HL7UrinalysisPivot.sql
index 0f20e91db..9c76e0687 100644
--- a/snprc_ehr/resources/queries/snprc_ehr/HL7UrinalysisPivot.sql
+++ b/snprc_ehr/resources/queries/snprc_ehr/HL7UrinalysisPivot.sql
@@ -12,7 +12,7 @@ SELECT
FROM snprc_ehr.HL7_OBR obr
LEFT OUTER JOIN snprc_ehr.HL7_OBX obx ON obr.OBJECT_ID = obx.OBR_OBJECT_ID AND obr.SET_ID = obx.OBR_SET_ID
- LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = lp.ServiceId
+ LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = CAST(lp.ServiceId AS VARCHAR)
LEFT OUTER JOIN snprc_ehr.HL7_GroupNTE AS nte ON obr.OBJECT_ID = nte.OBR_OBJECT_ID AND obr.SET_ID = nte.OBR_SET_ID
WHERE obr.PROCEDURE_ID.Dataset = 'Urinalysis'
diff --git a/snprc_ehr/resources/queries/study/DailyObs.sql b/snprc_ehr/resources/queries/study/DailyObs.sql
index c47ab407d..1c0afd323 100644
--- a/snprc_ehr/resources/queries/study/DailyObs.sql
+++ b/snprc_ehr/resources/queries/study/DailyObs.sql
@@ -29,34 +29,34 @@ SELECT o.Id,
CASE
WHEN o.SaNone = 'Y' THEN 'None'
ELSE ''
- END +
- CASE
+ END ||
+ CASE
WHEN o.SaUnknown = 'Y' THEN 'Unknown'
ELSE ''
- END +
- CASE WHEN o.SaNormal = 'Y' THEN 'Normal'
+ END ||
+ CASE WHEN o.SaNormal = 'Y' THEN 'Normal'
ELSE ''
- END +
+ END ||
CASE WHEN o.SaLoose = 'Y' THEN ' Loose'
- ELSE ''
- END +
+ ELSE ''
+ END ||
CASE WHEN o.SaSoft = 'Y' THEN ' Soft'
ELSE ''
- END +
- CASE WHEN o.SaWatery = 'Y' THEN ' Watery'
- ELSE ''
- END +
- CASE WHEN o.SaBloody = 'Y' THEN ' Bloody'
- ELSE ''
- END +
- CASE WHEN o.SaDry = 'Y' THEN ' Dry'
- ELSE ''
- END +
- CASE WHEN o.SaOther = 'Y' THEN ' Other'
- ELSE ''
- END +
- CASE WHEN o.SaPellet = 'Y' THEN ' Pellet'
- ELSE ''
+ END ||
+ CASE WHEN o.SaWatery = 'Y' THEN ' Watery'
+ ELSE ''
+ END ||
+ CASE WHEN o.SaBloody = 'Y' THEN ' Bloody'
+ ELSE ''
+ END ||
+ CASE WHEN o.SaDry = 'Y' THEN ' Dry'
+ ELSE ''
+ END ||
+ CASE WHEN o.SaOther = 'Y' THEN ' Other'
+ ELSE ''
+ END ||
+ CASE WHEN o.SaPellet = 'Y' THEN ' Pellet'
+ ELSE ''
END AS Stool,
coalesce(o.HousingStatus.description,'NA') as Housing,
o.taskid,
diff --git a/snprc_ehr/resources/queries/study/DemographicsHL7.sql b/snprc_ehr/resources/queries/study/DemographicsHL7.sql
index ade45a958..ee201555d 100644
--- a/snprc_ehr/resources/queries/study/DemographicsHL7.sql
+++ b/snprc_ehr/resources/queries/study/DemographicsHL7.sql
@@ -12,4 +12,4 @@ SELECT
d.modifiedBy.DisplayName as modifiedBy,
d.modified
FROM demographics as d
-where len(d.id) <= 6
\ No newline at end of file
+where LENGTH(d.id) <= 6
\ No newline at end of file
diff --git a/snprc_ehr/resources/queries/study/DemographicsHL7DeleteSource.sql b/snprc_ehr/resources/queries/study/DemographicsHL7DeleteSource.sql
index 75373dc78..cba42042c 100644
--- a/snprc_ehr/resources/queries/study/DemographicsHL7DeleteSource.sql
+++ b/snprc_ehr/resources/queries/study/DemographicsHL7DeleteSource.sql
@@ -1,5 +1,5 @@
select
- substring(dae.oldrecordmap, charindex('objectid=',dae.oldrecordmap, 0) + len('objectid='), 36) as objectid,
+ substring(dae.oldrecordmap, LOCATE('objectid=', dae.oldrecordmap) + LENGTH('objectid='), 36) as objectid,
dae.date as modified
from auditLog.DatasetAuditEvent as dae
diff --git a/snprc_ehr/resources/queries/study/R24WeightsDeletedSrc.sql b/snprc_ehr/resources/queries/study/R24WeightsDeletedSrc.sql
index ffae74b5f..151c8a28d 100644
--- a/snprc_ehr/resources/queries/study/R24WeightsDeletedSrc.sql
+++ b/snprc_ehr/resources/queries/study/R24WeightsDeletedSrc.sql
@@ -14,7 +14,7 @@
* limitations under the License.
*/
select
- substring(dae.oldrecordmap, charindex('objectid=',dae.oldrecordmap, 0) + len('objectid='), 36) as objectid,
+ substring(dae.oldrecordmap, LOCATE('objectid=', dae.oldrecordmap) + LENGTH('objectid='), 36) as objectid,
dae.date as modified
from auditLog.DatasetAuditEvent as dae
diff --git a/snprc_ehr/resources/queries/study/ReportTcruziNewPositives.query.xml b/snprc_ehr/resources/queries/study/ReportTcruziNewPositives.query.xml
index 4b9306e69..b4baeb9cf 100644
--- a/snprc_ehr/resources/queries/study/ReportTcruziNewPositives.query.xml
+++ b/snprc_ehr/resources/queries/study/ReportTcruziNewPositives.query.xml
@@ -23,7 +23,7 @@
T cruzi result
-
+
First Date
diff --git a/snprc_ehr/resources/queries/study/ReportTcruziSummaryAll/.qview.xml b/snprc_ehr/resources/queries/study/ReportTcruziSummaryAll/.qview.xml
index 5db6a2823..17934c235 100644
--- a/snprc_ehr/resources/queries/study/ReportTcruziSummaryAll/.qview.xml
+++ b/snprc_ehr/resources/queries/study/ReportTcruziSummaryAll/.qview.xml
@@ -35,7 +35,7 @@
-
+
diff --git a/snprc_ehr/resources/queries/study/SndBcsSource.sql b/snprc_ehr/resources/queries/study/SndBcsSource.sql
index 7e39e1d07..7b7094a3d 100644
--- a/snprc_ehr/resources/queries/study/SndBcsSource.sql
+++ b/snprc_ehr/resources/queries/study/SndBcsSource.sql
@@ -3,7 +3,7 @@ SELECT
b.SubjectId as participantid,
b.date,
l.value as BCS,
- CAST(SUBSTRING(l.value, 1, locate(' -', l.value ,1)) AS varchar(4)) AS BCSValue,
+ CAST(SUBSTRING(l.value, 1, CAST(locate(' -', l.value, 1) AS INTEGER)) AS varchar(4)) AS BCSValue,
p.ReferenceId as project,
null as taskid,
null as requestid,
diff --git a/snprc_ehr/resources/queries/study/acq_dispHistory.sql b/snprc_ehr/resources/queries/study/acq_dispHistory.sql
index fdd97af36..7bad5f330 100644
--- a/snprc_ehr/resources/queries/study/acq_dispHistory.sql
+++ b/snprc_ehr/resources/queries/study/acq_dispHistory.sql
@@ -21,9 +21,9 @@
SELECT
a.id as id, a.date as acq_date,
- a.acquisitionType.description + ' (' + cast(a.AcquisitionType as varchar(10)) + ')' as acquisitionType,
+ a.acquisitionType.description || ' (' || cast(a.AcquisitionType as varchar(10)) || ')' as acquisitionType,
d.date as disp_date,
- d.dispositionType.description + ' (' + cast(d.dispositionType as varchar(10)) + ')' as dispositionType,
+ d.dispositionType.description || ' (' || cast(d.dispositionType as varchar(10)) || ')' as dispositionType,
FROM arrival a
LEFT OUTER JOIN departure d
diff --git a/snprc_ehr/resources/queries/study/availableChargeIds.sql b/snprc_ehr/resources/queries/study/availableChargeIds.sql
index 1f0a9166c..1140f8327 100644
--- a/snprc_ehr/resources/queries/study/availableChargeIds.sql
+++ b/snprc_ehr/resources/queries/study/availableChargeIds.sql
@@ -49,7 +49,7 @@ SELECT DISTINCT
sp.projectType AS sndProjectType,
sp.ObjectId AS sndProjectObjectId,
c.caseid AS admitId,
- c.problem + '/' + c.admitcomplaint AS projectText,
+ c.problem || '/' || c.admitcomplaint AS projectText,
GREATEST (c.date, sp.startDate) AS startDate,
LEAST (c.enddate, TIMESTAMPADD('SQL_TSI_DAY', 1, sp.endDate), NOW()) AS endDate,
sp.projectId AS sndProjectId,
@@ -62,4 +62,4 @@ FROM study.cases AS c
WHERE d.id = ANIMAL_ID
AND vcbs.species = d.species.arc_species_code
AND GREATEST (c.date, sp.startDate) <= EVENT_DATE
- AND LEAST (c.endDate, TIMESTAMPADD('SQL_TSI_DAY', 1, sp.endDate), NOW()) >= EVENT_DATE
\ No newline at end of file
+ AND LEAST (c.endDate, TIMESTAMPADD('SQL_TSI_DAY', 1, sp.endDate), NOW()) >= EVENT_DATE
diff --git a/snprc_ehr/resources/queries/study/baboonAssignedColonyUsageQuery.sql b/snprc_ehr/resources/queries/study/baboonAssignedColonyUsageQuery.sql
index 02a10dfbf..e17419dae 100644
--- a/snprc_ehr/resources/queries/study/baboonAssignedColonyUsageQuery.sql
+++ b/snprc_ehr/resources/queries/study/baboonAssignedColonyUsageQuery.sql
@@ -72,7 +72,11 @@ FROM
WHERE aag.Id.Demographics.gender IS NOT NULL AND aag.Id.Demographics.calculated_status = 'Alive'
GROUP BY aag.accountGroup, dcc.colony, aag.Id.Demographics.species.arc_species_code
- PIVOT colonytotal BY colony IN (SELECT name FROM snprc_ehr.BaboonColonyGroups)) col
+ -- SQL Server used a dynamic list here:
+ -- PIVOT colonytotal BY colony IN (SELECT name FROM snprc_ehr.BaboonColonyGroups)
+ -- During the Postgres migration, validation broke when BaboonColonyGroups was empty, so this query now uses the literal list below.
+ -- Maintenance consequence: the query is no longer driven by BaboonColonyGroups; future colony groups require manual query changes here and in the outer SELECT.
+ PIVOT colonytotal BY colony IN ('pc_SPF', 'pc_Conv')) col
ON gen.accountGroup = col.accountGroup AND gen.species_code = col.species_code
INNER JOIN
diff --git a/snprc_ehr/resources/queries/study/baboonBreedingColonyUsageQuery.sql b/snprc_ehr/resources/queries/study/baboonBreedingColonyUsageQuery.sql
index 7f3e86f55..5644be7bf 100644
--- a/snprc_ehr/resources/queries/study/baboonBreedingColonyUsageQuery.sql
+++ b/snprc_ehr/resources/queries/study/baboonBreedingColonyUsageQuery.sql
@@ -63,7 +63,11 @@ FROM
WHERE aag.Id.Demographics.gender IS NOT NULL AND aag.Id.Demographics.calculated_status = 'Alive'
GROUP BY aag.accountGroup, dcc.colony, aag.Id.Demographics.species.arc_species_code
- PIVOT colonytotal BY colony IN (SELECT name FROM snprc_ehr.BaboonColonyGroups)) col -- ('pc_SPF', 'pc_Conv')) col
+ -- SQL Server used a dynamic list here:
+ -- PIVOT colonytotal BY colony IN (SELECT name FROM snprc_ehr.BaboonColonyGroups)
+ -- During the Postgres migration, validation broke when BaboonColonyGroups was empty, so this query now uses the literal list below.
+ -- Maintenance consequence: the query is no longer driven by BaboonColonyGroups; future colony groups require manual query changes here and in the outer SELECT.
+ PIVOT colonytotal BY colony IN ('pc_SPF', 'pc_Conv')) col
ON gen.accountGroup = col.accountGroup AND gen.species_code = col.species_code
INNER JOIN
-- Total --
diff --git a/snprc_ehr/resources/queries/study/baboonUnassignedColonyUsageQuery.sql b/snprc_ehr/resources/queries/study/baboonUnassignedColonyUsageQuery.sql
index 1c52bd179..2a369c251 100644
--- a/snprc_ehr/resources/queries/study/baboonUnassignedColonyUsageQuery.sql
+++ b/snprc_ehr/resources/queries/study/baboonUnassignedColonyUsageQuery.sql
@@ -63,7 +63,11 @@ FROM
WHERE aag.Id.Demographics.gender IS NOT NULL AND aag.Id.Demographics.calculated_status = 'Alive'
GROUP BY aag.accountGroup, dcc.colony, aag.Id.Demographics.species.arc_species_code
- PIVOT colonytotal BY colony IN (SELECT name FROM snprc_ehr.BaboonColonyGroups)) col -- ('pc_SPF', 'pc_Conv')) col
+ -- SQL Server used a dynamic list here:
+ -- PIVOT colonytotal BY colony IN (SELECT name FROM snprc_ehr.BaboonColonyGroups)
+ -- During the Postgres migration, validation broke when BaboonColonyGroups was empty, so this query now uses the literal list below.
+ -- Maintenance consequence: the query is no longer driven by BaboonColonyGroups; future colony groups require manual query changes here and in the outer SELECT.
+ PIVOT colonytotal BY colony IN ('pc_SPF', 'pc_Conv')) col
ON gen.accountGroup = col.accountGroup AND gen.species_code = col.species_code
INNER JOIN
diff --git a/snprc_ehr/resources/queries/study/clinpathRunsAll.sql b/snprc_ehr/resources/queries/study/clinpathRunsAll.sql
index e1eeaa0c3..642408baa 100644
--- a/snprc_ehr/resources/queries/study/clinpathRunsAll.sql
+++ b/snprc_ehr/resources/queries/study/clinpathRunsAll.sql
@@ -45,7 +45,7 @@ UNION
select
obr.ANIMAL_ID as Id,
obr.OBSERVATION_DATE_TM AS date,
- NULL AS enddate,
+ CAST(NULL AS TIMESTAMP) AS enddate,
obr.PROCEDURE_ID.Dataset.ServiceType AS type,
NULL as tissue,
obr.CHARGE_ID AS project,
@@ -57,11 +57,11 @@ select
obr.SPECIMEN_NUM AS sampleId,
NULL AS collectionMethod,
NULL AS method,
- NULL AS sampleQuantity,
+ CAST(NULL AS DOUBLE) AS sampleQuantity,
NULL AS quantityUnits,
NULL AS chargetype,
obr.VERIFIED_DATE_TM AS verifiedDate,
- NULL AS datefinalized,
+ CAST(NULL AS TIMESTAMP) AS datefinalized,
nte.comment AS remark,
NULL AS history,
obr.OBJECT_ID AS objectid,
@@ -105,19 +105,19 @@ UNION
SELECT DISTINCT
tr.Id,
tr.date,
- null enddate,
+ CAST(NULL AS TIMESTAMP) AS enddate,
'surveillance' as type,
null as tissue,
- null as project,
+ CAST(NULL AS INTEGER) as project,
null as instructions,
ls.serviceName,
null as units,
- 20000 as serviceId,
+ CAST(20000 AS VARCHAR) as serviceId,
null as collectedBy,
null as sampleId,
null as collectionMethod,
null as method,
- null as sampleQuantity,
+ CAST(NULL AS DOUBLE) as sampleQuantity,
null as quantityUnits,
null as chargetype,
tr.date as verifiedDate,
diff --git a/snprc_ehr/resources/queries/study/colonyUsageQuery.sql b/snprc_ehr/resources/queries/study/colonyUsageQuery.sql
index 466c3f834..6f2b018e9 100644
--- a/snprc_ehr/resources/queries/study/colonyUsageQuery.sql
+++ b/snprc_ehr/resources/queries/study/colonyUsageQuery.sql
@@ -59,7 +59,11 @@ FROM
WHERE isActive = true AND a.Id.Demographics.gender IS NOT NULL AND a.Id.AgeClass.label IS NOT NULL AND protocol.inves IS NOT NULL and a.assignmentStatus = 'A'
GROUP BY protocol.inves, demographicsCurrentColony.colony, a.Id.Demographics.species.arc_species_code
- PIVOT grouptotal BY colony IN (SELECT name FROM snprc_ehr.BaboonColonyGroups)) col
+ -- SQL Server used a dynamic list here:
+ -- PIVOT grouptotal BY colony IN (SELECT name FROM snprc_ehr.BaboonColonyGroups)
+ -- During the Postgres migration, validation broke when BaboonColonyGroups was empty, so this query now uses the literal list below.
+ -- Maintenance consequence: the query is no longer driven by BaboonColonyGroups; future colony groups require manual query changes here and in the outer SELECT.
+ PIVOT grouptotal BY colony IN ('pc_SPF', 'pc_Conv')) col
ON gen.investigator = col.investigator AND gen.species_code = col.species_code
diff --git a/snprc_ehr/resources/queries/study/culturePivotInner.sql b/snprc_ehr/resources/queries/study/culturePivotInner.sql
index b9ee417dd..39df2c48d 100644
--- a/snprc_ehr/resources/queries/study/culturePivotInner.sql
+++ b/snprc_ehr/resources/queries/study/culturePivotInner.sql
@@ -23,6 +23,6 @@ SELECT
FROM snprc_ehr.HL7_OBR obr
LEFT OUTER JOIN snprc_ehr.HL7_OBX obx ON obr.OBJECT_ID = obx.OBR_OBJECT_ID AND obr.SET_ID = obx.OBR_SET_ID
- LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = lp.ServiceId
+ LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = CAST(lp.ServiceId AS VARCHAR)
LEFT OUTER JOIN snprc_ehr.HL7_GroupNTE AS nte ON obr.OBJECT_ID = nte.OBR_OBJECT_ID AND obr.SET_ID = nte.OBR_SET_ID
WHERE obr.PROCEDURE_ID.Dataset = 'Culture'
diff --git a/snprc_ehr/resources/queries/study/dailyObsPivot.sql b/snprc_ehr/resources/queries/study/dailyObsPivot.sql
index 99a1d7050..61912e374 100644
--- a/snprc_ehr/resources/queries/study/dailyObsPivot.sql
+++ b/snprc_ehr/resources/queries/study/dailyObsPivot.sql
@@ -19,15 +19,15 @@ c.date,
c."water::observation" as water,
c."feed::observation" as feed,
-case when c."sa_none::observation" = 'Y' then 'None' else '' end +
-case when c."sa_unknown::observation" = 'Y' then 'Unknown' else '' end +
-case when c."sa_normal::observation" = 'Y' then 'Normal' else '' end +
-case when c."sa_bloody::observation" = 'Y' then ' Bloody' else '' end +
-case when c."sa_dry::observation" = 'Y' then ' Dry' else '' end +
-case when c."sa_loose::observation" = 'Y' then ' Loose' else '' end +
-case when c."sa_other::observation" = 'Y' then ' Other' else '' end +
-case when c."sa_soft::observation" = 'Y' then ' Soft' else '' end +
-case when c."sa_pellet::observation" = 'Y' then ' Pellet' else '' end +
+case when c."sa_none::observation" = 'Y' then 'None' else '' end ||
+case when c."sa_unknown::observation" = 'Y' then 'Unknown' else '' end ||
+case when c."sa_normal::observation" = 'Y' then 'Normal' else '' end ||
+case when c."sa_bloody::observation" = 'Y' then ' Bloody' else '' end ||
+case when c."sa_dry::observation" = 'Y' then ' Dry' else '' end ||
+case when c."sa_loose::observation" = 'Y' then ' Loose' else '' end ||
+case when c."sa_other::observation" = 'Y' then ' Other' else '' end ||
+case when c."sa_soft::observation" = 'Y' then ' Soft' else '' end ||
+case when c."sa_pellet::observation" = 'Y' then ' Pellet' else '' end ||
case when c."sa_watery::observation" = 'Y' then ' Watery' else '' end as stool,
COALESCE (c."housing_status::observation", '0') as housing_status,
COALESCE (c."comments::observation", ' ') as comments,
@@ -54,4 +54,4 @@ PIVOT observation BY category IN
(select category_name from snprc_ehr.clinical_observation_datasets where dataset_name = 'daily_obs' order by sort_order)
) as c
-order by id, date desc
\ No newline at end of file
+order by id, date desc
diff --git a/snprc_ehr/resources/queries/study/demographicsIdHistory.sql b/snprc_ehr/resources/queries/study/demographicsIdHistory.sql
index 0538a5813..02901ff1f 100644
--- a/snprc_ehr/resources/queries/study/demographicsIdHistory.sql
+++ b/snprc_ehr/resources/queries/study/demographicsIdHistory.sql
@@ -25,7 +25,7 @@ SELECT
case when i.id_type.description = 'Name' THEN i.value ELSE NULL END as id_name
FROM study.idHistory i
-where i.id_type.value not in ( 1, 30)
+where CAST(i.id_type.value AS INTEGER) not in (1, 30)
) i1
diff --git a/snprc_ehr/resources/queries/study/hematologyPivotInner.sql b/snprc_ehr/resources/queries/study/hematologyPivotInner.sql
index bee66db5a..a705958fd 100644
--- a/snprc_ehr/resources/queries/study/hematologyPivotInner.sql
+++ b/snprc_ehr/resources/queries/study/hematologyPivotInner.sql
@@ -37,6 +37,6 @@ SELECT
obx.ABNORMAL_FLAGS as abnormal_flags
FROM snprc_ehr.HL7_OBR obr
LEFT OUTER JOIN snprc_ehr.HL7_OBX obx ON obr.OBJECT_ID = obx.OBR_OBJECT_ID AND obr.SET_ID = obx.OBR_SET_ID
- LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = lp.ServiceId
+ LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = CAST(lp.ServiceId AS VARCHAR)
LEFT OUTER JOIN snprc_ehr.HL7_GroupNTE AS nte ON obr.OBJECT_ID = nte.OBR_OBJECT_ID AND obr.SET_ID = nte.OBR_SET_ID
WHERE obr.PROCEDURE_ID.Dataset = 'Hematology'
diff --git a/snprc_ehr/resources/queries/study/labworkResultsAll.sql b/snprc_ehr/resources/queries/study/labworkResultsAll.sql
index 35c92f40d..77d4b108a 100644
--- a/snprc_ehr/resources/queries/study/labworkResultsAll.sql
+++ b/snprc_ehr/resources/queries/study/labworkResultsAll.sql
@@ -24,7 +24,8 @@ SELECT
lr.Id,
lr.date,
lr.project,
- lr.serviceId,
+ -- serviceId is INTEGER here but VARCHAR in the HL7_OBR branch (PROCEDURE_ID); cast everything to VARCHAR for the UNION on Postgres.
+ CAST(lr.serviceId AS VARCHAR) AS serviceId,
lp.objectID AS serviceTestId,
lr.testid,
lr.resultOORIndicator,
@@ -60,7 +61,7 @@ SELECT
obx.REFERENCE_RANGE as refRange,
obx.ABNORMAL_FLAGS as abnormal_flags,
obx.OBR_OBJECT_ID as runId,
- NULL as enddate,
+ CAST(NULL AS TIMESTAMP) as enddate,
NULL as method,
nte.COMMENT as remark,
obx.OBJECT_ID AS objectId,
@@ -68,14 +69,14 @@ SELECT
FROM snprc_ehr.HL7_OBR obr
LEFT OUTER JOIN snprc_ehr.HL7_OBX obx ON obr.OBJECT_ID = obx.OBR_OBJECT_ID AND obr.SET_ID = obx.OBR_SET_ID
LEFT OUTER JOIN snprc_ehr.HL7_GroupNTE nte ON obr.OBJECT_ID = nte.OBR_OBJECT_ID AND obr.SET_ID = nte.OBR_SET_ID
- LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = lp.ServiceId
+ LEFT OUTER JOIN snprc_ehr.labwork_Panels AS lp on obx.TEST_ID = lp.TestId AND obr.PROCEDURE_ID = CAST(lp.ServiceId AS VARCHAR)
INNER JOIN core.QCState as q on q.Label = 'Completed'
UNION
select
alr.Id,
alr.date,
alr.project,
- alr.serviceId,
+ CAST(alr.serviceId AS VARCHAR) AS serviceId,
alr.serviceTestId,
alr.testid,
alr.resultOORIndicator,
@@ -98,7 +99,7 @@ select
lt.Id,
lt.date,
lt.project,
- lt.serviceId,
+ CAST(lt.serviceId AS VARCHAR) AS serviceId,
lt.serviceTestId,
lt.testid,
lt.resultOORIndicator,
diff --git a/snprc_ehr/resources/queries/study/labworkTaqman.sql b/snprc_ehr/resources/queries/study/labworkTaqman.sql
index 3556a2a4b..6be0ba1c0 100644
--- a/snprc_ehr/resources/queries/study/labworkTaqman.sql
+++ b/snprc_ehr/resources/queries/study/labworkTaqman.sql
@@ -7,13 +7,13 @@ SELECT
lp.TestId,
NULL AS resultOORIndicator,
'TX' AS value_type,
- NULL AS result,
+ CAST(NULL AS DOUBLE) AS result,
NULL AS units,
tr.SWBV AS qualresult,
NULL AS refRange,
NULL AS abnormal_flags,
tr.objectId AS runid,
- NULL AS enddate,
+ CAST(NULL AS TIMESTAMP) AS enddate,
NULL AS method,
'From Excel import' AS remark,
tr.history AS history,
@@ -35,15 +35,15 @@ SELECT
lp.TestId,
NULL AS resultOORIndicator,
'TX' AS value_type,
- NULL AS result,
+ CAST(NULL AS DOUBLE) AS result,
NULL AS units,
tr.STLV1 AS qualresult,
NULL AS refRange,
NULL AS abnormal_flags,
tr.objectId AS runid,
- NULL AS enddate,
+ CAST(NULL AS TIMESTAMP) AS enddate,
NULL AS method,
- 'From Excel import',
+ 'From Excel import' AS remark,
tr.history AS history,
tr.lsid,
tr.Sequencenum,
diff --git a/snprc_ehr/resources/queries/study/mhcSummary.sql b/snprc_ehr/resources/queries/study/mhcSummary.sql
index 130fa7bf5..9c7444d26 100644
--- a/snprc_ehr/resources/queries/study/mhcSummary.sql
+++ b/snprc_ehr/resources/queries/study/mhcSummary.sql
@@ -15,9 +15,9 @@
*/
SELECT
m.Id AS Id,
- 'A001: ' + m.A001Status + ' B003: ' + m.B003Status + ' B008: ' + m.B008Status + ' B017: ' + m.B017Status as mhcSummary,
+ 'A001: ' || m.A001Status || ' B003: ' || m.B003Status || ' B008: ' || m.B008Status || ' B017: ' || m.B017Status as mhcSummary,
lsid,
qcstate.publicData as publicData
-FROM study.mhcStatus m
\ No newline at end of file
+FROM study.mhcStatus m
diff --git a/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-0.000-25.000.sql b/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-0.000-25.000.sql
index dc3d0f179..98706d8a5 100644
--- a/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-0.000-25.000.sql
+++ b/snprc_ehr/resources/schemas/dbscripts/postgresql/snprc_ehr-0.000-25.000.sql
@@ -665,7 +665,7 @@ CREATE TABLE snprc_ehr.ExternalReports
);
CREATE TABLE snprc_ehr.HL7_IMPORT_LOG (
- TID NUMERIC(18, 0) GENERATED BY DEFAULT AS IDENTITY NOT NULL,
+ TID BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
MESSAGE_ID VARCHAR(50) NOT NULL,
OBSERVATION_DATE_TM TIMESTAMP NULL,
MESSAGE_CONTROL_ID VARCHAR(50) NULL,
@@ -1102,7 +1102,7 @@ BEGIN
RETURN 0;
END IF;
- trimmed_value := TRIM(REPLACE(value, ' ', ''))
+ trimmed_value := TRIM(REPLACE(value, ' ', ''));
-- Check if it is a valid numeric using Regex
-- This regex matches optional sign, digits, optional dot, optional digits
@@ -1123,9 +1123,9 @@ BEGIN
RETURN 0;
END IF;
- RETURN 1;
- END IF;
+RETURN 1;
+END IF;
- RETURN 0;
+RETURN 0;
END;
$$ LANGUAGE plpgsql;
diff --git a/snprc_ehr/src/org/labkey/snprc_ehr/SNPRC_EHRModule.java b/snprc_ehr/src/org/labkey/snprc_ehr/SNPRC_EHRModule.java
index d566d66c4..c759d33c9 100644
--- a/snprc_ehr/src/org/labkey/snprc_ehr/SNPRC_EHRModule.java
+++ b/snprc_ehr/src/org/labkey/snprc_ehr/SNPRC_EHRModule.java
@@ -105,8 +105,6 @@
import java.util.Date;
import java.util.Set;
-//import org.labkey.snprc_ehr.views.FeeScheduleWebPart;
-
public class SNPRC_EHRModule extends ExtendedSimpleModule
{
public static final String NAME = "SNPRC_EHR";
diff --git a/snprc_ehr/test/src/org/labkey/test/tests/snprc_ehr/SNPRC_EHRTest.java b/snprc_ehr/test/src/org/labkey/test/tests/snprc_ehr/SNPRC_EHRTest.java
index 9c881d5c6..10f4ee4f1 100644
--- a/snprc_ehr/test/src/org/labkey/test/tests/snprc_ehr/SNPRC_EHRTest.java
+++ b/snprc_ehr/test/src/org/labkey/test/tests/snprc_ehr/SNPRC_EHRTest.java
@@ -54,7 +54,6 @@
import org.labkey.test.util.Maps;
import org.labkey.test.util.PortalHelper;
import org.labkey.test.util.RReportHelper;
-import org.labkey.test.util.SqlserverOnlyTest;
import org.labkey.test.util.TextSearcher;
import org.labkey.test.util.ext4cmp.Ext4FieldRef;
import org.openqa.selenium.By;
@@ -77,7 +76,7 @@
@Category ({CustomModules.class, EHR.class, SNPRC.class})
@BaseWebDriverTest.ClassTimeout(minutes = 45)
-public class SNPRC_EHRTest extends AbstractGenericEHRTest implements SqlserverOnlyTest
+public class SNPRC_EHRTest extends AbstractGenericEHRTest
{
private static final String ASSAY_GENE_EXPRESSION = "Gene Expression";
private static final File ASSAY_GENE_EXPRESSION_XAR = TestFileUtils.getSampleData("snprc/assays/Gene Expression.xar");
diff --git a/snprc_genetics/module.properties b/snprc_genetics/module.properties
index d41cfed2d..ed88888ab 100644
--- a/snprc_genetics/module.properties
+++ b/snprc_genetics/module.properties
@@ -1,5 +1,5 @@
ModuleClass: org.labkey.snprc_genetics.SNPRC_GeneticsModule
-SupportedDatabases: mssql
+SupportedDatabases: mssql, pgsql
License: Apache 2.0
LicenseURL: http://www.apache.org/licenses/LICENSE-2.0
ManageVersion: true