This commit is contained in:
Dwi Swandhana
2026-02-12 10:24:06 +07:00
parent a6807575a2
commit 37826bd08f
2 changed files with 30 additions and 61 deletions
@@ -3282,6 +3282,7 @@ class DokterController extends Controller
'urlhasil' => $urlhasil,
'status' => $status,
'keterangan' => $keterangan,
'spesimen' => $rows->nm_spesimen,
'rawdata' => self::genSurat($rows->id, 'dengan kop'),
);
}
@@ -5,9 +5,6 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Http;
use App\Services\AstmMessageService;
use App\Services\SerialCommunicationService;
use App\Http\Controllers\SendMail;
use App\Http\Controllers\DokterController;
use App\Periksa;
@@ -39,45 +36,7 @@ use Carbon\Carbon;
class FrontpageController extends Controller
{
protected $lisServiceUrl;
public function __construct() {
$this->lisServiceUrl = env('LIS_SERVICE_URL', 'http://10.10.120.72:5000');
}
private function sendRegistrationToLis(array $data){
$payload = [
'command' => 'register_patient',
'data' => [
'patient_name' => $data['nama'],
'patient_id' => $data['noregister'], // Menggunakan no register sebagai ID Pasien
'sample_id' => $data['nofoto'], // Menggunakan nofoto sebagai ID Sampel unik
'test_code' => $data['kd_spesimen'],// Kode tes spesifik untuk GeneXpert (e.g., MTBRIF)
'test_name' => $data['nm_spesimen'],
'dob' => $data['tgllahir'] ? \Carbon\Carbon::parse($data['tgllahir'])->format('Ymd') : '',
'gender' => $data['jk'],
],
];
try {
$response = Http::timeout(30)->post($this->lisServiceUrl . '/command', $payload);
if ($response->failed()) {
Log::error('Gagal mengirim data pendaftaran ke LIS service.', [
'sample_id' => $data['nofoto'],
'status' => $response->status(),
'response' => $response->body()
]);
} else {
Log::info('Data pendaftaran berhasil dikirim ke LIS service.', [
'sample_id' => $data['nofoto'],
'response' => $response->json()
]);
}
} catch (Exception $e) {
Log::error('Koneksi ke LIS service gagal saat pendaftaran.', [
'sample_id' => $data['nofoto'],
'exception' => $e->getMessage()
]);
}
}
public function index() {
$data = [];
$data['antrkrmsitu']= PeriksaSYNC::where('created_by', Session('username'))->where('status', '')->count();
@@ -1737,11 +1696,7 @@ class FrontpageController extends Controller
}
}
}
public function exMoveApiRegister(
Request $request,
AstmMessageService $astmMessageService,
SerialCommunicationService $serialCommunicationService
) {
public function exMoveApiRegister( Request $request ) {
$nofoto = $request->input('nofoto');
$modality = $request->input('reques');
$cekdata = Periksa::where('nofoto', $nofoto)->first();
@@ -1756,20 +1711,33 @@ class FrontpageController extends Controller
'nmexcutor' => Session('nama'),
]);
try {
if ($modality == 'genexpert01' OR $modality == 'genexpert02' OR $modality == 'genexpert03'){
$dataForLis = [
'nama' => $cekdata->nmpasien,
'noregister' => $cekdata->noregister,
'nofoto' => $cekdata->nofoto,
'kd_spesimen' => $cekdata->kd_spesimen,
'nm_spesimen' => $cekdata->nm_spesimen,
'tgllahir' => $cekdata->tgllahirpasien,
'jk' => $cekdata->jkpasien,
];
$this->sendRegistrationToLis($dataForLis);
} else {
$pesan = 'Cannot send on Serial Port From Server';
}
Paslab::updateOrCreate(
[
'rnoreg' => $nofoto,
],
[
'nama' => $nama,
'norm' => $cekdata->noregister,
'rtglast' => $cekdata->mulai,
'alamat' => $cekdata->alamatpasien,
'rjenis' => $cekdata->jkpasien,
'umur' => $cekdata->usia,
'namadok' => $cekdata->ktp,
'ruangan' => 'Mikrobiologi',
'tes' => $cekdata->reques,
'alat' => 'ALL',
'kd_spesimen' => $cekdata->kd_spesimen,
'nm_spesimen' => $cekdata->nm_spesimen,
'tgllahir' => $cekdata->tgllahirpasien,
'flg_vitek1' => false,
'flg_vitek2' => false,
'flg_bd1' => false,
'flg_bd2' => false,
'flg_gxp1' => false,
'flg_gxp2' => false,
'flg_gxp3' => false,
]
);
}catch (Exception $e) {
$pesan = $e->getMessage();
}