From a39f26e226bc1988a9a3ea5ec258d3a572d22061 Mon Sep 17 00:00:00 2001 From: Dwi Swandhana Date: Sun, 8 Feb 2026 18:43:37 +0700 Subject: [PATCH] update --- .DS_Store | Bin 8196 -> 10244 bytes htdocs/.DS_Store | Bin 10244 -> 10244 bytes .../app/Http/Controllers/DokterController.php | 55 +++++++++-------- .../Controllers/JsonTransferController.php | 58 ++++++++++++------ htdocs/database/seeders/data/ruangan.json | 4 +- listener/app.py | 3 + 6 files changed, 73 insertions(+), 47 deletions(-) diff --git a/.DS_Store b/.DS_Store index 24d4e937227afa853359d1a28fe89d2b5faa84aa..d23ea32c888d759fe0bb6406ed25438e19fbe76d 100644 GIT binary patch delta 907 zcmZ{j&u{{b)RSr4A{sBifZ5aT41_no)jH}kUdnZvEa_&flRXe}23 z2%r>j8d02XRei0{DX$$D1lIr*R5$|?a42`GFKw;Ij;>9x2u;J`h8*T4D2=y~{r$B_WHqp{ zaj+WLKOb2~xxRLAU>Cf>vln*KC017WllGB#viWrKKv~+W^qV6evlS+5dN}-96p6`f zIcBv9_Ty92jv1%ua?iRvF0a??o10%)T=b{K*=$BC6;xhRa+f*dYLwMzQkJ-qkRQ>c zP9N%qNQ>@qpM=I8n!7*B?KUcC@{AI_&914GDt8L1oZHUlHL54abSf=6HA&@+#knTy zGFMV}wIZ*_bXtxndEWl&@izbQBvTnx%_s#LZQNs-EM?nDluQwr;y>Vg?2Z3lP zhAefzi3`?(01RX#QAZXPgV4X}B1>2?PT~yIkX?rKW{^jN=>pd4$gu{+iP{&V+D`R~ q)n)Ft5tzbw)p$pp>MwKK>A&SM^`6t4Gn8`6sir4Ow4o?ER0QSYdJYY zmG!NI;kG;=c5k*2R$<#%!ptbh473CYB)EZuE6DPVh2NPc^Q#1M0Idc& SiD7a)&(zJK;_OTdOBeyBz$Wnk diff --git a/htdocs/.DS_Store b/htdocs/.DS_Store index 3802f7a79c44fca4ab1492f57c21a1709880362f..f1b6de5ecb4019d31a9d0fc4204714ca0728fb80 100644 GIT binary patch delta 995 zcmZn(XbG6$&nUk!U^hRb{AM13G8SPYLqi<}bMsmqg=$MfV<6MmX!2AMhx*LqvVx?X z{3Hej#adJ_9PEJ66ab`(oeqLluaYlZ*XGv{R1#3BriWNm6KE1!5b>a z!Jy6H$l%2g%#guQ&d|p&i(whV4u+!)w;0|qd}Cx`6k}9k)Mhkcv}Lqs^kDR4jABe? z%wWu9%!24=VuYF_3#FkHV=<7y#!$de%8V9zzO4K0}db wPJS{Zq8S7j7?_HHI`lSQkWpgX%&zc@rJe?HOG?zLLE?EdZW$Peh+B6?0G3q(OaK4? delta 71 zcmV-N0J#5zP=rvBPXQgVP`eKS9kUD&b_5eNIV>PEG&6lHAbUA7Ff1T6Gd7cz6hO1S d76u5j@E#Wdv49l|9V6;}WN diff --git a/htdocs/app/Http/Controllers/DokterController.php b/htdocs/app/Http/Controllers/DokterController.php index 3e0360f0..b74d5c58 100644 --- a/htdocs/app/Http/Controllers/DokterController.php +++ b/htdocs/app/Http/Controllers/DokterController.php @@ -514,33 +514,36 @@ class DokterController extends Controller ); } $yangperludicloning = ''; - if ($key == 'id_selepitel'){ $yangperludicloning = 'lsg_selepitel'; } - if ($key == 'id_selradang'){ $yangperludicloning = 'lsg_selradang'; } - if ($key == 'id_mikroorganisme'){ $yangperludicloning = 'lsg_mikroorganisme'; } - if ($key == 'id_mikroorganismeoptional'){ $yangperludicloning = 'lsg_mikroorganismeoptional'; } - if ($key == 'id_pewarnaanziehlnielsen'){ $yangperludicloning = 'lsg_pewarnaanziehlnielsen'; } - if ($key == 'id_pewarnaanziehlnielsensewaktu'){ $yangperludicloning = 'lsg_pewarnaanziehlnielsensewaktu'; } - if ($key == 'id_pewarnaankoh'){ $yangperludicloning = 'lsg_pewarnaankoh'; } - if ($key == 'id_pewarnaankohoptional'){ $yangperludicloning = 'lsg_pewarnaankohoptional'; } - if ($key == 'id_pewarnaanneisser'){ $yangperludicloning = 'lsg_pewarnaanneisser'; } - if ($key == 'id_pewarnaannegatif'){ $yangperludicloning = 'lsg_pewarnaannegatif'; } - if ($key == 'id_pewarnaanspora'){ $yangperludicloning = 'lsg_pewarnaanspora'; } - if ($key == 'id_pewarnaangiesma'){ $yangperludicloning = 'lsg_pewarnaangiesma'; } - if ($key == 'id_pewarnaangiesmaoptional'){ $yangperludicloning = 'lsg_pewarnaangiesmaoptional'; } + if ($dlp == 'Kultur'){ + if ($key == 'id_selepitel'){ $yangperludicloning = 'lsg_selepitel'; } + if ($key == 'id_selradang'){ $yangperludicloning = 'lsg_selradang'; } + if ($key == 'id_mikroorganisme'){ $yangperludicloning = 'lsg_mikroorganisme'; } + if ($key == 'id_mikroorganismeoptional'){ $yangperludicloning = 'lsg_mikroorganismeoptional'; } + if ($key == 'id_pewarnaanziehlnielsen'){ $yangperludicloning = 'lsg_pewarnaanziehlnielsen'; } + if ($key == 'id_pewarnaanziehlnielsensewaktu'){ $yangperludicloning = 'lsg_pewarnaanziehlnielsensewaktu'; } + if ($key == 'id_pewarnaankoh'){ $yangperludicloning = 'lsg_pewarnaankoh'; } + if ($key == 'id_pewarnaankohoptional'){ $yangperludicloning = 'lsg_pewarnaankohoptional'; } + if ($key == 'id_pewarnaanneisser'){ $yangperludicloning = 'lsg_pewarnaanneisser'; } + if ($key == 'id_pewarnaannegatif'){ $yangperludicloning = 'lsg_pewarnaannegatif'; } + if ($key == 'id_pewarnaanspora'){ $yangperludicloning = 'lsg_pewarnaanspora'; } + if ($key == 'id_pewarnaangiesma'){ $yangperludicloning = 'lsg_pewarnaangiesma'; } + if ($key == 'id_pewarnaangiesmaoptional'){ $yangperludicloning = 'lsg_pewarnaangiesmaoptional'; } + } else { + if ($key == 'lsg_selepitel'){ $yangperludicloning = 'id_selepitel'; } + if ($key == 'lsg_selradang'){ $yangperludicloning = 'id_selradang'; } + if ($key == 'lsg_mikroorganisme'){ $yangperludicloning = 'id_mikroorganisme'; } + if ($key == 'lsg_mikroorganismeoptional'){ $yangperludicloning = 'id_mikroorganismeoptional'; } + if ($key == 'lsg_pewarnaanziehlnielsen'){ $yangperludicloning = 'id_pewarnaanziehlnielsen'; } + if ($key == 'lsg_pewarnaanziehlnielsensewaktu'){ $yangperludicloning = 'id_pewarnaanziehlnielsensewaktu'; } + if ($key == 'lsg_pewarnaankoh'){ $yangperludicloning = 'id_pewarnaankoh'; } + if ($key == 'lsg_pewarnaankohoptional'){ $yangperludicloning = 'id_pewarnaankohoptional'; } + if ($key == 'lsg_pewarnaanneisser'){ $yangperludicloning = 'id_pewarnaanneisser'; } + if ($key == 'lsg_pewarnaannegatif'){ $yangperludicloning = 'id_pewarnaannegatif'; } + if ($key == 'lsg_pewarnaanspora'){ $yangperludicloning = 'id_pewarnaanspora'; } + if ($key == 'lsg_pewarnaangiesma'){ $yangperludicloning = 'id_pewarnaangiesma'; } + if ($key == 'lsg_pewarnaangiesmaoptional'){ $yangperludicloning = 'id_pewarnaangiesmaoptional'; } + } - if ($key == 'lsg_selepitel'){ $yangperludicloning = 'id_selepitel'; } - if ($key == 'lsg_selradang'){ $yangperludicloning = 'id_selradang'; } - if ($key == 'lsg_mikroorganisme'){ $yangperludicloning = 'id_mikroorganisme'; } - if ($key == 'lsg_mikroorganismeoptional'){ $yangperludicloning = 'id_mikroorganismeoptional'; } - if ($key == 'lsg_pewarnaanziehlnielsen'){ $yangperludicloning = 'id_pewarnaanziehlnielsen'; } - if ($key == 'lsg_pewarnaanziehlnielsensewaktu'){ $yangperludicloning = 'id_pewarnaanziehlnielsensewaktu'; } - if ($key == 'lsg_pewarnaankoh'){ $yangperludicloning = 'id_pewarnaankoh'; } - if ($key == 'lsg_pewarnaankohoptional'){ $yangperludicloning = 'id_pewarnaankohoptional'; } - if ($key == 'lsg_pewarnaanneisser'){ $yangperludicloning = 'id_pewarnaanneisser'; } - if ($key == 'lsg_pewarnaannegatif'){ $yangperludicloning = 'id_pewarnaannegatif'; } - if ($key == 'lsg_pewarnaanspora'){ $yangperludicloning = 'id_pewarnaanspora'; } - if ($key == 'lsg_pewarnaangiesma'){ $yangperludicloning = 'id_pewarnaangiesma'; } - if ($key == 'lsg_pewarnaangiesmaoptional'){ $yangperludicloning = 'id_pewarnaangiesmaoptional'; } if ($nm_spesimen == 'SPUTUM' AND !empty($cekganda) AND $yangperludicloning != ''){ foreach($cekganda as $rcloning){ diff --git a/htdocs/app/Http/Controllers/JsonTransferController.php b/htdocs/app/Http/Controllers/JsonTransferController.php index 9b9f599f..2ba16394 100644 --- a/htdocs/app/Http/Controllers/JsonTransferController.php +++ b/htdocs/app/Http/Controllers/JsonTransferController.php @@ -94,37 +94,57 @@ class JsonTransferController extends Controller return response()->download($zipFile); } + public function importTable($table) { + set_time_limit(0); + ini_set('memory_limit', '-1'); + ini_set('max_execution_time', 0); $path = base_path($this->exportPath . $table . '.json'); if (!file_exists($path)) { - return back()->with('error', "File JSON untuk tabel $table tidak ditemukan."); + return back()->with('error', "File tidak ditemukan."); } - DB::statement("TRUNCATE TABLE $table RESTART IDENTITY CASCADE"); + DB::disableQueryLog(); + try { + DB::beginTransaction(); + DB::statement("TRUNCATE TABLE $table RESTART IDENTITY CASCADE"); + $items = Items::fromFile($path); + + $chunk = []; + $batchSize = 1000; + $counter = 0; - $items = Items::fromFile($path); - $chunk = []; + foreach ($items as $row) { + $data = (array) $row; + unset($data['id']); + $chunk[] = $data; + $counter++; - foreach ($items as $row) { - $data = (array) $row; - unset($data['id']); - $chunk[] = (array) $row; - - if (count($chunk) >= 50) { - - DB::table($table)->insert($chunk); - $chunk = []; + if (count($chunk) >= $batchSize) { + DB::table($table)->insert($chunk); + $chunk = []; + if ($counter % 5000 == 0) { + gc_collect_cycles(); + } + } } - unset($row); - } + if (!empty($chunk)) { + DB::table($table)->insert($chunk); + } + $resetSequenceSql = "SELECT setval(pg_get_serial_sequence('$table', 'id'), COALESCE(MAX(id), 1)) FROM $table"; + DB::statement($resetSequenceSql); + DB::commit(); + DB::enableQueryLog(); - if (!empty($chunk)) { - DB::table($table)->insert($chunk); - } + return back()->with('success', 'Import berhasil!'); - return back()->with('success', 'Import berhasil!'); + } catch (\Exception $e) { + DB::rollBack(); + \Log::error("Import Error $table: " . $e->getMessage()); + return back()->with('error', "Error 500 Details: " . $e->getMessage()); + } } public function pull(Request $request){ if (session('previlage') !== 'developer') { diff --git a/htdocs/database/seeders/data/ruangan.json b/htdocs/database/seeders/data/ruangan.json index e54e34e1..22858a4f 100755 --- a/htdocs/database/seeders/data/ruangan.json +++ b/htdocs/database/seeders/data/ruangan.json @@ -136,6 +136,6 @@ {"id":166,"poli":"Core","ruangan":"R.LANTAI 3 - KLS VIP A","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"}, {"id":167,"poli":"Core","ruangan":"R.ICU KAPUAS C - KLS 1 (Dewasa)","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"}, {"id":168,"poli":"Core","ruangan":"KLINIK PEL. UTAMA GRAND PAVILIUN","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"}, -{"id":169,"poli":"Core","ruangan":"LAB MIKROBIOLOGI","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"}, -{"id":170,"poli":"Core","ruangan":"R.HCU RANU PANI - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"} +{"id":170,"poli":"Core","ruangan":"R.HCU RANU PANI - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"}, +{"id":169,"poli":"Core","ruangan":"LAB MIKROBIOLOGI","created_at":"2024-09-23 10:13:14","updated_at":"2026-02-04 13:55:48"} ] \ No newline at end of file diff --git a/listener/app.py b/listener/app.py index ba33b643..45e5458e 100644 --- a/listener/app.py +++ b/listener/app.py @@ -615,6 +615,8 @@ def handle_genexpert_client(conn, addr): session.rollback() finally: session.close() + # Selesai tangani QRY, jangan lanjut parsing umum + continue # ========================================== # SKENARIO 2: ALAT KIRIM HASIL (RESULT / ORU) @@ -632,6 +634,7 @@ def handle_genexpert_client(conn, addr): conn.sendall(full_ack.encode('utf-8')) logging.info(f"[ACK SENT] Untuk hasil ID {incoming_control_id}") print(f"[ACK SENT] Untuk hasil ID {incoming_control_id}") + continue # ========================================== # SKENARIO 3: Handle Pesan Apa Adanya