IDEMSInternational / carbonr

Calculating carbon emissions in R
GNU Lesser General Public License v3.0
14 stars 2 forks source link

operating theatre #16

Closed genghiskhanofnz closed 2 months ago

genghiskhanofnz commented 1 year ago

I am facing a challenge to calculate hospital operating theatre carbon. Main items are energy (electricity and gas), clinical waste, general waste and disposables. Most can be measured = good news. By having a function in carbonr, this package will surely contribute to the clinical community. Clinical waste = syringes, needles, specimens (an old liver in liver transplant) = measured in kg. Another item is anesthetic gas that comes in liquid form in litre before vaporised = measurable too in kg. Wondering if a function could be created. Thanks heaps.

genghiskhanofnz commented 1 year ago

Cost input could be a possibility too, mentioned in Add "materials" and "waste" functions #13. Our hospital clinical costing systems could provide overall itemised theatre costs. Wondering what your thoughts are. Thank you very much.

lilyclements commented 1 year ago

This is a really interesting concept, and one that I would be excited to have in the package. I am happy to work on it and add it in, or if you would rather work on it then it is an open-source project, so am open to collaborate.

All the carbon-equivalent estimates have come from Government Reports, do you have literature references that can be openly discussed on measuring these items, or on how these relate to the government reports? I can see the direct link for some items such as electricity/gas, but how about for clinical waste?

genghiskhanofnz commented 1 year ago

I am so glad that today I receive your reply. I am hoping carbonr can implement it soon. I can give you the t CO2-e conversion from clinical waste that is usually incenerated. Clinical waste t CO2-e = Q x EF. Q = tonnes of wet weight. EF = emission factor = 0.879. Page 32 of Australian greenhouse 2022 document https://www.dcceew.gov.au/climate-change/publications/national-greenhouse-accounts-factors-2022. All other items are already in your package. One thing, I am planning to write a paper on it by acknowledging your package and your contribution. Wondering if you could help. Thank you so much.

genghiskhanofnz commented 1 year ago

read, incinerated in the above comment. typo.

lilyclements commented 1 year ago

Sounds like a really interesting project you're working on - what is the paper on and your area of research on? Just for context, and out of interest. Happy to arrange a meeting if that is an easier way to discuss.

I have had a little think and wanted to check by you how I see the function so far. Perhaps if we had a clinical_waste function that you can use directly, and this calls various bits from other created functions.

In PR #21 is a draft for this clinical_waste function. This has taken all the electricity, gas, and water emissions related parameters from building_emissions (previously known as office_emissions), and added a new parameter wet_clinical_waste. Here, if you input your clinical waste in wet weight, then it outputs the estimated CO2e emissions using your formula.

We currently have the following parameters:

Which elements from materials and waste functions would you be interested in? We can offer any under "Material Use" and "Waste Disposal" from the Conversion Factors: 2022: Full Set data spreadsheet available for download here. I will create a material and waste disposal function, and we can call the relevant materials/wastes from there.

You've also mentioned you'd like "anesthetic gas" as an option. There have a list of gases/fuels that we have been able to add in from the UK Government report (under the "Fuels" tab). However, I'm not convinced any here would relate to anaesthetic gas. Do you have an idea in mind of how we can measure this?

A final point is that it would be great if, in the future, we incorporate in the Australian factors from the document you shared (e.g., all the scope 1 and 3 emissions). However, since I am a bit preoccupied with a few other projects I'll write an issue on that, and can get back to that at a later date.

genghiskhanofnz commented 1 year ago

First and foremost, thanks for getting back to me with details = Amazing indeed.

It seems to be that you have nearly completed my request. Thank you very much.

A few issues remain as follows:

  1. Anesthetic gas = nitrous oxide and volatile fluorinated liquids (isoflurane, desflurane, sevoflurane) vaporised before administering = I do not have any conversion data to t CO2-e
  2. heating and air conditioning = big part of theatre waste = I am sure you could provide since it will be similar to office buildings
  3. Material use tab from the UK 2022 spreadsheet = Plastic is rampant in the operating thestres. Would love to include as a function or argument in a combined operating_theatre_waste function. They are measured in kg when wheelies are put on the scale.
  4. Waste disposal tab = interested in all activities except construction. Nice to have in the operating_theatre_waste function as an argument.

Happy to discuss on Zoom or Teams meeting. Please let me know your availability.

My project is embargoed to protect novel ideas from being copied before published (my university requirement).

However, I am open and happy to invite you as my co-investigator and co-author since your package is so valuable and one of its kind!

If you have a beta, then may I have a testing?

See you soon.

lilyclements commented 1 year ago

