-
Notifications
You must be signed in to change notification settings - Fork 3
Query customizer for HL7 Pivot tables #881
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: release25.7-SNAPSHOT
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,6 +1,7 @@ | ||||||||||||||||
| SELECT | ||||||||||||||||
| obr.ANIMAL_ID as id, | ||||||||||||||||
| obr.OBSERVATION_DATE_TM as date, | ||||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | ||||||||||||||||
|
||||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | |
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) || '-' || | |
| COALESCE(CAST(obr.MESSAGE_ID AS VARCHAR), '') || '-' || | |
| COALESCE(CAST(obr.PROCEDURE_ID AS VARCHAR), '') || '-' || | |
| COALESCE(CAST(obr.SET_ID AS VARCHAR), '') || '-' || | |
| COALESCE(CAST(COALESCE (lp.ServiceId.ServiceName, obr.PROCEDURE_NAME) AS VARCHAR), '') || '-' || | |
| COALESCE(CAST(nte.COMMENT AS VARCHAR), '') as key, |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| <!-- $S is the escape code for / --> | ||
| <customView xmlns="http://labkey.org/data/xml/queryCustomView"> | ||
| <columns> | ||
| <column name="Id"/> | ||
| <column name="Date"/> | ||
| <column name="CREATININE::RESULT"/> | ||
| <column name="CREATININE::ABNORMAL_FLAGS"/> | ||
| <column name="GLUCOSE::RESULT"/> | ||
| <column name="GLUCOSE::ABNORMAL_FLAGS"/> | ||
| <column name="BUN$SCREAT RATIO::RESULT"/> | ||
| <column name="BUN$SCREAT RATIO::ABNORMAL_FLAGS"/> | ||
| <column name="TOTAL PROTEIN::RESULT"/> | ||
| <column name="TOTAL PROTEIN::ABNORMAL_FLAGS"/> | ||
| <column name="ALBUMIN::RESULT"/> | ||
| <column name="ALBUMIN::ABNORMAL_FLAGS"/> | ||
| <column name="GLOBULIN (CALC)::RESULT"/> | ||
| <column name="GLOBULIN (CALC)::ABNORMAL_FLAGS"/> | ||
| <column name="A$SG RATIO (CALC)::RESULT"/> | ||
| <column name="A$SG RATIO (CALC)::ABNORMAL_FLAGS"/> | ||
| <column name="ALT $S SGPT::RESULT"/> | ||
| <column name="ALT $S SGPT::ABNORMAL_FLAGS"/> | ||
| <column name="AST $S SGOT::RESULT"/> | ||
| <column name="AST $S SGOT::ABNORMAL_FLAGS"/> | ||
| <column name="ALK PHOSPHATASE::RESULT"/> | ||
| <column name="ALK PHOSPHATASE::ABNORMAL_FLAGS"/> | ||
| <column name="SODIUM::RESULT"/> | ||
| <column name="SODIUM::ABNORMAL_FLAGS"/> | ||
| <column name="POTASSIUM::RESULT"/> | ||
| <column name="POTASSIUM::ABNORMAL_FLAGS"/> | ||
| <column name="CHLORIDE::RESULT"/> | ||
| <column name="CHLORIDE::ABNORMAL_FLAGS"/> | ||
| <column name="CARBON DIOXIDE::RESULT"/> | ||
| <column name="CARBON DIOXIDE::ABNORMAL_FLAGS"/> | ||
| <column name="ANION GAP (CALC)::RESULT"/> | ||
| <column name="ANION GAP (CALC)::ABNORMAL_FLAGS"/> | ||
| <column name="COMMENT"/> | ||
| </columns> | ||
| <sorts> | ||
| <sort column="Id"/> | ||
| <sort column="Date" descending="true"/> | ||
| </sorts> | ||
| </customView> | ||
|
|
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
|
|
@@ -2,7 +2,14 @@ | |||
| <metadata> | ||||
| <tables xmlns="http://labkey.org/data/xml"> | ||||
| <table tableName="HL7CulturePivot" tableDbType="NOT_IN_DB"> | ||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> | ||||
|
||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> |
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,6 +1,7 @@ | ||||||||||||||
| SELECT | ||||||||||||||
| obr.ANIMAL_ID as id, | ||||||||||||||
| obr.OBSERVATION_DATE_TM as date, | ||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | ||||||||||||||
|
||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | |
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) | |
| || '-' || COALESCE(CAST(obr.MESSAGE_ID AS VARCHAR), '') | |
| || '-' || COALESCE(CAST(obr.PROCEDURE_ID AS VARCHAR), '') | |
| || '-' || COALESCE(CAST(obr.SET_ID AS VARCHAR), '') | |
| || '-' || COALESCE(nte.COMMENT, '') as key, |
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
|
|
@@ -2,7 +2,14 @@ | |||
| <metadata> | ||||
| <tables xmlns="http://labkey.org/data/xml"> | ||||
| <table tableName="HL7HematologyPivot" tableDbType="NOT_IN_DB"> | ||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> | ||||
|
||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> |
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,6 +1,7 @@ | ||||||||||||||
| SELECT | ||||||||||||||
| obr.ANIMAL_ID as id, | ||||||||||||||
| obr.OBSERVATION_DATE_TM as date, | ||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | ||||||||||||||
|
||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | |
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) | |
| || '-' || COALESCE(obr.MESSAGE_ID, '') | |
| || '-' || COALESCE(CAST(obr.PROCEDURE_ID AS VARCHAR), '') | |
| || '-' || COALESCE(CAST(obr.SET_ID AS VARCHAR), '') | |
| || '-' || COALESCE(nte.COMMENT, '') as key, |
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
|
|
@@ -2,7 +2,14 @@ | |||
| <metadata> | ||||
| <tables xmlns="http://labkey.org/data/xml"> | ||||
| <table tableName="HL7HistologyPivot" tableDbType="NOT_IN_DB"> | ||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> | ||||
|
||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,5 +1,6 @@ | ||||||||||||||||||
| SELECT obr.ANIMAL_ID as id, | ||||||||||||||||||
| obr.OBSERVATION_DATE_TM as date, | ||||||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | ||||||||||||||||||
|
||||||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | |
| obr.ANIMAL_ID | |
| || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) | |
| || '-' || COALESCE(obr.MESSAGE_ID, '') | |
| || '-' || COALESCE(CAST(obr.SET_ID AS VARCHAR), '') | |
| || '-' || COALESCE(CAST(obr.PROCEDURE_ID AS VARCHAR), '') | |
| || '-' || COALESCE(CAST(nte.COMMENT AS VARCHAR), '') | |
| as key, |
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
|
|
@@ -2,7 +2,14 @@ | |||
| <metadata> | ||||
| <tables xmlns="http://labkey.org/data/xml"> | ||||
| <table tableName="HL7MiscPivot" tableDbType="NOT_IN_DB"> | ||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> | ||||
|
||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> |
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,5 +1,6 @@ | ||||||||||
| SELECT obr.ANIMAL_ID as id, | ||||||||||
| obr.OBSERVATION_DATE_TM as date, | ||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | ||||||||||
|
||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | |
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) || '-' || | |
| CAST(obr.MESSAGE_ID AS VARCHAR) || '-' || CAST(obr.PROCEDURE_ID AS VARCHAR) || '-' || | |
| COALESCE (lp.ServiceId.ServiceName, obr.PROCEDURE_NAME) || '-' || COALESCE(nte.COMMENT, '') as key, |
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
|
|
@@ -2,7 +2,14 @@ | |||
| <metadata> | ||||
| <tables xmlns="http://labkey.org/data/xml"> | ||||
| <table tableName="HL7ParasitologyPivot" tableDbType="NOT_IN_DB"> | ||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> | ||||
|
||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> |
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,5 +1,6 @@ | ||||||||||||||
| SELECT obr.ANIMAL_ID as id, | ||||||||||||||
| obr.OBSERVATION_DATE_TM as date, | ||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | ||||||||||||||
|
||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | |
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) || '-' || | |
| COALESCE(CAST(obr.MESSAGE_ID AS VARCHAR), '') || '-' || | |
| COALESCE(obr.PROCEDURE_NAME, '') || '-' || | |
| COALESCE(CAST(obr.PROCEDURE_ID AS VARCHAR), '') || '-' || | |
| COALESCE(nte.COMMENT, '') as key, |
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
|
|
@@ -2,11 +2,16 @@ | |||
| <metadata> | ||||
| <tables xmlns="http://labkey.org/data/xml"> | ||||
| <table tableName="HL7SurveillancePivot" tableDbType="NOT_IN_DB"> | ||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> | ||||
|
||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> |
| Original file line number | Diff line number | Diff line change | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,5 +1,6 @@ | ||||||||||||||||
| select Id, | ||||||||||||||||
| date, | ||||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | ||||||||||||||||
|
||||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | |
| Id || '-' || CAST(date AS VARCHAR) as key, |
Copilot
AI
Jan 27, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The key field is composed only of id and date concatenation, but the query groups by additional columns (PROCEDURE_NAME, PROCEDURE_ID, COMMENT) which means multiple rows can have the same key value. This will cause issues since the key field is marked as isKeyField in the query.xml file. Consider including additional distinguishing fields in the key formula to ensure uniqueness, or reconsider whether this composite key is appropriate for the data structure.
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | |
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) | |
| || '-' || COALESCE(CAST(PROCEDURE_ID AS VARCHAR), '') | |
| || '-' || COALESCE(PROCEDURE_NAME, '') | |
| || '-' || COALESCE(COMMENT, '') as key, |
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
|
|
@@ -2,7 +2,14 @@ | |||
| <metadata> | ||||
| <tables xmlns="http://labkey.org/data/xml"> | ||||
| <table tableName="HL7UnknownPivot" tableDbType="NOT_IN_DB"> | ||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> | ||||
|
||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> |
| Original file line number | Diff line number | Diff line change | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,6 +1,7 @@ | ||||||||||||||||
| SELECT | ||||||||||||||||
| obr.ANIMAL_ID as id, | ||||||||||||||||
| obr.OBSERVATION_DATE_TM as date, | ||||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | ||||||||||||||||
|
||||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | |
| obr.ANIMAL_ID | |
| || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) | |
| || '-' || COALESCE(CAST(obr.MESSAGE_ID AS VARCHAR), '') | |
| || '-' || COALESCE(CAST(obr.PROCEDURE_ID AS VARCHAR), '') | |
| || '-' || COALESCE(COALESCE (lp.ServiceId.ServiceName, obr.PROCEDURE_NAME), '') | |
| || '-' || COALESCE(nte.COMMENT, '') as key, |
| Original file line number | Diff line number | Diff line change | ||
|---|---|---|---|---|
|
|
@@ -2,7 +2,14 @@ | |||
| <metadata> | ||||
| <tables xmlns="http://labkey.org/data/xml"> | ||||
| <table tableName="HL7UrinalysisPivot" tableDbType="NOT_IN_DB"> | ||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> | ||||
|
||||
| <javaCustomizer class="org.labkey.ehr.table.DefaultEHRCustomizer" /> |
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,6 +1,7 @@ | ||||||||||||||||||
| SELECT | ||||||||||||||||||
| obr.ANIMAL_ID as id, | ||||||||||||||||||
| obr.OBSERVATION_DATE_TM as date, | ||||||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | ||||||||||||||||||
|
||||||||||||||||||
| obr.ANIMAL_ID || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) as key, | |
| obr.ANIMAL_ID | |
| || '-' || CAST(obr.OBSERVATION_DATE_TM AS VARCHAR) | |
| || '-' || CAST(obr.MESSAGE_ID AS VARCHAR) | |
| || '-' || CAST(obr.SET_ID AS VARCHAR) | |
| || '-' || COALESCE(COALESCE (lp.ServiceId.ServiceName, obr.PROCEDURE_NAME), '') | |
| || '-' || CAST(obr.PROCEDURE_ID AS VARCHAR) | |
| || '-' || COALESCE(nte.COMMENT, '') as key, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This table now has two customizers being applied: DefaultEHRCustomizer from the XML configuration and SNPRC_EHRCustomizer from the Java code (lines 207-212 of SNPRC_EHRCustomizer.java). Both customizers may attempt to add assignment and age columns, potentially causing conflicts or duplicate columns. Verify that these customizers work together correctly without creating duplicate calculated columns.