@@ -130,7 +130,7 @@ DELIMITER ;
130
130
/*!50003 SET character_set_results = utf8mb3 */ ;
131
131
/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
132
132
DELIMITER ;;
133
- CREATE FUNCTION `retrieve_proposal_title`(p_proposal_code varchar(5), p_proposal_number int) RETURNS varchar(255) CHARSET latin1 COLLATE latin1_swedish_ci
133
+ CREATE FUNCTION `retrieve_proposal_title`(p_proposal_code varchar(5), p_proposal_number int) RETURNS varchar(255) CHARSET latin1
134
134
READS SQL DATA
135
135
BEGIN
136
136
DECLARE ret_title varchar(255);
@@ -155,7 +155,7 @@ DELIMITER ;
155
155
/*!50003 SET character_set_results = utf8mb3 */ ;
156
156
/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
157
157
DELIMITER ;;
158
- CREATE FUNCTION `retrieve_proposal_title_v2`(p_proposalCode varchar(5), p_proposalNumber int) RETURNS varchar(255) CHARSET latin1 COLLATE latin1_swedish_ci
158
+ CREATE FUNCTION `retrieve_proposal_title_v2`(p_proposalCode varchar(5), p_proposalNumber int) RETURNS varchar(255) CHARSET latin1
159
159
READS SQL DATA
160
160
COMMENT 'Retrieve the title for a given proposal code and number.'
161
161
BEGIN
@@ -206,7 +206,7 @@ DELIMITER ;
206
206
/*!50003 SET character_set_results = utf8mb3 */ ;
207
207
/*!50003 SET collation_connection = utf8mb3_general_ci */ ;
208
208
DELIMITER ;;
209
- CREATE FUNCTION `root_replace`(p_str varchar(255), p_oldroot varchar(255), p_newroot varchar(255)) RETURNS varchar(255) CHARSET latin1 COLLATE latin1_swedish_ci
209
+ CREATE FUNCTION `root_replace`(p_str varchar(255), p_oldroot varchar(255), p_newroot varchar(255)) RETURNS varchar(255) CHARSET latin1
210
210
COMMENT 'Returns a varchar where the old root p_oldroot (the leftmost part) of p_str has been replaced with a new root p_newroot'
211
211
BEGIN
212
212
DECLARE path_len smallint unsigned DEFAULT LENGTH(p_oldroot);
@@ -9448,7 +9448,7 @@ CREATE PROCEDURE `upsert_dc_group_v3`(
9448
9448
p_sessionNumber int(10),
9449
9449
p_sampleId int(10) unsigned,
9450
9450
p_sampleBarcode varchar(45),
9451
- p_experimenttype varchar(45),
9451
+ p_experimenttype varchar(45),
9452
9452
p_starttime datetime,
9453
9453
p_endtime datetime,
9454
9454
p_crystalClass varchar(20),
@@ -9459,53 +9459,57 @@ CREATE PROCEDURE `upsert_dc_group_v3`(
9459
9459
p_actualContainerSlotInSC integer(10),
9460
9460
p_comments varchar(1024),
9461
9461
p_xtalSnapshotFullPath varchar(255),
9462
- p_scanParameters longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
9462
+ p_scanParameters longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
9463
9463
)
9464
9464
MODIFIES SQL DATA
9465
9465
COMMENT 'Inserts or updates info about data collection group (p_id).\nMandatory columns:\nFor insert: Either p_sessionId or a valid session described by (p_proposalCode, p_proposalNumber, p_sessionNumber)\nFor update: p_id\nNote: In order to associate the data collection group with a sample, one of the following sets of parameters are required:\n* p_sampleId\n* p_proposalCode, p_proposalNumber, p_sessionNumber + p_sampleBarcode\n* p_actualContainerBarcode + p_actualSampleSlotInContainer\nReturns: Record ID in p_id.'
9466
9466
BEGIN
9467
- DECLARE row_proposal_id int(10) unsigned DEFAULT NULL;
9468
- DECLARE row_sample_id int(10) unsigned DEFAULT NULL;
9467
+ DECLARE row_proposal_id int(10) unsigned DEFAULT NULL;
9468
+ DECLARE row_sample_id int(10) unsigned DEFAULT NULL;
9469
+ DECLARE row_experiment_id int(10) unsigned DEFAULT NULL;
9469
9470
9470
- IF p_sessionId IS NULL AND p_proposalCode IS NOT NULL AND p_proposalNumber IS NOT NULL AND p_sessionNumber IS NOT NULL THEN
9471
+ IF p_sessionId IS NULL AND p_proposalCode IS NOT NULL AND p_proposalNumber IS NOT NULL AND p_sessionNumber IS NOT NULL THEN
9471
9472
SELECT max(bs.sessionid), p.proposalId INTO p_sessionId, row_proposal_id
9472
9473
FROM Proposal p INNER JOIN BLSession bs ON p.proposalid = bs.proposalid
9473
9474
WHERE p.proposalCode = p_proposalCode AND p.proposalNumber = p_proposalNumber AND bs.visit_number = p_sessionNumber;
9474
9475
END IF;
9475
9476
9476
9477
IF p_id IS NOT NULL OR p_sessionId IS NOT NULL THEN
9477
-
9478
+
9478
9479
IF p_sessionId IS NOT NULL AND p_sampleId IS NULL AND p_sampleBarcode IS NOT NULL THEN
9479
- IF row_proposal_id IS NULL THEN
9480
- SELECT proposalId INTO row_proposal_id
9481
- FROM BLSession
9482
- WHERE sessionId = p_sessionId;
9480
+ IF row_proposal_id IS NULL THEN
9481
+ SELECT proposalId INTO row_proposal_id
9482
+ FROM BLSession
9483
+ WHERE sessionId = p_sessionId;
9484
+ END IF;
9485
+ SELECT max(bls.blSampleId) INTO p_sampleId
9486
+ FROM BLSample bls
9487
+ INNER JOIN Container c on c.containerId = bls.containerId
9488
+ INNER JOIN Dewar d on d.dewarId = c.dewarId
9489
+ INNER JOIN Shipping s on s.shippingId = d.shippingId
9490
+ WHERE bls.code = p_sampleBarcode AND s.proposalId = row_proposal_id;
9483
9491
END IF;
9484
- SELECT max(bls.blSampleId) INTO p_sampleId
9485
- FROM BLSample bls
9486
- INNER JOIN Container c on c.containerId = bls.containerId
9487
- INNER JOIN Dewar d on d.dewarId = c.dewarId
9488
- INNER JOIN Shipping s on s.shippingId = d.shippingId
9489
- WHERE bls.code = p_sampleBarcode AND s.proposalId = row_proposal_id;
9490
- END IF;
9491
9492
9492
- IF p_sampleId IS NULL AND (p_actualContainerBarcode IS NOT NULL) AND (p_actualSampleSlotInContainer IS NOT NULL) THEN
9493
- SELECT max(bls.blSampleId) INTO p_sampleId
9494
- FROM BLSample bls
9495
- INNER JOIN Container c on c.containerId = bls.containerId
9496
- WHERE c.barcode = p_actualContainerBarcode AND bls.location = p_actualSampleSlotInContainer;
9497
- END IF;
9493
+ IF p_sampleId IS NULL AND (p_actualContainerBarcode IS NOT NULL) AND (p_actualSampleSlotInContainer IS NOT NULL) THEN
9494
+ SELECT max(bls.blSampleId) INTO p_sampleId
9495
+ FROM BLSample bls
9496
+ INNER JOIN Container c on c.containerId = bls.containerId
9497
+ WHERE c.barcode = p_actualContainerBarcode AND bls.location = p_actualSampleSlotInContainer;
9498
+ END IF;
9498
9499
9499
- INSERT INTO DataCollectionGroup (datacollectionGroupId, sessionId, blsampleId, experimenttype, starttime, endtime,
9500
+ SELECT experimentTypeId INTO row_experiment_id FROM ExperimentType WHERE name = p_experimenttype;
9501
+
9502
+ INSERT INTO DataCollectionGroup (datacollectionGroupId, sessionId, blsampleId, experimenttype, experimentTypeId, starttime, endtime,
9500
9503
crystalClass, detectorMode, actualSampleBarcode, actualSampleSlotInContainer, actualContainerBarcode, actualContainerSlotInSC,
9501
9504
comments, xtalSnapshotFullPath, scanParameters)
9502
- VALUES (p_id, p_sessionId, p_sampleId, p_experimenttype, p_starttime, p_endtime, p_crystalClass, p_detectorMode,
9505
+ VALUES (p_id, p_sessionId, p_sampleId, p_experimenttype, row_experiment_id, p_starttime, p_endtime, p_crystalClass, p_detectorMode,
9503
9506
p_actualSampleBarcode, p_actualSampleSlotInContainer, p_actualContainerBarcode, p_actualContainerSlotInSC,
9504
9507
p_comments, p_xtalSnapshotFullPath, p_scanParameters)
9505
9508
ON DUPLICATE KEY UPDATE
9506
9509
sessionId = IFNULL(p_sessionId, sessionId),
9507
9510
blsampleId = IFNULL(p_sampleId, blsampleId),
9508
9511
experimenttype = IFNULL(p_experimenttype, experimenttype),
9512
+ experimentTypeId = row_experiment_id,
9509
9513
starttime = IFNULL(p_starttime, starttime),
9510
9514
endtime = IFNULL(p_endtime, endtime),
9511
9515
crystalClass = IFNULL(p_crystalClass, crystalClass),
@@ -9518,13 +9522,13 @@ BEGIN
9518
9522
xtalSnapshotFullPath = IFNULL(p_xtalSnapshotFullPath, xtalSnapshotFullPath),
9519
9523
scanParameters = IFNULL (p_scanParameters, scanParameters);
9520
9524
9521
- IF p_id IS NULL THEN
9522
- SET p_id = LAST_INSERT_ID();
9525
+ IF p_id IS NULL THEN
9526
+ SET p_id = LAST_INSERT_ID();
9523
9527
END IF;
9524
- ELSE
9525
- SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=1644, MESSAGE_TEXT='Mandatory argument(s) are NULL: p_id OR p_sessionId OR a valid session described by (p_proposalCode and p_proposalNumber and p_sessionNumber) must be non-NULL.';
9526
- END IF;
9527
- END ;;
9528
+ ELSE
9529
+ SIGNAL SQLSTATE '45000' SET MYSQL_ERRNO=1644, MESSAGE_TEXT='Mandatory argument(s) are NULL: p_id OR p_sessionId OR a valid session described by (p_proposalCode and p_proposalNumber and p_sessionNumber) must be non-NULL.';
9530
+ END IF;
9531
+ END ;;
9528
9532
DELIMITER ;
9529
9533
/*!50003 SET sql_mode = @saved_sql_mode */ ;
9530
9534
/*!50003 SET character_set_client = @saved_cs_client */ ;
0 commit comments