[us-commits] r2841 - in trunk: . lims_upds programs/us_astfem_sim

svn at svn.aucsolutions.com svn at svn.aucsolutions.com
Wed Nov 6 15:52:39 MST 2019


Author: gegorbet
Date: 2019-11-06 22:52:39 +0000 (Wed, 06 Nov 2019)
New Revision: 2841

Added:
   trunk/lims_upds/
   trunk/lims_upds/add_RIProfile.sql
   trunk/lims_upds/add_autoflow.sql
   trunk/lims_upds/add_data_desc.sql
   trunk/lims_upds/add_expDesign.sql
   trunk/lims_upds/add_extincp.sql
   trunk/lims_upds/add_imageBuffer_table.sql
   trunk/lims_upds/add_image_filename.sql
   trunk/lims_upds/add_manual.sql
   trunk/lims_upds/add_mrecs.sql
   trunk/lims_upds/add_noise_desc.sql
   trunk/lims_upds/add_notice.sql
   trunk/lims_upds/add_protocol.sql
   trunk/lims_upds/add_radialcal.sql
   trunk/lims_upds/add_speedSteps.sql
   trunk/lims_upds/add_speeds.sql
   trunk/lims_upds/add_timeState.sql
   trunk/lims_upds/alter_abstractCenterpiece.sql
   trunk/lims_upds/alter_abstractCenterpiece2.sql
   trunk/lims_upds/alter_analyte.sql
   trunk/lims_upds/alter_aprofile.sql
   trunk/lims_upds/alter_cluster_auth-2.sql
   trunk/lims_upds/alter_cluster_auth.sql
   trunk/lims_upds/alter_cluster_auth_tres.sql
   trunk/lims_upds/alter_dmga_settings.sql
   trunk/lims_upds/alter_edited.sql
   trunk/lims_upds/alter_exptype.sql
   trunk/lims_upds/alter_gfac_01.sql
   trunk/lims_upds/alter_hpcreq.sql
   trunk/lims_upds/alter_hpcreq2.sql
   trunk/lims_upds/alter_hpcresdat.sql
   trunk/lims_upds/alter_instrument.sql
   trunk/lims_upds/alter_instrument_work.sql
   trunk/lims_upds/alter_metadata.sql
   trunk/lims_upds/alter_permits.sql
   trunk/lims_upds/alter_project.sql
   trunk/lims_upds/alter_reportDocument.sql
   trunk/lims_upds/alter_ripro_type.sql
   trunk/lims_upds/count_users.sh
   trunk/lims_upds/delete_lab2.sh
   trunk/lims_upds/delete_noise.sql
   trunk/lims_upds/desc_cluster_auth.sql
   trunk/lims_upds/drop-spectrum-constraints.sql
   trunk/lims_upds/drop_manual.sql
   trunk/lims_upds/dump_project.sh
   trunk/lims_upds/find_user.sh
   trunk/lims_upds/getdbpw
   trunk/lims_upds/list_db_info.sh
   trunk/lims_upds/list_metadata.sh
   trunk/lims_upds/list_people.sh
   trunk/lims_upds/list_people.sql
   trunk/lims_upds/list_permits.sql
   trunk/lims_upds/new_jquery.sh
   trunk/lims_upds/old_jquery.sh
   trunk/lims_upds/show_bandform.sh
   trunk/lims_upds/show_latest_users.sh
   trunk/lims_upds/show_projguid.sh
   trunk/lims_upds/svn_info.sh
   trunk/lims_upds/temp.sh
   trunk/lims_upds/upd_people_lev4.sh
   trunk/lims_upds/upd_people_procs.sh
   trunk/lims_upds/update-local.sh
   trunk/lims_upds/update-report-tables.sql
   trunk/lims_upds/update-us3-autoflow-procs.sh
   trunk/lims_upds/update-us3-db.sh
   trunk/lims_upds/update-us3-hardware-procs.sh
   trunk/lims_upds/update-us3-lims.sh
   trunk/lims_upds/update-us3-procs.sh
   trunk/lims_upds/update_CustomGrid.sql
   trunk/lims_upds/update_dblist.sh
   trunk/lims_upds/update_dmga.sql
   trunk/lims_upds/update_lev4_people.sql
   trunk/lims_upds/update_model_desc.sql
   trunk/lims_upds/update_pcsa.sql
   trunk/lims_upds/update_rotors.sql
   trunk/lims_upds/update_rotors2.sql
   trunk/lims_upds/us3_add_autoflow.sh
   trunk/lims_upds/us3_add_exper.sh
   trunk/lims_upds/us3_add_extincp.sh
   trunk/lims_upds/us3_add_extincp.sql
   trunk/lims_upds/us3_add_manual.sh
   trunk/lims_upds/us3_add_mrecs.sh
   trunk/lims_upds/us3_add_mrecsprocs.sh
   trunk/lims_upds/us3_add_notice.sh
   trunk/lims_upds/us3_add_proto.sh
   trunk/lims_upds/us3_add_radialCal_table_cch.sh
   trunk/lims_upds/us3_add_speeds.sh
   trunk/lims_upds/us3_add_timestate.sh
   trunk/lims_upds/us3_alter_analyte.sh
   trunk/lims_upds/us3_alter_aprofile.sh
   trunk/lims_upds/us3_alter_bufcomp.sh
   trunk/lims_upds/us3_alter_hpcanareq.sh
   trunk/lims_upds/us3_alter_instrument.sh
   trunk/lims_upds/us3_alter_instrument_cauma3.sh
   trunk/lims_upds/us3_alter_instrument_cch.sh
   trunk/lims_upds/us3_alter_metadata.sh
   trunk/lims_upds/us3_change_bc.sh
   trunk/lims_upds/us3_count_allusers.sql
   trunk/lims_upds/us3_drop_manual.sh
   trunk/lims_upds/us3_exp_procs.sql
   trunk/lims_upds/us3_insert_bc.sh
   trunk/lims_upds/us3_model_procs.sql
   trunk/lims_upds/us3_people_procs.sql
   trunk/lims_upds/us3_show_bc.sh
   trunk/lims_upds/us3_timestate_procs.sql
   trunk/lims_upds/us3_upd_buff_procs.sh
   trunk/lims_upds/us3_upd_dmga.sh
   trunk/lims_upds/us3_upd_pcsa.sh
   trunk/lims_upds/us3_upd_proj_procs.sh
   trunk/lims_upds/us3_upd_project.sh
   trunk/lims_upds/us3_upd_proto_procs.sh
   trunk/lims_upds/us3_upd_solu_procs.sh
   trunk/lims_upds/us3_update_admin_passwd.sh
   trunk/lims_upds/us3_update_admin_passwd.sql
   trunk/lims_upds/us3_update_anabuf.sh
   trunk/lims_upds/us3_update_clusters.sh
   trunk/lims_upds/us3_update_exp.sh
   trunk/lims_upds/us3_update_expdata.sh
   trunk/lims_upds/us3_update_expdata_t.sh
   trunk/lims_upds/us3_update_groupcount.sh
   trunk/lims_upds/us3_update_groupcount.sql
   trunk/lims_upds/us3_update_model.sh
   trunk/lims_upds/us3_update_timestate.sh
Modified:
   trunk/programs/us_astfem_sim/us_astfem_sim.cpp
Log:
new lims updates scripts directory in ~us3/lims/database/lims_upds

Added: trunk/lims_upds/add_RIProfile.sql
===================================================================
--- trunk/lims_upds/add_RIProfile.sql	                        (rev 0)
+++ trunk/lims_upds/add_RIProfile.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,3 @@
+ALTER TABLE experiment
+  ADD COLUMN RIProfile LONGTEXT NULL
+  AFTER comment;

Added: trunk/lims_upds/add_autoflow.sql
===================================================================
--- trunk/lims_upds/add_autoflow.sql	                        (rev 0)
+++ trunk/lims_upds/add_autoflow.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,25 @@
+-- -----------------------------------------------------
+-- Table autoflow
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS autoflow;
+
+CREATE  TABLE IF NOT EXISTS autoflow (
+  ID int(11) NOT NULL AUTO_INCREMENT ,
+  protName varchar(80) NULL,
+  cellChNum int(10) NULL,
+  tripleNum int(10) NULL,
+  duration int(10)  NULL,
+  runName varchar(300) NULL,
+  expID  int(10) NULL,
+  runID  int(10) NULL,
+  status enum('LIVE_UPDATE','EDITING','ANALYSIS','REPORT') NOT NULL,
+  dataPath varchar(300) NULL,
+  optimaName varchar(300) NULL,
+  runStarted TIMESTAMP NULL,
+  invID  INT NULL,
+  corrRadii enum('YES', 'NO') NOT NULL,
+  created TIMESTAMP NULL,
+  PRIMARY KEY (ID) )
+ENGINE = InnoDB;
+
+

Added: trunk/lims_upds/add_data_desc.sql
===================================================================
--- trunk/lims_upds/add_data_desc.sql	                        (rev 0)
+++ trunk/lims_upds/add_data_desc.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,7 @@
+--
+-- Add the data description field to the reports. 
+--
+
+ALTER TABLE reportTriple
+  ADD COLUMN dataDescription VARCHAR(255) NOT NULL DEFAULT ''
+  AFTER triple;

Added: trunk/lims_upds/add_expDesign.sql
===================================================================
--- trunk/lims_upds/add_expDesign.sql	                        (rev 0)
+++ trunk/lims_upds/add_expDesign.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,3 @@
+ALTER TABLE project
+  ADD COLUMN expDesign TEXT NULL
+  AFTER AUC_questions;

Added: trunk/lims_upds/add_extincp.sql
===================================================================
--- trunk/lims_upds/add_extincp.sql	                        (rev 0)
+++ trunk/lims_upds/add_extincp.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,15 @@
+-- -----------------------------------------------------
+-- Table extinctionProfile
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS extinctionProfile;
+
+CREATE TABLE extinctionProfile (
+  profileID int(11) NOT NULL AUTO_INCREMENT ,
+  componentID int(11) NOT NULL ,
+  componentType  enum( 'Buffer', 'Analyte', 'Sample' ) NOT NULL,
+  valueType  enum( 'absorbance', 'molarExtinction', 'massExtinction' ) NOT NULL,
+  xml longtext DEFAULT NULL ,
+  PRIMARY KEY (profileID) ,
+  INDEX ndx_component_ID (componentID ASC) )
+ENGINE = InnoDB;
+

Added: trunk/lims_upds/add_imageBuffer_table.sql
===================================================================
--- trunk/lims_upds/add_imageBuffer_table.sql	                        (rev 0)
+++ trunk/lims_upds/add_imageBuffer_table.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,25 @@
+--
+-- add_imageBuffer_table.sql
+--
+-- creates the table
+--
+
+CREATE  TABLE IF NOT EXISTS imageBuffer (
+  imageID int(11) NOT NULL ,
+  bufferID int(11) NOT NULL ,
+  PRIMARY KEY (imageID) ,
+  INDEX ndx_imageBuffer_imageID   (imageID ASC) ,
+  INDEX ndx_imageBuffer_bufferID (bufferID ASC) ,
+  CONSTRAINT fk_imageBuffer_imageID
+    FOREIGN KEY (imageID )
+    REFERENCES image (imageID )
+    ON DELETE CASCADE
+    ON UPDATE CASCADE,
+  CONSTRAINT fk_imageBuffer_bufferID
+    FOREIGN KEY (bufferID )
+    REFERENCES buffer (bufferID )
+    ON DELETE CASCADE
+    ON UPDATE CASCADE)
+ENGINE = InnoDB;
+
+

Added: trunk/lims_upds/add_image_filename.sql
===================================================================
--- trunk/lims_upds/add_image_filename.sql	                        (rev 0)
+++ trunk/lims_upds/add_image_filename.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,7 @@
+--
+-- Add a filename field to the gel images. 
+--
+
+ALTER TABLE image
+  ADD COLUMN filename VARCHAR(255) NOT NULL DEFAULT ''
+  AFTER gelPicture;

Added: trunk/lims_upds/add_manual.sql
===================================================================
--- trunk/lims_upds/add_manual.sql	                        (rev 0)
+++ trunk/lims_upds/add_manual.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,3 @@
+ALTER TABLE buffer
+  ADD COLUMN manual tinyint(1) NOT NULL DEFAULT 0
+  AFTER density;

Added: trunk/lims_upds/add_mrecs.sql
===================================================================
--- trunk/lims_upds/add_mrecs.sql	                        (rev 0)
+++ trunk/lims_upds/add_mrecs.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,23 @@
+-- -----------------------------------------------------
+-- Table pcsa_modelrecs
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS pcsa_modelrecs ;
+
+CREATE  TABLE IF NOT EXISTS pcsa_modelrecs (
+  mrecsID int(11) NOT NULL AUTO_INCREMENT ,
+  editedDataID int(11) NOT NULL DEFAULT 1,
+  modelID int(11) NOT NULL DEFAULT 0,
+  mrecsGUID CHAR(36) NOT NULL UNIQUE ,
+  description VARCHAR(160) NULL DEFAULT NULL, -- includes 80 for runID and 80 for other
+  xml LONGTEXT NULL DEFAULT NULL ,
+  lastUpdated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
+  PRIMARY KEY (mrecsID) ,
+  INDEX ndx_mrecs_editedDataID (editedDataID ASC) ,
+  CONSTRAINT fk_mrecs_editDataID
+    FOREIGN KEY (editedDataID )
+    REFERENCES editedData (editedDataID )
+    ON DELETE NO ACTION
+    ON UPDATE CASCADE)
+ENGINE = InnoDB;
+
+

Added: trunk/lims_upds/add_noise_desc.sql
===================================================================
--- trunk/lims_upds/add_noise_desc.sql	                        (rev 0)
+++ trunk/lims_upds/add_noise_desc.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,7 @@
+--
+-- Update the model description to be up to 160 characters
+--
+
+ALTER TABLE noise
+  ADD COLUMN description VARCHAR(160) NULL DEFAULT NULL
+  AFTER noiseType;

Added: trunk/lims_upds/add_notice.sql
===================================================================
--- trunk/lims_upds/add_notice.sql	                        (rev 0)
+++ trunk/lims_upds/add_notice.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,18 @@
+-- -----------------------------------------------------
+-- Table notice
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS notice ;
+
+CREATE  TABLE IF NOT EXISTS notice (
+  id int(11) NOT NULL AUTO_INCREMENT ,
+  type enum('info','warn','crit'),
+  revision VARCHAR(12) NULL DEFAULT NULL,
+  message LONGTEXT NULL DEFAULT NULL ,
+  lastUpdated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
+  PRIMARY KEY (id) )
+ENGINE = InnoDB;
+
+## Grants for us3_notice@% ##
+GRANT USAGE ON *.* TO 'us3_notice'@'%' IDENTIFIED BY PASSWORD '*95BD446FAE62A858AB140023019D162269B6B9F6';
+GRANT ALL PRIVILEGES ON `us3_notice`.* TO 'us3_notice'@'%';
+

Added: trunk/lims_upds/add_protocol.sql
===================================================================
--- trunk/lims_upds/add_protocol.sql	                        (rev 0)
+++ trunk/lims_upds/add_protocol.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,46 @@
+-- -----------------------------------------------------
+-- Table protocol
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS protocol ;
+
+CREATE  TABLE IF NOT EXISTS protocol (
+  protocolID int(11) NOT NULL AUTO_INCREMENT ,
+  protocolGUID char(36) NOT NULL UNIQUE ,
+  description varchar(160) NOT NULL UNIQUE ,
+  xml longtext NOT NULL ,
+  optimaHost varchar(24) NOT NULL ,
+  dateUpdated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
+  rotorID int(11) NULL ,
+  speed1 int(11) NULL ,
+  duration float NULL ,
+  usedcells int(11) NULL ,
+  estscans int(11) NULL ,
+  solution1 varchar(80) NULL ,
+  solution2 varchar(80) NULL ,
+  wavelengths int(11) NULL ,
+  PRIMARY KEY (protocolID) )
+ENGINE = InnoDB;
+
+
+-- -----------------------------------------------------
+-- Table prototcolPerson
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS protocolPerson ;
+
+CREATE  TABLE IF NOT EXISTS protocolPerson (
+  protocolID int(11) NOT NULL ,
+  personID int(11) NOT NULL ,
+  INDEX ndx_protocolPerson_personID  (personID ASC) ,
+  INDEX ndx_protocolPerson_protocolID (protocolID ASC) ,
+  CONSTRAINT fk_protocolPerson_personID
+    FOREIGN KEY (personID )
+    REFERENCES people (personID )
+    ON DELETE CASCADE
+    ON UPDATE CASCADE,
+  CONSTRAINT fk_protocolPerson_protocolID
+    FOREIGN KEY (protocolID )
+    REFERENCES protocol (protocolID )
+    ON DELETE NO ACTION
+    ON UPDATE CASCADE)
+ENGINE = InnoDB;
+

Added: trunk/lims_upds/add_radialcal.sql
===================================================================
--- trunk/lims_upds/add_radialcal.sql	                        (rev 0)
+++ trunk/lims_upds/add_radialcal.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,15 @@
+-- -----------------------------------------------------
+-- Table radialCalibration
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS radialCalibration ;
+
+CREATE  TABLE IF NOT EXISTS radialCalibration (
+  radialCalID int(11) NOT NULL AUTO_INCREMENT ,
+  radialCalGUID char(36) NOT NULL UNIQUE ,
+  speed int(11) NOT NULL DEFAULT 0 ,
+  rotorCalID int(11) NOT NULL DEFAULT 0 ,
+  dateUpdated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
+  PRIMARY KEY (radialCalID) )
+ENGINE = InnoDB;
+
+

Added: trunk/lims_upds/add_speedSteps.sql
===================================================================
--- trunk/lims_upds/add_speedSteps.sql	                        (rev 0)
+++ trunk/lims_upds/add_speedSteps.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,32 @@
+--
+-- add_speedSteps.sql
+--
+-- creates the table
+--
+
+CREATE  TABLE IF NOT EXISTS speedstep (
+  speedstepID int(11) NOT NULL AUTO_INCREMENT ,
+  experimentID int(11) NOT NULL ,
+  scans int(11) NOT NULL ,
+  durationhrs int(11) NOT NULL ,
+  durationmins double NOT NULL ,
+  delayhrs int(11) NOT NULL ,
+  delaymins double NOT NULL ,
+  rotorspeed int(11) NOT NULL ,
+  acceleration int(11) NOT NULL ,
+  accelerflag tinyint(1) DEFAULT 1 ,
+  w2tfirst float NOT NULL ,
+  w2tlast float NOT NULL ,
+  timefirst int(11) NOT NULL ,
+  timelast int(11) NOT NULL ,
+  setspeed int(11) NOT NULL ,
+  avgspeed float NOT NULL ,
+  speedsdev float NOT NULL ,
+  PRIMARY KEY (speedstepID) ,
+  CONSTRAINT fk_speedstep_experimentID
+    FOREIGN KEY (experimentID)
+    REFERENCES experiment (experimentID)
+    ON DELETE CASCADE
+    ON UPDATE CASCADE)
+ENGINE = InnoDB;
+

Added: trunk/lims_upds/add_speeds.sql
===================================================================
--- trunk/lims_upds/add_speeds.sql	                        (rev 0)
+++ trunk/lims_upds/add_speeds.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,5 @@
+ALTER TABLE speedstep
+  ADD COLUMN setspeed int(11) NOT NULL DEFAULT 0
+  AFTER timelast,
+  ADD COLUMN avgspeed float NOT NULL DEFAULT 0.0,
+  ADD COLUMN speedsdev float NOT NULL DEFAULT 0.0;

Added: trunk/lims_upds/add_timeState.sql
===================================================================
--- trunk/lims_upds/add_timeState.sql	                        (rev 0)
+++ trunk/lims_upds/add_timeState.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,21 @@
+--
+-- add_timeState.sql
+--
+-- creates the table
+--
+
+CREATE  TABLE IF NOT EXISTS timestate (
+  timestateID int(11) NOT NULL AUTO_INCREMENT ,
+  experimentID int(11) NOT NULL ,
+  filename varchar(255) NOT NULL default '',
+  definitions longtext,
+  data longblob,
+  lastUpdated TIMESTAMP NULL ,
+  PRIMARY KEY (timestateID) ,
+  CONSTRAINT fk_timestate_experimentID
+    FOREIGN KEY (experimentID)
+    REFERENCES experiment (experimentID)
+    ON DELETE CASCADE
+    ON UPDATE CASCADE)
+ENGINE = InnoDB;
+

Added: trunk/lims_upds/alter_abstractCenterpiece.sql
===================================================================
--- trunk/lims_upds/alter_abstractCenterpiece.sql	                        (rev 0)
+++ trunk/lims_upds/alter_abstractCenterpiece.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,9 @@
+--
+-- alter_abstractCenterpiece.sql
+--
+-- change the fill method
+--
+
+ALTER TABLE abstractCenterpiece
+  MODIFY COLUMN loadMethod enum('top', 'side') NULL;
+

Added: trunk/lims_upds/alter_abstractCenterpiece2.sql
===================================================================
--- trunk/lims_upds/alter_abstractCenterpiece2.sql	                        (rev 0)
+++ trunk/lims_upds/alter_abstractCenterpiece2.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,12 @@
+--
+-- alter_abstractCenterpiece.sql
+--
+-- change the fill method
+--
+
+ALTER TABLE abstractCenterpiece
+  MODIFY COLUMN 
+  shape enum( 'standard', 'rectangular', 'circular', 'synthetic',
+              'band forming', 'meniscus matching', 'sector' )
+              NOT NULL DEFAULT 'standard';
+

Added: trunk/lims_upds/alter_analyte.sql
===================================================================
--- trunk/lims_upds/alter_analyte.sql	                        (rev 0)
+++ trunk/lims_upds/alter_analyte.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,32 @@
+--
+-- Alter/Update analyte and buffer tables for gradientForming and manual
+--
+
+ALTER TABLE analyte
+  ADD COLUMN gradientForming tinyint(1) NOT NULL DEFAULT '0'
+  AFTER molecularWeight;
+
+ALTER TABLE analyte
+  CHANGE doubleStranded  doubleStranded tinyint(1) NOT NULL default '0';
+
+ALTER TABLE analyte
+  CHANGE complement      complement     tinyint(1) NOT NULL default '0';
+
+ALTER TABLE analyte
+  CHANGE _3prime         _3prime        tinyint(1) NOT NULL default '0';
+
+ALTER TABLE analyte
+  CHANGE _5prime         _5prime        tinyint(1) NOT NULL default '0';
+
+ALTER TABLE buffer
+  ADD COLUMN manual tinyint(1) NOT NULL DEFAULT '0'
+  AFTER density;
+
+ALTER TABLE bufferComponent
+  ADD COLUMN c_range text
+  AFTER density;
+
+ALTER TABLE bufferComponent
+  ADD COLUMN gradientForming tinyint(1) NOT NULL DEFAULT '0'
+  AFTER c_range;
+

