Created QuestionImportanceRules table, inserted initial rules, and set Trigger_Quest_ID from assessment_questions_lookup (answer_label = Trigger_Question).
QuestionImportanceRules table already exists.
SELECT COLUMN_NAME FROM information_schema.COLUMNS
WHERE table_schema = '#Request.prefix_db_lookup#' AND table_name = 'QuestionImportanceRules'
ALTER TABLE #Request.prefix_db_lookup#.QuestionImportanceRules
ADD COLUMN Rule_Type VARCHAR(20) NOT NULL DEFAULT 'importance' COMMENT 'importance or validation' AFTER Assessment_Reason
Added Rule_Type column.
ALTER TABLE #Request.prefix_db_lookup#.QuestionImportanceRules
ADD COLUMN Validation_Message TEXT NULL COMMENT 'For validation rules: message to show when condition fails' AFTER Rule_Type
Added Validation_Message column.
ALTER TABLE #Request.prefix_db_lookup#.QuestionImportanceRules
ADD COLUMN Validation_Condition VARCHAR(50) NULL COMMENT 'e.g. one_of_required' AFTER Validation_Message
Added Validation_Condition column.
Alter validation columns warning: #cfcatch.message#
SELECT COUNT(*) AS cnt FROM #Request.prefix_db_lookup#.QuestionImportanceRules
WHERE Rule_Type = 'validation' AND Target_Questions = 'F181,F31' AND Assessment_Reason =
INSERT INTO #Request.prefix_db_lookup#.QuestionImportanceRules (Trigger_Question, Trigger_Quest_ID, Value_Match_Type, Value_Pattern, Target_Questions, Target_Quest_Ids, Action_Value, Assessment_Reason, Rule_Type, Validation_Message, Validation_Condition, Status)
VALUES ('F181', NULL, 'exact', 'n/a', 'F181,F31', NULL, 0, , 'validation', 'M1005 Enter most recent inpatient discharge date or select unknown
', 'one_of_required', 0)
Inserted M1005 validation rule (F181 or F31 required).
SELECT 1 FROM #Request.prefix_db_lookup#.QuestionImportanceRules
WHERE Rule_Type = 'validation' AND Validation_Condition = AND Assessment_Reason = LIMIT 1
" />
INSERT INTO #Request.prefix_db_lookup#.QuestionImportanceRules (Trigger_Question, Trigger_Quest_ID, Value_Match_Type, Value_Pattern, Target_Questions, Target_Quest_Ids, Action_Value, Assessment_Reason, Rule_Type, Validation_Message, Validation_Condition, Status)
VALUES (, NULL, 'exact', 'n/a', , NULL, 0, , 'validation', , , 0)
Ensured all SOC validation rules from soc_script.cfm are in QuestionImportanceRules.
UPDATE #Request.prefix_db_lookup#.QuestionImportanceRules SET Status = 0
WHERE Assessment_Reason =
Set Status = 0 for all SOC rules (active).
ALTER TABLE #Request.prefix_db_lookup#.QuestionImportanceRules
ADD COLUMN Trigger_Quest_ID INT NULL COMMENT 'ques_id; future use' AFTER Trigger_Question,
ADD COLUMN Target_Quest_Ids VARCHAR(500) NULL COMMENT 'comma-separated ques_id; future use' AFTER Target_Questions
Added Trigger_Quest_ID and Target_Quest_Ids columns.
ALTER TABLE #Request.prefix_db_lookup#.QuestionImportanceRules
ADD COLUMN Assessment_Reason VARCHAR(255) NULL COMMENT 'e.g. 1 - Start of care - further visits planned' AFTER Action_Value,
ADD INDEX idx_assessment_reason (Assessment_Reason)
UPDATE #Request.prefix_db_lookup#.QuestionImportanceRules
SET Assessment_Reason = '1 - Start of care - further visits planned'
WHERE Assessment_Reason IS NULL
ALTER TABLE #Request.prefix_db_lookup#.QuestionImportanceRules
MODIFY COLUMN Assessment_Reason VARCHAR(255) NOT NULL
Added Assessment_Reason column and backfilled.
ALTER TABLE #Request.prefix_db_lookup#.QuestionImportanceRules DROP COLUMN Assessment_Type
Dropped old Assessment_Type column.
Alter table warning: #cfcatch.message# (table may already be up to date)
UPDATE #Request.prefix_db_lookup#.QuestionImportanceRules qir
INNER JOIN #Request.prefix_db_lookup#.#Request.assessment_questions_lookup# aql
ON aql.answer_label = qir.Trigger_Question
AND aql.assessment_reason = qir.Assessment_Reason
AND (aql.Deleted = 0 OR aql.Deleted IS NULL)
SET qir.Trigger_Quest_ID = aql.ques_id
Updated Trigger_Quest_ID on QuestionImportanceRules from assessment_questions_lookup (answer_label = Trigger_Question, same Assessment_Reason).
Sync Trigger_Quest_ID warning: #cfcatch.message#