Holding Times Check

<< Click to Display Table of Contents >>

Navigation:  DQM > DQM Checks >

Holding Times Check

Check

Parameters

Rules

Errors

 

The DQM Holding Times Check identifies holding times that fall outside Quality Control (QC) limits based on the check rule and parameter details outlined below.

 

Check

 

The RT_DQM_CHECK.DQM_CHECK value is EarthSoft.DQM.HOLDINGTIMES = Holding Times.

 

Values from RT_HOLDING_TIME are found by searching for the following matches:

RT_HOLDING_TIME.ANALYTIC_METHOD = DT_TEST.ANALYTIC_METHOD

RT_HOLDING_TIME.MEDIUM_CODE = RT_MATRIX.MEDIUM_CODE where RT_MATRIX.MATRIX_CODE = DT_SAMPLE.MATRIX_CODE

RT_HOLDING_TIME.PRESERVATIVE = DT_TEST.PRESERVATIVE

RT_HOLDING_TIME.CAS_RN:

oIf this column is NULL, then the Holding Time limits are applied to all results that match the first two criteria above.

oIf this column is populated, then the Holding Time limits only apply to results with matching CAS_RN in DT_RESULT.CAS_RN.

RT_HOLDING_TIME.DQM_PRESERVED_YN

oThis column is used to create uniqueness for a given Analytical Method, Medium Code, Matrix Code, and CAS_RN holding time interval that differs based upon whether the sample is preserved.  Uniqueness is created by adding two rows to RT_HOLDING_TIME for the same Analytical Method, Medium Code, Matrix Code, and CAS_RN (if applicable) and populating one row with DQM_PRESERVED_YN=Y and the second row with DQM_PRESERVED_YN=N and then populating the holding time intervals that apply for each row

oWhen running the Holding Time Check, the code will first look to see if the DT_TEST.PRESERVATIVE column in the dataset is populated. If DT_TEST.PRESERVATIVE is populated with a value other than “NONE” in the dataset, the holding time from the DQM_PRESERVED_YN=Y row will be used. If DT_TEST.PRESERVATIVE is null or is populated with “NONE” in the dataset, the holding time from the DQM_PRESERVED_YN=N row will be used.

oIf RT_HOLDING_TIME.DQM_PRESERVED_YN column is Null, then the Holding Time limits in the one row are applied to all results that match the first three criteria above.

oIf RT_HOLDING_TIME.DQM_PRESERVED_YN is populated (either Y or N) but there is only one row for a given Analytical method, Medium Code, Matrix Code, and CAS_RN, then the Holding Time limits in the one row are applied to all results that match the first three criteria above.

 

Notes:

It is important for RT_MATRIX.MEDIUM_CODE to be populated for all MATRIX_CODEs being used in the data.

The RT_HOLDING_TIME.HT_UNIT must be plural (e.g. "Days") while the RT_HOLDING_TIME.CALCULATION_UNIT must be singular (e.g. "Day"). These unit reference values are therefore added with the DQM Schema.

Calculations are to the minute, regardless of holding time unit.

When multiple holding time intervals are exceeded for a sample, DQM will only list the first holding time interval exceedance that it encounters in the Exceptions tab.

 

When the Holding Time check is selected for an Event, then the Holding Time Type(s) must also be selected on the DQM Start Event Form for this check to run (shown below).

 

Parameters

 

This check uses three Global Parameters:

1.reportable_result DT_RESULT.REPORTABLE_RESULT values to include in DQM datasets

2.result_type_code DT_RESULT.RESULT_TYPE_CODE to include in DQM datasets

3.test_type_batch AT_TEST_BATCH_ASSIGN.TEST_BATCH_TYPE to include in DQM dataset

 

Five parameters are available specifically for this Check (listed below). None of these parameters allow for input of method-specific or analyte-specific PARAM_VALUEs. However, matrix-specific AND analyte- or method-specific qualifiers assigned in RT_HOLDING_TIME will be used when useRuleQualifiers = "N".

1.GrossRejectFactor – The multiplier used to determine when a gross exceedance of the holding time has occurred. No default.

2.useRuleQualifiers – Defaults to "Y".

a.If useRuleQualifiers = "Y", the qualifiers are taken from RT_DQM_RULE.

b.If useRuleQualifiers = "N", the qualifiers in RT_HOLDING_TIME can be used for matrix-specific AND analyte- or method-specific qualifiers. The following fields in RT_HOLDING_TIME must be populated:

QUALIFIER_NON_DETECT

QUALIFIER_HIT

GROSS_QUALIFIER_NON_DETECT

GROSS_QUALIFIER_HIT

3.sample_type_code Defaults to "N". Only results with matching values in DT_SAMPLE.SAMPLE_TYPE_CODE are reviewed during this check.

4.result_type_code Defaults to "TRG. Only results with matching values in DT_RESULT.RESULT_TYPE_CODE are reviewed during this check.

5.check_preserved_single_row – Defaults to “N”. Option to choose between the Collect to Analysis (Preserved) or (Unpreserved) Holding Time limits are used based upon whether DT_TEST.PRESERVATIVE is populated in the dataset.

6.comparison_unit – Defaults to "ht_unit". Set which unit to use for comparison—either "minutes" or the unit in RT_HOLDING_TIME.HT_UNIT.

When comparison_unit is "minutes",  all holding times will be converted to minutes before comparing HoldTime to QC_HoldTime.