Added: trunk/lims_upds/alter_aprofile.sql
===================================================================
--- trunk/lims_upds/alter_aprofile.sql	                        (rev 0)
+++ trunk/lims_upds/alter_aprofile.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,80 @@
+--
+-- Alter analysis profile and related tables;
+--
+
+-- -----------------------------------------------------
+-- Table protocol (add column)
+-- -----------------------------------------------------
+ALTER TABLE protocol
+  ADD COLUMN aprofileGUID char(36) NULL
+  AFTER wavelengths;
+
+-- -----------------------------------------------------
+-- -- Table experiment (replace column)
+-- Table experiment (add column)
+-- -----------------------------------------------------
+-- ALTER TABLE experiment
+--   DROP COLUMN centrifugeProtocol;
+
+ALTER TABLE experiment
+  ADD COLUMN protocolGUID char(36) NULL
+  AFTER RIProfile;
+
+-- -----------------------------------------------------
+-- Table analysisprofile (new)
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS analysisprofile ;
+
+CREATE TABLE IF NOT EXISTS analysisprofile (
+  aprofileID int(11) NOT NULL AUTO_INCREMENT ,
+  aprofileGUID char(36) NOT NULL UNIQUE ,
+  name TEXT NOT NULL ,
+  xml LONGTEXT NOT NULL ,
+  dateUpdated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ,
+  PRIMARY KEY (aprofileID) )
+ENGINE = InnoDB;
+
+-- -----------------------------------------------------
+-- Table protocolAprofile (new link table)
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS protocolAprofile ;
+
+CREATE  TABLE IF NOT EXISTS protocolAprofile (
+  protocolID int(11) NOT NULL ,
+  aprofileID int(11) NOT NULL ,
+  INDEX ndx_protocolAprofile_aprofileID (aprofileID ASC) ,
+  INDEX ndx_protocolAprofile_protocolID (protocolID ASC) ,
+  CONSTRAINT fk_protocolAprofile_aprofileID
+    FOREIGN KEY (aprofileID )
+    REFERENCES analysisprofile (aprofileID )
+    ON DELETE CASCADE
+    ON UPDATE CASCADE,
+  CONSTRAINT fk_protocolAprofile_protocolID
+    FOREIGN KEY (protocolID )
+    REFERENCES protocol (protocolID )
+    ON DELETE NO ACTION
+    ON UPDATE CASCADE)
+ENGINE = InnoDB;
+
+-- -----------------------------------------------------
+-- Table experimentProtocol (new link table)
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS experimentProtocol ;
+
+CREATE  TABLE IF NOT EXISTS experimentProtocol (
+  experimentID int(11) NOT NULL ,
+  protocolID int(11) NOT NULL ,
+  INDEX ndx_experimentProtocol_protocolID (protocolID ASC) ,
+  INDEX ndx_experimentProtocol_experimentID (experimentID ASC) ,
+  CONSTRAINT fk_experimentProtocol_protocolID
+    FOREIGN KEY (protocolID )
+    REFERENCES protocol (protocolID )
+    ON DELETE CASCADE
+    ON UPDATE CASCADE,
+  CONSTRAINT fk_experimentProtocol_experimentID
+    FOREIGN KEY (experimentID )
+    REFERENCES experiment (experimentID )
+    ON DELETE NO ACTION
+    ON UPDATE CASCADE)
+ENGINE = InnoDB;
+

Added: trunk/lims_upds/alter_cluster_auth-2.sql
===================================================================
--- trunk/lims_upds/alter_cluster_auth-2.sql	                        (rev 0)
+++ trunk/lims_upds/alter_cluster_auth-2.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,19 @@
+--
+-- Alter/Update clusterAuthorizations to reflect current clusters
+--
+
+ALTER TABLE people
+  CHANGE ClusterAuthorizations clusterAuthorizations varchar(255) NOT NULL;
+
+ALTER TABLE people
+  ALTER COLUMN clusterAuthorizations
+  SET DEFAULT 'stampede:lonestar5:comet:gordon:alamo';
+
+UPDATE people
+  SET clusterAuthorizations='stampede:lonestar5:comet:gordon:alamo'
+  WHERE userlevel<4;
+
+UPDATE people
+  SET clusterAuthorizations='stampede:lonestar5:comet:gordon:alamo:alamo-local'
+  WHERE userlevel>3;
+

Added: trunk/lims_upds/alter_cluster_auth.sql
===================================================================
--- trunk/lims_upds/alter_cluster_auth.sql	                        (rev 0)
+++ trunk/lims_upds/alter_cluster_auth.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,19 @@
+--
+-- Alter/Update clusterAuthorizations to reflect current clusters
+--
+
+-- ALTER TABLE people
+-- CHANGE ClusterAuthorizations clusterAuthorizations varchar(255) NOT NULL;
+
+ALTER TABLE people
+  ALTER COLUMN clusterAuthorizations
+  SET DEFAULT 'lonestar5:stampede2:comet:jetstream';
+
+UPDATE people
+  SET clusterAuthorizations='lonestar5:stampede2:comet:jetstream'
+  WHERE userlevel<4;
+
+UPDATE people
+  SET clusterAuthorizations='lonestar5:stampede2:comet:jetstream:jetstream-local'
+  WHERE userlevel>3;
+

Added: trunk/lims_upds/alter_cluster_auth_tres.sql
===================================================================
--- trunk/lims_upds/alter_cluster_auth_tres.sql	                        (rev 0)
+++ trunk/lims_upds/alter_cluster_auth_tres.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,19 @@
+--
+-- Alter/Update clusterAuthorizations to reflect current clusters
+--
+
+-- ALTER TABLE people
+-- CHANGE ClusterAuthorizations clusterAuthorizations varchar(255) NOT NULL;
+
+ALTER TABLE people
+  ALTER COLUMN clusterAuthorizations
+  SET DEFAULT 'trestles:stampede:lonestar:comet:gordon:alamo';
+
+UPDATE people
+  SET clusterAuthorizations='trestles:stampede:lonestar:comet:gordon:alamo'
+  WHERE userlevel<4;
+
+UPDATE people
+  SET clusterAuthorizations='trestles:stampede:lonestar:comet:gordon:alamo:juropa:jacinto:alamo-local:jacinto-local'
+  WHERE userlevel>3;
+

Added: trunk/lims_upds/alter_dmga_settings.sql
===================================================================
--- trunk/lims_upds/alter_dmga_settings.sql	                        (rev 0)
+++ trunk/lims_upds/alter_dmga_settings.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,44 @@
+--
+-- Alter/Update DMGA_Settings to the current settings columns
+--
+
+ALTER TABLE DMGA_Settings
+  CHANGE montecarlo_value  mc_iterations int(11) NOT NULL default '1';
+
+ALTER TABLE DMGA_Settings
+  CHANGE demes_value       demes         int(11) NOT NULL default '31';
+
+ALTER TABLE DMGA_Settings
+  CHANGE genes_value       genes         int(11) NOT NULL default '100';
+
+ALTER TABLE DMGA_Settings
+  CHANGE generations_value generations   int(11) NOT NULL default '100';
+
+ALTER TABLE DMGA_Settings
+  CHANGE crossover_value   mutation      int(11) NOT NULL default '50';
+
+ALTER TABLE DMGA_Settings
+  CHANGE mutation_value    crossover     int(11) NOT NULL default '50';
+
+ALTER TABLE DMGA_Settings
+  CHANGE plague_value      plague        int(11) NOT NULL default '4';
+
+ALTER TABLE DMGA_Settings
+  CHANGE elitism_value     elitism       int(11) NOT NULL default '2';
+
+ALTER TABLE DMGA_Settings
+  CHANGE migration_value   migration     int(11) NOT NULL default '3';
+
+ALTER TABLE DMGA_Settings
+  CHANGE seed_value        seed          int(11) NOT NULL default '0';
+
+ALTER TABLE DMGA_Settings
+  DROP COLUMN regularization_value
+
+ALTER TABLE DMGA_Settings
+  DROP COLUMN conc_threshold
+
+ALTER TABLE DMGA_Settings
+  ADD COLUMN p_grid int(11) NOT NULL DEFAULT '500'
+  AFTER migration_ratio;
+

Added: trunk/lims_upds/alter_edited.sql
===================================================================
--- trunk/lims_upds/alter_edited.sql	                        (rev 0)
+++ trunk/lims_upds/alter_edited.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,7 @@
+--
+-- Alter the editedData table to permit NULL 'data' column
+--
+
+ALTER TABLE editedData
+  MODIFY COLUMN data LONGBLOB NULL DEFAULT NULL;
+

Added: trunk/lims_upds/alter_exptype.sql
===================================================================
--- trunk/lims_upds/alter_exptype.sql	                        (rev 0)
+++ trunk/lims_upds/alter_exptype.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,10 @@
+--
+-- alter_abstractCenterpiece.sql
+--
+-- change the fill method
+--
+
+ALTER TABLE experiment
+  MODIFY COLUMN type ENUM('velocity', 'equilibrium', 'diffusion', 'buoyancy','calibration', 'other') NULL
+    DEFAULT 'velocity';
+

Added: trunk/lims_upds/alter_gfac_01.sql
===================================================================
--- trunk/lims_upds/alter_gfac_01.sql	                        (rev 0)
+++ trunk/lims_upds/alter_gfac_01.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,10 @@
+--
+-- Alter analysis table for tarfile and status columns
+--
+
+ALTER TABLE analysis
+  MODIFY COLUMN tarfile longblob NULL;
+
+ALTER TABLE analysis
+  MODIFY COLUMN status enum('SUBMITTED','SUBMIT_TIMEOUT','RUNNING','RUN_TIMEOUT','DATA','DATA_TIMEOUT','COMPLETE','CANCELLED','CANCELED','FAILED','FAILED_DATA','ERROR','FINISHED','DONE') DEFAULT NULL;
+

Added: trunk/lims_upds/alter_hpcreq.sql
===================================================================
--- trunk/lims_upds/alter_hpcreq.sql	                        (rev 0)
+++ trunk/lims_upds/alter_hpcreq.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,7 @@
+--
+-- Alter HPCAnalysisRequest for requestXMLFile and method columns
+--
+
+ALTER TABLE HPCAnalysisRequest
+  ADD COLUMN analType text NULL;
+

Added: trunk/lims_upds/alter_hpcreq2.sql
===================================================================
--- trunk/lims_upds/alter_hpcreq2.sql	                        (rev 0)
+++ trunk/lims_upds/alter_hpcreq2.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,29 @@
+--
+-- Alter HPCAnalysisRequest for analType columns
+--
+
+UPDATE HPCAnalysisRequest
+  SET analType = '2DSA'
+  WHERE analType IS NULL
+  AND method = '2DSA';
+
+UPDATE HPCAnalysisRequest
+  SET analType = '2DSA-CG'
+  WHERE analType IS NULL
+  AND method = '2DSA_CG';
+
+UPDATE HPCAnalysisRequest
+  SET analType = 'GA'
+  WHERE analType IS NULL
+  AND method = 'GA';
+
+UPDATE HPCAnalysisRequest
+  SET analType = 'DMGA'
+  WHERE analType IS NULL
+  AND method = 'DMGA';
+
+UPDATE HPCAnalysisRequest
+  SET analType = 'PCSA'
+  WHERE analType IS NULL
+  AND method = 'PCSA';
+

Added: trunk/lims_upds/alter_hpcresdat.sql
===================================================================
--- trunk/lims_upds/alter_hpcresdat.sql	                        (rev 0)
+++ trunk/lims_upds/alter_hpcresdat.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,7 @@
+--
+-- Alter HPCAnalysisRequest for requestXMLFile and method columns
+--
+
+ALTER TABLE HPCAnalysisResultData
+  MODIFY COLUMN HPCAnalysisResultType enum('model','noise','job_stats','mrecs','unknown') NOT NULL default 'unknown';
+

Added: trunk/lims_upds/alter_instrument.sql
===================================================================
--- trunk/lims_upds/alter_instrument.sql	                        (rev 0)
+++ trunk/lims_upds/alter_instrument.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,17 @@
+--
+-- Alter instrument table by adding new column
+--
+
+ALTER TABLE instrument
+  ADD COLUMN optimaHost         TEXT             NULL AFTER radialCalID,
+  ADD COLUMN optimaPort         int(11)          NULL AFTER optimaHost,
+  ADD COLUMN optimaDBname       TEXT             NULL AFTER optimaPort,
+  ADD COLUMN optimaDBusername   TEXT             NULL AFTER optimaDBname,
+  ADD COLUMN optimaDBpassw      BLOB             NULL AFTER optimaDBusername,
+  ADD COLUMN chromaticAB        TEXT             NULL AFTER optimaDBpassw,
+  ADD COLUMN selected           BOOL             DEFAULT false AFTER chromaticAB,
+  ADD COLUMN opsys1             ENUM('UV/visible', 'Rayleigh Interference', 'Fluorescense', '(not installed)') NOT NULL AFTER selected,
+  ADD COLUMN opsys2             ENUM('UV/visible', 'Rayleigh Interference', 'Fluorescense', '(not installed)') NOT NULL AFTER opsys1,
+  ADD COLUMN opsys3             ENUM('UV/visible', 'Rayleigh Interference', 'Fluorescense', '(not installed)') NOT NULL AFTER opsys2,
+  ADD COLUMN RadCalWvl  	int(11)  	 NULL AFTER opsys3;       
+

Added: trunk/lims_upds/alter_instrument_work.sql
===================================================================
--- trunk/lims_upds/alter_instrument_work.sql	                        (rev 0)
+++ trunk/lims_upds/alter_instrument_work.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,41 @@
+--
+-- Alter instrument table by adding new column
+--
+
+
+--ALTER TABLE instrument         
+--  DROP COLUMN chromaticAB;
+
+
+--ALTER TABLE instrument         
+--  ADD COLUMN chromaticAB  TEXT  NULL AFTER optimaDBpassw;
+
+--ALTER TABLE instrument                                         
+--  ADD COLUMN RadCalWvl  TEXT  NULL AFTER opsys3;       
+
+ALTER TABLE instrument
+  ADD COLUMN optimaHost         TEXT             NULL AFTER radialCalID,
+  ADD COLUMN optimaPort         int(11)          NULL AFTER optimaHost,
+  ADD COLUMN optimaDBname       TEXT             NULL AFTER optimaPort,	
+  ADD COLUMN optimaDBusername   TEXT             NULL AFTER optimaDBname,	
+  ADD COLUMN optimaDBpassw      BLOB             NULL AFTER optimaDBusername,
+  ADD COLUMN chromaticAB        TEXT             NULL AFTER optimaDBpassw,		
+  ADD COLUMN selected           BOOL             DEFAULT false AFTER chromaticAB,
+  ADD COLUMN opsys1             ENUM('UV/visible', 'Rayleigh Interference', 'Fluorescense', '(not installed)') NOT NULL AFTER selected,
+  ADD COLUMN opsys2             ENUM('UV/visible', 'Rayleigh Interference', 'Fluorescense', '(not installed)') NOT NULL AFTER opsys1,
+  ADD COLUMN opsys3             ENUM('UV/visible', 'Rayleigh Interference', 'Fluorescense', '(not installed)') NOT NULL AFTER opsys2,
+  ADD COLUMN RadCalWvl          int(11)          NULL AFTER opsys3;       
+			
+
+--ALTER TABLE instrument
+--  DROP COLUMN optimaHost, 
+--  DROP COLUMN optimaPort, 
+--  DROP COLUMN optimaDBname,
+--  DROP COLUMN optimaDBusername,
+--  DROP COLUMN optimaDBpassw,
+--  DROP COLUMN chromaticAB, 
+--  DROP COLUMN selected,
+--  DROP COLUMN opsys1,
+--  DROP COLUMN opsys2,
+--  DROP COLUMN opsys3,
+--  DROP COLUMN RadCalWvl; 

Added: trunk/lims_upds/alter_metadata.sql
===================================================================
--- trunk/lims_upds/alter_metadata.sql	                        (rev 0)
+++ trunk/lims_upds/alter_metadata.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,67 @@
+--
+-- Alter newus3.metadata table by inserting entries
+--
+
+INSERT INTO metadata SET
+ institution       = 'Monash University',
+ inst_abbrev       = 'Monash',
+ dbname            = 'uslims3_Monash',
+ dbuser            = 'Monash_user',
+ dbpasswd          = 'xbs0uxkz',
+ dbhost            = 'uslims3.latrobe.edu.au',
+ limshost          = 'uslims3.latrobe.edu.au',
+ secure_user       = 'Monash_sec',
+ secure_pw         = '3chspe5h',
+ admin_fname       = 'Sarah',
+ admin_lname       = 'Atkinson',
+ admin_email       = 'sarah.atkinson at monash.edu',
+ admin_pw          = 'us3',
+ lab_name          = 'Biomedical Discovery Institute',
+ lab_contact       = 'Monash University',
+ location          = 'Victoria, Australia',
+ instrument_name   = 'XLI-1',
+ instrument_serial = '1234',
+ status            = 'completed';
+
+INSERT INTO metadata SET
+ institution       = 'LaTrobe University',
+ inst_abbrev       = 'latrobe',
+ dbname            = 'uslims3_latrobe',
+ dbuser            = 'latrobe_user',
+ dbpasswd          = 'xn2n9hb7',
+ dbhost            = 'uslims3.latrobe.edu.au',
+ limshost          = 'uslims3.latrobe.edu.au',
+ secure_user       = 'latrobe_sec',
+ secure_pw         = 'g18htwp0',
+ admin_fname       = 'Tao',
+ admin_lname       = 'Nelson',
+ admin_email       = 'tgnelson at students.latrobe.edu.au',
+ admin_pw          = 'us3',
+ lab_name          = 'Biomolecular Interaction Centre',
+ lab_contact       = 'LaTrobe University',
+ location          = 'Melbource, AU',
+ instrument_name   = 'XLI-1',
+ instrument_serial = '1234',
+ status            = 'completed';
+
+INSERT INTO metadata SET
+ institution       = 'The University of Melbourne',
+ inst_abbrev       = 'unimelb',
+ dbname            = 'uslims3_unimelb',
+ dbuser            = 'unimelb_user',
+ dbpasswd          = 'k1b841ph',
+ dbhost            = 'uslims3.latrobe.edu.au',
+ limshost          = 'uslims3.latrobe.edu.au',
+ secure_user       = 'unimelb_sec',
+ secure_pw         = 'hyqefs9j',
+ admin_fname       = 'Matt',
+ admin_lname       = 'Perugini',
+ admin_email       = 'perugini at unimelb.edu.au',
+ admin_pw          = 'us3',
+ lab_name          = 'Biomolecular Interaction Centre',
+ lab_contact       = 'University of Melbourne',
+ location          = 'Melbource, AU',
+ instrument_name   = 'XLI-1',
+ instrument_serial = '1234',
+ status            = 'completed';
+

Added: trunk/lims_upds/alter_permits.sql
===================================================================
--- trunk/lims_upds/alter_permits.sql	                        (rev 0)
+++ trunk/lims_upds/alter_permits.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,9 @@
+--
+-- Alter the permits table to handle collaborations too
+--
+
+ALTER TABLE permits
+  DROP FOREIGN KEY fk_permits_instrumentID;
+
+ALTER TABLE permits
+  MODIFY COLUMN instrumentID INT(11) DEFAULT NULL;

Added: trunk/lims_upds/alter_project.sql
===================================================================
--- trunk/lims_upds/alter_project.sql	                        (rev 0)
+++ trunk/lims_upds/alter_project.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,10 @@
+--
+-- Alter/Update Project table to have lastUpdated field
+--
+
+ALTER TABLE project
+  ADD COLUMN lastUpdated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
+  AFTER status;
+
+UPDATE project SET lastUpdated = now();
+

Added: trunk/lims_upds/alter_reportDocument.sql
===================================================================
--- trunk/lims_upds/alter_reportDocument.sql	                        (rev 0)
+++ trunk/lims_upds/alter_reportDocument.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,9 @@
+--
+-- alter_reportDocument.sql
+--
+-- change the label field
+--
+
+ALTER TABLE reportDocument
+  MODIFY COLUMN label VARCHAR(160) NOT NULL DEFAULT '';
+

Added: trunk/lims_upds/alter_ripro_type.sql
===================================================================
--- trunk/lims_upds/alter_ripro_type.sql	                        (rev 0)
+++ trunk/lims_upds/alter_ripro_type.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,9 @@
+--
+-- alter_ripro_type.sql
+--
+-- change the RIProfile type
+--
+
+ALTER TABLE experiment
+  MODIFY COLUMN RIProfile LONGTEXT DEFAULT '';
+

Added: trunk/lims_upds/count_users.sh
===================================================================
--- trunk/lims_upds/count_users.sh	                        (rev 0)
+++ trunk/lims_upds/count_users.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,16 @@
+# One time script to update all active US3 databases
+#  by creating the PCSA method
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~/lims/database
+
+##for db in `cat ~us3/database/dblist_upds.txt`
+##for db in `cat ~us3/database/dblist_upds.txt`
+##for db in uslims3_cauma3
+for db in `cat ~us3/lims/database/dblist.txt`
+
+do
+ echo "counting users from $db"
+ mysql $LOGIN $db < ./us3_count_allusers.sql
+done


Property changes on: trunk/lims_upds/count_users.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/delete_lab2.sh
===================================================================
--- trunk/lims_upds/delete_lab2.sh	                        (rev 0)
+++ trunk/lims_upds/delete_lab2.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,15 @@
+# Script to delete second entry in lab table
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+CMD="delete from lab where name='UTHSCSA Lab #2'"
+
+##for db in uslims3_cauma3
+##for db in `cat dblist_upds.txt`
+##for db in uslims3_devel
+##for db in uslims3_AUCSOL
+for db in `cat dblist.txt`
+  do
+  echo "delete from lab table of $db"
+  mysql ${LOGIN} -sNe "${CMD}" $db
+done


Property changes on: trunk/lims_upds/delete_lab2.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/delete_noise.sql
===================================================================
--- trunk/lims_upds/delete_noise.sql	                        (rev 0)
+++ trunk/lims_upds/delete_noise.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,46 @@
+--
+-- Update HPC table constraints to allow underlying data to be deleted,
+--  while HPC tables are not
+--
+
+SET FOREIGN_KEY_CHECKS=0;
+
+ALTER TABLE HPCDataset
+  DROP FOREIGN KEY fk_HPCDataset_editedDataID;
+
+ALTER TABLE HPCDataset
+  DROP INDEX ndx_HPCDataset_editedDataID;
+
+ALTER TABLE HPCDataset
+  MODIFY COLUMN editedDataID INT(11) DEFAULT NULL;
+
+ALTER TABLE HPCDataset
+  ADD FOREIGN KEY fk_HPCDataset_editedDataID (editedDataID)
+  REFERENCES editedData ( editedDataID )
+  ON DELETE SET NULL
+  ON UPDATE NO ACTION;
+
+ALTER TABLE HPCDataset
+  ADD INDEX ndx_HPCDataset_editedDataID (editedDataID ASC);
+
+ALTER TABLE HPCRequestData
+  DROP FOREIGN KEY fk_HPCRequestData_noiseID;
+
+ALTER TABLE HPCRequestData
+  MODIFY COLUMN noiseID INT(11) DEFAULT NULL;
+
+ALTER TABLE HPCRequestData
+  ADD FOREIGN KEY fk_HPCRequestData_noiseID (noiseID)
+  REFERENCES noise (noiseID)
+  ON DELETE SET NULL
+  ON UPDATE NO ACTION;
+
+ALTER TABLE HPCRequestData
+  ADD INDEX ndx_HPCRequestData_noiseID ( noiseID ASC );
+
+SET FOREIGN_KEY_CHECKS=1;
+
+DELETE noise
+FROM noise LEFT JOIN model
+ON ( noise.modelID = model.modelID )
+WHERE model.modelID IS NULL;

Added: trunk/lims_upds/desc_cluster_auth.sql
===================================================================
--- trunk/lims_upds/desc_cluster_auth.sql	                        (rev 0)
+++ trunk/lims_upds/desc_cluster_auth.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,2 @@
+DESC people;
+

Added: trunk/lims_upds/drop-spectrum-constraints.sql
===================================================================
--- trunk/lims_upds/drop-spectrum-constraints.sql	                        (rev 0)
+++ trunk/lims_upds/drop-spectrum-constraints.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,12 @@
+--
+-- drop_spectrum_constraints.sql
+--
+-- erase the constraints that go with the spectrum table; one or the other 
+--   will always fail
+--
+
+ALTER TABLE spectrum
+  DROP FOREIGN KEY fk_spectrum_bufferID;
+
+ALTER TABLE spectrum
+  DROP FOREIGN KEY fk_spectrum_analyteID;

Added: trunk/lims_upds/drop_manual.sql
===================================================================
--- trunk/lims_upds/drop_manual.sql	                        (rev 0)
+++ trunk/lims_upds/drop_manual.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1 @@
+ALTER TABLE buffer DROP COLUMN manual;

