Drinking Water Ordinance as of 2023
The current Drinking Water Ordinance (as of March 2023) provides the following calculation examples for the approaches 2 x 0.5 ml and 1x 50 ml:
Case studies for the number of evaluable target colonies | Indication on test report [CFU/100 ml] | Conformity assessment |
---|---|---|
Case A: No legionella detected on all plates (DA + MF) | < 2 | TMW not reached |
Case B: Σ DA without detection, MF 1-2 CFU | < 6 | TMW not reached |
Case C: Σ DA 1-2 CFU, MF 0-2 CFU | < 100 | TMW not reached |
Case D: Σ DA 0-2 CFU, MF 3 - 49 | 6 - 98 | TMW not reached |
Case E: Σ DA 0-2 CFU, MF 50 - 80 | 100 - 160 | TMW reached |
Case F: Σ DA 3 - 600 CFU, MF not relevant for overall assessment | 300 - 60,000 | TMW reached |
Case G: Σ DA > 600 CFU, MF not relevant for overall assessment | > 60,000 | TMW reached |
Case H: Σ DA 1-2 CFU or not evaluable, MF > 80 CFU | > 160 | TMW reached |
Below is an example of calculating legionella according to the current (as of March 2023) Drinking Water Ordinance.
For this, 3 parameters are created, one for direct approaches, one for membrane filtration, and one that calculates the final result.
Configuration Parameter Legionella Direct Approach
For the 1st parameter for the two 0.5 ml approaches, 6 columns are created in this example, which are configured as follows:
Column | Column Label | Data Type | Purpose |
---|---|---|---|
0 | CFU/100ml | blocked |
Here, the CFU/100 ml from Plate 1 and 2 are calculated, manual inputs are blocked |
1 | Companion Flora | -,+,++,+++ |
Selection of the strength of the companion flora |
2 | Confirmed Colonies Plate 1 | /^na$|^na\*$|^> *300$|^([0-9]|[1-9][0-9]|[1-3][0-9][0-9]|300)$|^$/ |
Indication of confirmed colonies on Plate 1, possible inputs limited to na, na*, 0-300, >300 by data type |
3 | Confirmed Colonies Plate 2 | /^na$|^na\*$|^> *300$|^([0-9]|[1-9][0-9]|[1-3][0-9][0-9]|300)$|^$/ |
Indication of confirmed colonies on Plate 2, possible inputs limited to na, na*, 0-300, >300 by data type |
4 | Suspicious Colonies Plate 1 | Indication of suspicious colonies on Plate 1 | |
5 | Suspicious Colonies Plate 2 | Indication of suspicious colonies on Plate 2 |
In column 0, a formula is entered which calculates the concentration per 100 ml from the confirmed colonies of Plate 1 and 2 from columns 2 and 3. For this purpose, the ifs
formula goes through every combination of possible inputs for Plate 1 and 2 and decides what should happen:
Formula Part | Purpose |
---|---|
ifs( |
open ifs formula |
istzahl(this(2))&&istzahl(this(3)),(this(2)+this(3))*100, |
if both results are numbers -> add both numbers and multiply by 100 |
this(2)==='na'&&this(3)==='na','na', |
if both plates are not evaluable -> output 'na' |
this(2)==='na'&&this(3)==='na*','na*', |
Plate 1 not evaluable, Plate 2 not evaluable, but legionella found -> output 'na*' |
this(2)==='na*'&&this(3)==='na','na*', |
Plate 2 not evaluable, Plate 1 not evaluable, but legionella found -> output 'na*' |
this(2)==='na*'&&this(3)==='na*','na*', |
both plates not evaluable, but legionella found -> output 'na*' |
istzahl(this(2))&&this(2)==0&&this(3)==='na*','0*', |
Plate 1 has 0 colonies, Plate 2 not evaluable, but legionella found -> output '0*' |
istzahl(this(3))&&this(3)==0&&this(2)==='na*','0*', |
Plate 2 has 0 colonies, Plate 1 not evaluable, but legionella found -> output '0*' |
(this(2)==='na'||this(2)==='na*'||contains(this(2),'>'))&&istzahl(this(3)), 200*this(3), |
Plate 1 not evaluable or >300, Plate 2 had colonies -> multiply Plate 2 by 200 |
(this(3)==='na'||this(3)==='na*'||contains(this(3),'>'))&&istzahl(this(2)), 200*this(2), |
Plate 2 not evaluable or >300, Plate 1 had colonies -> multiply Plate 1 by 200 |
'> 60000' |
both plates >300 -> output '> 60000' |
) |
close ifs formula |
Column | Column Label | Data Type | Purpose |
---|---|---|---|
0 | CFU/100ml | blocked |
Here, the CFU/100 ml is calculated from the confirmed colonies, manual inputs are blocked |
1 | Accompanying Flora | -,+,++,+++ |
Selection of the strength of accompanying flora |
2 | Confirmed Colonies | /^$|^na$|^na\*$|^> *80$|^([0-9]|[1-7][0-9]|80)$/ |
Specification of confirmed colonies, possible inputs restricted by data type to na, na*, 0-80, >80 |
3 | Suspect Colonies | Specification of suspect colonies |
A formula is placed in Column 0, which calculates the concentration per 100 ml from the confirmed colonies in Column 2:
Formula Component | Purpose |
---|---|
ifs( |
open if formula |
istzahl(this(2)),this(2)*2, |
if the result is a number -> multiply by 2 |
contains(this(2),'>'), '> 160', |
if the result is greater than 80 -> output '> 160' |
this(2) |
otherwise output result (na, na*) |
) |
close if formula |
In Column 0, a formula is placed, which calculates the concentration per 100 ml from direct inoculation and membrane filtration:
Formula Component | Purpose |
---|---|
ifs( |
open if formula |
m['Leg_D']['0']>200 || m['Leg_D']['0']==='> 60000', m['Leg_D']['0'], |
if the result of direct inoculation > 200 -> output direct inoculation result |
m['Leg_MF']['0']>4 || m['Leg_MF']['0']==='> 160', m['Leg_MF']['0'], |
if the result of membrane filtration > 4 -> output membrane filtration result |
m['Leg_D']['0']==='na'&&m['Leg_MF']['0']==='na','na', |
if both results are not evaluable -> output 'na' |
m['Leg_D']['0']==='na'&&m['Leg_MF']['0']==='na*','na*', |
if both results are not evaluable, but Legionella were found in membrane filtration -> output 'na*' |
m['Leg_D']['0']==='na*'&&m['Leg_MF']['0']==='na','na*', |
if both results are not evaluable, but Legionella were found in direct inoculation -> output 'na*' |
m['Leg_D']['0']==='na*'&&m['Leg_MF']['0']==='na*','na*', |
if both results are not evaluable, but Legionella were found in both -> output 'na*' |
istzahl(m['Leg_D']['0'])&&m['Leg_D']['0']==0&&m['Leg_MF']['0']==='na','< 100', |
if no Legionella were found in direct inoculation and membrane filtration is not evaluable -> output < 100 |
istzahl(m['Leg_MF']['0'])&&m['Leg_MF']['0']==0&&m['Leg_D']['0']==='na', '< 2', |
if no Legionella were found in membrane filtration and direct inoculation is not evaluable -> output < 2 |
istzahl(m['Leg_MF']['0'])&&m['Leg_MF']['0']==0&&istzahl(m['Leg_D']['0'])&&m['Leg_D']['0']==0, '< 2', |
if no Legionella were found in both -> output <2 |
istzahl(m['Leg_MF']['0'])&&m['Leg_MF']['0']==0&&m['Leg_D']['0']==='na*', '< 2*', |
if no Legionella were found in membrane filtration and direct inoculation is not evaluable, but Legionella were found -> output < 2* |
istzahl(m['Leg_MF']['0'])&&m['Leg_MF']['0']==0&&m['Leg_D']['0']==='0*', '< 2*', |
if no Legionella were found in membrane filtration and one plate was without Legionella in direct inoculation, but not evaluable, and the other with Legionella -> output < 2* |
m['Leg_D']['0']==='na'&&istzahl(m['Leg_MF']['0']), '< 6*', |
if Legionella were found up to 2 in membrane filtration and direct inoculation is not evaluable -> output < 6* |
m['Leg_D']['0']==='na*'&&istzahl(m['Leg_MF']['0']), '< 6*', |
if Legionella were found up to 2 in membrane filtration and direct inoculation is not evaluable, but Legionella were found -> output < 6* |
m['Leg_D']['0']==='0*'&&istzahl(m['Leg_MF']['0']), '< 6*', |
if Legionella were found up to 2 in membrane filtration and one plate was without Legionella in direct inoculation, but not evaluable, and the other with Legionella -> output < 6* |
istzahl(m['Leg_D']['0'])&&m['Leg_D']['0']==0&&istzahl(m['Leg_MF']['0']), '< 6*', |
if Legionella were found up to 2 in membrane filtration and no Legionella were found in direct inoculation-> output < 6* |
'< 100*' |
in all other cases (Legionella were found up to 2 in direct inoculation) -> output <100* |
) |
close if formula |
In Column 1, a formula is placed, which selects the relevant accompanying flora from direct inoculation and membrane filtration:
Formula Component | Purpose |
---|---|
ifs( |
open if formula |
m['Leg_D']['0']>200 || m['Leg_D']['0']==='> 60000', m['Leg_D']['1'], |
if the result of direct inoculation > 200 -> output accompanying flora of direct inoculation |
m['Leg_MF']['0']>4 || m['Leg_MF']['0']==='> 160', m['Leg_MF']['1'], |
if the result of membrane filtration > 4 -> output accompanying flora of membrane filtration |
m['Leg_Endresult']['0']==='na' || m['Leg_Endresult']['0']==='na*','-', |
if the final result is na or na* -> output a - |
m['Leg_Endresult']['0']==='< 2'||m['Leg_Endresult']['0']==='< 2*'||m['Leg_Endresult']['0']==='< 6*',m['Leg_MF']['1'], |
if the final result is < 2, <2* or < 6* -> output accompanying flora of membrane filtration |
m['Leg_D']['1'] |
otherwise output accompanying flora of direct inoculation |
) |
close if formula |
In Column 2, a formula is placed, which selects the relevant approach from direct inoculation and membrane filtration:
Formula Component | Purpose |
---|---|
ifs( |
open if formula |
m['Leg_D']['0']>200 || m['Leg_D']['0']==='> 60000', 'DA', |
if the result of direct inoculation > 200 -> output DA |
m['Leg_MF']['0']>4 || m['Leg_MF']['0']==='> 160', 'MF', |
if the result of membrane filtration > 4 -> output MF |
m['Leg_Endresult']['0']==='na' || m['Leg_Endresult']['0']==='na*','-', |
if the final result is na or na* -> output a - |
m['Leg_Endresult']['0']==='< 2' || m['Leg_Endresult']['0']==='< 2*' || m['Leg_Endresult']['0']==='< 6*','MF', |
if the final result is < 2, <2* or < 6* -> output MF |
'DA' |
otherwise output DA |
) |
close if formula |
Last change: 10.01.2025
Allgemeines
Einführungsphase
Mitarbeiter
Aufträge
Proben
Probenvorlage
Berichte
Berichtstabellen Editor
Kunden
Kundenzone (optional)
Anlagen
Angebote
Rechnungen
Parameter
Rechnen mit Parametern
Schnittstellen
Webservice
Transformationscode
Prüfpläne / Grenzwerte / Spezifikationen
Dokumentenlenkung
Prüfmittel
Material
Mitarbeiterschulungen
8D-Report
Sonstiges
PDF-Vorlagen
Fragen und Antworten
Lieferantenbewertung
Dateiverwaltung
Auswertungen
Prozesse