Dokter Semmelweis dan Temuan dalam Mencuci Tangan

Mengetahui dan menganalisa metode cuci tangan di Rumah Sakit Umum Vienna di abad ke-19.

Analisis Data
Python
Author

Alif Dewantara

Published

February 5, 2023

Perkenalkan, ia Dr. Ignaz Semmelweis

Dr. Ignaz Semmelweis

Dokter Semmelweis lahir di Austria-Hungaria pada tahun 1818, dan aktif bekerja di Rumah Sakit Umum Vienna. Saat itu, Dr. Semmelweis menemukan adanya penyakit yang sering ditemuinya di rumah sakit: childbed fever (demam kasur), yakni penyakit yang disebabkan oleh infeksi bakteri yang menyerang saluran reproduksi perempuan setelah melahirkan atau keguguran. Ia bekerja keras mencari cara untuk mengatasi penyakit ini, sebab pada tahun 1840-an, 10% wanita yang melahirkan di Rumah Sakit Umum Vienna meninggal karena terinfeksi. Dr. Semmelweis sangat memikirkan hal ini karena ia tahu penyebab utama demam tersebut: tangan-tangan para dokter yang telah terkontaminasi saat memindahkan bayi. Sayangnya, staf rumah sakit saat itu tak ada yang mengindahkan sarannya untuk mencuci tangan!

Maka di sini, kita akan bersama-sama menganalisa kembali data yang membuat Dr. Semmelweis menemukan pentingnya mencuci tangan. Kita bisa memulainya dengan melihat data yang membuat Semmelweis menyadari bahwa ada yang salah dalam prosedur Rumah Sakit Umum Vienna.

Lihat Kode
# import modul
import pandas as pd
import matplotlib.pyplot as plt

# Membaca datasets/yearly_deaths_by_clinic.csv ke dalam yearly
yearly = pd.read_csv('datasets/yearly_deaths_by_clinic.csv')

# Print yearly
print(yearly)
    year  births  deaths    clinic
0   1841    3036     237  clinic 1
1   1842    3287     518  clinic 1
2   1843    3060     274  clinic 1
3   1844    3157     260  clinic 1
4   1845    3492     241  clinic 1
5   1846    4010     459  clinic 1
6   1841    2442      86  clinic 2
7   1842    2659     202  clinic 2
8   1843    2739     164  clinic 2
9   1844    2956      68  clinic 2
10  1845    3241      66  clinic 2
11  1846    3754     105  clinic 2

Proporsi angka kematian

Tabel di atas tadi memberi informasi terkait angka para ibu yang melahirkan (births) di dua klinik (clinic) milik Rumah Sakit Vienna antara tahun 1841 sampai 1846 (year). Kalian mungkin sadar bahwa proses melahirkan di tahun tersebut sangat riskan, dan angka kematian (deaths) ibu yang melahirkan, sebagian besar terjadi akibat demam kasur.

Kita bisa lihat dengan lebih jelas jika kita melihatnya dari proporsi kematian para ibu berdasarkan angka ibu yang melahirkan (proportion_deaths). Mari kita fokus pada proporsi kematian di Klinik 1.

Lihat Kode
# Mengkalkulasi proporsi kematian per angka kelahiran
yearly['proportion_deaths'] = yearly['deaths']/yearly['births']

# Ekstrak data tahunan dari Klinik 1 ke dalam yearly1 dan Klinik 2 ke dalam yearly2
yearly1 = yearly[yearly.clinic == 'clinic 1']
yearly2 = yearly[yearly.clinic == 'clinic 2']

# Print out yearly1
print(yearly1)
   year  births  deaths    clinic  proportion_deaths
0  1841    3036     237  clinic 1           0.078063
1  1842    3287     518  clinic 1           0.157591
2  1843    3060     274  clinic 1           0.089542
3  1844    3157     260  clinic 1           0.082357
4  1845    3492     241  clinic 1           0.069015
5  1846    4010     459  clinic 1           0.114464

Kematian di klinik

Jika kita membuat memvisualisasikan proportion_deaths kedua klinik dalam line chart, kita akan melihat adanya suatu pola.

Lihat Kode
# Membuat plot proporsi kematian per tahun di kedua klinik

ax = yearly1.plot(x='year', y='proportion_deaths', label='clinic 1')
yearly2.plot(x='year', y='proportion_deaths', label='clinic 2', ax=ax)
ax.set_ylabel('Proportion deaths')
plt.show()

Kampanye mencuci tangan dimulai!

Dari plot di atas pasti kalian bertanya “Mengapa ada lebih banyak kematian terjadi di klinik 1?”. Dr. Semmelweis pun melihat hal serupa dan cukup kebingungan. Padahal, perbedaan antara kedua klinik itu kelihatannya tak begitu penting: Orang yang bertugas di klinik 1 didominasi oleh mahasiswa/i kedokteran, sedangkan di klinik 2 didominasi oleh mahasiswa/i kebidanan. Perbedaan keduanya adalah jika mahasiswa/i kebidanan hanya mengurusi para ibu hamil dan melahirkan, mahasiswa/i kedokteran juga harus mengurusi ruang otopsi.

Dr. Semmelweis mulai mencurigai mayat-mayat yang ada di ruang otopsi, yang mungkin saja menjadi sumber bakteri yang tersebar melalui tangan-tangan kotor mahasiswa/i kedokteran. Dalam keadaan linglung dan pasrah karena menghadapi angka kematian yang tetap tinggi, Dr. Semmelweis pun membuat keputusan: “Cucilah tangan kalian!”.