Added: trunk/lims_upds/dump_project.sh
===================================================================
--- trunk/lims_upds/dump_project.sh	                        (rev 0)
+++ trunk/lims_upds/dump_project.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,10 @@
+# Script to update the list of DBs to be altered
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##CMD="select * from project where projectID=63"
+##CMD="select * from project where projectID=66"
+CMD="select * from project where projectID=64"
+
+mysql ${LOGIN} -sNe "${CMD}" uslims3_HI
+


Property changes on: trunk/lims_upds/dump_project.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/find_user.sh
===================================================================
--- trunk/lims_upds/find_user.sh	                        (rev 0)
+++ trunk/lims_upds/find_user.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,26 @@
+#!/bin/bash
+# One time script to update all active US3 LIMS code
+
+cd /data/srv/www/htdocs/uslims3
+
+USER=$1
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+CMD="SELECT fname,lname,country,organization FROM people WHERE lname like '"
+CMD="${CMD}${USER}"
+CMD="${CMD}%'"
+  echo "CMD=$CMD"
+##CMD='SELECT fname,lname,country,organization FROM people'
+##for db in `cat ~us3/lims/database/dblist.txt`
+##for db in uslims3_cauma3
+##for db in `cat ~us3/lims/database/dblist_upds.txt`
+##for db in `cat ~us3/lims/database/dblist.txt`
+for db in `cat ~us3/lims/database/dblist.txt`
+do
+  echo "== Searching $db for $USER =="
+  pushd $db
+  echo $CMD | mysql $LOGIN $db
+  popd
+  sleep 1
+
+done


Property changes on: trunk/lims_upds/find_user.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/getdbpw
===================================================================
--- trunk/lims_upds/getdbpw	                        (rev 0)
+++ trunk/lims_upds/getdbpw	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,5 @@
+#!/bin/bash
+#	getdbpw
+ 
+read -s -p "Password: " PASSW
+export PASSW


Property changes on: trunk/lims_upds/getdbpw
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/list_db_info.sh
===================================================================
--- trunk/lims_upds/list_db_info.sh	                        (rev 0)
+++ trunk/lims_upds/list_db_info.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,14 @@
+# One time script to list country,org information
+#  for all active US3 databases
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+CMD='SELECT fname,lname,country,organization FROM people WHERE userlevel=3;'
+##for db in uslims3_Uni_KN
+for db in `cat dblist.txt`
+
+do
+ echo "=== DB:  $db ==="
+ echo $CMD | mysql $LOGIN $db
+done
+


Property changes on: trunk/lims_upds/list_db_info.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/list_metadata.sh
===================================================================
--- trunk/lims_upds/list_metadata.sh	                        (rev 0)
+++ trunk/lims_upds/list_metadata.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,9 @@
+# Script to update the list of DBs to be altered
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+CMD="select * from metadata"
+DB="newus3"
+
+mysql ${LOGIN} -sNe "$CMD" $DB >metadata_list.txt
+


Property changes on: trunk/lims_upds/list_metadata.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/list_people.sh
===================================================================
--- trunk/lims_upds/list_people.sh	                        (rev 0)
+++ trunk/lims_upds/list_people.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,12 @@
+# One time script to list people in most-used databases
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in `cat dblist.txt`
+for db in uslims3_CU_Boulder uslims3_NVAX
+
+do
+ echo "==========================================================="
+ echo "Email list from $db"
+ mysql $LOGIN $db < ./list_people.sql
+done


Property changes on: trunk/lims_upds/list_people.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/list_people.sql
===================================================================
--- trunk/lims_upds/list_people.sql	                        (rev 0)
+++ trunk/lims_upds/list_people.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,4 @@
+SELECT email, submitTime
+FROM HPCAnalysisRequest
+WHERE STR_TO_DATE(submitTime,'%Y-%m-%d') > STR_TO_DATE('2018-09','%Y-%m-%d');
+ORDER BY email, submitTime DESC

Added: trunk/lims_upds/list_permits.sql
===================================================================
--- trunk/lims_upds/list_permits.sql	                        (rev 0)
+++ trunk/lims_upds/list_permits.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,5 @@
+--
+-- List permit table from a database
+--
+
+SELECT * from permits;

Added: trunk/lims_upds/new_jquery.sh
===================================================================
--- trunk/lims_upds/new_jquery.sh	                        (rev 0)
+++ trunk/lims_upds/new_jquery.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,90 @@
+#!/bin/sh
+#	new_jquery.sh
+ 
+INSTS=" \
+uslims3_AESKU \
+uslims3_Avatar \
+uslims3_BIOCORUW \
+uslims3_BUT \
+uslims3_Beckman \
+uslims3_CAUMA \
+uslims3_ColoState \
+uslims3_Crucell_B \
+uslims3_DRL \
+uslims3_DS \
+uslims3_EPFL \
+uslims3_FAU \
+uslims3_FSU_IMB \
+uslims3_HEXAL \
+uslims3_HHU \
+uslims3_IGBMC_ISB \
+uslims3_IISC \
+uslims3_IMTECH \
+uslims3_IUBloom \
+uslims3_JGU \
+uslims3_KAUST \
+uslims3_LU \
+uslims3_MHH \
+uslims3_MNU \
+uslims3_MPIB \
+uslims3_MPI_KGF \
+uslims3_MPIbpc \
+uslims3_MSSM \
+uslims3_MUSOM \
+uslims3_NCMH \
+uslims3_NIST \
+uslims3_NREL \
+uslims3_NTU1 \
+uslims3_NU \
+uslims3_OUHSC \
+uslims3_Osaka_U \
+uslims3_PSU_BMB \
+uslims3_PU \
+uslims3_RCaH \
+uslims3_Rice \
+uslims3_Roche \
+uslims3_SGG \
+uslims3_Sinica \
+uslims3_TAMU \
+uslims3_TIT \
+uslims3_TJU \
+uslims3_TUM \
+uslims3_UAB \
+uslims3_UCSF \
+uslims3_UCSanDiego \
+uslims3_UIC \
+uslims3_UMICH \
+uslims3_UMassMed \
+uslims3_US3_DEMO \
+uslims3_USTC \
+uslims3_UTAustin \
+uslims3_UU_NL \
+uslims3_UVic \
+uslims3_UW \
+uslims3_UW_Biophys \
+uslims3_U_Regensbg \
+uslims3_Uni_KN \
+uslims3_Univ_Leeds \
+uslims3_UofL \
+uslims3_UofU \
+uslims3_WSU \
+uslims3_YCU \
+uslims3_cauma3d \
+uslims3_uea \
+uslims3_unimelb \
+uslims3_weizmann \
+us3 \
+"
+##uslims3_cauma3
+
+BDIR="/srv/www/htdocs/uslims3"
+CFILE="../../../common/js/jquery-1.11.1.min.js"
+
+for INST in ${INSTS}; do
+  JDIR=${BDIR}/${INST}/js
+  cd ${JDIR}
+  mv jquery.js jquery-old.js
+  ln -s ${CFILE} jquery.js
+  ls -l ${JDIR}/jquery.js
+done
+


Property changes on: trunk/lims_upds/new_jquery.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/old_jquery.sh
===================================================================
--- trunk/lims_upds/old_jquery.sh	                        (rev 0)
+++ trunk/lims_upds/old_jquery.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,89 @@
+#!/bin/sh
+#	new_jquery.sh
+ 
+INSTS=" \
+uslims3_AESKU \
+uslims3_Avatar \
+uslims3_BIOCORUW \
+uslims3_BUT \
+uslims3_Beckman \
+uslims3_ColoState \
+uslims3_Crucell_B \
+uslims3_DRL \
+uslims3_DS \
+uslims3_EPFL \
+uslims3_FAU \
+uslims3_FSU_IMB \
+uslims3_HEXAL \
+uslims3_HHU \
+uslims3_IGBMC_ISB \
+uslims3_IISC \
+uslims3_IMTECH \
+uslims3_IUBloom \
+uslims3_JGU \
+uslims3_KAUST \
+uslims3_LU \
+uslims3_MHH \
+uslims3_MNU \
+uslims3_MPIB \
+uslims3_MPI_KGF \
+uslims3_MPIbpc \
+uslims3_MSSM \
+uslims3_MUSOM \
+uslims3_NCMH \
+uslims3_NIST \
+uslims3_NREL \
+uslims3_NTU1 \
+uslims3_NU \
+uslims3_OUHSC \
+uslims3_Osaka_U \
+uslims3_PSU_BMB \
+uslims3_PU \
+uslims3_RCaH \
+uslims3_Rice \
+uslims3_Roche \
+uslims3_SGG \
+uslims3_Sinica \
+uslims3_TAMU \
+uslims3_TIT \
+uslims3_TJU \
+uslims3_TUM \
+uslims3_UAB \
+uslims3_UCSF \
+uslims3_UCSanDiego \
+uslims3_UIC \
+uslims3_UMICH \
+uslims3_UMassMed \
+uslims3_US3_DEMO \
+uslims3_USTC \
+uslims3_UTAustin \
+uslims3_UU_NL \
+uslims3_UVic \
+uslims3_UW \
+uslims3_UW_Biophys \
+uslims3_U_Regensbg \
+uslims3_Uni_KN \
+uslims3_Univ_Leeds \
+uslims3_UofL \
+uslims3_UofU \
+uslims3_WSU \
+uslims3_YCU \
+uslims3_cauma3d \
+uslims3_uea \
+uslims3_unimelb \
+uslims3_weizmann \
+us3 \
+"
+##uslims3_cauma3
+##uslims3_CAUMA
+
+BDIR="/srv/www/htdocs/uslims3"
+
+for INST in ${INSTS}; do
+  JDIR=${BDIR}/${INST}/js
+  cd ${JDIR}
+  mv jquery.js jquery-new.js
+  mv jquery-old.js jquery.js
+  ls -l ${JDIR}/jquery.js
+done
+


Property changes on: trunk/lims_upds/old_jquery.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/show_bandform.sh
===================================================================
--- trunk/lims_upds/show_bandform.sh	                        (rev 0)
+++ trunk/lims_upds/show_bandform.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,12 @@
+# Script to show band-forming centerpiece cell experiments in DBs
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+CMD="select cellID,abstractCenterpieceID,experimentID from cell where abstractCenterpieceID=7 OR abstractCenterpieceID=8;"
+
+for DB in `cat ~us3/lims/database/dblist.txt`
+do
+  echo "== Searching $DB for band-forming centerpiece =="
+  mysql ${LOGIN} -sNe "${CMD}" $DB
+done
+


Property changes on: trunk/lims_upds/show_bandform.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/show_latest_users.sh
===================================================================
--- trunk/lims_upds/show_latest_users.sh	                        (rev 0)
+++ trunk/lims_upds/show_latest_users.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,9 @@
+# Script to update the list of DBs to be altered
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+CMD="select DISTINCT Investigator_Name, Email from investigators where LastLogin like '2015%'"
+CMD="${CMD} Order by Investigator_Name"
+
+mysql ${LOGIN} -sNe "${CMD}" uslims3_global
+


Property changes on: trunk/lims_upds/show_latest_users.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/show_projguid.sh
===================================================================
--- trunk/lims_upds/show_projguid.sh	                        (rev 0)
+++ trunk/lims_upds/show_projguid.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,14 @@
+#!/bin/bash
+# Script to count projects with bad GUIDs
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+CMD="SELECT count(*) FROM project WHERE projectGUID LIKE ' %';"
+
+##for db in `cat ~us3/lims/database/dblist.txt`
+##for db in uslims3_cauma3
+for db in `cat ~us3/lims/database/dblist.txt`
+do
+  echo "Examining $db"
+  mysql ${LOGIN} -sNe "${CMD}" $db
+done


Property changes on: trunk/lims_upds/show_projguid.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/svn_info.sh
===================================================================
--- trunk/lims_upds/svn_info.sh	                        (rev 0)
+++ trunk/lims_upds/svn_info.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,19 @@
+# One time script to list 'svn info' output for
+#  production LIMS,GridCtl directories
+
+INSTSAMP=uslims3_AUCSOL
+US3HOME=`(cd ~us3;pwd)`
+
+DIRS="${US3HOME}/lims/bin \
+ /srv/www/htdocs/uslims3 \
+ /srv/www/htdocs/uslims3/${INSTSAMP} \
+ /srv/www/htdocs/uslims3/uslims3_newlims \
+ /srv/www/htdocs/common \
+ /srv/www/htdocs/common/class \
+ /srv/www/htdocs/common/class_local \
+ "
+
+for DIR in $DIRS; do
+  svn info ${DIR}|egrep '^Path:|URL:'
+done
+


Property changes on: trunk/lims_upds/svn_info.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/temp.sh
===================================================================
--- trunk/lims_upds/temp.sh	                        (rev 0)
+++ trunk/lims_upds/temp.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,52 @@
+# One time script to update stored procedures for all active US3 databases
+
+#cd /home/us3/database/sql
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+
+for db in \
+        uslims3_BIOCORUW   \
+        uslims3_Beckman    \
+        uslims3_CAUMA      \
+        uslims3_ColoState  \
+        uslims3_EPFL       \
+        uslims3_FAU        \
+        uslims3_FSU_IMB    \
+        uslims3_HHU        \
+        uslims3_IGBMC_ISB  \
+        uslims3_IUBloom    \
+        uslims3_KAUST      \
+        uslims3_LU         \
+        uslims3_MPIB       \
+        uslims3_MSSM       \
+        uslims3_MUSOM      \
+        uslims3_NCMH       \
+        uslims3_NREL       \
+        uslims3_NU         \
+        uslims3_Rice       \
+        uslims3_SGG        \
+        uslims3_TAMU       \
+        uslims3_TIT        \
+        uslims3_UAB        \
+        uslims3_UCSanDiego \
+        uslims3_UIC        \
+        uslims3_UMICH      \
+        uslims3_UMassMed   \
+        uslims3_US3_DEMO   \
+        uslims3_UTAustin   \
+        uslims3_UVic       \
+        uslims3_UW_Biophys \
+        uslims3_U_Regensbg \
+        uslims3_Uni_KN     \
+        uslims3_UofL       \
+        uslims3_WSU        \
+        uslims3_YCU        \
+        uslims3_cauma3     \
+        uslims3_cauma3d    \
+        uslims3_unimelb    \
+        us3              
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./temp.sql
+done


Property changes on: trunk/lims_upds/temp.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/upd_people_lev4.sh
===================================================================
--- trunk/lims_upds/upd_people_lev4.sh	                        (rev 0)
+++ trunk/lims_upds/upd_people_lev4.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,16 @@
+# One time script to update all active US3 databases
+#  by updating the people w userlevel=4,5
+
+. ~us3/lims/database/getdbpw
+echo ""
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database
+##for db in `cat dblist.txt`
+##for db in `cat dblist_upds.txt`
+
+for db in `cat dblist.txt`
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./update_lev4_people.sql
+done
+


