A Cahya Legawa's Les pèlerins au-dessus des nuages

Akal imitasi (AI) jika dimanfaatkan untuk hal-hal terkait manajemen klinis ternyata cukup membantu. Saya menggunakan Claude untuk membangun aplikasi JS sederhana untuk analisis FMEA.

Berikut adalah kode yang dihasilkan:

// Kode berikut menggunakan SheetJS untuk membuat template Excel FMEA
// Anda bisa menggunakan kode ini di lingkungan Node.js dengan SheetJS

import * as XLSX from 'xlsx';

// Membuat workbook baru
const wb = XLSX.utils.book_new();

// ===== SHEET 1: INSTRUKSI =====
const instruksiData = [
  ["PANDUAN PENGGUNAAN TEMPLATE FMEA UNTUK FASILITAS KESEHATAN"],
  [""],
  ["Template ini dirancang untuk membantu tim kesehatan melakukan analisis FMEA (Failure Mode and Effects Analysis)"],
  ["untuk mengidentifikasi dan mengurangi risiko dalam proses pelayanan kesehatan."],
  [""],
  ["DEFINISI PARAMETER:"],
  [""],
  ["1. Severity (S) - Tingkat keparahan efek jika kegagalan terjadi"],
  ["   Skala 1-10, di mana:"],
  ["   1-2: Efek hampir tidak terdeteksi, sangat minor"],
  ["   3-4: Efek minor, sedikit gangguan"],
  ["   5-6: Efek moderat, pasien mengalami ketidaknyamanan"],
  ["   7-8: Efek tinggi, berpotensi menyebabkan cedera"],
  ["   9-10: Efek kritis, berpotensi menyebabkan kematian/cedera permanen"],
  [""],
  ["2. Occurrence (O) - Frekuensi/kemungkinan kegagalan terjadi"],
  ["   Skala 1-10, di mana:"],
  ["   1-2: Sangat jarang terjadi (1 dari 10.000+ kejadian)"],
  ["   3-4: Jarang terjadi (1 dari 1.000 kejadian)"],
  ["   5-6: Kadang terjadi (1 dari 100 kejadian)"],
  ["   7-8: Sering terjadi (1 dari 10 kejadian)"],
  ["   9-10: Hampir pasti terjadi (>1 dari 5 kejadian)"],
  [""],
  ["3. Detection (D) - Kemampuan mendeteksi kegagalan sebelum berdampak"],
  ["   Skala 1-10, di mana:"],
  ["   1-2: Deteksi hampir pasti (>95% terdeteksi)"],
  ["   3-4: Deteksi tinggi (75-95% terdeteksi)"],
  ["   5-6: Deteksi moderat (50-75% terdeteksi)"],
  ["   7-8: Deteksi rendah (25-50% terdeteksi)"],
  ["   9-10: Hampir tidak terdeteksi (<25% terdeteksi)"],
  [""],
  ["4. Risk Priority Number (RPN) = Severity × Occurrence × Detection"],
  ["   Rentang nilai: 1 - 1000"],
  ["   RPN < 40: Risiko rendah (hijau)"],
  ["   RPN 40-100: Risiko sedang (kuning)"],
  ["   RPN > 100: Risiko tinggi (merah)"],
  [""],
  ["CARA PENGGUNAAN:"],
  ["1. Identifikasi proses/aktivitas yang akan dianalisis"],
  ["2. Tentukan potensi kegagalan pada setiap langkah proses"],
  ["3. Analisis efek dan penyebab potensial"],
  ["4. Evaluasi kontrol yang sudah ada"],
  ["5. Tentukan nilai S, O, dan D berdasarkan skala di atas"],
  ["6. Hitung RPN (otomatis)"],
  ["7. Tentukan tindakan yang direkomendasikan untuk mode kegagalan dengan RPN tertinggi"],
  ["8. Setelah implementasi, evaluasi kembali nilai S, O, dan D"],
  ["9. Hitung RPN baru dan bandingkan dengan RPN awal untuk melihat perbaikan"]
];

const instruksiWS = XLSX.utils.aoa_to_sheet(instruksiData);

