Feat: Architecture redesign for Assessments, Commands, Modalities, Training Techniques, Reinforcement Schedules, Distractions, and Assessment Responses.

This commit is contained in:
2025-09-06 12:13:16 +01:00
parent 12f5fc994f
commit 2da465935d
158 changed files with 14781 additions and 3477 deletions

View File

@@ -88,7 +88,7 @@ BEGIN
SET v_time_start := CURRENT_TIMESTAMP(6);
SET v_code_type_error_bad_data := 'BAD_DATA';
SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM fetchmetrics.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1);
SET v_id_permission_dog_new := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1);
SET v_id_permission_dog_new := (SELECT PERMISSION.id_permission FROM fetchmetrics.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_EDIT' LIMIT 1);
SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM fetchmetrics.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1);
CALL fetchmetrics.p_core_validate_guid ( a_guid );
@@ -99,7 +99,7 @@ BEGIN
CREATE TEMPORARY TABLE tmp_Assessment_Response (
id_temp INT
, id_response INT
, id_assessment_command_modality_link INT
, id_assessment_command_link INT
, id_response_quality_metric INT
, id_obedience_level INT
, value_measured DOUBLE
@@ -112,7 +112,7 @@ BEGIN
CREATE TEMPORARY TABLE tmp_Assessment_Response_Copy (
id_temp INT
, id_response INT
, id_assessment_command_modality_link INT
, id_assessment_command_link INT
, id_response_quality_metric INT
, id_obedience_level INT
, value_measured DOUBLE
@@ -134,7 +134,7 @@ BEGIN
INSERT INTO tmp_Assessment_Response (
id_temp
, id_response
, id_assessment_command_modality_link
, id_assessment_command_link
, id_response_quality_metric
, id_obedience_level
, value_measured
@@ -146,9 +146,9 @@ BEGIN
ASSESSMENT_RESPONSE_T.id_temp
, ASSESSMENT_RESPONSE_T.id_response
, COALESCE(
ASSESSMENT_RESPONSE_T.id_assessment_command_modality_link
, ASSESSMENT_RESPONSE.id_assessment_command_modality_link
) AS id_assessment_command_modality_link
ASSESSMENT_RESPONSE_T.id_assessment_command_link
, ASSESSMENT_RESPONSE.id_assessment_command_link
) AS id_assessment_command_link
, COALESCE(
ASSESSMENT_RESPONSE_T.id_response_quality_metric
, ASSESSMENT_RESPONSE.id_response_quality_metric
@@ -178,11 +178,11 @@ BEGIN
-- Error names
UPDATE tmp_Assessment_Response t_ASSESSMENT_RESPONSE
LEFT JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
LEFT JOIN fetchmetrics.DOG_Assessment_Command_Link ASSESSMENT_COMMAND_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_link = ASSESSMENT_COMMAND_LINK.id_link
LEFT JOIN fetchmetrics.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = RESPONSE_QUALITY_METRIC.id_metric
LEFT JOIN fetchmetrics.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_ASSESSMENT_RESPONSE.id_obedience_level = OBEDIENCE_LEVEL.id_obedience_level
SET t_ASSESSMENT_RESPONSE.name_error = CONCAT(
COALESCE(CONVERT(ASSESSMENT_COMMAND_MODALITY_LINK.created_on, CHAR), '(No Assessment Command Modality Link)')
COALESCE(CONVERT(ASSESSMENT_COMMAND_LINK.created_on, CHAR), '(No Assessment Command Link)')
, ' - '
, COALESCE(RESPONSE_QUALITY_METRIC.name, '(No Response Quality Metric)')
, ' - '
@@ -199,15 +199,15 @@ BEGIN
-- Validation
-- Missing mandatory fields
-- id_assessment_command_modality_link
-- id_assessment_command_link
IF EXISTS (
SELECT *
FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE
LEFT JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
LEFT JOIN fetchmetrics.DOG_Assessment_Command_Link ASSESSMENT_COMMAND_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_link = ASSESSMENT_COMMAND_LINK.id_link
WHERE
ISNULL(t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK.id_link)
OR ASSESSMENT_COMMAND_MODALITY_LINK.active = 0
ISNULL(t_ASSESSMENT_RESPONSE.id_assessment_command_link)
OR ISNULL(ASSESSMENT_COMMAND_LINK.id_link)
OR ASSESSMENT_COMMAND_LINK.active = 0
) THEN
INSERT INTO tmp_Msg_Error (
id_type
@@ -217,13 +217,13 @@ BEGIN
SELECT
v_id_type_error_bad_data
, v_code_type_error_bad_data
, CONCAT('The following Dog Assessment Response(s) do not have a valid Assessment_Command_Modality_Link: ', GROUP_CONCAT(t_ASSESSMENT_RESPONSE.name_error SEPARATOR ', ')) AS msg
, CONCAT('The following Dog Assessment Response(s) do not have a valid Assessment_Command_Link: ', GROUP_CONCAT(t_ASSESSMENT_RESPONSE.name_error SEPARATOR ', ')) AS msg
FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE
LEFT JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link
LEFT JOIN fetchmetrics.DOG_Assessment_Command_Link ASSESSMENT_COMMAND_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_link = ASSESSMENT_COMMAND_LINK.id_link
WHERE
ISNULL(t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link)
OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK.id_link)
OR ASSESSMENT_COMMAND_MODALITY_LINK.active = 0
ISNULL(t_ASSESSMENT_RESPONSE.id_assessment_command_link)
OR ISNULL(ASSESSMENT_COMMAND_LINK.id_link)
OR ASSESSMENT_COMMAND_LINK.active = 0
;
END IF;
-- id_response_quality_metric
@@ -363,7 +363,7 @@ BEGIN
ON ASSESSMENT_RESPONSE.id_response = t_ASSESSMENT_RESPONSE.id_response
AND t_ASSESSMENT_RESPONSE.is_new = 0
SET
ASSESSMENT_RESPONSE.id_assessment_command_modality_link = t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link
ASSESSMENT_RESPONSE.id_assessment_command_link = t_ASSESSMENT_RESPONSE.id_assessment_command_link
, ASSESSMENT_RESPONSE.id_response_quality_metric = t_ASSESSMENT_RESPONSE.id_response_quality_metric
, ASSESSMENT_RESPONSE.id_obedience_level = t_ASSESSMENT_RESPONSE.id_obedience_level
, ASSESSMENT_RESPONSE.value_measured = t_ASSESSMENT_RESPONSE.value_measured
@@ -374,7 +374,7 @@ BEGIN
INSERT INTO fetchmetrics.DOG_Assessment_Response (
id_temp
, id_assessment_command_modality_link
, id_assessment_command_link
, id_response_quality_metric
, id_obedience_level
, value_measured
@@ -385,7 +385,7 @@ BEGIN
)
SELECT
t_ASSESSMENT_RESPONSE.id_temp
, t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link AS id_assessment_command_modality_link
, t_ASSESSMENT_RESPONSE.id_assessment_command_link AS id_assessment_command_link
, t_ASSESSMENT_RESPONSE.id_response_quality_metric AS id_response_quality_metric
, t_ASSESSMENT_RESPONSE.id_obedience_level AS id_obedience_level
, t_ASSESSMENT_RESPONSE.value_measured AS value_measured
@@ -398,6 +398,23 @@ BEGIN
t_ASSESSMENT_RESPONSE.is_new = 1
AND t_ASSESSMENT_RESPONSE.active = 1
;
WITH Link_Response_Count AS (
SELECT
ASSESSMENT_COMMAND_LINK.id_link
, COUNT(*) AS count_responses
FROM fetchmetrics.DOG_Assessment_Command_Link ASSESSMENT_COMMAND_LINK
INNER JOIN tmp_Assessment_Response t_ASSESSMENT_RESPONSE ON ASSESSMENT_COMMAND_LINK.id_link = t_ASSESSMENT_RESPONSE.id_assessment_command_link
INNER JOIN fetchmetrics.DOG_Assessment_Response ASSESSMENT_RESPONSE ON t_ASSESSMENT_RESPONSE.id_response = ASSESSMENT_RESPONSE.id_response
GROUP BY ASSESSMENT_COMMAND_LINK.id_link
)
UPDATE fetchmetrics.DOG_Assessment_Command_Link ASSESSMENT_COMMAND_LINK
-- INNER JOIN tmp_Assessment_Response t_ASSESSMENT_RESPONSE ON ASSESSMENT_COMMAND_LINK.id_link = t_ASSESSMENT_RESPONSE.id_assessment_command_link
LEFT JOIN Link_Response_Count LINK_RESPONSE_COUNT ON ASSESSMENT_COMMAND_LINK.id_link = LINK_RESPONSE_COUNT.id_link
SET
ASSESSMENT_COMMAND_LINK.trial_count = IFNULL(LINK_RESPONSE_COUNT.count_responses, 0)
, ASSESSMENT_COMMAND_LINK.id_change_set = v_id_change_set
;
INSERT INTO fetchmetrics.DOG_Msg_Error_Temp (
id_type
@@ -491,7 +508,7 @@ from fetchmetrics.DOG_Assessment_Response
INSERT INTO fetchmetrics.DOG_Assessment_Response_Temp (
id_response
, id_assessment_command_modality_link
, id_assessment_command_link
, id_response_quality_metric
, id_obedience_level
, value_measured
@@ -501,7 +518,7 @@ INSERT INTO fetchmetrics.DOG_Assessment_Response_Temp (
)
VALUES (
-1 -- id_response
, 1 -- id_assessment_command_modality_link
, 1 -- id_assessment_command_link
, 1 -- id_response_quality_metric
, 1 -- id_obedience_level
, 10000 -- value_measured