@@ -2,19 +2,14 @@ require("ehr/triggers").initScript(this);
22
33var triggerHelper = new org . labkey . nirc_ehr . query . NIRC_EHRTriggerHelper ( LABKEY . Security . currentUser . id , LABKEY . Security . currentContainer . id ) ;
44
5- function onInit ( event , helper ) {
6- helper . setScriptOptions ( {
7- allowAnyId : true ,
8- requiresStatusRecalc : true ,
9- allowDatesInDistantPast : true ,
10- skipAssignmentCheck : true ,
11- } ) ;
12- }
13-
145EHR . Server . TriggerManager . registerHandlerForQuery ( EHR . Server . TriggerManager . Events . BEFORE_UPSERT , 'study' , 'Arrival' , function ( helper , scriptErrors , row , oldRow ) {
156
7+ if ( ! row . rearrival ) {
8+ helper . setScriptOptions ( { requiresStatusRecalc : true } ) ;
9+ }
10+
1611 // Due to order of operation, this needs to be done in upsert instead of insert
17- if ( helper . getEvent ( ) == 'insert' && row . Id && triggerHelper . animalIdExists ( row . Id ) ) {
12+ if ( ! row . rearrival && helper . getEvent ( ) == 'insert' && row . Id && triggerHelper . animalIdExists ( row . Id ) ) {
1813 EHR . Server . Utils . addError ( scriptErrors , 'Id' , 'Animal Id ' + row . Id + ' is already in use. Please use a different Id.' , 'ERROR' ) ;
1914 }
2015
@@ -25,7 +20,7 @@ EHR.Server.TriggerManager.registerHandlerForQuery(EHR.Server.TriggerManager.Even
2520 helper . registerArrival ( row . Id , row . date ) ;
2621
2722 //Insert or update demographic and birth records
28- if ( ! helper . isETL ( ) && ! helper . isGeneratedByServer ( ) && ! helper . isValidateOnly ( ) ) {
23+ if ( ! row . rearrival && ! helper . isETL ( ) && ! helper . isGeneratedByServer ( ) && ! helper . isValidateOnly ( ) ) {
2924
3025 // this allows demographic records in qcstates other than completed
3126 var extraDemographicsFieldMappings = {
0 commit comments