// Menambahkan styling
instruksiWS['!cols'] = [{ wch: 100 }]; // Lebar kolom
XLSX.utils.book_append_sheet(wb, instruksiWS, "Instruksi");

// ===== SHEET 2: FMEA WORKSHEET =====
const fmeaHeaders = [
  ["ID", "Proses/Aktivitas", "Potensi Mode Kegagalan", "Efek Potensial", "Penyebab Potensial", 
   "Kontrol Saat Ini", "Severity (S)", "Occurrence (O)", "Detection (D)", "RPN", 
   "Tindakan yang Direkomendasikan", "Penanggung Jawab", "Target Penyelesaian", 
   "Status Implementasi", "Severity Baru (S)", "Occurrence Baru (O)", "Detection Baru (D)", "RPN Baru"]
];

// Menambahkan contoh data
const exampleData = [
  ["PR-001", "Pemberian Obat", "Kesalahan dosis", "Efek samping yang tidak diinginkan", "Penulisan resep tidak jelas", 
   "Verifikasi oleh apoteker", 8, 5, 4, "=G2*H2*I2", "Implementasi sistem resep elektronik", 
   "Kepala Farmasi", "30/06/2025", "Belum Dimulai", "", "", "", "=O2*P2*Q2"],
  ["PR-002", "Identifikasi Pasien", "Kesalahan identifikasi", "Pasien salah mendapat tindakan", "Prosedur identifikasi tidak diikuti", 
   "Gelang identitas pasien", 9, 3, 5, "=G3*H3*I3", "Penerapan verifikasi identitas ganda (nama & no.RM)", 
   "Kepala Keperawatan", "15/05/2025", "Dalam Proses", "", "", "", "=O3*P3*Q3"],
  ["PR-003", "Handover Shift", "Informasi penting tidak tersampaikan", "Keterlambatan tindakan", "Waktu handover terbatas", 
   "Formulir handover terstruktur", 7, 6, 5, "=G4*H4*I4", "Implementasi SBAR dan handover di samping pasien", 
   "Direktur Keperawatan", "30/04/2025", "Selesai", 7, 3, 2, "=O4*P4*Q4"],
];

// Menggabungkan header dan contoh data
const fmeaData = [...fmeaHeaders, ...exampleData];

const fmeaWS = XLSX.utils.aoa_to_sheet(fmeaData);

// Menambahkan styling dan validasi data
fmeaWS['!cols'] = [
  { wch: 8 },  // ID
  { wch: 20 }, // Proses/Aktivitas
  { wch: 25 }, // Potensi Mode Kegagalan
  { wch: 25 }, // Efek Potensial
  { wch: 25 }, // Penyebab Potensial
  { wch: 20 }, // Kontrol Saat Ini
  { wch: 10 }, // Severity
  { wch: 10 }, // Occurrence
  { wch: 10 }, // Detection
  { wch: 10 }, // RPN
  { wch: 30 }, // Tindakan
  { wch: 15 }, // Penanggung Jawab
  { wch: 15 }, // Target
  { wch: 15 }, // Status
  { wch: 10 }, // Severity Baru
  { wch: 10 }, // Occurrence Baru
  { wch: 10 }, // Detection Baru
  { wch: 10 }, // RPN Baru
];

XLSX.utils.book_append_sheet(wb, fmeaWS, "FMEA Worksheet");

// ===== SHEET 3: DASHBOARD =====
// Pada implementasi sebenarnya, ini akan berisi rumus-rumus yang mereferensikan data FMEA
// Di sini kita hanya menyertakan beberapa elemen placeholder