Perlu diketahui bahwa kesadaran mencuci tangan di masa itu tidak sebaik sekarang. Perintah Dr. Semmelweis tersebut tentu saja dianggap kontroversial dan aneh. Penduduk Vienna pada masa itu juga belum tahu tentang adanya bakteri.

Nah, mari kita sekarang membuka data yang baru, yakni data bulanan dari klinik 1 untuk melihat apakah kampanye cuci tangan ini memberikan efek.

Lihat Kode
# Membaca datasets/monthly_deaths.csv ke dalam monthly
monthly = pd.read_csv('datasets/monthly_deaths.csv', parse_dates=['date'])

# Hitung proporsi kematian per angka kelahiran
monthly['proportion_deaths'] = monthly['deaths']/monthly['births']

# Print out lima baris awal monthly
print(monthly.head())
        date  births  deaths  proportion_deaths
0 1841-01-01     254      37           0.145669
1 1841-02-01     239      18           0.075314
2 1841-03-01     277      12           0.043321
3 1841-04-01     255       4           0.015686
4 1841-05-01     255       2           0.007843

Efek mencuci tangan

Data di atas sudah berhasil dimuat, maka kita dapat melihat proporsi kematian di tahun tersebut. Dalam plot ini kita tak akan memberi tanda tentang kapan kampanye cuci tangan ini dimulai, tetapi kampanye tersebut telah mengurangi angka kematian dengan sangat signifikan sehingga kalian bisa tahu hanya dengan melihat plot di bawah.

Lihat Kode
# Membuat plot proporsi kematian
ax = monthly.plot(x='date', y='proportion_deaths')
ax.set_ylabel('Proportion deaths')
plt.show()

Proporsi kematian menurun drastis pada musim panas (Juni) 1847, yakni saat kampanye cuci tangan dimulai oleh Dr. Semmelweis

Efek mencuci tangan akan lebih terlihat jelas jika kita membuat grafik seperti ini.

Lihat Kode
# Tanggal dimulainya kampanye cuci tangan
handwashing_start = pd.to_datetime('1847-06-01')

# Memisahkan monthly ke sebelum dan sesudah handwashing_start
before_washing = monthly[monthly.date < handwashing_start]
after_washing = monthly[monthly.date >= handwashing_start]

# Membuat plot proporsi kematian sebelum dan sesudah mencuci tangan
ax = before_washing.plot(x='date', y='proportion_deaths', label='Before handwashing')
after_washing.plot(x='date', y='proportion_deaths', label='After handwashing', ax=ax)
ax.set_ylabel('Proportion deaths')
plt.show()

Grafik di atas menunjukkan bahwa mencuci tangan memberikan efek yang luar biasa. Seluar biasa apakah cuci tangan mengurangi rata-rata proporsi kematian per bulan?

Lihat Kode
# Rata-rata perbedaan proporsi kematian saat kampanye cuci tangan
before_proportion = before_washing.proportion_deaths
after_proportion = after_washing.proportion_deaths
mean_diff = after_proportion.mean() - before_proportion.mean() 
print(mean_diff)
-0.08395660751183336

Analisis Bootstrap Data Cuci Tangan Semmelweis

Kampanye cuci tangan telah mengurangi angka kematian secara signifikan! Jika sebelumnya rata-rata proporsi kematian adalah 10%, kini berkurang sebanyak 8% menjadi 2%.

Agar kalian mendapatkan gambaran terkait seberapa penting mencuci tangan dalam mengurangi kematian, kita dapat membuat confidence interval.

Lihat Kode
from numpy import percentile
# A bootstrap analysis of the reduction of deaths due to handwashing
boot_mean_diff = []
for i in range(3000):
    boot_before = before_proportion.sample(frac=1, replace=True)
    boot_after = after_proportion.sample(frac=1, replace=True)
    boot_mean_diff.append(boot_after.mean() - boot_before.mean())

# Calculating a 95% confidence interval from boot_mean_diff 
confidence_interval = percentile(boot_mean_diff, [2.5, 97.5])
print(confidence_interval)
[-0.10145617 -0.06734784]

Nasib Dr. Semmelweis

Dari penjelasan di atas kita telah tahu bahwa mencuci tangan telah mengurangi proporsi angka kematian antara 6,7 sampai 10 persen, berdasarkan 95% confidence interval. Maka seharusnya Semmelweis memiliki landasan yang kuat bahwa mencuci tangan, walaupun sederhana, tetapi merupakan prosedur sangat efektif yang dapat menyelamatkan banyak orang.

Sayangnya, walaupun telah banyak bukti tersebut, teori Semmelweis yang mengatakan bahwa demam tidur disebabkan oleh suatu ‘zat’ (yang kita ketahui sekarang sebagai bakteri) dari mayat-mayat ruang otopsi, dianggap konyol oleh ilmuan saat itu. Asosiasi kesehatan saat itu sebagian besar menolak penemuan Semmelweis dan bahkan pada 1849, ia dipaksa untuk meninggalkan pekerjaaannya di Rumah Sakit Umum Vienna secara permanen.

Salah satu alasannya adalah karena pada saat itu statistika dan argumen yang berlandaskan statistika masih tidak umum di kalangan ilmu kesehatan. Semmelweis hanya mempublikasikan data mentah dalam bentuk tabel, tetapi ia tidak menunjukkan grafik atau confidence interval. Jika saja Semmelweis memiliki akses melakukan analisis seperti yang kita lakukan, ia bisa saja lebih berhasil mengampanyekan para dokter di Vienna untuk mencuci tangan.

Important

Tulisan ini adalah salah satu hasil kerja saya saat belajar dalam career path Data Scientist with Python di Datacamp.

Salam Maria, penuh rahmat, Tuhan sertamu.