{(set: $waterSource to "river")
(set: $bacterialCont to true)
(set: $particulateCont to true)
(set: $saltCont to false)
(set: $metalCont to false)
(set: $nitrateCont to true)
(set: $acidCont to false)
}
<div class="ttl">About the Kolo River</div>
|about)[New Georgia is a big, mountainous island with raised barrier reefs that define the large Marovo Lagoon. Rainfall occurs at high altitudes and replenishes the supply of the Kolo River. The river flows towards the coast into the Marovo Lagoon.
<img class="diag background-img img-contain" src="images/kolo_river.png">](click: "About the Kolo River")[(show:?about)]
<div class="ttl">Threats to the Kolo River</div>
|threats)[<div class='water-info-txt-container'>Decades ago, commercial logging operations began in the inland tropical forests of the island, bringing economic gains and employment opportunities for some residents. However, the deforestation had profound ecological consequences.
Deforestation caused agricultural runoff, resulting in an algal bloom in the lagoon. This led to widespread mortality of marine organisms. Additionally, the high levels of soil erosion severely impacted downstream water quality, compromising access to clean drinking water.
</div>](click: "Threats to the Kolo River")[(show:?threats)]
(text-size: 0.5)[//Sources: Environmental research letter about the Solomon Islands (2018), <a href="https://iopscience.iop.org/article/10.1088/1748-9326/aab9eb/pdf"
target="_blank">“Predicting the impact of logging activities on soil erosion and water quality in steep, forested tropical islands"</a>, information from <a href="https://wateractionhub.org/geos/country/200/d/solomon-islands/" target="_blank">"UN Global Impact Water Action Hub."</a>, and book chapter, <a href="https://www.jstor.org/stable/j.ctv47wfn1.7" target="_blank">"The River, the Water and the Crocodile in Marovo Lagoon"</a> by Edvard Hviding (2018) (image taken from book chapter).//]
<button class="treatments-btn">[[Continue->water has life]]</button>
{(set: $waterSource to "aquifer")
(set: $bacterialCont to true)
(set: $particulateCont to false)
(set: $saltCont to true)
(set: $metalCont to false)
(set: $nitrateCont to false)
(set: $acidCont to false)
}
<div class="ttl">What is a coastal aquifer?</div>
|about)[Water in coastal aquifers is found underground and is pumped to the surface in wells. Aquifers are delicate, thin freshwater lenses that float atop denser seawater. Rainfall replenishes the freshwater aquifers and is important for the long-term stability of this water source.
<img class="diag background-img img-contain" src="images/Coastal_Aquifer.png"/>](click:"What is a coastal aquifer?")[(show:?about)]
<div class="ttl">Threats to coastal aquifers</div>
|threats)[These crucial groundwater sources face multiple threats, including sea level rise, wave overtopping, over-extraction (over-use), and bacterial contamination from agriculture or waste. Climate change intensifies these threats to coastal aquifers due to increased climate variability and climate extremes.](click:"Threats to coastal aquifers")[(show:?threats)]
(text-size: 0.5)[//Sources: <a href="https://info.undp.org/docs/pdc/Documents/FJI/PIMS%206196%20MCAP%20UNDP%20Project%20Document%20_14June20.pdf" target="_blank">"UNDP’s Managing Coastal Aquifer Project"</a> in Republic of Palau, Tuvalu, and Republic of Marshall Islands (2020).//]
<button class="treatments-btn">[[Continue->water has life]]</button>
{(set: $waterSource to "rainwater")
(set: $bacterialCont to true)
(set: $particulateCont to false)
(set: $saltCont to false)
(set: $metalCont to true)
(set: $nitrateCont to false)
(set: $acidCont to true)
}<div class="ttl">What is rainwater catchment?</div>
|about)[Rainwater catchment is a system that catches, stores, and distributes rainwater for household use. In many local communities, residents rely on rainwater catchment systems for their freshwater needs, especially when groundwater reserves are over-extracted (over-used).
<img class="diag background-img img-contain" src="images/Rainwater_Collection.png" />](click:"What is rainwater catchment?")[(show:?about)]
<div class="ttl">Threats to rainwater catchment</div>
|threats)[While rainwater serves as a good source of clean water, maintaining efficient catchment systems is challenging and costly. Systems need to be properly designed, maintained, and water may need to be treated before drinking. Additionally, extreme weather events such as cyclones and storm surges can cause significant damage to rainwater catchment systems. Residents can face longer dry periods and droughts, making long-term water management challenging.
<img class="diag catchment-img img-contain" src="images/rainwater_catchment_image.png" >](click:"Threats to rainwater catchment")[(show:?threats)]
(text-size: 0.5)[//Sources: University of Hawai’i <a href="https://www.ctahr.hawaii.edu/hawaiirain/Library/Guides&Manuals/A_Guide_for_Rainwater_Catchment_Systems_in_the_Pacific_Portia_Franz.pdf" target="_blank">"A guide for rainwater catchment systems in the Pacific"</a> (image taken from guide), and <a href="https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2021WR030350" target="_blank">"Contending with water shortages in the Pacific: Performance of private rainwater tanks versus communal rainwater tanks in rural Vanuatu"</a>.//]
<button class="treatments-btn">[[Continue->water has life]]</button><div class='ttl mb-0 mt-0'>Select from the following *assays*:</div><div class="message hint p-1"><div class="p-1 infobox no-border hint"><i class="hint bi bi-info-circle pr-1"></i><span class="hint"><b><em class="hint">assay</em></b> – a chemical test for a substance</span></div><div class="p-1 infobox no-border hint"><i class="hint bi bi-info-circle pr-1"></i>Clicking on a test will purchase the assay!</div>(link:"<div class='p-1 alert infobox no-border'><i class='alert bi bi-cursor pr-1'></i>Click here for a hint on where to start</div>")[<div class="p-1 infobox no-border hint"><i class="hint bi bi-info-circle pr-1"></i>Beginning with a rapid panel is a great way to quickly determine what's going on in the sample. The rapid panel will indicate which of the sensitive tests should be performed.</div>]</div>
<ul><li><div class="larger">[[Rapid Panel ($1)->Rapid panel]]</div>A fast-acting (rapid) test strip that can detect pH, nitrites, nitrates, and chlorine. Requires ~3 min. [[<i class="bi bi-play-circle pl-1 pr-1" />Watch Rapid Panel Demo->RapidPanelVid]]</li>
<li> <div class="larger"> [[Nitrates Assay ($3)->Nitrates assay]]</div>This assay specifically measures the presence of nitrates. It is more sensitive and accurate than a rapid panel at detecting nitrates. Requires ~10 min. [[<i class="link-color bi bi-play-circle pl-1 pr-1" />Watch Rapid Nitrates Assay Demo->NitAssayVid]]</li>
<li> <div class="larger"> [[pH Test ($1)->pH test]]</div>A quick test strip which indicates a liquid’s pH value. Requires ~3 min. [[<i class="link-color bi bi-play-circle pl-1 pr-1" />Watch pH Test Demo->pHTestVid]]</li>
<li><div class="larger">[[Salinity Assay ($3)->Salinity assay]]</div>Salinity is the measure of salt in a liquid. A saline concentration test strip determines the salt content of the water sample. Requires ~5min. [[<i class="link-color bi bi-play-circle pl-1 pr-1" />Watch Salinity Demo->SalinityVid]]</li>
<li><div class="larger"> [[Turbidity test ($1)->Turbidity test]]</div> Turbidity is the measure of a liquid’s clarity. Turbid liquids are cloudy, while low-turbidity liquids are clear. Turbidity is caused by materials such as sand, clay, algae, oils, dirt, or bacteria. Requires ~5 min.</li>
<div class='ttl'>OR</div>
<ul><li><div class='larger'>View [[assay results]] or continue to [[treatment->making decisions]] options.</div></li></ul>
(if: $assayPerformed is false)[<div class="infobox"><i class="bi bi-exclamation-circle"></i>A recent water quality survey found that the water contains harmful bacteria, most likely introduced from animal waste upstream.</div>
<div class="alert">You will need to treat for bacteria.</div>]
## What's next?
{|1)[<h4>(if: $assayPerformed is true)[Perform more [[assays]].
(if: $assayPerformed is false)[Actually, we do want to perform some [[assays]]...]]</h4><div class="alert-message">
* Bacterial assay indicated harmful bacteria.
(if: $rapidPanel is true)[
(if: $nitrateCont is true)[
* Nitrates were detected.]
(if: $acidCont is true)[
* pH is outside drinkable range.]
]
(if: $assayPerformed is true)[
(if: $nitratesAssay is true AND $nitrateCont is true)[
* Nitrates were detected.
]
(if: $phTest is true AND $acidCont is true)[
* Sample has a pH of $pHVal.
]
(if: $salinityAssay is true AND $saltCont is true)[
* Water is salty.
]
(if: $turbidityTest is true AND $particulateCont is true)[
* Sample is contaminated with particulates and should be
treated for turbidity.
]
]]
}</div>|2)[<h4>Let's treat for:</h4><ul><li>[[Bacteria->Bacterial treatments]]</li><li>[[Improper pH->pH treatments]]</li><li>[[Nitrates->Nitrates treatments]]</li><li>[[Salinity->Salinity treatments]]</li><li>[[Particulates->Particulate treatments]]</li><li>[[Heavy metals->Heavy metals treatments]]]</li></ul>
|3)[OR
<h4>We're [[finished with treatments->Treatments complete.]] and ready to see if they worked.</h4>]
(click: "What's next?")[(show:?1)(show:?2)(show:?3)]
{(if: $bacterialTreatment is true OR $nitratesTreatment is true OR $salinityTreatment is true OR $acidityTreatment is true OR $basicityTreatment is true OR $particulateTreatment is true OR $metalsTreatment is true)[
<div class="message report">
(if: $bacterialTreatment is true)[
* Water has been treated for bacteria.]
(if: $nitratesTreatment is true)[
* Water has been treated for nitrates.]
(if: $salinityTreatment is true)[
* Water has been treated for salinity.]
(if: $acidityTreatment is true)[
* Water pH treated has been raised.]
(if: $basicityTreatment is true)[
* Water pH has been lowered.]
(if: $particulateTreatment is true)[
* Water has been treated for particulates.]
(if: $metalsTreatment is true)[
* Water has been treated for heavy metals.]
</div>]}Your assays had the following results:
{
(if: $rapidPanel is true)[<div class="message"> Rapid panel results:
|metal)[<div class="alert">
* Unsafe levels of heavy metals were detected.</div>]
|nitrites)[<div class="alert">
* Unsafe levels of nitrites were detected.</div>]
|nitrates)[<div class="alert">
* Unsafe levels of nitrates were detected.</div>]
|chlorine)[<div class="alert">
* Unsafe levels of chlorine were detected.</div>]
|pH)[<div class="alert">
* pH is outside drinkable range.</div>]
|null)[<div class="report">
* No relevant contaminants were detected by the rapid panel.</div>]</div>
|rapid_result)[{
(if:$metalResult is true)(show:?metal)
(if:$nitriteResult is true)(show:?nitrites)
(if: $nitrateResult is true)(show:?nitrates)
(if: $chlorineResult is true)(show:?chlorine)
(if: $pHrapResult is true)(show:?pH)
(if: $none is true)(show:?null)}</div>]]
(if: $nitratesAssay is true)[<div class="message"> Nitrates assay result:
|pos_result)[<div class="alert">
* Nitrates were detected from fertiliser in farm runoff upstream. It will need to be treated to remove nitrates.</div>]
|neg_result)[<div class="report">
* No nitrates were detected.</div>]</div>
|nitrates_result)[
(show:(hooks-named:$nitResult))]]
(if: $phTest is true)[<div class="message"> pH test result:
|acid)[<div class="alert">
* Sample has a pH of $pHVal. It is too acidic to drink. It will need to be treated for acidity.</div>]
|base)[<div class="alert">
* Sample has a pH of $pHVal. It is too basic to drink. It will need to be treated for basicity.</div>]
|neutral)[<div class="report">
* Sample has a pH of $pHVal. It is drinkable. It does not need to be treated for acidity.</div>]</div>
|pH_result)[
(show:(hooks-named:$pHResult))]]
(if: $salinityAssay is true)[<div class="message"> Salinity assay result:
|pos_result)[<div class="alert">
* Water is salty. You will need to desalinate.</div>]
|neg_result)[<div class="report">
* Water is fresh. You do not need to treat for salinity.</div>]</div>
|salinity_result)[
(show:(hooks-named:$salResult))]]
(if: $turbidityTest is true)[<div class="message"> Turbidity test result:
|pos_result)[<div class="alert">
* Sample is contaminated with particulates and should be treated for turbidity.</div>]
|neg_result)[<div class="report">
* Sample is clear. It does not need to be treated for turbidity.</div>]</div>
|turbidity_result)[
(show:(hooks-named:$turResult))]]
}
<div class='infobox'><i class="bi bi-exclamation-circle"></i>A recent water quality survey found that the water contains harmful bacteria, most likely introduced from animal waste upstream.</div>
<div class="message alert">You will need to treat for bacteria.</div>
{
(if: $rapidPanel is true)[(show:?rapid_result)]
(if: $nitratesAssay is true)[(show:?nitrates_result)]
(if: $phTest is true)[(show:?pH_result)]
(if: $salinityAssay is true)[(show:?salinity_result)]
(if: $turbidityTest is true)[(show:?turbidity_result)]
}
<h4>Perform more [[assays]] or continue to [[treatment->making decisions]].</h4>
</div>
{|recap)[(text-colour:orange)[You have already tested for salinity. The result was:]]
(if: visits is 1)[(set: $salinityAssay to true)(set: $budget to $budget - $salinityCost)(set: $step to $step+1)(set: $assayPerformed to true)]
(if: visits is 1)[(dialog: bind $salVal, "Ask your teacher for salinity assay supplies and instructions.
Record the salt concentration in your lab notebook in units of parts per million (ppm).
Is the salt content of your sample greater than 100 ppm?","Yes","No")
(if: $salVal is "Yes")[(set: $salResult to "pos_result")]
(else-if: $salVal is "No") [(set: $salResult to "neg_result")]]
|pos_result)[Result: Water is salty. You will need to desalinate.]
|neg_result)[Result: Water is fresh. You do not need to treat for salinity.]
}
(if: $salResult is not 0 AND visits >1)[(show:?recap)]
|result>[(show:(hooks-named:$salResult))]
|info)[Perform more [[assays]] or view your [[assay results]].
] (if: $salResult is not 0)[(show:?info)]{|recap)[(text-colour:orange)[You have already performed the rapid panel. The result was:]]
(if: visits is 1)[(set: $rapidPanel to true)(set: $budget to $budget - $rapidCost)(set: $step to $step+1)(set: $assayPerformed to true)
(set: _promptstring to "Ask your teacher for the rapid panel supplies and instructions.
Make notes in your lab notebook about the levels of iron (mg/L), copper (mg/L), lead(mg/L), nitrates (mg/L), nitrites (mg/L), chlorine (mg/L), and the pH value.
Check all contaminants identified by the rapid panel:")
(dialog: [(print: _promptstring)
(checkbox: bind $metalResult, "Iron >5 mg/L")
(checkbox: bind $metalResult, "Copper >10 mg/L")
(checkbox: bind $metalResult, "Lead >1 mg/L")
(checkbox: bind $nitrateResult, "Nitrates >20 mg/L")
(checkbox: bind $nitriteResult, "Nitrites >1 mg/L")
(checkbox: bind $chlorineResult, "Chlorine >4 mg/L")
(checkbox: bind $pHrapResult, "Out of range pH (below 6 or above 8)")
(checkbox: bind $none, "None of the above")],"Finished")]
|metal)[
* Unsafe levels of heavy metals were detected.]
|nitrites)[
* Unsafe levels of nitrites were detected.]
|nitrates)[
* Unsafe levels of nitrates were detected.]
|chlorine)[
* Unsafe levels of chlorine were detected.]
|pH)[
* pH is outside drinkable range.]
|null)[
* No relevant contaminants were detected by the rapid panel.]
}
(if: $rapidPanel is true AND visits >1)[(show:?recap)]
|result>[{
(if: $metalResult)(show:?metal)
(if:$nitrateResult)(show:?nitrites)
(if: $nitriteResult)(show:?nitrates)
(if: $chlorineResult)(show:?chlorine)
(if: $pHrapResult)(show:?pH)
(if: $none)(show:?null)}]
|info)[Perform more [[assays]] or view your [[assay results]].
] (if: $metalResult is not 0 OR $nitrateResult is not 0 OR $nitriteResult is not 0 OR $pHrapResult is not 0 OR $chlorineResult is not 0 OR $none is not 0)[(show:?info)]
{|recap)[(text-colour:orange)[You have already tested pH. The result was:]]
(if: visits is 1 AND $pHResult is not "fail")[(set: $phTest to true)(set: $budget to $budget - $phCost)(set: $step to $step+1)(set: $assayPerformed to true)
(set: num-type $pHVal to (num: (prompt: [Ask your teacher for pH test supplies and instructions.
Make a note of the resultant pH value in your lab notebook.
What is the pH of the sample? Enter a number.], "", "","Confirm")))]
(if: visits >1 AND $pHResult is "fail")[(set: $budget to $budget - $phCost)
(set: num-type $pHVal to (num: (prompt: [Ask your teacher for pH test supplies and instructions.
Make a note of the resultant pH value in your lab notebook.
What is the pH of the sample? Enter a number.], "", "","Confirm")))]
(if: $pHVal < 6.5 AND $pHVal >= 0)[(set: str-type $pHResult to "acid")]
(else-if: $pHVal > 8.5 AND $pHVal <=14)[(set: str-type $pHResult to "base")]
(else-if: $pHVal >= 6.5 AND $pHVal <= 8.5)[(set: str-type $pHResult to "neutral")]
(else-if: $pHVal<0 OR $pHVal > 14)[(set: str-type $pHResult to "inconclusive")]
|acid)[Result: Sample has a pH of $pHVal. It is too acidic to drink. It will need to be treated for acidity.]
|base)[Result: Sample has a pH of $pHVal. It is too basic to drink. It will need to be treated for basicity.]
|neutral)[Result: Sample has a pH of $pHVal. It is drinkable. It does not need to be treated for acidity.]
|fail)[Something went wrong again. You will need to restart the [[pH test]].]
|inconclusive)[|error>[Something went wrong. Valid pH values are between 0 and 14. Reenter your result.](click:
" Reenter your result")[(set: num-type $pHVal2 to (num: (prompt: [pH determined by test strip:],
"", "","Confirm")))]
(event: when $pHVal2 is not 0)[
(if: $pHVal2 < 6.5 AND $pHVal2 >= 0)[(set: str-type $pHResult2 to "acid")]
(else-if: $pHVal2 > 8.5 AND $pHVal2 <=14)[(set: str-type $pHResult2 to "base")]
(else-if: $pHVal2 >= 6.5 AND $pHVal2 <= 8.5)[(set: str-type $pHResult2 to "neutral")]
(else-if: $pHVal2<0 OR $pHVal2 > 14)[(set: str-type $pHResult2 to "fail")]
(set: $pHVal to $pHVal2)
(set: $pHResult to $pHResult2)
(replace: ?error)[(rerun:?result)]
]]
}
(if: $pHResult is not 0 AND visits >1)[(show:?recap)]
|result>[(show:(hooks-named:$pHResult))]
|info)[Perform more [[assays]] or view your [[assay results]].
] (if: $pHResult is not 0)[(show:?info)]<div class="message">
{|recap)[(text-colour:orange)[You have already tested for nitrates. The result
was:]]
(if: visits is 1)[(set: $nitratesAssay to true)(set: $budget to $budget - $nitratesCost)(set: $step to $step+1)(set: $assayPerformed to true)]
(if: visits is 1)[(dialog: bind $nitVal, "Ask your teacher for the nitrate assay supplies and instructions.
Make a note of the result (value and unit) in your lab notebook.
Is the sample’s nitrate level greater than 20 mg/L?","Yes","No")
(if: $nitVal is "Yes")[(set: $nitResult to "pos_result")]
(else-if: $nitVal is "No") [(set: $nitResult to "neg_result")]]
|pos_result)[Result: Nitrates were detected from fertiliser in farm runoff upstream. It will need to be treated to remove nitrates.]
|neg_result)[Result: No nitrates were detected.]
}
(if: $nitResult is not 0 AND visits >1)[(show:?recap)]
</div>
|result>[(show:(hooks-named:$nitResult))]
|info)[Perform more [[assays]] or view your [[assay results]].
] (if: $nitResult is not 0)[(show:?info)]<div class="ttl">Options for treating bacterial contamination:</div>
(if: $bacterialTreatment is true)[<div class="report">Water has already been treated for bacteria.</div>]
* [[Boiling]], $boilingEP environmental impact points, $$boilingCost
* [[Distillation]], $distillationEP environmental impact points, $$distillationCost
* [[Reverse osmosis]], $reverseosmosisEP environmental impact points, $$reverseosmosisCost
* [[Chlorination]], $chlorinationEP environmental impact points, $$chlorinationCost
* [[Bottled drinking water]], $bottleEP environmental impact points, $$bottleCost
<div class="message hint">Click on a treatment type to learn more about the method and what kind of contaminants it can effectively remove. On the treatment description page you will be prompted to confirm purchase of the treatment.</div>
Return to [[treatment]] options.
<div class="ttl">Options for desalinating water:</div>
(if: $salinityTreatment is true)[<div class="report">Water has already been desalinated.</div>]
* [[Distillation]], $distillationEP environmental impact points, $$distillationCost
* [[Reverse osmosis]], $reverseosmosisEP environmental impact points, $$reverseosmosisCost
* [[Bottled drinking water]], $bottleEP environmental impact points, $$bottleCost
<div class="message hint">Click on a treatment type to learn more about the method and what kind of contaminants it can effectively remove. On the treatment description page you will be prompted to confirm purchase of the treatment.</div>
Return to [[treatment]] options.
<div class="ttl">Options for treating water contaminated by nitrates:>
(if: $nitratesTreatment is true)[<div class="report">Water has already been treated for nitrates.</div>]
* [[Distillation]], $distillationEP environmental impact points, $$distillationCost
* [[Ion-exchange]], $ionexchangeEP environmental impact points, $$ionexchangeCost
* [[Reverse osmosis]], $reverseosmosisEP environmental impact points, $$reverseosmosisCost
* [[Bottled drinking water]], $bottleEP environmental impact points, $$bottleCost
<div class="message hint">Click on a treatment type to learn more about the method and what kind of contaminants it can effectively remove. On the treatment description page you will be prompted to confirm purchase of the treatment.</div>
Return to [[treatment]] options.
<div class="ttl">Options for treating water that is cloudy due to materials such as sand, clay, algae, oils, dirt, or bacteria:</div>
<img class="thumb" src="https://i.ytimg.com/vi/LJgbMHeTWIo/mqdefault.jpg"/>
<i class="bi bi-play-circle pr-1"></i>[[Engineer's Briefing (filtering)-> particulateVid]]
(if: $particulateTreatment is true)[<div class="message report">Water has been treated for particulates</div>]
* [[Paper filter]], $paperfilterEP environmental impact points, $$paperfilterCost
* [[Fine filter]], $finefilterEP environmental impact points, $$finefilterCost
* [[Flocculation]], $flocculationEP environmental impact points, $$flocculationCost
* [[Distillation]], $distillationEP environmental impact points, $$distillationCost
* [[Ion-exchange]], $ionexchangeEP environmental impact points, $$ionexchangeCost
* [[Reverse osmosis]], $reverseosmosisEP environmental impact points, $$reverseosmosisCost
* [[Bottled drinking water]], $bottleEP environmental impact points, $$bottleCost
<div class="message hint">Click on a treatment type to learn more about the method and what kind of contaminants it can effectively remove. On the treatment description page you will be prompted to confirm purchase of the treatment.</div>
Return to [[treatment]] options.
<div class="ttl">Options for treating water with an unbalanced pH:</div>
<img class="thumb" src="https://i.ytimg.com/vi/FLn-_z9aYIg/mqdefault.jpg"/>
<i class="bi bi-play-circle pr-1"></i>[[Engineer's Briefing-> pHVid]]
(if: $acidityTreatment is true)[<div class="report">Water has already been treated for acidity.</div>]
* [[pH-raising tablet]], $pHEP environmental impact points, $$pHCost
* [[pH-lowering tablet]], $pHEP environmental impact points, $$pHCost
* [[Ion-exchange]], $ionexchangeEP environmental impact points, $$ionexchangeCost
* [[Bottled drinking water]], $bottleEP environmental impact points, $$bottleCost
<div class="message hint">Click on a treatment type to learn more about the method and what kind of contaminants it can effectively remove. On the treatment description page you will be prompted to confirm purchase of the treatment.</div>
Return to [[treatment]] options.
{|recap)[(text-colour:orange)[You have already tested for turbidity. The result was:]]
(if: visits is 1)[(set: $turbidityTest to true)(set: $budget to $budget - $turbidityCost)(set: $step to $step+1)(set: $assayPerformed to true)]
(if: visits is 1)[(dialog: bind $turVal, "Ask your teacher for turbidity test instructions.
Make a note in your lab notebook of the turbidity value you assign the sample.","0-3 (transparent)","4-7 (cloudy)", "8-10 (opaque)")
(if: $turVal is "4-7 (cloudy)" OR "8-10 (opaque)")[(set: $turResult to "pos_result")]
(else-if: $turVal is "0-3 (transparent)") [(set: $turResult to "neg_result")]]
|pos_result)[Result: Sample is contaminated with particulates and should be treated for turbidity.]
|neg_result)[Result: Sample is clear. It does not need to be treated for turbidity.]
}
(if: $turResult is not 0 AND visits >1)[(show:?recap)]
|result>[(show:(hooks-named:$turResult))]
|info)[Perform more [[assays]] or view your [[assay results]].
] (if: $turResult is not 0)[(show:?info)]{
(if: visits >1 AND $boiled is true)[<div class="report">Water has already been boiled.</div>]
}
<div class="ttl">Boiling</div>
<img class="thumb" src="https://i.ytimg.com/vi/xVMxwXsG_7s/mqdefault.jpg"/>
<i class="bi bi-play-circle pr-1"></i>[[Engineer's Briefing-> boilingVid]]
|about)[Boiling is a technique commonly used to kill bacteria, viruses, and pathogens around the world. It is only effective if the water has been boiling for 20 minutes. As a result, this method has a somewhat high environmental impact score due to the energy required to heat the water.](link: "Boiling is a technique commonly used...")[(show:?about)]
<h4>Do you want to treat your sample by boiling?</h4><span>It will cost $$boilingCost and have a $boilingEP environmental impact.</span>
Yes (click: "Yes")[(set: $budget to $budget - $boilingCost)(set: $enviroPoints to $enviroPoints + $boilingEP)(set: $step to $step+1)(replace: ?opt-out)[](set: $boiling to true)(set: $bacterialTreatment to true)(set: $boiled to true)[<div class="hint">Ask your teacher for boiling supplies and instructions. Make a note of the treatment in your lab notebook. </div>
Return to [[treatment]] types.]]
|opt-out>[(link-replace: "No")[Return to [[treatment]] types.]]
[]<result|
<div class="p-1 infobox message no-border hint"><i class="hint bi bi-info-circle pr-1"></i>Boiling treats for pathogens, including bacterial contaminants.</div>
{
(if: visits >1 AND $chlorinated is true)[<div class="report">Water has already been chlorinated.</div>]
}
<div class="ttl">Chlorination</div>
<img class="thumb" src="https://i.ytimg.com/vi/uviyYPA-DzI/mqdefault.jpg"/>
<i class="bi bi-play-circle pr-1"></i>[[Engineer's Briefing-> ClVid]]
|about)[Chlorination is a common water treatment process used throughout the world. This chemical disinfection technique involves adding a chlorine-based product to water, which kills harmful viruses and bacteria. Drinking water with small amounts of chlorine does not cause harmful health effects and is a relatively cost-effective and environmentally-friendly way to protect against waterborne diseases.](link: "Chlorination is a common water treatment process...")[(show:?about)]
<div class="message"> Chlorination treats for pathogens, including bacterial contaminants. Chlorination also prevents bacteria from growing after the water leaves the treatment facility.</div>
<h4>Do you want to treat your sample by chlorinating?</h4><span>It will cost $$chlorinationCost and have a $chlorinationEP environmental impact.</span>
(link:"Click here for a hint")[<div class="hint">If you chlorinate the water after all other treatments have been completed, it will ensure that no bacteria grow in the sample between leaving the facility and being delivered to the community.</div>]
Yes (click: "Yes")[(set: $budget to $budget - $chlorinationCost)(set: $enviroPoints to $enviroPoints + $chlorinationEP)(set: $step to $step+1)(replace: ?opt-out)[](set: $chlorination to true)(set: $bacterialTreatment to true)(set: $chlorinated to true)(replace: ?result)[<div class="hint">Get a chlorination supplies and instructions from your teacher. Be sure to follow lab safety instructions during this treatment. Make note of the treatment in your lab notebook.</div>
Return to [[treatment]] types.]]
|opt-out>[(link-replace: "No")[Return to [[treatment]] types.]]
[]<result|
<div class="ttl">Reverse Osmosis</div>
<img class="thumb" src="https://i.ytimg.com/vi/l6rDISk1BFE/mqdefault.jpg"/>
<i class="bi bi-play-circle pr-1"></i>[[Engineer's Briefing-> revOVid]]
|about)[Reverse osmosis uses a semipermeable membrane with very small pores that trap contaminants as water is pushed through.
<img class="diag" src="images/reverse_osmosis_image_of_filter.png">
Reverse osmosis systems often begin with a filtration step, followed by multiple membranes to clean the water. Reverse osmosis is a complex and costly system, but has a somewhat low environmental impact score.
<img class="diag" src="images/reverse_osmosis.png">](link: "Reverse osmosis uses a semipermeable...")[(show:?about)]
<div class="message">Reverse osmosis is able to remove sediments, salt, nitrates, iron, bacteria, viruses, and parasites.</div>
<h3>The cost of installing a reverse osmosis system includes:</h3>
* significant and reliable power source
* long piping to distribute waste brine offshore
* chemical supplies to clean used membranes
* training of engineers responsible for the system
<div class="alert">Unfortunately, the cost of this system exceeds your budget. Go back to [[treatment]] options to select a different solution.</div><div class="ttl">Distillation</div>
<img class="thumb" src="https://i.ytimg.com/vi/XJfrSh0Y_po/mqdefault.jpg"/>
<i class="bi bi-play-circle pr-1"></i>[[Watch Engineer's Briefing & Demo-> distVid]]
|about)[Distillation relies on evaporation to purify water. Contaminated water is heated to form steam, then the steam cools and is captured as purified water. This process effectively removes bacteria, viruses, parasites, salt, heavy metals, nitrates, and sediments. Distillation is a somewhat complex and costly system and has a high environmental impact score due to the heat that is required for evaporation.
<img class="diag" src="images/distillation.png">](link:"Distillation relies on evaporation...")[(show:?about)]
<div class="message"> Distillation treats for pathogens (including bacterial contaminations), desalinates, removes turbidity caused by particulates, and eliminates heavy metals and nitrates. </div>
<h4>Do you want to treat your sample with distillation?</h4><span>It will cost $$distillationCost and have a $distillationEP environmental impact.</span>
Yes (click: "Yes")[(set: $budget to $budget - $distillationCost)(set: $enviroPoints to $enviroPoints + $distillationEP)(set: $step to $step+1)(replace: ?opt-out)[](set: $distillation to true)(set: $particulateTreatment to true)(set: $nitratesTreatment to true)(set: $salinityTreatment to true)(set: $metalsTreatment to true)(set: $bacterialTreatment to true)[<div class="hint">Ask your teacher for distillation supplies and instructions. Make a note of this treatment in your lab notebook.</div>
Return to [[treatment]] types.]]
|opt-out>[(link-replace: "No")[Return to [[treatment]] types.]]
[]<result|
<div class="ttl">pH Treatment: (text-style:"underline")[Raising]</div>
|about)[The optimal pH for drinking water is in the range of 6.5-8.5. Water with a pH above or below this range is not considered safe. To change the pH, droplets can be added to the water which causes a chemical reaction. Droplets have a very low environmental impact score.
<img class="diag" src="images/pH_image.png">](link:"The optimal pH for drinking water is...")[(show:?about)]
<div class="message">This reaction raises the pH of the water sample. </div>
<h4>Do you want to treat your sample with pH-(text-style:"underline")[raising] droplets?</h4><span>It will cost $$pHCost and have a $pHEP environmental impact.</span>
Yes (click: "Yes")[(set: $budget to $budget - $pHCost)(set: $enviroPoints to $enviroPoints + $pHEP)(set: $step to $step+1)(replace: ?opt-out)[](set: $acidityTreatment to true)(replace: ?result)[<div class="hint">Get a pH increaser supplies and instructions from your teacher. Be sure to follow lab safety instructions during this step. After treatment, you must [[test the sample’s pH again]]. Make a note about this treatment in your lab notebook.</div>]]
|opt-out>[(link-replace: "No")[Return to [[treatment]] types.]]
[]<result|
<div class="ttl">pH Treatment: (text-style:"underline")[Lowering]</div>
|about)[The optimal pH for drinking water is in the range of 6.5-8.5. Water with a pH above or below this range is not considered safe. To change the pH, droplets can be added to the water which causes a chemical reaction. Droplets have a very low environmental impact score.
<img class="diag" src="images/pH_image.png">](link: "The optimal pH for drinking water is...")[(show:?about)]
<div class="message">This reaction results in an optimal pH for water. </div>
<h4>Do you want to treat your sample with pH-(text-style:"underline")[lowering] droplets?</h4><span>It will cost $$pHCost and have a $pHEP environmental impact.</span>
Yes (click: "Yes")[(set: $budget to $budget - $pHCost)(set: $enviroPoints to $enviroPoints + $pHEP)(set: $step to $step+1)(replace: ?opt-out)[](set: $basicityTreatment to true)(replace: ?result)[<div class="hint">Get a pH decreaser supplies and instructions from your teacher. Be sure to follow lab safety instructions during this step. After treatment, you must [[test the sample’s pH again]]. Make a note about this treatment in your lab notebook.</div>]]
|opt-out>[(link-replace: "No")[Return to [[treatment]] types.]]
[]<result|
<div class="ttl">Filtration: paper</div>
|about)[This technique relies on gravity and filter paper to separate substances from one another. Ultimately, differences in particle size will determine the result of the filtration. Paper filters, such as a coffee filter, have a pore size of 10-20 microns and will separate most sediments from water. Paper filters have a low environmental impact score.
<img class="diag" src="images/filtration_diagram.png">](link:"This technique relies on gravity")[(show:?about)]
<div class="message">Filtration treats for turbidity by capturing large particles in the filter and letting the water pass through. </div>
<h4>Do you want to filter your sample with a paper filter?</h4><span>It will cost $$paperfilterCost and have a $paperfilterEP environmental impact.</span>
Yes (click: "Yes")[(set: $budget to $budget - $paperfilterCost)(set: $enviroPoints to $enviroPoints + $paperfilterEP)(set: $step to $step+1)(replace: ?opt-out)[](set: $particulateTreatment to true)(set: $paperFilter to true)(replace: ?result)[<div class="hint">Get paper filteration supplies and instructions from your teacher and perform the filtration. Make note of the treatment in your lab notebook.</div>
Return to [[treatment]] types.]]
|opt-out>[(link-replace: "No")[Return to [[treatment]] types.]]
[]<result|
<div class="ttl">Filtration: fine mesh</div>
|about)[This technique relies on gravity and filter paper to separate substances from one another. Ultimately, differences in particle size will determine the result of the filtration. Fine filters have a pore size of 5 microns and will separate nearly all sediments and animals from water, but they have a slightly higher environmental impact score than a paper filter.](link:"This technique relies on gravity...")[(show:?about)]
<div class="message"> Filtration treats for turbidity by capturing large particles in the filter and letting the water pass through.</div>
<h4>Do you want to filter your sample with a fine filter?</h4><span>It will cost $$finefilterCost and have a $finefilterEP environmental impact.</span>
Yes (click: "Yes")[(set: $budget to $budget - $finefilterCost)(set: $enviroPoints to $enviroPoints + $finefilterEP)(set: $step to $step+1)(replace: ?opt-out)[](set: $particulateTreatment to true)(set: $fineFilter to true)(replace: ?result)[<div class="hint">Get fine filteration supplies and instructions from your teacher and perform the filtration. Make a note of the treatment in your lab notebook.</div>
Return to [[treatment]] types.]]
|opt-out>[(link-replace: "No")[Return to [[treatment]] types.]]
[]<result|
{(set: $Player1 to(prompt: [<span class="ttl">The Analytical Chemist</span>
<span class="def">Analytical chemistry is the science of obtaining and communicating information about the composition of a sample. </span>
''The analytical chemist on our team is named:''
], "Player 1", "","Confirm"))
(set: $Player2 to (prompt: [<span class="ttl">The Chemical & Process Engineer</span>
<span class="def">Chemical and process engineering is about turning raw materials into products that can be useful to people.</span>
''The chemical and process engineer on our team is named:''
], "Player 2", "","Confirm"))
(set: $Player3 to (prompt: [<span class="ttl">The Project Manager</span>
<span class="def">Project management is about leading a team to achieve project goals within the given constraints.</span>
''The project manager on our team is named:''
], "Player 3", "","Confirm"))
}<div class="water-info-container welcome-team-txt-cont">[<div class='ttl'>Welcome to the Water Treatment Team, $Player1, $Player2, and $Player3! </div>
Everyone is excited for you to improve water quality for the community!<br><br>But don't forget–[[you each have different goals!->reminder]]](Welcome|
(if: $Player3 is not 0)(show: ?Welcome)
</div>
(set: $waterSource to "unset")<img class="img-strip" src="images/aquifer.png"/><div class="water-src">
### Coastal Aquifer Sample
This sample was taken from a coastal aquifer. Communities in Tuvalu, Republic of Marshall Islands, Kiribati, Niue, Tonga, Fiji, and Samoa rely on coastal aquifers for their water supply needs.
</div>
<img class="img-strip" src="images/river.png"/><div class="water-src">
### River Sample
This sample was taken from the Kolo River, a freshwater river in the western-central part of Marovo Lagoon in New Georgia, Solomon Islands. Local communities rely on the river for their freshwater needs and depend on the lagoon for fishing and marine gathering. Communities in Cook Islands, Papua New Guinea, and Samoa also rely on surface water for their freshwater needs.</div>
<img class="img-strip" src="images/rain.png"/><div class="water-src">
### Rainwater Catchment Sample
This sample was taken from a local rainwater catchment system. Communities in the Federated States of Micronesia, Vanuatu, Nauru, Tonga, Fiji, Tokelau, and Republic of Palau rely on rainwater catchment for their water supply needs.</div>
<h3>Which drinking water source have you been assigned?</h3><ul><li>[[Coastal Aquifer]]</li><li>[[River Water]]</li><li>[[Rainfall Catchment]]</li>
<div class="infobox"><i class="bi bi-exclamation-circle"></i>Your team's job is to treat the water so that it can be used by community members. </div>
<div class="message"><b>Remember:</b>
$Player1, your priority is to ensure the water is clean.
$Player2, you must minimise your team's environmental impact.
$Player3, don't forget about the budget! Your team has been trusted with funds to complete this project, and leftover money can be allocated to other uses in the community. </div>
[[But first...->safety]]{
(if: visits >1 AND $flocculated is true)[<div class="report">Water has already been flocculated.</div>]
}
<div class="ttl">Flocculation</div>
<img class="thumb" src="https://i.ytimg.com/vi/VykBgWSl8fE/mqdefault.jpg"/>
<i class="bi bi-play-circle pr-1"></i>[[Engineer's Briefing-> floccVid]]
|about)[This technique is a chemical process where a coagulant (substance that causes particles to bind together) is added to water, increasing bonds between particles. This creates larger particles (called flocs) that are then easier to separate, typically with filtration afterwards. Flocculation has a somewhat low environmental impact score.
<img class="diag" src="images/flocculation_diagram.png">](link:"This technique is a chemical process...")[(show:?about)]
<div class="message">Flocculation treats for turbidity by causing contaminants to clump together so they can later be filtered out.</div>
<h4>Do you want to treat your sample by flocculating?</h4><span>It will cost $$flocculationCost and have a $flocculationEP environmental impact.</span>
Yes (click: "Yes")[(set: $budget to $budget - $flocculationCost)(set: $enviroPoints to $enviroPoints + $flocculationEP)(set: $step to $step+1)(replace: ?opt-out)[](set: $flocculation to true)(set: $particulateTreatment to true)(set: $flocculated to true)(replace: ?result)[<div class="hint">Get flocculation supplies and instructions from your teacher. Make a note of the treatment in your lab notebook.</div>
(link:"Click here for a hint")[<div class="hint">It's a good idea to filter your sample after it has been flocculated.</div>]
Return to [[treatment]] types.]]
|opt-out>[(link-replace: "No")[Return to [[treatment]] types.]]
[]<result|
{(set: $purchaseString to "<div class='hint'>Purchased bottled water.</div>")}
<div class="ttl">[Bottled Drinking Water]</div>
|about)[Bottled water is a relatively cheap way to provide contaminant-free water to communities but this method can be severely impacted by supply chain issues, such as delays in delivery. Additionally, relying on bottled water poses environmental threats and thus has a high environmental impact score.](link:"Bottled water is a relatively cheap...")[(show:?about)]
<h4>Do you want to purchase bottled water?</h4><span>It will cost $$bottleCost and have a $bottleEP environmental impact.</span>
Yes, purchase bottled water (click: "Yes, purchase bottled water")[(set: $budget to $budget - $bottleCost)(set: $enviroPoints to $enviroPoints + $bottleEP)(replace: ?opt-out)[]
(after: time+1s)[(print: $purchaseString)]
(after: time+3s)[(set: $budget to $budget - $bottleCost)(set: $enviroPoints to $enviroPoints + $bottleEP)[= <div class="report">Purchased more bottled water.</div>]
(after: time+5s)[(set: $budget to $budget - $bottleCost)(set: $enviroPoints to
$enviroPoints + $bottleEP)[= <div class="report">Ran out of water, purchased more bottled water again.</div>]
(after: time+7s)[(set: $budget to $budget - $bottleCost)(set: $enviroPoints to $enviroPoints + $bottleEP) [= <div class="alert">Needed more water, purchased bottled water again.</div>]
(after: time+9s)[(set: $budget to $budget - $bottleCost)(set: $enviroPoints to $enviroPoints + $bottleEP) [= <div class="alert">Ran out of water again, purchased bottled water.</div>]
(after: time+10s)[= <div class="alert">You're completely out of money! You will have to start over. :(</div> (click: "start over")[ (go-to: "your job" )]
]
|opt-out>[(link-replace: "No, do not purchase bottled water")[Return to [[treatment]] types.]]
<div class="ttl">Options for treating water with heavy metals such as iron, copper, or lead:</div>
(if: $metalsTreatment is true)[<div class="report">Water has already been treated for heavy metals.</div>]
* [[Distillation]], $distillationEP environmental impact points, $$distillationCost
* [[Ion-exchange]], $ionexchangeEP environmental impact points, $$ionexchangeCost
* [[Reverse osmosis]], $reverseosmosisEP environmental impact points, $$reverseosmosisCost
* [[Bottled drinking water]], $bottleEP environmental impact points, $$bottleCost
<div class="message hint">Click on a treatment type to learn more about the method and what kind of contaminants it can effectively remove. On the treatment description page you will be prompted to confirm purchase of the treatment.</div>
Return to [[treatment]] options.
Great! Each treatment you completed came with a free [[post-treatment assay]] to ensure the treatment was successful.
{
(if: visits is 1)[(set:$postrapidPanel to true)
(set: _promptstring to "Check all contaminants identified by the rapid panel.")
(dialog: [(print: _promptstring)
(checkbox: bind $nitrateResult, "Nitrates")
(checkbox: bind $metalResult, "Iron")
(checkbox: bind $salrapResult, "Sodium Chloride")
(checkbox: bind $pHrapResult, "Out of range pH")
(checkbox: bind $none, "None of the above")],"Finished")]
|nitrates)[Nitrates were detected.]
|metals)[Heavy metals were detected.]
|salt)[Salt was detected.]
|pH)[pH is outside drinkable range.]
|null)[No relevant contaminants were detected.]
}
Post-treatment rapid panel results:
|result>[{(if: $nitrateResult)(show:?nitrates)
(if: $metalResult)(show:?metals)
(if: $salrapResult)(show:?salt)
(if: $pHrapResult)(show:?pH)
(if: $none)(show:?null)}]
|info)[Perform another [[post-treatment assay]] or view your [[post-treatment assay results]].
] (if: $nitrateResult is not 0 OR $metalResult is not 0 OR $salrapResult is not 0 OR $pHrapResult is not 0 OR
$none is not 0)[(show:?info)]
{
(if: visits is 1)[(set: $postturbidityTest to true)(set: $step to $step+1)
(dialog: bind $turVal, "Ask your teacher for turbidity test instructions.
Make a note in your lab notebook of the turbidity value you assign the sample.","0-3 (transparent)","4-7 (cloudy)", "8-10 (opaque)")
(if: $turVal is "4-7 (cloudy)" OR "8-10 (opaque)")[(set: $turResult to
"pos_result")]
(else-if: $turVal is "0-3 (transparent)") [(set: $turResult to "neg_result")]]
|pos_result)[Result: Sample is contaminated with particulates and should be treated for turbidity.]
|neg_result)[Result: Sample is clear. It does not need to be treated for turbidity.]
}
|result>[(show:(hooks-named:$turResult))]
|info)[Perform another [[post-treatment assay]] or view your [[post-treatment assay results]].
] (if: $turResult is not 0)[(show:?info)]{(if: visits is 1 AND $pHResult is not "fail")[(set:
$postphTest to true)(set: $pHVal to -1000)(set: $step to $step+1)
(set: num-type $pHVal to (num: (prompt: [Ask your teacher for pH test supplies and instructions.
Make a note of the resultant pH value in your lab notebook.
What is the pH of the sample? Enter a number.], "", "","Confirm")))]
(if: visits >1 AND $pHResult is "fail")[
(set: num-type $pHVal to (num: (prompt: [Ask your teacher for pH test supplies and instructions.
Make a note of the resultant pH value in your lab notebook.
What is the pH of the sample? Enter a number.], "", "","Confirm")))]
(if: $pHVal < 6.5 AND $pHVal >= 0)[(set: str-type $pHResult to "acid")]
(else-if: $pHVal > 8.5 AND $pHVal <=14)[(set: str-type $pHResult to "base")]
(else-if: $pHVal >= 6.5 AND $pHVal <= 8.5)[(set: str-type $pHResult to "neutral")]
(else-if: $pHVal<0 OR $pHVal > 14)[(set: str-type $pHResult to "inconclusive")]
|acid)[Result: Sample has a pH of $pHVal. It is too acidic to drink. It will need to be treated for acidity.]
|base)[Result: Sample has a pH of $pHVal. It is too basic to drink. It will need to be treated for basicity.]
|neutral)[Result: Sample has a pH of $pHVal. It is drinkable. It does not need to be treated for acidity.]
|fail)[Something went wrong again. You will need to restart the [[Post-treatment pH test]] .]
|inconclusive)[|error>[Something went wrong. Valid pH values are between 0 and 14. Reenter your result.](click:
" Reenter your result")[(set: num-type $pHVal2 to (num: (prompt: [pH determined by test strip:],
"", "","Confirm")))]
(event: when $pHVal2 is not 0)[
(if: $pHVal2 < 6.5 AND $pHVal2 >= 0)[(set: str-type $pHResult2 to "acid")]
(else-if: $pHVal2 > 8.5 AND $pHVal2 <=14)[(set: str-type $pHResult2 to "base")]
(else-if: $pHVal2 >= 6.5 AND $pHVal2 <= 8.5)[(set: str-type $pHResult2 to "neutral")]
(else-if: $pHVal2<0 OR $pHVal2 > 14)[(set: str-type $pHResult2 to "fail")]
(set: $pHVal to $pHVal2)
(set: $pHResult to $pHResult2)
(replace: ?error)[(rerun:?result)]
]]
}
|result>[(show:(hooks-named:$pHResult))]
|info)[Perform another [[post-treatment assay]] or view your [[post-treatment assay results]].
] (if: $pHResult is not 0)[(show:?info)]{
(if: visits is 1)[(set: $postsalinityAssay to true)(set: $step to $step+1)
(dialog: bind $salVal, "Ask your teacher for salinity assay supplies and instructions.
Record the salt concentration in your lab notebook in units of parts per million (ppm).
Is the salt content of your sample greater than 100 ppm?","Yes","No")
(if: $salVal is "Yes")[(set: $salResult to "pos_result")]
(else-if: $salVal is "No") [(set: $salResult to "neg_result")]]
|pos_result)[Result: Water is salty. You will need to desalinate.]
|neg_result)[Result: Water is fresh. You do not need to treat for salinity.]
}
|result>[(show:(hooks-named:$salResult))]
|info)[Perform another [[post-treatment assay]] or view your [[post-treatment assay results]].
] (if: $salResult is not 0)[(show:?info)]{
(if: visits is 1)[(set:$postnitratesAssay to true)(set: $step to $step+1)
(dialog: bind $nitVal, "Ask your teacher for the nitrate assay supplies and instructions.
Make a note of the result (value and unit) in your lab notebook.
Is the sample’s nitrate level greater than 20 mg/L?","Yes","No")
(if: $nitVal is "Yes")[(set: $nitResult to "pos_result")]
(else-if: $nitVal is "No") [(set: $nitResult to "neg_result")]]
|pos_result)[Result: Nitrates were detected from fertiliser in farm runoff upstream. It will need to be treated to remove nitrates.]
|neg_result)[Result: No nitrates were detected.]
}
|result>[(show:(hooks-named:$nitResult))]
|info)[Perform another [[post-treatment assay]] or view your [[post-treatment assay results]].
] (if: $nitResult is not 0)[(show:?info)]{(set: $postbacteriaTest to true)}
Result: The lab you sent your sample to reported no bacterial contamination.
Perform another [[post-treatment assay]] or view your [[post-treatment assay results]].<div class="ttl">Treatments may have to be repeated if the contaminant was not efficiently removed the first time.</div>
<div class="message"> Reminder, you performed these assays:
{
(if: $rapidPanel is true)[
* Rapid Panel]
(if: $nitratesAssay is true)[
* Nitrates Assay]
(if: $phTest is true)[
* pH Test]
(if: $salinityAssay is true)[
* Salinity Assay]
(if: $turbidityTest is true)[
* Turbidity Test]
}
and applied these treatments:
{
(if: $basicityTreatment is true)[
* pH-lowering tablet]
(if: $acidityTreatment is true)[
* pH-raising tablet]
(if: $paperFilter is true)[
* Paper filtration]
(if: $fineFilter is true)[
* Fine mesh filtration]
(if: $reverseOsmosis is true)[
* Reverse Osmosis]
(if: $distillation is true)[
* Distillation]
(if: $ionexchange is true)[
* Ion Exchange]
(if: $boiling is true)[
* Boiling]
(if: $chlorination is true)[
* Chlorination]
(if: $flocculation is true)[
* Flocculation]
}</div>
<h3> Choose post-treatment assays to perform:</h3>
{
(if: $bacterialTreatment is false AND $nitratesTreatment is false AND $salinityTreatment is false AND $acidityTreatment is false AND $particulateTreatment is false AND $metalsTreatment is false)[<div class="message report">You didn't do any treatments, so you don't have any free post-treatment assays! Maybe you should [[perform a treatment->treatment]].</div>]
(if: $bacterialTreatment is true)[
* [[Post-treatment bacterial assay]] ]
(if: $nitratesTreatment is true)[
* [[Post-treatment nitrates assay]]]
(if: $salinityTreatment is true)[
* [[Post-treatment salinity test]]]
(if: $acidityTreatment is true)[
* [[Post-treatment pH test]]]
(if: $particulateTreatment is true)[
* [[Post-treatment turbidity test]]]
(if: $metalsTreatment is true)[
* [[Post-treatment rapid panel (for heavy metal detection)]] ]
}
View [[post-treatment assay results]].{
(if: $postbacteriaTest is true)[
|bacteria_result)[<div class="report">No bacteria were detected.</div>]]
(if: $postnitratesAssay is true)[
|pos_result)[<div class="alert">Nitrates were detected from fertiliser in farm runoff upstream. It will need to be treated to remove nitrates.</div>]
|neg_result)[<div class="report">No nitrates were detected.</div>]
|nitrates_result)[(show:(hooks-named:$nitResult))]]
(if: $postphTest is true)[
|acid)[<div class="alert">Sample has a pH of $pHVal. It is too acidic to drink. It will need to be treated for acidity.</div>]
|base)[<div class="alert">Sample has a pH of $pHVal. It is too basic to drink. It will need to be treated for basicity.</div>]
|neutral)[<div class="report">Sample has a pH of $pHVal. It is drinkable. It does not need to be treated for acidity.</div>]
|pH_result)[(show:(hooks-named:$pHResult))]]
(if: $postsalinityAssay is true)[
|pos_result)[<div class="alert">Water is salty. You will need to desalinate.</div>]
|neg_result)[<div class="report">Water is fresh. You do not need to treat for salinity.]
|salinity_result)[(show:(hooks-named:$salResult))]]
(if: $postturbidityTest is true)[
|pos_result)[<div class="alert">Sample is contaminated with particulates and should be treated for turbidity.</div>]
|neg_result)[<div class="report">Sample is clear. It does not need to be treated for turbidity.</div>]
|turbidity_result)[(show:(hooks-named:$turResult))]]
}
{
(if: $postbacteriaTest is true)[(show:?bacteria_result)]
(if: $postnitratesAssay is true)[(show:?nitrates_result)]
(if: $postphTest is true)[(show:?pH_result)]
(if: $postsalinityAssay is true)[(show:?salinity_result)]
(if: $postturbidityTest is true)[(show:?turbidity_result)]
}
<h4>Perform another [[post-treatment assay]], choose a [[treatment]], or continue to [[final report]].</h4>
Generating your final report(after: time+1.5s)[.](after: time+3s)[.](after: time+4.5s)[.]
(after: time+7s)[ View your [[results]] ]<div class="message hint">Everyone loves to use the new sports complex, and there's been talk of starting a local professional team.</div><span>When other teams visit the complex, it brings visitors and excitement to the community.</span>
{(if: $enviroPoints <-15)[But your treatments also had a significant impact on the environment, and will likely contribute to degradation of the local ecosystem.]}
[[The End]]{(set: $enviroPoints to $enviroPoints + 12)}
<div class="message hint">By installing solar panels on the water treatment facility, you were able to offset a large percentage of the energy necessary to treat the water!</div>
{(if: $enviroPoints <-15)[Your treatments still had a significant impact on the environment though, and will likely contribute to degradation of the local ecosystem.]}
[[The End]]## Your story begins
<div class="slide-container rounded-box">A local water authority council has hired your team to investigate a sample of contaminated water.
|1)[You must find an ''optimised'' (most effective) way to deliver clean water to your community.
Your team |2)[consists of three people, each with different roles and motivations. You must find a way to work together to identify and remove all contaminants from the public's drinking water.
Read about your [[roles]].](link:"consists of...")[(show:?2)]](link:"You must...")[(show:?1)]
</div>
{(if: visits is 1)[(set: $newpHResult to "")(set: $newpHVal to -1000)]
(if: visits >1)[(set: $newpHResult to "")(set: $newpHVal to -1000)]}
The optimal pH for drinking water is in the range of 6.5-8.5. Water with a pH above or below this range is not considered safe. To change the pH, tablets can be added to the water which causes a chemical reaction. This reaction results in an optimal pH for water. However, pH can be very sensitive, and attempts to raise or lower pH could easily overshoot the optimal drinking water range.
<div class="message">After you've used a pH tablet, you may perform a free pH test to determine the effect of the pH tablet.</div><div class="hint"> Ask your teacher pH test supplies and instructions. Make a note of the pH value results in your lab notebook.</div>
(link: "Enter result of pH test")[(set: num-type $newpHVal to (num: (prompt:[What is the pH of the sample? Enter a number.], "", "Cancel","Confirm")))]
{(event: when $newpHVal is not -1000)[
(if: $newpHVal < 6.5 AND $newpHVal >= 0)[(set: str-type $newpHResult to "acid")]
(else-if: $newpHVal > 8.5 AND $newpHVal <=14)[(set: str-type $newpHResult to "base")]
(else-if: $newpHVal >= 6.5 AND $newpHVal <= 8.5)[(set: str-type $newpHResult to "neutral")]
(else-if: $newpHVal<0 OR $newpHVal > 14)[(set: str-type $newpHResult to "inconclusive")]
|acid)[<div class="alert">Result: Sample has a pH of $newpHVal. It is too acidic to drink. It will need to be treated for acidity.</div>]
|base)[<div class="alert">Result: Sample has a pH of $newpHVal. It is too basic to drink. It will need to be treated for basicity.</div>]
|neutral)[<div class="report">Result: Sample has a pH of $newpHVal. It is drinkable. It does not need to be treated for acidity.</div>]
|fail)[<div class="alert">Something went wrong again.</div> You will need to (link: "restart")[ [[test the sample’s pH again]]
].]
|inconclusive)[|error>[<div class="alert">Something went wrong. Valid pH values are between 0 and 14.</div> Reenter your result.](click:
" Reenter your result")[(set: num-type $newpHVal2 to (num: (prompt: [pH determined by test strip:],
"", "Cancel","Confirm")))]
(event: when $newpHVal2 is not 0)[
(if: $newpHVal2 < 6.5 AND $newpHVal2 >= 0)[(set: str-type $newpHResult2 to "acid")]
(else-if: $newpHVal2 > 8.5 AND $newpHVal2 <=14)[(set: str-type $newpHResult2 to "base")]
(else-if: $newpHVal2 >= 6.5 AND $newpHVal2 <= 8.5)[(set: str-type $newpHResult2 to "neutral")]
(else-if: $newpHVal2<0 OR $newpHVal2 > 14)[(set: str-type $newpHResult2 to "fail")]
(set: $newpHVal to $newpHVal2)
(set: $newpHResult to $newpHResult2)
(replace: ?error)[(rerun:?result)]
]]]
}(event: when $newpHResult is not "")[(show:(hooks-named:$newpHResult))
If you're happy with your latest pH test result, return to [[treatment]] options.
If your sample's pH is still outside of drinking range, select either a [[pH-lowering tablet]] or [[pH-raising tablet]].]
<h4>You chose the $waterSource to provide water for your community. This source had the following contaminants:</h4>
* Harmful bacteria
{(if: $waterSource is "rainwater")[|result>[
* Heavy metals, such as copper, from catchment pipes
* Low pH, from acid rain.]]
(if: $waterSource is "aquifer")[|result>[
* Salt water, from destabilisation of the freshwater lens.]]
(if: $waterSource is "river")[|result>[
* Silt and other particulates, from turbulent rapids upstream.
* Nitrates, from farm runoff upstream.]]
}
<div class="infobox"><i class="bi bi-exclamation-circle"></i>Check your lab notebook entries to ensure your steps align with this summary!</div>
<h4>You performed the following assays:</h4>
{
(if: $rapidPanel is true)[
* Rapid Panel]
(if: $nitratesAssay is true)[
* Nitrates Assay]
(if: $phTest is true)[
* pH Test]
(if: $salinityAssay is true)[
* Salinity Assay]
(if: $turbidityTest is true)[
* Turbidity Test]
}
<h4>and applied these treatments:</h4>
{
(if: $basicityTreatment is true)[
* pH-lowering tablet]
(if: $acidityTreatment is true)[
* pH-raising tablet]
(if: $paperFilter is true)[
* Paper filtration]
(if: $fineFilter is true)[
* Fine mesh filtration]
(if: $reverseOsmosis is true)[
* Reverse Osmosis]
(if: $distillation is true)[
* Distillation]
(if: $ionexchange is true)[
* Ion Exchange]
(if: $boiling is true)[
* Boiling]
(if: $chlorination is true)[
* Chlorination]
(if: $flocculation is true)[
* Flocculation]
}
{
(if: $budget < 7 AND $budget >= 0)[(set: $endGame to "broke")]
(if: $budget < 0)[(set: $endGame to "debt")]
(if: $budget >=7)[(set: $endGame to "leftover")]
(if: $bacterialTreatment is false)[(set: $endGame to "sick")]
(if: $waterSource is "rainfall catchments" AND $metalsTreatment is false)[(set: $endGame to"sick")]
(if: $waterSource is "rainfall catchments" AND $acidityTreatment is false)[(set: $endGame to
"sick")]
(if: $waterSource is "a coastal aquifer" AND $salinityTreatment is false)[(set: $endGame to
"sick")]
(if: $waterSource is "the river" AND $particulateTreatment is false)[(set: $endGame to
"sick")]
(if: $waterSource is "the river" AND $nitratesTreatment is false)[(set: $endGame to "sick")]
|sick)[Oh no, the water [[wasn't treated properly]].]
|broke)[You don't have much budget leftover, but the water [[was properly treated]].]
|debt)[You went [[over budget]]...]
|leftover)[You have some remaining budget! Now you can [[choose how to spend]] it.]
}
|result>[(show:(hooks-named:$endGame))]<div class="message alert">You didn't remove all of the contaminants from your water supply. A lot of people got sick and ended up in hospital. This caused many people to miss work, and hospital staff were overwhelmed.</div>
{(if: $enviroPoints <-15)[Your treatments also had a significant impact on the environment, and will likely contribute to degradation of the local ecosystem.]}
[[The End]]<div class="message hint">Great job on properly treating the water! Everyone in the community is glad to have safe drinking water.</div>
<div class="message report"> You used most of your budget, so there's not enough leftover to allocate to other community initiatives.</div>
{(if: $enviroPoints <-15)[However your treatments had a significant impact on the environment, and will likely contribute to degradation of the local ecosystem.]}
[[The End]]<div class="message hint">Great job on properly treating your water! The community is glad to have safe drinking water.</div>
<div class="message alert">However, you went over budget. To cover the costs of water treatment, other initiatives for the community lost their funding.</div>
{(if: $enviroPoints <-15)[Your treatments also had a significant impact on the environment, and will likely contribute to degradation of the local ecosystem.]}
[[The End]]<h3>Great job properly treating the water!</h3><span>Everyone in the community is glad to have safe drinking water.</span>
|1)[You also have leftover budget which you can choose to invest in other initiatives for the community!
<h4>How will you choose to allocate the leftover funds?</h4>](link:"You also have leftover budget...")[(show:?1)]
|2)[{
* Upgrade [[infrastructure]] for better water delivery to homes.
* Convert the water treatment facility to [[renewable energy sources]] to reduce the environmental impact of the treatments.
* Build a new [[sports complex]] to be used by community members and host professional teams.
* Invest in [[research on seasonal rainfall]] and the effects of drought.
* Support [[sustainable management of mangroves]].
* Fund the development of a [[coastal adaptation plan]] to address rising sea levels.}](click:"How will you choose to allocate the leftover funds?")[(show:?2)]<div class="message hint">The updated infrastructure makes it way easier for community members to access the clean, treated water!</div>
{(if: $enviroPoints <-15)[Your treatments had a significant impact on the environment, though, and will likely contribute to degradation of the local ecosystem.]}
[[The End]]{(set: $enviroPoints to $enviroPoints + 10)}
<div class="message hint">You chose to invest your excess funds in the Early Action Rainfall Watch: a monthly issued bulletin that monitors and predicts seasonal rainfall.</div><span>Its aim is to prepare communities for the agricultural, hydrological, and socio-economic impacts of drought.<span>
Links to real-world connections: <a href="https://www.met.gov.fj/index.php?page=EARWatch" target="_blank">Fiji</a>, <a href="https://met.gov.ck/early-action-rainfall-watch-ear-watch" target="_blank">Cook Islands</a>, <a href="https://tuvmet.tv/sites/default/files/documents/Tuvalu_EARWAtch_Mar2023%20%281%29.pdf" target="_blank">Tuvalu</a>, <a href="https://www.vmgd.gov.vu/vmgd/index.php/climate/reports-and-summaries/early-action-rainfall-watch" target="_blank">Vanuatu</a>, <a href="http://www.samet.gov.ws/EARWatch/March2019.pdf" target="_blank">Samoa</a>, <a href="https://www.loopnauru.com/nauru-news/nauru-meteorological-service-receives-climate-science-and-early-action-rainfall-watch" target="_blank">Nauru</a>, <a href="https://www.climatecentre.org/464/solomon-islands-early-action-rainfall-workshop/" target="_blank">Solomon Islands</a>, <a href="https://www.sprep.org/news/early-action-rainfall-watch-could-reduce-impacts-of-rainfall-extremes-in-pohnpei" target="_blank">Pohnpei</a>
{(if: $enviroPoints <-15)[But your treatments also had a significant impact on the environment, and will likely contribute to degradation of the local ecosystem.]}
[[The End]]{(set: $enviroPoints to $enviroPoints + 10)}
<div class="message hint">You've used your extra funds to support <a href="https://www.nature.org/en-us/about-us/where-we-work/asia-pacific/asia-and-the-pacific-women-in-conservation/women-guardians-of-the-mangroves/" target="_blank">Mangrove Market Meri</a>: an organisation created by women to manage mangroves sustainably.</div><span>Mangroves trap sediment from land runoff, buffer coastal communities against storm surges, and are breeding and feeding grounds for fish and shellfish.</span>
{(if: $enviroPoints <-15)[But your treatments also had a significant impact on the environment, and will likely contribute to degradation of the local ecosystem.]}
[[The End]]
{(set: $enviroPoints to $enviroPoints + 10)}
<div class="message hint">You allocated the excess budget to fund <a href="https://www.undp.org/blog/notes-tuvalu-leading-way-adapting-sea-level-rise" target="_blank">Long-Term Adaptation Plan</a>: a coastal adaptation plan founded in science to address sea level rise.</div><span>The plan allows nations to identify, plan for and reduce risks from sea level rise and storms driven by climate change.</span>
{(if: $enviroPoints <-15)[But your treatments also had a significant impact on the environment, and will likely contribute to degradation of the local ecosystem.]}
[[The End]]## Thanks for playing the //Pacific H2O Water Lab//.
Play again to choose a different path. (click: "Play again")[(reload:)]
(There are nine possible endings!)
//Credits//
* Stephanie Rapciak: Led the project and developed all curricular materials
* Madelyn Leembruggen: Spearheaded app development and contributed to all curricular materials.
* Matt Wilkins: Directed app creation and UX/UI, and contributed to all curricular materials.
* Matthew Cowan: Created water treatment videos and provided engineering expertise.
* Ashalyna Noa: Served as a Pacific liaison and offered cultural expertise.
* Christina Howat: Developed lab procedures and created lab videos.
* Shallu Verma: Developed lab procedures, created and edited lab videos.
//Acknowledgements//
* Faaosofia Daly: Provided Samoan proverbs and recordings.
* Enya Roughan-Hines: Provided Solomon Islands Pijin proverbs.
* <a href="https://tinousidesign.com/" target="_blank">Tinousi Luamanuvae-Su’a</a>: Created original graphic artwork for each water source.
* Aarati Asundi: Created original graphic diagrams.
* Wensi Fatubun: Created original graphic diagrams.
* Garrick Thorn: Provided engineering expertise.
* Suzanne Passchier: Beta-tested curricular materials and gave feedback.
* James Wright: Beta-tested curricular materials and gave feedback.
* Gabe Torion: Provided technical support for app development.
(append: ?sidebar)[
(if: $Player1 is not 0)[(print: "CHEMIST: $Player1")]
(if: $Player2 is not 0)[(print: "ENGINEER: $Player2")]
(if: $Player3 is not 0)[(print: "MANAGER: $Player3")]]
(append: ?sidebar)[(if: $waterSource is not 0)[(print: "H2O SOURCE: $waterSource")]]
(append: ?sidebar)[(if: $budgetString is not 0)[(meter: bind $budget, 50, "X", "REMAINING: $$budget", (gradient: 25, 0, #B2007C, 1, #31ffa2 ))]]
(append: ?sidebar)[(if: $environmentString is not 0)[(print: "ENVIR. IMPACT:
$enviroPoints")]]
(append: ?sidebar)[(if: $environmentString is not 0)[(print: "STEP #$step")]]
{
(set: num-type $rapidCost to 1)
(set: num-type $nitratesCost to 3)
(set: num-type $phCost to 1)
(set: num-type $salinityCost to 3)
(set: num-type $turbidityCost to 1)
}
{
(set: num-type $pHEP to -1)
(set: num-type $pHCost to 2)
(set: num-type $paperfilterEP to -1)
(set: num-type $paperfilterCost to 2)
(set: num-type $finefilterEP to -2)
(set: num-type $finefilterCost to 5)
(set: num-type $boilingEP to -20)
(set: num-type $boilingCost to 15)
(set: num-type $chlorinationEP to -1)
(set: num-type $chlorinationCost to 4)
(set: num-type $flocculationEP to -3)
(set: num-type $flocculationCost to 4)
(set: num-type $distillationEP to -20)
(set: num-type $distillationCost to 15)
(set: num-type $ionexchangeEP to -3)
(set: num-type $ionexchangeCost to 6)
(set: num-type $reverseosmosisEP to -5)
(set: num-type $reverseosmosisCost to 75)
(set: num-type $bottleEP to -25)
(set: num-type $bottleCost to 12)
}<div class="cover-container"><div class="w-100 warning-banner justify-content-center align-items-center">
<span style="text-align: center" class="d-flex justify-content-center align-items-center">*This app won't display well on this device. Try it on a larger screen.</span></div>
<img class="cover-img" src="images/cover-2.png"/><button class="start-btn"> [[Start->water is life]]</button></div><div class='slide-container wave-bg'><div class='ttl'>Roles:</div>
* Analytical Chemist
* Chemical & Process Engineer
* Project Manager
Learn about [[the roles->Analytical Chemist]]
</div>
<div><img src="images/ocean.png" class='proverb' /><div class=centered-box><div class="proverb-word-container"> <div class="pro_text">"Wata hem laef"</div><div class="pro_trans"><i>"Water is life"</i></div><div class="pro_source">-Solomon Islands Pijin Proverb</div>
<button class="treatments-btn">[[Click To Begin->Intro]]</button>
</div></div><img src="images/ocean.png" class='proverb' /><div class=centered-box><div class="proverb-word-container"><div class="pro_text">"Ota decisions blo iumi ba determinim future blo iumi everiwan"</div><div class="pro_trans">"Choices are the hinges of destiny"</div><div class="pro_source">-Solomon Islands Pijin Proverb</div><button class="treatments-btn">[[Choose treatments->treatment]]</button></div>
</div>
<div class='role-info-slide'><div class='d-flex role-img-container'><div>
<div class='d-flex flex-column role-txt-container'><span class="ttl">The Analytical Chemist</span><span class="def">Analytical chemistry is the science of obtaining and communicating information about the composition of a sample. </span><img class="icon icon-mobile" src='images/Analytical_Chemist_icon.png' /></div>
<span class="def-txt-mobile">Analytical chemistry is the science of obtaining and communicating information about the composition of a sample.</span>
</div>
<div class='desktop-icon-container'><img class="icon icon-desktop" src='images/Analytical_Chemist_icon.png' /></div>
</div>In this investigation, the analytical chemist is responsible for:
* Measuring the quality of the water sample by conducting assays (tests)
* Communicating this information to their team.
[[Next Role->Chemical Engineer]]
</div><div class='role-info-slide'><div class='d-flex role-img-container'><div><div class='d-flex flex-column role-txt-container'><span class="ttl">The Chemical & Process Engineer</span><span class="def">Chemical and process engineering is about turning raw materials into products that can be useful to people. </span><img class="icon icon-mobile" src='images/Chemical_Engineer_icon.png' /></div>
<span class="def-txt-mobile">Chemical and process engineering is about turning raw materials into products that can be useful to people.</span>
</div>
<div class='desktop-icon-container'><img class="icon icon-desktop" src='images/Chemical_Engineer_icon.png' /></div>
</div>The chemical and process engineer is responsible for:
* Deciding which treatment technologies should be used to clean the water sample.
[[Next Role->Project Manager]]
</div><div class='role-info-slide'><div class='d-flex role-img-container'><div><div class='d-flex flex-column role-txt-container'><span class="ttl">The Project Manager</span><span class="def">Project management is about leading a team to achieve project goals within the given constraints. </span><img class="icon icon-mobile" src='images/Project_Manager_icon.png' /></div>
<span class="def-txt-mobile">Project management is about leading a team to achieve project goals within the given constraints.</span>
</div>
<div class='desktop-icon-container'><img class="icon icon-desktop" src='images/Project_Manager_icon.png' /></div>
</div>In this lab, the project manager is responsible for:
* Ensuring that the water treatment process is useful to the local community while paying attention to the budget.
[[Continue->Pick]]
</div>
<div class='slide-container decide-roles-slide'><div class='ttl'>Decide who will take each role: </div>
<div class="rounded-box"><ul class="roles-list">
<li> <div class="icon-container"><img src="images/Analytical_Chemist_icon.png" /></div>Analytical Chemist</li>
<li><div class="icon-container"><img src="images/Chemical_Engineer_icon.png" /></div>Chemical & Process Engineer</li>
<li><div class="icon-container"><img src="images/Project_Manager_icon.png" /></div>Project Manager</li>
</ul></div>
Then enter the names of your [[players]].
</div><img src="images/ocean.png" class='proverb' /><div class=centered-box><div class="proverb-word-container"><div class="pro_text">"O le vai ola"</div><div class="pro_trans">"Water lives / water has life"</div><div class="pro_source">-Samoan Proverb</div>
<button class="treatments-btn">[[Learn about your job->your job]]</button>
</div>
</div><div class="ttl">Ion-Exchange Resin</div>
<img class="thumb" src="https://i.ytimg.com/vi/96mm0-6NExM/mqdefault.jpg"/>
<i class="bi bi-play-circle pr-1"></i>[[Watch Engineer's Briefing & Setup Demo-> IonVid]]
|about)[This technique relies on gravity and an ion-exchange resin to remove unwanted ions and replace them with ions that are desirable. When the water passes through the resin, unwanted ions, like nitrates and copper, are replaced with ions like hydroxides and protons. Ion-exchange has a low environmental impact score and is relatively inexpensive.
<img class="diag" src="images/ion_exchange.png">](link: "<div class='p-1 alert infobox no-border'><i class='alert bi bi-cursor pr-1'></i>This technique relies on...</div>")[(show:?about)]
<h4>Do you want to treat your sample with ion-exchange resin?</h4><span>It will cost $$ionexchangeCost and have a $ionexchangeEP environmental impact.</span>
Yes (click: "Yes")[(set: $budget to $budget - $ionexchangeCost)(set: $enviroPoints to $enviroPoints + $ionexchangeEP)(set: $step to $step+1)(replace: ?opt-out)[](set: $ionexchange to true)(set: $particulateTreatment to true)(set: $nitratesTreatment to true)(set: $metalsTreatment to true)(set: $bacterialTreatment to true)[<div class="hint">Ask your teacher for ion-exchange supplies and instructions. Make a note of this treatment in your lab notebook.</div>
Return to [[treatment]] types.]]
|opt-out>[(link-replace: "No")[Return to [[treatment]] types.]]
[]<result|
<div class="message"><div class="p-1 infobox no-border hint"><i class="hint bi bi-info-circle pr-1"></i>In this lab, ion-exchange can effectively treat for nitrates, salinity, and heavy metals (copper). </div></div><div class='rounded-box'><div class='ttl'>Mission Focus:</div><ul><li>**$Player1:** Optimise overall water quality! *Clean water is worth the expense.*</li>
<li>**$Player2:** Minimise the environmental impact score! *Cost and water purity should not come at a cost to ecosystem health.*</li>
<li>**$Player3:** Successfully deliver clean water to the community and minimise cost! *Excess (leftover) funds after treatment will be reallocated for community benefits at the end.*</li></div>
Next, let's learn more [[about our community.->background]]<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/xVMxwXsG_7s" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
(link-undo: 'Back','Use back button in upper left')## Engineer's Briefing: Distillation
<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/XJfrSh0Y_po" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
## Demo: How to set up a distillation
<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/VeFPhBYHjGc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
(link-undo: 'Back','Use back button in upper left')<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/FLn-_z9aYIg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
(link-undo: 'Back','Use back button in upper left')<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/l6rDISk1BFE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
(link-undo: 'Back','Use back button in upper left')<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/LJgbMHeTWIo" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
(link-undo: 'Back','Use back button in upper left')<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/uviyYPA-DzI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
(link-undo: 'Back','Use back button in upper left')<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/VykBgWSl8fE" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
(link-undo: 'Back','Use back button in upper left')### Engineer's Briefing: Ion-Exchange Resin
<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/96mm0-6NExM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
### Demo: How to set up Ion-Exchange Resin
<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/btXjlp1xWoU" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
(link-undo: 'Back','Use back button in upper left'){|recap)[(text-colour:orange)[You have already performed the rapid panel. The result was:]]
(if: visits is 1)[(set: $postrapidPanel to true)(set: $step to $step+1)
(set: _promptstring to "Ask your teacher for the rapid panel supplies and instructions.
Make notes in your lab notebook about the levels of iron (mg/L), copper (mg/L), lead(mg/L), nitrates (mg/L), nitrites (mg/L), chlorine (mg/L), and the pH value.
Check all contaminants identified by the rapid panel:")
(dialog: [(print: _promptstring)
(checkbox: bind $postmetalResult, "Iron >5 mg/L")
(checkbox: bind $postmetalResult, "Copper >10 mg/L")
(checkbox: bind $postmetalResult, "Lead >1 mg/L")
(checkbox: bind $postnitrateResult, "Nitrates >20 mg/L")
(checkbox: bind $postnitriteResult, "Nitrites >1 mg/L")
(checkbox: bind $postchlorineResult, "Chlorine >4 mg/L")
(checkbox: bind $postpHrapResult, "Out of range pH (below 6 or above 8)")
(checkbox: bind $none, "None of the above")],"Finished")]
|metal)[Result: Unsafe levels of heavy metals were detected.]
|nitrites)[Result: Unsafe levels of nitrites were detected.]
|nitrates)[Result: Unsafe levels of nitrates were detected.]
|chlorine)[Result: Unsafe levels of chlorine were detected.]
|pH)[Result: pH is outside drinkable range.]
|null)[Result: No relevant contaminants were detected by the rapid panel.]
}
(if: $postrapidPanel is true AND visits >1)[(show:?recap)]
|result>[{
(if: $postmetalResult)(show:?metal)
(if: $postnitrateResult)(show:?nitrites)
(if: $postnitriteResult)(show:?nitrates)
(if: $postchlorineResult)(show:?chlorine)
(if: $postpHrapResult)(show:?pH)
(if: $none)(show:?null)}]
|info)[Perform another [[post-treatment assay]] or view your [[post-treatment assay results]].
] (if: $postmetalResult is not 0 OR $postnitrateResult is not 0 OR $postnitriteResult is not 0 OR $postpHrapResult is not 0 OR $postchlorineResult is not 0 OR $none is not 0)[(show:?info)]
<div class="infobox"><i class="bi bi-cone-striped"></i><span class="ttl text-left">Watch Lab Safety Basics Video</span></div>
<iframe height="560" width="315" src="https://www.youtube.com/embed/xpuawXjfJ-A?si=HGB098VKzvPHYHEt" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
<div class="ttl">Now, what do you want to do?</div>|1)[{
* Perform some [[assays]] to determine contamination levels
OR
* Proceed directly to [[treatment->making decisions]].}](click:"Now, what do you want to do?")[(show:?1)]
{(set: $budgetString to "Remaining budget:")(set: num-type $budget to 50)(set: $environmentString to
"Environmental impact points:")(set: num-type $enviroPoints to 0)
(set: num-type $step to 0)
}
{
(set: $rapidPanel to false)
(set: $nitratesAssay to false)
(set: $phTest to false)
(set: $salinityAssay to false)
(set: $turbidityTest to false)
(set: $assayPerformed to false)
(set: $bacterialTreatment to false)
(set: $nitratesTreatment to false)
(set: $salinityTreatment to false)
(set: $acidityTreatment to false)
(set: $basicityTreatment to false)
(set: $particulateTreatment to false)
(set: $metalsTreatment to false)
} <div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/sHPMTQeetUc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
$1: A fast-acting (rapid) test strip which indicates the presence of many contaminants (panel) from one sample. The rapid panel can detect pH, nitrites, nitrates, and chlorine. This assay requires a few minutes to complete and is a cheap test.
* This video is for the "JBL Pro Scan" Rapid Panel that works with a smart phone app. You may have a different type of Rapid Panel that only requres you to compare the colors in your sample to the key provided in your kit to determine different chemical concentrations.
(link-undo: 'Back','Use back button in upper left')<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/sH8yY4Pd3V8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
$3: Salinity is the measure of salt in a liquid. A saline concentration test strip determines the salt content of the water sample. This test requires a few minutes to complete and is relatively inexpensive.
(link-undo: 'Back','Use back button in upper left')<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/sHPMTQeetUc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
$3: This assay specifically measures the presence of nitrates. This assay requires roughly 10 minutes to complete and is a relatively inexpensive test.
* A nitrate assay is generally included on a Rapid Panel, such as the one shown here.
* This video is for the *JBL Pro Scan Rapid Panel* that works with a smart phone app. You may have a different type of Rapid Panel that only requires you to compare the colors in your sample to the key provided in your kit to determine different chemical concentrations.
(link-undo: 'Back','Use back button in upper left')<div class="vid"><iframe height="560" width="315" src="https://www.youtube.com/embed/8qlPJ2g8ZT8" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div>
$1: A fast-acting (rapid) test strip which indicates the presence of many contaminants (panel) from one sample. The rapid panel can detect pH, nitrites, nitrates, and chlorine. This assay requires a few minutes to complete and is a cheap test
(link-undo: 'Back','Use back button in upper left')