const dashboardData = [
  ["DASHBOARD FMEA"],
  [""],
  ["RINGKASAN RISIKO:"],
  [""],
  ["Jumlah Total Proses yang Dianalisis", "=COUNTA(FMEA Worksheet!A:A)-1"],
  ["Jumlah Risiko Tinggi (RPN > 100)", "=COUNTIF('FMEA Worksheet'!J2:J1000,\">100\")"],
  ["Jumlah Risiko Sedang (40 ≤ RPN ≤ 100)", "=COUNTIF('FMEA Worksheet'!J2:J1000,\">=40\")-COUNTIF('FMEA Worksheet'!J2:J1000,\">100\")"],
  ["Jumlah Risiko Rendah (RPN < 40)", "=COUNTIF('FMEA Worksheet'!J2:J1000,\"<40\")"],
  [""],
  ["TOP 5 RISIKO BERDASARKAN RPN:"],
  [""],
  ["Rumus untuk Top 5 risiko akan mengambil 5 nilai RPN tertinggi dari worksheet FMEA"],
  ["dan menampilkan ID proses, deskripsi, dan nilai RPN-nya."],
  [""],
  ["CATATAN: Dashboard ini menggunakan rumus Excel yang akan berfungsi"],
  ["ketika template diimplementasikan dalam aplikasi Excel."],
  [""],
  ["GRAFIK PARETO DAN PETA PANAS:"],
  [""],
  ["Di Excel sebenarnya, bagian ini akan berisi grafik Pareto yang menampilkan"],
  ["distribusi RPN dan peta panas yang menunjukkan area risiko berdasarkan"],
  ["nilai Severity dan Occurrence."]
];

const dashboardWS = XLSX.utils.aoa_to_sheet(dashboardData);
dashboardWS['!cols'] = [{ wch: 40 }, { wch: 30 }];
XLSX.utils.book_append_sheet(wb, dashboardWS, "Dashboard");

// Menghasilkan file Excel
XLSX.writeFile(wb, "Template_FMEA_Fasilitas_Kesehatan.xlsx");

console.log("Template FMEA berhasil dibuat!");

Jika Anda ingin menjalankan kode tersebut:

  1. Node.js – Lingkungan runtime JavaScript
    • Instal Node.js dari website resmi
    • Instal SheetJS dengan perintah npm install xlsx
    • Simpan kode dalam file .js dan jalankan dengan node namafile.js
  2. Visual Studio Code – Editor kode yang terintegrasi dengan Node.js
    • Bisa digunakan untuk mengedit dan menjalankan kode tersebut

Langkah-langkah Menjalankan Kode di VS Code:

  1. Instal Visual Studio Code
  2. Instal Node.js
    • Unduh dan instal Node.js dari nodejs.org
    • Pastikan Node.js terinstal dengan menjalankan node -v di terminal
  3. Buat Folder Project Baru
    • Buka VS Code
    • Buat folder baru untuk project Anda
    • Buka folder tersebut di VS Code (File > Open Folder)
  4. Inisialisasi Project Node.js
    • Buka terminal di VS Code (Terminal > New Terminal)
    • Jalankan npm init -y untuk membuat file package.json
  5. Instal Library SheetJS
    • Jalankan perintah npm install xlsx di terminal
  6. Simpan Kode
    • Buat file baru (misal: fmea_template.js)
    • Salin kode yang saya berikan sebelumnya ke file tersebut
    • Sesuaikan import statement menjadi: javascriptconst XLSX = require('xlsx'); (ganti import * as XLSX from 'xlsx'; dengan baris di atas)
  7. Jalankan Kode
    • Di terminal VS Code, jalankan: node fmea_template.js

Setelah menjalankan kode, file Excel bernama “Template_FMEA_Fasilitas_Kesehatan.xlsx” akan dibuat di folder project Anda. Anda bisa membukanya dengan Excel atau aplikasi spreadsheet lainnya untuk melihat hasilnya.

Atau Anda bisa menyusun secara manual menggunakan ODS pada LibreOffice Calc.

Berikut adalah panduan untuk membuat template FMEA (Failure Mode and Effects Analysis) dalam format Open Document Spreadsheet (.ods) untuk digunakan dengan LibreOffice Calc, OpenOffice Calc, atau aplikasi spreadsheet open source lainnya.

Struktur Template

Sheet 1: Instruksi

Buat sheet pertama dengan judul “Instruksi” yang berisi informasi berikut:

PANDUAN PENGGUNAAN TEMPLATE FMEA UNTUK FASILITAS KESEHATAN

Template ini dirancang untuk membantu tim kesehatan melakukan analisis FMEA (Failure Mode and Effects Analysis)
untuk mengidentifikasi dan mengurangi risiko dalam proses pelayanan kesehatan.

