diff --git a/php/libraries/NDB_BVL_Instrument.class.inc b/php/libraries/NDB_BVL_Instrument.class.inc index f767c0f97ef..52f89196824 100644 --- a/php/libraries/NDB_BVL_Instrument.class.inc +++ b/php/libraries/NDB_BVL_Instrument.class.inc @@ -298,6 +298,12 @@ abstract class NDB_BVL_Instrument extends NDB_Page $base . "project/instruments/$instrument.meta" ); } + // Set DataEntryType to normal or DirectEntry + if (isset($_REQUEST['key'])) { + $obj->DataEntryType = 'DirectEntry'; + } else { + $obj->DataEntryType = 'normal'; + } // Adds all of the form element and form rules to the page after // having instantiated the form above $obj->loadInstrumentFile( @@ -477,10 +483,7 @@ abstract class NDB_BVL_Instrument extends NDB_Page { // ALWAYS INCLUDE THESE! - if (isset($_REQUEST['key'])) { - $this->DataEntryType = 'DirectEntry'; - } else { - $this->DataEntryType = 'normal'; + if ($this->DataEntryType === 'normal') { // These are required for Save Data to work properly, but not when it's // a direct data entry page $this->addHidden( diff --git a/php/libraries/NDB_BVL_Instrument_LINST.class.inc b/php/libraries/NDB_BVL_Instrument_LINST.class.inc index 495843a4358..71b61d9572d 100644 --- a/php/libraries/NDB_BVL_Instrument_LINST.class.inc +++ b/php/libraries/NDB_BVL_Instrument_LINST.class.inc @@ -556,7 +556,9 @@ class NDB_BVL_Instrument_LINST extends \NDB_BVL_Instrument 'instrument_title', $pieces[1] ); - $this->_addMetadataFields(); + if ($this->DataEntryType!=="DirectEntry") { + $this->_addMetadataFields(); + } } break; case 'begingroup': diff --git a/test/unittests/NDB_BVL_Instrument_Test.php b/test/unittests/NDB_BVL_Instrument_Test.php index e7570e52149..31946dbd1e6 100644 --- a/test/unittests/NDB_BVL_Instrument_Test.php +++ b/test/unittests/NDB_BVL_Instrument_Test.php @@ -1335,10 +1335,11 @@ function testSaveValueAndSave() { $this->_setUpMockDB(); $this->_setTableData(); - $this->_instrument->commentID = 'commentID1'; - $this->_instrument->table = 'medical_history'; - $this->_instrument->testName = 'Test'; - $this->_instrument->formType = "XIN"; + $this->_instrument->commentID = 'commentID1'; + $this->_instrument->table = 'medical_history'; + $this->_instrument->testName = 'Test'; + $this->_instrument->formType = "XIN"; + $this->_instrument->DataEntryType = "normal"; $values = ['Date_taken' => '2005-06-06', 'arthritis_age' => 2, 'arthritis_age_status' => 'status' @@ -1791,7 +1792,8 @@ function testDisplay() $this->_setUpMockDB(); $this->_setTableData(); $this->_instrument->setup("commentID1", "page"); - $this->_instrument->table = 'medical_history'; + $this->_instrument->table = 'medical_history'; + $this->_instrument->DataEntryType = "normal"; $this->assertStringContainsString( "\n", $this->_instrument->display()