Property changes on: trunk/lims_upds/upd_people_lev4.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/upd_people_procs.sh
===================================================================
--- trunk/lims_upds/upd_people_procs.sh	                        (rev 0)
+++ trunk/lims_upds/upd_people_procs.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,18 @@
+# One time script to update all active US3 databases
+#  by updating the protocol stored procedures
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database/sql
+##for db in uslims3_cauma3
+##for db in uslims3_cauma3 uslims3_CAUMA
+##for db in `cat /home/us3/database/dblist.txt`
+##for db in `cat /home/us3/database/dblist_upds.txt`
+##for db in uslims3_cauma3 uslims3_CAUMA
+for db in `cat ~us3/lims/database/dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./us3_people_procs.sql
+done
+


Property changes on: trunk/lims_upds/upd_people_procs.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/update-local.sh
===================================================================
--- trunk/lims_upds/update-local.sh	                        (rev 0)
+++ trunk/lims_upds/update-local.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,17 @@
+#!/bin/bash
+# One time script to update all active US3 LIMS code
+
+cd /home/us3/database
+
+for d in \
+        lims/html          \
+        sql        
+
+do
+  echo "Updating $d"
+  pushd $d
+  svn up
+  popd
+  sleep 2
+
+done


Property changes on: trunk/lims_upds/update-local.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/update-report-tables.sql
===================================================================
--- trunk/lims_upds/update-report-tables.sql	                        (rev 0)
+++ trunk/lims_upds/update-report-tables.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,128 @@
+--
+-- update-report-tables.sql
+--
+-- update report table structure to go with release of phase 1 US_Report class
+-- 
+SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS;
+SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS;
+SET @OLD_SQL_MODE=@@SQL_MODE;
+
+SET UNIQUE_CHECKS = 0;
+SET FOREIGN_KEY_CHECKS=0;
+SET SQL_MODE='STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER';
+
+--
+-- Table structure for table report
+--
+
+DROP TABLE IF EXISTS report;
+CREATE TABLE report (
+  reportID int(11) NOT NULL AUTO_INCREMENT,
+  reportGUID char(36) NOT NULL UNIQUE,
+  experimentID int(11) NOT NULL,
+  runID varchar(80) NOT NULL,
+  title varchar(255) NOT NULL DEFAULT '',
+  html longtext,
+  PRIMARY KEY (reportID),
+  INDEX ndx_report_experimentID (experimentID),
+  CONSTRAINT fk_report_experimentID 
+    FOREIGN KEY (experimentID) 
+    REFERENCES experiment (experimentID) 
+    ON DELETE CASCADE 
+    ON UPDATE CASCADE
+) ENGINE=InnoDB;
+
+--
+-- Table structure for table reportPerson
+--
+
+DROP TABLE IF EXISTS reportPerson;
+CREATE TABLE reportPerson (
+  reportID int(11) NOT NULL,
+  personID int(11) NOT NULL,
+  PRIMARY KEY (reportID),
+  INDEX ndx_reportPerson_personID (personID),
+  INDEX ndx_reportPerson_reportID (reportID),
+  CONSTRAINT fk_reportPerson_personID 
+    FOREIGN KEY (personID) 
+    REFERENCES people (personID) 
+    ON DELETE CASCADE 
+    ON UPDATE CASCADE,
+  CONSTRAINT fk_reportPerson_reportID 
+    FOREIGN KEY (reportID) 
+    REFERENCES report (reportID) 
+    ON DELETE CASCADE 
+    ON UPDATE CASCADE
+) ENGINE=InnoDB;
+
+--
+-- Table structure for table reportTriple
+--
+
+DROP TABLE IF EXISTS reportDetail;
+DROP TABLE IF EXISTS reportTriple;
+CREATE TABLE reportTriple (
+  reportTripleID int(11) NOT NULL AUTO_INCREMENT,
+  reportTripleGUID char(36) NOT NULL UNIQUE,
+  reportID int(11) NOT NULL,
+  resultID int(11) DEFAULT NULL,
+  triple varchar(20) NOT NULL DEFAULT '',     -- cell/channel/wavelength format
+  PRIMARY KEY (reportTripleID),
+  INDEX ndx_reportTriple_reportID (reportID),
+  CONSTRAINT fk_reportTriple_reportID 
+    FOREIGN KEY (reportID) 
+    REFERENCES report (reportID) 
+    ON DELETE CASCADE 
+    ON UPDATE CASCADE
+) ENGINE=InnoDB;
+
+--
+-- Table structure for table documentLink
+--
+
+DROP TABLE IF EXISTS documentLink;
+CREATE TABLE documentLink (
+  documentLinkID int(11) NOT NULL AUTO_INCREMENT,
+  reportTripleID int(11) NOT NULL,
+  reportDocumentID int(11) NOT NULL,
+  PRIMARY KEY (documentLinkID),
+  INDEX ndx_documentLink_reportTripleID (reportTripleID),
+  INDEX ndx_documentLink_reportDocumentID (reportDocumentID),
+  CONSTRAINT fk_documentLink_reportDocumentID 
+    FOREIGN KEY (reportDocumentID) 
+    REFERENCES reportDocument (reportDocumentID) 
+    ON DELETE CASCADE 
+    ON UPDATE CASCADE,
+  CONSTRAINT fk_documentLink_reportTripleID 
+    FOREIGN KEY (reportTripleID) 
+    REFERENCES reportTriple (reportTripleID) 
+    ON DELETE CASCADE 
+    ON UPDATE CASCADE
+) ENGINE=InnoDB;
+
+--
+-- Table structure for table reportDocument
+--
+
+DROP TABLE IF EXISTS reportDocument;
+CREATE TABLE reportDocument (
+  reportDocumentID int(11) NOT NULL AUTO_INCREMENT,
+  reportDocumentGUID char(36) NOT NULL UNIQUE,
+  editedDataID int(11) NOT NULL DEFAULT '1',
+  label varchar(80) NOT NULL DEFAULT '',
+  filename varchar(255) NOT NULL DEFAULT '',
+  analysis varchar(20) DEFAULT '2DSA',
+  subAnalysis varchar(20) DEFAULT 'report',
+  documentType varchar(20) DEFAULT 'png',
+  contents longblob,
+  PRIMARY KEY (reportDocumentID),
+  INDEX ndx_reportDocument_editedDataID (editedDataID),
+  CONSTRAINT fk_reportDocument_editedDataID 
+    FOREIGN KEY (editedDataID) 
+    REFERENCES editedData (editedDataID) 
+    ON UPDATE NO ACTION
+) ENGINE=InnoDB;
+
+SET SQL_MODE=@OLD_SQL_MODE;
+SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
+SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Added: trunk/lims_upds/update-us3-autoflow-procs.sh
===================================================================
--- trunk/lims_upds/update-us3-autoflow-procs.sh	                        (rev 0)
+++ trunk/lims_upds/update-us3-autoflow-procs.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,10 @@
+# One time script to update stored procedures for all active US3 databases
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database/sql
+
+for db in `cat ~us3/lims/database/dblist.txt`
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./us3_hardware_procs.sql
+done


Property changes on: trunk/lims_upds/update-us3-autoflow-procs.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/update-us3-db.sh
===================================================================
--- trunk/lims_upds/update-us3-db.sh	                        (rev 0)
+++ trunk/lims_upds/update-us3-db.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,11 @@
+# One time script to update all active US3 databases
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in uslims3_cauma3
+for db in `cat dblist.txt`
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./alter_ripro_type.sql
+done
+


Property changes on: trunk/lims_upds/update-us3-db.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/update-us3-hardware-procs.sh
===================================================================
--- trunk/lims_upds/update-us3-hardware-procs.sh	                        (rev 0)
+++ trunk/lims_upds/update-us3-hardware-procs.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,10 @@
+# One time script to update stored procedures for all active US3 databases
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database/sql
+
+for db in `cat ~us3/lims/database/dblist.txt`
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./us3_hardware_procs.sql
+done


Property changes on: trunk/lims_upds/update-us3-hardware-procs.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/update-us3-lims.sh
===================================================================
--- trunk/lims_upds/update-us3-lims.sh	                        (rev 0)
+++ trunk/lims_upds/update-us3-lims.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,17 @@
+#!/bin/bash
+# One time script to update all active US3 LIMS code
+
+cd /srv/www/htdocs/uslims3
+
+##for db in `cat ~us3/lims/database/dblist.txt`
+##for db in uslims3_cauma3
+##for db in `cat ~us3/lims/database/dblist_upds.txt`
+for db in `cat ~us3/lims/database/dblist.txt`
+do
+  echo "Updating $db"
+  pushd $db
+  svn up
+  popd
+  sleep 2
+
+done


Property changes on: trunk/lims_upds/update-us3-lims.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/update-us3-procs.sh
===================================================================
--- trunk/lims_upds/update-us3-procs.sh	                        (rev 0)
+++ trunk/lims_upds/update-us3-procs.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,10 @@
+# One time script to update stored procedures for all active US3 databases
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database/sql
+
+for db in `cat ~us3/lims/database/dblist.txt`
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./us3_procedures.sql
+done


Property changes on: trunk/lims_upds/update-us3-procs.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/update_CustomGrid.sql
===================================================================
--- trunk/lims_upds/update_CustomGrid.sql	                        (rev 0)
+++ trunk/lims_upds/update_CustomGrid.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,35 @@
+-- 
+-- update_CustomGrid.sql
+-- 
+-- Adds a couple of items needed to represent the new
+--  analysis method known as 2DSA custom grid
+--
+
+-- Add the new analysis method
+ALTER TABLE HPCAnalysisRequest
+  MODIFY COLUMN method enum('2DSA','2DSA_CG','2DSA_MW','GA','GA_MW','GA_SC') NOT NULL default '2DSA';
+
+-- Add table structure for table 2DSA_CG_Settings
+DROP TABLE IF EXISTS 2DSA_CG_Settings;
+
+CREATE TABLE IF NOT EXISTS 2DSA_CG_Settings (
+  2DSA_CG_SettingsID int(11) NOT NULL AUTO_INCREMENT,
+  HPCAnalysisRequestID int(11) NOT NULL,
+  CG_modelID int(11) NOT NULL,    -- maps to model with 'CustomGrid...' description
+  uniform_grid int(11) NOT NULL default '6',
+  mc_iterations int(11) NOT NULL default 1,
+  tinoise_option tinyint(1) NOT NULL default '0',
+  regularization int(11) NOT NULL default '0',
+  meniscus_range double NOT NULL default '0.01',
+  meniscus_points double NOT NULL default '3',
+  max_iterations int(11) NOT NULL default 1,
+  rinoise_option tinyint(1) NOT NULL default '0',
+  PRIMARY KEY  (2DSA_CG_SettingsID),
+  INDEX ndx_2DSA_CG_Settings_HPCAnalysisRequestID (HPCAnalysisRequestID ASC),
+  CONSTRAINT fk_2DSA_CG_Settings_HPCAnalysisRequestID
+    FOREIGN KEY (HPCAnalysisRequestID)
+    REFERENCES HPCAnalysisRequest (HPCAnalysisRequestID)
+    ON DELETE CASCADE
+    ON UPDATE NO ACTION )
+ENGINE=InnoDB;
+

Added: trunk/lims_upds/update_dblist.sh
===================================================================
--- trunk/lims_upds/update_dblist.sh	                        (rev 0)
+++ trunk/lims_upds/update_dblist.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,8 @@
+# Script to update the list of DBs to be altered
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+
+mysql ${LOGIN} -sNe "SHOW DATABASES LIKE 'uslims3%'" | grep -v uslims3_global >dblist.txt
+echo "us3" >> dblist.txt
+


Property changes on: trunk/lims_upds/update_dblist.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/update_dmga.sql
===================================================================
--- trunk/lims_upds/update_dmga.sql	                        (rev 0)
+++ trunk/lims_upds/update_dmga.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,38 @@
+-- 
+-- update_dmga.sql
+-- 
+-- Adds a couple of items needed to represent the new
+--  analysis method known as DMGA
+--
+
+-- Add the new analysis method
+ALTER TABLE HPCAnalysisRequest
+  MODIFY COLUMN method enum('2DSA','2DSA_CG','2DSA_MW','GA','GA_MW','GA_SC','DMGA') NOT NULL default '2DSA';
+
+-- Add table structure for table DMGA_Settings
+DROP TABLE IF EXISTS DMGA_Settings;
+
+CREATE TABLE IF NOT EXISTS DMGA_Settings (
+  DMGA_SettingsID int(11) NOT NULL AUTO_INCREMENT,
+  HPCAnalysisRequestID int(11) NOT NULL,
+  DC_modelID int(11) NOT NULL,    -- maps to model with 'DMGA_Constr..' description
+  mc_iterations int(11) NOT NULL default '0',
+  demes int(11) NOT NULL default '31',
+  population int(11) NOT NULL default '100',
+  generations int(11) NOT NULL default '100',
+  mutation int(11) NOT NULL default '50',
+  crossover int(11) NOT NULL default '50',
+  plague int(11) NOT NULL default '4',
+  elitism int(11) NOT NULL default '2',
+  migration int(11) NOT NULL default '3',
+  p_grid int(11) NOT NULL default '500',
+  seed int(11) NOT NULL default '0',
+  PRIMARY KEY  (DMGA_SettingsID),
+  INDEX ndx_DMGA_Settings_HPCAnalysisRequestID (HPCAnalysisRequestID ASC),
+  CONSTRAINT fk_DMGA_Settings_HPCAnalysisRequestID
+    FOREIGN KEY (HPCAnalysisRequestID)
+    REFERENCES HPCAnalysisRequest (HPCAnalysisRequestID)
+    ON DELETE CASCADE
+    ON UPDATE NO ACTION )
+ENGINE=InnoDB;
+

Added: trunk/lims_upds/update_lev4_people.sql
===================================================================
--- trunk/lims_upds/update_lev4_people.sql	                        (rev 0)
+++ trunk/lims_upds/update_lev4_people.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,27 @@
+--
+-- Update people with userlevel=4.5 for new address (uthscsa-to-montana)
+--
+
+-- UPDATE TABLE people
+
+UPDATE people
+  SET address='32 Campus Drive',
+      city='Missoula',
+      state='MT',
+      zip='59812',
+      organization='University of Montana'
+  WHERE userlevel>3 AND organization LIKE 'UTH%';
+
+UPDATE people
+  SET phone='406-285-1935', email='borries.demeler at umontana.edu'
+  WHERE lname='Demeler' AND fname='Borries';
+
+UPDATE people
+  SET phone='832-466-9211', email='gegorbet at gmail.com'
+  WHERE lname='Gorbet';
+
+UPDATE people
+  SET phone='555-555-5555', email='alexsav.science at gmail.com',
+      fname='Alexey', lname='Savelyev', username='us3savelyev'
+  WHERE lname='Zollars';
+

Added: trunk/lims_upds/update_model_desc.sql
===================================================================
--- trunk/lims_upds/update_model_desc.sql	                        (rev 0)
+++ trunk/lims_upds/update_model_desc.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,6 @@
+--
+-- Update the model description to be up to 160 characters
+--
+
+ALTER TABLE model
+  MODIFY COLUMN description VARCHAR(160) NULL DEFAULT NULL;

Added: trunk/lims_upds/update_pcsa.sql
===================================================================
--- trunk/lims_upds/update_pcsa.sql	                        (rev 0)
+++ trunk/lims_upds/update_pcsa.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,44 @@
+-- 
+-- update_pcsa.sql
+-- 
+-- Adds a couple of items needed to represent the new
+--  analysis method known as PCSA
+--
+
+-- Add the new analysis method
+ALTER TABLE HPCAnalysisRequest
+  MODIFY COLUMN method enum('2DSA','2DSA_CG','2DSA_MW','GA','GA_MW','GA_SC','DMGA','PCSA') NOT NULL default '2DSA';
+
+-- Alter HPCAnalysisRequestData for additional result file types
+ALTER TABLE HPCAnalysisResultData
+  MODIFY COLUMN HPCAnalysisResultType enum('model','noise','job_stats','mrecs','unknown') NOT NULL default 'unknown';
+
+-- Add table structure for table PCSA_Settings
+DROP TABLE IF EXISTS PCSA_Settings;
+
+CREATE TABLE IF NOT EXISTS PCSA_Settings (
+  PCSA_SettingsID int(11) NOT NULL AUTO_INCREMENT,
+  HPCAnalysisRequestID int(11) NOT NULL,
+  curve_type VARCHAR(8) NOT NULL default 'SL',
+  s_min double NOT NULL default '1',
+  s_max double NOT NULL default '10',
+  ff0_min double NOT NULL default '1',
+  ff0_max double NOT NULL default '4',
+  vars_count int(11) NOT NULL default 10,
+  gfit_iterations int(11) NOT NULL default 3,
+  curves_points int(11) NOT NULL default 200,
+  thr_deltr_ratio double NOT NULL default 0.0001,
+  tikreg_option tinyint(1) NOT NULL default 0,
+  tikreg_alpha double NOT NULL default 0.0,
+  mc_iterations int(11) NOT NULL default 1,
+  tinoise_option tinyint(1) NOT NULL default '0',
+  rinoise_option tinyint(1) NOT NULL default '0',
+  PRIMARY KEY  (PCSA_SettingsID),
+  INDEX ndx_PCSA_Settings_HPCAnalysisRequestID (HPCAnalysisRequestID ASC),
+  CONSTRAINT fk_PCSA_Settings_HPCAnalysisRequestID
+    FOREIGN KEY (HPCAnalysisRequestID)
+    REFERENCES HPCAnalysisRequest (HPCAnalysisRequestID)
+    ON DELETE CASCADE
+    ON UPDATE NO ACTION )
+ENGINE=InnoDB;
+

Added: trunk/lims_upds/update_rotors.sql
===================================================================
--- trunk/lims_upds/update_rotors.sql	                        (rev 0)
+++ trunk/lims_upds/update_rotors.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,16 @@
+--
+-- Script to re-establish abstract rotor ID's for default rotors in rotor table
+--
+
+UPDATE rotor
+SET abstractRotorID = 1 
+WHERE rotorID = 1;
+
+UPDATE rotor
+SET abstractRotorID = 2 
+WHERE rotorID = 2;
+
+UPDATE rotor
+SET abstractRotorID = 3 
+WHERE rotorID = 3;
+

Added: trunk/lims_upds/update_rotors2.sql
===================================================================
--- trunk/lims_upds/update_rotors2.sql	                        (rev 0)
+++ trunk/lims_upds/update_rotors2.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,8 @@
+--
+-- Script to re-establish abstract rotor ID's for default rotors in rotor table
+--
+
+SELECT COUNT(*)
+FROM rotor
+where abstractRotorID IS NULL;
+

Added: trunk/lims_upds/us3_add_autoflow.sh
===================================================================
--- trunk/lims_upds/us3_add_autoflow.sh	                        (rev 0)
+++ trunk/lims_upds/us3_add_autoflow.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,16 @@
+# One time script to update all active US3 databases
+#  by adding the protocol and protocolPerson tables
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+#cd ~us3/database
+
+##for db in uslims3_cauma3
+##for db in uslims3_cauma3 uslims3_CAUMA
+##for db in `cat dblist.txt`
+for db in `cat ~us3/lims/database/dblist_cch.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./add_autoflow.sql
+done


Property changes on: trunk/lims_upds/us3_add_autoflow.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_add_exper.sh
===================================================================
--- trunk/lims_upds/us3_add_exper.sh	                        (rev 0)
+++ trunk/lims_upds/us3_add_exper.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,13 @@
+# One time script to update all active US3 databases
+#  by creating the new speedstep table
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+
+##for db in uslims3_cauma3
+##for db in `cat /home/us3/database/dblist_upds.txt`
+for db in `cat /home/us3/database/dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./add_speedSteps.sql
+done


Property changes on: trunk/lims_upds/us3_add_exper.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_add_extincp.sh
===================================================================
--- trunk/lims_upds/us3_add_extincp.sh	                        (rev 0)
+++ trunk/lims_upds/us3_add_extincp.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,14 @@
+# One time script to update all active US3 databases
+#  by adding the extinctionProfile table
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in uslims3_cauma3
+##for db in uslims3_cauma3 uslims3_CAUMA
+##for db in `cat dblist.txt`
+for db in uslims3_devel
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./us3_add_extincp.sql
+done


Property changes on: trunk/lims_upds/us3_add_extincp.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_add_extincp.sql
===================================================================
--- trunk/lims_upds/us3_add_extincp.sql	                        (rev 0)
+++ trunk/lims_upds/us3_add_extincp.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,15 @@
+-- -----------------------------------------------------
+-- Table extinctionProfile
+-- -----------------------------------------------------
+DROP TABLE IF EXISTS extinctionProfile;
+
+CREATE TABLE extinctionProfile (
+  profileID int(11) NOT NULL AUTO_INCREMENT ,
+  componentID int(11) NOT NULL ,
+  componentType  enum( 'Buffer', 'Analyte', 'Sample' ) NOT NULL,
+  valueType  enum( 'absorbance', 'molarExtinction', 'massExtinction' ) NOT NULL,
+  xml longtext DEFAULT NULL ,
+  PRIMARY KEY (profileID) ,
+  INDEX ndx_component_ID (componentID ASC) )
+ENGINE = InnoDB;
+

Added: trunk/lims_upds/us3_add_manual.sh
===================================================================
--- trunk/lims_upds/us3_add_manual.sh	                        (rev 0)
+++ trunk/lims_upds/us3_add_manual.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,11 @@
+# One time script to update all active US3 databases
+#  by altering/updating ClusterAuthorizations
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./add_manual.sql
+done


Property changes on: trunk/lims_upds/us3_add_manual.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_add_mrecs.sh
===================================================================
--- trunk/lims_upds/us3_add_mrecs.sh	                        (rev 0)
+++ trunk/lims_upds/us3_add_mrecs.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,12 @@
+# One time script to update all active US3 databases
+#  by adding the pcsa_modelrecs table
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in uslims3_cauma3
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./add_mrecs.sql
+done


Property changes on: trunk/lims_upds/us3_add_mrecs.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_add_mrecsprocs.sh
===================================================================
--- trunk/lims_upds/us3_add_mrecsprocs.sh	                        (rev 0)
+++ trunk/lims_upds/us3_add_mrecsprocs.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,12 @@
+# One time script to update all active US3 databases
+#  by updating the expdata stored procedures
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in `cat dblist.txt`
+for db in uslims3_cauma3
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < us3_mrecs_procs.sql
+done


Property changes on: trunk/lims_upds/us3_add_mrecsprocs.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_add_notice.sh
===================================================================
--- trunk/lims_upds/us3_add_notice.sh	                        (rev 0)
+++ trunk/lims_upds/us3_add_notice.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,11 @@
+# One time script to update US3 database 'us3_notice'
+#  by adding the notice table
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+for db in us3_notice
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./add_notice.sql
+done


Property changes on: trunk/lims_upds/us3_add_notice.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_add_proto.sh
===================================================================
--- trunk/lims_upds/us3_add_proto.sh	                        (rev 0)
+++ trunk/lims_upds/us3_add_proto.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,14 @@
+# One time script to update all active US3 databases
+#  by adding the protocol and protocolPerson tables
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in uslims3_cauma3
+##for db in uslims3_cauma3 uslims3_CAUMA
+##for db in `cat dblist.txt`
+for db in uslims3_cauma3 uslims3_CAUMA
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./add_protocol.sql
+done


Property changes on: trunk/lims_upds/us3_add_proto.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_add_radialCal_table_cch.sh
===================================================================
--- trunk/lims_upds/us3_add_radialCal_table_cch.sh	                        (rev 0)
+++ trunk/lims_upds/us3_add_radialCal_table_cch.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,16 @@
+# One time script to update all active US3 databases
+#  by creating the DMGA method
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/database
+
+##for db in `cat ~us3/database/dblist.txt`
+##for db in uslims3_cauma3
+##for db in `cat ~us3/database/dblist_upds.txt`
+for db in `cat ~us3/lims/database/dblist_cch.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./alter_instrument_work.sql
+done


Property changes on: trunk/lims_upds/us3_add_radialCal_table_cch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_add_speeds.sh
===================================================================
--- trunk/lims_upds/us3_add_speeds.sh	                        (rev 0)
+++ trunk/lims_upds/us3_add_speeds.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,12 @@
+# One time script to update all active US3 databases
+#  by altering/updating ClusterAuthorizations
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in uslims3_cauma3
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./add_speeds.sql
+done


Property changes on: trunk/lims_upds/us3_add_speeds.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_add_timestate.sh
===================================================================
--- trunk/lims_upds/us3_add_timestate.sh	                        (rev 0)
+++ trunk/lims_upds/us3_add_timestate.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,14 @@
+# One time script to update all active US3 databases
+#  by creating the new timestate table
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in `cat /home/us3/database/dblist_upds.txt`
+##for db in `cat /home/us3/database/dblist.txt`
+##for db in uslims3_cauma3
+for db in `cat /home/us3/database/dblist_upds.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./add_timeState.sql
+done


Property changes on: trunk/lims_upds/us3_add_timestate.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_alter_analyte.sh
===================================================================
--- trunk/lims_upds/us3_alter_analyte.sh	                        (rev 0)
+++ trunk/lims_upds/us3_alter_analyte.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,16 @@
+# One time script to update all active US3 databases
+#  by creating the DMGA method
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/database
+
+##for db in `cat ~us3/database/dblist.txt`
+##for db in uslims3_cauma3
+##for db in `cat ~us3/database/dblist_upds.txt`
+for db in `cat ~us3/database/dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./alter_analyte.sql
+done


Property changes on: trunk/lims_upds/us3_alter_analyte.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_alter_aprofile.sh
===================================================================
--- trunk/lims_upds/us3_alter_aprofile.sh	                        (rev 0)
+++ trunk/lims_upds/us3_alter_aprofile.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,14 @@
+# One time script to update all active US3 databases
+#  by modifying/adding analysisprofile-related tables
+
+LOGIN="-u root -p`cat ~/.sec/.pwsq`"
+##for db in `cat dblist.txt`
+##for db in `cat dblist_upds.txt`
+##for db in uslims3_uthealth
+for db in uslims3_CCH
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./alter_aprofile.sql
+done
+


Property changes on: trunk/lims_upds/us3_alter_aprofile.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_alter_bufcomp.sh
===================================================================
--- trunk/lims_upds/us3_alter_bufcomp.sh	                        (rev 0)
+++ trunk/lims_upds/us3_alter_bufcomp.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,17 @@
+# One time script to update all active US3 databases
+#  by altering contents of the bufferComponent table
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/database
+
+##for db in `cat ~us3/database/dblist.txt`
+##for db in uslims3_cauma3
+##for db in `cat ~us3/database/dblist_upds.txt`
+for db in uslims3_cauma3
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < sql/us3_buffer_components.sql
+done
+


Property changes on: trunk/lims_upds/us3_alter_bufcomp.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_alter_hpcanareq.sh
===================================================================
--- trunk/lims_upds/us3_alter_hpcanareq.sh	                        (rev 0)
+++ trunk/lims_upds/us3_alter_hpcanareq.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,19 @@
+# One time script to update all active US3 databases
+#  by creating the DMGA method
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database
+
+##for db in `cat ~us3/lims/database/dblist.txt`
+##for db in uslims3_cauma3
+##for db in `cat ~us3/lims/database/dblist_upds.txt`
+##for db in uslims3_cauma3d
+##for db in `cat ~us3/lims/database/dblist.txt |grep -v uslims3_cauma3`
+for db in uslims3_UPENN
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./alter_hpcreq2.sql
+done
+## mysql $LOGIN $db < ./alter_hpcreq.sql
+## mysql $LOGIN $db < ./alter_hpcreq2.sql


Property changes on: trunk/lims_upds/us3_alter_hpcanareq.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_alter_instrument.sh
===================================================================
--- trunk/lims_upds/us3_alter_instrument.sh	                        (rev 0)
+++ trunk/lims_upds/us3_alter_instrument.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,15 @@
+# One time script to update all active US3 databases
+#  by creating the DMGA method
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database
+
+##for db in `cat ~us3/database/dblist.txt`
+##for db in uslims3_cauma3
+##for db in `cat ~us3/database/dblist_upds.txt`
+for db in `cat ~us3/lims/database/dblist_upds.txt`
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./alter_instrument.sql
+done


Property changes on: trunk/lims_upds/us3_alter_instrument.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_alter_instrument_cauma3.sh
===================================================================
--- trunk/lims_upds/us3_alter_instrument_cauma3.sh	                        (rev 0)
+++ trunk/lims_upds/us3_alter_instrument_cauma3.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,16 @@
+# One time script to update all active US3 databases
+#  by creating the DMGA method
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/database
+
+##for db in `cat ~us3/database/dblist.txt`
+##for db in uslims3_cauma3
+##for db in `cat ~us3/database/dblist_upds.txt`
+for db in `cat ~us3/lims/database/dblist_cauma3.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./alter_instrument_work.sql
+done


Property changes on: trunk/lims_upds/us3_alter_instrument_cauma3.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_alter_instrument_cch.sh
===================================================================
--- trunk/lims_upds/us3_alter_instrument_cch.sh	                        (rev 0)
+++ trunk/lims_upds/us3_alter_instrument_cch.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,16 @@
+# One time script to update all active US3 databases
+#  by creating the DMGA method
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/database
+
+##for db in `cat ~us3/database/dblist.txt`
+##for db in uslims3_cauma3
+##for db in `cat ~us3/database/dblist_upds.txt`
+for db in `cat ~us3/lims/database/dblist_cch.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./alter_instrument_work.sql
+done


Property changes on: trunk/lims_upds/us3_alter_instrument_cch.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_alter_metadata.sh
===================================================================
--- trunk/lims_upds/us3_alter_metadata.sh	                        (rev 0)
+++ trunk/lims_upds/us3_alter_metadata.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,6 @@
+# One time script to add entries to newus3.metadata
+#  by creating the DMGA method
+
+echo "Updating newus3.metadata"
+mysql -u root -p newus3 < ./alter_metadata.sql
+


Property changes on: trunk/lims_upds/us3_alter_metadata.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_change_bc.sh
===================================================================
--- trunk/lims_upds/us3_change_bc.sh	                        (rev 0)
+++ trunk/lims_upds/us3_change_bc.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,18 @@
+# One time script to update all active US3 databases
+#  by changing the Glycerol% bufferComponents entry
+#  for proper range and range unit
+
+LOGIN="-u root -p`cat ~/.sec/.pwsq`"
+CMD="update bufferComponent set density='0.99823 0.030859 0.2249 6.333e-3 2.505e-5 4.151e-5 0-32 %weight/weight' where bufferComponentID=25"
+##CMD="update bufferComponent set density='0.99824 0.0 2.08235 0.14172 -0.26453 0.54073 0-13.694 M' where bufferComponentID=26"
+##CMD="select description,density from bufferComponent where description like '%lycero%'"
+##for db in `cat dblist.txt`
+##for db in uslims3_devel
+##for db in uslims3_cauma3
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db -sNe "${CMD}"
+done
+


Property changes on: trunk/lims_upds/us3_change_bc.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_count_allusers.sql
===================================================================
--- trunk/lims_upds/us3_count_allusers.sql	                        (rev 0)
+++ trunk/lims_upds/us3_count_allusers.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,7 @@
+--
+-- us3_count_allusers.sql
+--
+-- count all users in all databases
+--
+
+select count(*) from people;

Added: trunk/lims_upds/us3_drop_manual.sh
===================================================================
--- trunk/lims_upds/us3_drop_manual.sh	                        (rev 0)
+++ trunk/lims_upds/us3_drop_manual.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,11 @@
+# One time script to update all active US3 databases
+#  by altering/updating ClusterAuthorizations
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./drop_manual.sql
+done