DEFINISI PARAMETER:

1. Severity (S) - Tingkat keparahan efek jika kegagalan terjadi
   Skala 1-10, di mana:
   1-2: Efek hampir tidak terdeteksi, sangat minor
   3-4: Efek minor, sedikit gangguan
   5-6: Efek moderat, pasien mengalami ketidaknyamanan
   7-8: Efek tinggi, berpotensi menyebabkan cedera
   9-10: Efek kritis, berpotensi menyebabkan kematian/cedera permanen

2. Occurrence (O) - Frekuensi/kemungkinan kegagalan terjadi
   Skala 1-10, di mana:
   1-2: Sangat jarang terjadi (1 dari 10.000+ kejadian)
   3-4: Jarang terjadi (1 dari 1.000 kejadian)
   5-6: Kadang terjadi (1 dari 100 kejadian)
   7-8: Sering terjadi (1 dari 10 kejadian)
   9-10: Hampir pasti terjadi (>1 dari 5 kejadian)

3. Detection (D) - Kemampuan mendeteksi kegagalan sebelum berdampak
   Skala 1-10, di mana:
   1-2: Deteksi hampir pasti (>95% terdeteksi)
   3-4: Deteksi tinggi (75-95% terdeteksi)
   5-6: Deteksi moderat (50-75% terdeteksi)
   7-8: Deteksi rendah (25-50% terdeteksi)
   9-10: Hampir tidak terdeteksi (<25% terdeteksi)

4. Risk Priority Number (RPN) = Severity × Occurrence × Detection
   Rentang nilai: 1 - 1000
   RPN < 40: Risiko rendah (hijau)
   RPN 40-100: Risiko sedang (kuning)
   RPN > 100: Risiko tinggi (merah)

CARA PENGGUNAAN:
1. Identifikasi proses/aktivitas yang akan dianalisis
2. Tentukan potensi kegagalan pada setiap langkah proses
3. Analisis efek dan penyebab potensial
4. Evaluasi kontrol yang sudah ada
5. Tentukan nilai S, O, dan D berdasarkan skala di atas
6. Hitung RPN (otomatis)
7. Tentukan tindakan yang direkomendasikan untuk mode kegagalan dengan RPN tertinggi
8. Setelah implementasi, evaluasi kembali nilai S, O, dan D
9. Hitung RPN baru dan bandingkan dengan RPN awal untuk melihat perbaikan

Format sel-sel teks ini agar mudah dibaca, misalnya dengan menebalkan judul dan sub-judul.

Sheet 2: FMEA Worksheet

Buat sheet kedua dengan judul “FMEA Worksheet” yang berisi tabel dengan kolom-kolom berikut:

IDProses/AktivitasPotensi Mode KegagalanEfek PotensialPenyebab PotensialKontrol Saat IniSeverity (S)Occurrence (O)Detection (D)RPNTindakan yang DirekomendasikanPenanggung JawabTarget PenyelesaianStatus ImplementasiSeverity Baru (S)Occurrence Baru (O)Detection Baru (D)RPN Baru

Langkah-langkah:

  1. Buat header tabel seperti di atas
  2. Format header dengan background berwarna dan bold text
  3. Atur lebar kolom sesuai kebutuhan
  4. Pada kolom RPN, tambahkan rumus: =G2*H2*I2 (sesuaikan nomor baris)
  5. Pada kolom RPN Baru, tambahkan rumus: =O2*P2*Q2 (sesuaikan nomor baris)
  6. Tambahkan conditional formatting:
    • RPN < 40: background hijau
    • RPN 40-100: background kuning
    • RPN > 100: background merah

Data Contoh:

IDProses/AktivitasPotensi Mode KegagalanEfek PotensialPenyebab PotensialKontrol Saat IniSeverity (S)Occurrence (O)Detection (D)RPNTindakan yang DirekomendasikanPenanggung JawabTarget PenyelesaianStatus ImplementasiSeverity Baru (S)Occurrence Baru (O)Detection Baru (D)RPN Baru
PR-001Pemberian ObatKesalahan dosisEfek samping yang tidak diinginkanPenulisan resep tidak jelasVerifikasi oleh apoteker854160Implementasi sistem resep elektronikKepala Farmasi30/06/2025Belum Dimulai
PR-002Identifikasi PasienKesalahan identifikasiPasien salah mendapat tindakanProsedur identifikasi tidak diikutiGelang identitas pasien935135Penerapan verifikasi identitas ganda (nama & no.RM)Kepala Keperawatan15/05/2025Dalam Proses
PR-003Handover ShiftInformasi penting tidak tersampaikanKeterlambatan tindakanWaktu handover terbatasFormulir handover terstruktur765210Implementasi SBAR dan handover di samping pasienDirektur Keperawatan30/04/2025Selesai73242

Sheet 3: Dashboard

Buat sheet ketiga dengan judul “Dashboard” untuk visualisasi dan ringkasan:

DASHBOARD FMEA

RINGKASAN RISIKO:

Jumlah Total Proses yang Dianalisis: [rumus: =COUNT(FMEA Worksheet.A2:A1000)]
Jumlah Risiko Tinggi (RPN > 100): [rumus: =COUNTIFS('FMEA Worksheet'.J2:J1000;">100")]
Jumlah Risiko Sedang (40 ≤ RPN ≤ 100): [rumus: =COUNTIFS('FMEA Worksheet'.J2:J1000;">=40")-COUNTIFS('FMEA Worksheet'.J2:J1000;">100")]
Jumlah Risiko Rendah (RPN < 40): [rumus: =COUNTIFS('FMEA Worksheet'.J2:J1000;"<40")]

TOP 5 RISIKO BERDASARKAN RPN:
[Di sini Anda bisa menggunakan kombinasi rumus SORT dan INDEX atau membuat area untuk input manual]

GRAFIK:
[Sisipkan grafik batang untuk menampilkan RPN per proses]
[Sisipkan grafik pie untuk distribusi risiko tinggi/sedang/rendah]

Pengaturan Validasi Data

Untuk meningkatkan kegunaan template:

  1. Buat Daftar Dropdown untuk Status Implementasi:
    • Pilih range sel di kolom “Status Implementasi”
    • Buka menu Data > Validity
    • Pilih “List” sebagai kriteria
    • Masukkan nilai: “Belum Dimulai,Dalam Proses,Selesai”
  2. Batasi Nilai S, O, dan D:
    • Pilih range sel di kolom Severity, Occurrence, dan Detection
    • Buka menu Data > Validity
    • Pilih “Decimal” dan atur “minimum=1, maximum=10”
    • Tambahkan pesan error jika nilai di luar rentang
  3. Tambahkan Proteksi pada Rumus:
    • Lindungi sel-sel yang berisi rumus (seperti RPN) agar tidak diubah secara tidak sengaja

Penggunaan

  1. Buka file dengan LibreOffice Calc atau OpenOffice Calc
  2. Baca instruksi pada sheet pertama
  3. Mulai mengisi data FMEA pada sheet “FMEA Worksheet”
  4. Gunakan Dashboard untuk melihat ringkasan analisis

Catatan

  • Format ODS memungkinkan template ini kompatibel dengan berbagai aplikasi spreadsheet open source
  • Rumus dan validasi dapat berbeda sedikit sintaksnya antara aplikasi spreadsheet yang berbeda
  • Gunakan fitur filter dan sort untuk membantu analisis data FMEA

Semoga template ini membantu dalam melakukan analisis FMEA di fasilitas kesehatan Anda!

Commenting 101: “Be kind, and respect each other” // Bersikaplah baik, dan saling menghormati (Indonesian) // Soyez gentils et respectez-vous les uns les autres (French) // Sean amables y respétense mutuamente (Spanish) // 待人友善,互相尊重 (Chinese) // كونوا لطفاء واحترموا بعضكم البعض (Arabic) // Будьте добры и уважайте друг друга (Russian) // Seid freundlich und respektiert einander (German) // 親切にし、お互いを尊重し合いましょう (Japanese) // दयालु बनें, और एक दूसरे का सम्मान करें (Hindi) // Siate gentili e rispettatevi a vicenda (Italian)

Tinggalkan komentar