When comparison_unit is "ht_unit" and the unit in RT_HOLDING_TIME.HT_UNIT is Hours, Days, or Months then the holding time will be exceeded after the end of the last hour, day, or month, respectively.

 

Notes:

Default parameter values listed above refer to the value provided in the DQM Starter QAPP.xlsx.

The code will use the RT_HOLDING_TIME.GROSS_REJECT_FACTOR first before using the gross reject factor populated in RT_DQM_CHECK_PARAM.

 

Rules

 

There are four rules (HoldTime and QC_HoldTime are each explained below):

1.GROSS_QUALIFIER_HIT

Qualify a detected result if HoldTime >= QC_HoldTime * GrossRejectFactor.

2.GROSS_QUALIFIER_NON_DETECT

Qualify a non-detect result if HoldTime >= QC_HoldTime * GrossRejectFactor.

3.QUALIFIER_HIT

Qualify a detected result if HoldTime >= QC_HoldTime.

4.QUALIFIER_NON_DETECT

Qualify a non-detect result if HoldTime >= QC_HoldTime.

 

Use of Reason Codes with the rules is discussed here.

 

HoldTime

 

For each Holding Time Type, two dates are used to get a HoldTime value that is then used in the above comparisons (S = DT_SAMPLE and T = DT_TEST).

1.Sample Collection to Analysis (Unpreserved)  

Compare S.SAMPLE_DATE to T.ANALYSIS_DATE.

2.Sample Collection to Analysis (Preserved)  

Compare S.SAMPLE_DATE to T.ANALYSIS_DATE.

3.Sample Collection to Preservation  

Compare S.SAMPLE_DATE to T.PRESERVATIVE_DATE

4.Sample Collection to Leachate  

Compare S.SAMPLE_DATE to T.LEACHATE_DATE.

5.Sample Collection to Prep  

Compare S.SAMPLE_DATE to T.PREP_DATE.

6.Preservation to Prep  

Compare T.PRESERVATIVE_DATE to T.PREP_DATE

7.Leachate to Prep  

Compare T.LEACHATE_DATE to T.PREP_DATE.

8.Preservation to Analysis  

Compare T.PRESERVATIVE_DATE to T.ANALYSIS_DATE

9.Prep to Analysis  

Compare T.PREP_DATE to T.ANALYSIS_DATE.

10. Leachate to Analysis  

Compare T.LEACHATE_DATE to T.ANALYSIS_DATE.

 

QC_HoldTime

 

For each Holding Time Type and DQM QAPP Code, the value for QC_HoldTime in the equations above is looked up in the following columns of the RT_HOLDING_TIME table.

1.Sample Collection to Analysis (Unpreserved) – collect_analysis_unpreserved column

2.Sample Collection to Analysis (Preserved) – collect_analysis_preserved column

3.Sample Collection to Preservation – collect_preserve column

4.Sample Collection to Leachate – collect_leachate column

5.Sample Collection to Prep – collect_prep column

6.Preservation to Prep – preserve_prep column

7.Leachate to Prep – leachate_prep column

8.Preservation to Analysis – preserve_analysis column

9.Prep to Analysis – prep_analysis column  

10.Leachate to Analysis – leachate_analysis column

 

Note: Enter 999 in any column to skip that Holding Time Type for that particular Analytic Method / Medium Code / (CAS_RN) combination. This option is particularly useful when using RT_HOLDING_TIME.DQM_PRESERVED_YN field and creating two rows of holding times for a given Analytical Method, Medium Code, Matrix Code, and CAS_RN holding time interval that differs based upon whether the sample is preserved AND populating the holding times for the Holding Time intervals COLLECT TO ANALYSIS (PRESERVED) and COLLECT TO ANALYSIS (UNPRESERVED), adding 999 in the unused interval limit will prevent issues with apparent redundancy.

 

A NULL value will cause an error to be displayed in the Errors tab when the check is run for that Holding Time Type.

 

Errors

 

In the Errors tab of the DQM Event Review Form, these errors may be listed:

1.One of the required rules for this check is not present in the RT_DQM_RULE table.
When this error is present, the check will be skipped. Alternately, the QAPP can be updated following the How to Update Existing QAPPs documentation page.

2.Holding Time Gross Reject Factor is null or not numeric.

3.No records were found in the RT_HOLDING_TIME table for the QAPP Code being used. Enter a record in RT_HOLDING_TIME for each Analytic Method being checked.
When this error is present, this check will be skipped.

4.No records were found in the RT_HOLDING_TIME table for the QAPP Code and Analytic Method = {0} and Medium Code = {1}.
When this error is present, this check will be skipped.

5.No Holding Time control limits were found for the selected HT Types in the RT_HOLDING_TIME table for the QAPP Code, Analytic Method = {0} and Medium Code = {1}.
When this error is present, holding time for the QAPP/Method/Medium code will be skipped.

6.A Holding Time limit with a matching DQM_PRESERVED_YN does not exist for SYS_SAMPLE_CODE = {0}; ANALYTIC_METHOD = {1}; CAS_RN = {2}.
When this error is present, holding time for the QAPP/Method/Medium code and analyte in the sample is skipped.

7.{0} is missing for SYS_SAMPLE_CODE = {1}; ANALYTIC_METHOD = {2}; CAS_RN = {3}.
The missing {0} field is required for evaluation of the holding time interval selected so DQM will create this error and skip the evaluation.