DQM Check for Spike Recovery

<< Click to Display Table of Contents >>

Navigation:  Professional > DQM > DQM Checks >

DQM Check for Spike Recovery

The DQM Check for Spike Recovery will qualify results if spike sample recoveries fall outside Quality Control (QC) limits.

 

Notes:

The QC_SPIKE_RECOVERY column or both of the QC_SPIKE_ADDED and QC_SPIKE_MEASURED columns must be populated in DT_RESULT_QC for this check to function.

For duplicate samples, the above columns or QC_DUP_SPIKE_RECOVERY column or both of the QC_DUP_SPIKE_ADDED and QC_DUP_SPIKE_MEASURED columns can be used.

Control limits for this check are determined as described in the RT_DQM_CONTROL_LIMITS section of the DQM_CONTROL_LIMITS help article.

 

Check

 

Check name is EarthSoft.DQM.SpikeRecovery2 = "Spike Recovery - Multiple Rules".

 

Parameters

 

This check uses the reportable_result and test_batch_type parameters from Global Parameters.

 

There are ten other parameters:

Multiplier – Defaults to 4.

result_type_code_spike – Defaults to “SC”.

sample_type_blank_spike – Defaults to “BS,BD”.

sample_type_matrix_spike – Defaults to “FS,MS,MSD,SD”.

compare_to_calculated_LCS – Defaults to “N”.

compare_to_calculated_MS – Defaults to “N”.

acceptable_variance_LCS – Defaults to 1

acceptable_variance_MS – Defaults to 1

calculated_before_reported_LCS – Defaults to “N”.

calculated_before_reported_MS – Defaults to “N”.

 

Additional Notes for Parameters:

 

1.If compare_to_calculated = Y or calculated_before_reported = Y then

 
A Spike Recovery will be calculated for every spike compound using the data populated in the qc_spike_added and qc_spike_measured columns.

 

2.If compare_to_calculated = Y then

a.DQM will compare the calculated recovery to the recovery populated in the QC_RECOVERY column.

b.DQM will create an error message in the Errors tab if the difference between the calculated recovery and the reported recovery exceeds the acceptable_variance.

3.If calculated_before_reported = "Y" then

a.DQM will use the calculated value to compare to the Control Limit.

b.If the calculated value is not available, DQM will use the reported recovery value to compare to the Control Limit.

c.If the Control Limit is exceeded, an Exception will be added to the Exceptions table.

 

Notes:

The default value is used if there is no record in RT_DQM_CHECK_PARAM for an input parameter.

The default value is used if the PARAM_VALUE is NULL for this parameter in RT_DQM_CHECK_PARAM.

If there is no value for LOW_CUTOFF, then LOW_CUTOFF is set to zero and the third rule in each foursome of rules below is effectively eliminated.

 

Rules

 

There are twelve rules:

 

Rule #

Result Types

Rule Description

DQM Rule

1

Blank Spikes

% Recovery > Upper Cut Off

BLANK SPIKE > UPPER CUTOFF

2

Blank Spikes

% Recovery > Upper Control Limit (UCL)

BLANK SPIKE > UCL

3

Blank Spikes

Lower Control Limit (LCL) > % Recovery >= Low Cutoff

LCL > BLANK > LOW_CUTOFF

4

Blank Spikes

% Recovery < Low_Cutoff

BLANK SPIKE < LOW_CUTOFF

5

Inorganic Spikes

% Recovery > Upper Cut Off

INORGANIC SPIKE > UPPER CUTOFF

6

Inorganic Spikes

% Recovery > Upper Control Limit (UCL)

INORGANIC SPIKE > UCL

7

Inorganic Spikes

Lower Control Limit (LCL) > % Recovery >= Low_Cutoff

LCL > INORG > LOW_CUTOFF

8

Inorganic Spikes

% Recovery > Low_Cutoff

INORGANIC SPIKE < LOW_CUTOFF

9

Organic Spikes

% Recovery > Upper Control Limit (UCL)

ORGANIC SPIKE > UCL

10

Organic Spikes

% Recovery >Upper Control Limit (UCL)

ORGANIC SPIKE > UCL

11

Organic Spikes

Lower Control Limit (LCL) > % Recovery >= Low_Cutoff

LCL > ORG > LOW_CUTOFF

12

Organic Spikes

% Recovery < Low_Cutoff

ORGANIC SPIKE < LOW_CUTOFF

 

Additional Notes for the Result Types:

 

Blank Spikes – Review results with:

DT_SAMPLE.SAMPLE_TYPE_CODE = sample_type_blank_spike, and

DT_RESULT.RESULT_TYPE_CODE = result_type_code_spike.

Inorganic Spikes – Review results with:

DT_SAMPLE.SAMPLE_TYPE_CODE = sample_type_matrix_spike,

DT_RESULT.RESULT_TYPE_CODE = result_type_code_spike, and

RT_ANALYTE.ORGANIC_YN = 'N'.

Organic Spikes – Review results with:

DT_SAMPLE.SAMPLE_TYPE_CODE = sample_type_matrix_spike,

DT_RESULT.RESULT_TYPE_CODE = result_type_code_spike, and

RT_ANALYTE.ORGANIC_YN = 'Y'.

 

Calculations (where table is not indicated, it is DT_RESULT_QC):

 

Notes: For the calculations below, ALL fields mentioned in the RT_DQM_CONTROL_LIMITS must be populated and numeric or the DT_RESULT_QC or default value will be used as specified below. For example, if only RT_DQM_CONTROL_LIMITS.LCS_REC_LOWER_CUTOFF is populated for the Blank Spike, the default value of 0 will be used for the spike_lco.

 

RT_DQM_CONTROL_LIMITS is discussed in more detail here.

 

