Skip to content

Commit 065e32c

Browse files
Clinical updates (#477)
- Review Required view from medication schedule - Warning if creating duplicate case - Inactive Procedure filtering - Case required fields - Case close remark required - Cleanup some metadata --------- Co-authored-by: Ankur Juneja <ankurjuneja05@gmail.com>
1 parent 444a9a4 commit 065e32c

16 files changed

Lines changed: 151 additions & 44 deletions

File tree

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
Unit
22
g
3+
gummy
34
IU
5+
mcg
46
mEq
57
mg
8+
mL
69
no units
710
ounces
11+
scoop
12+
tablet
813
ug
914
units
Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,18 @@
11
Unit Denominator Numerator
2+
g/gummy gummy g
23
g/mL mL g
4+
g/tablet tablet g
35
g/tsp tsp g
4-
IU/ml mL IU
5-
mEq/ml mL mEq
6+
IU/mL mL IU
7+
mcg/mL mL mcg
8+
mEq/mL mL mEq
69
mg/capsule capsule(s) mg
7-
mg/ml mL mg
10+
mg/implant implant mg
11+
mg/kg kg mg
12+
mg/mL mL mg
813
mg/piece piece(s) mg
914
mg/tablet tablet(s) mg
1015
mg/tsp tsp mg
11-
ug/ml mL ug
12-
units/ml mL units
16+
mL/kg kg mL
17+
ug/mL mL ug
18+
units/mL mL units

nirc_ehr/resources/data/dosage_units.tsv

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
Unit Numerator Denominator
2+
1/8 scoop/kg 1/8 scoop kg
23
g/kg g kg
34
IU/kg IU kg
5+
mcg/kg mcg kg
46
mEq/kg mEq kg
7+
mg
58
mg/animal mg animal
69
mg/kg mg kg
7-
ml/kg ml kg
10+
mL/kg ml kg
811
no units
912
ounces/kg ounces kg
1013
ug/kg ug kg
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
11
Unit
2+
capsule
23
capsule(s)
34
cup
45
drop(s)
6+
gummy
7+
implant
8+
mg
59
mL
610
no units
711
ounce(s)
812
piece(s)
13+
scoop
14+
tablet
915
tablet(s)
1016
tsp

nirc_ehr/resources/queries/study/cases.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,14 @@ function onInit(event, helper) {
1515

1616
EHR.Server.TriggerManager.registerHandlerForQuery(EHR.Server.TriggerManager.Events.BEFORE_UPSERT, 'study', 'cases', function(helper, errors, row, oldRow){
1717
if (!helper.isETL()) {
18-
if (row.enddate && !triggerHelper.canCloseCase(row.category)) {
18+
if (row.enddate) {
19+
if (!row.closeRemark) {
20+
EHR.Server.Utils.addError(errors, 'closeRemark', 'Close remark required when closing a case.', 'ERROR');
21+
}
22+
23+
if(!triggerHelper.canCloseCase(row.category)) {
1924
EHR.Server.Utils.addError(errors, 'enddate', 'Veterinarian permission required to close a case.', 'ERROR');
25+
}
2026
}
2127

2228
if (!helper.isValidateOnly() && row.caseid && row.enddate && (row.enddate != oldRow.enddate)) {

nirc_ehr/resources/views/animalHistory.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
showFilterOptionsTitle: true,
1313
showReportsOption:true,
1414
caseInsensitiveSubjects: true,
15+
reportQCStates: ['Completed', 'Review Required', 'Abnormal'],
1516
filterTypes: [{
1617
xtype: 'ldk-singlesubjectfiltertype',
1718
inputValue: LDK.panel.SingleSubjectFilterType.filterName,

nirc_ehr/resources/web/nirc_ehr/buttons/SelectCaseButton.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ Ext4.define('NIRC_EHR.form.field.SelectCaseButton', {
3636
if (taskid) {
3737
let record = EHR.DataEntryUtils.getBoundRecord(this.up('panel'));
3838
if (!record || !record.get('Id')) {
39-
let clinRemarksPanel = this.up('#upperPanel')?.query('ehr-formpanel')?.find(panel => panel.formConfig.name === 'clinremarks');
40-
let caseid = clinRemarksPanel?.store?.data?.get(0)?.get('caseid');
39+
let tasksPanel = this.up('#upperPanel')?.query('ehr-formpanel')?.find(panel => panel.formConfig.name === 'tasks');
40+
let caseid = tasksPanel?.store?.data?.get(0)?.get('caseid');
4141
if (caseid) {
4242
this.handleCaseSelect(caseid, false);
4343
}

nirc_ehr/resources/web/nirc_ehr/buttons/treatmentSubmit.js

Lines changed: 77 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,83 @@ EHR.DataEntryUtils.registerDataEntryFormButton('NIRC_TREATMENT_SUBMIT', {
99
disabled: true,
1010
itemId: 'submitBtn',
1111
handler: function(btn){
12-
var panel = btn.up('ehr-dataentrypanel');
13-
Ext4.Msg.confirm('Finalize Form', 'You are about to finalize this form. Do you want to do this?', function(v){
14-
if(v == 'yes')
15-
this.onSubmit(btn);
16-
}, this);
12+
13+
const panel = btn.up('ehr-dataentrypanel');
14+
const casesStore = panel?.storeCollection?.getClientStoreByName('cases');
15+
if (casesStore) {
16+
const rec = casesStore.getAt(0);
17+
const caseid = casesStore.getAt(0).get('caseid');
18+
if (!caseid) { // only check for new cases
19+
const id = rec.get('Id');
20+
const problemCategory = rec.get('problemCategory');
21+
const category = rec.get('category');
22+
if (id && problemCategory && category) {
23+
const filters = [
24+
LABKEY.Filter.create('Id', id),
25+
LABKEY.Filter.create('category', category),
26+
LABKEY.Filter.create('problemCategory', problemCategory),
27+
LABKEY.Filter.create('isActive', true),
28+
LABKEY.Filter.create('QCState/Label', "Completed", LABKEY.Filter.Types.EQUAL)
29+
]
30+
const caseid = rec.get('caseid');
31+
if (caseid) {
32+
filters.push(LABKEY.Filter.create('caseid', caseid, LABKEY.Filter.Types.NEQ))
33+
}
34+
LABKEY.Query.selectRows({
35+
schemaName: 'study',
36+
queryName: 'cases',
37+
filterArray: filters,
38+
columns: 'problemSubcategory',
39+
scope: this,
40+
failure: LDK.Utils.getErrorCallback(),
41+
success: function (results) {
42+
if (results.rows.length > 0) {
43+
const subcategories = [];
44+
for (let i = 0; i < results.rows.length; i++) {
45+
subcategories.push(results.rows[i].problemSubcategory);
46+
}
47+
let msg;
48+
if (subcategories.length === 1) {
49+
msg = 'This animal already has a case with the problem ' + problemCategory + '. The subcategory is ' + results.rows[0].problemSubcategory + '. Do you still want to submit this case?';
50+
}
51+
else {
52+
msg = 'This animal already has ' + subcategories.length + ' cases with the problem ' + problemCategory + '. The subcategories are ' + subcategories.join(', ') + '. Do you still want to submit this case?';
53+
}
54+
55+
Ext4.Msg.confirm('Similar Case Exists', msg, function (v) {
56+
if (v == 'yes')
57+
this.onSubmit(btn);
58+
}, this);
59+
}
60+
else {
61+
Ext4.Msg.confirm('Finalize Form', 'You are about to finalize this form. Do you want to do this?', function (v) {
62+
if (v == 'yes')
63+
this.onSubmit(btn);
64+
}, this);
65+
}
66+
}
67+
});
68+
}
69+
else {
70+
Ext4.Msg.confirm('Finalize Form', 'You are about to finalize this form. Do you want to do this?', function (v) {
71+
if (v == 'yes')
72+
this.onSubmit(btn);
73+
}, this);
74+
}
75+
}
76+
else {
77+
Ext4.Msg.confirm('Finalize Form', 'You are about to finalize this form. Do you want to do this?', function (v) {
78+
if (v == 'yes')
79+
this.onSubmit(btn);
80+
}, this);
81+
}
82+
}
83+
else {
84+
Ext4.Msg.confirm('Finalize Form', 'You are about to finalize this form. Do you want to do this?', function (v) {
85+
if (v == 'yes')
86+
this.onSubmit(btn);
87+
}, this);
88+
}
1789
},
1890
listeners: {
1991
afterRender: function(btn){

nirc_ehr/resources/web/nirc_ehr/model/sources/BehaviorDefaults.js

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -73,15 +73,6 @@ EHR.model.DataModelManager.registerMetadata('BehaviorDefaults', {
7373
category: {
7474
defaultValue: 'Behavior',
7575
hidden: true
76-
},
77-
scheduledDate: {
78-
columnConfig: {
79-
width: 130,
80-
fixed: true
81-
},
82-
},
83-
treatmentId: {
84-
hidden: true
8576
}
8677
},
8778
'study.treatment_order': {

nirc_ehr/resources/web/nirc_ehr/model/sources/BehavioralCase.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ EHR.model.DataModelManager.registerMetadata('BehavioralCase', {
5757
}
5858
},
5959
problemCategory: {
60+
nullable: false,
6061
editorConfig: {
6162
listeners: {
6263
select: function (field, recs) {

0 commit comments

Comments
 (0)