Property changes on: trunk/lims_upds/us3_drop_manual.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_exp_procs.sql
===================================================================
--- trunk/lims_upds/us3_exp_procs.sql	                        (rev 0)
+++ trunk/lims_upds/us3_exp_procs.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,993 @@
+--
+-- us3_exp_procs.sql
+--
+-- Script to set up the MySQL stored procedures for the US3 system
+--   These are procedures related to the experiment
+-- Run as us3admin
+--
+
+DELIMITER $$
+
+-- Verifies that the user has permission to view or modify
+--  the specified experiment
+DROP FUNCTION IF EXISTS verify_experiment_permission$$
+CREATE FUNCTION verify_experiment_permission( p_personGUID   CHAR(36),
+                                              p_password     VARCHAR(80),
+                                              p_experimentID INT )
+  RETURNS INT
+  READS SQL DATA
+
+BEGIN
+  DECLARE count_experiments INT;
+  DECLARE count_permissions INT;
+  DECLARE status            INT;
+
+  CALL config();
+  SET status   = @ERROR;
+  SET @US3_LAST_ERROR = 'MySQL: error verifying experiment permission';
+
+  SELECT COUNT(*)
+  INTO   count_experiments
+  FROM   experiment
+  WHERE  experimentID = p_experimentID;
+
+  SELECT COUNT(*)
+  INTO   count_permissions
+  FROM   experimentPerson
+  WHERE  experimentID = p_experimentID
+  AND    personID = @US3_ID;
+
+  IF ( p_experimentID = 1 ) THEN    -- The magic ID that anyone can use temporarily
+    SET count_permissions = 1;
+  END IF;
+
+  IF ( count_experiments = 0 ) THEN
+    SET @US3_LAST_ERRNO = @NO_EXPERIMENT;
+    SET @US3_LAST_ERROR = 'MySQL: the specified experiment does not exist';
+
+    SET status = @NO_EXPERIMENT;
+
+  ELSEIF ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) THEN
+    SET @US3_LAST_ERRNO = @OK;
+    SET @US3_LAST_ERROR = '';
+
+    SET status = @OK;
+
+  ELSEIF ( ( verify_user( p_personGUID, p_password ) = @OK ) &&
+           ( count_permissions > 0                         ) ) THEN
+    SET @US3_LAST_ERRNO = @OK;
+    SET @US3_LAST_ERROR = '';
+
+    SET status = @OK;
+
+  ELSE
+    SET @US3_LAST_ERRNO = @NOTPERMITTED;
+    SET @US3_LAST_ERROR = 'MySQL: you do not have permission to view or modify this experiment';
+
+    SET status = @NOTPERMITTED;
+
+  END IF;
+
+  RETURN( status );
+
+END$$
+
+-- Verifies that the operator has permission to operate the instrument,
+--  and that the instrument is in the right lab
+DROP FUNCTION IF EXISTS verify_operator_permission$$
+CREATE FUNCTION verify_operator_permission( p_personGUID   CHAR(36),
+                                            p_password     VARCHAR(80),
+                                            p_labID        INT,
+                                            p_instrumentID INT,
+                                            p_operatorID   INT )
+  RETURNS INT
+  READS SQL DATA
+
+BEGIN
+  DECLARE count_instruments INT;
+  DECLARE count_labs        INT;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @ERROR;
+  SET @US3_LAST_ERROR = 'MySQL: error verifying operator permission';
+
+  -- Check permits for this instrument and this operator
+  SELECT COUNT(*)
+  INTO   count_instruments
+  FROM   permits
+  WHERE  personID     = p_operatorID 
+  AND    instrumentID = p_instrumentID;
+
+  -- Check location of instrument
+  SELECT COUNT(*)
+  INTO   count_labs
+  FROM   instrument
+  WHERE  instrumentID = p_instrumentID
+  AND    labID        = p_labID;
+ 
+  IF ( verify_user( p_personGUID, p_password ) != @OK ) THEN
+    SET @US3_LAST_ERRNO = @NOTPERMITTED;
+    SET @US3_LAST_ERROR = 'MySQL: you do not have permission to use this instrument';
+
+  ELSEIF ( count_labs < 1 ) THEN
+    SET @US3_LAST_ERRNO = @BADLABLOCATION;
+    SET @US3_LAST_ERROR = 'MySQL: that instrument is not located in that lab';
+
+  ELSEIF ( count_instruments < 1 ) THEN
+    SET @US3_LAST_ERRNO = @BADOPERATOR;
+    SET @US3_LAST_ERROR = 'MySQL: operator is not permitted to work on this instrument';
+
+  ELSE
+    SET @US3_LAST_ERRNO = @OK;
+    SET @US3_LAST_ERROR = '';
+
+  END IF;
+
+  RETURN( @US3_LAST_ERRNO );
+
+END$$
+
+-- Returns the count of experiments associated with p_ID
+--  If p_ID = 0, retrieves count of all experiments in db
+--  Regular user can only get count of his own experiments
+DROP FUNCTION IF EXISTS count_experiments$$
+CREATE FUNCTION count_experiments( p_personGUID   CHAR(36),
+                                   p_password     VARCHAR(80),
+                                   p_ID           INT )
+  RETURNS INT
+  READS SQL DATA
+
+BEGIN
+  
+  DECLARE count_experiments INT;
+
+  CALL config();
+  SET count_experiments = 0;
+
+  IF ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) THEN
+    -- This is an admin; he can get more info
+    IF ( p_ID > 0 ) THEN
+      SELECT COUNT(*)
+      INTO   count_experiments
+      FROM   experimentPerson
+      WHERE  personID = p_ID;
+
+    ELSE
+      SELECT COUNT(*)
+      INTO   count_experiments
+      FROM   experimentPerson;
+
+    END IF;
+
+  ELSEIF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+    IF ( (p_ID != 0) && (p_ID != @US3_ID) ) THEN
+      -- Uh oh, can't do that
+      SET @US3_LAST_ERRNO = @NOTPERMITTED;
+      SET @US3_LAST_ERROR = 'MySQL: you do not have permission to view those experiments';
+     
+    ELSE
+      -- This person is asking about his own experiments
+      -- Ignore p_experimentID and return user's own
+      SELECT COUNT(*)
+      INTO   count_experiments
+      FROM   experimentPerson
+      WHERE  personID = @US3_ID;
+
+    END IF;
+    
+  END IF;
+
+  RETURN( count_experiments );
+
+END$$
+
+-- INSERTs a new experiment with the specified information
+DROP PROCEDURE IF EXISTS new_experiment$$
+CREATE PROCEDURE new_experiment ( p_personGUID   CHAR(36),
+                                  p_password     VARCHAR(80),
+                                  p_expGUID      CHAR(36),
+                                  p_projectID    INT,
+                                  p_runID        VARCHAR(80),
+                                  p_labID        INT,
+                                  p_instrumentID INT,
+                                  p_operatorID   INT,
+                                  p_rotorID      INT,
+                                  p_calibrationID INT,
+                                  p_type         VARCHAR(30),
+                                  p_runType      ENUM( 'RA', 'RI', 'IP', 'FI', 'WA', 'WI' ),
+                                  p_RIProfile    LONGTEXT,
+                                  p_runTemp      FLOAT,
+                                  p_label        VARCHAR(80),
+                                  p_comment      TEXT,
+                                  p_centrifugeProtocol TEXT,
+                                  p_ownerID      INT )
+  MODIFIES SQL DATA
+
+BEGIN
+  DECLARE l_experimentID INT;
+  DECLARE l_count_runID  INT;
+  DECLARE duplicate_key  TINYINT DEFAULT 0;
+
+  DECLARE CONTINUE HANDLER FOR 1062
+    SET duplicate_key = 1;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+  SET @LAST_INSERT_ID = 0;
+ 
+  IF ( ( verify_user( p_personGUID, p_password ) = @OK           )   &&
+       ( verify_operator_permission( p_personGUID, p_password, 
+          p_labID, p_instrumentID, p_operatorID ) = @OK          )   &&
+       ( check_GUID( p_personGUID, p_password, p_expGUID ) = @OK ) ) THEN
+    -- Can't have duplicate run ID's for this investigator
+    SELECT COUNT(*)
+    INTO   l_count_runID
+    FROM   experimentPerson p, experiment e
+    WHERE  p.experimentID = e.experimentID
+    AND    e.runID = p_runID
+    AND    p.personID = @US3_ID;
+
+    IF ( l_count_runID > 0 ) THEN
+      SET @US3_LAST_ERRNO = @DUPFIELD;
+      SET @US3_LAST_ERROR = "MySQL: Duplicate runID in experiment table";
+
+    ELSE
+      IF ( p_runType != 'RI' ) THEN
+        SET p_RIProfile = '';
+      END IF;
+
+      INSERT INTO experiment SET
+        projectID          = p_projectID,
+        experimentGUID     = p_expGUID,
+        runID              = p_runID,
+        labID              = p_labID,
+        instrumentID       = p_instrumentID,
+        operatorID         = p_operatorID,
+        rotorID            = p_rotorID,
+        rotorCalibrationID = p_calibrationID,
+        type               = p_type,
+        runType            = p_runType,
+        RIProfile          = p_RIProfile,
+        runTemp            = p_runTemp,
+        label              = p_label,
+        comment            = p_comment,
+        centrifugeProtocol = p_centrifugeProtocol,
+        dateUpdated        = NOW() ;
+  
+      IF ( duplicate_key = 1 ) THEN
+        SET @US3_LAST_ERRNO = @INSERTDUP;
+        SET @US3_LAST_ERROR = "MySQL: Duplicate entry for experimentGUID field";
+
+      ELSE
+        SET @LAST_INSERT_ID  = LAST_INSERT_ID();
+    
+        INSERT INTO experimentPerson SET
+          experimentID = @LAST_INSERT_ID,
+          personID     = p_ownerID;
+
+      END IF;
+
+    END IF;
+
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- UPDATEs an existing experiment with the specified information
+DROP PROCEDURE IF EXISTS update_experiment$$
+CREATE PROCEDURE update_experiment ( p_personGUID   CHAR(36),
+                                     p_password     VARCHAR(80),
+                                     p_experimentID INT,
+                                     p_expGUID      CHAR(36),
+                                     p_projectID    INT,
+                                     p_runID        VARCHAR(80),
+                                     p_labID        INT,
+                                     p_instrumentID INT,
+                                     p_operatorID   INT,
+                                     p_rotorID      INT,
+                                     p_calibrationID INT,
+                                     p_type         VARCHAR(30),
+                                     p_runType      ENUM( 'RA', 'RI', 'IP', 'FI', 'WA', 'WI' ),
+                                     p_RIProfile    LONGTEXT,
+                                     p_runTemp      FLOAT,
+                                     p_label        VARCHAR(80),
+                                     p_comment      TEXT,
+                                     p_centrifugeProtocol TEXT )
+  MODIFIES SQL DATA
+
+BEGIN
+  DECLARE l_count_runID  INT;
+  DECLARE l_expGUID      CHAR(36);
+  DECLARE duplicate_key  TINYINT DEFAULT 0;
+
+  DECLARE CONTINUE HANDLER FOR 1062
+    SET duplicate_key = 1;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  IF ( ( verify_experiment_permission( p_personGUID, p_password, p_experimentID ) = @OK ) &&
+       ( verify_operator_permission( p_personGUID, p_password, 
+          p_labID, p_instrumentID, p_operatorID ) = @OK )                                 &&
+       ( check_GUID( p_personGUID, p_password, p_expGUID ) = @OK ) ) THEN
+    -- Let's make sure we don't result in a duplicate run ID's for this investigator
+    --  through renaming or some such
+    SELECT COUNT(*)
+    INTO   l_count_runID
+    FROM   experimentPerson p, experiment e
+    WHERE  p.experimentID = e.experimentID
+    AND    e.runID = p_runID
+    AND    e.experimentID != p_experimentID
+    AND    p.personID = @US3_ID;
+
+    IF ( l_count_runID > 0 ) THEN
+      SET @US3_LAST_ERRNO = @DUPFIELD;
+      SET @US3_LAST_ERROR = "MySQL: Duplicate runID in experiment table";
+
+    ELSE
+      -- Keep MySQL from having trouble with duplicate GUID's
+      SELECT experimentGUID
+      INTO   l_expGUID
+      FROM   experiment
+      WHERE  experimentID = p_experimentID;
+
+      IF ( p_runType != 'RI' ) THEN
+        SET p_RIProfile = '';
+      END IF;
+
+      IF ( STRCMP( l_expGUID, p_expGUID ) = 0 ) THEN
+        UPDATE experiment SET
+          -- don't update experimentGUID here
+          projectID          = p_projectID,
+          runID              = p_runID,
+          labID              = p_labID,
+          instrumentID       = p_instrumentID,
+          operatorID         = p_operatorID,
+          rotorID            = p_rotorID,
+          rotorCalibrationID = p_calibrationID,
+          type               = p_type,
+          runType            = p_runType,
+          RIProfile          = p_RIProfile,
+          runTemp            = p_runTemp,
+          label              = p_label,
+          comment            = p_comment,
+          centrifugeProtocol = p_centrifugeProtocol,
+          dateUpdated        = NOW()
+        WHERE experimentID   = p_experimentID;
+
+      ELSE
+        UPDATE experiment SET
+          experimentGUID     = p_expGUID,
+          projectID          = p_projectID,
+          runID              = p_runID,
+          labID              = p_labID,
+          instrumentID       = p_instrumentID,
+          operatorID         = p_operatorID,
+          rotorID            = p_rotorID,
+          rotorCalibrationID = p_calibrationID,
+          type               = p_type,
+          runType            = p_runType,
+          RIProfile          = p_RIProfile,
+          runTemp            = p_runTemp,
+          label              = p_label,
+          comment            = p_comment,
+          centrifugeProtocol = p_centrifugeProtocol,
+          dateUpdated        = NOW()
+        WHERE experimentID   = p_experimentID;
+
+        IF ( duplicate_key = 1 ) THEN
+          SET @US3_LAST_ERRNO = @INSERTDUP;
+          SET @US3_LAST_ERROR = "MySQL: Duplicate entry for experimentGUID field";
+    
+        END IF;
+
+      END IF;
+
+    END IF;
+
+  END IF;
+      
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- Returns the experimentID, runID, and type of all experiments associated with p_ID
+--  If p_ID = 0, retrieves information about all experiments in db
+--  Regular user can only get info about his own experiments
+DROP PROCEDURE IF EXISTS get_experiment_desc$$
+CREATE PROCEDURE get_experiment_desc ( p_personGUID CHAR(36),
+                                       p_password   VARCHAR(80),
+                                       p_ID         INT )
+  READS SQL DATA
+
+BEGIN
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  IF ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) THEN
+    -- This is an admin; he can get more info
+    IF ( count_experiments( p_personGUID, p_password, p_ID ) < 1 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+   
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      SELECT @OK AS status;
+  
+      IF ( p_ID > 0 ) THEN
+        SELECT   e.experimentID, runID, type, runType, label,
+                 timestamp2UTC( dateUpdated ) AS UTC_dateUpdated
+        FROM     experiment e, experimentPerson p
+        WHERE    e.experimentID = p.experimentID
+        AND      p.personID = p_ID
+        ORDER BY runID;
+   
+      ELSE
+        SELECT   e.experimentID, runID, type, runType, label,
+                 timestamp2UTC( dateUpdated ) AS UTC_dateUpdated
+        FROM     experiment e, experimentPerson p
+        WHERE    e.experimentID = p.experimentID
+        ORDER BY runID;
+
+      END IF;
+
+    END IF;
+
+  ELSEIF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+    IF ( (p_ID != 0) && (p_ID != @US3_ID) ) THEN
+      -- Uh oh, can't do that
+      SET @US3_LAST_ERRNO = @NOTPERMITTED;
+      SET @US3_LAST_ERROR = 'MySQL: you do not have permission to view this experiment';
+     
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSEIF ( count_experiments( p_personGUID, p_password, @US3_ID ) < 1 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+   
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      -- Ok, user wants his own info
+      SELECT @OK AS status;
+
+      SELECT   e.experimentID, runID, type, runType
+      FROM     experiment e, experimentPerson p
+      WHERE    e.experimentID = p.experimentID
+      AND      p.personID = @US3_ID
+      ORDER BY runID;
+
+    END IF;
+
+  END IF;
+
+END$$
+
+-- Returns a more complete list of information about one experiment
+DROP PROCEDURE IF EXISTS get_experiment_info$$
+CREATE PROCEDURE get_experiment_info ( p_personGUID   CHAR(36),
+                                       p_password     VARCHAR(80),
+                                       p_experimentID INT )
+  READS SQL DATA
+
+BEGIN
+  DECLARE count_experiments INT;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  SELECT     COUNT(*)
+  INTO       count_experiments
+  FROM       experiment
+  WHERE      experimentID = p_experimentID;
+
+  IF ( verify_experiment_permission( p_personGUID, p_password, p_experimentID ) = @OK ) THEN
+    IF ( count_experiments = 0 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      SELECT @OK AS status;
+
+      SELECT   experimentGUID, projectID, runID, labID, instrumentID, 
+               operatorID, rotorID, rotorCalibrationID, type, runTemp, label, comment, 
+               centrifugeProtocol, timestamp2UTC( dateUpdated ) AS UTC_dateUpdated, 
+               personID, runType, RIProfile
+      FROM     experiment e, experimentPerson ep
+      WHERE    e.experimentID = ep.experimentID
+      AND      e.experimentID = p_experimentID;
+
+    END IF;
+
+  ELSE
+    SELECT @US3_LAST_ERRNO AS status;
+
+  END IF;
+
+END$$
+
+-- Returns a more complete list of information about one experiment
+-- Differs from previous procedure by searching by runID and personID
+DROP PROCEDURE IF EXISTS get_experiment_info_by_runID$$
+CREATE PROCEDURE get_experiment_info_by_runID ( p_personGUID CHAR(36),
+                                                p_password   VARCHAR(80),
+                                                p_runID      VARCHAR(80),
+                                                p_ID         INT )
+  READS SQL DATA
+
+BEGIN
+  DECLARE count_experiments INT;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  IF ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) THEN
+    -- This is an admin; he can get more info
+    SELECT COUNT(*)
+    INTO   count_experiments
+    FROM   experiment exp, experimentPerson ep
+    WHERE  exp.experimentID = ep.experimentID
+    AND    ep.personID      = p_ID
+    AND    runID            = p_runID;
+
+    -- In this particular case, setting p_ID = 0 isn't particularly useful
+    --  and can lead to confusion, so let's trap it
+    IF ( p_ID = 0 ) THEN
+      SET @US3_LAST_ERRNO = @NO_PERSON;
+      SET @US3_LAST_ERROR = 'MySQL: No user with that ID exists';
+
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSEIF ( count_experiments = 0 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      SELECT @OK AS status;
+
+      SELECT projectID, ep.experimentID, experimentGUID, labID, instrumentID, 
+             operatorID, rotorID, rotorCalibrationID, type, runTemp, label, comment, 
+             centrifugeProtocol, timestamp2UTC( dateUpdated ) AS UTC_dateUpdated, 
+             personID, runType, RIProfile
+      FROM   experiment exp, experimentPerson ep
+      WHERE  exp.experimentID   = ep.experimentID
+      AND    ep.personID        = p_ID
+      AND    runID              = p_runID;
+
+    END IF;
+
+  ELSEIF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+    SELECT COUNT(*)
+    INTO   count_experiments
+    FROM   experiment exp, experimentPerson ep
+    WHERE  exp.experimentID = ep.experimentID
+    AND    ep.personID      = @US3_ID
+    AND    runID            = p_runID;
+
+    IF ( count_experiments = 0 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      SELECT @OK AS status;
+
+      SELECT projectID, ep.experimentID, experimentGUID, labID, instrumentID, 
+             operatorID, rotorID, rotorCalibrationID, type, runTemp, label, comment, 
+             centrifugeProtocol, timestamp2UTC( dateUpdated ) AS UTC_dateUpdated, 
+             personID, runType, RIProfile
+      FROM   experiment exp, experimentPerson ep
+      WHERE  exp.experimentID   = ep.experimentID
+      AND    ep.personID        = @US3_ID
+      AND    runID              = p_runID;
+
+    END IF;
+
+  ELSE
+    SELECT @US3_LAST_ERRNO AS status;
+
+  END IF;
+
+END$$
+
+-- DELETEs an experiment, plus information in related tables
+DROP PROCEDURE IF EXISTS delete_experiment$$
+CREATE PROCEDURE delete_experiment ( p_personGUID   CHAR(36),
+                                     p_password     VARCHAR(80),
+                                     p_experimentID INT )
+  MODIFIES SQL DATA
+
+BEGIN
+  DECLARE no_more_requestIDs TINYINT DEFAULT 0;
+  DECLARE l_requestID INT;
+  DECLARE l_reportID  INT;
+
+  -- Cursor for iterating through HPC requestID's
+  DECLARE request_csr CURSOR FOR
+    SELECT HPCAnalysisRequestID FROM HPCAnalysisRequest
+    WHERE  experimentID = p_experimentID;
+
+  DECLARE CONTINUE HANDLER FOR NOT FOUND 
+    SET no_more_requestIDs = 1;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+  SET no_more_requestIDs = 0;
+
+  IF ( verify_experiment_permission( p_personGUID, p_password, p_experimentID ) = @OK ) THEN
+
+    -- Make sure records match if they have related tables or not
+    -- Have to do it in a couple of stages because of the constraints
+    DELETE      noise
+    FROM        rawData
+    LEFT JOIN   editedData  ON ( editedData.rawDataID = rawData.rawDataID )
+    LEFT JOIN   model       ON ( model.editedDataID   = editedData.editedDataID )
+    LEFT JOIN   noise       ON ( noise.modelID        = model.modelID )
+    WHERE       rawData.experimentID = p_experimentID;
+
+    DELETE      model, modelPerson
+    FROM        rawData
+    LEFT JOIN   editedData  ON ( editedData.rawDataID = rawData.rawDataID )
+    LEFT JOIN   model       ON ( model.editedDataID   = editedData.editedDataID )
+    LEFT JOIN   modelPerson ON ( modelPerson.modelID  = model.modelID )
+    WHERE       rawData.experimentID = p_experimentID;
+
+    -- Delete all the HPC info
+    --  Commented out for now, to retain for data mining, etc.
+    -- OPEN request_csr;
+    -- request_loop:REPEAT
+    --   FETCH request_csr INTO l_requestID;
+    --   IF ( no_more_requestIDs = 0 ) THEN
+    --     CALL delete_HPCRequest( p_personGUID, p_password, l_requestID );
+    --   END IF;
+    -- UNTIL no_more_requestIDs
+    -- END REPEAT request_loop;
+    -- CLOSE request_csr;
+    -- SET no_more_requestIDs = 0;
+
+    -- Delete any associated reports
+    SELECT reportID INTO l_reportID
+    FROM   report
+    WHERE  experimentID = p_experimentID;
+
+    CALL delete_report( p_personGUID, p_password, l_reportID );
+
+    DELETE      editedData
+    FROM        rawData
+    LEFT JOIN   editedData  ON ( editedData.rawDataID = rawData.rawDataID )
+    WHERE       rawData.experimentID = p_experimentID;
+
+    DELETE FROM rawData
+    WHERE       experimentID = p_experimentID;
+
+    DELETE FROM experimentPerson
+    WHERE experimentID = p_experimentID;
+
+    DELETE FROM speedstep
+    WHERE experimentID = p_experimentID;
+
+    DELETE FROM timestate
+    WHERE experimentID = p_experimentID;
+
+    DELETE FROM experiment
+    WHERE experimentID = p_experimentID;
+
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- DELETEs an HPC request, plus information in related tables
+DROP PROCEDURE IF EXISTS delete_HPCRequest$$
+CREATE PROCEDURE delete_HPCRequest ( p_personGUID   CHAR(36),
+                                     p_password     VARCHAR(80),
+                                     p_requestID    INT )
+  MODIFIES SQL DATA
+
+BEGIN
+  DECLARE l_investigatorGUID CHAR(36);
+  DECLARE l_method           ENUM('2DSA','2DSA_MW','GA','GA_MW','GA_SC','DMGA','PCSA');
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  -- First find out the investigatorGUID, so we can see if this is the user's own data
+  SELECT    investigatorGUID
+  INTO      l_investigatorGUID
+  FROM      HPCAnalysisRequest
+  WHERE     HPCAnalysisRequestID = p_requestID;
+
+  -- Either we're an admin or we're a regular user but it's our own analysis
+  IF ( ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) ||
+       ( ( verify_user( p_personGUID, p_password ) = @OK ) &&
+         ( l_investigatorGUID = p_personGUID )           )              ) THEN
+  
+    -- Make sure records match if they have related tables or not
+    -- Have to do it in a couple of stages because of the constraints
+    DELETE      HPCAnalysisResultData, noise
+    FROM        HPCAnalysisResult
+    LEFT JOIN   HPCAnalysisResultData
+      ON        ( HPCAnalysisResult.HPCAnalysisResultID = HPCAnalysisResultData.HPCAnalysisResultID )
+    LEFT JOIN   noise
+      ON        ( HPCAnalysisResultData.resultID = noise.noiseID )
+    WHERE       HPCAnalysisResultData.HPCAnalysisResultType = 'noise'
+    AND         HPCAnalysisResult.HPCAnalysisRequestID = p_requestID;
+
+    DELETE      HPCAnalysisResultData, model, modelPerson
+    FROM        HPCAnalysisResult
+    LEFT JOIN   HPCAnalysisResultData
+      ON        ( HPCAnalysisResult.HPCAnalysisResultID = HPCAnalysisResultData.HPCAnalysisResultID )
+    LEFT JOIN   model       ON ( HPCAnalysisResultData.resultID = model.modelID )
+    LEFT JOIN   modelPerson ON ( model.modelID  = modelPerson.modelID )
+    WHERE       HPCAnalysisResultData.HPCAnalysisResultType = 'model'
+    AND         HPCAnalysisResult.HPCAnalysisRequestID = p_requestID;
+
+    DELETE FROM HPCAnalysisResult
+    WHERE       HPCAnalysisResult.HPCAnalysisRequestID = p_requestID;
+
+    DELETE      HPCDataset, HPCRequestData
+    FROM        HPCAnalysisRequest
+    LEFT JOIN   HPCDataset
+      ON        ( HPCAnalysisRequest.HPCAnalysisRequestID = HPCDataset.HPCAnalysisRequestID )
+    LEFT JOIN   HPCRequestData
+      ON        ( HPCDataset.HPCDatasetID = HPCDataset.HPCDatasetID )
+    WHERE       HPCAnalysisRequest.HPCAnalysisRequestID = p_requestID;
+
+    IF ( l_method = '2DSA' ) THEN
+      DELETE FROM 2DSA_Settings
+      WHERE       HPCAnalysisRequestID = p_requestID;
+  
+    ELSEIF ( l_method = '2DSA_MW' ) THEN
+      DELETE FROM 2DSA_MW_Settings
+      WHERE       HPCAnalysisRequestID = p_requestID;
+  
+    ELSEIF ( l_method = 'GA_MW' ) THEN
+      DELETE FROM GA_MW_Settings
+      WHERE       HPCAnalysisRequestID = p_requestID;
+  
+    ELSEIF ( l_method = 'GA_SC' ) THEN
+      DELETE FROM GA_SC_Settings
+      WHERE       HPCAnalysisRequestID = p_requestID;
+  
+    ELSEIF ( l_method = 'GA' ) THEN
+      DELETE      GA_Settings, HPCSoluteData
+      FROM        GA_Settings
+      LEFT JOIN   HPCSoluteData
+        ON        ( GA_Settings.GA_SettingsID = HPCSoluteData.GA_SettingsID )
+      WHERE       HPCAnalysisRequestID = p_requestID;
+
+    ELSEIF ( l_method = 'DMGA' ) THEN
+      DELETE FROM DMGA_Settings
+      WHERE       HPCAnalysisRequestID = p_requestID;
+  
+    ELSEIF ( l_method = 'PCSA' ) THEN
+      DELETE FROM PCSA_Settings
+      WHERE       HPCAnalysisRequestID = p_requestID;
+  
+    END IF;
+
+    -- Finally, the parent HPC table
+    DELETE FROM HPCAnalysisRequest
+    WHERE       HPCAnalysisRequestID = p_requestID;
+
+  ELSEIF ( ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) != @OK ) &&
+           ( ( verify_user( p_personGUID, p_password ) != @OK ) ||
+             ( l_investigatorGUID = p_personGUID )           )              ) THEN
+    
+    SET @US3_LAST_ERRNO = @NOTPERMITTED;
+    SET @US3_LAST_ERROR = 'MySQL: you do not have permission to delete this analysis';
+
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- adds a new cell table record, relating an experiment to the cell and centerpiece info
+DROP PROCEDURE IF EXISTS new_cell_experiment$$
+CREATE PROCEDURE new_cell_experiment ( p_personGUID   CHAR(36),
+                                       p_password     VARCHAR(80),
+                                       p_cellGUID     CHAR(36),
+                                       p_name         TEXT,
+                                       p_holeNumber   INT(11),
+                                       p_abstractCenterpieceID INT,
+                                       p_experimentID INT )
+  MODIFIES SQL DATA
+
+BEGIN
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+  SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS;
+  SET @@FOREIGN_KEY_CHECKS=0;
+
+  IF ( verify_experiment_permission( p_personGUID, p_password, p_experimentID ) = @OK ) THEN
+    INSERT INTO cell SET
+      cellGUID     = p_cellGUID,
+      name         = p_name,
+      holeNumber   = p_holeNumber,
+      experimentID = p_experimentID,
+      abstractCenterpieceID = p_abstractCenterpieceID,
+      dateUpdated  = NOW();
+
+  END IF;
+
+  SET @@FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- SELECTs all cell table records relating to an experiment
+DROP PROCEDURE IF EXISTS all_cell_experiments$$
+CREATE PROCEDURE all_cell_experiments ( p_personGUID   CHAR(36),
+                                        p_password     VARCHAR(80),
+                                        p_experimentID INT )
+  READS SQL DATA
+
+BEGIN
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  IF ( verify_experiment_permission( p_personGUID, p_password, p_experimentID ) = @OK ) THEN
+    SELECT @OK AS status;
+
+    SELECT   cellID, cellGUID, name, holeNumber, abstractCenterpieceID
+    FROM     cell
+    WHERE    experimentID = p_experimentID
+    ORDER BY dateUpdated DESC;
+
+  ELSE
+    SELECT @US3_LAST_ERRNO AS status;
+
+  END IF;
+
+END$$
+
+-- DELETEs all cell table records associated with an experiment
+DROP PROCEDURE IF EXISTS delete_cell_experiments$$
+CREATE PROCEDURE delete_cell_experiments ( p_personGUID   CHAR(36),
+                                           p_password     VARCHAR(80),
+                                           p_experimentID INT )
+  MODIFIES SQL DATA
+
+BEGIN
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  IF ( verify_experiment_permission( p_personGUID, p_password, p_experimentID ) = @OK ) THEN
+    DELETE FROM cell
+    WHERE experimentID = p_experimentID;
+
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- adds a new speedstep table record, relating an experiment to the speedstep
+DROP PROCEDURE IF EXISTS new_speedstep$$
+CREATE PROCEDURE new_speedstep ( p_personGUID   CHAR(36),
+                                 p_password     VARCHAR(80),
+                                 p_experimentID INT(11),
+                                 p_scans        INT(11),
+                                 p_durationhrs  INT(11),
+                                 p_durationmins DOUBLE,
+                                 p_delayhrs     INT(11),
+                                 p_delaymins    DOUBLE,
+                                 p_rotorspeed   INT(11),
+                                 p_acceleration INT(11),
+                                 p_accelerflag  TINYINT(1),
+                                 p_w2tfirst     FLOAT,
+                                 p_w2tlast      FLOAT,
+                                 p_timefirst    INT(11),
+                                 p_timelast     INT(11),
+                                 p_setspeed     INT(11),
+                                 p_avgspeed     FLOAT,
+                                 p_speedsdev    FLOAT )
+  MODIFIES SQL DATA
+
+BEGIN
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+  SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS;
+  SET @@FOREIGN_KEY_CHECKS=0;
+
+  IF ( verify_experiment_permission( p_personGUID, p_password, p_experimentID ) = @OK ) THEN
+    INSERT INTO speedstep SET
+      experimentID = p_experimentID,
+      scans        = p_scans,
+      durationhrs  = p_durationhrs,
+      durationmins = p_durationmins,
+      delayhrs     = p_delayhrs,
+      delaymins    = p_delaymins,
+      rotorspeed   = p_rotorspeed,
+      acceleration = p_acceleration,
+      accelerflag  = p_accelerflag,
+      w2tfirst     = p_w2tfirst,
+      w2tlast      = p_w2tlast,
+      timefirst    = p_timefirst,
+      timelast     = p_timelast,
+      setspeed     = p_setspeed,
+      avgspeed     = p_avgspeed,
+      speedsdev    = p_speedsdev;
+
+  END IF;
+
+  SET @@FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- SELECTs all speedstep table records relating to an experiment
+DROP PROCEDURE IF EXISTS all_speedsteps$$
+CREATE PROCEDURE all_speedsteps ( p_personGUID   CHAR(36),
+                                  p_password     VARCHAR(80),
+                                  p_experimentID INT )
+  READS SQL DATA
+
+BEGIN
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  IF ( verify_experiment_permission( p_personGUID, p_password, p_experimentID ) = @OK ) THEN
+    SELECT @OK AS status;
+
+    SELECT   speedstepID, scans, durationhrs, durationmins, delayhrs, delaymins,
+             rotorspeed, acceleration, accelerflag, w2tfirst, w2tlast, timefirst, timelast,
+             setspeed, avgspeed, speedsdev
+    FROM     speedstep
+    WHERE    experimentID = p_experimentID
+    ORDER BY speedstepID;
+
+  ELSE
+    SELECT @US3_LAST_ERRNO AS status;
+
+  END IF;
+
+END$$
+
+-- DELETEs all speedstep table records associated with an experiment
+DROP PROCEDURE IF EXISTS delete_speedsteps$$
+CREATE PROCEDURE delete_speedsteps ( p_personGUID   CHAR(36),
+                                     p_password     VARCHAR(80),
+                                     p_experimentID INT )
+  MODIFIES SQL DATA
+
+BEGIN
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  IF ( verify_experiment_permission( p_personGUID, p_password, p_experimentID ) = @OK ) THEN
+    DELETE FROM speedstep
+    WHERE experimentID = p_experimentID;
+
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+

Added: trunk/lims_upds/us3_insert_bc.sh
===================================================================
--- trunk/lims_upds/us3_insert_bc.sh	                        (rev 0)
+++ trunk/lims_upds/us3_insert_bc.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,15 @@
+# One time script to update all active US3 databases
+#  by newly inserting all bufferComponents entries
+
+LOGIN="-u root -p`cat ~/.sec/.pwsq`"
+cd ~us3/lims/database
+##for db in `cat dblist.txt`
+##for db in uslims3_devel
+##for db in uslims3_cauma3
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db <sql/us3_buffer_components.sql
+done
+


Property changes on: trunk/lims_upds/us3_insert_bc.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_model_procs.sql
===================================================================
--- trunk/lims_upds/us3_model_procs.sql	                        (rev 0)
+++ trunk/lims_upds/us3_model_procs.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,774 @@
+--
+-- us3_model_procs.sql
+--
+-- Script to set up the MySQL stored procedures for the US3 system
+--   These are related to the model tables
+-- Run as us3admin
+--
+
+DELIMITER $$
+
+-- Verifies that the user has permission to view or modify
+--  the specified model
+DROP FUNCTION IF EXISTS verify_model_permission$$
+CREATE FUNCTION verify_model_permission( p_personGUID  CHAR(36),
+                                         p_password    VARCHAR(80),
+                                         p_modelID     INT )
+  RETURNS INT
+  READS SQL DATA
+
+BEGIN
+  DECLARE count_models   INT;
+  DECLARE count_permissions INT;
+  DECLARE status            INT;
+
+  CALL config();
+  SET status   = @ERROR;
+  SET @US3_LAST_ERROR = 'MySQL: error verifying model permission';
+
+  SELECT COUNT(*)
+  INTO   count_models
+  FROM   model
+  WHERE  modelID = p_modelID;
+
+  SELECT COUNT(*)
+  INTO   count_permissions
+  FROM   modelPerson
+  WHERE  modelID = p_modelID
+  AND    personID = @US3_ID;
+
+  IF ( count_models = 0 ) THEN
+    SET @US3_LAST_ERRNO = @NO_MODEL;
+    SET @US3_LAST_ERROR = 'MySQL: the specified model does not exist';
+
+    SET status = @NO_MODEL;
+
+  ELSEIF ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) THEN
+    SET @US3_LAST_ERRNO = @OK;
+    SET @US3_LAST_ERROR = '';
+
+    SET status = @OK;
+
+  ELSEIF ( ( verify_user( p_personGUID, p_password ) = @OK ) &&
+           ( count_permissions > 0                         ) ) THEN
+    SET @US3_LAST_ERRNO = @OK;
+    SET @US3_LAST_ERROR = '';
+
+    SET status = @OK;
+
+  ELSE
+    SET @US3_LAST_ERRNO = @NOTPERMITTED;
+    SET @US3_LAST_ERROR = 'MySQL: you do not have permission to view or modify this model';
+
+    SET status = @NOTPERMITTED;
+
+  END IF;
+
+  RETURN( status );
+
+END$$
+
+-- Returns the count of models associated with p_ID
+--  If p_ID = 0, retrieves count of all models in db
+--  Regular user can only get count of his own models
+DROP FUNCTION IF EXISTS count_models$$
+CREATE FUNCTION count_models( p_personGUID CHAR(36),
+                              p_password VARCHAR(80),
+                              p_ID       INT )
+  RETURNS INT
+  READS SQL DATA
+
+BEGIN
+  
+  DECLARE count_models INT;
+
+  CALL config();
+  SET count_models = 0;
+
+  IF ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) THEN
+    -- This is an admin; he can get more info
+    IF ( p_ID > 0 ) THEN
+      SELECT COUNT(*)
+      INTO   count_models
+      FROM   modelPerson
+      WHERE  personID = p_ID;
+
+    ELSE
+      SELECT COUNT(*)
+      INTO   count_models
+      FROM   modelPerson;
+
+    END IF;
+
+  ELSEIF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+    IF ( (p_ID != 0) && (p_ID != @US3_ID) ) THEN
+      -- Uh oh, can't do that
+      SET @US3_LAST_ERRNO = @NOTPERMITTED;
+      SET @US3_LAST_ERROR = 'MySQL: you do not have permission to view those models';
+     
+    ELSE
+      -- This person is asking about his own models
+      -- Ignore p_ID and return user's own
+      SELECT COUNT(*)
+      INTO   count_models
+      FROM   modelPerson
+      WHERE  personID = @US3_ID;
+
+    END IF;
+    
+  END IF;
+
+  RETURN( count_models );
+
+END$$
+
+-- Returns the count of models associated with p_ID with a given editedDataID
+--  p_ID cannot be 0
+--  Admin user can get count of models that belong to others
+DROP FUNCTION IF EXISTS count_models_by_editID$$
+CREATE FUNCTION count_models_by_editID( p_personGUID CHAR(36),
+                                        p_password   VARCHAR(80),
+                                        p_ID         INT,
+                                        p_editID     INT )
+  RETURNS INT
+  READS SQL DATA
+
+BEGIN
+  
+  DECLARE count_models INT;
+
+  CALL config();
+  SET count_models = 0;
+
+  IF ( p_ID <= 0 ) THEN
+    -- Gotta have a real ID
+    RETURN ( 0 );
+    
+  ELSEIF ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) THEN
+    -- This is an admin; he can get more info
+    SELECT COUNT(*)
+    INTO   count_models
+    FROM   modelPerson, model
+    WHERE  personID = p_ID
+    AND    modelPerson.modelID = model.modelID
+    AND    editedDataID        = p_editID;
+
+  ELSEIF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+    IF ( (p_ID != 0) && (p_ID != @US3_ID) ) THEN
+      -- Uh oh, can't do that
+      SET @US3_LAST_ERRNO = @NOTPERMITTED;
+      SET @US3_LAST_ERROR = 'MySQL: you do not have permission to view those models';
+     
+    ELSE
+      -- This person is asking about his own models
+      -- Ignore p_ID and return user's own
+      SELECT COUNT(*)
+      INTO   count_models
+      FROM   modelPerson, model
+      WHERE  personID = @US3_ID
+      AND    modelPerson.modelID = model.modelID
+      AND    editedDataID        = p_editID;
+
+    END IF;
+    
+  END IF;
+
+  RETURN( count_models );
+
+END$$
+
+-- Returns the count of models associated with p_ID with a given runID
+--  p_ID cannot be 0
+--  Admin user can get count of models that belong to others
+DROP FUNCTION IF EXISTS count_models_by_runID$$
+CREATE FUNCTION count_models_by_runID( p_personGUID CHAR(36),
+                                        p_password   VARCHAR(80),
+                                        p_ID         INT,
+                                        p_runID      VARCHAR(60) )
+  RETURNS INT
+  READS SQL DATA
+
+BEGIN
+  
+  DECLARE count_models INT;
+  DECLARE run_pattern VARCHAR(80);
+
+  CALL config();
+  SET count_models = 0;
+  SET run_pattern = CONCAT( p_runID, '.%' );
+
+  IF ( p_ID <= 0 ) THEN
+    -- Gotta have a real ID
+    RETURN ( 0 );
+    
+  ELSEIF ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) THEN
+    -- This is an admin; he can get more info
+    SELECT COUNT(*)
+    INTO   count_models
+    FROM   modelPerson, model
+    WHERE  personID = p_ID
+    AND    modelPerson.modelID = model.modelID
+    AND    description LIKE run_pattern ;
+
+  ELSEIF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+    IF ( (p_ID != 0) && (p_ID != @US3_ID) ) THEN
+      -- Uh oh, can't do that
+      SET @US3_LAST_ERRNO = @NOTPERMITTED;
+      SET @US3_LAST_ERROR = 'MySQL: you do not have permission to view those models';
+     
+    ELSE
+      -- This person is asking about his own models
+      -- Ignore p_ID and return user's own
+      SELECT COUNT(*)
+      INTO   count_models
+      FROM   modelPerson, model
+      WHERE  personID = @US3_ID
+      AND    modelPerson.modelID = model.modelID
+      AND    description LIKE run_pattern ;
+
+    END IF;
+    
+  END IF;
+
+  RETURN( count_models );
+
+END$$
+
+-- INSERTs a new model with the specified information
+DROP PROCEDURE IF EXISTS new_model$$
+CREATE PROCEDURE new_model ( p_personGUID  CHAR(36),
+                             p_password    VARCHAR(80),
+                             p_modelGUID   CHAR(36),
+                             p_description TEXT,
+                             p_xml         LONGTEXT,
+                             p_variance    DOUBLE,
+                             p_meniscus    DOUBLE,
+                             p_editGUID    CHAR(36),
+                             p_ownerID     INT )
+  MODIFIES SQL DATA
+
+BEGIN
+  DECLARE l_modelID      INT;
+  DECLARE l_count_editID INT;
+  DECLARE l_editID       INT;
+
+  DECLARE duplicate_key TINYINT DEFAULT 0;
+  DECLARE null_field    TINYINT DEFAULT 0;
+
+  DECLARE CONTINUE HANDLER FOR 1062
+    SET duplicate_key = 1;
+
+  DECLARE CONTINUE HANDLER FOR 1048
+    SET null_field = 1;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+  SET @LAST_INSERT_ID = 0;
+ 
+  -- Translate editGUID into editedDataID
+  SET l_editID = 1;         -- default to special "unassigned" record
+  SELECT COUNT(*) 
+  INTO   l_count_editID
+  FROM   editedData
+  WHERE  editGUID = p_editGUID;
+
+  IF ( l_count_editID > 0 ) THEN
+    SELECT editedDataID
+    INTO   l_editID
+    FROM   editedData
+    WHERE  editGUID = p_editGUID
+    LIMIT  1;
+
+  END IF;
+
+  IF ( ( verify_user( p_personGUID, p_password ) = @OK ) &&
+       ( check_GUID ( p_personGUID, p_password, p_modelGUID ) = @OK ) ) THEN
+    INSERT INTO model SET
+      editedDataID = l_editID,
+      modelGUID    = p_modelGUID,
+      description  = p_description,
+      xml          = p_xml,
+      variance     = p_variance,
+      meniscus     = p_meniscus,
+      lastUpdated  = NOW();
+
+    IF ( duplicate_key = 1 ) THEN
+      SET @US3_LAST_ERRNO = @INSERTDUP;
+      SET @US3_LAST_ERROR = "MySQL: Duplicate entry for modelGUID field";
+
+    ELSEIF ( null_field = 1 ) THEN
+      SET @US3_LAST_ERRNO = @INSERTNULL;
+      SET @US3_LAST_ERROR = "MySQL: NULL value for modelGUID field";
+
+    ELSE
+      SET @LAST_INSERT_ID = LAST_INSERT_ID();
+
+      INSERT INTO modelPerson SET
+        modelID   = @LAST_INSERT_ID,
+        personID  = p_ownerID;
+
+    END IF;
+
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- UPDATEs an existing model with the specified information
+DROP PROCEDURE IF EXISTS update_model$$
+CREATE PROCEDURE update_model ( p_personGUID  CHAR(36),
+                                p_password    VARCHAR(80),
+                                p_modelID     INT,
+                                p_description TEXT,
+                                p_xml         LONGTEXT,
+                                p_variance    DOUBLE,
+                                p_meniscus    DOUBLE,
+                                p_editGUID    CHAR(36) )
+  MODIFIES SQL DATA
+
+BEGIN
+  DECLARE not_found     TINYINT DEFAULT 0;
+  DECLARE l_count_editID INT;
+  DECLARE l_editID       INT;
+
+  DECLARE CONTINUE HANDLER FOR NOT FOUND
+    SET not_found = 1;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  -- Translate editGUID into editedDataID
+  SET l_editID = 1;         -- default to special "unassigned" record
+
+  SELECT COUNT(*)           -- see if we can find the existing record
+  INTO   l_count_editID
+  FROM   model
+  WHERE  modelID = p_modelID;
+
+  IF ( l_count_editID > 0 ) THEN
+    SELECT editedDataID     -- replace default with what's there already
+    INTO   l_editID
+    FROM   model
+    WHERE  modelID = p_modelID;
+
+  END IF;
+
+  SELECT COUNT(*)           -- See if the supplied parameter really does point to a record
+  INTO   l_count_editID
+  FROM   editedData
+  WHERE  editGUID = p_editGUID;
+
+  IF ( l_count_editID > 0 ) THEN
+    SELECT editedDataID
+    INTO   l_editID
+    FROM   editedData
+    WHERE  editGUID = p_editGUID
+    LIMIT  1;
+
+  END IF;
+
+  IF ( verify_model_permission( p_personGUID, p_password, p_modelID ) = @OK ) THEN
+    UPDATE model SET
+      editedDataID = l_editID,
+      description  = p_description,
+      xml          = p_xml,
+      variance     = p_variance,
+      meniscus     = p_meniscus,
+      lastUpdated  = NOW()
+    WHERE modelID  = p_modelID;
+
+    IF ( not_found = 1 ) THEN
+      SET @US3_LAST_ERRNO = @NO_MODEL;
+      SET @US3_LAST_ERROR = "MySQL: No model with that ID exists";
+
+    ELSE
+      SET @LAST_INSERT_ID = LAST_INSERT_ID();
+
+    END IF;
+
+  END IF;
+      
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- Returns the modelID associated with the given modelGUID
+DROP PROCEDURE IF EXISTS get_modelID$$
+CREATE PROCEDURE get_modelID ( p_personGUID    CHAR(36),
+                               p_password    VARCHAR(80),
+                               p_modelGUID   CHAR(36) )
+  READS SQL DATA
+
+BEGIN
+
+  DECLARE count_models INT;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+  SET count_models    = 0;
+
+  IF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+
+    SELECT    COUNT(*)
+    INTO      count_models
+    FROM      model
+    WHERE     modelGUID = p_modelGUID;
+
+    IF ( TRIM( p_modelGUID ) = '' ) THEN
+      SET @US3_LAST_ERRNO = @EMPTY;
+      SET @US3_LAST_ERROR = CONCAT( 'MySQL: The modelGUID parameter to the ',
+                                    'get_modelID function cannot be empty' );
+
+    ELSEIF ( count_models < 1 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+ 
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      SELECT @OK AS status;
+
+      SELECT   modelID
+      FROM     model
+      WHERE    modelGUID = p_modelGUID;
+
+    END IF;
+
+  END IF;
+
+END$$
+
+-- Returns the modelID and description of all models associated with p_ID
+--  If p_ID = 0, retrieves information about all models in db
+--  Regular user can only get info about his own models
+DROP PROCEDURE IF EXISTS get_model_desc$$
+CREATE PROCEDURE get_model_desc ( p_personGUID CHAR(36),
+                                  p_password VARCHAR(80),
+                                  p_ID       INT )
+  READS SQL DATA
+
+BEGIN
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  IF ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) THEN
+    -- This is an admin; he can get more info
+    IF ( count_models( p_personGUID, p_password, p_ID ) < 1 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+   
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      SELECT @OK AS status;
+  
+      IF ( p_ID > 0 ) THEN
+        SELECT   m.modelID, modelGUID, description, m.variance, m.meniscus,
+                 editGUID, m.editedDataID,
+                 timestamp2UTC( m.lastUpdated ) AS UTC_lastUpdated,
+                 MD5( xml ) AS checksum, LENGTH( xml ) AS size
+        FROM     modelPerson, model m, editedData
+        WHERE    modelPerson.modelID = m.modelID
+        AND      m.editedDataID = editedData.editedDataID
+        AND      modelPerson.personID = @US3_ID
+        ORDER BY m.modelID DESC;
+   
+      ELSE
+        SELECT   m.modelID, modelGUID, description, m.variance, m.meniscus,
+                 editGUID, m.editedDataID,
+                 timestamp2UTC( m.lastUpdated ) AS UTC_lastUpdated,
+                 MD5( xml ) AS checksum, LENGTH( xml ) AS size
+        FROM     modelPerson, model m, editedData
+        WHERE    modelPerson.modelID = m.modelID
+        AND      m.editedDataID = editedData.editedDataID
+        ORDER BY m.modelID DESC;
+
+      END IF;
+
+    END IF;
+
+  ELSEIF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+    IF ( (p_ID != 0) && (p_ID != @US3_ID) ) THEN
+      -- Uh oh, can't do that
+      SET @US3_LAST_ERRNO = @NOTPERMITTED;
+      SET @US3_LAST_ERROR = 'MySQL: you do not have permission to view this model';
+     
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSEIF ( count_models( p_personGUID, p_password, @US3_ID ) < 1 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+   
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      -- Ok, user wants his own info
+      SELECT @OK AS status;
+
+      SELECT   m.modelID, modelGUID, description, m.variance, m.meniscus,
+               editGUID, m.editedDataID,
+               timestamp2UTC( m.lastUpdated ) AS UTC_lastUpdated,
+               MD5( xml ) AS checksum, LENGTH( xml ) AS size
+      FROM     modelPerson, model m, editedData
+      WHERE    modelPerson.modelID = m.modelID
+      AND      m.editedDataID = editedData.editedDataID
+      AND      modelPerson.personID = @US3_ID
+      ORDER BY m.modelID DESC;
+      
+
+    END IF;
+
+  END IF;
+
+END$$
+
+-- Returns the modelID and description of all models associated with p_ID and editID
+--  Unlike get_model_desc, in this function p_ID cannot be 0
+--  Admin can view p_ID/editID combinations that belong to anyone
+DROP PROCEDURE IF EXISTS get_model_desc_by_editID$$
+CREATE PROCEDURE get_model_desc_by_editID ( p_personGUID CHAR(36),
+                                            p_password   VARCHAR(80),
+                                            p_ID         INT,
+                                            p_editID     INT )
+  READS SQL DATA
+
+BEGIN
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  IF ( p_ID <= 0 ) THEN
+    -- Gotta have a real ID
+    SET @US3_LAST_ERRNO = @EMPTY;
+    SET @US3_LAST_ERROR = 'MySQL: The ID cannot be 0';
+
+    SELECT @US3_LAST_ERRNO AS status;
+    
+  ELSEIF ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) THEN
+    -- This is an admin; he can get info that belongs to others
+    IF ( count_models_by_editID( p_personGUID, p_password, p_ID, p_editID ) < 1 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+   
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      SELECT @OK AS status;
+  
+      SELECT m.modelID, modelGUID, description, m.variance, m.meniscus,
+             editGUID, m.editedDataID,
+             timestamp2UTC( m.lastUpdated ) AS UTC_lastUpdated,
+             MD5( xml ) AS checksum, LENGTH( xml ) AS size
+      FROM   modelPerson, model m, editedData
+      WHERE  personID = p_ID
+      AND    modelPerson.modelID = m.modelID
+      AND    m.editedDataID      = p_editID
+      AND    m.editedDataID      = editedData.editedDataID
+      ORDER BY m.modelID DESC;
+   
+    END IF;
+
+  ELSEIF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+    IF ( (p_ID != 0) && (p_ID != @US3_ID) ) THEN
+      -- Uh oh, can't do that
+      SET @US3_LAST_ERRNO = @NOTPERMITTED;
+      SET @US3_LAST_ERROR = 'MySQL: you do not have permission to view this model';
+     
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSEIF ( count_models_by_editID( p_personGUID, p_password, @US3_ID, p_editID ) < 1 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+   
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      -- Ok, user wants his own info
+      SELECT @OK AS status;
+
+      SELECT m.modelID, modelGUID, description, m.variance, m.meniscus,
+             editGUID, m.editedDataID,
+             timestamp2UTC( m.lastUpdated ) AS UTC_lastUpdated,
+             MD5( xml ) AS checksum, LENGTH( xml ) AS size
+      FROM   modelPerson, model m, editedData
+      WHERE  personID = @US3_ID
+      AND    modelPerson.modelID = m.modelID
+      AND    m.editedDataID      = p_editID
+      AND    m.editedDataID      = editedData.editedDataID
+      ORDER BY m.modelID DESC;
+   
+    END IF;
+
+  END IF;
+
+END$$
+
+-- Returns the modelID and description of all models associated with p_ID and runID
+--  Unlike get_model_desc, in this function p_ID cannot be 0
+--  Admin can view p_ID/runID combinations that belong to anyone
+DROP PROCEDURE IF EXISTS get_model_desc_by_runID$$
+CREATE PROCEDURE get_model_desc_by_runID ( p_personGUID CHAR(36),
+                                           p_password   VARCHAR(80),
+                                           p_ID         INT,
+                                           p_runID      VARCHAR(60) )
+  READS SQL DATA
+
+BEGIN
+
+  DECLARE run_pattern VARCHAR(80);
+
+  CALL config();
+  SET run_pattern = CONCAT( p_runID, '.%' );
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  IF ( p_ID <= 0 ) THEN
+    -- Gotta have a real ID
+    SET @US3_LAST_ERRNO = @EMPTY;
+    SET @US3_LAST_ERROR = 'MySQL: The ID cannot be 0';
+
+    SELECT @US3_LAST_ERRNO AS status;
+    
+  ELSEIF ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) THEN
+    -- This is an admin; he can get info that belongs to others
+    IF ( count_models_by_runID( p_personGUID, p_password, p_ID, p_runID ) < 1 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+   
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      SELECT @OK AS status;
+  
+      SELECT m.modelID, modelGUID, description, m.variance, m.meniscus,
+             editGUID, m.editedDataID,
+             timestamp2UTC( m.lastUpdated ) AS UTC_lastUpdated,
+             MD5( xml ) AS checksum, LENGTH( xml ) AS size
+      FROM   modelPerson, model m, editedData
+      WHERE  personID = p_ID
+      AND    modelPerson.modelID = m.modelID
+      AND    m.editedDataID      = editedData.editedDataID
+      AND    description LIKE run_pattern
+      ORDER BY m.modelID DESC;
+   
+    END IF;
+
+  ELSEIF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+    IF ( (p_ID != 0) && (p_ID != @US3_ID) ) THEN
+      -- Uh oh, can't do that
+      SET @US3_LAST_ERRNO = @NOTPERMITTED;
+      SET @US3_LAST_ERROR = 'MySQL: you do not have permission to view this model';
+     
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSEIF ( count_models_by_runID( p_personGUID, p_password, @US3_ID, p_runID ) < 1 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+   
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      -- Ok, user wants his own info
+      SELECT @OK AS status;
+
+      SELECT m.modelID, modelGUID, description, m.variance, m.meniscus,
+             editGUID, m.editedDataID,
+             timestamp2UTC( m.lastUpdated ) AS UTC_lastUpdated,
+             MD5( xml ) AS checksum, LENGTH( xml ) AS size
+      FROM   modelPerson, model m, editedData
+      WHERE  personID = @US3_ID
+      AND    modelPerson.modelID = m.modelID
+      AND    m.editedDataID      = editedData.editedDataID
+      AND    description LIKE run_pattern
+      ORDER BY m.modelID DESC;
+   
+    END IF;
+
+  END IF;
+
+END$$
+
+-- Returns a more complete list of information about one model
+DROP PROCEDURE IF EXISTS get_model_info$$
+CREATE PROCEDURE get_model_info ( p_personGUID  CHAR(36),
+                                  p_password  VARCHAR(80),
+                                  p_modelID   INT )
+  READS SQL DATA
+
+BEGIN
+  DECLARE count_models INT;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  SELECT     COUNT(*)
+  INTO       count_models
+  FROM       model
+  WHERE      modelID = p_modelID;
+
+  IF ( verify_model_permission( p_personGUID, p_password, p_modelID ) = @OK ) THEN
+    IF ( count_models = 0 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      SELECT @OK AS status;
+
+      SELECT   modelGUID, description, xml, variance, meniscus, personID,
+               timestamp2UTC( lastUpdated ) AS UTC_lastUpdated,
+               MD5( xml ) AS checksum, LENGTH( xml ) AS size
+      FROM     model m, modelPerson mp
+      WHERE    m.modelID = mp.modelID
+      AND      m.modelID = p_modelID;
+
+    END IF;
+
+  ELSE
+    SELECT @US3_LAST_ERRNO AS status;
+
+  END IF;
+
+END$$
+
+-- DELETEs a model, plus information in related tables
+DROP PROCEDURE IF EXISTS delete_model$$
+CREATE PROCEDURE delete_model ( p_personGUID  CHAR(36),
+                                p_password  VARCHAR(80),
+                                p_modelID   INT )
+  MODIFIES SQL DATA
+
+BEGIN
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  IF ( verify_model_permission( p_personGUID, p_password, p_modelID ) = @OK ) THEN
+
+    -- Make sure records match if they have related tables or not
+    -- Have to do it in a couple of stages because of the constraints
+    DELETE      noise
+    FROM        model
+    LEFT JOIN   noise ON ( noise.modelID = model.modelID )
+    WHERE       model.modelID = p_modelID;
+
+    DELETE FROM modelPerson
+    WHERE modelID = p_modelID;
+
+    DELETE FROM model
+    WHERE modelID = p_modelID;
+
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$

Added: trunk/lims_upds/us3_people_procs.sql
===================================================================
--- trunk/lims_upds/us3_people_procs.sql	                        (rev 0)
+++ trunk/lims_upds/us3_people_procs.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,400 @@
+--
+-- us3_people_procs.sql
+--
+-- Script to set up the MySQL stored procedures for the US3 system
+--   These are procedures related to information about people
+-- Run as us3admin
+--
+
+DELIMITER $$
+
+-- Finds the user with the passed email and password,
+--  returns ID, firstName, lastName, phone, and userLevel
+DROP PROCEDURE IF EXISTS get_user_info$$
+CREATE PROCEDURE get_user_info( p_personGUID CHAR(36),
+                                p_password   VARCHAR(80) )
+  READS SQL DATA
+
+BEGIN
+  CALL config();
+
+  IF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+    SELECT @OK AS status;
+
+    SELECT @US3_ID    AS ID, 
+           @FNAME     AS firstName, 
+           @LNAME     AS lastName, 
+           @PHONE     AS phone, 
+           @EMAIL     AS email,
+           @USERLEVEL AS userLevel;
+
+  ELSE
+    SELECT @US3_LAST_ERRNO AS status;
+
+
+  END IF;
+
+END$$
+
+-- Returns of count of all records in the database, optionally
+--   matching some text in the last name field
+DROP FUNCTION IF EXISTS count_people$$
+CREATE FUNCTION count_people( p_personGUID CHAR(36),
+                              p_password   VARCHAR(80),
+                              p_template   VARCHAR(30) )
+  RETURNS INT
+  READS SQL DATA
+
+BEGIN
+  DECLARE template    VARCHAR(40);
+  DECLARE count_names INT;
+
+  CALL config();
+  SET p_template = TRIM( p_template );
+
+  IF ( LENGTH(p_template) = 0 ) THEN
+    SELECT     COUNT(*)
+    INTO       count_names
+    FROM       people;
+
+  ELSE
+    SET template = CONCAT('%', p_template, '%');
+
+    SELECT     COUNT(*)
+    INTO       count_names
+    FROM       people
+    WHERE      lname LIKE template
+    OR         fname LIKE template;
+
+  END IF;
+
+  RETURN( count_names );
+END$$
+
+-- Lists all ID's and names in the database, optionally matching
+--   some text in the last name field
+DROP PROCEDURE IF EXISTS get_people$$
+CREATE PROCEDURE get_people( p_personGUID CHAR(36),
+                             p_password   VARCHAR(80),
+                             p_template   VARCHAR(30) )
+  READS SQL DATA
+
+BEGIN
+  DECLARE template VARCHAR(40);
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+  SET p_template      = TRIM( p_template );
+
+  IF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+    IF ( count_people( p_personGUID, p_password, p_template )  < 1 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSEIF ( LENGTH(p_template) = 0 ) THEN
+      SELECT @OK AS status;
+
+      SELECT   personID,
+               lname AS lastName,
+               fname AS firstName,
+               organization,
+               userlevel
+      FROM     people
+      ORDER BY lname;
+
+    ELSE
+      SELECT @OK AS status;
+
+      SET template = CONCAT('%', p_template, '%');
+
+      SELECT   personID,
+               lname AS lastName,
+               fname AS firstName,
+               organization,
+               userlevel
+      FROM     people
+      WHERE    lname LIKE template
+      OR       fname LIKE template
+      ORDER BY lname, fname;
+    
+    END IF;
+
+  ELSE
+    SELECT @US3_LAST_ERRNO AS status;
+
+  END IF;
+
+END$$
+
+-- Returns a more complete list of information about one user
+DROP PROCEDURE IF EXISTS get_person_info$$
+CREATE PROCEDURE get_person_info( p_personGUID CHAR(36),
+                                  p_password   VARCHAR(80),
+                                  p_ID         INT )
+  READS SQL DATA
+
+BEGIN
+  DECLARE count_person INT;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  SELECT     COUNT(*)
+  INTO       count_person
+  FROM       people
+  WHERE      personID = p_ID;
+
+  IF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+    IF ( count_person = 0 ) THEN
+      SET @US3_LAST_ERRNO = @NOROWS;
+      SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+
+      SELECT @US3_LAST_ERRNO AS status;
+
+    ELSE
+      SELECT @OK AS status;
+
+      SELECT   fname AS firstName,
+               lname AS lastName,
+               address,
+               city,
+               state,
+               zip,
+               phone,
+               organization,
+               email,
+               personGUID
+      FROM     people
+      WHERE    personID = p_ID;
+
+    END IF;
+
+  ELSE
+    SELECT @US3_LAST_ERRNO AS status;
+
+  END IF;
+
+END$$
+
+-- INSERTs a new person with the specified information
+DROP PROCEDURE IF EXISTS new_person$$
+CREATE PROCEDURE new_person ( p_personGUID   CHAR(36),
+                              p_password     VARCHAR(80),
+                              p_fname        VARCHAR(30),
+                              p_lname        VARCHAR(30),
+                              p_address      VARCHAR(255),
+                              p_city         VARCHAR(30),
+                              p_state        CHAR(2),
+                              p_zip          VARCHAR(10),
+                              p_phone        VARCHAR(24),
+                              p_new_email    VARCHAR(63),
+                              p_new_guid     CHAR(36),
+                              p_organization VARCHAR(45),
+                              p_new_password VARCHAR(80) )
+  MODIFIES SQL DATA
+
+BEGIN
+  DECLARE duplicate_key TINYINT DEFAULT 0;
+  DECLARE null_field    TINYINT DEFAULT 0;
+
+  DECLARE CONTINUE HANDLER FOR 1062
+    SET duplicate_key = 1;
+
+  DECLARE CONTINUE HANDLER FOR 1048
+    SET null_field = 1;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+  SET @LAST_INSERT_ID = 0;
+
+  IF ( ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) &&
+       ( check_GUID      ( p_personGUID, p_password, p_new_guid ) = @OK ) ) THEN
+
+    INSERT INTO people SET
+           fname        = p_fname,
+           lname        = p_lname,
+           address      = p_address,
+           city         = p_city,
+           state        = p_state,
+           zip          = p_zip,
+           phone        = p_phone,
+           email        = p_new_email,
+           personGUID   = p_new_guid,
+           organization = p_organization,
+           password     = MD5(p_new_password),
+           activated    = true,
+           signup       = NOW(),
+           lastLogin    = NOW(),
+           clusterAuthorizations = 'bcf:alamo:laredo:lonestar:bigred:steele:queenbee',
+           userlevel    = 0;
+
+    IF ( duplicate_key = 1 ) THEN
+      SET @US3_LAST_ERRNO = @INSERTDUP;
+      SET @US3_LAST_ERROR = "MySQL: Duplicate entry for email or personGUID field";
+
+    ELSEIF ( null_field = 1 ) THEN
+      SET @US3_LAST_ERRNO = @INSERTNULL;
+      SET @US3_LAST_ERROR = "MySQL: NULL value for a field that cannot be NULL";
+
+    ELSE
+      SET @LAST_INSERT_ID = LAST_INSERT_ID();
+
+    END IF;
+
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- UPDATEs a person with the specified information
+DROP PROCEDURE IF EXISTS update_person$$
+CREATE PROCEDURE update_person ( p_personGUID   CHAR(36),
+                                 p_password     VARCHAR(80),
+                                 p_ID           INT,
+                                 p_fname        VARCHAR(30),
+                                 p_lname        VARCHAR(30),
+                                 p_address      VARCHAR(255),
+                                 p_city         VARCHAR(30),
+                                 p_state        CHAR(2),
+                                 p_zip          VARCHAR(10),
+                                 p_phone        VARCHAR(24),
+                                 p_new_email    VARCHAR(63),
+                                 p_organization VARCHAR(45),
+                                 p_new_password VARCHAR(80) )
+  MODIFIES SQL DATA
+
+BEGIN
+  DECLARE duplicate_key TINYINT DEFAULT 0;
+  DECLARE null_field    TINYINT DEFAULT 0;
+  DECLARE not_found     TINYINT DEFAULT 0;
+
+  DECLARE CONTINUE HANDLER FOR 1062
+    SET duplicate_key = 1;
+
+  DECLARE CONTINUE HANDLER FOR 1048
+    SET null_field = 1;
+
+  DECLARE CONTINUE HANDLER FOR NOT FOUND
+    SET not_found = 1;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+  SET @LAST_INSERT_ID = 0;
+
+  -- Legitimate users include people updating their own info, or admins
+  IF ( ( ( verify_user( p_personGUID, p_password ) = @OK ) &&
+         ( p_ID = @US3_ID                                )              ) ||
+       ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK )  ) THEN
+
+    UPDATE people SET
+           fname        = p_fname,
+           lname        = p_lname,
+           address      = p_address,
+           city         = p_city,
+           state        = p_state,
+           zip          = p_zip,
+           phone        = p_phone,
+           email        = p_new_email,
+           organization = p_organization,
+           password     = MD5(p_new_password),
+           activated    = true,
+           lastLogin    = NOW()
+    WHERE  personID     = p_ID;
+
+    IF ( duplicate_key = 1 ) THEN
+      SET @US3_LAST_ERRNO = @INSERTDUP;
+      SET @US3_LAST_ERROR = "MySQL: Duplicate entry for email field";
+
+    ELSEIF ( null_field = 1 ) THEN
+      SET @US3_LAST_ERRNO = @INSERTNULL;
+      SET @US3_LAST_ERROR = "MySQL: NULL value for email field is not allowed";
+
+    ELSEIF ( not_found = 1 ) THEN
+      SET @US3_LAST_ERRNO = @NO_PERSON;
+      SET @US3_LAST_ERROR = "MySQL: No person with that ID exists";
+
+    ELSE
+      SET @LAST_INSERT_ID = LAST_INSERT_ID();
+
+    END IF;
+
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- DELETEs a person (marks inactive)
+DROP PROCEDURE IF EXISTS delete_person$$
+CREATE PROCEDURE delete_person ( p_personGUID     CHAR(36),
+                                 p_password     VARCHAR(80),
+                                 p_ID           INT )
+  MODIFIES SQL DATA
+
+BEGIN
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  IF ( verify_userlevel( p_personGUID, p_password, @US3_ADMIN ) = @OK ) THEN
+
+    UPDATE people SET
+           activated    = false,
+           lastLogin    = NOW()
+    WHERE  personID     = p_ID;
+
+    SET @LAST_INSERT_ID = LAST_INSERT_ID();
+
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- Translate a personGUID into a personID
+DROP PROCEDURE IF EXISTS get_personID_from_GUID$$
+CREATE PROCEDURE get_personID_from_GUID ( p_personGUID   CHAR(36),
+                                          p_password     VARCHAR(80),
+                                          p_lookupGUID   CHAR(36) )
+  READS SQL DATA
+
+BEGIN
+  DECLARE count_person  INT;
+  DECLARE l_personID    INT;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  SELECT     COUNT(*)
+  INTO       count_person
+  FROM       people
+  WHERE      personGUID = p_lookupGUID;
+
+  IF ( count_person = 0 ) THEN
+    SET @US3_LAST_ERRNO = @NOROWS;
+    SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+
+    SELECT @US3_LAST_ERRNO AS status;
+
+  ELSE
+    SELECT personID
+    INTO   l_personID
+    FROM   people
+    WHERE  personGUID = p_lookupGUID
+    LIMIT  1;                           -- should be only 1
+
+    SELECT @OK AS status;
+
+    SELECT l_personID AS personID;
+
+  END IF;
+
+END$$
+

Added: trunk/lims_upds/us3_show_bc.sh
===================================================================
--- trunk/lims_upds/us3_show_bc.sh	                        (rev 0)
+++ trunk/lims_upds/us3_show_bc.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,17 @@
+# One time script to update all active US3 databases
+#  by changing the Glycerol% bufferComponents entry
+#  for proper range and range unit
+
+LOGIN="-u root -p`cat ~/.sec/.pwsq`"
+##CMD="update bufferComponent set density='0.99823 0.030859 0.2249 6.333e-3 2.505e-5 4.151e-5 0-32 %weight/weight' where bufferComponentID=25"
+CMD="select bufferComponentID,description,density,c_range from bufferComponent where description like '%lycero%'"
+##for db in `cat dblist.txt`
+##for db in uslims3_cauma3
+##for db in uslims3_devel
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db -sNe "${CMD}"
+done
+


Property changes on: trunk/lims_upds/us3_show_bc.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_timestate_procs.sql
===================================================================
--- trunk/lims_upds/us3_timestate_procs.sql	                        (rev 0)
+++ trunk/lims_upds/us3_timestate_procs.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,339 @@
+--
+-- us3_timestate_procs.sql
+--
+-- Script to set up the MySQL stored procedures for the US3 system
+--   These are procedures related to the timestate data
+-- Run as us3admin
+--
+
+DELIMITER $$
+
+-- Routines that deal with the timestate for an experiment run
+
+-- INSERTs new timestate information for an experiment
+DROP PROCEDURE IF EXISTS new_timestate$$
+CREATE PROCEDURE new_timestate ( p_personGUID   CHAR(36),
+                                 p_password     VARCHAR(80),
+                                 p_experimentID INT,
+                                 p_filename     VARCHAR(255),
+                                 p_definitions  LONGTEXT )
+  MODIFIES SQL DATA
+
+BEGIN
+
+  DECLARE null_field    TINYINT DEFAULT 0;
+
+  DECLARE CONTINUE HANDLER FOR 1048
+    SET null_field = 1;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+  SET @LAST_INSERT_ID = 0;
+ 
+  IF ( verify_user( p_personGUID, p_password ) = @OK ) THEN
+ 
+    -- A user is creating a timestate
+    --  filename is the basename of the .tmst binary file
+    --  definitions is the accompanying XML as text
+    INSERT INTO timestate SET
+      experimentID   = p_experimentID,
+      filename       = p_filename,
+      definitions    = p_definitions,
+      dateUpdated    = NOW();
+   
+    IF ( null_field = 1 ) THEN
+      SET @US3_LAST_ERRNO = @INSERTNULL;
+      SET @US3_LAST_ERROR = "MySQL: Attempt to insert NULL value in the timestate table";
+
+    ELSE
+      SET @LAST_INSERT_ID  = LAST_INSERT_ID();
+
+      -- Don't update @LAST_INSERT_ID, because the user is not interested in this one
+
+    END IF;
+   
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- UPDATEs the existing timestate information for an experiment
+DROP PROCEDURE IF EXISTS update_timestate$$
+CREATE PROCEDURE update_timestate ( p_personGUID   CHAR(36),
+                                    p_password     VARCHAR(80),
+                                    p_timestateID  INT,
+                                    p_experimentID INT,
+                                    p_filename     VARCHAR(255),
+                                    p_definitions  LONGTEXT )
+  MODIFIES SQL DATA
+
+BEGIN
+
+  DECLARE null_field    TINYINT DEFAULT 0;
+
+  DECLARE CONTINUE HANDLER FOR 1048
+    SET null_field = 1;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+ 
+  IF ( verify_experiment_permission( p_personGUID, p_password, p_experimentID ) = @OK ) THEN
+ 
+    -- A user is updating a timestate
+    UPDATE timestate SET
+      experimentID   = p_experimentID,
+      filename       = p_filename,
+      definitions    = p_definitions,
+      dateUpdated    = NOW()
+    WHERE timestateID = p_timestateID;
+   
+    IF ( null_field = 1 ) THEN
+      SET @US3_LAST_ERRNO = @INSERTNULL;
+      SET @US3_LAST_ERROR = "MySQL: Attempt to insert NULL value in the timestate table";
+
+    END IF;
+   
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- SELECTs the timestate information for a specified timestate ID
+DROP PROCEDURE IF EXISTS get_timestate$$
+CREATE PROCEDURE get_timestate ( p_personGUID   CHAR(36),
+                                 p_password     VARCHAR(80),
+                                 p_timestateID  INT )
+  READS SQL DATA
+
+BEGIN
+
+  DECLARE count_timestate   INT;
+  DECLARE l_experimentID    INT;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+ 
+  -- Get information we need to verify ownership
+  SELECT experimentID
+  INTO   l_experimentID
+  FROM   timestate
+  WHERE  timestateID = p_timestateID;
+ 
+  SELECT COUNT(*)
+  INTO   count_timestate
+  FROM   timestate
+  WHERE  timestateID = p_timestateID;
+
+  IF ( count_timestate = 0 ) THEN
+    SET @US3_LAST_ERRNO = @NOROWS;
+    SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+
+    SELECT @US3_LAST_ERRNO AS status;
+
+  ELSEIF ( verify_experiment_permission( p_personGUID, p_password, l_experimentID ) = @OK ) THEN
+    -- This is either an admin, or a person inquiring about his own experiment
+    SELECT @OK as status;
+
+    SELECT  experimentID, filename, definitions,
+            MD5( data ) AS checksum, LENGTH( data ) AS size,
+            timestamp2UTC( lastUpdated ) AS UTC_lastUpdated
+    FROM    timestate
+    WHERE   timestateID = p_timestateID;
+
+  ELSE
+    SELECT @US3_LAST_ERRNO AS status;
+
+  END IF;
+
+END$$
+
+-- SELECTs the timestate information for a specified experiment ID
+DROP PROCEDURE IF EXISTS get_experiment_timestate$$
+CREATE PROCEDURE get_experiment_timestate ( p_personGUID   CHAR(36),
+                                            p_password     VARCHAR(80),
+                                            p_experimentID INT )
+  READS SQL DATA
+
+BEGIN
+
+  DECLARE count_timestate   INT;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+ 
+  SELECT     COUNT(*)
+  INTO       count_timestate
+  FROM       timestate
+  WHERE      experimentID = p_experimentID;
+
+  IF ( count_timestate = 0 ) THEN
+    SET @US3_LAST_ERRNO = @NOROWS;
+    SET @US3_LAST_ERROR = 'MySQL: no rows returned';
+
+    SELECT @US3_LAST_ERRNO AS status;
+
+  ELSEIF ( verify_experiment_permission( p_personGUID, p_password, p_experimentID ) = @OK ) THEN
+    -- This is either an admin, or a person inquiring about his own experiment
+    SELECT @OK as status;
+
+    SELECT  timestateID, filename, definitions,
+            MD5( data ) AS checksum, LENGTH( data ) AS size,
+            timestamp2UTC( lastUpdated ) AS UTC_lastUpdated
+    FROM    timestate
+    WHERE   experimentID = p_experimentID;
+
+  ELSE
+    SELECT @US3_LAST_ERRNO AS status;
+
+  END IF;
+
+END$$
+
+-- DELETEs an individual timestate
+DROP PROCEDURE IF EXISTS delete_timestate$$
+CREATE PROCEDURE delete_timestate ( p_personGUID   CHAR(36),
+                                    p_password     VARCHAR(80),
+                                    p_timestateID  INT )
+  MODIFIES SQL DATA
+
+BEGIN
+  DECLARE count_timestates INT;
+  DECLARE l_experimentID   INT;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+
+  -- Get information we need to verify ownership
+  SELECT experimentID
+  INTO   l_experimentID
+  FROM   timestate
+  WHERE  timestateID = p_timestateID;
+
+  IF ( verify_experiment_permission( p_personGUID, p_password, l_experimentID ) = @OK ) THEN
+
+    DELETE FROM timestate
+    WHERE       timestateID   = p_timestateID;
+
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- UPDATEs a timestate record with the binary data
+DROP PROCEDURE IF EXISTS upload_timestate$$
+CREATE PROCEDURE upload_timestate ( p_personGUID   CHAR(36),
+                                    p_password     VARCHAR(80),
+                                    p_timestateID  INT,
+                                    p_data         LONGBLOB,
+                                    p_checksum     CHAR(33) )
+  MODIFIES SQL DATA
+
+BEGIN
+  DECLARE l_checksum     CHAR(33);
+  DECLARE l_experimentID INT;
+  DECLARE not_found      TINYINT DEFAULT 0;
+
+  DECLARE CONTINUE HANDLER FOR NOT FOUND
+    SET not_found = 1;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+ 
+  -- Compare checksum with calculated checksum
+  SET l_checksum = MD5( p_data );
+  SET @DEBUG = CONCAT( l_checksum , ' ', p_checksum );
+
+  -- Get information we need to verify ownership
+  SELECT experimentID
+  INTO   l_experimentID
+  FROM   timestate
+  WHERE  timestateID = p_timestateID;
+
+  IF ( l_checksum != p_checksum ) THEN
+
+    -- Checksums don't match; abort
+    SET @US3_LAST_ERRNO = @BAD_CHECKSUM;
+    SET @US3_LAST_ERROR = "MySQL: Transmission error, bad checksum";
+
+  ELSEIF ( verify_experiment_permission( p_personGUID, p_password, l_experimentID ) = @OK ) THEN
+ 
+    -- This is either an admin, or a person inquiring about his own experiment
+    UPDATE timestate SET
+      data           = p_data
+    WHERE  timestateID = p_timestateID;
+
+    IF ( not_found = 1 ) THEN
+      SET @US3_LAST_ERRNO = @NO_RAWDATA;
+      SET @US3_LAST_ERROR = "MySQL: No raw data with that ID exists";
+
+    END IF;
+
+  END IF;
+
+  SELECT @US3_LAST_ERRNO AS status;
+
+END$$
+
+-- SELECTs a timestate record of binary data previously saved with upload_timestate
+DROP PROCEDURE IF EXISTS download_timestate$$
+CREATE PROCEDURE download_timestate ( p_personGUID   CHAR(36),
+                                      p_password     VARCHAR(80),
+                                      p_timestateID  INT )
+  READS SQL DATA
+
+BEGIN
+  DECLARE l_count_timestate INT;
+  DECLARE l_experimentID    INT;
+
+  CALL config();
+  SET @US3_LAST_ERRNO = @OK;
+  SET @US3_LAST_ERROR = '';
+ 
+  -- Get information to verify that there are records
+  SELECT COUNT(*)
+  INTO   l_count_timestate
+  FROM   timestate
+  WHERE  timestateID = p_timestateID;
+
+SET @DEBUG = CONCAT('timestateID = ', p_timestateID,
+                    'Count = ', l_count_timestate );
+  -- Get information we need to verify ownership
+  SELECT experimentID
+  INTO   l_experimentID
+  FROM   timestate
+  WHERE  timestateID = p_timestateID;
+
+  IF ( l_count_timestate != 1 ) THEN
+    -- Probably no rows
+    SET @US3_LAST_ERRNO = @NOROWS;
+    SET @US3_LAST_ERROR = 'MySQL: no rows exist with that ID (or too many rows)';
+
+    SELECT @NOROWS AS status;
+    
+  ELSEIF ( verify_experiment_permission( p_personGUID, p_password, l_experimentID ) != @OK ) THEN
+ 
+    -- verify_experiment_permission must have thrown an error, so pass it on
+    SELECT @US3_LAST_ERRNO AS status;
+
+  ELSE
+
+    -- This is either an admin, or a person inquiring about his own experiment
+    SELECT @OK AS status;
+
+    SELECT data, MD5( data )
+    FROM   timestate
+    WHERE  timestateID = p_timestateID;
+
+  END IF;
+
+END$$
+

Added: trunk/lims_upds/us3_upd_buff_procs.sh
===================================================================
--- trunk/lims_upds/us3_upd_buff_procs.sh	                        (rev 0)
+++ trunk/lims_upds/us3_upd_buff_procs.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,17 @@
+# One time script to update all active US3 databases
+#  by updating the buffer stored procedures
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/database/sql
+##for db in uslims3_cauma3
+##for db in `cat /home/us3/database/dblist.txt`
+##for db in `cat /home/us3/database/dblist_upds.txt`
+
+for db in `cat ~us3/database/dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./us3_buffer_procs.sql
+done
+


Property changes on: trunk/lims_upds/us3_upd_buff_procs.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_upd_dmga.sh
===================================================================
--- trunk/lims_upds/us3_upd_dmga.sh	                        (rev 0)
+++ trunk/lims_upds/us3_upd_dmga.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,22 @@
+# One time script to update all active US3 databases
+#  by creating the DMGA method
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/database
+
+for db in uslims3_cauma3
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./alter_dmga_settings.sql
+done
+
+##for db in `cat ~us3/database/dblist_upds.txt`
+##for db in `cat ~us3/database/dblist.txt`
+for db in `cat ~us3/database/dblist_upds.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./update_dmga.sql
+done


Property changes on: trunk/lims_upds/us3_upd_dmga.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_upd_pcsa.sh
===================================================================
--- trunk/lims_upds/us3_upd_pcsa.sh	                        (rev 0)
+++ trunk/lims_upds/us3_upd_pcsa.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,16 @@
+# One time script to update all active US3 databases
+#  by creating the PCSA method
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/database
+
+##for db in `cat ~us3/database/dblist_upds.txt`
+##for db in `cat ~us3/database/dblist_upds.txt`
+##for db in uslims3_cauma3
+for db in `cat ~us3/database/dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./update_pcsa.sql
+done


Property changes on: trunk/lims_upds/us3_upd_pcsa.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_upd_proj_procs.sh
===================================================================
--- trunk/lims_upds/us3_upd_proj_procs.sh	                        (rev 0)
+++ trunk/lims_upds/us3_upd_proj_procs.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,17 @@
+# One time script to update all active US3 databases
+#  by updating the timestate stored procedures
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database/sql
+##for db in uslims3_cauma3
+##for db in `cat /home/us3/database/dblist.txt`
+##for db in `cat /home/us3/database/dblist_upds.txt`
+
+for db in `cat ~us3/database/dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./us3_proj_procs.sql
+done
+


Property changes on: trunk/lims_upds/us3_upd_proj_procs.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_upd_project.sh
===================================================================
--- trunk/lims_upds/us3_upd_project.sh	                        (rev 0)
+++ trunk/lims_upds/us3_upd_project.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,12 @@
+# One time script to update all active US3 databases
+#  by adding lastUpdated field to project table
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+
+##for db in uslims3_cauma3;
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./alter_project.sql
+done


Property changes on: trunk/lims_upds/us3_upd_project.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_upd_proto_procs.sh
===================================================================
--- trunk/lims_upds/us3_upd_proto_procs.sh	                        (rev 0)
+++ trunk/lims_upds/us3_upd_proto_procs.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,18 @@
+# One time script to update all active US3 databases
+#  by updating the protocol stored procedures
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database/sql
+##for db in uslims3_cauma3
+##for db in uslims3_cauma3 uslims3_CAUMA
+##for db in `cat /home/us3/database/dblist.txt`
+##for db in `cat /home/us3/database/dblist_upds.txt`
+
+for db in uslims3_cauma3 uslims3_CAUMA
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./us3_protocol_procs.sql
+done
+


Property changes on: trunk/lims_upds/us3_upd_proto_procs.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_upd_solu_procs.sh
===================================================================
--- trunk/lims_upds/us3_upd_solu_procs.sh	                        (rev 0)
+++ trunk/lims_upds/us3_upd_solu_procs.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,18 @@
+# One time script to update all active US3 databases
+#  by updating the protocol stored procedures
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database/sql
+##for db in uslims3_cauma3
+##for db in uslims3_cauma3 uslims3_CAUMA
+##for db in `cat ~us3/lims/database/dblist.txt`
+##for db in `cat ~us3/lims/database/dblist_upds.txt`
+
+for db in `cat ~us3/lims/database/dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./us3_solution_procs.sql
+done
+


Property changes on: trunk/lims_upds/us3_upd_solu_procs.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_update_admin_passwd.sh
===================================================================
--- trunk/lims_upds/us3_update_admin_passwd.sh	                        (rev 0)
+++ trunk/lims_upds/us3_update_admin_passwd.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,13 @@
+# One time script to update admin password for all active US3 databases
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database
+
+##for db in uslims3_cauma3
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./us3_update_admin_passwd.sql
+done


Property changes on: trunk/lims_upds/us3_update_admin_passwd.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_update_admin_passwd.sql
===================================================================
--- trunk/lims_upds/us3_update_admin_passwd.sql	                        (rev 0)
+++ trunk/lims_upds/us3_update_admin_passwd.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,19 @@
+--
+-- us3_update_admin_passwd.sql
+--
+-- Updates the password for all accounts with userlevel >= 4
+--
+-- mysql> select MD5( 'TSv3dberg' );
+-- +----------------------------------+
+-- | MD5( 'TSv3dberg' )               |
+-- +----------------------------------+
+-- | 76a6c9a17a598c00343cfc9a04ec5ea2 |
+-- +----------------------------------+
+-- 1 row in set (0.00 sec)
+-- 
+-- mysql>
+--
+
+UPDATE people
+SET    password = '76a6c9a17a598c00343cfc9a04ec5ea2'
+WHERE  userlevel >= 4;

Added: trunk/lims_upds/us3_update_anabuf.sh
===================================================================
--- trunk/lims_upds/us3_update_anabuf.sh	                        (rev 0)
+++ trunk/lims_upds/us3_update_anabuf.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,19 @@
+# One time script to update all active US3 databases
+#  by updating the exp stored procedures
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database
+sqldir=sql
+##sqldir=~gegorbet/work
+##for db in uslims3_cauma3
+##for db in `cat dblist.txt`
+##for db in `cat dblist_upds.txt`
+for db in uslims3_Uni_DuE
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < $sqldir/us3_analyte_procs.sql
+ mysql $LOGIN $db < $sqldir/us3_buffer_procs.sql
+done
+


Property changes on: trunk/lims_upds/us3_update_anabuf.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_update_clusters.sh
===================================================================
--- trunk/lims_upds/us3_update_clusters.sh	                        (rev 0)
+++ trunk/lims_upds/us3_update_clusters.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,15 @@
+# One time script to update all active US3 databases
+#  by altering/updating clusterAuthorizations
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in uslims3_cauma3
+##for db in `cat dblist.txt`
+##for db in `cat dblist_clustauth.txt`
+##for db in `cat dblist.txt`
+
+for db in `cat dblist_clustauth.txt`
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./alter_cluster_auth.sql
+done


Property changes on: trunk/lims_upds/us3_update_clusters.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_update_exp.sh
===================================================================
--- trunk/lims_upds/us3_update_exp.sh	                        (rev 0)
+++ trunk/lims_upds/us3_update_exp.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,15 @@
+# One time script to update all active US3 databases
+#  by updating the exp stored procedures
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in uslims3_cauma3
+##for db in `cat dblist.txt`
+##for db in `cat dblist_upds.txt`
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < sql/us3_exp_procs.sql
+done
+


Property changes on: trunk/lims_upds/us3_update_exp.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_update_expdata.sh
===================================================================
--- trunk/lims_upds/us3_update_expdata.sh	                        (rev 0)
+++ trunk/lims_upds/us3_update_expdata.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,12 @@
+# One time script to update all active US3 databases
+#  by updating the expdata stored procedures
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in uslims3_cauma3
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < sql/us3_expdata_procs.sql
+done


Property changes on: trunk/lims_upds/us3_update_expdata.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_update_expdata_t.sh
===================================================================
--- trunk/lims_upds/us3_update_expdata_t.sh	                        (rev 0)
+++ trunk/lims_upds/us3_update_expdata_t.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,12 @@
+# One time script to update all active US3 databases
+#  by updating the expdata stored procedures
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in `cat dblist.txt`
+for db in uslims3_CAUMA
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < sql/us3_expdata_procs_test.sql
+done


Property changes on: trunk/lims_upds/us3_update_expdata_t.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_update_groupcount.sh
===================================================================
--- trunk/lims_upds/us3_update_groupcount.sh	                        (rev 0)
+++ trunk/lims_upds/us3_update_groupcount.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,13 @@
+# One time script to add mgroupcount field to all active US3 databases
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database
+
+##for db in uslims3_cauma3
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./us3_update_groupcount.sql
+done


Property changes on: trunk/lims_upds/us3_update_groupcount.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_update_groupcount.sql
===================================================================
--- trunk/lims_upds/us3_update_groupcount.sql	                        (rev 0)
+++ trunk/lims_upds/us3_update_groupcount.sql	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,7 @@
+--
+-- Update the HPCAnalysisResult table with the mgroupcount field
+--
+
+ALTER TABLE HPCAnalysisResult
+  ADD COLUMN mgroupcount int(11) NOT NULL DEFAULT 1
+  AFTER CPUCount;

Added: trunk/lims_upds/us3_update_model.sh
===================================================================
--- trunk/lims_upds/us3_update_model.sh	                        (rev 0)
+++ trunk/lims_upds/us3_update_model.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,15 @@
+# One time script to update all active US3 databases
+#  by updating the exp stored procedures
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+##for db in uslims3_cauma3
+##for db in `cat dblist.txt`
+##for db in `cat dblist_upds.txt`
+for db in `cat dblist.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < sql/us3_model_procs.sql
+done
+


Property changes on: trunk/lims_upds/us3_update_model.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Added: trunk/lims_upds/us3_update_timestate.sh
===================================================================
--- trunk/lims_upds/us3_update_timestate.sh	                        (rev 0)
+++ trunk/lims_upds/us3_update_timestate.sh	2019-11-06 22:52:39 UTC (rev 2841)
@@ -0,0 +1,17 @@
+# One time script to update all active US3 databases
+#  by updating the timestate stored procedures
+
+. ~us3/lims/database/getdbpw
+LOGIN="-u root -p$PASSW"
+cd ~us3/lims/database/sql
+##for db in uslims3_cauma3
+##for db in `cat /home/us3/database/dblist.txt`
+##for db in `cat /home/us3/database/dblist_upds.txt`
+
+for db in `cat ~us3/database/dblist_upds.txt`
+
+do
+ echo "Updating $db"
+ mysql $LOGIN $db < ./us3_timestate_procs.sql
+done
+


Property changes on: trunk/lims_upds/us3_update_timestate.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Modified: trunk/programs/us_astfem_sim/us_astfem_sim.cpp
===================================================================
--- trunk/programs/us_astfem_sim/us_astfem_sim.cpp	2019-11-06 20:57:34 UTC (rev 2840)
+++ trunk/programs/us_astfem_sim/us_astfem_sim.cpp	2019-11-06 22:52:39 UTC (rev 2841)
@@ -415,8 +415,10 @@
    sim_data_all.channel     = 'S';
    sim_data_all.description = "Simulation";
 
-   int points    = qRound( ( simparams.bottom - simparams.meniscus ) /
-                             simparams.radial_resolution ) + 1;
+//   int points    = qRound( ( simparams.bottom - simparams.meniscus ) /
+//                             simparams.radial_resolution ) + 1;
+   int points    = qCeil( ( simparams.bottom - simparams.meniscus ) /
+                            simparams.radial_resolution ) + 1;
 
    sim_data_all.xvalues.resize( points ); // Sets the size of radial grid points array
 
@@ -428,9 +430,9 @@
 DbgLv(1) << "SimPar:MAIN:SetP:  points" << points << "rad0 radn"
  << sim_data_all.xvalues[0] << sim_data_all.xvalues[points-1];
 
-   sim_data_all.xvalues[ points - 1 ] = simparams.bottom;
-DbgLv(1) << "SimPar:MAIN:SetP:  points" << points << "rad0 radn"
- << sim_data_all.xvalues[0] << sim_data_all.xvalues[points-1];
+//   sim_data_all.xvalues[ points - 1 ] = simparams.bottom;
+//DbgLv(1) << "SimPar:MAIN:SetP:  points" << points << "rad0 radn"
+// << sim_data_all.xvalues[0] << sim_data_all.xvalues[points-1];
 
    // Fill in speed steps with scan times and omega^2t; build raw data
    double time0   = 0.0;
@@ -633,8 +635,10 @@
  << "step=" << jd << simparams.speed_step[jd].rotorspeed;
 
       // Number of radial grid points on the experimental grid; number of scans
-      int points = qRound( ( af_params.current_bottom - af_params.current_meniscus ) /
-                            simparams.radial_resolution ) + 1;
+//      int points = qRound( ( af_params.current_bottom - af_params.current_meniscus ) /
+//                            simparams.radial_resolution ) + 1;
+      int points = qCeil( ( af_params.current_bottom - af_params.current_meniscus ) /
+                          simparams.radial_resolution ) + 1;
       int nscans = simparams.speed_step[ jd ].scans;
 
       sim_datas[ jd ].xvalues.resize( points ); // Sets the size of radial grid points array
@@ -647,7 +651,7 @@
       }
 DbgLv(1) << "astfem_radial_ranges" << sim_datas[jd].xvalues[0] << sim_datas[jd].xvalues[points-1]
  << af_params.current_meniscus << af_params.current_bottom << jd;
-      sim_datas[ jd ].xvalues[ points - 1 ] = af_params.current_bottom;
+//      sim_datas[ jd ].xvalues[ points - 1 ] = af_params.current_bottom;
 
       // Set the total size of scans for simulation
       sim_datas[ jd ].scanData.resize( nscans );
@@ -858,8 +862,10 @@
          sim_data_all.scanData[ js ].rvalues.fill( 0.0, kpoint );
 
       // Set the radius values in data sets
-      int points          = qRound( ( simparams.bottom - simparams.meniscus ) /
-                                  simparams.radial_resolution ) + 1;
+//      int points          = qRound( ( simparams.bottom - simparams.meniscus ) /
+//                                  simparams.radial_resolution ) + 1;
+      int points          = qCeil( ( simparams.bottom - simparams.meniscus ) /
+                                   simparams.radial_resolution ) + 1;
       for ( int jd = 0; jd < nstep; jd++ )
       {  // Set radius values for current speed's dataset
          double stretch_fac  = stretch( simparams.rotorcoeffs,



More information about the us-commits mailing list