load->model('Diagnosa_model', 'diagnosa'); if (!$this->session->userdata('email')) { redirect('home'); } } public function hasil() { // Kosongkan tabel temporary sebelum diagnosa dimulai $this->diagnosa->kosongkanTemp(); $this->diagnosa->kosongkanTempFinal(); // Tangkap input checkbox gejala $gejala = $this->input->post('gejala'); if (!empty($gejala)) { foreach ($gejala as $g) { $data = ['id_gejala' => $g]; $this->db->insert('temporary', $data); } } // Cek apakah semua gejala dipilih $total_gejala = $this->db->count_all('gejala'); // Jumlah total gejala di tabel if (count($gejala) == $total_gejala) { $data['hasilMax'] = [['nama_penyakit' => 'Gangguan Gizi Buruk Kronis', 'informasi' => 'Kondisi ini terjadi akibat kekurangan nutrisi dalam jangka waktu lama.', 'saran' => 'Segera konsultasikan dengan tenaga medis untuk penanganan lebih lanjut.']]; $data['hasil'] = []; $this->load->view('home/hasil_diagnosa', $data); return; } // Proses perhitungan probabilitas seperti biasa $temp = $this->diagnosa->insertTempFinal(); if (!empty($temp)) { $this->db->insert_batch('temporary_final', $temp); } // Ambil probabilitas setiap penyakit $probKwarshiorkor = $this->diagnosa->getProbPenyakit(1); $probMarasmus = $this->diagnosa->getProbPenyakit(3); $probMarasmusKwarshiokor = $this->diagnosa->getProbPenyakit(4); $probBeriBeri = $this->diagnosa->getProbPenyakit(5); $probSkorbut = $this->diagnosa->getProbPenyakit(6); $data = [ 'kwarshiorkor' => $probKwarshiorkor, 'marasmus' => $probMarasmus, 'marasmus_kwarshiorkor' => $probMarasmusKwarshiokor, 'beri_beri' => $probBeriBeri, 'skorbut' => $probSkorbut ]; $jmlProb = array_sum($data); // $kwarshiorkor = ($jmlProb > 0) ? ($probKwarshiorkor / $jmlProb) : 0; // $marasmus = ($jmlProb > 0) ? ($probMarasmus / $jmlProb) : 0; // $marasmus_kwarshiorkor = ($jmlProb > 0) ? ($probMarasmusKwarshiokor / $jmlProb) : 0; // $beri_beri = ($jmlProb > 0) ? ($probBeriBeri / $jmlProb) : 0; // $skorbut = ($jmlProb > 0) ? ($probSkorbut / $jmlProb) : 0; $kwarshiorkor = @($probKwarshiorkor / $jmlProb); $marasmus = @($probMarasmus / $jmlProb); $marasmus_kwarshiorkor = @($probMarasmusKwarshiokor / $jmlProb); $beri_beri = @($probBeriBeri / $jmlProb); $skorbut = @($probSkorbut / $jmlProb); // Simpan hasil ke database $this->diagnosa->hasilProbKwarshiorkor($kwarshiorkor); $this->diagnosa->hasilProbMarasmus($marasmus); $this->diagnosa->hasilProbMarasmusKwarshiorkor($marasmus_kwarshiorkor); $this->diagnosa->hasilBeriBeri($beri_beri); $this->diagnosa->hasilProbSkorbut($skorbut); // Ambil hasil diagnosa berdasarkan probabilitas terbesar $data['hasil'] = $this->diagnosa->diagnosis(); $data['hasilMax'] = $this->diagnosa->diagnosisMax(); // Simpan daftar konsultasi user $this->diagnosa->insertDaftarKonsult(); if (!empty($gejala)) { $this->diagnosa->insertRiwayatKonsult($gejala); } // Load tampilan hasil diagnosa $this->load->view('home/hasil_diagnosa', $data); } public function export_pdf() { $this->load->model('Diagnosa_model'); $data['riwayat_gejala'] = $this->diagnosa->getAllRiwayat(); $mpdf = new mPDF('utf-8', 'A4'); $html = '
No | Id User | Tanggal | gejala | diagnosis | pengobatan |
---|---|---|---|---|---|
' . $i . ' | ' . $konsul['id_user'] . ' | ' . $konsul['tanggal'] . ' | ' . $konsul['gejala'] . ' | ' . $konsul['diagnosis'] . ' | ' . $konsul['pengobatan'] . '% |