diff --git a/htdocs/app/Services/AstmMessageService.php b/htdocs/app/Services/AstmMessageService.php index cfa50834..cab0b543 100644 --- a/htdocs/app/Services/AstmMessageService.php +++ b/htdocs/app/Services/AstmMessageService.php @@ -886,30 +886,18 @@ class AstmMessageService try { // Ambil pesan ASTM dari kolom 'message' atau yang relevan $response = $data->rawdt; - if ($data->alat == 'COM1' OR $data->alat == 'COM3'){ - if (isset($data->no_id) AND $data->no_id != ''){ - $rnmpas = $data->rnmpas; - $getnama = explode('|', $rnmpas); - $resultSample = new ResultSample(); - $resultSample->sender_name = $data->alat; - $resultSample->message_datetime = $data->tgl_data; - $resultSample->version_number = 'V1.0'; - $resultSample->patient_id = $data->seq_no; - $resultSample->patient_name_last= $getnama[0]; - $resultSample->accession_number = $data->no_id; - $resultSample->test_status = $data->organisme; - $resultSample->save(); + if ($data->alat == 'COM5' OR $data->alat == 'MGIT BD' OR $data->alat == 'BACTEC BD' OR $data->alat == 'BD MGIT'){ + if ($data->no_id != ''){ + $assembled = $this->reassembleAstmFrames($data->rawdt); + $messages = $this->splitBDAstmMessages($assembled); + foreach ($messages as $msg) { + $ok = $this->processBDAstmResponse($msg, $data); + } DB::table('lis_phoenix')->where('id', $data->id)->update([ - 'processed' => 1 + 'processed' => $ok ? 1 : 9 ]); Periksa::where('nofoto', $data->no_id)->whereNotIn('status', ['Selesai', 'Arsip', 'Dibatalkan (Arsip)', 'Batal'])->update([ - 'status' => 'Data BD di Terima', - ]); - Log::info("Data ASTM BD ", $resultSample->toArray()); - PendaftaranOnListiner::where('rnoreg', $data->no_id)->update([ - 'rtglast' => date('Y-m-d'), - 'flg_vitek1' => 0, - 'flg_vitek2' => 0 + 'status' => 'Data BD di Terima ('.$data->organisme.')', ]); KomponenJawaban::updateOrCreate( [ @@ -917,24 +905,14 @@ class AstmMessageService 'komponen' => 'bd_result', 'isidata' => $data->organisme, ], - [ - 'template' => 'all', - 'created_by' => 'BD' - ] - ); - KomponenJawaban::updateOrCreate( - [ - 'accnumber' => $data->no_id, - 'komponen' => 'bd_result_date', - 'isidata' => $data->tgl_data, - ], [ 'template' => 'Kultur', 'created_by' => 'BD' ] ); + } else { - DB::table('lis_phoenix')->where('id', $data->id)->update([ + DB::table('lis_phoenix')->where('urut', $data->urut)->update([ 'processed' => 9 ]); }