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.
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_CODE = DT_SAMPLE.MATRIX_CODE
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.
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.
•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).
This Check uses the reportable_result and test_batch_type parameters from Global Parameters.
There are four other parameters specific to this Check:
1.GrossRejectFactor – The multiplier used to determine when a gross exceedance of the holding time has occurred. No default.
a.If GrossRejectFactor is not populated, then the RT_HOLDING_TIME.GROSS_REJECT_FACTOR is used.
b.If RT_HOLDING_TIME.GROSS_REJECT_FACTOR is also NULL, then the Gross Reject Factor = 1.
2.useRuleQualifiers – Defaults to "Y".
a.If useRuleQualifiers = "Y", the qualifiers are taken from RT_DQM_RULE.
b.Otherwise, the qualifiers in RT_HOLDING_TIME are used.
3.sample_type_code - Defaults to "N"
a.Only results with matching values in DT_SAMPLE.SAMPLE_TYPE_CODE are reviewed during this check.
4.result_type_code - Defaults to "TRG
a.Only results with matching values in DT_RESULT.RESULT_TYPE_CODE are reviewed during this check.
5.check_preserved_single_row – Defaults to “N”
a.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
•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 a parameter in RT_DQM_CHECK_PARAM.
•The code will use the gross reject factor populated in RT_HOLDING_TIME first before using the gross reject factor populated in RT_DQM_CHECK_PARAM.
There are four rules (HoldTime and QC_HoldTime are each explained below):
a.Qualify a detected result if HoldTime >= QC_HoldTime * GrossRejectFactor.
a.Qualify a non-detect result if HoldTime >= QC_HoldTime * GrossRejectFactor.
a.Qualify a detected result if HoldTime >= QC_HoldTime.
a.Qualify a non-detect result if HoldTime >= QC_HoldTime.
For each Holding Time Type, two dates are compared to get a HoldTime value to use in the equations above (S. = DT_SAMPLE. and T. = DT_TEST.
1.Sample Collection to Analysis (Unpreserved)
a.compare S.SAMPLE_DATE to T.ANALYSIS_DATE.
2.Sample Collection to Analysis (Preserved)
a.compare S.SAMPLE_DATE to T.ANALYSIS_DATE.
3.Sample Collection to Preservation
a.Compare S.SAMPLE_DATE to T.PRESERVATIVE_DATE
4.Sample Collection to Leachate
a.Compare S.SAMPLE_DATE to T.LEACHATE_DATE.
5.Sample Collection to Prep
a.Compare S.SAMPLE_DATE to T.PREP_DATE.
6.Preservation to Prep
a.Compare T.PRESERVATIVE_DATE to T.PREP_DATE
7.Leachate to Prep
a.Compare T.LEACHATE_DATE to T.PREP_DATE.
8.Preservation to Analysis
a.Compare T.PRESERVATIVE_DATE to T.ANALYSIS_DATE
9.Prep to Analysis
a.Compare T.PREP_DATE to T.ANALYSIS_DATE.
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
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.
When DQM is run on a dataset that contains a null or non-numeric value for a date field that is required for evaluation of the holding time interval selected, DQM will create an error and skip the evaluation.
Copyright © 2020 EarthSoft, Inc • Modified: 02 Nov 2020