Med Reconciliation Approval per Assessment - All Agencies

Med Reconciliation approval per assessment

Clinical Field / Clinical QA approval for Med Reconciliation was stored once per patient, so a new recert showed the prior assessment's approval. This adds the two approval columns to pAssessments on every agency_* database.

Important: Always backup databases before running migrations.
Backfill (only rows not yet set): each completed assessment takes the patient's current approval, except one created after the patient's approval was last saved. Incomplete assessments start as not approved.
Safe to re-run: a Yes previously copied onto an incomplete assessment is cleared.

SQL preview

ALTER TABLE {agency_db}.pAssessments ADD COLUMN `Med_Approve` INT NULL DEFAULT NULL, ADD COLUMN `Med_Recon_Field` INT NULL DEFAULT NULL;
Back to Migrations

Migration Progress

SELECT SCHEMA_NAME AS db_name FROM information_schema.SCHEMATA WHERE SCHEMA_NAME LIKE 'agency\_%' ESCAPE '\\' AND SCHEMA_NAME NOT LIKE '%lookup%' ORDER BY SCHEMA_NAME
Found #getAgencies.recordCount# agency database(s)
SELECT SUM(TABLE_NAME = 'pAssessments') AS has_assess, SUM(TABLE_NAME = 'pPatients') AS has_patients FROM information_schema.TABLES WHERE TABLE_SCHEMA = AND TABLE_NAME IN ('pAssessments', 'pPatients')
#db_name# — #rowMessage#
SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = AND TABLE_NAME = 'pAssessments' AND COLUMN_NAME IN ('Med_Approve', 'Med_Recon_Field') ALTER TABLE #db_name#.pAssessments ADD COLUMN `Med_Approve` INT NULL DEFAULT NULL ALTER TABLE #db_name#.pAssessments ADD COLUMN `Med_Recon_Field` INT NULL DEFAULT NULL UPDATE #db_name#.pAssessments a JOIN ( SELECT p.Patient_ID, IFNULL(p.Med_Approve, 0) AS Med_Approve, IFNULL(p.Med_Recon_Field, 0) AS Med_Recon_Field, p.Record_Mod_Date FROM #db_name#.pPatients p WHERE p.Status IN (0,1,4) AND p.AutoPatient_ID = ( SELECT MAX(p2.AutoPatient_ID) FROM #db_name#.pPatients p2 WHERE p2.Patient_ID = p.Patient_ID AND p2.Status IN (0,1,4) ) ) pt ON pt.Patient_ID = a.Patient_ID LEFT JOIN ( SELECT Assmt_ID, MIN(Record_Creation_Date) AS created_at FROM #db_name#.pAssessments GROUP BY Assmt_ID ) c ON c.Assmt_ID = a.Assmt_ID SET a.Med_Approve = CASE WHEN IFNULL(a.F25, 0) <> 1 THEN 0 WHEN c.created_at IS NOT NULL AND pt.Record_Mod_Date IS NOT NULL AND c.created_at > pt.Record_Mod_Date THEN 0 ELSE pt.Med_Approve END, a.Med_Recon_Field = CASE WHEN IFNULL(a.F25, 0) <> 1 THEN 0 WHEN c.created_at IS NOT NULL AND pt.Record_Mod_Date IS NOT NULL AND c.created_at > pt.Record_Mod_Date THEN 0 ELSE pt.Med_Recon_Field END WHERE a.Status = 0 AND a.Med_Approve IS NULL AND a.Med_Recon_Field IS NULL UPDATE #db_name#.pAssessments SET Med_Approve = IF(Med_Approve = 1, 0, Med_Approve), Med_Recon_Field = IF(Med_Recon_Field = 1, 0, Med_Recon_Field) WHERE Status = 0 AND IFNULL(F25, 0) <> 1 AND (Med_Approve = 1 OR Med_Recon_Field = 1)
#db_name# — #htmlEditFormat(rowMessage)#
#db_name# — #htmlEditFormat(rowMessage)#
Failed to list agency databases: #htmlEditFormat(cfcatch.message)#
Summary: Done #totalSuccess# | Errors #totalErrors#
DatabaseStatusMessage
#htmlEditFormat(r.db_name)# #htmlEditFormat(r.status)# #htmlEditFormat(r.message)#

Back to Migrations