From b208be4e9a1756459d9affce57d4a6c7cdf43839 Mon Sep 17 00:00:00 2001 From: Marty Pradere Date: Fri, 28 Feb 2025 05:20:40 -0800 Subject: [PATCH] Align frequency from formulary --- .../DrugAdministrationRunsChildClientStore.js | 2 +- .../data/DrugAdministrationRunsClientStore.js | 54 +++++++++++++++++++ .../NIRCTreatmentGivenFormSection.java | 3 +- .../NIRCTreatmentOrderFormSection.java | 3 +- 4 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 nirc_ehr/resources/web/nirc_ehr/data/DrugAdministrationRunsClientStore.js diff --git a/nirc_ehr/resources/web/nirc_ehr/data/DrugAdministrationRunsChildClientStore.js b/nirc_ehr/resources/web/nirc_ehr/data/DrugAdministrationRunsChildClientStore.js index 56d9dd07..1248a6fc 100644 --- a/nirc_ehr/resources/web/nirc_ehr/data/DrugAdministrationRunsChildClientStore.js +++ b/nirc_ehr/resources/web/nirc_ehr/data/DrugAdministrationRunsChildClientStore.js @@ -1,6 +1,6 @@ Ext4.define('NIRC_EHR.data.DrugAdministrationRunsChildClientStore', { - extend: 'EHR.data.DrugAdministrationRunsClientStore', + extend: 'NIRC_EHR.data.DrugAdministrationRunsClientStore', insert: function(index, records) { var ret = this.callParent(arguments); diff --git a/nirc_ehr/resources/web/nirc_ehr/data/DrugAdministrationRunsClientStore.js b/nirc_ehr/resources/web/nirc_ehr/data/DrugAdministrationRunsClientStore.js new file mode 100644 index 00000000..5d5de328 --- /dev/null +++ b/nirc_ehr/resources/web/nirc_ehr/data/DrugAdministrationRunsClientStore.js @@ -0,0 +1,54 @@ +Ext4.define('NIRC_EHR.data.DrugAdministrationRunsClientStore', { + extend: 'EHR.data.DrugAdministrationRunsClientStore', + + // This override adds a special case for frequency to align formulary frequency.rowid with data frequency.meaning + onRecordUpdate: function (record, modifiedFieldNames) { + if (record.get('code')) { + modifiedFieldNames = modifiedFieldNames || []; + + if (modifiedFieldNames.indexOf('code') == -1) { + return; + } + + if (!this.formularyStore) { + LDK.Utils.logToServer({ + message: 'Unable to find formulary store in DrugAdministrationRunsClientStore' + }); + console.error('Unable to find formulary store in DrugAdministrationRunsClientStore'); + + return; + } + + var values = this.formularyStore.getFormularyValues(record.get('code')); + if (!Ext4.Object.isEmpty(values)) { + var params = {}; + + for (var fieldName in this.fieldMap) { + if (!this.getFields().get(fieldName)) { + continue; + } + + if (modifiedFieldNames.indexOf(this.fieldMap[fieldName]) != -1) { + continue; + } + + let def = values[fieldName]; + + // Special case for frequency to align the formulary frequency rowid with data stored as the meaning + if (fieldName.toLowerCase() === 'frequency') + def = values['frequency/meaning'] + + if (Ext4.isDefined(def)) { + params[this.fieldMap[fieldName]] = def; + } + } + + if (!LABKEY.Utils.isEmptyObj(params)) { + record.beginEdit(); + record.set(params); + record.endEdit(true); + } + } + } + } +}); \ No newline at end of file diff --git a/nirc_ehr/src/org/labkey/nirc_ehr/dataentry/section/NIRCTreatmentGivenFormSection.java b/nirc_ehr/src/org/labkey/nirc_ehr/dataentry/section/NIRCTreatmentGivenFormSection.java index 61a66381..3d79c541 100644 --- a/nirc_ehr/src/org/labkey/nirc_ehr/dataentry/section/NIRCTreatmentGivenFormSection.java +++ b/nirc_ehr/src/org/labkey/nirc_ehr/dataentry/section/NIRCTreatmentGivenFormSection.java @@ -11,8 +11,9 @@ public class NIRCTreatmentGivenFormSection extends BaseFormSection public NIRCTreatmentGivenFormSection() { super("study", "drug", LABEL, "ehr-gridpanel", true, true, true); - setClientStoreClass("EHR.data.DrugAdministrationRunsClientStore"); + setClientStoreClass("NIRC_EHR.data.DrugAdministrationRunsClientStore"); addClientDependency(ClientDependency.supplierFromPath("ehr/data/DrugAdministrationRunsClientStore.js")); + addClientDependency(ClientDependency.supplierFromPath("nirc_ehr/data/DrugAdministrationRunsClientStore.js")); } public NIRCTreatmentGivenFormSection(boolean isChild, String parentQueryName) diff --git a/nirc_ehr/src/org/labkey/nirc_ehr/dataentry/section/NIRCTreatmentOrderFormSection.java b/nirc_ehr/src/org/labkey/nirc_ehr/dataentry/section/NIRCTreatmentOrderFormSection.java index ed9a0a6e..86e036b0 100644 --- a/nirc_ehr/src/org/labkey/nirc_ehr/dataentry/section/NIRCTreatmentOrderFormSection.java +++ b/nirc_ehr/src/org/labkey/nirc_ehr/dataentry/section/NIRCTreatmentOrderFormSection.java @@ -11,8 +11,9 @@ public class NIRCTreatmentOrderFormSection extends BaseFormSection public NIRCTreatmentOrderFormSection() { super("study", "treatment_order", LABEL, "ehr-gridpanel", true, true, true); - setClientStoreClass("EHR.data.DrugAdministrationRunsClientStore"); + setClientStoreClass("NIRC_EHR.data.DrugAdministrationRunsClientStore"); addClientDependency(ClientDependency.supplierFromPath("ehr/data/DrugAdministrationRunsClientStore.js")); + addClientDependency(ClientDependency.supplierFromPath("nirc_ehr/data/DrugAdministrationRunsClientStore.js")); } public NIRCTreatmentOrderFormSection(boolean isChild, String parentQueryName)