Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 7 additions & 11 deletions nirc_ehr/resources/queries/study/arrival.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,15 @@ require("ehr/triggers").initScript(this);

var triggerHelper = new org.labkey.nirc_ehr.query.NIRC_EHRTriggerHelper(LABKEY.Security.currentUser.id, LABKEY.Security.currentContainer.id);

function onInit(event, helper){
helper.setScriptOptions({
allowAnyId: true,
requiresStatusRecalc: true,
allowDatesInDistantPast: true,
skipAssignmentCheck: true,
});
}

EHR.Server.TriggerManager.registerHandlerForQuery(EHR.Server.TriggerManager.Events.BEFORE_UPSERT, 'study', 'Arrival', function(helper, scriptErrors, row, oldRow) {

console.log('isRearrival:', row.rearrival);
if(!row.rearrival){
helper.setScriptOptions({requiresStatusRecalc: true});
}

// Due to order of operation, this needs to be done in upsert instead of insert
if (helper.getEvent() == 'insert' && row.Id && triggerHelper.animalIdExists(row.Id)) {
if (!row.rearrival && helper.getEvent() == 'insert' && row.Id && triggerHelper.animalIdExists(row.Id)) {
EHR.Server.Utils.addError(scriptErrors, 'Id', 'Animal Id ' + row.Id + ' is already in use. Please use a different Id.', 'ERROR');
}

Expand All @@ -25,7 +21,7 @@ EHR.Server.TriggerManager.registerHandlerForQuery(EHR.Server.TriggerManager.Even
helper.registerArrival(row.Id, row.date);

//Insert or update demographic and birth records
if (!helper.isETL() && !helper.isGeneratedByServer() && !helper.isValidateOnly()) {
if (!row.rearrival && !helper.isETL() && !helper.isGeneratedByServer() && !helper.isValidateOnly()) {

// this allows demographic records in qcstates other than completed
var extraDemographicsFieldMappings = {
Expand Down
3 changes: 3 additions & 0 deletions nirc_ehr/resources/queries/study/arrival.query.xml
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@
<fkColumnName>meaning</fkColumnName>
</fk>
</column>
<column columnName="rearrival">
<columnTitle>Rearrival</columnTitle>
</column>
</columns>
</table>
</tables>
Expand Down
5 changes: 2 additions & 3 deletions nirc_ehr/resources/queries/study/arrival/.qview.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,14 @@
<columns>
<column name="Id"/>
<column name="date"/>
<column name="gender"/>
<column name="species"/>
<column name="Id/Demographics/gender"/>
<column name="Id/Demographics/species"/>
<column name="Id/Demographics/dam"/>
<column name="Id/Demographics/sire"/>
<column name="sourceFacility"/>
<column name="acquisitionType"/>
<column name="performedBy"/>
<column name="history"/>
<column name="lab"/>
<column name="attachmentFile"/>
</columns>
</customView>
8 changes: 1 addition & 7 deletions nirc_ehr/resources/queries/study/protocolAssignment.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ var prevDate;
var missing = [];

var count = 0;
let animalIds = [];

var triggerHelper = new org.labkey.nirc_ehr.query.NIRC_EHRTriggerHelper(LABKEY.Security.currentUser.id, LABKEY.Security.currentContainer.id);

Expand All @@ -31,12 +30,7 @@ function getLastAssignment(id){
}

function onInit(event, helper){

helper.setScriptOptions({
allowAnyId: false,
requiresStatusRecalc: true,
allowDatesInDistantPast: true
});

if (helper.isETL()) {
LABKEY.Query.selectRows({
schemaName: 'ehr',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,9 @@
<column columnName="arrivalType">
<datatype>varchar</datatype>
</column>
<column columnName="rearrival">
<datatype>boolean</datatype>
</column>
</columns>
</table>
<table tableName="assignment" tableDbType="TABLE">
Expand Down
19 changes: 18 additions & 1 deletion nirc_ehr/resources/scripts/nirc_triggers.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,27 @@ exports.init = function (EHR) {
});
});

EHR.Server.TriggerManager.registerHandlerForQuery(EHR.Server.TriggerManager.Events.INIT, 'study', 'arrival', function(event, helper) {
helper.setScriptOptions({
allowAnyId: true,
requiresStatusRecalc: false, // set in upsert to handle rearrival
allowDatesInDistantPast: true,
skipAssignmentCheck: true,
});
});

EHR.Server.TriggerManager.registerHandlerForQuery(EHR.Server.TriggerManager.Events.INIT, 'study', 'protocolAssignment', function(event, helper) {
helper.setScriptOptions({
allowAnyId: false,
requiresStatusRecalc: false,
allowDatesInDistantPast: true
});
});

EHR.Server.TriggerManager.registerHandlerForQuery(EHR.Server.TriggerManager.Events.INIT, 'study', 'assignment', function(event, helper) {
helper.setScriptOptions({
allowAnyId: false,
requiresStatusRecalc: true,
requiresStatusRecalc: false,
allowDatesInDistantPast: true,
skipAssignmentCheck: true,
removeTimeFromDate: false,
Expand Down
5 changes: 5 additions & 0 deletions nirc_ehr/resources/web/nirc_ehr/model/sources/Arrival.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,11 @@ EHR.model.DataModelManager.registerMetadata('Arrival', {
columnConfig: {
width: 200
}
},
rearrival: {
allowBlank: true,
hidden: true,
showInGrid: false
}
}
}
Expand Down
4 changes: 2 additions & 2 deletions nirc_ehr/resources/web/nirc_ehr/model/sources/NIRCDefault.js
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ EHR.model.DataModelManager.registerMetadata('Default', {
allowBlank: true,
defaultValue: LABKEY.Security.currentUser.id,
getInitialValue: function (v, rec) {
if (Number.isInteger(v)){
if (Number.isInteger(Number(v))){
return v;
}

Expand Down Expand Up @@ -140,7 +140,7 @@ EHR.model.DataModelManager.registerMetadata('Default', {
sort: 'Type,DisplayName'
},
getInitialValue: function (v, rec) {
if (Number.isInteger(v)){
if (Number.isInteger(Number(v))){
return v;
}

Expand Down
57 changes: 57 additions & 0 deletions nirc_ehr/resources/web/nirc_ehr/model/sources/Rearrival.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@

EHR.model.DataModelManager.registerMetadata('Rearrival', {

byQuery: {
'study.arrival': {
rearrival: {
getInitialValue: function (v, rec) {
return true
},
editable: false,
hidden: true,
columnConfig: {
editable: false
}
},
performedby: {
hidden: true,
showInGrid: false
},
sourceFacility: {
allowBlank: false,
columnConfig: {
fixed: true,
width: 150
},
},
acquisitionType: {
allowBlank: false,
columnConfig: {
fixed: true,
width: 150
},
},
arrivalType: {
allowBlank: false,
columnConfig: {
width: 200
}
},
'cage': {
allowBlank: true,
hidden: true,
showInGrid: false
},
project: {
allowBlank: true,
hidden: true,
showInGrid: false
},
arrivalProtocol: {
allowBlank: true,
hidden: true,
showInGrid: false
},
}
}
});
1 change: 1 addition & 0 deletions nirc_ehr/src/org/labkey/nirc_ehr/NIRC_EHRModule.java
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,7 @@ private void registerDataEntry()
EHRService.get().registerFormType(new DefaultDataEntryFormFactory(NIRCBehaviorRoundsFormType.class, this));
EHRService.get().registerFormType(new DefaultDataEntryFormFactory(NIRCChemistryImportFormType.class, this));
EHRService.get().registerFormType(new DefaultDataEntryFormFactory(NIRCSerologyImportFormType.class, this));
EHRService.get().registerFormType(new DefaultDataEntryFormFactory(NIRCRearrivalFormType.class, this));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
package org.labkey.nirc_ehr.dataentry.form;

import org.labkey.api.ehr.dataentry.DataEntryFormContext;
import org.labkey.api.ehr.dataentry.FormSection;
import org.labkey.api.ehr.dataentry.forms.LockAnimalsFormSection;
import org.labkey.api.module.Module;
import org.labkey.api.security.permissions.AdminPermission;
import org.labkey.api.view.template.ClientDependency;
import org.labkey.nirc_ehr.dataentry.section.NIRCAnimalDetailsFormSection;
import org.labkey.nirc_ehr.dataentry.section.NIRCArrivalInstructionsFormSection;
import org.labkey.nirc_ehr.dataentry.section.NIRCRearrivalFormSection;
import org.labkey.nirc_ehr.dataentry.section.NIRCTaskFormSection;

import java.util.Arrays;

public class NIRCRearrivalFormType extends NIRCBaseTaskFormType
{
public static final String NAME = "Rearrival";

public NIRCRearrivalFormType(DataEntryFormContext ctx, Module owner)
{
super(ctx, owner, NAME, "Rearrivals", "Colony Management", Arrays.asList(
new LockAnimalsFormSection(),
new NIRCArrivalInstructionsFormSection(),
new NIRCTaskFormSection(),
new NIRCAnimalDetailsFormSection(),
new NIRCRearrivalFormSection()
));

addClientDependency(ClientDependency.supplierFromPath("nirc_ehr/model/sources/Arrival.js"));
addClientDependency(ClientDependency.supplierFromPath("nirc_ehr/model/sources/Rearrival.js"));

for (FormSection s : getFormSections())
{
s.addConfigSource("Arrival");
s.addConfigSource("Rearrival");
}
}

@Override
public boolean isAvailable()
{
return super.isAvailable() && getCtx().getContainer().hasPermission(getCtx().getUser(), AdminPermission.class);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package org.labkey.nirc_ehr.dataentry.section;

import org.json.JSONObject;
import org.labkey.api.ehr.dataentry.DataEntryFormContext;

public class NIRCRearrivalFormSection extends BaseFormSection
{
public NIRCRearrivalFormSection()
{
super("study", "arrival", "Rearrivals", "ehr-gridpanel", true, true, true);
}

@Override
public JSONObject toJSON(DataEntryFormContext ctx, boolean includeFormElements)
{
JSONObject json = super.toJSON(ctx, includeFormElements);
json.put("dataDependentCollapseHeader", true);
return json;
}
}