Great. I'll have a start on that and let you know how I get on. Would you like a beta of the function or a beta of the package? The function set up is currently in PR #21 which can be tested once merged. Happy to merge that if you want to have a look at it now.

A really useful insight would be to know how you use the function. For example, you say that you measure plastic weight in kgs already. Do you put that information in a data set at all? I only ask because if there were a data set then we can create a function that reads in the data set, runs the clinical_waste function, and automatically outputs the CO2e emissions to make it easier to use. Perhaps that's something to discuss on a call.

Completely understand the university requirement. It would be great to get involved in the project - let's arrange a Zoom meeting to discuss this and other bits about the package.

Looking forward

genghiskhanofnz commented 1 year ago

Have emailed you just now from my uni. Shall we discuss on the call? Thank you so much. P.S; you can remove your email from here

genghiskhanofnz commented 1 year ago

@lilyclements Thanks for reopening. May I request for a comprehensive 'theatre_waste' function taking df with different waste types and outputs of CO2-e and monetary values df with plot function embedded? Thank you so much.

lilyclements commented 1 year ago

Thanks for this! I have started on this function and have a few points.

There's a lot in the waste and materials sheets/functions. Can you have a look at the options given in the "clinical_theatre_emissions" function and let me know which, if any, can be removed (for example, there's ten types of plastic - average, average_film, average_rigid, HDPE, LDPE, LLDPE, PET, PP, PS, PVC). Might be easiest to view all the options through the help file:

devtools::install_github("IDEMSInternational/carbonR")
library(carbonr)
?clinical_theatre_emissions

What gas would generally be used? The raw_fuels sheet and function show all the different options here. Can you let me know which ones are most appropriate?

Do you have a reference for your carbon credit unit price?

I need to still find conversion data for:

genghiskhanofnz commented 1 year ago

@lilyclements Thanks for your efforts in this.

  1. Please leave plastic functions with all options open for now. I will confirm with our hospital's waste manager to see what types of plaastic common in theatres. Most probably is PVC.
  2. Anesthetic gas commonly used = N2O and Isofluorene. I need to find out any conversion available. For the time being, please assume that no anesthetic gas is wasted since I fail to find any academic paper mentioning any evidence about its waste.
  3. My perception is that heating data are available from UK.
  4. Hospitals use HVAC negative pressure cooling system to keep infection out. This one shows methodology for hospital cooling in its Appendix. https://www.k-cep.org/wp-content/uploads/2018/10/Kigali_CEP_GlobalHospitalCooling_102418.pdf
lilyclements commented 1 year ago

Great! Thanks. All sounds good - to follow up to number 1: How about the other options - different papers, metals, electric appliances? They should be visible in the help file in the function but I can list them here if easier.

Thanks!

genghiskhanofnz commented 1 year ago

@lilyclements I found a HVAC Austrtalia document here on page-45 = annual 144.3 KWh/m2 where we can plug in m2 values from a specific hospital operating theatres floor area = then we can get t CO2-e result from it. https://www.airahfiles.org.au/i-Hub/M7/Report_LLHC5_Net-Zero-Energy-Emissions.pdf

genghiskhanofnz commented 1 year ago

@lilyclements We could remove metals and elec appliances because not much relevant to operating theatres. Papers are relevant. I am currently looking at the help display in R function. Thanks for that.

genghiskhanofnz commented 1 year ago

Would be even better if the function could accept 'wide' df and emission + credit values as df for different theatres in one go.

@lilyclements the reference for credit is here for Australia. https://www.cleanenergyregulator.gov.au/Infohub/Markets/Pages/qcmr/december-quarter-2022/Australian-carbon-credit-units-(ACCUs).aspx Quarterly Carbon Market Reports will tell us the $ in the above link.
It is quarterly but seems to be OK for your function. Full implementation of carbon credit exchange will happen in this year 2023 according to the report above.

Cheers.

lilyclements commented 1 year ago

@genghiskhanofnz thank you for all of this. It’s very useful and I’ll update you he function accordingly.

Wide data is absolutely fine - can you give an example of the wide data frame so that I can ensure I’m working with the correct variables etc to make longer.

lilyclements commented 1 year ago

@lilyclements I found a HVAC Austrtalia document here on page-45 = annual 144.3 KWh/m2 where we can plug in m2 values from a specific hospital operating theatres floor area = then we can get t CO2-e result from it. https://www.airahfiles.org.au/i-Hub/M7/Report_LLHC5_Net-Zero-Energy-Emissions.pdf

@genghiskhanofnz this is useful but I need to just clarify a few bits:

The Australian HVAC document shows the annual estimate at 144.3 KWh/m2. Currently, we have not set a time bound to our estimates - e.g., it can be per operation, day, month, etc. How we currently calculate CO2e for amenities such as electricity, plastic waste, etc, we assume that the user has calculated the kWh (or kgs, litres, or appropriate unit) and inputs that value. This way they can input it over the time boundary they are interested in. Can the kWh for AC be a readily available value (like the other measurements are). If not, it looks like an extra step to have a calculation for this. It depends on the size of the operating theatre and what not. We could have that calculation as a separate function but the user would need to read in: hospital name, floor size (m2), and time length. We would then need to think about how to convert the time to be "per time frame given" rather than per year.

In the methodology of the first document shared they state:

The energy used [...] was converted into equivalent kWh, thereby representing all as indirect emissions (e.g., this assumes that natural gas emissions are similar to the country’s current grid CO2e intensity)

So if we have a kWh value for the HVAC, am I correct in assuming we can then calculate CO2e by using the electricity conversion from kWh to CO2e that is currently in the calculation?

Otherwise, in the Australian CO2e emissions document you shared, on p25 -

The following formula should be used to estimate the CO2-e emissions from refrigeration and air-conditioning equipment. ` CO_2 e (in kgs) = (GWP x charge x leakage-rate GWP is the global warming potential of the gas (see Appendix 2 for a list of GWPs). Charge is the amount of refrigerant gas contained in the appliance (usually found on the appliance - I'm not sure how this relates to AC) Leakage rate is the percentage of total charge leaked from the appliance each year (see Table 9)

lilyclements commented 1 year ago

@lilyclements We could remove metals and elec appliances because not much relevant to operating theatres. Papers are relevant. I am currently looking at the help display in R function. Thanks for that.

@genghiskhanofnz Great, thanks! I noticed a lot on freezers/fridges values when looking through the literature. Is this an electrical appliance we would want to include, or does this all come in with the HVAC?

genghiskhanofnz commented 1 year ago

@lilyclements for sample df in 'long' format listing only one waste type 'wet_clinical_waste' for 5 theatres in 3 months observations. Real world settings will include all relevant waste types and measures per date of observations, monthly or quarterly or yearly.

input.df <- tibble::tribble( ~date, ~location, ~waste_type, ~waste_measure, "1/06/2023", "theatre01", "wet_clinical_waste", 1000L, "1/06/2023", "theatre02", "wet_clinical_waste", 1100L, "1/06/2023", "theatre03", "wet_clinical_waste", 1200L, "1/06/2023", "theatre04", "wet_clinical_waste", 1300L, "1/06/2023", "theatre05", "wet_clinical_waste", 1400L, "1/07/2023", "theatre01", "wet_clinical_waste", 1250L, "1/07/2023", "theatre02", "wet_clinical_waste", 1350L, "1/07/2023", "theatre03", "wet_clinical_waste", 1400L, "1/07/2023", "theatre04", "wet_clinical_waste", 1350L, "1/07/2023", "theatre05", "wet_clinical_waste", 1200L, "1/08/2023", "theatre01", "wet_clinical_waste", 1620L, "1/08/2023", "theatre02", "wet_clinical_waste", 1710L, "1/08/2023", "theatre03", "wet_clinical_waste", 1420L, "1/08/2023", "theatre04", "wet_clinical_waste", 1200L, "1/08/2023", "theatre05", "wet_clinical_waste", 1350L ) Created on 2023-06-13 with reprex v2.0.2

genghiskhanofnz commented 1 year ago

@lilyclements Users can get HVAC KWh readily from building management systems of the hospital. Therefore, this issue is settled for now.

Theatres hold medical freezers and fridges.
"There is a blood fridge in theatre and a pharmacy fridge plus ones for staff food etc. not one in each theatre though" Quote from our anesthetist. So, we should keep them in the function.
It is different from HVAC, which is only for cooling.

I hope I answer all your questions of 1. df; 2. elec appliances; 3. HVAV KWh; 4. carbon price documentation

genghiskhanofnz commented 1 year ago

May I add this for anesthetics?

Novosel, S., Prangenberg, C., Wirtz, D. C., Burger, C., Welle, K., & Kabir, K. (2022). Climate change: how surgery contributes to global warming. Chirurgie, 93(6), 579-585. doi:10.1007/s00104-021-01551-1

Up to 20% of volatile nonmetabolized anesthetic agents are vented into the stratosphere and destroy the ozone layer. Intravenous anesthetic drugs should be used whenever possible instead.

We, at the moment, consider no waste from anesthesia.

Users can put the % of waste as input. We still need a conversion factor to tCO2-e. Cheers.

lilyclements commented 1 year ago

@genghiskhanofnz thanks for this - I have added the fridges/freezers information in. I will add in carbon price information shortly.

Some notes:

Would be even better if the function could accept 'wide' df and emission + credit values as df for different theatres in one go. Sorry for not being clear - you gave an example with a long df, can you give an example on a wide data frame so I can sort the function as appropriate. It should be working for a long df at the moment.

Remaining items:

lilyclements commented 1 year ago

For Anesthetics estimates -

Inhalable Types From other lookings around, there are a few inhalational anaesthetics that are coming up a lot - e.g. Sevoflurane and Desflurane. Using results from https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7421303/ we can see that the CO2e emissions in kilograms are Kg x GWP

desflurane: GWP = 2540 (1 g desflurane has the same GWP as 2540 g CO2), sevoflurane: GWP = 130 isoflurane: GWP = 510 N2O: GWP approximately 265 methoxyflurane: GWP = 4

For lifecycle assessments - "life cycle assessment to examine the climate change impacts of 5 anesthetic drugs: sevoflurane, desflurane, isoflurane, nitrous oxide, and propofol" - https://journals.lww.com/anesthesia-analgesia/Fulltext/2012/05000/Life_Cycle_Greenhouse_Gas_Emissions_of_Anesthetic.25.aspx We can see that emissions for cradle to gate: desflurane: GWP = 708 sevoflurane: GWP = 440 isoflurane: GWP = ~200 propofol = ~10 (see below in TIVA) This is for Agent manufacturing, N2O, packaging, transport, delivery, and waste

TIVA I've seen that TIVA is substantially lower so we should include their CO2e emissions as well. From what I can see TIVA is from the intravenous route. However, can you enlighten me somewhat here as the expert on the medical side of it all! - is TIVA an injectable anaesthetic? If so, are the 20 given below examples of a TIVA anaesthetic? From https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7421303/ - "TIVA (propofol) itself has approximately 1% the GWP of even sevoflurane volatile anaesthesia" I believe TIVA is propofol but do correct me if I'm wrong! I see here that propofol is "21 g carbon dioxide equivalent emissions/g propofol" - note we've given grams here not KG like above (https://pubs.asahq.org/anesthesiology/article/135/6/976/117564/Carbon-Footprint-of-General-Regional-and-Combined).

Injectable Types I found the following paper which looks very interesting and comprehensive in their "cradle-to-gate" Greenhouse Gas Emissions for 20 injectable anesthesic drugs. However, this is just the "cradle to gate", and not the use of it itself - https://pubs.acs.org/doi/pdf/10.1021/acssuschemeng.8b05473

These twenty anesthetic drugs with their respective cradle-to-gate GHG emissions per kg drug are given in table S.2 under "Supporting Information". Then:

Kg x GWP = CO2e emissions in Kg

However, these do not include the actual use of them. I'm not sure how easy that information will be to find! Propofol (TIVA?) is one of the twenty given, so that's great that we have it's cradle-to-gate, but, how common are the other 19? Is it worth researching them now, or should we leave this for the time being and note it for a later date? I think probably the latter. Or does use of IV-type drugs not emit as much CO2e, it's more in the cradle-to-gate emissions?

Implementation If so - my suggestion is that we have an anaesthetic_emissions function which gives our 5 options (including Propofol) and then a lifecycle option. We can also include TIVA. Perhaps also use the injectable types, but I only have "cradle to gate", not "cradle to grave"!

genghiskhanofnz commented 1 year ago

@lilyclements agree with anaethtic_emissions function for 5 options and include TIVA + other injectables at your discretion.

Our hospital anaethetist says "Tiva is propofol yes. ...uses mainly sevo and some des and no longer any iso. some use of N2O but difficult to quantify a number per case, although we can roughly estimate it. Des has dropped a lot over last decade but not entirely gone from practice"

I hope the above quote will help your decision.

lilyclements commented 1 year ago

@genghiskhanofnz - Excellent, thanks. Really useful to have input from your hospital anaethetist too

lilyclements commented 1 year ago

anaesthetic_emissions have now been added. Left to sort:

Just realised you already gave an example of a wide data frame format - my apologies. It currently works for a wide data frame format. I can write a (wrapper) function to translate a long to wide format. The user would still need to state their parameter values (e.g. clinical_emissions_data(wet_clinical_waste = "wet_waste") etc. I have two suggestions, either:

  1. The user would have to know their values in the waste_type variable so that when it is wide, they can then say which corresponds to which measure.
  2. We have a "define" type function where the user can state which variable / variable value corresponds to what (e.g. if they have a value in their waste_type value, of hdpeplastic, this should be the variable value for any variable called "hdpe". They can also state here if kg/tonnes/etc.