77 lines
6.2 KiB
Plaintext
77 lines
6.2 KiB
Plaintext
--This procedure takes a RegionsOfInterest string and stores the values in the
|
|
--TestSetupROIs and ROIPeriodChannels tables.
|
|
CREATE PROCEDURE [dbo].[sp_StringToRegionsOfInterestTables]
|
|
(
|
|
@TestSetupId int,
|
|
@RegionsOfInterest nvarchar(Max)
|
|
)
|
|
AS
|
|
BEGIN
|
|
--DECLARE @TestSetupId int = 1
|
|
--DECLARE @RegionsOfInterest nvarchar(Max) = '[{"Suffix":"_ROI Period 1","Start":-0.6,"End":0.6,"IsEnabled":true,"IsDefault":true,"ChannelNames":["an1","an2","an3"]},{"Suffix":"_ROI Period 2","Start":-0.5,"End":0.5,"IsEnabled":true,"IsDefault":true,"ChannelNames":["an1","an3"]}]'
|
|
|
|
DECLARE @CurrentSubString nvarchar(MAX)
|
|
DECLARE @CurrentSubStringStartIndex int
|
|
DECLARE @CurrentSubStringEndIndex int
|
|
|
|
DECLARE @SuffixValue nvarchar(255)
|
|
DECLARE @ROIStartValue float
|
|
DECLARE @ROIEndValue float
|
|
DECLARE @IsEnabledValue nvarchar(255)
|
|
DECLARE @IsDefaultValue nvarchar(255)
|
|
DECLARE @ChannelNames nvarchar(MAX)
|
|
DECLARE @TestSetupROIId int
|
|
|
|
-- [{"Suffix":"_ROI Period 1","Start"...},{"Suffix":"_ROI Period 2","Start"...}]
|
|
SET @CurrentSubStringStartIndex = 1
|
|
|
|
WHILE (@CurrentSubStringStartIndex < LEN(@RegionsOfInterest))
|
|
BEGIN
|
|
SET @CurrentSubStringEndIndex = CHARINDEX('}', @RegionsOfInterest, @CurrentSubStringStartIndex) + 1
|
|
SET @CurrentSubString = SUBSTRING(@RegionsOfInterest, @CurrentSubStringStartIndex, (@CurrentSubStringEndIndex - @CurrentSubStringStartIndex))
|
|
|
|
SET @SuffixValue = [dbo].[foo_ROIStringToValueString](@CurrentSubString, 'Suffix":"', '"')
|
|
|
|
SET @ROIStartValue = CAST([dbo].[foo_ROIStringToValueString](@CurrentSubString, 'Start":', ',') AS FLOAT)
|
|
|
|
SET @ROIEndValue = CAST([dbo].[foo_ROIStringToValueString](@CurrentSubString, 'End":', ',') AS FLOAT)
|
|
|
|
SET @IsEnabledValue = [dbo].[foo_ROIStringToValueString](@CurrentSubString, 'IsEnabled":', ',')
|
|
IF @IsEnabledValue = 'true'
|
|
SET @IsEnabledValue = 1
|
|
ELSE
|
|
SET @IsEnabledValue = 0
|
|
|
|
SET @IsDefaultValue = [dbo].[foo_ROIStringToValueString](@CurrentSubString, 'IsDefault":', ',')
|
|
IF @IsDefaultValue = 'true'
|
|
SET @IsDefaultValue = 1
|
|
ELSE
|
|
SET @IsDefaultValue = 0
|
|
|
|
SET @ChannelNames = [dbo].[foo_ROIStringToValueString](@CurrentSubString, 'ChannelNames":[', ']')
|
|
|
|
INSERT INTO TestSetupROIs VALUES (@TestSetupId, @SuffixValue, @ROIStartValue, @ROIEndValue, @IsEnabledValue, @IsDefaultValue)
|
|
SET @TestSetupROIId = scope_identity()
|
|
|
|
IF (@SuffixValue <> '' AND LEN(@ChannelNames) > 0)
|
|
BEGIN
|
|
DECLARE @CurrentChannelName nvarchar(255)
|
|
DECLARE @ChannelNameStartIndex int
|
|
DECLARE @ChannelNameEndIndex int
|
|
|
|
-- "an1","an2","an3"
|
|
SET @ChannelNameStartIndex = 2
|
|
|
|
WHILE (@ChannelNameStartIndex < LEN(@ChannelNames))
|
|
BEGIN
|
|
SET @ChannelNameEndIndex = CHARINDEX('"', @ChannelNames, @ChannelNameStartIndex) - 1
|
|
SET @CurrentChannelName = SUBSTRING(@ChannelNames, @ChannelNameStartIndex, (@ChannelNameEndIndex - @ChannelNameStartIndex) + 1)
|
|
INSERT INTO ROIPeriodChannels (TestSetupROIId, ChannelName) VALUES (@TestSetupROIId, @CurrentChannelName)
|
|
SET @ChannelNameStartIndex = @ChannelNameEndIndex + 4 -- ","x
|
|
END
|
|
|
|
END
|
|
SET @CurrentSubStringStartIndex = @CurrentSubStringEndIndex + 1 -- }
|
|
END
|
|
END
|