If QC_ORIGINAL_CONC > multiplier * QC_SPIKE_ADDED, then skip result.

If QC_SPIKE_RECOVERY is Numeric,

then spikeRecovery = QC_SPIKE_RECOVERY

else spikeRecovery for blank spikes = 100 * QC_SPIKE_MEASURED / QC_SPIKE_ADDED and for matrix spikes = 100 * ((QC_SPIKE_MEASURED-QC_ORIGINAL_CONC) / QC_SPIKE_ADDED)

For Spike Duplicates, if regular columns are NULL, then if QC_DUP_SPIKE_RECOVERY is Numeric,

then spikeRecovery = QC_DUP_SPIKE_RECOVERY

else spikeRecovery for blank spike duplicate = 100 * QC_DUP_SPIKE_MEASURED / QC_DUP_SPIKE_ADDED and for matrix spike duplicate = ((QC_DUP_SPIKE_MEASURED-QC_ORIGINAL_CONC) / QC_DUP_SPIKE_ADDED)

 

For Blank Spikes:

 

If the values are numeric and ALL four of the following RT_DQM_CONTROL_LIMIT fields are populated:

spike_lco = RT_DQM_CONTROL_LIMITS.LCS_REC_LOWER_CUTOFF

spike_lcl = RT_DQM_CONTROL_LIMITS.LCS_RECOVERY_LCL

spike_ucl = RT_DQM_CONTROL_LIMITS. LCS_RECOVERY_UCL

spike_upper_cutoff = RT_DQM_CONTROL_LIMITS. LCS_REC_UPPER_CUTOFF

 

If any of the four values above are not populated:

spike_lco = 0.0

spike_lcl = QC_SPIKE_LCL

spike_ucl = QC_SPIKE_UCL

spike_upper_cutoff = 999.99

 

For Matrix Spikes (Inorganic and Organic):

 

If the values are numeric and ALL four of the following RT_DQM_CONTROL_LIMIT fields are populated:

 

spike_lco = RT_DQM_CONTROL_LIMITS.MS_REC_LOWER_CUTOFF

spike_lcl = RT_DQM_CONTROL_LIMITS.MS_RECOVERY_LCL

spike_ucl = RT_DQM_CONTROL_LIMITS.MS_RECOVERY_UCL

spike_upper_cutoff = RT_DQM_CONTROL_LIMITS.MS_REC_UPPER_CUTOFF

 

If any of the four values above are not populated:

 

spike_lco = 0.0

spike_lcl = QC_SPIKE_LCL

spike_ucl = QC_SPIKE_UCL

spike_upper_cutoff = 999.99

 

Associations:

 

For Blank Spikes, associated results are found using TEST_BATCH_ID.

For Matrix Spike and Matrix Spike Duplicate samples (Inorganic or Organic), associated results are found using PARENT_SAMPLE_CODE of the Matrix Spike.

 

Sample Relationships:

 

The PARENT_SAMPLE_CODE for Matrix Spike Duplicates (MSD) should match the Matrix Spike SYS_SAMPLE_CODE

The PARENT_SAMPLE_CODE for Matrix Spikes should match the original sample’s SYS_SAMPLE_CODE

 

Although the parent for MSD samples are MS, the result populated in DT_RESUL_QC.QC_DUP_ORIGINAL_CONC should equal the original sample’s result value.

 

Errors

 
Where table is not indicated, it is DT_RESULT_QC:

If QC_SPIKE_RECOVERY, QC_SPIKE_ADDED, and QC_SPIKE_MEASURED are all NULL or Not Numeric, then add error and skip result.

If QC_SPIKE_RECOVERY is NULL or Not Numeric, and either QC_SPIKE_ADDED or QC_SPIKE_MEASURED are also NULL or Not Numeric, then add error and skip result.

For Spike Duplicates, if regular columns are NULL, apply the same error checking to QC_DUP_SPIKE_RECOVERY, QC_DUP_SPIKE_ADDED, and QC_DUP_SPIKE_MEASURED.

If the Upper Control Limit is NULL or Not Numeric in both RT_DQM_CONTROL_LIMITS and DT_RESULT_QC, then add error and skip result.

If the Lower Control Limit is NULL or Not Numeric in both RT_DQM_CONTROL_LIMITS and DT_RESULT_QC, then add error and skip result.

If compare_to_calculated = Y and the variance between the reported and calculated recoveries exceed the acceptable_variance, then add error and skip result

If ORIGINAL_CONC exceeds multiplier * QC_SPIKE_ADDED, then add warning and skip result.

 

Example error messages follow.

“Spike Duplicate Recovery data missing from DT_RESULT_QC for either {QC_SPIKE_RECOVERY} or {QC_SPIKE_ADDED} and {QC_SPIKE_MEASURED}.”  

“The variance between the reported (90) and the calculated (100) Spike Recovery exceeded the Acceptable Variance (2). at sys_sample_code=BS_1_AQ_UCO_TEST and analytic_method='SW8260' and cas_rn='100-41-4'”

“Matrix Spike Recovery Check - Skipped Because Original Concentration exceeds Multiplier * Spike Added at sys_sample_code=MSD_2_SOL_UCO_TEST and analytic_method='SW8270' and cas_rn='86-73-7'”

 

Exceptions (see Calculations for definitions):

 

If spikeRecovery < spike_lco, then qualify spike result and any associated result.

If spike_lcl > spikeRecovery >= spike_lco, then qualify spike result and any associated result.

·If spikeRecovery > spike_ucl, then qualify spike result and any associated result with a detected concentration.

 

An example remark saved to DT_RESULT_DQM_REMARK for an exception is:

 

"Associated Result from : The Blank Spike Recovery is less than the Lower Cutoff."