Compare commits
370
Commits
duidev
..
513eacbfa1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
513eacbfa1 | ||
|
|
d3ac4fc33f | ||
|
|
f7cb75c9cf | ||
|
|
b793755d95 | ||
|
|
fb6e11c0e6 | ||
|
|
305c87de9a | ||
|
|
3660303c3c | ||
|
|
050ff69068 | ||
|
|
5064baa89e | ||
|
|
8ee7760ad4 | ||
|
|
c6522590fa | ||
|
|
90c7a70214 | ||
|
|
46c6c2f48b | ||
|
|
dd227a88b3 | ||
|
|
0ffa8786c2 | ||
|
|
9fa23b9826 | ||
|
|
3e9e8daea6 | ||
|
|
acac1fe3c8 | ||
|
|
714b6ab26d | ||
|
|
a9c6cf12ca | ||
|
|
930cf48cfe | ||
|
|
a0a2e79067 | ||
|
|
c78d15e67a | ||
|
|
c70d7ebb93 | ||
|
|
03090cbe74 | ||
|
|
45b4f41e57 | ||
|
|
dd14d2ddf5 | ||
|
|
493dfe18eb | ||
|
|
49e94c3fb5 | ||
|
|
4d942523d1 | ||
|
|
35d8211a65 | ||
|
|
b6f2e66729 | ||
|
|
4ffd7fa681 | ||
|
|
362a70fa1a | ||
|
|
cf6fd529b0 | ||
|
|
9ec56cbf5d | ||
|
|
4cfd4307a8 | ||
|
|
264e383b67 | ||
|
|
8863dbb85f | ||
|
|
da5105f219 | ||
|
|
a6b180378b | ||
|
|
667e5924a8 | ||
|
|
ea436f76d8 | ||
|
|
206a90ff2f | ||
|
|
52cc4a58cf | ||
|
|
229c0dd9f3 | ||
|
|
4a48063931 | ||
|
|
04ad16f72a | ||
|
|
22a877f2e7 | ||
|
|
df3396a776 | ||
|
|
b751d782c4 | ||
|
|
453e3db3a3 | ||
|
|
a0bd6b645c | ||
|
|
16eac8512e | ||
|
|
fe89a024a1 | ||
|
|
38ffa918c3 | ||
|
|
d8c6ab7b55 | ||
|
|
bb680d41d3 | ||
|
|
4971ad0d5a | ||
|
|
008400f1e0 | ||
|
|
b3caf1691d | ||
|
|
1a1d58e60a | ||
|
|
1b41f3e6ee | ||
|
|
93ee78982f | ||
|
|
7ca1e3a96e | ||
|
|
e3086919b7 | ||
|
|
f52b4a42e1 | ||
|
|
0c3a29e3b6 | ||
|
|
8628087bfc | ||
|
|
f964939863 | ||
|
|
b139161cca | ||
|
|
2abb6027a6 | ||
|
|
5c5bf0ce19 | ||
|
|
f301de8cb5 | ||
|
|
b7195cc629 | ||
|
|
2b91b18275 | ||
|
|
676ec49cb2 | ||
|
|
b34a379333 | ||
|
|
0c17c91f92 | ||
|
|
20ca52ca4d | ||
|
|
2371584fdc | ||
|
|
fa0ebaa045 | ||
|
|
e2975ea6f2 | ||
|
|
cfc9ec5b76 | ||
|
|
1e9f6f9ddf | ||
|
|
ed406bad08 | ||
|
|
4d025dc57d | ||
|
|
4f7575c7d4 | ||
|
|
e1a3598472 | ||
|
|
6e9951adf6 | ||
|
|
9716fc05f6 | ||
|
|
b0da4e5433 | ||
|
|
f84131e6bf | ||
|
|
9751007863 | ||
|
|
68f6ecc98e | ||
|
|
e850444e12 | ||
|
|
8a96f58858 | ||
|
|
15095734b1 | ||
|
|
500f97f63e | ||
|
|
4f3bb88f68 | ||
|
|
d5c4438b75 | ||
|
|
0e733aa14a | ||
|
|
cd1a8d64b9 | ||
|
|
80d03ac5c1 | ||
|
|
a979b16df4 | ||
|
|
4da0cc6253 | ||
|
|
bbc6dee2c9 | ||
|
|
6a009108e7 | ||
|
|
e3afceee52 | ||
|
|
89d254eae8 | ||
|
|
5a6dfc2a1e | ||
|
|
b418df929f | ||
|
|
7870c17cfc | ||
|
|
d6fd25c41a | ||
|
|
2ae99ec5a0 | ||
|
|
5d3a3eecd0 | ||
|
|
6fb3f5a629 | ||
|
|
52ee41e50c | ||
|
|
d6b59cce4c | ||
|
|
e03381c6aa | ||
|
|
3eb845b503 | ||
|
|
5aed126889 | ||
|
|
2e0461b528 | ||
|
|
95d2f6e507 | ||
|
|
a1ac1f888b | ||
|
|
f7bf4ddf1a | ||
|
|
490e580bd1 | ||
|
|
f27c7430c3 | ||
|
|
e7de471d8a | ||
|
|
6ed786db1b | ||
|
|
4ce48077e6 | ||
|
|
ba793c03f2 | ||
|
|
a67f5fc607 | ||
|
|
5f37ce8def | ||
|
|
9bd38a470e | ||
|
|
3754ae3531 | ||
|
|
27ef021783 | ||
|
|
fa26a01143 | ||
|
|
2dffd56816 | ||
|
|
ab438f0c55 | ||
|
|
5d6afc19af | ||
|
|
c290ac693b | ||
|
|
e3094ff717 | ||
|
|
38251402b8 | ||
|
|
afa2aa1447 | ||
|
|
d6824037d2 | ||
|
|
004085d0e5 | ||
|
|
d9e1af195c | ||
|
|
934c90c412 | ||
|
|
f1a5e63800 | ||
|
|
beb9777832 | ||
|
|
aca2d9d745 | ||
|
|
97fce44ad3 | ||
|
|
cfdf71f816 | ||
|
|
2782f43290 | ||
|
|
b945d8198a | ||
|
|
f930494592 | ||
|
|
fc0864de08 | ||
|
|
632fff4230 | ||
|
|
72041e07ce | ||
|
|
ec0612a1dc | ||
|
|
c96552789e | ||
|
|
08bddf171a | ||
|
|
28d8b283fb | ||
|
|
bbd4a82d49 | ||
|
|
b4d3e2987b | ||
|
|
ff7b6288aa | ||
|
|
e308134a67 | ||
|
|
be74b25ae3 | ||
|
|
b7fba7a91c | ||
|
|
f389483da1 | ||
|
|
1cfb63ab60 | ||
|
|
ae003aaa2f | ||
|
|
5cc7ec4fcf | ||
|
|
4a8006c399 | ||
|
|
e0ac8dd30d | ||
|
|
d59f1a9807 | ||
|
|
90e9382d30 | ||
|
|
9f3ce0c1b7 | ||
|
|
b41981b798 | ||
|
|
86d4a2354b | ||
|
|
b353f00659 | ||
|
|
9d33a2eb51 | ||
|
|
e0edd03157 | ||
|
|
d18c5abd78 | ||
|
|
c3d0929cda | ||
|
|
354f869b13 | ||
|
|
6d23d9c97d | ||
|
|
93c5e9ef09 | ||
|
|
9960f1337d | ||
|
|
26c559b3c6 | ||
|
|
c35df25932 | ||
|
|
af2dd2f819 | ||
|
|
aed5885eb1 | ||
|
|
41cbe00299 | ||
|
|
b8a94e4508 | ||
|
|
9f1a28ae97 | ||
|
|
9b39dfb856 | ||
|
|
924610e36e | ||
|
|
074a260c8c | ||
|
|
3c63cb5d22 | ||
|
|
5274d53681 | ||
|
|
f2e562564d | ||
|
|
dea0da9357 | ||
|
|
b8c61a054b | ||
|
|
f7ccea75dc | ||
|
|
3b61faafbd | ||
|
|
1dac4b9e2a | ||
|
|
638bec1c1c | ||
|
|
fddfe775ce | ||
|
|
6d859d1c6a | ||
|
|
b5ee2d995e | ||
|
|
c018b31c22 | ||
|
|
37826bd08f | ||
|
|
a6807575a2 | ||
|
|
a39f26e226 | ||
|
|
81c5249575 | ||
|
|
6acae8ddc5 | ||
|
|
539d0a8b50 | ||
|
|
6f5f9c179e | ||
|
|
7f0f7439c0 | ||
|
|
cd14cdfdb4 | ||
|
|
9ab8aa2f52 | ||
|
|
434727a6eb | ||
|
|
2592d8190e | ||
|
|
f2c2e3441e | ||
|
|
cbc7fcd1be | ||
|
|
d56a218253 | ||
|
|
077a8af2c2 | ||
|
|
475ff6ef9b | ||
|
|
b242d6726d | ||
|
|
55b9698f69 | ||
|
|
897bbba085 | ||
|
|
3af340d09d | ||
|
|
11bc7e172f | ||
|
|
d8ff19c9b2 | ||
|
|
083de5fb96 | ||
|
|
41139d3df5 | ||
|
|
5865d44110 | ||
|
|
32cd616fac | ||
|
|
db0695803e | ||
|
|
c8542b2816 | ||
|
|
06ea1415cc | ||
|
|
8bb448229c | ||
|
|
5c255e2e83 | ||
|
|
a9ea401f65 | ||
|
|
b0586dac0a | ||
|
|
ae32330ed7 | ||
|
|
2f66799ba3 | ||
|
|
55a1229440 | ||
|
|
c2b25fa4ca | ||
|
|
2752193752 | ||
|
|
7e53d8e1da | ||
|
|
03f087212f | ||
|
|
f773ae23da | ||
|
|
756a6ccc68 | ||
|
|
1e1b2fafed | ||
|
|
355ba42865 | ||
|
|
eff628ae2a | ||
|
|
5df034f972 | ||
|
|
9f0d1118b0 | ||
|
|
ddef9f4ffb | ||
|
|
62fa8c2f9f | ||
|
|
beb0efa075 | ||
|
|
42a2424721 | ||
|
|
6b79efb025 | ||
|
|
c7d542522e | ||
|
|
7ec8d0dbcc | ||
|
|
43cd6afde8 | ||
|
|
607a867376 | ||
|
|
9e3368d69d | ||
|
|
13259e78c8 | ||
|
|
7140bb4e2e | ||
|
|
cb2f8f1a28 | ||
|
|
e1297e0a68 | ||
|
|
14130282ed | ||
|
|
fca937d1de | ||
|
|
b7eea4a204 | ||
|
|
6d9752dca5 | ||
|
|
321be52826 | ||
|
|
9ce76551b9 | ||
|
|
62dd01964a | ||
|
|
7517e70146 | ||
|
|
dd662cdb9f | ||
|
|
1549af8344 | ||
|
|
ff8c7d4c6d | ||
|
|
54160e2e19 | ||
|
|
58cb578332 | ||
|
|
bf70061993 | ||
|
|
cf60f77f13 | ||
|
|
3cd985682f | ||
|
|
8616d20d9c | ||
|
|
950de788d5 | ||
|
|
1d1a300a85 | ||
|
|
a7aaf4befe | ||
|
|
3e5501faa6 | ||
|
|
403cc24bc9 | ||
|
|
f011f8e71e | ||
|
|
8d81bd606e | ||
|
|
6cba217e92 | ||
|
|
5d40f403f1 | ||
|
|
f943337f7c | ||
|
|
22076a7b11 | ||
|
|
a8988d3675 | ||
|
|
146197af3a | ||
|
|
edc26692f9 | ||
|
|
06e9c199b7 | ||
|
|
337dfdb5dd | ||
|
|
5571e206db | ||
|
|
a9afeeb12d | ||
|
|
4583ac6cd7 | ||
|
|
98d6b688e9 | ||
|
|
8be6231df6 | ||
|
|
e7c6d50141 | ||
|
|
3e9db11a83 | ||
|
|
b5ebccf366 | ||
|
|
78b9d8a4ee | ||
|
|
3d3a60c747 | ||
|
|
48dd3b9009 | ||
|
|
6882563cb6 | ||
|
|
e63353db3d | ||
|
|
fdbe9c2522 | ||
|
|
d228103a89 | ||
|
|
3d093a3c30 | ||
|
|
0ad8bf110e | ||
|
|
0adb7b2a76 | ||
|
|
b2c5df08a2 | ||
|
|
8f079b9f6c | ||
|
|
aa0a7897cf | ||
|
|
0520d51179 | ||
|
|
fda1ef3a5c | ||
|
|
6dd49e447b | ||
|
|
c0373c9436 | ||
|
|
34d324c886 | ||
|
|
c0c7c1b5fd | ||
|
|
90ab13dafd | ||
|
|
53564306e0 | ||
|
|
dd4e5e451f | ||
|
|
b2facc5b0e | ||
|
|
5d172ab337 | ||
|
|
684705b383 | ||
|
|
bf4093e01d | ||
|
|
0851bc4b1d | ||
|
|
1cfcc4de31 | ||
|
|
49685c7727 | ||
|
|
5dde5579e2 | ||
|
|
8fd45c65d5 | ||
|
|
406580dc83 | ||
|
|
2c12dd043e | ||
|
|
2d87021d60 | ||
|
|
eafd657bfa | ||
|
|
b107ab9ba7 | ||
|
|
e8d66dec74 | ||
|
|
8e6070e745 | ||
|
|
21a48fb4d7 | ||
|
|
326b3c1285 | ||
|
|
36ebf1bdd6 | ||
|
|
1f52717e5c | ||
|
|
89c33c0d5a | ||
|
|
9c261cd32d | ||
|
|
cf81c9503b | ||
|
|
ab65bfb585 | ||
|
|
7794fc6fdf | ||
|
|
9c78f7c088 | ||
|
|
f0b5e64d16 | ||
|
|
caf54a9dd7 | ||
|
|
9979ce3335 | ||
|
|
2ea8ce8c88 | ||
|
|
968200880d | ||
|
|
33d5d88045 |
No files matched your search
+18
-5
@@ -2,13 +2,26 @@
|
|||||||
|
|
||||||
mergekemain.sh
|
mergekemain.sh
|
||||||
# Ignore Laravel cache, logs, and storage
|
# Ignore Laravel cache, logs, and storage
|
||||||
/htdocs/storage/*
|
/htdocs/.DS_Store
|
||||||
/database
|
|
||||||
!/htdocs/storage/.gitignore
|
|
||||||
/htdocs/.env
|
/htdocs/.env
|
||||||
|
|
||||||
|
/htdocs/vendor/
|
||||||
|
/htdocs/database/seeders/data/
|
||||||
|
/htdocs/listenerlis/
|
||||||
|
|
||||||
|
|
||||||
|
/htdocs/storage/*.key
|
||||||
|
/htdocs/storage/logs/*
|
||||||
|
/htdocs/storage/framework/cache/*
|
||||||
|
/htdocs/storage/framework/sessions/*
|
||||||
|
/htdocs/storage/framework/views/*
|
||||||
|
/node_modules/
|
||||||
|
/npm-debug.log
|
||||||
|
/yarn-error.log
|
||||||
# Ignore bootstrap cache
|
# Ignore bootstrap cache
|
||||||
/htdocs/bootstrap/cache/*
|
/htdocs/bootstrap/cache/*
|
||||||
/htdocs/listenerlis/listener.log
|
|
||||||
/htdocs/listenerlis/tcp_raw_data.bin
|
|
||||||
.env
|
.env
|
||||||
!/htdocs/bootstrap/cache/.gitignore
|
!/htdocs/bootstrap/cache/.gitignore
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
.DS_Store
|
||||||
Vendored
BIN
Binary file not shown.
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class BioCabinet extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'bio_cabinets';
|
||||||
|
protected $guarded = [];
|
||||||
|
|
||||||
|
public function racks()
|
||||||
|
{
|
||||||
|
return $this->hasMany(BioRack::class, 'cabinet_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function specimens()
|
||||||
|
{
|
||||||
|
return $this->hasMany(BioSpecimen::class, 'cabinet_id');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class BioRack extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'bio_racks';
|
||||||
|
protected $guarded = [];
|
||||||
|
|
||||||
|
public function cabinet()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(BioCabinet::class, 'cabinet_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function specimens()
|
||||||
|
{
|
||||||
|
return $this->hasMany(BioSpecimen::class, 'rack_id');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class BioSpecimen extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'bio_specimens';
|
||||||
|
protected $guarded = [];
|
||||||
|
|
||||||
|
protected $appends = ['storage_days'];
|
||||||
|
|
||||||
|
public function cabinet()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(BioCabinet::class, 'cabinet_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function rack()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(BioRack::class, 'rack_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getStorageDaysAttribute()
|
||||||
|
{
|
||||||
|
if (!$this->stored_at) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Carbon::parse($this->stored_at)->diffInDays(Carbon::now());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,8 +3,9 @@
|
|||||||
namespace App\Console\Commands;
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
use Illuminate\Console\Command;
|
use Illuminate\Console\Command;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
use App\Services\AstmMessageService;
|
use App\Services\AstmMessageService;
|
||||||
use App\DataListiner;
|
|
||||||
|
|
||||||
class ProcessAstmMessages extends Command
|
class ProcessAstmMessages extends Command
|
||||||
{
|
{
|
||||||
@@ -22,13 +23,12 @@ class ProcessAstmMessages extends Command
|
|||||||
public function handle()
|
public function handle()
|
||||||
{
|
{
|
||||||
// Ambil data dari DataListener
|
// Ambil data dari DataListener
|
||||||
$dataListener = DataListiner::where('processed', '0')->orderBy('created_at', 'DESC')->get();
|
$dataLocal = DB::table('lis_phoenix')->whereNull('processed')->get();
|
||||||
if ($dataListener) {
|
if ($dataLocal) {
|
||||||
$jumlah = count($dataListener);
|
$jumlah = count($dataLocal);
|
||||||
$pesan = $this->astmMessageService->processAstmMessages($dataListener);
|
$pesan = $this->astmMessageService->processAstmMessagesLokal($dataLocal);
|
||||||
$this->info($jumlah.' Message processed '.$pesan.' at '.date('Y-m-d H:i:s'));
|
$this->info($jumlah.' Message processed Data Lokal '.$pesan.' at '.date('Y-m-d H:i:s'));
|
||||||
} else {
|
|
||||||
$this->info('Skipped Proses at '.date('Y-m-d H:i:s'));
|
|
||||||
}
|
}
|
||||||
|
$this->info('Skipped Proses at '.date('Y-m-d H:i:s'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -17,6 +17,8 @@ class Kernel extends ConsoleKernel
|
|||||||
//$schedule->command('app:sync-lab-results-f-t-p')->everyThirtyMinutes();
|
//$schedule->command('app:sync-lab-results-f-t-p')->everyThirtyMinutes();
|
||||||
//$schedule->command('app:sync-lab-results-serial')->everyThirtyMinutes();
|
//$schedule->command('app:sync-lab-results-serial')->everyThirtyMinutes();
|
||||||
$schedule->command('astm:process-messages')->everyFiveMinutes();
|
$schedule->command('astm:process-messages')->everyFiveMinutes();
|
||||||
|
$schedule->command('backup:clean')->daily()->at('01:00');
|
||||||
|
$schedule->command('backup:run')->daily()->at('01:30');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,12 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class CriticalValueSample extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'critical_value_samples';
|
||||||
|
|
||||||
|
protected $guarded = [];
|
||||||
|
}
|
||||||
@@ -0,0 +1,311 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use App\BioCabinet;
|
||||||
|
use App\BioRack;
|
||||||
|
use App\BioSpecimen;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Session;
|
||||||
|
use Validator;
|
||||||
|
|
||||||
|
class BiorepositoryController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
if (Session::get('previlage') == '') {
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
$data = [];
|
||||||
|
$data['cabinetOptions'] = BioCabinet::orderBy('name', 'ASC')->get();
|
||||||
|
$data['totalCabinets'] = BioCabinet::count();
|
||||||
|
$data['totalRacks'] = BioRack::count();
|
||||||
|
$data['totalSpecimens'] = BioSpecimen::count();
|
||||||
|
$data['specimenRows'] = BioSpecimen::with(['cabinet', 'rack'])
|
||||||
|
->orderBy('stored_at', 'DESC')
|
||||||
|
->orderBy('id', 'DESC')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$data['cabinets'] = BioCabinet::with([
|
||||||
|
'racks' => function ($query) {
|
||||||
|
$query->orderBy('rack_number', 'ASC')->orderBy('code', 'ASC');
|
||||||
|
},
|
||||||
|
'racks.specimens' => function ($query) {
|
||||||
|
$query->orderBy('stored_at', 'ASC');
|
||||||
|
},
|
||||||
|
])->orderBy('name', 'ASC')->get();
|
||||||
|
|
||||||
|
$data['oldestSpecimen'] = BioSpecimen::with(['cabinet', 'rack'])
|
||||||
|
->whereNotNull('stored_at')
|
||||||
|
->orderBy('stored_at', 'ASC')
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$data['oldestStorageDays'] = 0;
|
||||||
|
if ($data['oldestSpecimen']) {
|
||||||
|
$data['oldestStorageDays'] = Carbon::parse($data['oldestSpecimen']->stored_at)->diffInDays(Carbon::now());
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('admin.biorepository', $data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function storeCabinet(Request $request)
|
||||||
|
{
|
||||||
|
$validator = Validator::make($request->all(), [
|
||||||
|
'code' => 'required|max:50|unique:bio_cabinets,code',
|
||||||
|
'name' => 'required|max:150',
|
||||||
|
'location' => 'nullable|max:200',
|
||||||
|
'notes' => 'nullable',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($validator->fails()) {
|
||||||
|
return back()->withErrors($validator)->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
BioCabinet::create([
|
||||||
|
'code' => $request->input('code'),
|
||||||
|
'name' => $request->input('name'),
|
||||||
|
'location' => $request->input('location'),
|
||||||
|
'notes' => $request->input('notes'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/biorepository')->with('success', 'Lemari biorepository berhasil ditambahkan.');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function storeRack(Request $request)
|
||||||
|
{
|
||||||
|
$validator = Validator::make($request->all(), [
|
||||||
|
'cabinet_id' => 'required|exists:bio_cabinets,id',
|
||||||
|
'code' => 'required|max:50',
|
||||||
|
'name' => 'required|max:150',
|
||||||
|
'level' => 'required|integer|min:4|max:6',
|
||||||
|
'capacity' => 'required|integer|min:16|max:100',
|
||||||
|
'notes' => 'nullable',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($validator->fails()) {
|
||||||
|
return back()->withErrors($validator)->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
$exists = BioRack::where('cabinet_id', $request->input('cabinet_id'))
|
||||||
|
->where('code', $request->input('code'))
|
||||||
|
->exists();
|
||||||
|
|
||||||
|
if ($exists) {
|
||||||
|
return back()->withErrors(['code' => 'Kode rack sudah dipakai pada lemari ini.'])->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
$nextRackNumber = ((int) BioRack::where('cabinet_id', $request->input('cabinet_id'))->max('rack_number')) + 1;
|
||||||
|
|
||||||
|
BioRack::create([
|
||||||
|
'cabinet_id' => $request->input('cabinet_id'),
|
||||||
|
'code' => $request->input('code'),
|
||||||
|
'name' => $request->input('name'),
|
||||||
|
'level' => $request->input('level'),
|
||||||
|
'rack_number' => $nextRackNumber,
|
||||||
|
'box_number' => 1,
|
||||||
|
'capacity' => $request->input('capacity'),
|
||||||
|
'notes' => $request->input('notes'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/biorepository')->with('success', 'Rack berhasil ditambahkan.');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function storeSpecimen(Request $request)
|
||||||
|
{
|
||||||
|
$validator = Validator::make($request->all(), [
|
||||||
|
'rack_id' => 'required|exists:bio_racks,id',
|
||||||
|
'kategorisimpan' => 'required|in:A,B,C,D',
|
||||||
|
'shelfnomor' => 'required|integer|min:1',
|
||||||
|
'raknomor' => 'required|integer|min:1',
|
||||||
|
'slotnomor' => 'required|integer|min:1',
|
||||||
|
'boxnomor' => 'required|integer|min:1',
|
||||||
|
'tubenomor' => 'required|integer|min:1',
|
||||||
|
'nmbakteri' => 'nullable|max:200',
|
||||||
|
'strain' => 'nullable|in:Gram Negatif,Gram Positif',
|
||||||
|
'stored_at' => 'required|date',
|
||||||
|
'volume' => 'nullable|numeric|min:0',
|
||||||
|
'volume_ambil' => 'nullable|numeric|min:0',
|
||||||
|
'existing_specimen_id' => 'nullable|integer',
|
||||||
|
]);
|
||||||
|
|
||||||
|
if ($validator->fails()) {
|
||||||
|
return back()->withErrors($validator)->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
$rack = BioRack::find($request->input('rack_id'));
|
||||||
|
$expectedRackNo = $rack->rack_number ?: $rack->id;
|
||||||
|
$expectedBoxNo = $rack->box_number ?: 1;
|
||||||
|
|
||||||
|
if ((int) $request->input('raknomor') !== (int) $expectedRackNo ||
|
||||||
|
(int) $request->input('boxnomor') !== (int) $expectedBoxNo) {
|
||||||
|
return back()->withErrors(['slotnomor' => 'Posisi slot tidak sesuai dengan konfigurasi rack.'])->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((int) $request->input('shelfnomor') < 1 || (int) $request->input('shelfnomor') > (int) $rack->level) {
|
||||||
|
return back()->withErrors(['shelfnomor' => 'Shelf melebihi konfigurasi rack.'])->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((int) $request->input('tubenomor') < 1 || (int) $request->input('tubenomor') > (int) $rack->capacity) {
|
||||||
|
return back()->withErrors(['tubenomor' => 'Nomor tube melebihi kapasitas box pada shelf ini.'])->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
$slotTaken = BioSpecimen::where('rack_id', $rack->id)
|
||||||
|
->where('shelf_number', $request->input('shelfnomor'))
|
||||||
|
->where('tube_number', $request->input('tubenomor'))
|
||||||
|
->first();
|
||||||
|
|
||||||
|
if ($slotTaken) {
|
||||||
|
$existingId = (int) $request->input('existing_specimen_id');
|
||||||
|
if ($existingId !== (int) $slotTaken->id) {
|
||||||
|
return back()->withErrors(['tubenomor' => 'Posisi tube pada shelf ini sudah terisi spesimen.'])->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
$volumeAmbil = (float) $request->input('volume_ambil');
|
||||||
|
if ($volumeAmbil <= 0) {
|
||||||
|
return back()->withErrors(['volume_ambil' => 'Isi volume yang diambil dari spesimen.'])->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
$volumeSekarang = (float) ($slotTaken->volume ?? 0);
|
||||||
|
if ($volumeAmbil > $volumeSekarang) {
|
||||||
|
return back()->withErrors(['volume_ambil' => 'Volume diambil melebihi sisa volume spesimen.'])->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
$slotTaken->volume = (string) ($volumeSekarang - $volumeAmbil);
|
||||||
|
$slotTaken->save();
|
||||||
|
|
||||||
|
return redirect('/biorepository')->with('success', 'Pengambilan volume berhasil. Sisa volume diperbarui.');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$request->filled('nmbakteri') || !$request->filled('strain')) {
|
||||||
|
return back()->withErrors(['nmbakteri' => 'Nama bakteri dan strain wajib diisi untuk spesimen baru.'])->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$request->filled('volume')) {
|
||||||
|
return back()->withErrors(['volume' => 'Volume awal spesimen wajib diisi.'])->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
$atccByUser = strtoupper(preg_replace('/[^A-Za-z0-9]/', '', Session::get('nama', 'UNKNOWN')));
|
||||||
|
if ($atccByUser === '') {
|
||||||
|
$atccByUser = 'UNKNOWN';
|
||||||
|
}
|
||||||
|
|
||||||
|
$generatedCode = implode('-', [
|
||||||
|
$request->input('kategorisimpan'),
|
||||||
|
$request->input('shelfnomor'),
|
||||||
|
$request->input('raknomor'),
|
||||||
|
$request->input('slotnomor'),
|
||||||
|
$request->input('boxnomor'),
|
||||||
|
$request->input('tubenomor'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$baseCode = $generatedCode;
|
||||||
|
$counter = 1;
|
||||||
|
while (BioSpecimen::where('specimen_code', $generatedCode)->exists()) {
|
||||||
|
$counter++;
|
||||||
|
$generatedCode = $baseCode.'-'.$counter;
|
||||||
|
}
|
||||||
|
$sampleid = $request->input('sampleid');
|
||||||
|
if ($sampleid) {
|
||||||
|
$cekdata = Periksa::where('nofoto', $sampleid)->first();
|
||||||
|
if (!$cekdata) {
|
||||||
|
$sampleid = $cekdata->id;
|
||||||
|
} else {
|
||||||
|
$sampleid = null;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$sampleid = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
BioSpecimen::create([
|
||||||
|
'cabinet_id' => $rack->cabinet_id,
|
||||||
|
'rack_id' => $rack->id,
|
||||||
|
'specimen_code' => $generatedCode,
|
||||||
|
'specimen_name' => $request->input('nmbakteri'),
|
||||||
|
'category_storage' => $request->input('kategorisimpan'),
|
||||||
|
'shelf_number' => $request->input('shelfnomor'),
|
||||||
|
'rack_number' => $request->input('raknomor'),
|
||||||
|
'slot_number' => $request->input('shelfnomor'),
|
||||||
|
'box_number' => $request->input('boxnomor'),
|
||||||
|
'tube_number' => $request->input('tubenomor'),
|
||||||
|
'bacteria_name' => $request->input('nmbakteri'),
|
||||||
|
'strain' => $request->input('strain'),
|
||||||
|
'atcc' => $request->input('atcc') ?? $atccByUser,
|
||||||
|
'input_by' => Session::get('nama'),
|
||||||
|
'sampleid' => $sampleid,
|
||||||
|
'stored_at' => $request->input('stored_at'),
|
||||||
|
'storage_condition' => $this->mapStorageCondition($request->input('kategorisimpan')),
|
||||||
|
'volume' => (string) $request->input('volume'),
|
||||||
|
'notes' => $request->input('notes'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/biorepository')->with('success', 'Spesimen berhasil disimpan ke slot terpilih.');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteSpecimen($id)
|
||||||
|
{
|
||||||
|
if (Session::get('previlage') == '') {
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
$specimen = BioSpecimen::find($id);
|
||||||
|
if (!$specimen) {
|
||||||
|
return redirect('/biorepository')->withErrors(['specimen' => 'Data spesimen tidak ditemukan.']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$specimen->delete();
|
||||||
|
|
||||||
|
return redirect('/biorepository')->with('success', 'Spesimen berhasil dihapus.');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteRack($id)
|
||||||
|
{
|
||||||
|
if (Session::get('previlage') == '') {
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
$rack = BioRack::find($id);
|
||||||
|
if (!$rack) {
|
||||||
|
return redirect('/biorepository')->withErrors(['rack' => 'Data rack tidak ditemukan.']);
|
||||||
|
}
|
||||||
|
|
||||||
|
BioSpecimen::where('rack_id', $rack->id)->delete();
|
||||||
|
$rack->delete();
|
||||||
|
|
||||||
|
return redirect('/biorepository')->with('success', 'Rack dan semua spesimennya berhasil dihapus.');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deleteCabinet($id)
|
||||||
|
{
|
||||||
|
if (Session::get('previlage') == '') {
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
$cabinet = BioCabinet::find($id);
|
||||||
|
if (!$cabinet) {
|
||||||
|
return redirect('/biorepository')->withErrors(['cabinet' => 'Data lemari tidak ditemukan.']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$rackIds = BioRack::where('cabinet_id', $cabinet->id)->pluck('id')->toArray();
|
||||||
|
if (!empty($rackIds)) {
|
||||||
|
BioSpecimen::whereIn('rack_id', $rackIds)->delete();
|
||||||
|
BioRack::whereIn('id', $rackIds)->delete();
|
||||||
|
}
|
||||||
|
$cabinet->delete();
|
||||||
|
|
||||||
|
return redirect('/biorepository')->with('success', 'Lemari beserta rack dan spesimennya berhasil dihapus.');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function mapStorageCondition($category)
|
||||||
|
{
|
||||||
|
$mapping = [
|
||||||
|
'A' => 'Suhu Ruang',
|
||||||
|
'B' => '4 Derajat',
|
||||||
|
'C' => '20 Derajat',
|
||||||
|
'D' => '80 Derajat',
|
||||||
|
];
|
||||||
|
|
||||||
|
return $mapping[$category] ?? 'Tidak Diketahui';
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||||
use Illuminate\Routing\Controller as BaseController;
|
use Illuminate\Routing\Controller as BaseController;
|
||||||
@@ -10,6 +11,7 @@ use App\Pasien;
|
|||||||
use App\Riwayat;
|
use App\Riwayat;
|
||||||
use App\Rekaplogbook;
|
use App\Rekaplogbook;
|
||||||
use App\PeriksaTest;
|
use App\PeriksaTest;
|
||||||
|
|
||||||
use Fawno\PhpSerial\SerialDio;
|
use Fawno\PhpSerial\SerialDio;
|
||||||
use Fawno\PhpSerial\SerialConfig;
|
use Fawno\PhpSerial\SerialConfig;
|
||||||
use DateTime;
|
use DateTime;
|
||||||
@@ -25,10 +27,93 @@ use Aranyasen\HL7\Segments\PID;
|
|||||||
use Aranyasen\HL7\Segments\OBX;
|
use Aranyasen\HL7\Segments\OBX;
|
||||||
use Aranyasen\HL7\Segments\NTE;
|
use Aranyasen\HL7\Segments\NTE;
|
||||||
use Aranyasen\HL7\Segments\EVN;
|
use Aranyasen\HL7\Segments\EVN;
|
||||||
|
use Session;
|
||||||
|
|
||||||
class Controller extends BaseController
|
class Controller extends BaseController
|
||||||
{
|
{
|
||||||
use AuthorizesRequests, ValidatesRequests;
|
use AuthorizesRequests, ValidatesRequests;
|
||||||
|
private function cekBatasAtas($value, $rule) {
|
||||||
|
if (!$rule) return false;
|
||||||
|
|
||||||
|
// 1. Cek apakah rule mengandung tanda > atau ≥
|
||||||
|
// Kita gunakan array untuk mengecek berbagai kemungkinan simbol
|
||||||
|
$validSymbols = ['>', '≥', '>', '>='];
|
||||||
|
$found = false;
|
||||||
|
foreach ($validSymbols as $symbol) {
|
||||||
|
if (str_contains($rule, $symbol)) {
|
||||||
|
$found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$found) return false;
|
||||||
|
|
||||||
|
// Ambil angkanya
|
||||||
|
$angka = (int) filter_var($rule, FILTER_SANITIZE_NUMBER_INT);
|
||||||
|
|
||||||
|
// 2. Gunakan >= agar angka 17 tetap dianggap 'S' (Sensitive/Suspect)
|
||||||
|
return $value >= $angka;
|
||||||
|
}
|
||||||
|
private function cekMidRange($value, $rule) {
|
||||||
|
if (!$rule) return false;
|
||||||
|
$rule = trim($rule);
|
||||||
|
|
||||||
|
if ($rule === '-' || $rule === '') return false;
|
||||||
|
if (!str_contains($rule, '-')) return false;
|
||||||
|
|
||||||
|
[$min, $max] = array_map('trim', explode('-', $rule));
|
||||||
|
|
||||||
|
if (!is_numeric($min) || !is_numeric($max)) return false;
|
||||||
|
|
||||||
|
// Midrange biasanya sudah benar, tapi pastikan casting int/float sesuai kebutuhan
|
||||||
|
return $value >= (int)$min && $value <= (int)$max;
|
||||||
|
}
|
||||||
|
private function cekBatasBawah($value, $rule) {
|
||||||
|
if (!$rule) return false;
|
||||||
|
|
||||||
|
// 1. Cek apakah rule mengandung tanda < atau ≤
|
||||||
|
$validSymbols = ['<', '≤', '<', '<='];
|
||||||
|
$found = false;
|
||||||
|
foreach ($validSymbols as $symbol) {
|
||||||
|
if (str_contains($rule, $symbol)) {
|
||||||
|
$found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$found) return false;
|
||||||
|
|
||||||
|
$angka = (int) filter_var($rule, FILTER_SANITIZE_NUMBER_INT);
|
||||||
|
|
||||||
|
// 2. Gunakan <= agar angka 13 tetap dianggap 'R' (Resistant)
|
||||||
|
return $value <= $angka;
|
||||||
|
}
|
||||||
|
protected function cekInterpretasi($value, $data) {
|
||||||
|
try {
|
||||||
|
if ($value === null || $data === null) {
|
||||||
|
|
||||||
|
} else if ($value === '') {
|
||||||
|
|
||||||
|
} else if ($data->batasatas == $value){
|
||||||
|
return "S";
|
||||||
|
} else if ($data->batasbawah == $value){
|
||||||
|
return "R";
|
||||||
|
} else {
|
||||||
|
if ($this->cekBatasAtas($value, $data->batasatas)) {
|
||||||
|
return "S";
|
||||||
|
}
|
||||||
|
if ($this->cekMidRange($value, $data->midrange)) {
|
||||||
|
return "I";
|
||||||
|
}
|
||||||
|
if ($this->cekBatasBawah($value, $data->batasbawah)) {
|
||||||
|
return "R";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
protected function getStyledValue($value, $color, $strong = false) {
|
protected function getStyledValue($value, $color, $strong = false) {
|
||||||
return $strong ? "<strong><font color=\"$color\">$value</font></strong>" : "<font color=\"$color\">$value</font>";
|
return $strong ? "<strong><font color=\"$color\">$value</font></strong>" : "<font color=\"$color\">$value</font>";
|
||||||
}
|
}
|
||||||
@@ -175,6 +260,13 @@ class Controller extends BaseController
|
|||||||
protected function getDefaultData($jenis, $master, $mulai, $akhir, $valcari) {
|
protected function getDefaultData($jenis, $master, $mulai, $akhir, $valcari) {
|
||||||
$query = Periksa::whereNotNull('nofoto');
|
$query = Periksa::whereNotNull('nofoto');
|
||||||
if ($jenis == 'ThisDay') {
|
if ($jenis == 'ThisDay') {
|
||||||
|
return $query->where(function($q) {
|
||||||
|
$q->where(function($sub) {
|
||||||
|
$sub->where('status', '!=', 'Selesai')
|
||||||
|
->where('status', 'not like', 'Dibatalkan%');
|
||||||
|
})->orWhereNull('status');
|
||||||
|
});
|
||||||
|
} else if ($jenis == 'ThisDayPendaftaran') {
|
||||||
return $query->whereDate('daftar', Carbon::today());
|
return $query->whereDate('daftar', Carbon::today());
|
||||||
} else if ($jenis == 'mundur2') {
|
} else if ($jenis == 'mundur2') {
|
||||||
return $query->whereDate('daftar', '>=', Carbon::today()->subDays(2));
|
return $query->whereDate('daftar', '>=', Carbon::today()->subDays(2));
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
@@ -0,0 +1,945 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
use App\XFiles;
|
||||||
|
use App\SIMBHPJenis;
|
||||||
|
use App\SIMBHPReport;
|
||||||
|
use App\User;
|
||||||
|
use App\Ruangan;
|
||||||
|
use App\Services\SimbhpStockService;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
||||||
|
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
|
||||||
|
use Validator;
|
||||||
|
use Session;
|
||||||
|
|
||||||
|
class GudangController extends Controller
|
||||||
|
{
|
||||||
|
public function viewGudangIndex() {
|
||||||
|
if (Session::get('previlage') == ''){
|
||||||
|
return redirect('/login');
|
||||||
|
} else {
|
||||||
|
$tasks = [];
|
||||||
|
$sekarang = date("Y-m-d");
|
||||||
|
$pegawais = User::select('id', 'nama', 'previlage')->orderBy('nama', 'ASC')->get();
|
||||||
|
$cdatane = SIMBHPJenis::all();
|
||||||
|
$cjenis = count($cdatane);
|
||||||
|
if ($cjenis == 0){
|
||||||
|
$tasks['jjenis'][0]['id'] = null;
|
||||||
|
$tasks['jjenis'][0]['jenis'] = 'Belum Ada Jenis Barang';
|
||||||
|
$tasks['jjenis'][0]['kodejenis'] = '';
|
||||||
|
$tasks['jjenis'][0]['satuan'] = '';
|
||||||
|
$tasks['jjenis'][0]['satuan_kecil'] = '';
|
||||||
|
$tasks['jjenis'][0]['konversi_kecil'] = 1;
|
||||||
|
$tasks['jjenis'][0]['stok_minimum'] = 0;
|
||||||
|
} else {
|
||||||
|
$i = 0;
|
||||||
|
foreach($cdatane as $rdata){
|
||||||
|
$tasks['jjenis'][$i]['id'] = $rdata->id;
|
||||||
|
$tasks['jjenis'][$i]['jenis'] = $rdata->jenis;
|
||||||
|
$tasks['jjenis'][$i]['kodejenis'] = $rdata->kodejenis ?? '';
|
||||||
|
$tasks['jjenis'][$i]['satuan'] = $rdata->satuan;
|
||||||
|
$tasks['jjenis'][$i]['satuan_kecil'] = $rdata->satuan_kecil ?? '';
|
||||||
|
$tasks['jjenis'][$i]['konversi_kecil'] = $rdata->konversi_kecil ?? 1;
|
||||||
|
$tasks['jjenis'][$i]['stok_minimum'] = $rdata->stok_minimum ?? 0;
|
||||||
|
$i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$getdebet = SIMBHPReport::select(DB::raw('SUM(pemasukan) as pemasukan'))->groupBy('marking')->first();
|
||||||
|
if (isset($getdebet->pemasukan)){
|
||||||
|
$totpemasukan = $getdebet->pemasukan;
|
||||||
|
} else { $totpemasukan = 0 ;}
|
||||||
|
$getkredit = SIMBHPReport::select(DB::raw('SUM(pengeluaran) as pengeluaran'))->groupBy('marking')->first();
|
||||||
|
if (isset($getkredit->pengeluaran)){
|
||||||
|
$totpepengeluaran = $getkredit->pengeluaran;
|
||||||
|
} else { $totpepengeluaran = 0 ;}
|
||||||
|
|
||||||
|
$tasks['masuk'] = $totpemasukan;
|
||||||
|
$tasks['keluar'] = $totpepengeluaran;
|
||||||
|
$tasks['pegawai'] = $pegawais;
|
||||||
|
$tasks['tahunne'] = date("Y");
|
||||||
|
$tasks['tanggal'] = $sekarang;
|
||||||
|
$tasks['sidebar'] = 'simbhp';
|
||||||
|
$tasks['stat_harian_masuk'] = $this->getAggregateBaseQty('pemasukan', 'harian');
|
||||||
|
$tasks['stat_harian_keluar'] = $this->getAggregateBaseQty('pengeluaran', 'harian');
|
||||||
|
$tasks['stat_bulanan_masuk'] = $this->getAggregateBaseQty('pemasukan', 'bulanan');
|
||||||
|
$tasks['stat_bulanan_keluar'] = $this->getAggregateBaseQty('pengeluaran', 'bulanan');
|
||||||
|
$tasks['stat_tahunan_masuk'] = $this->getAggregateBaseQty('pemasukan', 'tahunan');
|
||||||
|
$tasks['stat_tahunan_keluar'] = $this->getAggregateBaseQty('pengeluaran', 'tahunan');
|
||||||
|
$tasks['stat_perjenis_harian'] = $this->getUsagePerJenis('harian');
|
||||||
|
$tasks['stat_perjenis_bulanan'] = $this->getUsagePerJenis('bulanan');
|
||||||
|
$tasks['stat_perjenis_tahunan'] = $this->getUsagePerJenis('tahunan');
|
||||||
|
$tasks['warningstok'] = $this->getLowStockWarnings();
|
||||||
|
$tasks['expiringSoon'] = $this->getExpiringSoonItems();
|
||||||
|
$tasks['jenisRows'] = $this->getJenisRows();
|
||||||
|
return view('admin.gudang', $tasks);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function jsonRekapbhp() {
|
||||||
|
$arraysurat = [];
|
||||||
|
$getdata = SIMBHPJenis::all();
|
||||||
|
if (!empty($getdata)){
|
||||||
|
foreach($getdata as $hasil){
|
||||||
|
$jenis = $hasil->kodejenis;
|
||||||
|
$satuan = $hasil->satuan;
|
||||||
|
$satuanKecil = $hasil->satuan_kecil ?? '';
|
||||||
|
$konversi = (int) ($hasil->konversi_kecil ?? 1);
|
||||||
|
if ($konversi <= 0) { $konversi = 1; }
|
||||||
|
$tlsjenis = $hasil->jenis;
|
||||||
|
$saldoBase = $this->getStockBaseByJenis($tlsjenis);
|
||||||
|
$saldoakhir = $this->formatStockDisplay($saldoBase, $satuan, $satuanKecil, $konversi);
|
||||||
|
$isWarning = $saldoBase <= (int) ($hasil->stok_minimum ?? 0);
|
||||||
|
$arraysurat[] = array(
|
||||||
|
'id' => $hasil->id,
|
||||||
|
'satuan' => $satuan,
|
||||||
|
'jenis' => $jenis,
|
||||||
|
'tlsjenis' => $tlsjenis,
|
||||||
|
'saldo' => $saldoakhir,
|
||||||
|
'warning' => $isWarning ? 'YA' : 'TIDAK',
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo json_encode($arraysurat);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function jsonSnapshot()
|
||||||
|
{
|
||||||
|
if (Session::get('previlage') == '') {
|
||||||
|
return response()->json(['message' => 'Unauthorized'], 401);
|
||||||
|
}
|
||||||
|
|
||||||
|
$jjenis = [];
|
||||||
|
$cdatane = SIMBHPJenis::orderBy('jenis', 'ASC')->get();
|
||||||
|
if ($cdatane->count() == 0) {
|
||||||
|
$jjenis[] = [
|
||||||
|
'id' => null,
|
||||||
|
'jenis' => 'Belum Ada Jenis Barang',
|
||||||
|
'kodejenis' => '',
|
||||||
|
'satuan' => '',
|
||||||
|
'satuan_kecil' => '',
|
||||||
|
'konversi_kecil' => 1,
|
||||||
|
'stok_minimum' => 0,
|
||||||
|
];
|
||||||
|
} else {
|
||||||
|
foreach ($cdatane as $rdata) {
|
||||||
|
$jjenis[] = [
|
||||||
|
'id' => $rdata->id,
|
||||||
|
'jenis' => $rdata->jenis,
|
||||||
|
'kodejenis' => $rdata->kodejenis ?? '',
|
||||||
|
'satuan' => $rdata->satuan,
|
||||||
|
'satuan_kecil' => $rdata->satuan_kecil ?? '',
|
||||||
|
'konversi_kecil' => $rdata->konversi_kecil ?? 1,
|
||||||
|
'stok_minimum' => $rdata->stok_minimum ?? 0,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->json([
|
||||||
|
'jjenis' => $jjenis,
|
||||||
|
'jenisRows' => $this->getJenisRows(),
|
||||||
|
'warningstok' => $this->getLowStockWarnings(),
|
||||||
|
'expiringSoon' => $this->getExpiringSoonItems(),
|
||||||
|
'stat' => [
|
||||||
|
'harian' => [
|
||||||
|
'masuk' => $this->getAggregateBaseQty('pemasukan', 'harian'),
|
||||||
|
'keluar' => $this->getAggregateBaseQty('pengeluaran', 'harian'),
|
||||||
|
'perjenis' => $this->getUsagePerJenis('harian'),
|
||||||
|
],
|
||||||
|
'bulanan' => [
|
||||||
|
'masuk' => $this->getAggregateBaseQty('pemasukan', 'bulanan'),
|
||||||
|
'keluar' => $this->getAggregateBaseQty('pengeluaran', 'bulanan'),
|
||||||
|
'perjenis' => $this->getUsagePerJenis('bulanan'),
|
||||||
|
],
|
||||||
|
'tahunan' => [
|
||||||
|
'masuk' => $this->getAggregateBaseQty('pemasukan', 'tahunan'),
|
||||||
|
'keluar' => $this->getAggregateBaseQty('pengeluaran', 'tahunan'),
|
||||||
|
'perjenis' => $this->getUsagePerJenis('tahunan'),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function jsonReportbhp(Request $request) {
|
||||||
|
$mulai = $request->input('val01');
|
||||||
|
$akhir = $request->input('val02');
|
||||||
|
$hasil = [];
|
||||||
|
if ($mulai == $akhir OR $akhir == '' OR $akhir == null){
|
||||||
|
$getdata = SIMBHPReport::whereDate('created_at', $mulai)->orderBy('id', 'DESC')->get();
|
||||||
|
} else {
|
||||||
|
$getdata = SIMBHPReport::whereBetween('created_at', [$mulai, $akhir])->orderBy('id', 'DESC')->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($getdata as $rdata){
|
||||||
|
$dd = $rdata->tanggal;
|
||||||
|
$mm = $rdata->bulan;
|
||||||
|
$yy = $rdata->tahun;
|
||||||
|
$pengeluaran = $rdata->pengeluaran;
|
||||||
|
$pemasukan = $rdata->pemasukan;
|
||||||
|
$deskripsiGabungan = trim((string) ($rdata->deskripsi ?? ''));
|
||||||
|
$keteranganGabungan = trim((string) ($rdata->keterangan ?? ''));
|
||||||
|
if ($keteranganGabungan !== '') {
|
||||||
|
$deskripsiGabungan = $deskripsiGabungan !== ''
|
||||||
|
? $deskripsiGabungan.' | '.$keteranganGabungan
|
||||||
|
: $keteranganGabungan;
|
||||||
|
}
|
||||||
|
if ($mm < 10){
|
||||||
|
$tgllengkap = $dd.'-0'.$mm.'-'.$yy;
|
||||||
|
} else {
|
||||||
|
$tgllengkap = $dd.'-'.$mm.'-'.$yy;
|
||||||
|
}
|
||||||
|
if ($pengeluaran == '' OR $pengeluaran == 0) {$total = $pemasukan;}
|
||||||
|
else { $total = $pengeluaran; }
|
||||||
|
|
||||||
|
$hasil[] = array(
|
||||||
|
'id' => $rdata->id,
|
||||||
|
'tanggal' => $rdata->tanggal,
|
||||||
|
'bulan' => $rdata->bulan,
|
||||||
|
'tahun' => $rdata->tahun,
|
||||||
|
'deskripsi' => $deskripsiGabungan,
|
||||||
|
'pemasukan' => $rdata->pemasukan ?? 0,
|
||||||
|
'pengeluaran' => $rdata->pengeluaran ?? 0,
|
||||||
|
'jenis' => $rdata->jenis,
|
||||||
|
'masa_expired' => $rdata->masa_expired,
|
||||||
|
'keterangan' => $rdata->keterangan,
|
||||||
|
'tgllengkap' => $rdata->created_at->format('m/d/Y'),
|
||||||
|
'total' => $total,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
echo json_encode($hasil);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function exportReportbhp(Request $request)
|
||||||
|
{
|
||||||
|
$bulan = strtoupper((string) $request->query('bulan', date('m')));
|
||||||
|
$tahun = strtoupper((string) $request->query('tahun', date('Y')));
|
||||||
|
|
||||||
|
if ($tahun === 'ALL'){
|
||||||
|
$bulan = date("m");
|
||||||
|
$tahun = date("Y");
|
||||||
|
$query = SIMBHPReport::where('bulan', (int) $bulan)->where('tahun', (int) $tahun);
|
||||||
|
} else {
|
||||||
|
$query = SIMBHPReport::where('tahun', (int) $tahun);
|
||||||
|
if ($bulan !== 'ALL') {
|
||||||
|
$query->where('bulan', (int) $bulan);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$rows = $query->orderBy('id', 'DESC')->get();
|
||||||
|
$filename = 'laporan-gudang-bln-'.$bulan.'_thn-'.$tahun.'.xlsx';
|
||||||
|
|
||||||
|
return response()->streamDownload(function () use ($rows) {
|
||||||
|
$spreadsheet = new Spreadsheet();
|
||||||
|
$sheet = $spreadsheet->getActiveSheet();
|
||||||
|
$sheet->setTitle('Laporan Gudang');
|
||||||
|
|
||||||
|
$headers = ['Tanggal', 'Bulan', 'Tahun', 'Jenis', 'Deskripsi', 'Pemasukan', 'Pengeluaran', 'Satuan Transaksi', 'Masa Expired', 'Keterangan'];
|
||||||
|
$sheet->fromArray($headers, null, 'A1');
|
||||||
|
|
||||||
|
$rowNumber = 2;
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$sheet->fromArray([
|
||||||
|
(int) ($row->tanggal ?? 0),
|
||||||
|
(int) ($row->bulan ?? 0),
|
||||||
|
(int) ($row->tahun ?? 0),
|
||||||
|
$row->jenis ?: '-',
|
||||||
|
$row->deskripsi ?: '-',
|
||||||
|
(int) ($row->pemasukan ?? 0),
|
||||||
|
(int) ($row->pengeluaran ?? 0),
|
||||||
|
$row->satuan_transaksi ?: '-',
|
||||||
|
$row->masa_expired ?: '-',
|
||||||
|
$row->keterangan ?: '-',
|
||||||
|
], null, 'A'.$rowNumber);
|
||||||
|
$rowNumber++;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (range('A', 'J') as $col) {
|
||||||
|
$sheet->getColumnDimension($col)->setAutoSize(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$writer = new Xlsx($spreadsheet);
|
||||||
|
$writer->save('php://output');
|
||||||
|
$spreadsheet->disconnectWorksheets();
|
||||||
|
unset($spreadsheet);
|
||||||
|
}, $filename, [
|
||||||
|
'Content-Type' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function jsonReportbhpPaginated(Request $request) {
|
||||||
|
$tanggal = $request->input('tanggal');
|
||||||
|
$deskripsi = $request->input('deskripsi');
|
||||||
|
$kategori = $request->input('kategori');
|
||||||
|
$lm = 10;
|
||||||
|
$limit = ($request->input('limit') == null ? $lm : $request->input('limit'));
|
||||||
|
$order = ($request->input('order') == null ? 'id desc' : $request->input('order'));
|
||||||
|
$data = new SIMBHPReport;
|
||||||
|
if ($kategori != null AND $kategori != '') $data = $data->where('jenis', $kategori);
|
||||||
|
if ($tanggal != null AND $tanggal != '') $data = $data->where('created_at', 'LIKE', '%'.$tanggal.'%');
|
||||||
|
if ($deskripsi != null AND $deskripsi != '') $data = $data->where('deskripsi', 'LIKE', '%'.$deskripsi.'%');
|
||||||
|
$data = $data->orderByRaw($order)->paginate($limit);
|
||||||
|
$hasil = [];
|
||||||
|
$totaldata = $data->total();
|
||||||
|
$debet = 0;
|
||||||
|
$kredit = 0;
|
||||||
|
if (!empty($data)){
|
||||||
|
foreach($data as $rdata){
|
||||||
|
|
||||||
|
$pengeluaran = $rdata->pengeluaran;
|
||||||
|
$pemasukan = $rdata->pemasukan;
|
||||||
|
$deskripsi = $rdata->deskripsi;
|
||||||
|
$jenis = $rdata->jenis;
|
||||||
|
$debet = $debet + $pemasukan;
|
||||||
|
$kredit = $kredit + $pengeluaran;
|
||||||
|
$cekjenis = SIMBHPJenis::where('kodejenis', $jenis)->first();
|
||||||
|
if (isset($cekjenis->id)){
|
||||||
|
$kodejenis = $cekjenis->kodejenis;
|
||||||
|
$jenis = $cekjenis->jenis;
|
||||||
|
$satuan = $cekjenis->satuan;
|
||||||
|
} else {
|
||||||
|
$kodejenis = $jenis;
|
||||||
|
$jenis = '';
|
||||||
|
$satuan = '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($jenis != ''){
|
||||||
|
$deskripsi = '<strong>'.$jenis.'</strong><br />'.$deskripsi;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ($pengeluaran == '' OR $pengeluaran == 0) {
|
||||||
|
$total = $pemasukan;
|
||||||
|
$jentrans = 'PEMASUKAN';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$total = $pengeluaran;
|
||||||
|
$jentrans = 'PENGELUARAN';
|
||||||
|
}
|
||||||
|
|
||||||
|
$hasil[] = array(
|
||||||
|
'id' => $rdata->id,
|
||||||
|
'tanggal' => $rdata->tanggal,
|
||||||
|
'bulan' => $rdata->bulan,
|
||||||
|
'tahun' => $rdata->tahun,
|
||||||
|
'tlsdeskripsi' => $deskripsi,
|
||||||
|
'deskripsi' => $rdata->deskripsi,
|
||||||
|
'pemasukan' => $rdata->pemasukan ?? 0,
|
||||||
|
'pengeluaran' => $rdata->pengeluaran ?? 0,
|
||||||
|
'jenis' => $kodejenis,
|
||||||
|
'masa_expired' => $rdata->masa_expired,
|
||||||
|
'keterangan' => $rdata->keterangan,
|
||||||
|
'tgllengkap' => $rdata->created_at->format('m/d/Y'),
|
||||||
|
'created_at' => $rdata->created_at,
|
||||||
|
'nominal' => $total.' '.$satuan,
|
||||||
|
'jentrans' => $jentrans,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$response = [
|
||||||
|
'message' => 'List Data',
|
||||||
|
'data' => $hasil,
|
||||||
|
'totaldata' => $totaldata
|
||||||
|
];
|
||||||
|
return response()->json($response, 200);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function exAddbarang(Request $request) {
|
||||||
|
$deskripsi = $request->input('set01');
|
||||||
|
$pos = $request->input('set02');
|
||||||
|
$tanggal = $request->input('set03');
|
||||||
|
$jumlah = $request->input('set04');
|
||||||
|
$jenis = $request->input('set05');
|
||||||
|
$postujuan = $request->input('set06'); // also used as kodejenis when $jenis == 'jenis'
|
||||||
|
$alasan = $request->input('set07');
|
||||||
|
$set08 = $request->input('set08');
|
||||||
|
$set09 = $request->input('set09');
|
||||||
|
$set10 = $request->input('set10');
|
||||||
|
$satuanTransaksi = $request->input('set11');
|
||||||
|
$masaExpired = $this->normalizeDateInput($request->input('set12'));
|
||||||
|
if ($tanggal == '' OR is_null($tanggal)){
|
||||||
|
$tanggal = date("d-m-Y");
|
||||||
|
}
|
||||||
|
$total = (int)str_replace(',','',$jumlah);
|
||||||
|
if ($jenis == 'jenis'){ $jumlah = '-';}
|
||||||
|
if ($deskripsi != '' and $pos != '' and $tanggal != '' and $jumlah != '' and $jenis != ''){
|
||||||
|
if ($jenis == 'jenis'){
|
||||||
|
$jenis = $request->input('set02');
|
||||||
|
$satuan = $request->input('set03');
|
||||||
|
$idne = $request->input('set01');
|
||||||
|
$kodeInput = trim((string) $request->input('set06'));
|
||||||
|
$satuanKecil = trim((string) $set08);
|
||||||
|
$konversiKecil = (int) $set09;
|
||||||
|
if ($konversiKecil <= 0){ $konversiKecil = 1; }
|
||||||
|
$stokMinimum = (int) $set10;
|
||||||
|
if ($stokMinimum < 0){ $stokMinimum = 0; }
|
||||||
|
if ($satuanKecil === '') {
|
||||||
|
$konversiKecil = 1;
|
||||||
|
} elseif ($konversiKecil <= 1) {
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Jika memakai satuan kecil, konversi harus lebih dari 1']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($kodeInput !== '') {
|
||||||
|
$kodejenis = strtoupper($kodeInput);
|
||||||
|
$kodejenis = preg_replace('/\s+/', '', $kodejenis);
|
||||||
|
$kodejenis = preg_replace('/[^A-Z0-9._-]/', '', $kodejenis);
|
||||||
|
} else {
|
||||||
|
$kodejenis = strtoupper((string) $jenis);
|
||||||
|
$kodejenis = preg_replace('/\s+/', '', $kodejenis);
|
||||||
|
$kodejenis = preg_replace('/[^A-Z0-9._-]/', '', $kodejenis);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($kodejenis === '' || strlen($kodejenis) < 2 || strlen($kodejenis) > 40) {
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Kode barang wajib (2-40 karakter). Gunakan huruf/angka dan simbol - _ .']);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($idne == 'new' OR $idne == ''){
|
||||||
|
$ceksudah = SIMBHPJenis::where('kodejenis', $kodejenis)->where('satuan', $satuan)->count();
|
||||||
|
if ($ceksudah != 0){
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Sudah Ada, Silahkan Masukkan Jenis Barang Lain']);
|
||||||
|
} else {
|
||||||
|
$input = SIMBHPJenis::create([
|
||||||
|
'kodejenis' => $kodejenis,
|
||||||
|
'jenis' => $jenis,
|
||||||
|
'satuan' => $satuan,
|
||||||
|
'satuan_kecil' => $satuanKecil,
|
||||||
|
'konversi_kecil' => $konversiKecil,
|
||||||
|
'stok_minimum' => $stokMinimum,
|
||||||
|
]);
|
||||||
|
if ($input){
|
||||||
|
if (Schema::hasColumn('simbhpjenis', 'barcode_besar')) {
|
||||||
|
$service = app(SimbhpStockService::class);
|
||||||
|
$setting = $service->getUnitSetting($input);
|
||||||
|
$input->update([
|
||||||
|
'barcode_besar' => $service->makeBarcodeValue((int) $input->id, 'besar'),
|
||||||
|
'barcode_kecil' => ($setting['has_breakdown'] ?? false) ? $service->makeBarcodeValue((int) $input->id, 'kecil') : null,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
return response()->json(['status' => 'Success', 'message' => 'Data '.$jenis.' Sukses Ditambahkan']);
|
||||||
|
} else {
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Gagal di masukkan, silahkan ulangi beberapa saat lagi']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$ceksudah = SIMBHPJenis::where('id', '!=', $idne)->where('kodejenis', $kodejenis)->where('satuan', $satuan)->count();
|
||||||
|
if ($ceksudah != 0){
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Sudah Ada, Silahkan Masukkan Jenis Barang Lain']);
|
||||||
|
} else {
|
||||||
|
$input = SIMBHPJenis::where('id', $idne)->update([
|
||||||
|
'kodejenis' => $kodejenis,
|
||||||
|
'jenis' => $jenis,
|
||||||
|
'satuan' => $satuan,
|
||||||
|
'satuan_kecil' => $satuanKecil,
|
||||||
|
'konversi_kecil' => $konversiKecil,
|
||||||
|
'stok_minimum' => $stokMinimum,
|
||||||
|
]);
|
||||||
|
if ($input){
|
||||||
|
if (Schema::hasColumn('simbhpjenis', 'barcode_besar')) {
|
||||||
|
$row = SIMBHPJenis::find($idne);
|
||||||
|
if ($row) {
|
||||||
|
$service = app(SimbhpStockService::class);
|
||||||
|
$setting = $service->getUnitSetting($row);
|
||||||
|
$row->barcode_besar = $service->makeBarcodeValue((int) $row->id, 'besar');
|
||||||
|
$row->barcode_kecil = ($setting['has_breakdown'] ?? false) ? $service->makeBarcodeValue((int) $row->id, 'kecil') : null;
|
||||||
|
$row->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return response()->json(['status' => 'Success', 'message' => 'Data '.$jenis.' Sukses Diupdate']);
|
||||||
|
} else {
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Gagal di masukkan, silahkan ulangi beberapa saat lagi']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$ahrf = explode("-", $tanggal);
|
||||||
|
$tahun = $ahrf[0];
|
||||||
|
if(isset($ahrf[1])){ $wulan = (int)$ahrf[1]; } else { $wulan = (int)date("m"); }
|
||||||
|
if(isset($ahrf[2])){ $dino = (int)$ahrf[2]; } else { $dino = (int)date("d"); }
|
||||||
|
$unitSetting = $this->getJenisUnitSetting($pos);
|
||||||
|
if ($jenis == 'pemasukan'){
|
||||||
|
if (($satuanTransaksi ?: 'besar') === 'kecil' && !$unitSetting['has_breakdown']) {
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Barang ini belum memiliki setting pecah satuan']);
|
||||||
|
}
|
||||||
|
$qtyBase = $this->calculateBaseQty($pos, $total, $satuanTransaksi ?: 'besar');
|
||||||
|
$bayar = SIMBHPReport::create([
|
||||||
|
'tanggal' => $dino,
|
||||||
|
'bulan' => $wulan,
|
||||||
|
'tahun' => $tahun,
|
||||||
|
'deskripsi' => $deskripsi,
|
||||||
|
'pemasukan' => $total,
|
||||||
|
'pengeluaran' => null,
|
||||||
|
'qty_base' => $qtyBase,
|
||||||
|
'satuan_transaksi' => $satuanTransaksi ?: 'besar',
|
||||||
|
'masa_expired' => $masaExpired,
|
||||||
|
'jenis' => $pos,
|
||||||
|
'keterangan' => '',
|
||||||
|
'marking' => '',
|
||||||
|
]);
|
||||||
|
} else if ($jenis == 'pengeluaran'){
|
||||||
|
if (($satuanTransaksi ?: 'besar') === 'kecil' && !$unitSetting['has_breakdown']) {
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Pengeluaran satuan kecil tidak tersedia untuk barang ini']);
|
||||||
|
}
|
||||||
|
$getnama = User::where('id', $deskripsi)->first();
|
||||||
|
$nama = $getnama->nama ?? 'Unkown';
|
||||||
|
$deskripsi = 'Diterima oleh '.$nama;
|
||||||
|
$qtyBase = $this->calculateBaseQty($pos, $total, $satuanTransaksi ?: 'besar');
|
||||||
|
$stokSaatIni = $this->getStockBaseByJenis($pos);
|
||||||
|
if ($qtyBase > $stokSaatIni){
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Nominal Melebihi Stok']);
|
||||||
|
} else {
|
||||||
|
$bayar = SIMBHPReport::create([
|
||||||
|
'tanggal' => $dino,
|
||||||
|
'bulan' => $wulan,
|
||||||
|
'tahun' => $tahun,
|
||||||
|
'deskripsi' => $deskripsi,
|
||||||
|
'pemasukan' => null,
|
||||||
|
'pengeluaran' => $total,
|
||||||
|
'qty_base' => $qtyBase,
|
||||||
|
'satuan_transaksi' => $satuanTransaksi ?: 'besar',
|
||||||
|
'jenis' => $pos,
|
||||||
|
'keterangan' => '',
|
||||||
|
'marking' => '',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ($jenis == 'opname_pengurangan'){
|
||||||
|
if (($satuanTransaksi ?: 'besar') === 'kecil' && !$unitSetting['has_breakdown']) {
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Pengurangan satuan kecil tidak tersedia untuk barang ini']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$kategori = strtolower(trim((string) $deskripsi));
|
||||||
|
if (!in_array($kategori, ['rusak', 'hilang'], true)) {
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Kategori opname pengurangan tidak valid']);
|
||||||
|
}
|
||||||
|
|
||||||
|
$label = ($kategori === 'hilang') ? 'Barang Hilang' : 'Barang Rusak';
|
||||||
|
$deskripsi = 'Stok Opname - ' . $label;
|
||||||
|
$qtyBase = $this->calculateBaseQty($pos, $total, $satuanTransaksi ?: 'besar');
|
||||||
|
$stokSaatIni = $this->getStockBaseByJenis($pos);
|
||||||
|
if ($qtyBase > $stokSaatIni){
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Nominal Melebihi Stok']);
|
||||||
|
} else {
|
||||||
|
$bayar = SIMBHPReport::create([
|
||||||
|
'tanggal' => $dino,
|
||||||
|
'bulan' => $wulan,
|
||||||
|
'tahun' => $tahun,
|
||||||
|
'deskripsi' => $deskripsi,
|
||||||
|
'pemasukan' => null,
|
||||||
|
'pengeluaran' => $total,
|
||||||
|
'qty_base' => $qtyBase,
|
||||||
|
'satuan_transaksi' => $satuanTransaksi ?: 'besar',
|
||||||
|
'jenis' => $pos,
|
||||||
|
'keterangan' => trim((string) $alasan),
|
||||||
|
'marking' => '',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if ($jenis == 'editor'){
|
||||||
|
if ($alasan == ''){
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Alasan Perubahan Data Wajib Di Isi!!!']);
|
||||||
|
} else {
|
||||||
|
$getdebet = SIMBHPReport::select(DB::raw('SUM(pemasukan) as pemasukan'))->where('jenis', $pos)->groupBy('jenis')->first();
|
||||||
|
if (isset($getdebet->pemasukan)){ $totpemasukan = $getdebet->pemasukan; } else { $totpemasukan = 0 ;}
|
||||||
|
$getkredit = SIMBHPReport::select(DB::raw('SUM(pengeluaran) as pengeluaran'))->where('jenis', $pos)->groupBy('jenis')->first();
|
||||||
|
if (isset($getkredit->pengeluaran)){ $totpepengeluaran = $getkredit->pengeluaran; } else { $totpepengeluaran = 0 ;}
|
||||||
|
$totpepengeluaran = $totpepengeluaran + $total;
|
||||||
|
|
||||||
|
$rdatalama = SIMBHPReport::where('id', $postujuan)->first();
|
||||||
|
$ldeskripsi = $rdatalama->deskripsi;
|
||||||
|
$lpemasukan = $rdatalama->pemasukan;
|
||||||
|
$lpengeluaran = $rdatalama->pengeluaran;
|
||||||
|
$ljenis = $rdatalama->jenis;
|
||||||
|
$marking = $rdatalama->marking;
|
||||||
|
if ($lpengeluaran == '' OR $lpengeluaran == 0) {
|
||||||
|
$satuanEdit = $rdatalama->satuan_transaksi ?: 'besar';
|
||||||
|
$qtyBaseEdit = $this->calculateBaseQty($pos, $total, $satuanEdit);
|
||||||
|
$ltotal = number_format( $lpemasukan , 0 , '.' , ',' );
|
||||||
|
if ($marking != ''){
|
||||||
|
SIMBHPReport::where('marking', $marking)->whereNotIn('id', [$postujuan])->update([
|
||||||
|
'tanggal' => $dino,
|
||||||
|
'bulan' => $wulan,
|
||||||
|
'tahun' => $tahun,
|
||||||
|
'pengeluaran' => $total,
|
||||||
|
'qty_base' => $qtyBaseEdit,
|
||||||
|
'satuan_transaksi' => $satuanEdit
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
$bayar = SIMBHPReport::where('id', $postujuan)->update([
|
||||||
|
'tanggal' => $dino,
|
||||||
|
'bulan' => $wulan,
|
||||||
|
'tahun' => $tahun,
|
||||||
|
'deskripsi' => $deskripsi,
|
||||||
|
'jenis' => $pos,
|
||||||
|
'pemasukan' => $total,
|
||||||
|
'qty_base' => $qtyBaseEdit,
|
||||||
|
'satuan_transaksi' => $satuanEdit,
|
||||||
|
'masa_expired' => $masaExpired,
|
||||||
|
'keterangan' => $alasan,
|
||||||
|
'updated_at' => date("Y-m-d H:i:s")
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
$satuanEdit = $rdatalama->satuan_transaksi ?: 'kecil';
|
||||||
|
$qtyBaseEdit = $this->calculateBaseQty($pos, $total, $satuanEdit);
|
||||||
|
$totpepengeluaran = $totpepengeluaran + $total;
|
||||||
|
if ($totpepengeluaran > $totpemasukan){
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Nominal Melebihi Stok']);
|
||||||
|
} else {
|
||||||
|
$ltotal = number_format( $lpengeluaran , 0 , '.' , ',' );
|
||||||
|
if ($marking != ''){
|
||||||
|
SIMBHPReport::where('marking', $marking)->whereNotIn('id', [$postujuan])->update([
|
||||||
|
'tanggal' => $dino,
|
||||||
|
'bulan' => $wulan,
|
||||||
|
'tahun' => $tahun,
|
||||||
|
'pemasukan' => $total,
|
||||||
|
'qty_base' => $qtyBaseEdit,
|
||||||
|
'satuan_transaksi' => $satuanEdit
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
$bayar = SIMBHPReport::where('id', $postujuan)->update([
|
||||||
|
'tanggal' => $dino,
|
||||||
|
'bulan' => $wulan,
|
||||||
|
'tahun' => $tahun,
|
||||||
|
'deskripsi' => $deskripsi,
|
||||||
|
'jenis' => $pos,
|
||||||
|
'pengeluaran' => $total,
|
||||||
|
'qty_base' => $qtyBaseEdit,
|
||||||
|
'satuan_transaksi' => $satuanEdit,
|
||||||
|
'keterangan' => $alasan,
|
||||||
|
'updated_at' => date("Y-m-d H:i:s")
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$baris1 = '<table class="table table-bordered table-striped"><tr><td colspan=2><p align=center><b>Data Lama</b></p></td><td colspan=2><p align=center><b>Data Perubahan</b></p></td></tr>';
|
||||||
|
$baris2 = '<tr><td>Deskripsi</td><td>'.$ldeskripsi.'</td><td><font color=red>Diubah Menjadi</font></td><td>'.$deskripsi.'</td></tr>';
|
||||||
|
$baris3 = '<tr><td>Jenis</td><td>'.$ljenis.'</td><td><font color=red>Diubah Menjadi</font></td><td>'.$pos.'</td></tr>';
|
||||||
|
$baris4 = '<tr><td>Total</td><td>'.$ltotal.'</td><td><font color=red>Diubah Menjadi</font></td><td>'.$jumlah.'</td></tr>';
|
||||||
|
$baris5 = '<tr><td><b>Dengan Alasan</b></td><td colspan=3>'.$alasan.'</td</tr>';
|
||||||
|
$baris6 = '<tr><td><b>Eksekutor</b></td><td colspan=3>'.Session('nama').'</td</tr></table>';
|
||||||
|
$perubahan = $baris1.$baris2.$baris3.$baris4.$baris5.$baris6;
|
||||||
|
Xfiles::create([
|
||||||
|
'xmarking' => 'SIMBHP-'.$postujuan.'-'.time(),
|
||||||
|
'xtabel' => 'History SIMBHP',
|
||||||
|
'xjenis' => '',
|
||||||
|
'xfile' => $perubahan
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ($alasan == ''){
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Alasan Perubahan Data Wajib Di Isi!!!']);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$rdatalama = SIMBHPReport::where('id', $postujuan)->first();
|
||||||
|
$ldeskripsi = $rdatalama->deskripsi;
|
||||||
|
$lpemasukan = $rdatalama->pemasukan;
|
||||||
|
$lpengeluaran = $rdatalama->pengeluaran;
|
||||||
|
$ljenis = $rdatalama->jenis;
|
||||||
|
$marking = $rdatalama->marking;
|
||||||
|
if ($lpengeluaran == '' or $lpengeluaran == 0) {
|
||||||
|
$ltotal = number_format( $lpemasukan , 0 , '.' , ',' );
|
||||||
|
} else {
|
||||||
|
$ltotal = number_format( $lpengeluaran , 0 , '.' , ',' );
|
||||||
|
}
|
||||||
|
$baris1 = '<table class="table table-bordered table-striped"><tr><td colspan=2><p align=center><b>Data Lama</b></p></td><td colspan=2><p align=center><b>Data Perubahan</b></p></td></tr>';
|
||||||
|
$baris2 = '<tr><td>Deskripsi</td><td>'.$ldeskripsi.'</td><td colspan=2><font color=red>DIHAPUS</font></td></tr>';
|
||||||
|
$baris3 = '<tr><td>Jenis</td><td>'.$ljenis.'</td><td colspan=2><font color=red>DIHAPUS</font></td></tr>';
|
||||||
|
$baris4 = '<tr><td>Total</td><td>'.$ltotal.'</td><td colspan=2><font color=red>DIHAPUS</font></td></tr>';
|
||||||
|
$baris5 = '<tr><td><b>Dengan Alasan</b></td><td colspan=3>'.$alasan.'</td</tr>';
|
||||||
|
$baris6 = '<tr><td><b>Eksekutor</b></td><td colspan=3>'.Session('nama').'</td</tr></table>';
|
||||||
|
$perubahan = $baris1.$baris2.$baris3.$baris4.$baris5.$baris6;
|
||||||
|
|
||||||
|
Xfiles::create([
|
||||||
|
'xmarking' => 'SIMBHP-'.$postujuan.'-'.time(),
|
||||||
|
'xtabel' => 'History SIMBHP',
|
||||||
|
'xjenis' => '',
|
||||||
|
'xfile' => $perubahan
|
||||||
|
]);
|
||||||
|
if ($marking != ''){
|
||||||
|
$bayar = SIMBHPReport::where('marking', $marking)->delete();
|
||||||
|
} else {
|
||||||
|
$bayar = SIMBHPReport::where('id', $postujuan)->delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($bayar){
|
||||||
|
return response()->json(['status' => 'Success', 'message' => 'Transaksi '.$jenis.' Sukses Dilaksanakan']);
|
||||||
|
} else {
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Update Gagal, Pastikan Data Yang anda Isi Sudah Sesuai']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Pastikan Formnya Anda Isi dengan Lengkap']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function exKwitansi(Request $request)
|
||||||
|
{
|
||||||
|
return response()->json([
|
||||||
|
'status' => 'Info',
|
||||||
|
'message' => 'Fitur kwitansi gudang belum diaktifkan pada versi ini.'
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function calculateBaseQty($jenisNama, $qtyInput, $satuanTransaksi = 'besar')
|
||||||
|
{
|
||||||
|
$qtyInput = (int) $qtyInput;
|
||||||
|
if ($qtyInput < 0) { $qtyInput = 0; }
|
||||||
|
$setting = $this->getJenisUnitSetting($jenisNama);
|
||||||
|
$konversi = (int) $setting['konversi'];
|
||||||
|
if ($konversi <= 0) { $konversi = 1; }
|
||||||
|
|
||||||
|
if ($satuanTransaksi === 'kecil') {
|
||||||
|
return $qtyInput;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $qtyInput * $konversi;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getJenisUnitSetting($jenisNama)
|
||||||
|
{
|
||||||
|
$jenis = SIMBHPJenis::where('jenis', $jenisNama)->first();
|
||||||
|
$satuanKecil = trim((string) ($jenis->satuan_kecil ?? ''));
|
||||||
|
$konversi = (int) ($jenis->konversi_kecil ?? 1);
|
||||||
|
if ($konversi <= 0) { $konversi = 1; }
|
||||||
|
$hasBreakdown = ($satuanKecil !== '' && $konversi > 1);
|
||||||
|
|
||||||
|
return [
|
||||||
|
'has_breakdown' => $hasBreakdown,
|
||||||
|
'konversi' => $konversi,
|
||||||
|
'satuan_kecil' => $satuanKecil,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getStockBaseByJenis($jenisNama)
|
||||||
|
{
|
||||||
|
$rows = SIMBHPReport::where('jenis', $jenisNama)->get();
|
||||||
|
$masuk = 0;
|
||||||
|
$keluar = 0;
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
if (!is_null($row->pemasukan) && (int)$row->pemasukan > 0) {
|
||||||
|
$masuk += $this->extractBaseQty($row, 'pemasukan');
|
||||||
|
}
|
||||||
|
if (!is_null($row->pengeluaran) && (int)$row->pengeluaran > 0) {
|
||||||
|
$keluar += $this->extractBaseQty($row, 'pengeluaran');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $masuk - $keluar;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function extractBaseQty($row, $direction = 'pemasukan')
|
||||||
|
{
|
||||||
|
if (!is_null($row->qty_base) && (int)$row->qty_base > 0) {
|
||||||
|
return (int) $row->qty_base;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($direction === 'pengeluaran') {
|
||||||
|
return (int) ($row->pengeluaran ?? 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (int) ($row->pemasukan ?? 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function formatStockDisplay($saldoBase, $satuanBesar, $satuanKecil, $konversi)
|
||||||
|
{
|
||||||
|
$saldoBase = (int) $saldoBase;
|
||||||
|
$konversi = (int) $konversi;
|
||||||
|
if ($konversi <= 1 || $satuanKecil == '') {
|
||||||
|
return number_format($saldoBase, 0, '.', ',').' '.$satuanBesar;
|
||||||
|
}
|
||||||
|
|
||||||
|
$besar = intdiv($saldoBase, $konversi);
|
||||||
|
$kecil = $saldoBase % $konversi;
|
||||||
|
|
||||||
|
return number_format($besar, 0, '.', ',').' '.$satuanBesar.' + '.number_format($kecil, 0, '.', ',').' '.$satuanKecil;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getLowStockWarnings()
|
||||||
|
{
|
||||||
|
$warnings = [];
|
||||||
|
$allJenis = SIMBHPJenis::orderBy('jenis', 'ASC')->get();
|
||||||
|
foreach ($allJenis as $item) {
|
||||||
|
$saldoBase = $this->getStockBaseByJenis($item->jenis);
|
||||||
|
$minimum = (int) ($item->stok_minimum ?? 0);
|
||||||
|
if ($saldoBase <= $minimum) {
|
||||||
|
$warnings[] = [
|
||||||
|
'jenis' => $item->jenis,
|
||||||
|
'saldo' => $this->formatStockDisplay(
|
||||||
|
$saldoBase,
|
||||||
|
$item->satuan,
|
||||||
|
$item->satuan_kecil ?? '',
|
||||||
|
$item->konversi_kecil ?? 1
|
||||||
|
),
|
||||||
|
'minimum' => $minimum,
|
||||||
|
'satuan_kecil' => $item->satuan_kecil ?: $item->satuan,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $warnings;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getExpiringSoonItems()
|
||||||
|
{
|
||||||
|
$today = date('Y-m-d');
|
||||||
|
$limitDate = date('Y-m-d', strtotime('+30 days'));
|
||||||
|
|
||||||
|
$rows = SIMBHPReport::whereNotNull('masa_expired')
|
||||||
|
->whereNotNull('pemasukan')
|
||||||
|
->where('pemasukan', '>', 0)
|
||||||
|
->where('masa_expired', '>=', $today)
|
||||||
|
->where('masa_expired', '<=', $limitDate)
|
||||||
|
->orderBy('masa_expired', 'ASC')
|
||||||
|
->orderBy('id', 'DESC')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$items = [];
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$expiredAt = (string) $row->masa_expired;
|
||||||
|
$daysLeft = (int) floor((strtotime($expiredAt) - strtotime($today)) / 86400);
|
||||||
|
if ($daysLeft < 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$badge = 'warning';
|
||||||
|
if ($daysLeft <= 7) {
|
||||||
|
$badge = 'danger';
|
||||||
|
} elseif ($daysLeft <= 14) {
|
||||||
|
$badge = 'warning';
|
||||||
|
}
|
||||||
|
|
||||||
|
$items[] = [
|
||||||
|
'jenis' => $row->jenis ?: '-',
|
||||||
|
'deskripsi' => $row->deskripsi ?: '-',
|
||||||
|
'qty' => (int) ($row->pemasukan ?? 0),
|
||||||
|
'satuan' => $row->satuan_transaksi ?: 'besar',
|
||||||
|
'tanggal_masuk' => sprintf('%02d-%02d-%04d', (int) $row->tanggal, (int) $row->bulan, (int) $row->tahun),
|
||||||
|
'masa_expired' => date('d-m-Y', strtotime($expiredAt)),
|
||||||
|
'sisa_hari' => $daysLeft,
|
||||||
|
'badge' => $badge,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $items;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getAggregateBaseQty($direction, $scope = 'harian')
|
||||||
|
{
|
||||||
|
$now = date('Y-m-d');
|
||||||
|
$d = (int) date('d', strtotime($now));
|
||||||
|
$m = (int) date('m', strtotime($now));
|
||||||
|
$y = (int) date('Y', strtotime($now));
|
||||||
|
|
||||||
|
$query = SIMBHPReport::query();
|
||||||
|
if ($scope === 'harian') {
|
||||||
|
$query->where('tanggal', $d)->where('bulan', $m)->where('tahun', $y);
|
||||||
|
} elseif ($scope === 'bulanan') {
|
||||||
|
$query->where('bulan', $m)->where('tahun', $y);
|
||||||
|
} else {
|
||||||
|
$query->where('tahun', $y);
|
||||||
|
}
|
||||||
|
|
||||||
|
$rows = $query->get();
|
||||||
|
$total = 0;
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
if ($direction === 'pemasukan' && !is_null($row->pemasukan) && (int)$row->pemasukan > 0) {
|
||||||
|
$total += $this->extractBaseQty($row, 'pemasukan');
|
||||||
|
}
|
||||||
|
if ($direction === 'pengeluaran' && !is_null($row->pengeluaran) && (int)$row->pengeluaran > 0) {
|
||||||
|
$total += $this->extractBaseQty($row, 'pengeluaran');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $total;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getUsagePerJenis($scope = 'harian')
|
||||||
|
{
|
||||||
|
$now = date('Y-m-d');
|
||||||
|
$d = (int) date('d', strtotime($now));
|
||||||
|
$m = (int) date('m', strtotime($now));
|
||||||
|
$y = (int) date('Y', strtotime($now));
|
||||||
|
|
||||||
|
$query = SIMBHPReport::query();
|
||||||
|
if ($scope === 'harian') {
|
||||||
|
$query->where('tanggal', $d)->where('bulan', $m)->where('tahun', $y);
|
||||||
|
} elseif ($scope === 'bulanan') {
|
||||||
|
$query->where('bulan', $m)->where('tahun', $y);
|
||||||
|
} else {
|
||||||
|
$query->where('tahun', $y);
|
||||||
|
}
|
||||||
|
|
||||||
|
$rows = $query->get();
|
||||||
|
$grouped = [];
|
||||||
|
$jenisNames = [];
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$jenis = $row->jenis ?: 'Tidak Diketahui';
|
||||||
|
if (!isset($grouped[$jenis])) {
|
||||||
|
$grouped[$jenis] = ['jenis' => $jenis, 'masuk' => 0, 'keluar' => 0, 'sisa' => 0];
|
||||||
|
$jenisNames[] = $jenis;
|
||||||
|
}
|
||||||
|
if (!is_null($row->pemasukan) && (int)$row->pemasukan > 0) {
|
||||||
|
$grouped[$jenis]['masuk'] += $this->extractBaseQty($row, 'pemasukan');
|
||||||
|
}
|
||||||
|
if (!is_null($row->pengeluaran) && (int)$row->pengeluaran > 0) {
|
||||||
|
$grouped[$jenis]['keluar'] += $this->extractBaseQty($row, 'pengeluaran');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($jenisNames)) {
|
||||||
|
$stockMap = app(SimbhpStockService::class)->getStockBaseByJenisMany($jenisNames);
|
||||||
|
foreach ($grouped as $jenis => &$item) {
|
||||||
|
$item['sisa'] = (int) ($stockMap[$jenis] ?? 0);
|
||||||
|
}
|
||||||
|
unset($item);
|
||||||
|
}
|
||||||
|
|
||||||
|
return array_values($grouped);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function normalizeDateInput($value)
|
||||||
|
{
|
||||||
|
$value = trim((string) $value);
|
||||||
|
if ($value === '') {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (preg_match('/^\d{4}-\d{2}-\d{2}$/', $value)) {
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (preg_match('/^\d{2}-\d{2}-\d{4}$/', $value)) {
|
||||||
|
$parts = explode('-', $value);
|
||||||
|
return $parts[2].'-'.$parts[1].'-'.$parts[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getJenisRows()
|
||||||
|
{
|
||||||
|
$rows = [];
|
||||||
|
$items = SIMBHPJenis::orderBy('jenis', 'ASC')->get();
|
||||||
|
foreach ($items as $item) {
|
||||||
|
$saldoBase = $this->getStockBaseByJenis($item->jenis);
|
||||||
|
$konversi = (int) ($item->konversi_kecil ?? 1);
|
||||||
|
if ($konversi <= 0) { $konversi = 1; }
|
||||||
|
$rows[] = [
|
||||||
|
'id' => $item->id,
|
||||||
|
'kodejenis' => $item->kodejenis ?? '',
|
||||||
|
'jenis' => $item->jenis,
|
||||||
|
'satuan' => $item->satuan,
|
||||||
|
'satuan_kecil' => $item->satuan_kecil ?? '',
|
||||||
|
'konversi_kecil' => $konversi,
|
||||||
|
'stok_minimum' => (int) ($item->stok_minimum ?? 0),
|
||||||
|
'saldo' => $this->formatStockDisplay($saldoBase, $item->satuan, $item->satuan_kecil ?? '', $konversi),
|
||||||
|
'warning' => ($saldoBase <= (int) ($item->stok_minimum ?? 0)) ? 'YA' : 'TIDAK',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $rows;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,162 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\File;
|
||||||
|
use Illuminate\Support\Facades\Response;
|
||||||
|
use ZipArchive;
|
||||||
|
use JsonMachine\Items;
|
||||||
|
class JsonTransferController extends Controller
|
||||||
|
{
|
||||||
|
protected $exportPath = 'database/seeders/data/';
|
||||||
|
public function index(){
|
||||||
|
//POSTGRESS
|
||||||
|
$tables = DB::select("SELECT tablename FROM pg_tables WHERE schemaname = 'public'");
|
||||||
|
$tableNames = array_map(fn($t) => $t->tablename, $tables);
|
||||||
|
//MYSQL
|
||||||
|
//$tables = DB::select('SHOW TABLES');
|
||||||
|
//$tableNames = array_map('current', $tables);
|
||||||
|
$tableInfo = [];
|
||||||
|
|
||||||
|
foreach ($tableNames as $table) {
|
||||||
|
$filePath = base_path($this->exportPath . $table . '.json');
|
||||||
|
$fileSize = file_exists($filePath) ? filesize($filePath) : null;
|
||||||
|
|
||||||
|
$tableInfo[] = [
|
||||||
|
'name' => $table,
|
||||||
|
'size' => $fileSize,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
return view('backup', compact('tableInfo'));
|
||||||
|
}
|
||||||
|
public function generate(){
|
||||||
|
$exportPath = base_path($this->exportPath);
|
||||||
|
if (!is_dir($exportPath)) {
|
||||||
|
mkdir($exportPath, 0777, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
$tables = DB::select("SELECT tablename FROM pg_tables WHERE schemaname = 'public'");
|
||||||
|
$tableNames = array_map(fn($t) => $t->tablename, $tables);
|
||||||
|
|
||||||
|
foreach ($tableNames as $table) {
|
||||||
|
try {
|
||||||
|
$filePath = $exportPath . $table . '.json';
|
||||||
|
$handle = fopen($filePath, 'w');
|
||||||
|
|
||||||
|
fwrite($handle, "[\n");
|
||||||
|
|
||||||
|
$first = true;
|
||||||
|
|
||||||
|
foreach (DB::table($table)->cursor() as $row) {
|
||||||
|
$jsonRow = json_encode($row, JSON_UNESCAPED_UNICODE);
|
||||||
|
|
||||||
|
if (!$first) {
|
||||||
|
fwrite($handle, ",\n");
|
||||||
|
} else {
|
||||||
|
$first = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
fwrite($handle, $jsonRow);
|
||||||
|
}
|
||||||
|
|
||||||
|
fwrite($handle, "\n]");
|
||||||
|
fclose($handle);
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
\Log::warning("Gagal ekspor tabel $table: " . $e->getMessage());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->back()->with('success', 'Semua tabel berhasil diekspor tanpa kehabisan memori.');
|
||||||
|
}
|
||||||
|
public function downloadTable($table){
|
||||||
|
$file = base_path($this->exportPath . $table . '.json');
|
||||||
|
|
||||||
|
if (!file_exists($file)) {
|
||||||
|
return abort(404, 'File tidak ditemukan.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return response()->download($file);
|
||||||
|
}
|
||||||
|
public function downloadAll(){
|
||||||
|
$zipFile = base_path('database/seeders/data/all_json.zip');
|
||||||
|
$zip = new ZipArchive;
|
||||||
|
|
||||||
|
File::delete($zipFile);
|
||||||
|
|
||||||
|
if ($zip->open($zipFile, ZipArchive::CREATE) === TRUE) {
|
||||||
|
foreach (File::files(base_path($this->exportPath)) as $file) {
|
||||||
|
$zip->addFile($file->getRealPath(), basename($file));
|
||||||
|
}
|
||||||
|
$zip->close();
|
||||||
|
}
|
||||||
|
|
||||||
|
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 tidak ditemukan.");
|
||||||
|
}
|
||||||
|
|
||||||
|
DB::disableQueryLog();
|
||||||
|
try {
|
||||||
|
DB::beginTransaction();
|
||||||
|
DB::statement("TRUNCATE TABLE $table RESTART IDENTITY CASCADE");
|
||||||
|
$items = Items::fromFile($path);
|
||||||
|
|
||||||
|
$chunk = [];
|
||||||
|
$batchSize = 1000;
|
||||||
|
$counter = 0;
|
||||||
|
|
||||||
|
foreach ($items as $row) {
|
||||||
|
$data = (array) $row;
|
||||||
|
unset($data['id']);
|
||||||
|
$chunk[] = $data;
|
||||||
|
$counter++;
|
||||||
|
|
||||||
|
if (count($chunk) >= $batchSize) {
|
||||||
|
DB::table($table)->insert($chunk);
|
||||||
|
$chunk = [];
|
||||||
|
if ($counter % 5000 == 0) {
|
||||||
|
gc_collect_cycles();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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();
|
||||||
|
|
||||||
|
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') {
|
||||||
|
abort(403, 'Akses ditolak. Anda tidak memiliki izin untuk menjalankan git pull.');
|
||||||
|
}
|
||||||
|
$gitPath = base_path();
|
||||||
|
$output = shell_exec("cd {$gitPath} && git pull 2>&1");
|
||||||
|
if (auth()->check()) {
|
||||||
|
Log::info('Git pull executed by user: ' . auth()->user()->email.' at '.now());
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('git_output', $output);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use Illuminate\Support\Facades\Http;
|
|
||||||
use Illuminate\Support\Facades\Log;
|
|
||||||
|
|
||||||
class LisController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Alamat IP dan port dari service Python/Flask.
|
|
||||||
* Sebaiknya diletakkan di file .env
|
|
||||||
* LIS_SERVICE_URL=http://127.0.0.1:5000
|
|
||||||
*/
|
|
||||||
protected $lisServiceUrl;
|
|
||||||
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
// Mengambil URL service dari file .env, dengan fallback default
|
|
||||||
$this->lisServiceUrl = env('LIS_SERVICE_URL', 'http://localhost:5000');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mengirim perintah untuk mendaftarkan tes pasien baru ke GeneXpert.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return \Illuminate\Http\JsonResponse
|
|
||||||
*/
|
|
||||||
public function registerPatient(Request $request)
|
|
||||||
{
|
|
||||||
// Validasi input dari request (sangat direkomendasikan)
|
|
||||||
$validatedData = $request->validate([
|
|
||||||
'patient_name' => 'required|string|max:100',
|
|
||||||
'patient_id' => 'required|string|max:50',
|
|
||||||
'sample_id' => 'required|string|max:50',
|
|
||||||
'test_code' => 'required|string|max:20',
|
|
||||||
'test_name' => 'sometimes|string|max:50',
|
|
||||||
'dob' => 'sometimes|date_format:Ymd',
|
|
||||||
'gender' => 'sometimes|string|in:M,F,O,U',
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Membangun payload sesuai format yang diharapkan oleh app.py
|
|
||||||
$payload = [
|
|
||||||
'command' => 'register_patient',
|
|
||||||
'data' => $validatedData,
|
|
||||||
];
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Mengirim request POST ke service Python
|
|
||||||
$response = Http::timeout(30) // Set timeout 30 detik
|
|
||||||
->post($this->lisServiceUrl . '/command', $payload);
|
|
||||||
|
|
||||||
// Cek jika request gagal di level HTTP
|
|
||||||
if ($response->failed()) {
|
|
||||||
Log::error('Gagal terhubung ke LIS service saat registrasi.', [
|
|
||||||
'status' => $response->status(),
|
|
||||||
'body' => $response->body()
|
|
||||||
]);
|
|
||||||
return response()->json([
|
|
||||||
'error' => 'Tidak dapat terhubung ke LIS service.',
|
|
||||||
'details' => $response->body()
|
|
||||||
], 503); // Service Unavailable
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mengembalikan response dari service Python ke client
|
|
||||||
return response()->json($response->json(), $response->status());
|
|
||||||
|
|
||||||
} catch (\Illuminate\Http\Client\ConnectionException $e) {
|
|
||||||
Log::error('Koneksi ke LIS service gagal.', ['exception' => $e->getMessage()]);
|
|
||||||
return response()->json(['error' => 'Koneksi ke LIS service gagal.'], 504); // Gateway Timeout
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mengirim perintah untuk meminta ulang hasil tes berdasarkan Sample ID.
|
|
||||||
*
|
|
||||||
* @param \Illuminate\Http\Request $request
|
|
||||||
* @return \Illuminate\Http\JsonResponse
|
|
||||||
*/
|
|
||||||
public function requestResult(Request $request)
|
|
||||||
{
|
|
||||||
// Validasi input
|
|
||||||
$validatedData = $request->validate([
|
|
||||||
'sample_id' => 'required|string|max:50',
|
|
||||||
]);
|
|
||||||
|
|
||||||
// Membangun payload
|
|
||||||
$payload = [
|
|
||||||
'command' => 'request_result',
|
|
||||||
'data' => $validatedData,
|
|
||||||
];
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Mengirim request POST ke service Python
|
|
||||||
$response = Http::timeout(30)->post($this->lisServiceUrl . '/command', $payload);
|
|
||||||
|
|
||||||
if ($response->failed()) {
|
|
||||||
Log::error('Gagal terhubung ke LIS service saat meminta hasil.', [
|
|
||||||
'status' => $response->status(),
|
|
||||||
'body' => $response->body()
|
|
||||||
]);
|
|
||||||
return response()->json([
|
|
||||||
'error' => 'Tidak dapat terhubung ke LIS service.',
|
|
||||||
'details' => $response->body()
|
|
||||||
], 503);
|
|
||||||
}
|
|
||||||
|
|
||||||
return response()->json($response->json(), $response->status());
|
|
||||||
|
|
||||||
} catch (\Illuminate\Http\Client\ConnectionException $e) {
|
|
||||||
Log::error('Koneksi ke LIS service gagal.', ['exception' => $e->getMessage()]);
|
|
||||||
return response()->json(['error' => 'Koneksi ke LIS service gagal.'], 504);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -13,50 +13,21 @@ use App\Jawaban;
|
|||||||
use App\Pasien;
|
use App\Pasien;
|
||||||
use App\User;
|
use App\User;
|
||||||
use App\Jadwalperiksa;
|
use App\Jadwalperiksa;
|
||||||
|
use App\PendaftaranOnListiner;
|
||||||
|
use Yajra\DataTables\Facades\DataTables;
|
||||||
|
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use DateTime;
|
use DateTime;
|
||||||
use Session;
|
use Session;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
class ListController extends Controller
|
class ListController extends Controller
|
||||||
{
|
{
|
||||||
public function index() {
|
public function index() {
|
||||||
if (Session::get('previlage') == ''){
|
if (Session::get('previlage') == ''){
|
||||||
return redirect('/login');
|
return redirect('/login');
|
||||||
} else {
|
} else {
|
||||||
$polis = Poli::all();
|
return redirect('/pendaftaran');
|
||||||
$ruangans = Ruangan::all();
|
|
||||||
$dokters = Dokter::all();
|
|
||||||
$answers = Jawaban::all();
|
|
||||||
$details = Subjawaban::all();
|
|
||||||
$ruangpolis = Ruangan::groupBy('poli')->select('poli')->get();
|
|
||||||
$data = [];
|
|
||||||
$i = 0;
|
|
||||||
foreach ($ruangpolis as $ruangpoli) {
|
|
||||||
$j = 0;
|
|
||||||
$ruangpoli = $ruangpoli->poli;
|
|
||||||
$rooms = Ruangan::where('poli', $ruangpoli)->get();
|
|
||||||
foreach ($rooms as $room) {
|
|
||||||
$data['ruangans'][$i][$j]['id'] = $room->id;
|
|
||||||
$data['ruangans'][$i][$j]['ruangan'] = $room->ruangan;
|
|
||||||
$j++;
|
|
||||||
}
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
|
|
||||||
$x = 0;
|
|
||||||
foreach ($ruangpolis as $ruangpoli) {
|
|
||||||
$data['ruangpolis'][$x] = $ruangpoli->poli;
|
|
||||||
$x++;
|
|
||||||
}
|
|
||||||
|
|
||||||
$data['polis'] = $polis;
|
|
||||||
$data['dokters'] = $dokters;
|
|
||||||
$data['answers'] = $answers;
|
|
||||||
$data['details'] = $details;
|
|
||||||
|
|
||||||
return view('admin.list', $data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
public function getList(Request $request) {
|
public function getList(Request $request) {
|
||||||
$jenis = $request->input('jenis');
|
$jenis = $request->input('jenis');
|
||||||
@@ -65,155 +36,424 @@ class ListController extends Controller
|
|||||||
$lokasi = $request->input('poli');
|
$lokasi = $request->input('poli');
|
||||||
$valcari = $request->input('valcari');
|
$valcari = $request->input('valcari');
|
||||||
$master = $request->input('master');
|
$master = $request->input('master');
|
||||||
if ($jenis == 'verificationppds'){
|
$lamanurlhasil = url('/').'/hasil/';
|
||||||
$valcari = $request->input('poli');
|
if ($jenis === null){$jenis = '';}
|
||||||
|
if ($master == 'logbook') {
|
||||||
|
list($start, $end) = explode(' - ', $mulai);
|
||||||
|
$startDate = Carbon::createFromFormat('m/d/Y', $start)->format('Y-m-d');
|
||||||
|
$endDate = Carbon::createFromFormat('m/d/Y', $end)->format('Y-m-d');
|
||||||
|
$arraylist = Periksa::select('id', 'mulai', 'akhir', 'noloket', 'nofoto', 'noregister', 'asalpasien', 'nmrs', 'pasien_id', 'nmpasien', 'jkpasien', 'tgllahirpasien', 'tlppasien', 'alamatpasien', 'reques', 'usia', 'berat', 'ruangan_id', 'ruangan', 'dokter_id', 'ppdssenior', 'middleppds', 'ppdsjunior', 'ppdsmiddle2', 'ppdsjunior2', 'analis', 'excutor', 'nmdokter', 'nmppdssenior', 'nmmiddleppds', 'nmppdsjunior', 'nmppdsmiddle2', 'nmppdsjunior2', 'nmanalis', 'nmexcutor', 'klinisi', 'klinis', 'keterangan', 'kesimpulan', 'poli_id', 'asuransi', 'urgensi', 'diagnosa', 'diagnosa2', 'modality', 'dlp', 'daftar', 'foto', 'tgldraft', 'nmdrafter', 'baca', 'nmpembaca', 'verifikasi', 'export', 'tgladendum', 'nmadendum', 'filefoto', 'status', 'created_at', 'updated_at',
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN ppdssenior = $valcari THEN 'SENIOR'
|
||||||
|
WHEN middleppds = $valcari THEN 'MIDDLE'
|
||||||
|
WHEN ppdsjunior = $valcari THEN 'JUNIOR'
|
||||||
|
WHEN ppdsmiddle2 = $valcari THEN 'MIDDLE'
|
||||||
|
ELSE 'JUNIOR'
|
||||||
|
END AS role"));
|
||||||
|
$arraylist = $arraylist->whereBetween('daftar', [$startDate, $endDate]);
|
||||||
|
$arraylist = $arraylist->where(function($query) use ($valcari) {
|
||||||
|
$query->where('ppdssenior', $valcari)
|
||||||
|
->orWhere('middleppds', $valcari)
|
||||||
|
->orWhere('ppdsjunior', $valcari)
|
||||||
|
->orWhere('ppdsmiddle2', $valcari)
|
||||||
|
->orWhere('ppdsjunior2', $valcari);
|
||||||
|
})->get();
|
||||||
|
} else if ($master == 'pengambilan') {
|
||||||
|
$arraylist = Periksa::select(
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', nofoto, '</span>') as tlsnofoto"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', noregister, '</span>') as tlsnoregister"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', nmpasien, '</span>') as tlsnama"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', urgensi, '</span>') as tlsurgensi"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', reques, '</span>') as tlsreques"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', ruangan, '</span>') as tlsruangan"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', daftar, '</span>') as tlsdaftar"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', status, '</span>') as tlsstatus"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', jkpasien, '</span>') as tlsjk"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', asalpasien, '</span>') as asalpasien"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', kd_spesimen, '</span>') as kd_spesimen"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', nm_spesimen, '</span>') as nm_spesimen"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', nmanalis, '</span>') as nmanalis"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', nmppdssenior, '</span>') as nmppdssenior"),
|
||||||
|
DB::raw("CONCAT('<span class=\"badge badge-success\">', nmdokter, '</span>') as nmdokter"),
|
||||||
|
DB::raw("DATE(verifikasi) as daftartgl"),
|
||||||
|
DB::raw("TO_CHAR(verifikasi, 'HH24:MI:SS') as daftarjam"),
|
||||||
|
'nofoto')->whereNotNull('verifikasi')->where('status', '!=', 'Arsip');
|
||||||
|
if ($valcari != ''){
|
||||||
|
if ($jenis == 'norm'){
|
||||||
|
$arraylist = $arraylist->where('noregister', $valcari);
|
||||||
|
} else {
|
||||||
|
$arraylist = $arraylist->where('nofoto', $valcari);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($akhir != '' AND $mulai != $akhir){
|
||||||
|
$arraylist = $arraylist->whereBetween('verifikasi', [$mulai, $akhir]);
|
||||||
|
} else {
|
||||||
|
if ($jenis == 'ThisDay' OR $jenis == ''){
|
||||||
|
if ($mulai == '' OR is_null($mulai)){ $mulai = date('Y-m-d'); }
|
||||||
|
$arraylist = $arraylist->whereDate('verifikasi', $mulai);
|
||||||
|
} else if ($jenis == 'mundur2'){
|
||||||
|
$arraylist = $arraylist->whereDate('verifikasi', '>=', Carbon::today()->subDays(2));
|
||||||
|
} else if ($jenis == 'mundur3'){
|
||||||
|
$arraylist = $arraylist->whereDate('verifikasi', '>=', Carbon::today()->subDays(2));
|
||||||
|
} else {
|
||||||
|
if ($mulai == $akhir){
|
||||||
|
$arraylist = $arraylist->whereDate('verifikasi', $mulai);
|
||||||
|
} else {
|
||||||
|
$arraylist = $arraylist->whereBetween('verifikasi', [$mulai, $akhir]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$arraylist = $arraylist->get();
|
||||||
|
} else if ($master == 'verificationppds' OR $jenis == 'verificationppds') {
|
||||||
|
$arraylist = Periksa::select(
|
||||||
|
'id', 'mulai', 'akhir', 'orderid', 'noloket', 'nofoto', 'noregister', 'asalpasien', 'nmrs', 'pasien_id', 'nmpasien',
|
||||||
|
'jkpasien', 'tgllahirpasien', 'tlppasien', 'alamatpasien', 'reques', 'usia', 'berat', 'ktp', 'bpjs', 'ruangan_id',
|
||||||
|
'ruangan', 'dokter_id', 'ppdssenior', 'middleppds', 'ppdsjunior', 'ppdsmiddle2', 'ppdsjunior2', 'analis', 'excutor',
|
||||||
|
'nmdokter', 'nmppdssenior', 'nmmiddleppds', 'nmppdsjunior', 'nmppdsmiddle2', 'nmppdsjunior2', 'nmanalis', 'nmexcutor',
|
||||||
|
'klinisi', 'klinis', 'keterangan', 'kesimpulan', 'poli_id', 'asuransi', 'urgensi', 'diagnosa', 'diagnosa2', 'modality',
|
||||||
|
'kd_spesimen', 'nm_spesimen', 'dlp', 'daftar', 'foto', 'tgldraft', 'nmdrafter', 'baca', 'nmpembaca', 'verifikasi',
|
||||||
|
'export', 'tgladendum', 'nmadendum', 'filefoto', 'pendaftar', 'status', 'created_at', 'updated_at',
|
||||||
|
'bhp_media', 'bhp_potsputum', 'bhp_poturine', 'bhp_oshe', 'bhp_obyekglass', 'bhp_botolbd', 'bhp_parafilm',
|
||||||
|
'bhp_tips', 'bhp_cottonswab', 'bhp_antibiotiktambahan', 'id_esbl', 'id_mrsa', 'rating', 'nmpendaftar',
|
||||||
|
|
||||||
|
DB::raw("DATE(daftar) as daftartgl"),
|
||||||
|
DB::raw("TO_CHAR(daftar, 'HH24:MI:SS') as daftarjam"),
|
||||||
|
DB::raw("TO_CHAR(export, 'HH24:MI:SS') as cetakjam"),
|
||||||
|
DB::raw("TO_CHAR(verifikasi, 'HH24:MI:SS') as verifikasijam"),
|
||||||
|
DB::raw("TO_CHAR(baca, 'HH24:MI:SS') as bacajam"),
|
||||||
|
DB::raw("TO_CHAR(foto, 'HH24:MI:SS') as fotojam"),
|
||||||
|
|
||||||
|
DB::raw("CASE WHEN jkpasien = 'L' THEN '1' ELSE '' END AS l"),
|
||||||
|
DB::raw("CASE WHEN jkpasien = 'P' THEN '1' ELSE '' END AS p"),
|
||||||
|
DB::raw("CONCAT('https://10.10.123.218/hasil/', nofoto::text) as urlhasil"),
|
||||||
|
|
||||||
|
DB::raw("CASE WHEN asuransi IN ('JKN', 'BPJS') THEN '1' ELSE '' END AS jkn"),
|
||||||
|
DB::raw("CASE WHEN asuransi = 'Billing' THEN '1' ELSE '' END AS billing"),
|
||||||
|
DB::raw("CASE WHEN asuransi = 'GCU' THEN '1' ELSE '' END AS gcu"),
|
||||||
|
DB::raw("CASE WHEN asuransi IN ('MANDIRI', 'Umum') THEN '1' ELSE '' END AS umum"),
|
||||||
|
DB::raw("CASE WHEN asuransi = 'SWASTA' THEN '1' ELSE '' END AS swasta"),
|
||||||
|
DB::raw("CASE WHEN asuransi = 'TAG' THEN '1' ELSE '' END AS tag"),
|
||||||
|
|
||||||
|
DB::raw("CASE WHEN urgensi != 'CITO' THEN '1' ELSE '' END AS elective"),
|
||||||
|
DB::raw("CASE WHEN urgensi = 'CITO' THEN '1' ELSE '' END AS cito"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN '<span class=\"badge badge-danger\">NEW</span>'
|
||||||
|
WHEN status = '' THEN '<span class=\"badge badge-danger\">NEW</span>'
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN '<font color=grey>Batal</font>'
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN '<font color=green>Pemeriksaan Sampel</font>'
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN '<strong>Diperiksa</strong>'
|
||||||
|
WHEN status LIKE '%Draft%' THEN '<font color=green>Draft</font>'
|
||||||
|
WHEN status LIKE '%Expertise%' THEN '<strong><font color=green>Expertise</font></strong>'
|
||||||
|
WHEN status LIKE '%Decliend%' THEN '<strong><font color=red>Decliend</font></strong>'
|
||||||
|
WHEN status LIKE '%Selesai%' THEN '<span class=\"badge badge-success\">Selesai</span>'
|
||||||
|
WHEN status LIKE '%Arsip%' THEN '<span class=\"badge badge-primary\">Arsip</span>'
|
||||||
|
WHEN status LIKE '%Data Vitek di Terima%' THEN '<span class=\"badge badge-warning\">Data Vitek di Terima</span>'
|
||||||
|
ELSE CONCAT('<span class=\"badge badge-info\">', status::text, '</span>')
|
||||||
|
END AS tlsstatus"),
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', nofoto::text, '</span>')
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', nofoto::text, '</font>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', nofoto::text, '</font>')
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', nofoto::text, '</strong>')
|
||||||
|
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', nofoto::text, '</font>')
|
||||||
|
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', nofoto::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', nofoto::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', nofoto::text, '</span>')
|
||||||
|
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', nofoto::text, '</span>')
|
||||||
|
ELSE CONCAT('<font color=red>', nofoto::text, '</font>')
|
||||||
|
END AS tlsnofoto"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', noregister::text, '</span>')
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', noregister::text, '</font>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', noregister::text, '</font>')
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', noregister::text, '</strong>')
|
||||||
|
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', noregister::text, '</font>')
|
||||||
|
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', noregister::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', noregister::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', noregister::text, '</span>')
|
||||||
|
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', noregister::text, '</span>')
|
||||||
|
ELSE CONCAT('<font color=red>', noregister::text, '</font>')
|
||||||
|
END AS tlsnoregister"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', nmpasien::text, '</span>')
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', nmpasien::text, '</font>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', nmpasien::text, '</font>')
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', nmpasien::text, '</strong>')
|
||||||
|
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', nmpasien::text, '</font>')
|
||||||
|
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', nmpasien::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', nmpasien::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', nmpasien::text, '</span>')
|
||||||
|
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', nmpasien::text, '</span>')
|
||||||
|
ELSE CONCAT('<font color=red>', nmpasien::text, '</font>')
|
||||||
|
END AS tlsnama"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', reques::text, '</span>')
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', reques::text, '</font>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', reques::text, '</font>')
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', reques::text, '</strong>')
|
||||||
|
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', reques::text, '</font>')
|
||||||
|
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', reques::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', reques::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', reques::text, '</span>')
|
||||||
|
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', reques::text, '</span>')
|
||||||
|
ELSE CONCAT('<font color=red>', reques::text, '</font>')
|
||||||
|
END AS tlsreques")
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
if ($lokasi == 'allspv'){
|
||||||
|
$arraylist = $arraylist->where('status', 'LIKE', 'Expertise Saved (Un Verified)')->whereNull('periksa.verifikasi');
|
||||||
|
} else {
|
||||||
|
$arraylist = $arraylist->where('status', 'LIKE', 'Expertise Saved (Un Verified)')->whereNull('periksa.verifikasi')->where('periksa.dokter_id', Session('id'));
|
||||||
|
}
|
||||||
|
$arraylist = $arraylist->get();
|
||||||
|
} else {
|
||||||
|
$cairansteril = [15,16,43,47,48,66,96,205,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223];
|
||||||
|
$cci = 20;
|
||||||
|
$darah = [7,8,13,17,29,33,44,107,114,115,199,200,201,202];
|
||||||
|
$feces = [37,38,148,149,204];
|
||||||
|
$hiv = 30;
|
||||||
|
$kukukulit = [165,179,180,181,183,184,185,187,188,189,190,192,194,195,196,198];
|
||||||
|
$kulturtb = [26,40,45,52,53,56,60,61,68,69,75,92,102,122,123,136,137,144,145,152,153,233];
|
||||||
|
$pusdanjaringan = [18,19,32,35,46,49,50,54,57,58,59,72,160,182,186,191,193,197,206,207,208,224,225,226,227,228,234,235,236,237];
|
||||||
|
$sputum = [1,12,23,24,36,39,229,230,231,232];
|
||||||
|
$swab = [2,4,5,9,10,11,21,22,27,34,41,42,51,63,64,65,85,86,87,88,93,97,118,67,121,125,126,127,128,129,130,132,133,134,135,140,147,158,159,161,162,163,164,166,167,168,169,170,171,172,173,174,175,176,177,178];
|
||||||
|
$tcmnontb = [79,80,81,82,83,84,203];
|
||||||
|
$tcmtb = [14,28,55,62,94,104,105,124,138,146];
|
||||||
|
$urine = [3,6,25,31,154,155,156,157];
|
||||||
|
//jikabukan_array_tambahkan_kurung
|
||||||
|
$mapped = array_merge(
|
||||||
|
$cairansteril,
|
||||||
|
[$cci],
|
||||||
|
$darah,
|
||||||
|
$feces,
|
||||||
|
[$hiv],
|
||||||
|
$kukukulit,
|
||||||
|
$kulturtb,
|
||||||
|
$pusdanjaringan,
|
||||||
|
$sputum,
|
||||||
|
$swab,
|
||||||
|
$tcmnontb,
|
||||||
|
$tcmtb,
|
||||||
|
$urine
|
||||||
|
);
|
||||||
|
$batasWaktu = Carbon::now()->subHours(7*24);
|
||||||
|
Periksa::whereNull('status')->where('created_at', '<', $batasWaktu)->update([
|
||||||
|
'status' => 'Dibatalkan (Arsip)',
|
||||||
|
'updated_at' => now()
|
||||||
|
]);
|
||||||
|
$arraylist = Periksa::select(
|
||||||
|
'id', 'mulai', 'akhir', 'orderid', 'noloket', 'nofoto', 'noregister', 'asalpasien', 'nmrs', 'pasien_id', 'nmpasien',
|
||||||
|
'jkpasien', 'tgllahirpasien', 'tlppasien', 'alamatpasien', 'reques', 'usia', 'berat', 'ktp', 'bpjs', 'ruangan_id',
|
||||||
|
'ruangan', 'dokter_id', 'ppdssenior', 'middleppds', 'ppdsjunior', 'ppdsmiddle2', 'ppdsjunior2', 'analis', 'excutor',
|
||||||
|
'nmdokter', 'nmppdssenior', 'nmmiddleppds', 'nmppdsjunior', 'nmppdsmiddle2', 'nmppdsjunior2', 'nmanalis', 'nmexcutor',
|
||||||
|
'klinisi', 'klinis', 'keterangan', 'kesimpulan', 'poli_id', 'asuransi', 'urgensi', 'diagnosa', 'diagnosa2', 'modality',
|
||||||
|
'kd_spesimen', 'nm_spesimen', 'dlp', 'daftar', 'foto', 'tgldraft', 'nmdrafter', 'baca', 'nmpembaca', 'verifikasi',
|
||||||
|
'export', 'tgladendum', 'nmadendum', 'filefoto', 'pendaftar', 'status', 'created_at', 'updated_at',
|
||||||
|
'bhp_media', 'bhp_potsputum', 'bhp_poturine', 'bhp_oshe', 'bhp_obyekglass', 'bhp_botolbd', 'bhp_parafilm',
|
||||||
|
'bhp_tips', 'bhp_cottonswab', 'bhp_antibiotiktambahan', 'id_esbl', 'id_mrsa', 'rating', 'nmpendaftar', 'tanggalregis', 'tanggalsampel', 'pengambilan', 'asalpengirim',
|
||||||
|
DB::raw("DATE(daftar) as daftartgl"),
|
||||||
|
DB::raw("TO_CHAR(daftar, 'HH24:MI:SS') as daftarjam"),
|
||||||
|
DB::raw("TO_CHAR(export, 'HH24:MI:SS') as cetakjam"),
|
||||||
|
DB::raw("TO_CHAR(verifikasi, 'HH24:MI:SS') as verifikasijam"),
|
||||||
|
DB::raw("TO_CHAR(baca, 'HH24:MI:SS') as bacajam"),
|
||||||
|
DB::raw("TO_CHAR(foto, 'HH24:MI:SS') as fotojam"),
|
||||||
|
|
||||||
|
DB::raw("CASE WHEN jkpasien = 'L' THEN '1' ELSE '' END AS l"),
|
||||||
|
DB::raw("CASE WHEN jkpasien = 'P' THEN '1' ELSE '' END AS p"),
|
||||||
|
DB::raw("CONCAT('https://10.10.123.218/hasil/', nofoto::text) as urlhasil"),
|
||||||
|
|
||||||
|
DB::raw("CASE WHEN asuransi IN ('JKN', 'BPJS') THEN '1' ELSE '' END AS jkn"),
|
||||||
|
DB::raw("CASE WHEN asuransi = 'Billing' THEN '1' ELSE '' END AS billing"),
|
||||||
|
DB::raw("CASE WHEN asuransi = 'GCU' THEN '1' ELSE '' END AS gcu"),
|
||||||
|
DB::raw("CASE WHEN asuransi IN ('MANDIRI', 'Umum') THEN '1' ELSE '' END AS umum"),
|
||||||
|
DB::raw("CASE WHEN asuransi = 'SWASTA' THEN '1' ELSE '' END AS swasta"),
|
||||||
|
DB::raw("CASE WHEN asuransi = 'TAG' THEN '1' ELSE '' END AS tag"),
|
||||||
|
|
||||||
|
DB::raw("CASE WHEN urgensi != 'CITO' THEN '1' ELSE '' END AS elective"),
|
||||||
|
DB::raw("CASE WHEN urgensi = 'CITO' THEN '1' ELSE '' END AS cito"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN '<span class=\"badge badge-danger\">NEW</span>'
|
||||||
|
WHEN status = '' THEN '<span class=\"badge badge-danger\">NEW</span>'
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN '<font color=grey>Batal</font>'
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN '<font color=green>Pemeriksaan Sampel</font>'
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN '<strong>Diperiksa</strong>'
|
||||||
|
WHEN status LIKE '%Draft%' THEN '<font color=green>Draft</font>'
|
||||||
|
WHEN status LIKE '%Expertise%' THEN '<strong><font color=green>Expertise</font></strong>'
|
||||||
|
WHEN status LIKE '%Decliend%' THEN '<strong><font color=red>Decliend</font></strong>'
|
||||||
|
WHEN status LIKE '%Selesai%' THEN '<span class=\"badge badge-success\">Selesai</span>'
|
||||||
|
WHEN status LIKE '%Arsip%' THEN '<span class=\"badge badge-primary\">Arsip</span>'
|
||||||
|
WHEN status LIKE '%Pemeriksaan awal%' THEN '<span class=\"badge badge-primary\">Pemeriksaan awal</span>'
|
||||||
|
WHEN status LIKE '%Data Vitek di Terima%' THEN '<span class=\"badge badge-warning\">Data Vitek di Terima</span>'
|
||||||
|
ELSE CONCAT('<span class=\"badge badge-info\">', status::text, '</span>')
|
||||||
|
END AS tlsstatus"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', nofoto::text, '</span>')
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', nofoto::text, '</font>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', nofoto::text, '</font>')
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', nofoto::text, '</strong>')
|
||||||
|
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', nofoto::text, '</font>')
|
||||||
|
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', nofoto::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', nofoto::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', nofoto::text, '</span>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', nofoto::text, '</span>')
|
||||||
|
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', nofoto::text, '</span>')
|
||||||
|
ELSE CONCAT('<font color=red>', nofoto::text, '</font>')
|
||||||
|
END AS tlsnofoto"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', noregister::text, '</span>')
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', noregister::text, '</font>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', noregister::text, '</font>')
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', noregister::text, '</strong>')
|
||||||
|
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', noregister::text, '</font>')
|
||||||
|
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', noregister::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', noregister::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', noregister::text, '</span>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', noregister::text, '</span>')
|
||||||
|
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', noregister::text, '</span>')
|
||||||
|
ELSE CONCAT('<font color=red>', noregister::text, '</font>')
|
||||||
|
END AS tlsnoregister"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', nmpasien::text, '</span>')
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', nmpasien::text, '</font>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', nmpasien::text, '</font>')
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', nmpasien::text, '</strong>')
|
||||||
|
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', nmpasien::text, '</font>')
|
||||||
|
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', nmpasien::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', nmpasien::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', nmpasien::text, '</span>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', nmpasien::text, '</span>')
|
||||||
|
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', nmpasien::text, '</span>')
|
||||||
|
ELSE CONCAT('<font color=red>', nmpasien::text, '</font>')
|
||||||
|
END AS tlsnama"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', reques::text, '</span>')
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', reques::text, '</font>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', reques::text, '</font>')
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', reques::text, '</strong>')
|
||||||
|
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', reques::text, '</font>')
|
||||||
|
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', reques::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', reques::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', reques::text, '</span>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', reques::text, '</span>')
|
||||||
|
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', reques::text, '</span>')
|
||||||
|
ELSE CONCAT('<font color=red>', reques::text, '</font>')
|
||||||
|
END AS tlsreques")
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
if ($master == 'ABSES'){
|
||||||
|
$arraylist = $arraylist->where('nm_spesimen', 'ABSES HEPAR');
|
||||||
|
} else if ($master == 'PERITONEUM'){
|
||||||
|
$arraylist = $arraylist->where('nm_spesimen', 'C. PERITONEUM');
|
||||||
|
} else if ($master == 'PLEURA'){
|
||||||
|
$arraylist = $arraylist->where('nm_spesimen', 'C. PLEURA');
|
||||||
|
} else if ($master == 'SENDI'){
|
||||||
|
$arraylist = $arraylist->where('nm_spesimen', 'C. SENDI');
|
||||||
|
} else if ($master == 'PERITONEUM'){
|
||||||
|
$arraylist = $arraylist->where('nm_spesimen', 'C. PERITONEUM');
|
||||||
|
} else if ($master == 'ASPIRASI'){
|
||||||
|
$arraylist = $arraylist->where('nm_spesimen', 'CAIRAN ASPIRASI');
|
||||||
|
} else if ($master == 'HIDUNG'){
|
||||||
|
$arraylist = $arraylist->where('nm_spesimen', 'SWAB HIDUNG');
|
||||||
|
} else if ($master == 'SWABLAIN'){
|
||||||
|
$arraylist = $arraylist->where('nm_spesimen', 'SWAB LAIN LAIN<');
|
||||||
|
} else if ($master == 'TELINGA'){
|
||||||
|
$arraylist = $arraylist->where('nm_spesimen', 'SWAB TELINGA');
|
||||||
|
} else if ($master == 'TENGGOROKAN'){
|
||||||
|
$arraylist = $arraylist->where('nm_spesimen', 'SWAB TENGGOROKAN');
|
||||||
|
} else if ($master == 'TUBO'){
|
||||||
|
$arraylist = $arraylist->where('nm_spesimen', 'TUBO O');
|
||||||
|
} else if ($master == 'buku01'){
|
||||||
|
$arraylist = $arraylist->whereIn('poli_id', $cairansteril);
|
||||||
|
} else if ($master == 'buku02') {
|
||||||
|
$arraylist = $arraylist->where('poli_id', $cci);
|
||||||
|
} else if ($master == 'buku03') {
|
||||||
|
$arraylist = $arraylist->whereIn('poli_id', $darah);
|
||||||
|
} else if ($master == 'buku04') {
|
||||||
|
$arraylist = $arraylist->where('poli_id', $hiv);
|
||||||
|
} else if ($master == 'buku05') {
|
||||||
|
$arraylist = $arraylist->whereIn('poli_id', $kukukulit);
|
||||||
|
} else if ($master == 'buku06') {
|
||||||
|
$arraylist = $arraylist->whereIn('poli_id', $kulturtb);
|
||||||
|
} else if ($master == 'buku07') {
|
||||||
|
$arraylist = $arraylist->whereIn('poli_id', $pusdanjaringan);
|
||||||
|
} else if ($master == 'buku08') {
|
||||||
|
$arraylist = $arraylist->whereIn('poli_id', $sputum);
|
||||||
|
} else if ($master == 'buku09') {
|
||||||
|
$arraylist = $arraylist->whereIn('poli_id', $swab);
|
||||||
|
} else if ($master == 'buku10') {
|
||||||
|
$arraylist = $arraylist->whereIn('poli_id', $tcmtb);
|
||||||
|
} else if ($master == 'buku11') {
|
||||||
|
$arraylist = $arraylist->whereIn('poli_id', $tcmnontb);
|
||||||
|
} else if ($master == 'buku12') {
|
||||||
|
$arraylist = $arraylist->whereIn('poli_id', $urine);
|
||||||
|
} else if ($master == 'buku13') {
|
||||||
|
$arraylist = $arraylist->whereIn('poli_id', $feces);
|
||||||
|
} else if ($master == 'buku0') {
|
||||||
|
$arraylist = $arraylist->whereNotIn('poli_id', $mapped);
|
||||||
|
} else if ($master == '' OR $master == 'all' OR $master == 'mikro'){
|
||||||
|
// no filter
|
||||||
|
} else {
|
||||||
|
$arraylist = $arraylist->where('nm_spesimen', $master);
|
||||||
|
}
|
||||||
|
if ($jenis == 'ThisDay') {
|
||||||
|
$arraylist = $arraylist->where(function($q) {
|
||||||
|
$q->where(function($sub) {
|
||||||
|
$sub->whereNotIn('status', ['Selesai', 'Arsip'])
|
||||||
|
->where('status', 'not like', 'Dibatalkan%');
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else if ($jenis == 'ThisDayPendaftaran') {
|
||||||
|
$arraylist = $arraylist->whereDate('daftar', Carbon::today());
|
||||||
|
} else if ($jenis == 'mundur2') {
|
||||||
|
$arraylist = $arraylist->whereDate('daftar', '>=', Carbon::today()->subDays(2));
|
||||||
|
} else if ($jenis == 'mundur3') {
|
||||||
|
$arraylist = $arraylist->whereDate('daftar', '>=', Carbon::today()->subDays(3));
|
||||||
|
} else if ($jenis === 'searchbydate') {
|
||||||
|
$mulai = $mulai ?: date("Y-m-d");
|
||||||
|
$akhir = $akhir ?: date("Y-m-d");
|
||||||
|
if ($mulai >= $akhir) {
|
||||||
|
$akhir = date('Y-m-d', strtotime($akhir . ' +1 day'));
|
||||||
|
}
|
||||||
|
$arraylist = $arraylist->whereBetween('daftar', [$mulai, $akhir]);
|
||||||
|
} else if ($jenis === 'searchbydatemanual') {
|
||||||
|
$mulai = $mulai ?: date("Y-m-d");
|
||||||
|
$akhir = $akhir ?: date("Y-m-d");
|
||||||
|
if ($mulai >= $akhir) {
|
||||||
|
$akhir = date('Y-m-d', strtotime($akhir . ' +1 day'));
|
||||||
|
}
|
||||||
|
$arraylist = $arraylist->whereBetween('daftar', [$mulai, $akhir])->whereNotIn('pendaftar', ['supervisor', 'admin', 'analis', 'ppds', 'developer']);
|
||||||
|
} else if ($jenis === 'norm'){
|
||||||
|
$arraylist = $arraylist->where('noregister', 'LIKE', '%'.$valcari.'%');
|
||||||
|
} else if ($jenis === 'nofoto'){
|
||||||
|
$arraylist = $arraylist->where('nofoto', 'LIKE', '%'.$valcari.'%');
|
||||||
|
} else if ($jenis === 'rekues'){
|
||||||
|
$arraylist = $arraylist->where('reques', 'LIKE', '%'.$valcari.'%');
|
||||||
|
} else if ($jenis === 'keterangan'){
|
||||||
|
$arraylist = $arraylist->where('keterangan', 'LIKE', '%'.$valcari.'%');
|
||||||
|
} else if ($jenis === 'kesimpulan'){
|
||||||
|
$arraylist = $arraylist->where('kesimpulan', 'LIKE', '%'.$valcari.'%');
|
||||||
|
} else {
|
||||||
|
$arraylist = $arraylist->where('nmpasien', 'LIKE', '%'.$valcari.'%');
|
||||||
|
}
|
||||||
|
if ($jenis == 'ThisDayPendaftaran'){
|
||||||
|
$arraylist = $arraylist->orderBy('updated_at', 'ASC')->orderBy('id', 'DESC')->get();
|
||||||
|
} else {
|
||||||
|
$arraylist = $arraylist->orderBy('id', 'DESC')->get();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
$total = 0;
|
echo json_encode($arraylist);
|
||||||
$data = $this->getDataBasedOnMaster($master, $jenis, $mulai, $akhir, $valcari);
|
|
||||||
if (!empty($data)){
|
|
||||||
$dataArray = $data->get()->toArray();
|
|
||||||
$total = count($dataArray);
|
|
||||||
$arraylist = array_map(function ($list) use ($master) {
|
|
||||||
$tgl = $list['tgllahirpasien'];
|
|
||||||
$poli_id = $list['poli_id'];
|
|
||||||
$foto = $list['foto'];
|
|
||||||
$baca = $list['baca'];
|
|
||||||
$export = $list['export'];
|
|
||||||
$nofoto = $list['nofoto'];
|
|
||||||
$noregister = $list['noregister'];
|
|
||||||
$usia = $list['usia'];
|
|
||||||
$urgensi = $list['urgensi'];
|
|
||||||
$reques = $list['reques'];
|
|
||||||
$ruangan = $list['ruangan'];
|
|
||||||
$daftar = $list['daftar'];
|
|
||||||
$status = $list['status'];
|
|
||||||
$asalpasien = $list['asalpasien'];
|
|
||||||
$dokter_id = $list['dokter_id'];
|
|
||||||
$ppdssenior = $list['ppdssenior'];
|
|
||||||
$middleppds = $list['middleppds'];
|
|
||||||
$ppdsjunior = $list['ppdsjunior'];
|
|
||||||
$middleppds2= $list['ppdsmiddle2'];
|
|
||||||
$ppdsjunior2= $list['ppdsjunior2'];
|
|
||||||
$pasiedin = $list['pasien_id'];
|
|
||||||
$keterangan = $list['keterangan'];
|
|
||||||
$kesimpulan = $list['kesimpulan'];
|
|
||||||
$verifikasi = $list['verifikasi'];
|
|
||||||
$nama = $list['nmpasien'];
|
|
||||||
$jk = $list['jkpasien'];
|
|
||||||
$telpon = $list['tlppasien'];
|
|
||||||
$alamat = $list['alamatpasien'];
|
|
||||||
$tgllahir = $list['tgllahirpasien'];
|
|
||||||
$ktp = $list['ktp'];
|
|
||||||
$bpjs = $list['bpjs'];
|
|
||||||
$nmpendaftar= $list['pendaftar'];
|
|
||||||
if ($nmpendaftar == 'supervisor' OR $nmpendaftar == 'admin' OR $nmpendaftar == 'analis' OR $nmpendaftar == 'ppds' OR $nmpendaftar == 'developer'){
|
|
||||||
$nmpendaftar = $list['nmpendaftar'];
|
|
||||||
} else {
|
|
||||||
$nmpendaftar = 'SIMRS';
|
|
||||||
}
|
|
||||||
$from = $verifikasi ? \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $verifikasi) : null;
|
|
||||||
$to = $verifikasi ? \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $verifikasi)->toString() : '';
|
|
||||||
if ($from && $from->isValid()) {
|
|
||||||
$durasi = $verifikasi ? \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $verifikasi)->diffForHumans($from) : 'On Progress';
|
|
||||||
} else {
|
|
||||||
$durasi = 'On Progress';
|
|
||||||
}
|
|
||||||
if ($middleppds2 != 0){
|
|
||||||
$ppdsas = 'Middle';
|
|
||||||
$otherppds = $list['nmppdsmiddle2'];
|
|
||||||
} else {
|
|
||||||
$ppdsas = 'Junior';
|
|
||||||
$otherppds = $ppdsjunior2;
|
|
||||||
$otherppds = $list['nmppdsjunior2'];
|
|
||||||
}
|
|
||||||
|
|
||||||
$arrdaftar = explode(" ", $daftar);
|
|
||||||
$tgldaftar = $arrdaftar[0];
|
|
||||||
$jamdaftar = $arrdaftar[1];
|
|
||||||
$daftar = $tgldaftar;
|
|
||||||
$tglfoto = $foto ?: date("Y-m-d H:i:s");
|
|
||||||
$datatampilan = $this->setStatusStyles($status, $nofoto, $noregister, $nama, $telpon, $jk, $usia, $urgensi, $reques, $ruangan, $daftar, $asalpasien);
|
|
||||||
return [
|
|
||||||
'asalpasien' => $list['asalpasien'],
|
|
||||||
'tlsnofoto' => $datatampilan['nofoto'],
|
|
||||||
'tlsnoregister' => $datatampilan['noregister'],
|
|
||||||
'tlsnama' => $datatampilan['nama'],
|
|
||||||
'tlsjk' => $datatampilan['jk'],
|
|
||||||
'tlsusia' => $datatampilan['usia'],
|
|
||||||
'tlsurgensi' => ($list['urgensi'] == 'CITO') ? '<span style="background-color: red;">C I T O</span>' : $datatampilan['urgensi'],
|
|
||||||
'tlsreques' => $datatampilan['reques'],
|
|
||||||
'tlsruangan' => $list['ruangan'],
|
|
||||||
'tlsdaftar' => $datatampilan['daftar'],
|
|
||||||
'tlsstatus' => $datatampilan['status'],
|
|
||||||
'id' => $list['id'],
|
|
||||||
'nofoto' => $nofoto,
|
|
||||||
'noregister' => $noregister,
|
|
||||||
'nama' => $nama,
|
|
||||||
'jk' => $jk,
|
|
||||||
'usia' => $usia,
|
|
||||||
'urgensi' => $urgensi,
|
|
||||||
'poli' => $reques,
|
|
||||||
'idpasien' => $pasiedin,
|
|
||||||
'ruangan' => $ruangan,
|
|
||||||
'daftar' => $list['daftar'],
|
|
||||||
'daftartgl' => $daftar,
|
|
||||||
'daftarjam' => $jamdaftar,
|
|
||||||
'status' => $status,
|
|
||||||
'dokter' => $master != 'kiriman' ? $list['nmdokter'] : '',
|
|
||||||
'ppds1' => $master != 'kiriman' ? $list['nmppdssenior'] : '',
|
|
||||||
'ppds2' => $master != 'kiriman' ? $list['nmmiddleppds'] : '',
|
|
||||||
'ppds3' => $master != 'kiriman' ? $list['nmppdsjunior'] : '',
|
|
||||||
'keterangan' => $keterangan,
|
|
||||||
'kesimpulan' => $kesimpulan,
|
|
||||||
'noloket' => $list['noloket'],
|
|
||||||
'idruangan' => $list['ruangan_id'],
|
|
||||||
'iddokter' => $list['dokter_id'],
|
|
||||||
'ppdssenior' => $list['ppdssenior'],
|
|
||||||
'middleppds' => $list['middleppds'],
|
|
||||||
'ppdsjunior' => $list['ppdsjunior'],
|
|
||||||
'diagnosa' => $list['diagnosa'],
|
|
||||||
'diagnosa2' => $list['diagnosa2'],
|
|
||||||
'kd_spesimen' => $list['kd_spesimen'],
|
|
||||||
'nm_spesimen' => $list['nm_spesimen'],
|
|
||||||
'berat' => $list['berat'],
|
|
||||||
'klinis' => $list['klinis'],
|
|
||||||
'klinisi' => $list['klinisi'],
|
|
||||||
'filefoto' => $list['filefoto'],
|
|
||||||
'dlp' => $list['dlp'],
|
|
||||||
'analis' => $list['analis'],
|
|
||||||
'excutor' => $list['excutor'],
|
|
||||||
'modality' => $list['modality'],
|
|
||||||
'viewfoto' => $list['foto'],
|
|
||||||
'tglfoto' => $tglfoto,
|
|
||||||
'nmppdssenior' => $list['nmppdssenior'],
|
|
||||||
'nmmiddleppds' => $list['nmmiddleppds'],
|
|
||||||
'nmppdsjunior' => $list['nmppdsjunior'],
|
|
||||||
'nmppdsmiddle2' => $list['nmppdsmiddle2'],
|
|
||||||
'nmppdsjunior2' => $list['nmppdsjunior2'],
|
|
||||||
'nmanalis' => $list['nmanalis'],
|
|
||||||
'nmexcutor' => $list['nmexcutor'],
|
|
||||||
'telpon' => $list['tlppasien'],
|
|
||||||
'asuransi' => $list['asuransi'],
|
|
||||||
'tgllahir' => $list['tgllahirpasien'],
|
|
||||||
'alamat' => $list['alamatpasien'],
|
|
||||||
'poli_id' => $list['poli_id'],
|
|
||||||
'nmpendaftar' => $nmpendaftar,
|
|
||||||
'timestamp1' => $from ? $from->toString() : null,
|
|
||||||
'timestamp2' => $to,
|
|
||||||
'durasi' => $durasi,
|
|
||||||
'ppdsas' => $ppdsas,
|
|
||||||
'otherppds' => $otherppds,
|
|
||||||
'ktp' => $ktp,
|
|
||||||
'bpjs' => $bpjs,
|
|
||||||
];
|
|
||||||
}, $dataArray);
|
|
||||||
}
|
|
||||||
$response = [
|
|
||||||
'message' => 'List Laporan',
|
|
||||||
'data' => $arraylist,
|
|
||||||
'total' => $total
|
|
||||||
];
|
|
||||||
return response()->json($response, 200);
|
|
||||||
}
|
}
|
||||||
public function listDetail(Request $request) {
|
public function listDetail(Request $request) {
|
||||||
$id = $request->input('id');
|
$id = $request->input('id');
|
||||||
@@ -338,4 +578,175 @@ class ListController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
public function getListDataTables(Request $request){
|
||||||
|
$jenis = $request->input('jenis');
|
||||||
|
$mulai = $request->input('mulai');
|
||||||
|
$akhir = $request->input('akhir');
|
||||||
|
$lokasi = $request->input('lokasi');
|
||||||
|
$valcari = $request->input('valcari');
|
||||||
|
$master = $request->input('master');
|
||||||
|
$arraylist = Periksa::select(
|
||||||
|
'id', 'mulai', 'akhir', 'orderid', 'noloket', 'nofoto', 'noregister', 'asalpasien', 'nmrs', 'pasien_id', 'nmpasien',
|
||||||
|
'jkpasien', 'tgllahirpasien', 'tlppasien', 'alamatpasien', 'reques', 'usia', 'berat', 'ktp', 'bpjs', 'ruangan_id',
|
||||||
|
'ruangan', 'dokter_id', 'ppdssenior', 'middleppds', 'ppdsjunior', 'ppdsmiddle2', 'ppdsjunior2', 'analis', 'excutor',
|
||||||
|
'nmdokter', 'nmppdssenior', 'nmmiddleppds', 'nmppdsjunior', 'nmppdsmiddle2', 'nmppdsjunior2', 'nmanalis', 'nmexcutor',
|
||||||
|
'klinisi', 'klinis', 'keterangan', 'kesimpulan', 'poli_id', 'asuransi', 'urgensi', 'diagnosa', 'diagnosa2', 'modality',
|
||||||
|
'kd_spesimen', 'nm_spesimen', 'dlp', 'daftar', 'foto', 'tgldraft', 'nmdrafter', 'baca', 'nmpembaca', 'verifikasi',
|
||||||
|
'export', 'tgladendum', 'nmadendum', 'filefoto', 'pendaftar', 'status', 'created_at', 'updated_at',
|
||||||
|
'bhp_media', 'bhp_potsputum', 'bhp_poturine', 'bhp_oshe', 'bhp_obyekglass', 'bhp_botolbd', 'bhp_parafilm',
|
||||||
|
'bhp_tips', 'bhp_cottonswab', 'bhp_antibiotiktambahan', 'id_esbl', 'id_mrsa', 'rating', 'nmpendaftar',
|
||||||
|
|
||||||
|
DB::raw("DATE(daftar) as daftartgl"),
|
||||||
|
DB::raw("TO_CHAR(daftar, 'HH24:MI:SS') as daftarjam"),
|
||||||
|
DB::raw("TO_CHAR(export, 'HH24:MI:SS') as cetakjam"),
|
||||||
|
DB::raw("TO_CHAR(verifikasi, 'HH24:MI:SS') as verifikasijam"),
|
||||||
|
DB::raw("TO_CHAR(baca, 'HH24:MI:SS') as bacajam"),
|
||||||
|
DB::raw("TO_CHAR(foto, 'HH24:MI:SS') as fotojam"),
|
||||||
|
|
||||||
|
DB::raw("CASE WHEN jkpasien = 'L' THEN '1' ELSE '' END AS l"),
|
||||||
|
DB::raw("CASE WHEN jkpasien = 'P' THEN '1' ELSE '' END AS p"),
|
||||||
|
DB::raw("CONCAT('https://10.10.123.218/hasil/', nofoto::text) as urlhasil"),
|
||||||
|
|
||||||
|
DB::raw("CASE WHEN asuransi IN ('JKN', 'BPJS') THEN '1' ELSE '' END AS jkn"),
|
||||||
|
DB::raw("CASE WHEN asuransi = 'Billing' THEN '1' ELSE '' END AS billing"),
|
||||||
|
DB::raw("CASE WHEN asuransi = 'GCU' THEN '1' ELSE '' END AS gcu"),
|
||||||
|
DB::raw("CASE WHEN asuransi IN ('MANDIRI', 'Umum') THEN '1' ELSE '' END AS umum"),
|
||||||
|
DB::raw("CASE WHEN asuransi = 'SWASTA' THEN '1' ELSE '' END AS swasta"),
|
||||||
|
DB::raw("CASE WHEN asuransi = 'TAG' THEN '1' ELSE '' END AS tag"),
|
||||||
|
|
||||||
|
DB::raw("CASE WHEN urgensi != 'CITO' THEN '1' ELSE '' END AS elective"),
|
||||||
|
DB::raw("CASE WHEN urgensi = 'CITO' THEN '1' ELSE '' END AS cito"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN '<span class=\"badge badge-danger\">NEW</span>'
|
||||||
|
WHEN status = '' THEN '<span class=\"badge badge-danger\">NEW</span>'
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN '<font color=grey>Batal</font>'
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN '<font color=green>Pemeriksaan Sampel</font>'
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN '<strong>Diperiksa</strong>'
|
||||||
|
WHEN status LIKE '%Draft%' THEN '<font color=green>Draft</font>'
|
||||||
|
WHEN status LIKE '%Expertise%' THEN '<strong><font color=green>Expertise</font></strong>'
|
||||||
|
WHEN status LIKE '%Decliend%' THEN '<strong><font color=red>Decliend</font></strong>'
|
||||||
|
WHEN status LIKE '%Selesai%' THEN '<span class=\"badge badge-success\">Selesai</span>'
|
||||||
|
WHEN status LIKE '%Arsip%' THEN '<span class=\"badge badge-primary\">Arsip</span>'
|
||||||
|
WHEN status LIKE '%Pemeriksaan awal%' THEN '<span class=\"badge badge-primary\">Pemeriksaan awal</span>'
|
||||||
|
WHEN status LIKE '%Data Vitek di Terima%' THEN '<span class=\"badge badge-warning\">Data Vitek di Terima</span>'
|
||||||
|
ELSE CONCAT('<span class=\"badge badge-info\">', status::text, '</span>')
|
||||||
|
END AS tlsstatus"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', nofoto::text, '</span>')
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', nofoto::text, '</font>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', nofoto::text, '</font>')
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', nofoto::text, '</strong>')
|
||||||
|
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', nofoto::text, '</font>')
|
||||||
|
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', nofoto::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', nofoto::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', nofoto::text, '</span>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', nofoto::text, '</span>')
|
||||||
|
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', nofoto::text, '</span>')
|
||||||
|
ELSE CONCAT('<font color=red>', nofoto::text, '</font>')
|
||||||
|
END AS tlsnofoto"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', noregister::text, '</span>')
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', noregister::text, '</font>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', noregister::text, '</font>')
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', noregister::text, '</strong>')
|
||||||
|
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', noregister::text, '</font>')
|
||||||
|
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', noregister::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', noregister::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', noregister::text, '</span>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', noregister::text, '</span>')
|
||||||
|
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', noregister::text, '</span>')
|
||||||
|
ELSE CONCAT('<font color=red>', noregister::text, '</font>')
|
||||||
|
END AS tlsnoregister"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', nmpasien::text, '</span>')
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', nmpasien::text, '</font>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', nmpasien::text, '</font>')
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', nmpasien::text, '</strong>')
|
||||||
|
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', nmpasien::text, '</font>')
|
||||||
|
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', nmpasien::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', nmpasien::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', nmpasien::text, '</span>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', nmpasien::text, '</span>')
|
||||||
|
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', nmpasien::text, '</span>')
|
||||||
|
ELSE CONCAT('<font color=red>', nmpasien::text, '</font>')
|
||||||
|
END AS tlsnama"),
|
||||||
|
|
||||||
|
DB::raw("CASE
|
||||||
|
WHEN status IS NULL THEN CONCAT('<span class=\"badge badge-danger\">', reques::text, '</span>')
|
||||||
|
WHEN status LIKE '%Dibatalkan%' THEN CONCAT('<font color=grey>', reques::text, '</font>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan Sampel%' THEN CONCAT('<font color=green>', reques::text, '</font>')
|
||||||
|
WHEN status LIKE '%Proses Analisis Sampel%' THEN CONCAT('<strong>', reques::text, '</strong>')
|
||||||
|
WHEN status LIKE '%Draft%' THEN CONCAT('<font color=green>', reques::text, '</font>')
|
||||||
|
WHEN status LIKE '%Expertise%' THEN CONCAT('<strong><font color=green>', reques::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Decliend%' THEN CONCAT('<strong><font color=red>', reques::text, '</font></strong>')
|
||||||
|
WHEN status LIKE '%Selesai%' THEN CONCAT('<span class=\"badge badge-success\">', reques::text, '</span>')
|
||||||
|
WHEN status LIKE '%Pemeriksaan awal%' THEN CONCAT('<span class=\"badge badge-primary\">', reques::text, '</span>')
|
||||||
|
WHEN status LIKE '%Arsip%' THEN CONCAT('<span class=\"badge badge-primary\">', reques::text, '</span>')
|
||||||
|
ELSE CONCAT('<font color=red>', reques::text, '</font>')
|
||||||
|
END AS tlsreques")
|
||||||
|
);
|
||||||
|
if ($jenis == 'ThisDay') {
|
||||||
|
$arraylist = $arraylist->where(function($q) {
|
||||||
|
$q->where(function($sub) {
|
||||||
|
$sub->whereNotIn('status', ['Selesai', 'Arsip'])
|
||||||
|
->where('status', 'not like', 'Dibatalkan%');
|
||||||
|
})->orWhereNull('status');
|
||||||
|
});
|
||||||
|
} else if ($jenis == 'ThisDayPendaftaran') {
|
||||||
|
$arraylist = $arraylist->whereDate('daftar', Carbon::today());
|
||||||
|
} else if ($jenis == 'mundur2') {
|
||||||
|
$arraylist = $arraylist->whereDate('daftar', '>=', Carbon::today()->subDays(2));
|
||||||
|
} else if ($jenis == 'mundur3') {
|
||||||
|
$arraylist = $arraylist->whereDate('daftar', '>=', Carbon::today()->subDays(3));
|
||||||
|
} else if ($jenis === 'searchbydate') {
|
||||||
|
$mulai = $mulai ?: date("Y-m-d");
|
||||||
|
$akhir = $akhir ?: date("Y-m-d");
|
||||||
|
if ($mulai >= $akhir) {
|
||||||
|
$akhir = date('Y-m-d', strtotime($akhir . ' +1 day'));
|
||||||
|
}
|
||||||
|
$arraylist = $arraylist->whereBetween('daftar', [$mulai, $akhir]);
|
||||||
|
} else if ($jenis === 'searchbydatemanual') {
|
||||||
|
$mulai = $mulai ?: date("Y-m-d");
|
||||||
|
$akhir = $akhir ?: date("Y-m-d");
|
||||||
|
if ($mulai >= $akhir) {
|
||||||
|
$akhir = date('Y-m-d', strtotime($akhir . ' +1 day'));
|
||||||
|
}
|
||||||
|
$arraylist = $arraylist->whereBetween('daftar', [$mulai, $akhir])->whereNotIn('pendaftar', ['supervisor', 'admin', 'analis', 'ppds', 'developer']);
|
||||||
|
} else if ($jenis === 'norm'){
|
||||||
|
$arraylist = $arraylist->where('noregister', 'LIKE', '%'.$valcari.'%');
|
||||||
|
} else if ($jenis === 'nofoto'){
|
||||||
|
$arraylist = $arraylist->where('nofoto', 'LIKE', '%'.$valcari.'%');
|
||||||
|
} else if ($jenis === 'rekues'){
|
||||||
|
$arraylist = $arraylist->where('reques', 'LIKE', '%'.$valcari.'%');
|
||||||
|
} else if ($jenis === 'keterangan'){
|
||||||
|
$arraylist = $arraylist->where('keterangan', 'LIKE', '%'.$valcari.'%');
|
||||||
|
} else if ($jenis === 'kesimpulan'){
|
||||||
|
$arraylist = $arraylist->where('kesimpulan', 'LIKE', '%'.$valcari.'%');
|
||||||
|
} else {
|
||||||
|
$arraylist = $arraylist->where('nmpasien', 'LIKE', '%'.$valcari.'%');
|
||||||
|
}
|
||||||
|
$arraylist->whereIn('status', ['Penerimaan Sampel', 'Pemeriksaan Sampel', 'Pemeriksaan Awal'])->orderBy('id', 'DESC');
|
||||||
|
return DataTables::of($arraylist)
|
||||||
|
->addColumn('aksi', function ($row) {
|
||||||
|
return '
|
||||||
|
<div class="btn-group-vertical mb-2">
|
||||||
|
<button type="button" class="btn btn-sm btn-outline-primary waves-effect" onClick="btnMarking('.$row->id.')">
|
||||||
|
<i class="me-50 fa fa-flag"></i>
|
||||||
|
</button>
|
||||||
|
</div>';
|
||||||
|
})
|
||||||
|
->addColumn('batalaksi', function ($row) {
|
||||||
|
return '
|
||||||
|
<button type="button" class="btn btn-sm btn-danger waves-effect" onClick="btnBatal('.$row->id.')">
|
||||||
|
<i class="me-50 fa fa-ban"></i> Kembalikan ke Loket
|
||||||
|
</button>';
|
||||||
|
})
|
||||||
|
->rawColumns(['aksi', 'tlsstatus', 'tlsnofoto', 'tlsnoregister', 'tlsnama', 'tlsreques', 'batalaksi'])
|
||||||
|
->make(true);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -106,7 +106,7 @@ class PasienController extends Controller
|
|||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
$client = new Client();
|
$client = new Client();
|
||||||
$res = $client->request('GET', env('GETPASIEN_API'), ['query' => ['limit' => 10, 'nomedis' => $norm]]);
|
$res = $client->request('GET', 'https://gomed.rssa.my.id/api/account/pasien', ['query' => ['limit' => 10, 'nomedis' => $norm]]);
|
||||||
$response_data = json_decode($res->getBody()->getContents());
|
$response_data = json_decode($res->getBody()->getContents());
|
||||||
if (isset($response_data->response[0])) {
|
if (isset($response_data->response[0])) {
|
||||||
$hasil = $response_data->response[0];
|
$hasil = $response_data->response[0];
|
||||||
|
|||||||
@@ -3,14 +3,9 @@
|
|||||||
namespace App\Http\Controllers;
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\DB;
|
|
||||||
use App\Poli;
|
use App\Poli;
|
||||||
use App\Ruangan;
|
use App\Ruangan;
|
||||||
use App\Organisms;
|
use App\Periksa;
|
||||||
use App\XFiles;
|
|
||||||
use App\SIMBHPJenis;
|
|
||||||
use App\SIMBHPReport;
|
|
||||||
use App\User;
|
|
||||||
|
|
||||||
use Validator;
|
use Validator;
|
||||||
use Session;
|
use Session;
|
||||||
@@ -19,558 +14,129 @@ class PoliController extends Controller
|
|||||||
{
|
{
|
||||||
public function index() {
|
public function index() {
|
||||||
if (Session::get('previlage') == ''){
|
if (Session::get('previlage') == ''){
|
||||||
return redirect('/login');
|
return redirect('/login');
|
||||||
} else {
|
} else {
|
||||||
$data = [];
|
$data = [];
|
||||||
$data['polis'] = Poli::all();
|
$data['polis'] = Poli::all();
|
||||||
$data['ruangans'] = Ruangan::all();
|
$data['ruangans'] = Ruangan::all();
|
||||||
return view('admin.poli', $data);
|
return view('admin.poli', $data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public function viewGudangIndex() {
|
|
||||||
if (Session::get('previlage') == ''){
|
|
||||||
return redirect('/login');
|
|
||||||
} else {
|
|
||||||
$tasks = [];
|
|
||||||
$homebase = url("/");
|
|
||||||
$sekarang = date("Y-m-d");
|
|
||||||
$pegawais = User::select('id', 'nama', 'previlage')->orderBy('nama', 'ASC')->get();
|
|
||||||
$cdatane = SIMBHPJenis::all();
|
|
||||||
$cjenis = count($cdatane);
|
|
||||||
if ($cjenis == 0){
|
|
||||||
$tasks['jjenis'][0]['jenis'] = 'Belum Ada Jenis Barang';
|
|
||||||
$tasks['jjenis'][0]['satuan'] = '';
|
|
||||||
} else {
|
|
||||||
$i = 0;
|
|
||||||
foreach($cdatane as $rdata){
|
|
||||||
$tasks['jjenis'][$i]['jenis'] = $rdata->jenis;
|
|
||||||
$tasks['jjenis'][$i]['satuan'] = $rdata->satuan;
|
|
||||||
$i++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$getdebet = SIMBHPReport::select(DB::raw('SUM(pemasukan) as pemasukan'))->groupBy('marking')->first();
|
|
||||||
if (isset($getdebet->pemasukan)){
|
|
||||||
$totpemasukan = $getdebet->pemasukan;
|
|
||||||
} else { $totpemasukan = 0 ;}
|
|
||||||
$getkredit = SIMBHPReport::select(DB::raw('SUM(pengeluaran) as pengeluaran'))->groupBy('marking')->first();
|
|
||||||
if (isset($getkredit->pengeluaran)){
|
|
||||||
$totpepengeluaran = $getkredit->pengeluaran;
|
|
||||||
} else { $totpepengeluaran = 0 ;}
|
|
||||||
|
|
||||||
$tasks['masuk'] = $totpemasukan;
|
|
||||||
$tasks['keluar'] = $totpepengeluaran;
|
|
||||||
$tasks['pegawai'] = $pegawais;
|
|
||||||
$tasks['tahunne'] = date("Y");
|
|
||||||
$tasks['tanggal'] = $sekarang;
|
|
||||||
$tasks['sidebar'] = 'simbhp';
|
|
||||||
$previlage = Session('previlage');
|
|
||||||
return view('admin.gudang', $tasks);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public function storePoli(Request $request) {
|
public function storePoli(Request $request) {
|
||||||
$validator = Validator::make($request->all(), [
|
$validator = Validator::make($request->all(), [
|
||||||
'poli' => 'required',
|
'poli' => 'required',
|
||||||
'poli' => 'required',
|
'poli' => 'required',
|
||||||
'modaliti' => 'required'
|
'modaliti' => 'required'
|
||||||
]);
|
]);
|
||||||
if($validator->fails()) {
|
if($validator->fails()) {
|
||||||
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
|
||||||
} else {
|
|
||||||
$poli = $request->input('poli');
|
|
||||||
$subpoli = $request->input('subpoli');
|
|
||||||
$subsubpoli = $request->input('subsubpoli');
|
|
||||||
$modaliti = $request->input('modaliti');
|
|
||||||
Poli::create([
|
|
||||||
'poli' => $request->input('poli'),
|
|
||||||
'subpoli' => $request->input('subpoli'),
|
|
||||||
'subsubpoli'=> $request->input('subsubpoli'),
|
|
||||||
'modaliti' => $request->input('modaliti'),
|
|
||||||
'modaliti2' => $request->input('modaliti2')
|
|
||||||
]);
|
|
||||||
$tulis = 'Data '.$poli.' '.$subpoli.' '.$subsubpoli.' Saved..!!';
|
|
||||||
return response()->json(['status' => 'success', 'message' => $tulis]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
public function getListPoli() {
|
|
||||||
$results = Poli::orderBy('subpoli', 'ASC')->get();
|
|
||||||
echo json_encode($results);
|
|
||||||
}
|
|
||||||
public function updatePoli(Request $request) {
|
|
||||||
$validator = Validator::make($request->all(), [
|
|
||||||
'id' => 'required',
|
|
||||||
'poli' => 'required',
|
|
||||||
'subpoli' => 'required',
|
|
||||||
'modaliti' => 'required'
|
|
||||||
]);
|
|
||||||
if($validator->fails()) {
|
|
||||||
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
||||||
} else {
|
} else {
|
||||||
$id = $request->input('id');
|
$poli = $request->input('poli');
|
||||||
$poli = $request->input('poli');
|
$subpoli = $request->input('subpoli');
|
||||||
$subpoli = $request->input('subpoli');
|
$subsubpoli = $request->input('subsubpoli');
|
||||||
$subsubpoli = $request->input('subsubpoli');
|
Poli::create([
|
||||||
Poli::where('id', $id)->update([
|
'poli' => $request->input('poli'),
|
||||||
'poli' => $poli,
|
'subpoli' => $request->input('subpoli'),
|
||||||
'subpoli' => $subpoli,
|
'subsubpoli'=> $request->input('subsubpoli'),
|
||||||
'subsubpoli'=> $subsubpoli,
|
'modaliti' => $request->input('modaliti'),
|
||||||
'modaliti' => $request->input('modaliti'),
|
'modaliti2' => $request->input('modaliti2')
|
||||||
'modaliti2' => $request->input('modaliti2')
|
]);
|
||||||
]);
|
Periksa::where('reques', $subpoli)->update([
|
||||||
$tulis = 'Data '.$poli.' '.$subpoli.' '.$subsubpoli.' Updated..!!';
|
'kd_spesimen' => $request->input('subsubpoli'),
|
||||||
return response()->json(['status' => 'success', 'message' => $tulis]);
|
'nm_spesimen' => $request->input('modaliti'),
|
||||||
|
]);
|
||||||
|
$tulis = 'Data '.$poli.' '.$subpoli.' '.$subsubpoli.' Saved..!!';
|
||||||
|
return response()->json(['status' => 'success', 'message' => $tulis]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public function deletePoli(Request $request) {
|
|
||||||
$id = $request->id;
|
public function getListPoli() {
|
||||||
$poli = Poli::find($id);
|
$results = Poli::orderBy('subpoli', 'ASC')->get();
|
||||||
$poli->delete();
|
echo json_encode($results);
|
||||||
return back();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function updatePoli(Request $request) {
|
||||||
|
$validator = Validator::make($request->all(), [
|
||||||
|
'id' => 'required',
|
||||||
|
'poli' => 'required',
|
||||||
|
'subpoli' => 'required',
|
||||||
|
'modaliti' => 'required'
|
||||||
|
]);
|
||||||
|
if($validator->fails()) {
|
||||||
|
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
||||||
|
} else {
|
||||||
|
$id = $request->input('id');
|
||||||
|
$poli = $request->input('poli');
|
||||||
|
$subpoli = $request->input('subpoli');
|
||||||
|
$subsubpoli = $request->input('subsubpoli');
|
||||||
|
Poli::where('id', $id)->update([
|
||||||
|
'poli' => $poli,
|
||||||
|
'subpoli' => $subpoli,
|
||||||
|
'subsubpoli'=> $subsubpoli,
|
||||||
|
'modaliti' => $request->input('modaliti'),
|
||||||
|
'modaliti2' => $request->input('modaliti2')
|
||||||
|
]);
|
||||||
|
Periksa::where('reques', $subpoli)->update([
|
||||||
|
'kd_spesimen' => $subsubpoli,
|
||||||
|
'nm_spesimen' => $request->input('modaliti'),
|
||||||
|
]);
|
||||||
|
$tulis = 'Data '.$poli.' '.$subpoli.' '.$subsubpoli.' Updated..!!';
|
||||||
|
return response()->json(['status' => 'success', 'message' => $tulis]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function deletePoli(Request $request) {
|
||||||
|
$id = $request->id;
|
||||||
|
$poli = Poli::find($id);
|
||||||
|
$poli->delete();
|
||||||
|
return back();
|
||||||
|
}
|
||||||
|
|
||||||
public function storeRuangan(Request $request) {
|
public function storeRuangan(Request $request) {
|
||||||
$validator = Validator::make($request->all(), [
|
$validator = Validator::make($request->all(), [
|
||||||
'poli' => 'required',
|
'poli' => 'required',
|
||||||
'ruangan' => 'required'
|
'ruangan' => 'required'
|
||||||
]);
|
]);
|
||||||
if($validator->fails()) {
|
if($validator->fails()) {
|
||||||
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
||||||
} else {
|
} else {
|
||||||
Ruangan::create([
|
Ruangan::create([
|
||||||
'poli' => $request->input('poli'),
|
'poli' => $request->input('poli'),
|
||||||
'ruangan' => $request->input('ruangan')
|
'ruangan' => $request->input('ruangan')
|
||||||
]);
|
]);
|
||||||
Session::flash('message', 'Data berhasil disimpan');
|
Session::flash('message', 'Data berhasil disimpan');
|
||||||
Session::flash('alert-class', 'alert-success');
|
Session::flash('alert-class', 'alert-success');
|
||||||
return back();
|
return back();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getListRuangan(Request $request) {
|
public function getListRuangan(Request $request) {
|
||||||
$results = Ruangan::all();
|
$results = Ruangan::all();
|
||||||
echo json_encode($results);
|
echo json_encode($results);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function updateRuangan(Request $request) {
|
public function updateRuangan(Request $request) {
|
||||||
$validator = Validator::make($request->all(), [
|
$validator = Validator::make($request->all(), [
|
||||||
'id' => 'required',
|
'id' => 'required',
|
||||||
'poli' => 'required',
|
'poli' => 'required',
|
||||||
'ruangan' => 'required'
|
'ruangan' => 'required'
|
||||||
]);
|
]);
|
||||||
if($validator->fails()) {
|
if($validator->fails()) {
|
||||||
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
return response()->json(['status' => 'error', 'message' => 'Please fill input field or fill with right input']);
|
||||||
} else {
|
} else {
|
||||||
$id = $request->input('id');
|
$id = $request->input('id');
|
||||||
Ruangan::where('id', $id)->update([
|
Ruangan::where('id', $id)->update([
|
||||||
'poli' => $request->input('poli'),
|
'poli' => $request->input('poli'),
|
||||||
'ruangan' => $request->input('ruangan')
|
'ruangan' => $request->input('ruangan')
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function deleteRuangan(Request $request) {
|
public function deleteRuangan(Request $request) {
|
||||||
$id = $request->id;
|
$id = $request->id;
|
||||||
$ruangan = Ruangan::find($id);
|
$ruangan = Ruangan::find($id);
|
||||||
$ruangan->delete();
|
$ruangan->delete();
|
||||||
return back();
|
return back();
|
||||||
}
|
}
|
||||||
public function jsonRekapbhp() {
|
|
||||||
$tahun = date("Y");
|
|
||||||
$thnlalu = $tahun - 1;
|
|
||||||
$totale = 0;
|
|
||||||
$arraysurat = [];
|
|
||||||
$getdata = SIMBHPJenis::all();
|
|
||||||
if (!empty($getdata)){
|
|
||||||
foreach($getdata as $hasil){
|
|
||||||
$jenis = $hasil->kodejenis;
|
|
||||||
$satuan = $hasil->satuan;
|
|
||||||
$tlsjenis = $hasil->jenis;;
|
|
||||||
$getdebet = SIMBHPReport::select(DB::raw('SUM(pemasukan) as pemasukan'))->where('jenis', $tlsjenis)->groupBy('jenis')->first();
|
|
||||||
if (isset($getdebet->pemasukan)){
|
|
||||||
$totpemasukan = $getdebet->pemasukan;
|
|
||||||
} else { $totpemasukan = 0 ;}
|
|
||||||
$getkredit = SIMBHPReport::select(DB::raw('SUM(pengeluaran) as pengeluaran'))->where('jenis', $tlsjenis)->groupBy('jenis')->first();
|
|
||||||
if (isset($getkredit->pengeluaran)){
|
|
||||||
$totpepengeluaran = $getkredit->pengeluaran;
|
|
||||||
} else { $totpepengeluaran = 0 ;}
|
|
||||||
|
|
||||||
$saldoakhir = $totpemasukan - $totpepengeluaran;
|
|
||||||
$arraysurat[] = array(
|
|
||||||
'id' => $hasil->id,
|
|
||||||
'satuan' => $satuan,
|
|
||||||
'jenis' => $jenis,
|
|
||||||
'tlsjenis' => $tlsjenis,
|
|
||||||
'saldo' => number_format( $saldoakhir , 0 , '.' , ',' ),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
echo json_encode($arraysurat);
|
|
||||||
}
|
|
||||||
public function jsonReportbhp(Request $request) {
|
|
||||||
$bulan = $request->input('val01');
|
|
||||||
$tahun = $request->input('val02');
|
|
||||||
$hasil = [];
|
|
||||||
if ($tahun == 'ALL'){
|
|
||||||
$bulan = date("m");
|
|
||||||
$tahun = date("Y");
|
|
||||||
$getdata = SIMBHPReport::where('bulan', $bulan)->where('tahun', $tahun)->orderBy('id', 'DESC')->get();
|
|
||||||
} else {
|
|
||||||
if ($bulan == 'ALL'){
|
|
||||||
$getdata = SIMBHPReport::where('tahun', $tahun)->orderBy('id', 'DESC')->get();
|
|
||||||
} else {
|
|
||||||
$getdata = SIMBHPReport::where('bulan', $bulan)->where('tahun', $tahun)->orderBy('id', 'DESC')->get();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
foreach($getdata as $rdata){
|
|
||||||
$dd = $rdata->tanggal;
|
|
||||||
$mm = $rdata->bulan;
|
|
||||||
$yy = $rdata->tahun;
|
|
||||||
$pengeluaran= $rdata->pengeluaran;
|
|
||||||
$pemasukan = $rdata->pemasukan;
|
|
||||||
if ($mm < 10){
|
|
||||||
$tgllengkap = $dd.'-0'.$mm.'-'.$yy;
|
|
||||||
} else {
|
|
||||||
$tgllengkap = $dd.'-'.$mm.'-'.$yy;
|
|
||||||
}
|
|
||||||
if ($pengeluaran == '' OR $pengeluaran == 0) {$total = $pemasukan;}
|
|
||||||
else { $total = $pengeluaran; }
|
|
||||||
|
|
||||||
$hasil[] = array(
|
|
||||||
'id' => $rdata->id,
|
|
||||||
'tanggal' => $rdata->tanggal,
|
|
||||||
'bulan' => $rdata->bulan,
|
|
||||||
'tahun' => $rdata->tahun,
|
|
||||||
'deskripsi' => $rdata->deskripsi,
|
|
||||||
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
|
|
||||||
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
|
|
||||||
'jenis' => $rdata->jenis,
|
|
||||||
'keterangan' => $rdata->keterangan,
|
|
||||||
'tgllengkap' => $tgllengkap,
|
|
||||||
'total' => $total,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
echo json_encode($hasil);
|
|
||||||
}
|
|
||||||
public function jsonReportbhpPaginated(Request $request) {
|
|
||||||
$tanggal = $request->input('tanggal');
|
|
||||||
$deskripsi = $request->input('deskripsi');
|
|
||||||
$kategori = $request->input('kategori');
|
|
||||||
$lm = 10;
|
|
||||||
$limit = ($request->input('limit') == null ? $lm : $request->input('limit'));
|
|
||||||
$order = ($request->input('order') == null ? 'id desc' : $request->input('order'));
|
|
||||||
$data = new SIMBHPReport;
|
|
||||||
if ($kategori != null AND $kategori != '') $data = $data->where('jenis', $kategori);
|
|
||||||
if ($tanggal != null AND $tanggal != '') $data = $data->where('created_at', 'LIKE', '%'.$tanggal.'%');
|
|
||||||
if ($deskripsi != null AND $deskripsi != '') $data = $data->where('deskripsi', 'LIKE', '%'.$deskripsi.'%');
|
|
||||||
$data = $data->orderByRaw($order)->paginate($limit);
|
|
||||||
$hasil = [];
|
|
||||||
$totaldata = $data->total();
|
|
||||||
$debet = 0;
|
|
||||||
$kredit = 0;
|
|
||||||
if (!empty($data)){
|
|
||||||
foreach($data as $rdata){
|
|
||||||
$dd = $rdata->tanggal;
|
|
||||||
$mm = $rdata->bulan;
|
|
||||||
$yy = $rdata->tahun;
|
|
||||||
$pengeluaran = $rdata->pengeluaran;
|
|
||||||
$pemasukan = $rdata->pemasukan;
|
|
||||||
$deskripsi = $rdata->deskripsi;
|
|
||||||
$jenis = $rdata->jenis;
|
|
||||||
$debet = $debet + $pemasukan;
|
|
||||||
$kredit = $kredit + $pengeluaran;
|
|
||||||
$cekjenis = SIMBHPJenis::where('kodejenis', $jenis)->first();
|
|
||||||
if (isset($cekjenis->id)){
|
|
||||||
$kodejenis = $cekjenis->kodejenis;
|
|
||||||
$jenis = $cekjenis->jenis;
|
|
||||||
$satuan = $cekjenis->satuan;
|
|
||||||
} else {
|
|
||||||
$kodejenis = $jenis;
|
|
||||||
$jenis = '';
|
|
||||||
$satuan = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($jenis != ''){
|
|
||||||
$deskripsi = '<strong>'.$jenis.'</strong><br />'.$deskripsi;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($mm < 10){
|
|
||||||
$tgllengkap = $yy.'-0'.$mm.'-'.$dd;
|
|
||||||
} else {
|
|
||||||
$tgllengkap = $yy.'-'.$mm.'-'.$dd;
|
|
||||||
}
|
|
||||||
if ($pengeluaran == '' OR $pengeluaran == 0) {
|
|
||||||
$total = $pemasukan;
|
|
||||||
$jentrans = 'PEMASUKAN';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$total = $pengeluaran;
|
|
||||||
$jentrans = 'PENGELUARAN';
|
|
||||||
}
|
|
||||||
|
|
||||||
$hasil[] = array(
|
|
||||||
'id' => $rdata->id,
|
|
||||||
'tanggal' => $rdata->tanggal,
|
|
||||||
'bulan' => $rdata->bulan,
|
|
||||||
'tahun' => $rdata->tahun,
|
|
||||||
'tlsdeskripsi' => $deskripsi,
|
|
||||||
'deskripsi' => $rdata->deskripsi,
|
|
||||||
'pemasukan' => number_format( $pemasukan , 0 , '.' , ',' ),
|
|
||||||
'pengeluaran' => number_format( $pengeluaran , 0 , '.' , ',' ),
|
|
||||||
'jenis' => $kodejenis,
|
|
||||||
'keterangan' => $rdata->keterangan,
|
|
||||||
'tgllengkap' => $tgllengkap,
|
|
||||||
'created_at' => $rdata->created_at,
|
|
||||||
'nominal' => $total.' '.$satuan,
|
|
||||||
'jentrans' => $jentrans,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$response = [
|
|
||||||
'message' => 'List Data',
|
|
||||||
'data' => $hasil,
|
|
||||||
'totaldata' => $totaldata
|
|
||||||
];
|
|
||||||
return response()->json($response, 200);
|
|
||||||
}
|
|
||||||
public function exAddbarang(Request $request) {
|
|
||||||
$deskripsi = $request->input('set01');
|
|
||||||
$pos = $request->input('set02');
|
|
||||||
$tanggal = $request->input('set03');
|
|
||||||
$jumlah = $request->input('set04');
|
|
||||||
$jenis = $request->input('set05');
|
|
||||||
$postujuan = $request->input('set06');
|
|
||||||
$alasan = $request->input('set07');
|
|
||||||
$nama = Session('nama');
|
|
||||||
if ($tanggal == '' OR is_null($tanggal)){
|
|
||||||
$tanggal = date("d-m-Y");
|
|
||||||
}
|
|
||||||
$total = (int)str_replace(',','',$jumlah);
|
|
||||||
if ($jenis == 'jenis'){ $jumlah = '-';}
|
|
||||||
if ($deskripsi != '' and $pos != '' and $tanggal != '' and $jumlah != '' and $jenis != ''){
|
|
||||||
if ($jenis == 'jenis'){
|
|
||||||
$jenis = $request->input('set02');
|
|
||||||
$satuan = $request->input('set03');
|
|
||||||
$idne = $request->input('set04');
|
|
||||||
$kodejenis = preg_replace('/\s+/', '', $jenis);
|
|
||||||
if ($idne == 'new' OR $idne == ''){
|
|
||||||
$ceksudah = SIMBHPJenis::where('kodejenis', $kodejenis)->where('satuan', $satuan)->count();
|
|
||||||
if ($ceksudah != 0){
|
|
||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Sudah Ada, Silahkan Masukkan Jenis Barang Lain']);
|
|
||||||
return back();
|
|
||||||
} else {
|
|
||||||
$input = SIMBHPJenis::create([
|
|
||||||
'kodejenis' => $kodejenis,
|
|
||||||
'jenis' => $jenis,
|
|
||||||
'satuan' => $satuan,
|
|
||||||
]);
|
|
||||||
if ($input){
|
|
||||||
return response()->json(['status' => 'Success', 'message' => 'Data '.$jenis.' Sukses Ditambahkan']);
|
|
||||||
return back();
|
|
||||||
} else {
|
|
||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Gagal di masukkan, silahkan ulangi beberapa saat lagi']);
|
|
||||||
return back();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$ceksudah = SIMBHPJenis::where('id', '!=', $idne)->where('kodejenis', $kodejenis)->where('satuan', $satuan)->count();
|
|
||||||
if ($ceksudah != 0){
|
|
||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Sudah Ada, Silahkan Masukkan Jenis Barang Lain']);
|
|
||||||
return back();
|
|
||||||
} else {
|
|
||||||
$input = SIMBHPJenis::where('id', $idne)->update([
|
|
||||||
'kodejenis' => $kodejenis,
|
|
||||||
'jenis' => $jenis,
|
|
||||||
'satuan' => $satuan,
|
|
||||||
]);
|
|
||||||
if ($input){
|
|
||||||
return response()->json(['status' => 'Success', 'message' => 'Data '.$jenis.' Sukses Diupdate']);
|
|
||||||
return back();
|
|
||||||
} else {
|
|
||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => $jenis.' Gagal di masukkan, silahkan ulangi beberapa saat lagi']);
|
|
||||||
return back();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$ahrf = explode("-", $tanggal);
|
|
||||||
$tahun = $ahrf[0];
|
|
||||||
if(isset($ahrf[1])){
|
|
||||||
$wulan = (int)$ahrf[1];
|
|
||||||
} else { $wulan = date("m"); $wulan = (int)$wulan; }
|
|
||||||
if(isset($ahrf[2])){
|
|
||||||
$dino = (int)$ahrf[2];
|
|
||||||
} else { $dino = date("d"); }
|
|
||||||
if ($jenis == 'pemasukan'){
|
|
||||||
$bayar = SIMBHPReport::create([
|
|
||||||
'tanggal' => $dino,
|
|
||||||
'bulan' => $wulan,
|
|
||||||
'tahun' => $tahun,
|
|
||||||
'deskripsi' => $deskripsi,
|
|
||||||
'pemasukan' => $total,
|
|
||||||
'pengeluaran' => null,
|
|
||||||
'jenis' => $pos,
|
|
||||||
'keterangan' => '',
|
|
||||||
'marking' => '',
|
|
||||||
]);
|
|
||||||
} else if ($jenis == 'pengeluaran'){
|
|
||||||
$getnama = User::where('id', $deskripsi)->first();
|
|
||||||
$nama = $getnama->nama ?? 'Unkown';
|
|
||||||
$deskripsi = 'Diterima oleh '.$nama;
|
|
||||||
$getdebet = SIMBHPReport::select(DB::raw('SUM(pemasukan) as pemasukan'))->where('jenis', $pos)->groupBy('jenis')->first();
|
|
||||||
if (isset($getdebet->pemasukan)){
|
|
||||||
$totpemasukan = $getdebet->pemasukan;
|
|
||||||
} else { $totpemasukan = 0 ;}
|
|
||||||
$getkredit = SIMBHPReport::select(DB::raw('SUM(pengeluaran) as pengeluaran'))->where('jenis', $pos)->groupBy('jenis')->first();
|
|
||||||
if (isset($getkredit->pengeluaran)){
|
|
||||||
$totpepengeluaran = $getkredit->pengeluaran;
|
|
||||||
} else { $totpepengeluaran = 0 ;}
|
|
||||||
$totpepengeluaran = $totpepengeluaran + $total;
|
|
||||||
if ($totpepengeluaran > $totpemasukan){
|
|
||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Nominal Melebihi Stok']);
|
|
||||||
return back();
|
|
||||||
} else {
|
|
||||||
$bayar = SIMBHPReport::create([
|
|
||||||
'tanggal' => $dino,
|
|
||||||
'bulan' => $wulan,
|
|
||||||
'tahun' => $tahun,
|
|
||||||
'deskripsi' => $deskripsi,
|
|
||||||
'pemasukan' => null,
|
|
||||||
'pengeluaran' => $total,
|
|
||||||
'jenis' => $pos,
|
|
||||||
'keterangan' => '',
|
|
||||||
'marking' => '',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if ($jenis == 'editor'){
|
|
||||||
if ($alasan == ''){
|
|
||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Alasan Perubahan Data Wajib Di Isi!!!']);
|
|
||||||
return back();
|
|
||||||
} else {
|
|
||||||
$getdebet = SIMBHPReport::select(DB::raw('SUM(pemasukan) as pemasukan'))->where('jenis', $pos)->groupBy('jenis')->first();
|
|
||||||
if (isset($getdebet->pemasukan)){
|
|
||||||
$totpemasukan = $getdebet->pemasukan;
|
|
||||||
} else { $totpemasukan = 0 ;}
|
|
||||||
$getkredit = SIMBHPReport::select(DB::raw('SUM(pengeluaran) as pengeluaran'))->where('jenis', $pos)->groupBy('jenis')->first();
|
|
||||||
if (isset($getkredit->pengeluaran)){
|
|
||||||
$totpepengeluaran = $getkredit->pengeluaran;
|
|
||||||
} else { $totpepengeluaran = 0 ;}
|
|
||||||
$totpepengeluaran = $totpepengeluaran + $total;
|
|
||||||
|
|
||||||
$rdatalama = SIMBHPReport::where('id', $postujuan)->first();
|
|
||||||
$ldeskripsi = $rdatalama->deskripsi;
|
|
||||||
$lpemasukan = $rdatalama->pemasukan;
|
|
||||||
$lpengeluaran = $rdatalama->pengeluaran;
|
|
||||||
$ljenis = $rdatalama->jenis;
|
|
||||||
$marking = $rdatalama->marking;
|
|
||||||
if ($lpengeluaran == '' OR $lpengeluaran == 0) {
|
|
||||||
$ltotal = number_format( $lpemasukan , 0 , '.' , ',' );
|
|
||||||
if ($marking != ''){
|
|
||||||
SIMBHPReport::where('marking', $marking)->whereNotIn('id', [$postujuan])->update([
|
|
||||||
'tanggal' => $dino,
|
|
||||||
'bulan' => $wulan,
|
|
||||||
'tahun' => $tahun,
|
|
||||||
'pengeluaran' => $total
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
$bayar = SIMBHPReport::where('id', $postujuan)->update([
|
|
||||||
'tanggal' => $dino,
|
|
||||||
'bulan' => $wulan,
|
|
||||||
'tahun' => $tahun,
|
|
||||||
'deskripsi' => $deskripsi,
|
|
||||||
'jenis' => $pos,
|
|
||||||
'pemasukan' => $total,
|
|
||||||
'keterangan' => $alasan,
|
|
||||||
'updated_at' => date("Y-m-d H:i:s")
|
|
||||||
]);
|
|
||||||
} else {
|
|
||||||
$totpepengeluaran = $totpepengeluaran + $total;
|
|
||||||
if ($totpepengeluaran > $totpemasukan){
|
|
||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Nominal Melebihi Stok']);
|
|
||||||
return back();
|
|
||||||
} else {
|
|
||||||
$ltotal = number_format( $lpengeluaran , 0 , '.' , ',' );
|
|
||||||
if ($marking != ''){
|
|
||||||
SIMBHPReport::where('marking', $marking)->whereNotIn('id', [$postujuan])->update([
|
|
||||||
'tanggal' => $dino,
|
|
||||||
'bulan' => $wulan,
|
|
||||||
'tahun' => $tahun,
|
|
||||||
'pemasukan' => $total
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
$bayar = SIMBHPReport::where('id', $postujuan)->update([
|
|
||||||
'tanggal' => $dino,
|
|
||||||
'bulan' => $wulan,
|
|
||||||
'tahun' => $tahun,
|
|
||||||
'deskripsi' => $deskripsi,
|
|
||||||
'jenis' => $pos,
|
|
||||||
'pengeluaran' => $total,
|
|
||||||
'keterangan' => $alasan,
|
|
||||||
'updated_at' => date("Y-m-d H:i:s")
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$baris1 = '<table class="table table-bordered table-striped"><tr><td colspan=2><p align=center><b>Data Lama</b></p></td><td colspan=2><p align=center><b>Data Perubahan</b></p></td></tr>';
|
|
||||||
$baris2 = '<tr><td>Deskripsi</td><td>'.$ldeskripsi.'</td><td><font color=red>Diubah Menjadi</font></td><td>'.$deskripsi.'</td></tr>';
|
|
||||||
$baris3 = '<tr><td>Jenis</td><td>'.$ljenis.'</td><td><font color=red>Diubah Menjadi</font></td><td>'.$pos.'</td></tr>';
|
|
||||||
$baris4 = '<tr><td>Total</td><td>'.$ltotal.'</td><td><font color=red>Diubah Menjadi</font></td><td>'.$jumlah.'</td></tr>';
|
|
||||||
$baris5 = '<tr><td><b>Dengan Alasan</b></td><td colspan=3>'.$alasan.'</td</tr>';
|
|
||||||
$baris6 = '<tr><td><b>Eksekutor</b></td><td colspan=3>'.Session('nama').'</td</tr></table>';
|
|
||||||
$perubahan = $baris1.$baris2.$baris3.$baris4.$baris5.$baris6;
|
|
||||||
Xfiles::create([
|
|
||||||
'xmarking' => 'SIMBHP-'.$postujuan.'-'.time(),
|
|
||||||
'xtabel' => 'History SIMBHP',
|
|
||||||
'xjenis' => '',
|
|
||||||
'xfile' => $perubahan
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if ($alasan == ''){
|
|
||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Alasan Perubahan Data Wajib Di Isi!!!']);
|
|
||||||
return back();
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$rdatalama = SIMBHPReport::where('id', $postujuan)->first();
|
|
||||||
$ldeskripsi = $rdatalama->deskripsi;
|
|
||||||
$lpemasukan = $rdatalama->pemasukan;
|
|
||||||
$lpengeluaran = $rdatalama->pengeluaran;
|
|
||||||
$ljenis = $rdatalama->jenis;
|
|
||||||
$marking = $rdatalama->marking;
|
|
||||||
if ($lpengeluaran == '' or $lpengeluaran == 0) {
|
|
||||||
$ltotal = number_format( $lpemasukan , 0 , '.' , ',' );
|
|
||||||
} else {
|
|
||||||
$ltotal = number_format( $lpengeluaran , 0 , '.' , ',' );
|
|
||||||
}
|
|
||||||
$baris1 = '<table class="table table-bordered table-striped"><tr><td colspan=2><p align=center><b>Data Lama</b></p></td><td colspan=2><p align=center><b>Data Perubahan</b></p></td></tr>';
|
|
||||||
$baris2 = '<tr><td>Deskripsi</td><td>'.$ldeskripsi.'</td><td colspan=2><font color=red>DIHAPUS</font></td></tr>';
|
|
||||||
$baris3 = '<tr><td>Jenis</td><td>'.$ljenis.'</td><td colspan=2><font color=red>DIHAPUS</font></td></tr>';
|
|
||||||
$baris4 = '<tr><td>Total</td><td>'.$ltotal.'</td><td colspan=2><font color=red>DIHAPUS</font></td></tr>';
|
|
||||||
$baris5 = '<tr><td><b>Dengan Alasan</b></td><td colspan=3>'.$alasan.'</td</tr>';
|
|
||||||
$baris6 = '<tr><td><b>Eksekutor</b></td><td colspan=3>'.Session('nama').'</td</tr></table>';
|
|
||||||
$perubahan = $baris1.$baris2.$baris3.$baris4.$baris5.$baris6;
|
|
||||||
|
|
||||||
Xfiles::create([
|
|
||||||
'xmarking' => 'SIMBHP-'.$postujuan.'-'.time(),
|
|
||||||
'xtabel' => 'History SIMBHP',
|
|
||||||
'xjenis' => '',
|
|
||||||
'xfile' => $perubahan
|
|
||||||
]);
|
|
||||||
if ($marking != ''){
|
|
||||||
$bayar = SIMBHPReport::where('marking', $marking)->delete();
|
|
||||||
} else {
|
|
||||||
$bayar = SIMBHPReport::where('id', $postujuan)->delete();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($bayar){
|
|
||||||
return response()->json(['status' => 'Success', 'message' => 'Transaksi '.$jenis.' Sukses Dilaksanakan']);
|
|
||||||
return back();
|
|
||||||
} else {
|
|
||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Update Gagal, Pastikan Data Yang anda Isi Sudah Sesuai']);
|
|
||||||
return back();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Gagal', 'message' => 'Pastikan Formnya Anda Isi dengan Lengkap']);
|
|
||||||
return back();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large
Load diff
@@ -9,7 +9,8 @@ use App\Jawaban;
|
|||||||
use App\Subjawaban;
|
use App\Subjawaban;
|
||||||
use App\SiraB;
|
use App\SiraB;
|
||||||
use App\Organisms;
|
use App\Organisms;
|
||||||
|
use App\Periksa;
|
||||||
|
use App\KomponenJawaban;
|
||||||
use Validator;
|
use Validator;
|
||||||
use Picqer\Barcode\BarcodeGeneratorPNG;
|
use Picqer\Barcode\BarcodeGeneratorPNG;
|
||||||
use Session;
|
use Session;
|
||||||
@@ -246,6 +247,7 @@ class TemplateController extends Controller
|
|||||||
try {
|
try {
|
||||||
$id = $request->id;
|
$id = $request->id;
|
||||||
$tabel = $request->tabel;
|
$tabel = $request->tabel;
|
||||||
|
$data = null;
|
||||||
$pesan = 'Unkown Error';
|
$pesan = 'Unkown Error';
|
||||||
if ($tabel == 'Organisme'){
|
if ($tabel == 'Organisme'){
|
||||||
if ($id == 'new'){
|
if ($id == 'new'){
|
||||||
@@ -276,8 +278,9 @@ class TemplateController extends Controller
|
|||||||
return back();
|
return back();
|
||||||
}
|
}
|
||||||
} else if ($tabel == 'Speciment'){
|
} else if ($tabel == 'Speciment'){
|
||||||
|
$kodelama = '';
|
||||||
if ($id == 'new'){
|
if ($id == 'new'){
|
||||||
$ceksudah = Organisms::where('name', $request->name)->where('category', $request->category)->where('kelompok', $request->kelompok)->count();
|
$ceksudah = Organisms::where('name', $request->name)->where('kelompok', $request->kelompok)->count();
|
||||||
if ($ceksudah == 0){
|
if ($ceksudah == 0){
|
||||||
$data = new Organisms;
|
$data = new Organisms;
|
||||||
$inputData = $request->except(['id', 'tabel', '_token']);
|
$inputData = $request->except(['id', 'tabel', '_token']);
|
||||||
@@ -287,9 +290,11 @@ class TemplateController extends Controller
|
|||||||
$pesan = $request->name.' ('.$request->category.') Sudah ada, Mohon ubah Data sebelum simpan kembali';
|
$pesan = $request->name.' ('.$request->category.') Sudah ada, Mohon ubah Data sebelum simpan kembali';
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$ceksudah = Organisms::where('id', '!=', $id)->where('name', $request->name)->where('category', $request->category)->where('kelompok', $request->kelompok)->count();
|
$ceksudah = Organisms::where('id', '!=', $id)->where('name', $request->name)->where('kelompok', $request->kelompok)->count();
|
||||||
if ($ceksudah == 0){
|
if ($ceksudah == 0){
|
||||||
$data = Organisms::find($id);
|
$data = Organisms::find($id);
|
||||||
|
$kodelama = $data->category;
|
||||||
|
$kodebaru = $request->category;
|
||||||
$inputData = $request->except(['id', 'tabel', '_token']);
|
$inputData = $request->except(['id', 'tabel', '_token']);
|
||||||
$data->update($inputData);
|
$data->update($inputData);
|
||||||
} else {
|
} else {
|
||||||
@@ -297,6 +302,9 @@ class TemplateController extends Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($data){
|
if ($data){
|
||||||
|
if ($kodelama != ''){
|
||||||
|
Periksa::where('kd_spesimen', $kodelama)->update(['kd_spesimen' => $kodebaru]);
|
||||||
|
}
|
||||||
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Saved']);
|
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Saved']);
|
||||||
return back();
|
return back();
|
||||||
} else {
|
} else {
|
||||||
@@ -306,7 +314,6 @@ class TemplateController extends Controller
|
|||||||
} else if ($tabel == 'Parameter'){
|
} else if ($tabel == 'Parameter'){
|
||||||
$getdatalama = Organisms::where('kelompok', $request->kelompok)->first();
|
$getdatalama = Organisms::where('kelompok', $request->kelompok)->first();
|
||||||
$category = $getdatalama->category ?? $request->kelompok;
|
$category = $getdatalama->category ?? $request->kelompok;
|
||||||
|
|
||||||
if ($id == 'new'){
|
if ($id == 'new'){
|
||||||
$ceksudah = Organisms::where('name', $request->name)->where('category', $category)->where('kelompok', $request->kelompok)->count();
|
$ceksudah = Organisms::where('name', $request->name)->where('category', $category)->where('kelompok', $request->kelompok)->count();
|
||||||
if ($ceksudah == 0){
|
if ($ceksudah == 0){
|
||||||
@@ -337,6 +344,95 @@ class TemplateController extends Controller
|
|||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Unkown Error']);
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Unkown Error']);
|
||||||
return back();
|
return back();
|
||||||
}
|
}
|
||||||
|
} else if ($tabel == 'BioRepository'){
|
||||||
|
$kategorisimpan = $request->kategorisimpan;
|
||||||
|
$shelfnomor = $request->shelfnomor;
|
||||||
|
$raknomor = $request->raknomor;
|
||||||
|
$slotnomor = $request->slotnomor;
|
||||||
|
$boxnomor = $request->boxnomor;
|
||||||
|
$tubenomor = $request->tubenomor;
|
||||||
|
$nomor = $kategorisimpan.''.$shelfnomor.''.$raknomor.''.$slotnomor.''.$boxnomor.'-'.$tubenomor;
|
||||||
|
$data = KomponenJawaban::where('id', $id)->update([
|
||||||
|
'isidata' => $request->nmbakteri,
|
||||||
|
'nobiorepository' => $nomor,
|
||||||
|
'strain' => $request->strain,
|
||||||
|
'atcc' => $request->atcc,
|
||||||
|
'sample' => $request->nmbakteri,
|
||||||
|
'tglpenyimpanan' => $request->tglpenyimpanan,
|
||||||
|
'created_by' => $request->created_by
|
||||||
|
]);
|
||||||
|
if ($data){
|
||||||
|
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Saved']);
|
||||||
|
return back();
|
||||||
|
} else {
|
||||||
|
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Failed', 'message' => 'Unkown Error']);
|
||||||
|
return back();
|
||||||
|
}
|
||||||
|
} else if ($tabel == 'uploadexcelsirab'){
|
||||||
|
$path = $_FILES['file']['tmp_name'];
|
||||||
|
$sukses = 0;
|
||||||
|
$error = '';
|
||||||
|
$baris = '1';
|
||||||
|
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
|
||||||
|
$spreadsheet = $reader->load($path);
|
||||||
|
$getalldata = $spreadsheet->getActiveSheet()->toArray(null, true, true, true);
|
||||||
|
foreach($getalldata as $val){
|
||||||
|
if(is_null($val['H']) OR $val['H'] == 'kodedok' OR $val['H'] == ''){
|
||||||
|
//
|
||||||
|
} else {
|
||||||
|
$baris++;
|
||||||
|
$setmanual = $val['A'] ?? '';
|
||||||
|
$subantibiotik = $val['B'] ?? '';
|
||||||
|
$diskcontent = $val['C'] ?? '';
|
||||||
|
$batasatas = $val['D'] ?? '';
|
||||||
|
$midrange = $val['E'] ?? '';
|
||||||
|
$batasbawah = $val['F'] ?? '';
|
||||||
|
$sumber = $val['G'] ?? '';
|
||||||
|
$kodedok = $val['H'] ?? '';
|
||||||
|
if ($kodedok == '' OR $subantibiotik == '' OR $diskcontent == '' OR $sumber == '' OR $setmanual == ''){
|
||||||
|
$error .= $baris.' Data KodeDok '.$kodedok.' dengan Antibiotik '.$subantibiotik.' dan DiskContent '.$diskcontent.' Sumber '.$sumber.' Untuk Set Manual '.$setmanual.' tidak lengkap; <br />';
|
||||||
|
} else {
|
||||||
|
$cekada = SiraB::where('kodedok', $kodedok)->where('setmanual', $setmanual)->where('subantibiotik', $subantibiotik)->where('diskcontent', $diskcontent)->where('sumber', $sumber)->first();
|
||||||
|
if (isset($cekada->id)){
|
||||||
|
$idsirab = $cekada->id;
|
||||||
|
$updatesirab = SiraB::where('id', $idsirab)->update([
|
||||||
|
'batasatas' => $batasatas,
|
||||||
|
'midrange' => $midrange,
|
||||||
|
'batasbawah' => $batasbawah,
|
||||||
|
]);
|
||||||
|
if ($updatesirab){
|
||||||
|
$sukses++;
|
||||||
|
} else {
|
||||||
|
$error .= 'ID '.$idsirab.' Gagal diupdate; <br />';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$cekada2 = SiraB::where('kodedok', $kodedok)->where('subantibiotik', $subantibiotik)->where('diskcontent', $diskcontent)->where('sumber', $sumber)->first();
|
||||||
|
if (isset($cekada2->id)){
|
||||||
|
$idsirab = $cekada2->id;
|
||||||
|
$updatesirab = SiraB::where('id', $idsirab)->update([
|
||||||
|
'setmanual' => $setmanual,
|
||||||
|
'batasatas' => $batasatas,
|
||||||
|
'midrange' => $midrange,
|
||||||
|
'batasbawah' => $batasbawah,
|
||||||
|
]);
|
||||||
|
if ($updatesirab){
|
||||||
|
$sukses++;
|
||||||
|
} else {
|
||||||
|
$error .= 'ID '.$idsirab.' Gagal diupdate; <br />';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$error .= $baris.' Data KodeDok '.$kodedok.' dengan Antibiotik '.$subantibiotik.' dan DiskContent '.$diskcontent.' tidak ditemukan untuk Antiobik manual Group '.$setmanual.'; <br />';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ($error == ''){
|
||||||
|
$pesanakhir = 'Sukses mengupdate '.$sukses.' data.';
|
||||||
|
} else {
|
||||||
|
$pesanakhir = 'Sukses mengupdate '.$sukses.' data dengan catatan: <br />'.$error;
|
||||||
|
}
|
||||||
|
echo $pesanakhir;
|
||||||
} else {
|
} else {
|
||||||
if ($id == 'new'){
|
if ($id == 'new'){
|
||||||
$data = new SiraB;
|
$data = new SiraB;
|
||||||
|
|||||||
@@ -19,21 +19,24 @@ class UserController extends Controller
|
|||||||
if (Session::get('previlage') == ''){
|
if (Session::get('previlage') == ''){
|
||||||
return redirect('/login');
|
return redirect('/login');
|
||||||
} else {
|
} else {
|
||||||
if ($cekkelompok == 'supervisor' OR $cekkelompok == 'admin' OR $cekkelompok == 'developer'){
|
if ($cekkelompok == 'supervisor' OR $cekkelompok == 'developer'){
|
||||||
$users = User::all();
|
$getsetting = Setting::where('id', '1')->first();
|
||||||
|
$data = [];
|
||||||
|
$data['users'] = User::orderBy('nama', 'ASC')->get();
|
||||||
|
$data['pacsaddr'] = $getsetting->pacs ?? '';
|
||||||
|
$data['zfpaddr'] = $getsetting->zfp ?? '';
|
||||||
|
$data['port'] = $getsetting->port ?? '';
|
||||||
|
$data['portzfp'] = $getsetting->portzfp ?? '';
|
||||||
|
$data['username'] = $getsetting->username ?? '';
|
||||||
|
$data['password'] = $getsetting->password ?? '';
|
||||||
|
return view('admin.user', $data);
|
||||||
} else {
|
} else {
|
||||||
$users = User::where('previlage', $cekkelompok)->get();
|
$data = [];
|
||||||
|
$data['kalimatheader'] = 'Access Denied';
|
||||||
|
$data['kalimatbody'] = 'Laman khusus SPV';
|
||||||
|
return view('errors.error', $data);
|
||||||
}
|
}
|
||||||
$getsetting = Setting::where('id', '1')->first();
|
|
||||||
$data = [];
|
|
||||||
$data['users'] = $users;
|
|
||||||
$data['pacsaddr'] = $getsetting->pacs ?? '';
|
|
||||||
$data['zfpaddr'] = $getsetting->zfp ?? '';
|
|
||||||
$data['port'] = $getsetting->port ?? '';
|
|
||||||
$data['portzfp'] = $getsetting->portzfp ?? '';
|
|
||||||
$data['username'] = $getsetting->username ?? '';
|
|
||||||
$data['password'] = $getsetting->password ?? '';
|
|
||||||
return view('admin.user', $data);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public function exSetting(Request $request) {
|
public function exSetting(Request $request) {
|
||||||
|
|||||||
@@ -12,6 +12,6 @@ class VerifyCsrfToken extends Middleware
|
|||||||
* @var array<int, string>
|
* @var array<int, string>
|
||||||
*/
|
*/
|
||||||
protected $except = [
|
protected $except = [
|
||||||
'registerpasien', 'registerjson', 'ekstrakhasil', 'prosesbatal', 'cekaksess'
|
'registerpasien', 'registerjson', 'ekstrakhasil', 'prosesbatal', 'cekaksess', 'ekstrakexpertise', 'getnolabnorm'
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,428 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Livewire;
|
||||||
|
|
||||||
|
use App\Services\SimbhpStockService;
|
||||||
|
use App\SIMBHPJenis;
|
||||||
|
use App\SIMBHPReport;
|
||||||
|
use App\User;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use Livewire\Component;
|
||||||
|
use Livewire\Attributes\On;
|
||||||
|
use Livewire\WithPagination;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class GudangPos extends Component
|
||||||
|
{
|
||||||
|
use WithPagination;
|
||||||
|
|
||||||
|
public string $tanggal = '';
|
||||||
|
public string $namaRuangan = '';
|
||||||
|
public string $penerimaId = '';
|
||||||
|
public string $penerimaManual = '';
|
||||||
|
|
||||||
|
public string $scan = '';
|
||||||
|
public string $selectedKode = '';
|
||||||
|
public string $satuanTransaksi = 'besar';
|
||||||
|
public int $qty = 1;
|
||||||
|
public string $keterangan = '';
|
||||||
|
|
||||||
|
public string $search = '';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var array<int, array{kode:string, jenis:string, qty:int, satuan_transaksi:string}>
|
||||||
|
*/
|
||||||
|
public array $cart = [];
|
||||||
|
|
||||||
|
public function mount(): void
|
||||||
|
{
|
||||||
|
$this->tanggal = date('Y-m-d');
|
||||||
|
$firstUserId = User::orderBy('nama', 'ASC')->value('id');
|
||||||
|
$this->penerimaId = $firstUserId ? (string) $firstUserId : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updatingSearch(): void
|
||||||
|
{
|
||||||
|
$this->resetPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function scanLookup(): void
|
||||||
|
{
|
||||||
|
$service = app(SimbhpStockService::class);
|
||||||
|
$raw = (string) $this->scan;
|
||||||
|
$parsed = $service->parseBarcode($raw);
|
||||||
|
$kode = (string) ($parsed['kode'] ?? '');
|
||||||
|
$jenisId = $parsed['jenis_id'] ?? null;
|
||||||
|
$this->scan = '';
|
||||||
|
|
||||||
|
if ($kode === '' && (is_null($jenisId) || (int) $jenisId <= 0)) {
|
||||||
|
$this->toast('error', 'Kode barcode kosong.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$jenis = $service->getJenisByKode($raw);
|
||||||
|
if (!$jenis) {
|
||||||
|
$this->toast('error', 'Kode barang tidak ditemukan.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$saldoBase = $service->getStockBaseByJenis((string) ($jenis->jenis ?? ''));
|
||||||
|
if ($saldoBase <= 0) {
|
||||||
|
$this->toast('error', 'Stok kosong untuk ' . ((string) ($jenis->jenis ?? 'barang')) . '.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->selectedKode = (string) ($jenis->kodejenis ?? '');
|
||||||
|
$this->qty = 1;
|
||||||
|
$this->keterangan = '';
|
||||||
|
$this->satuanTransaksi = (string) ($parsed['satuan_transaksi'] ?? 'besar');
|
||||||
|
$this->syncSatuanAvailability();
|
||||||
|
$this->dispatch('gudangpos-open-modal');
|
||||||
|
}
|
||||||
|
|
||||||
|
#[On('gudangpos-select')]
|
||||||
|
public function selectProduct(string $kode): void
|
||||||
|
{
|
||||||
|
$service = app(SimbhpStockService::class);
|
||||||
|
$kode = $service->sanitizeKode($kode);
|
||||||
|
$jenis = $service->getJenisByKode($kode);
|
||||||
|
|
||||||
|
if (!$jenis) {
|
||||||
|
$this->toast('error', 'Kode barang tidak ditemukan: ' . $kode);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$saldoBase = $service->getStockBaseByJenis((string) ($jenis->jenis ?? ''));
|
||||||
|
if ($saldoBase <= 0) {
|
||||||
|
$this->toast('error', 'Stok kosong untuk ' . ((string) ($jenis->jenis ?? 'barang')) . '.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->selectedKode = (string) ($jenis->kodejenis ?? '');
|
||||||
|
$this->qty = 1;
|
||||||
|
$this->keterangan = '';
|
||||||
|
$this->syncSatuanAvailability();
|
||||||
|
$this->dispatch('gudangpos-open-modal');
|
||||||
|
}
|
||||||
|
|
||||||
|
#[On('gudangpos-refresh')]
|
||||||
|
public function refreshComponent(): void
|
||||||
|
{
|
||||||
|
// Force rerender + keep UI responsive when stok berubah dari tab lain.
|
||||||
|
$this->resetPage();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function addSelected(): void
|
||||||
|
{
|
||||||
|
$service = app(SimbhpStockService::class);
|
||||||
|
$kode = $service->sanitizeKode($this->selectedKode);
|
||||||
|
if ($kode === '') {
|
||||||
|
$this->toast('error', 'Pilih barang dulu (scan barcode / klik daftar produk).');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$jenis = $service->getJenisByKode($kode);
|
||||||
|
if (!$jenis) {
|
||||||
|
$this->toast('error', 'Kode barang tidak ditemukan: ' . $kode);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$qty = (int) $this->qty;
|
||||||
|
$keterangan = trim((string) $this->keterangan);
|
||||||
|
if ($qty <= 0) {
|
||||||
|
$this->toast('error', 'Jumlah harus lebih dari 0.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$setting = $service->getUnitSetting($jenis);
|
||||||
|
if ($this->satuanTransaksi === 'kecil' && !$setting['has_breakdown']) {
|
||||||
|
$this->satuanTransaksi = 'besar';
|
||||||
|
$this->toast('info', 'Barang ini tidak memiliki satuan kecil, otomatis pakai satuan besar.');
|
||||||
|
}
|
||||||
|
|
||||||
|
$found = false;
|
||||||
|
foreach ($this->cart as $i => $line) {
|
||||||
|
if (
|
||||||
|
($line['kode'] ?? '') === $kode
|
||||||
|
&& ($line['satuan_transaksi'] ?? '') === $this->satuanTransaksi
|
||||||
|
&& trim((string) ($line['keterangan'] ?? '')) === $keterangan
|
||||||
|
) {
|
||||||
|
$this->cart[$i]['qty'] = ((int) ($this->cart[$i]['qty'] ?? 0)) + $qty;
|
||||||
|
$found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$found) {
|
||||||
|
$this->cart[] = [
|
||||||
|
'kode' => $kode,
|
||||||
|
'jenis' => (string) ($jenis->jenis ?? ''),
|
||||||
|
'qty' => $qty,
|
||||||
|
'satuan_transaksi' => $this->satuanTransaksi,
|
||||||
|
'keterangan' => $keterangan,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->qty = 1;
|
||||||
|
$this->keterangan = '';
|
||||||
|
$this->dispatch('gudangpos-close-modal');
|
||||||
|
$this->dispatch('gudangpos-focus', field: 'scan');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function removeLine(int $index): void
|
||||||
|
{
|
||||||
|
if (!isset($this->cart[$index])) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
array_splice($this->cart, $index, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function processCart(): void
|
||||||
|
{
|
||||||
|
if (count($this->cart) === 0) {
|
||||||
|
$this->toast('info', 'Keranjang masih kosong.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->penerimaId === '') {
|
||||||
|
$this->toast('error', 'Penerima wajib dipilih.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$tanggal = trim((string) $this->tanggal);
|
||||||
|
if ($tanggal === '') {
|
||||||
|
$this->toast('error', 'Tanggal wajib diisi.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
$date = Carbon::parse($tanggal);
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
$this->toast('error', 'Format tanggal tidak valid.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$namaRuangan = trim((string) $this->namaRuangan);
|
||||||
|
if ($namaRuangan === '') {
|
||||||
|
$this->toast('error', 'Nama ruang wajib diisi.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($this->penerimaId === '__manual__') {
|
||||||
|
$penerima = trim((string) $this->penerimaManual);
|
||||||
|
if ($penerima === '') {
|
||||||
|
$this->toast('error', 'Nama penerima manual wajib diisi.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$user = User::select('id', 'nama')->find((int) $this->penerimaId);
|
||||||
|
if (!$user) {
|
||||||
|
$this->toast('error', 'Penerima tidak ditemukan.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$penerima = trim((string) ($user->nama ?? ''));
|
||||||
|
}
|
||||||
|
|
||||||
|
$service = app(SimbhpStockService::class);
|
||||||
|
|
||||||
|
$prepared = [];
|
||||||
|
$stockCache = [];
|
||||||
|
foreach ($this->cart as $line) {
|
||||||
|
$kode = $service->sanitizeKode((string) ($line['kode'] ?? ''));
|
||||||
|
$qty = (int) ($line['qty'] ?? 0);
|
||||||
|
$satuan = (string) ($line['satuan_transaksi'] ?? 'besar');
|
||||||
|
$keterangan = trim((string) ($line['keterangan'] ?? ''));
|
||||||
|
if ($kode === '' || $qty <= 0) {
|
||||||
|
$this->toast('error', 'Ada item keranjang yang tidak valid.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$jenis = $service->getJenisByKode($kode);
|
||||||
|
if (!$jenis) {
|
||||||
|
$this->toast('error', 'Kode barang tidak ditemukan: ' . $kode);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$setting = $service->getUnitSetting($jenis);
|
||||||
|
if ($satuan === 'kecil' && !$setting['has_breakdown']) {
|
||||||
|
$satuan = 'besar';
|
||||||
|
}
|
||||||
|
|
||||||
|
$qtyBase = $service->calculateBaseQty($jenis, $qty, $satuan);
|
||||||
|
$jenisNama = (string) ($jenis->jenis ?? '');
|
||||||
|
if (!array_key_exists($jenisNama, $stockCache)) {
|
||||||
|
$stockCache[$jenisNama] = $service->getStockBaseByJenis($jenisNama);
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($qtyBase > $stockCache[$jenisNama]) {
|
||||||
|
if ((int) $stockCache[$jenisNama] <= 0) {
|
||||||
|
$this->toast('error', 'Stok kosong untuk ' . $jenisNama . '.');
|
||||||
|
} else {
|
||||||
|
$this->toast('error', 'Stok tidak cukup untuk ' . $jenisNama . '.');
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$stockCache[$jenisNama] -= $qtyBase;
|
||||||
|
|
||||||
|
$prepared[] = [
|
||||||
|
'jenis' => $jenis,
|
||||||
|
'qty' => $qty,
|
||||||
|
'qty_base' => $qtyBase,
|
||||||
|
'satuan_transaksi' => $satuan,
|
||||||
|
'keterangan' => $keterangan,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
DB::transaction(function () use ($prepared, $date, $penerima, $namaRuangan) {
|
||||||
|
foreach ($prepared as $row) {
|
||||||
|
/** @var SIMBHPJenis $jenis */
|
||||||
|
$jenis = $row['jenis'];
|
||||||
|
SIMBHPReport::create([
|
||||||
|
'tanggal' => (int) $date->format('d'),
|
||||||
|
'bulan' => (int) $date->format('m'),
|
||||||
|
'tahun' => (int) $date->format('Y'),
|
||||||
|
'deskripsi' => 'Ruangan: ' . $namaRuangan . ' | Diterima oleh ' . ($penerima !== '' ? $penerima : 'Unknown'),
|
||||||
|
'pemasukan' => null,
|
||||||
|
'pengeluaran' => (int) $row['qty'],
|
||||||
|
'qty_base' => (int) $row['qty_base'],
|
||||||
|
'satuan_transaksi' => (string) $row['satuan_transaksi'],
|
||||||
|
'masa_expired' => null,
|
||||||
|
'jenis' => (string) ($jenis->jenis ?? ''),
|
||||||
|
'keterangan' => (string) ($row['keterangan'] ?? ''),
|
||||||
|
'marking' => '',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$this->cart = [];
|
||||||
|
$this->qty = 1;
|
||||||
|
$this->keterangan = '';
|
||||||
|
$this->penerimaManual = '';
|
||||||
|
$this->toast('success', 'Barang keluar berhasil diproses.');
|
||||||
|
$this->dispatch('gudang-refresh');
|
||||||
|
$this->dispatch('gudangpos-close-modal');
|
||||||
|
$this->dispatch('gudangpos-focus', field: 'scan');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updatedSelectedKode(): void
|
||||||
|
{
|
||||||
|
$this->syncSatuanAvailability();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function updatedSatuanTransaksi(): void
|
||||||
|
{
|
||||||
|
$this->syncSatuanAvailability();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function syncSatuanAvailability(): void
|
||||||
|
{
|
||||||
|
$service = app(SimbhpStockService::class);
|
||||||
|
$kode = $service->sanitizeKode($this->selectedKode);
|
||||||
|
if ($kode === '') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$jenis = $service->getJenisByKode($kode);
|
||||||
|
if (!$jenis) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$setting = $service->getUnitSetting($jenis);
|
||||||
|
if (!$setting['has_breakdown'] && $this->satuanTransaksi === 'kecil') {
|
||||||
|
$this->satuanTransaksi = 'besar';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function toast(string $type, string $message): void
|
||||||
|
{
|
||||||
|
$this->dispatch('gudangpos-toast', type: $type, message: $message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function render()
|
||||||
|
{
|
||||||
|
$service = app(SimbhpStockService::class);
|
||||||
|
|
||||||
|
$users = User::select('id', 'nama', 'previlage')->orderBy('nama', 'ASC')->get();
|
||||||
|
|
||||||
|
$query = SIMBHPJenis::query()->orderBy('jenis', 'ASC');
|
||||||
|
$search = trim((string) $this->search);
|
||||||
|
if ($search !== '') {
|
||||||
|
$searchLike = '%' . $search . '%';
|
||||||
|
$driver = DB::connection()->getDriverName();
|
||||||
|
$operator = ($driver === 'pgsql') ? 'ILIKE' : 'LIKE';
|
||||||
|
$query->where(function ($q) use ($searchLike, $operator) {
|
||||||
|
$q->where('jenis', $operator, $searchLike)
|
||||||
|
->orWhere('kodejenis', $operator, $searchLike);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
$products = $query->paginate(12);
|
||||||
|
|
||||||
|
$jenisNames = $products->getCollection()->pluck('jenis')->filter()->values()->all();
|
||||||
|
$stockMap = $service->getStockBaseByJenisMany($jenisNames);
|
||||||
|
$latestExpiredMap = [];
|
||||||
|
if (count($jenisNames) > 0) {
|
||||||
|
$expiredRows = SIMBHPReport::query()
|
||||||
|
->select('jenis', DB::raw('MAX(masa_expired) as latest_expired'))
|
||||||
|
->whereIn('jenis', $jenisNames)
|
||||||
|
->whereNotNull('masa_expired')
|
||||||
|
->whereNotNull('pemasukan')
|
||||||
|
->where('pemasukan', '>', 0)
|
||||||
|
->groupBy('jenis')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
foreach ($expiredRows as $row) {
|
||||||
|
$jenisNama = (string) ($row->jenis ?? '');
|
||||||
|
$expired = (string) ($row->latest_expired ?? '');
|
||||||
|
if ($jenisNama !== '' && $expired !== '') {
|
||||||
|
$expiredDate = Carbon::parse($expired)->startOfDay();
|
||||||
|
$today = Carbon::today();
|
||||||
|
$daysLeft = $today->diffInDays($expiredDate, false);
|
||||||
|
$badgeClass = 'success';
|
||||||
|
if ($daysLeft < 0) {
|
||||||
|
$badgeClass = 'danger';
|
||||||
|
} elseif ($daysLeft <= 30) {
|
||||||
|
$badgeClass = 'warning';
|
||||||
|
}
|
||||||
|
|
||||||
|
$latestExpiredMap[$jenisNama] = [
|
||||||
|
'date' => $expiredDate->format('d-m-Y'),
|
||||||
|
'badge_class' => $badgeClass,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$selectedJenis = null;
|
||||||
|
$selectedStockDisplay = null;
|
||||||
|
$selectedSetting = null;
|
||||||
|
$selectedLatestExpired = null;
|
||||||
|
$kode = $service->sanitizeKode($this->selectedKode);
|
||||||
|
if ($kode !== '') {
|
||||||
|
$selectedJenis = $service->getJenisByKode($kode);
|
||||||
|
if ($selectedJenis) {
|
||||||
|
$saldoBase = $service->getStockBaseByJenis((string) $selectedJenis->jenis);
|
||||||
|
$selectedSetting = $service->getUnitSetting($selectedJenis);
|
||||||
|
$selectedStockDisplay = $service->formatStockDisplay(
|
||||||
|
$saldoBase,
|
||||||
|
(string) ($selectedJenis->satuan ?? ''),
|
||||||
|
(string) ($selectedJenis->satuan_kecil ?? ''),
|
||||||
|
(int) ($selectedJenis->konversi_kecil ?? 1),
|
||||||
|
);
|
||||||
|
$selectedLatestExpired = $latestExpiredMap[(string) $selectedJenis->jenis] ?? null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('livewire.gudang-pos', [
|
||||||
|
'users' => $users,
|
||||||
|
'products' => $products,
|
||||||
|
'stockMap' => $stockMap,
|
||||||
|
'latestExpiredMap' => $latestExpiredMap,
|
||||||
|
'selectedJenis' => $selectedJenis,
|
||||||
|
'selectedStockDisplay' => $selectedStockDisplay,
|
||||||
|
'selectedSetting' => $selectedSetting,
|
||||||
|
'selectedLatestExpired' => $selectedLatestExpired,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class Paslab extends Model
|
||||||
|
{
|
||||||
|
protected $table = "paslab";
|
||||||
|
protected $primaryKey = "urut";
|
||||||
|
public $timestamps = false;
|
||||||
|
protected $guarded = [];
|
||||||
|
}
|
||||||
@@ -3,6 +3,10 @@
|
|||||||
namespace App;
|
namespace App;
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use App\KomponenJawaban;
|
||||||
|
use App\Riwayat;
|
||||||
|
use App\ResultSample;
|
||||||
|
use App\PertumKolomNi;
|
||||||
|
|
||||||
class Periksa extends Model
|
class Periksa extends Model
|
||||||
{
|
{
|
||||||
@@ -52,4 +56,56 @@ class Periksa extends Model
|
|||||||
{
|
{
|
||||||
return $this->hasOne('App\Logbook','id','diagnosa');
|
return $this->hasOne('App\Logbook','id','diagnosa');
|
||||||
}
|
}
|
||||||
|
public function komponen()
|
||||||
|
{
|
||||||
|
return $this->hasMany(KomponenJawaban::class, 'accnumber', 'nofoto');
|
||||||
|
}
|
||||||
|
public function riwayats()
|
||||||
|
{
|
||||||
|
return $this->hasMany(Riwayat::class, 'nofoto', 'nofoto');
|
||||||
|
}
|
||||||
|
public function rawResult()
|
||||||
|
{
|
||||||
|
return $this->hasOne(ResultSample::class, 'accession_number', 'nofoto');
|
||||||
|
}
|
||||||
|
public function pertumkolomni()
|
||||||
|
{
|
||||||
|
return $this->hasMany(PertumKolomNi::class, 'orderid', 'id');
|
||||||
|
}
|
||||||
|
public function lastMediaBAP()
|
||||||
|
{
|
||||||
|
return $this->hasOne(PertumKolomNi::class, 'orderid', 'id')
|
||||||
|
->where('media', 'Media BAP')
|
||||||
|
->latest();
|
||||||
|
}
|
||||||
|
public function lastMediaCAP()
|
||||||
|
{
|
||||||
|
return $this->hasOne(PertumKolomNi::class, 'orderid', 'id')
|
||||||
|
->where('media', 'Media CAP')
|
||||||
|
->latest();
|
||||||
|
}
|
||||||
|
public function lastMediaMcConkey()
|
||||||
|
{
|
||||||
|
return $this->hasOne(PertumKolomNi::class, 'orderid', 'id')
|
||||||
|
->where('media', 'Media Mc Conkey')
|
||||||
|
->latest();
|
||||||
|
}
|
||||||
|
public function lastMediaSDA()
|
||||||
|
{
|
||||||
|
return $this->hasOne(PertumKolomNi::class, 'orderid', 'id')
|
||||||
|
->where('media', 'Media SDA')
|
||||||
|
->latest();
|
||||||
|
}
|
||||||
|
public function lastMediaSelLain()
|
||||||
|
{
|
||||||
|
return $this->hasOne(PertumKolomNi::class, 'orderid', 'id')
|
||||||
|
->where('media', 'Media Selektif lainnya')
|
||||||
|
->latest();
|
||||||
|
}
|
||||||
|
public function lastMediaTamLain()
|
||||||
|
{
|
||||||
|
return $this->hasOne(PertumKolomNi::class, 'orderid', 'id')
|
||||||
|
->where('media', 'Media Tambahan Lainnya')
|
||||||
|
->latest();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class PertumKolomNi extends Model
|
||||||
|
{
|
||||||
|
protected $table = "pertumkolomni";
|
||||||
|
protected $guarded = [];
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class RekapPenerimaanSamplePrintHistory extends Model
|
||||||
|
{
|
||||||
|
protected $table = 'rekap_penerimaan_sample_print_histories';
|
||||||
|
protected $guarded = [];
|
||||||
|
}
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App;
|
|
||||||
|
|
||||||
use Illuminate\Database\Eloquent\Model;
|
|
||||||
|
|
||||||
class ResultOnListiner extends Model
|
|
||||||
{
|
|
||||||
protected $connection = 'mysqllistener';
|
|
||||||
protected $primaryKey = "urut";
|
|
||||||
protected $table = "lis_phoenix";
|
|
||||||
public $timestamps = false;
|
|
||||||
protected $guarded = [];
|
|
||||||
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load diff
@@ -0,0 +1,212 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Services;
|
||||||
|
|
||||||
|
use App\SIMBHPJenis;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
||||||
|
class SimbhpStockService
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Barcode format:
|
||||||
|
* - MAIN (satuan besar): 91{ID(8-digit)}1 (example: 91000001231)
|
||||||
|
* - BREAKDOWN (satuan kecil): 91{ID(8-digit)}2 (example: 91000001232)
|
||||||
|
*
|
||||||
|
* Backward compatibility:
|
||||||
|
* - {KODE}-B / {KODE}-K
|
||||||
|
* - plain {KODE} treated as "besar"
|
||||||
|
*
|
||||||
|
* @return array{kode:string, jenis_id:int|null, satuan_transaksi:string, barcode_value:string}
|
||||||
|
*/
|
||||||
|
public function parseBarcode(string $raw): array
|
||||||
|
{
|
||||||
|
$raw = $this->sanitizeKode($raw);
|
||||||
|
if ($raw === '') {
|
||||||
|
return [
|
||||||
|
'kode' => '',
|
||||||
|
'jenis_id' => null,
|
||||||
|
'satuan_transaksi' => 'besar',
|
||||||
|
'barcode_value' => '',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (preg_match('/^91(\d{8})([12])$/', $raw, $m)) {
|
||||||
|
$id = (int) ltrim((string) $m[1], '0');
|
||||||
|
$unitDigit = (string) $m[2];
|
||||||
|
|
||||||
|
return [
|
||||||
|
'kode' => '',
|
||||||
|
'jenis_id' => $id > 0 ? $id : null,
|
||||||
|
'satuan_transaksi' => ($unitDigit === '2') ? 'kecil' : 'besar',
|
||||||
|
'barcode_value' => $raw,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (preg_match('/^(.*)-(B|K)$/', $raw, $m)) {
|
||||||
|
$base = $this->sanitizeKode((string) $m[1]);
|
||||||
|
$suffix = (string) $m[2];
|
||||||
|
return [
|
||||||
|
'kode' => $base,
|
||||||
|
'jenis_id' => null,
|
||||||
|
'satuan_transaksi' => ($suffix === 'K') ? 'kecil' : 'besar',
|
||||||
|
'barcode_value' => $base . '-' . $suffix,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
return [
|
||||||
|
'kode' => $raw,
|
||||||
|
'jenis_id' => null,
|
||||||
|
'satuan_transaksi' => 'besar',
|
||||||
|
'barcode_value' => $raw,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sanitizeKode(string $kode): string
|
||||||
|
{
|
||||||
|
$kode = strtoupper(trim($kode));
|
||||||
|
$kode = preg_replace('/\s+/', '', $kode);
|
||||||
|
$kode = preg_replace('/[^A-Z0-9._-]/', '', $kode);
|
||||||
|
|
||||||
|
return substr($kode, 0, 40);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getJenisByKode(string $kode): ?SIMBHPJenis
|
||||||
|
{
|
||||||
|
$parsed = $this->parseBarcode($kode);
|
||||||
|
$jenisId = $parsed['jenis_id'] ?? null;
|
||||||
|
if (!is_null($jenisId) && (int) $jenisId > 0) {
|
||||||
|
return SIMBHPJenis::where('id', (int) $jenisId)->first();
|
||||||
|
}
|
||||||
|
|
||||||
|
$kode = $parsed['kode'] ?? '';
|
||||||
|
if ($kode === '') {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return SIMBHPJenis::where('kodejenis', $kode)->first();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function makeBarcodeValue(int $jenisId, string $satuanTransaksi = 'besar'): string
|
||||||
|
{
|
||||||
|
if ($jenisId <= 0) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
$idPart = str_pad((string) $jenisId, 8, '0', STR_PAD_LEFT);
|
||||||
|
$unitDigit = ($satuanTransaksi === 'kecil') ? '2' : '1';
|
||||||
|
|
||||||
|
return '91' . $idPart . $unitDigit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return array{has_breakdown: bool, konversi: int, satuan_kecil: string}
|
||||||
|
*/
|
||||||
|
public function getUnitSetting(SIMBHPJenis $jenis): array
|
||||||
|
{
|
||||||
|
$satuanKecil = trim((string) ($jenis->satuan_kecil ?? ''));
|
||||||
|
$konversi = (int) ($jenis->konversi_kecil ?? 1);
|
||||||
|
if ($konversi <= 0) {
|
||||||
|
$konversi = 1;
|
||||||
|
}
|
||||||
|
$hasBreakdown = ($satuanKecil !== '' && $konversi > 1);
|
||||||
|
|
||||||
|
return [
|
||||||
|
'has_breakdown' => $hasBreakdown,
|
||||||
|
'konversi' => $konversi,
|
||||||
|
'satuan_kecil' => $satuanKecil,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public function calculateBaseQty(SIMBHPJenis $jenis, int $qtyInput, string $satuanTransaksi = 'besar'): int
|
||||||
|
{
|
||||||
|
$qtyInput = (int) $qtyInput;
|
||||||
|
if ($qtyInput < 0) {
|
||||||
|
$qtyInput = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$setting = $this->getUnitSetting($jenis);
|
||||||
|
$konversi = (int) ($setting['konversi'] ?? 1);
|
||||||
|
if ($konversi <= 0) {
|
||||||
|
$konversi = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($satuanTransaksi === 'kecil') {
|
||||||
|
return $qtyInput;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $qtyInput * $konversi;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getStockBaseByJenis(string $jenisNama): int
|
||||||
|
{
|
||||||
|
$jenisNama = trim((string) $jenisNama);
|
||||||
|
if ($jenisNama === '') {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$row = DB::table('simbhpreport')
|
||||||
|
->where('jenis', $jenisNama)
|
||||||
|
->selectRaw("SUM(CASE WHEN pemasukan IS NOT NULL AND pemasukan > 0 THEN COALESCE(qty_base, pemasukan) ELSE 0 END) AS masuk_base")
|
||||||
|
->selectRaw("SUM(CASE WHEN pengeluaran IS NOT NULL AND pengeluaran > 0 THEN COALESCE(qty_base, pengeluaran) ELSE 0 END) AS keluar_base")
|
||||||
|
->first();
|
||||||
|
|
||||||
|
$masuk = (int) ($row->masuk_base ?? 0);
|
||||||
|
$keluar = (int) ($row->keluar_base ?? 0);
|
||||||
|
|
||||||
|
return $masuk - $keluar;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array<int, string> $jenisNames
|
||||||
|
* @return array<string, int> map jenis => saldo_base
|
||||||
|
*/
|
||||||
|
public function getStockBaseByJenisMany(array $jenisNames): array
|
||||||
|
{
|
||||||
|
$jenisNames = array_values(array_filter(array_map(function ($v) {
|
||||||
|
return trim((string) $v);
|
||||||
|
}, $jenisNames)));
|
||||||
|
|
||||||
|
if (count($jenisNames) === 0) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
$rows = DB::table('simbhpreport')
|
||||||
|
->whereIn('jenis', $jenisNames)
|
||||||
|
->select('jenis')
|
||||||
|
->selectRaw("SUM(CASE WHEN pemasukan IS NOT NULL AND pemasukan > 0 THEN COALESCE(qty_base, pemasukan) ELSE 0 END) AS masuk_base")
|
||||||
|
->selectRaw("SUM(CASE WHEN pengeluaran IS NOT NULL AND pengeluaran > 0 THEN COALESCE(qty_base, pengeluaran) ELSE 0 END) AS keluar_base")
|
||||||
|
->groupBy('jenis')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$map = [];
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$jenis = (string) ($row->jenis ?? '');
|
||||||
|
if ($jenis === '') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
$map[$jenis] = ((int) ($row->masuk_base ?? 0)) - ((int) ($row->keluar_base ?? 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($jenisNames as $jenis) {
|
||||||
|
if (!array_key_exists($jenis, $map)) {
|
||||||
|
$map[$jenis] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $map;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function formatStockDisplay(int $saldoBase, string $satuanBesar, string $satuanKecil, int $konversi): string
|
||||||
|
{
|
||||||
|
$saldoBase = (int) $saldoBase;
|
||||||
|
$konversi = (int) $konversi;
|
||||||
|
if ($konversi <= 1 || trim($satuanKecil) === '') {
|
||||||
|
return number_format($saldoBase, 0, '.', ',') . ' ' . $satuanBesar;
|
||||||
|
}
|
||||||
|
|
||||||
|
$besar = intdiv($saldoBase, $konversi);
|
||||||
|
$kecil = $saldoBase % $konversi;
|
||||||
|
|
||||||
|
return number_format($besar, 0, '.', ',') . ' ' . $satuanBesar . ' + ' . number_format($kecil, 0, '.', ',') . ' ' . $satuanKecil;
|
||||||
|
}
|
||||||
|
}
|
||||||
Regular → Executable
+10
-4
@@ -8,21 +8,23 @@
|
|||||||
"php": "^8.1",
|
"php": "^8.1",
|
||||||
"aamdsam/bridging-bpjs": "^1.11",
|
"aamdsam/bridging-bpjs": "^1.11",
|
||||||
"aranyasen/hl7": "^3.1",
|
"aranyasen/hl7": "^3.1",
|
||||||
"arcanedev/log-viewer": "^10.1",
|
|
||||||
"elibyy/tcpdf-laravel": "^11.1",
|
"elibyy/tcpdf-laravel": "^11.1",
|
||||||
"fawno/php-serial": "^2.0",
|
"fawno/php-serial": "^2.0",
|
||||||
"guzzlehttp/guzzle": "^7.8",
|
"guzzlehttp/guzzle": "^7.8",
|
||||||
|
"halaxa/json-machine": "^1.2",
|
||||||
"laravel/framework": "^10.10",
|
"laravel/framework": "^10.10",
|
||||||
"laravel/passport": "^11.10",
|
"laravel/passport": "^11.10",
|
||||||
"laravel/sanctum": "^3.3",
|
"laravel/sanctum": "^3.3",
|
||||||
"laravel/tinker": "^2.8",
|
"laravel/tinker": "^2.8",
|
||||||
"munafio/chatify": "^1.6",
|
"livewire/livewire": "^3.5",
|
||||||
"onecentlin/laravel-adminer": "^7.0",
|
"onecentlin/laravel-adminer": "^7.0",
|
||||||
|
"opcodesio/log-viewer": "^3.21",
|
||||||
"phpoffice/phpspreadsheet": "^3.3",
|
"phpoffice/phpspreadsheet": "^3.3",
|
||||||
"picqer/php-barcode-generator": "^3.2",
|
"picqer/php-barcode-generator": "^3.2",
|
||||||
"pusher/pusher-php-server": "^7.2",
|
|
||||||
"setasign/fpdi": "^2.6",
|
"setasign/fpdi": "^2.6",
|
||||||
"simplesoftwareio/simple-qrcode": "^4.2"
|
"simplesoftwareio/simple-qrcode": "^4.2",
|
||||||
|
"spatie/laravel-backup": "^9.3",
|
||||||
|
"yajra/laravel-datatables-oracle": "^10.11"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"fakerphp/faker": "^1.9.1",
|
"fakerphp/faker": "^1.9.1",
|
||||||
@@ -66,7 +68,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
|
"platform": {
|
||||||
|
"php": "8.4"
|
||||||
|
},
|
||||||
"optimize-autoloader": true,
|
"optimize-autoloader": true,
|
||||||
|
"platform-check": false,
|
||||||
"preferred-install": "dist",
|
"preferred-install": "dist",
|
||||||
"sort-packages": true,
|
"sort-packages": true,
|
||||||
"allow-plugins": {
|
"allow-plugins": {
|
||||||
|
|||||||
Generated
+1760
-1207
File diff suppressed because it is too large
Load diff
Binary file not shown.
@@ -70,7 +70,7 @@ return [
|
|||||||
|
|
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
'timezone' => 'UTC',
|
'timezone' => 'Asia/Jakarta',
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|--------------------------------------------------------------------------
|
|--------------------------------------------------------------------------
|
||||||
@@ -182,7 +182,7 @@ return [
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
'aliases' => Facade::defaultAliases()->merge([
|
'aliases' => Facade::defaultAliases()->merge([
|
||||||
// 'Example' => App\Facades\Example::class,
|
'PDFCREATOR' => Elibyy\TCPDF\Facades\TCPDF::class,
|
||||||
])->toArray(),
|
])->toArray(),
|
||||||
|
|
||||||
];
|
];
|
||||||
@@ -0,0 +1,341 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
|
||||||
|
'backup' => [
|
||||||
|
/*
|
||||||
|
* The name of this application. You can use this name to monitor
|
||||||
|
* the backups.
|
||||||
|
*/
|
||||||
|
'name' => env('APP_NAME', 'laravel-backup'),
|
||||||
|
|
||||||
|
'source' => [
|
||||||
|
'files' => [
|
||||||
|
/*
|
||||||
|
* The list of directories and files that will be included in the backup.
|
||||||
|
*/
|
||||||
|
'include' => [
|
||||||
|
base_path(),
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These directories and files will be excluded from the backup.
|
||||||
|
*
|
||||||
|
* Directories used by the backup process will automatically be excluded.
|
||||||
|
*/
|
||||||
|
'exclude' => [
|
||||||
|
base_path('vendor'),
|
||||||
|
base_path('node_modules'),
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Determines if symlinks should be followed.
|
||||||
|
*/
|
||||||
|
'follow_links' => false,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Determines if it should avoid unreadable folders.
|
||||||
|
*/
|
||||||
|
'ignore_unreadable_directories' => false,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This path is used to make directories in resulting zip-file relative
|
||||||
|
* Set to `null` to include complete absolute path
|
||||||
|
* Example: base_path()
|
||||||
|
*/
|
||||||
|
'relative_path' => null,
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The names of the connections to the databases that should be backed up
|
||||||
|
* MySQL, PostgreSQL, SQLite and Mongo databases are supported.
|
||||||
|
*
|
||||||
|
* The content of the database dump may be customized for each connection
|
||||||
|
* by adding a 'dump' key to the connection settings in config/database.php.
|
||||||
|
* E.g.
|
||||||
|
* 'mysql' => [
|
||||||
|
* ...
|
||||||
|
* 'dump' => [
|
||||||
|
* 'excludeTables' => [
|
||||||
|
* 'table_to_exclude_from_backup',
|
||||||
|
* 'another_table_to_exclude'
|
||||||
|
* ]
|
||||||
|
* ],
|
||||||
|
* ],
|
||||||
|
*
|
||||||
|
* If you are using only InnoDB tables on a MySQL server, you can
|
||||||
|
* also supply the useSingleTransaction option to avoid table locking.
|
||||||
|
*
|
||||||
|
* E.g.
|
||||||
|
* 'mysql' => [
|
||||||
|
* ...
|
||||||
|
* 'dump' => [
|
||||||
|
* 'useSingleTransaction' => true,
|
||||||
|
* ],
|
||||||
|
* ],
|
||||||
|
*
|
||||||
|
* For a complete list of available customization options, see https://github.com/spatie/db-dumper
|
||||||
|
*/
|
||||||
|
'databases' => [
|
||||||
|
env('DB_CONNECTION', 'mysql'),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The database dump can be compressed to decrease disk space usage.
|
||||||
|
*
|
||||||
|
* Out of the box Laravel-backup supplies
|
||||||
|
* Spatie\DbDumper\Compressors\GzipCompressor::class.
|
||||||
|
*
|
||||||
|
* You can also create custom compressor. More info on that here:
|
||||||
|
* https://github.com/spatie/db-dumper#using-compression
|
||||||
|
*
|
||||||
|
* If you do not want any compressor at all, set it to null.
|
||||||
|
*/
|
||||||
|
'database_dump_compressor' => null,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If specified, the database dumped file name will contain a timestamp (e.g.: 'Y-m-d-H-i-s').
|
||||||
|
*/
|
||||||
|
'database_dump_file_timestamp_format' => null,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The base of the dump filename, either 'database' or 'connection'
|
||||||
|
*
|
||||||
|
* If 'database' (default), the dumped filename will contain the database name.
|
||||||
|
* If 'connection', the dumped filename will contain the connection name.
|
||||||
|
*/
|
||||||
|
'database_dump_filename_base' => 'database',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The file extension used for the database dump files.
|
||||||
|
*
|
||||||
|
* If not specified, the file extension will be .archive for MongoDB and .sql for all other databases
|
||||||
|
* The file extension should be specified without a leading .
|
||||||
|
*/
|
||||||
|
'database_dump_file_extension' => '',
|
||||||
|
|
||||||
|
'destination' => [
|
||||||
|
/*
|
||||||
|
* The compression algorithm to be used for creating the zip archive.
|
||||||
|
*
|
||||||
|
* If backing up only database, you may choose gzip compression for db dump and no compression at zip.
|
||||||
|
*
|
||||||
|
* Some common algorithms are listed below:
|
||||||
|
* ZipArchive::CM_STORE (no compression at all; set 0 as compression level)
|
||||||
|
* ZipArchive::CM_DEFAULT
|
||||||
|
* ZipArchive::CM_DEFLATE
|
||||||
|
* ZipArchive::CM_BZIP2
|
||||||
|
* ZipArchive::CM_XZ
|
||||||
|
*
|
||||||
|
* For more check https://www.php.net/manual/zip.constants.php and confirm it's supported by your system.
|
||||||
|
*/
|
||||||
|
'compression_method' => ZipArchive::CM_DEFAULT,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The compression level corresponding to the used algorithm; an integer between 0 and 9.
|
||||||
|
*
|
||||||
|
* Check supported levels for the chosen algorithm, usually 1 means the fastest and weakest compression,
|
||||||
|
* while 9 the slowest and strongest one.
|
||||||
|
*
|
||||||
|
* Setting of 0 for some algorithms may switch to the strongest compression.
|
||||||
|
*/
|
||||||
|
'compression_level' => 9,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The filename prefix used for the backup zip file.
|
||||||
|
*/
|
||||||
|
'filename_prefix' => '',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The disk names on which the backups will be stored.
|
||||||
|
*/
|
||||||
|
'disks' => [
|
||||||
|
'local',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The directory where the temporary files will be stored.
|
||||||
|
*/
|
||||||
|
'temporary_directory' => storage_path('app/backup-temp'),
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The password to be used for archive encryption.
|
||||||
|
* Set to `null` to disable encryption.
|
||||||
|
*/
|
||||||
|
'password' => env('BACKUP_ARCHIVE_PASSWORD'),
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The encryption algorithm to be used for archive encryption.
|
||||||
|
* You can set it to `null` or `false` to disable encryption.
|
||||||
|
*
|
||||||
|
* When set to 'default', we'll use ZipArchive::EM_AES_256 if it is
|
||||||
|
* available on your system.
|
||||||
|
*/
|
||||||
|
'encryption' => 'default',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The number of attempts, in case the backup command encounters an exception
|
||||||
|
*/
|
||||||
|
'tries' => 1,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The number of seconds to wait before attempting a new backup if the previous try failed
|
||||||
|
* Set to `0` for none
|
||||||
|
*/
|
||||||
|
'retry_delay' => 0,
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* You can get notified when specific events occur. Out of the box you can use 'mail' and 'slack'.
|
||||||
|
* For Slack you need to install laravel/slack-notification-channel.
|
||||||
|
*
|
||||||
|
* You can also use your own notification classes, just make sure the class is named after one of
|
||||||
|
* the `Spatie\Backup\Notifications\Notifications` classes.
|
||||||
|
*/
|
||||||
|
'notifications' => [
|
||||||
|
'notifications' => [
|
||||||
|
\Spatie\Backup\Notifications\Notifications\BackupHasFailedNotification::class => ['mail'],
|
||||||
|
\Spatie\Backup\Notifications\Notifications\UnhealthyBackupWasFoundNotification::class => ['mail'],
|
||||||
|
\Spatie\Backup\Notifications\Notifications\CleanupHasFailedNotification::class => ['mail'],
|
||||||
|
\Spatie\Backup\Notifications\Notifications\BackupWasSuccessfulNotification::class => ['mail'],
|
||||||
|
\Spatie\Backup\Notifications\Notifications\HealthyBackupWasFoundNotification::class => ['mail'],
|
||||||
|
\Spatie\Backup\Notifications\Notifications\CleanupWasSuccessfulNotification::class => ['mail'],
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Here you can specify the notifiable to which the notifications should be sent. The default
|
||||||
|
* notifiable will use the variables specified in this config file.
|
||||||
|
*/
|
||||||
|
'notifiable' => \Spatie\Backup\Notifications\Notifiable::class,
|
||||||
|
|
||||||
|
'mail' => [
|
||||||
|
'to' => '[email protected]',
|
||||||
|
|
||||||
|
'from' => [
|
||||||
|
'address' => env('MAIL_FROM_ADDRESS', '[email protected]'),
|
||||||
|
'name' => env('MAIL_FROM_NAME', 'Example'),
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
'slack' => [
|
||||||
|
'webhook_url' => '',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If this is set to null the default channel of the webhook will be used.
|
||||||
|
*/
|
||||||
|
'channel' => null,
|
||||||
|
|
||||||
|
'username' => null,
|
||||||
|
|
||||||
|
'icon' => null,
|
||||||
|
],
|
||||||
|
|
||||||
|
'discord' => [
|
||||||
|
'webhook_url' => '',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If this is an empty string, the name field on the webhook will be used.
|
||||||
|
*/
|
||||||
|
'username' => '',
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If this is an empty string, the avatar on the webhook will be used.
|
||||||
|
*/
|
||||||
|
'avatar_url' => '',
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Here you can specify which backups should be monitored.
|
||||||
|
* If a backup does not meet the specified requirements the
|
||||||
|
* UnHealthyBackupWasFound event will be fired.
|
||||||
|
*/
|
||||||
|
'monitor_backups' => [
|
||||||
|
[
|
||||||
|
'name' => env('APP_NAME', 'laravel-backup'),
|
||||||
|
'disks' => ['local'],
|
||||||
|
'health_checks' => [
|
||||||
|
\Spatie\Backup\Tasks\Monitor\HealthChecks\MaximumAgeInDays::class => 1,
|
||||||
|
\Spatie\Backup\Tasks\Monitor\HealthChecks\MaximumStorageInMegabytes::class => 5000,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
[
|
||||||
|
'name' => 'name of the second app',
|
||||||
|
'disks' => ['local', 's3'],
|
||||||
|
'health_checks' => [
|
||||||
|
\Spatie\Backup\Tasks\Monitor\HealthChecks\MaximumAgeInDays::class => 1,
|
||||||
|
\Spatie\Backup\Tasks\Monitor\HealthChecks\MaximumStorageInMegabytes::class => 5000,
|
||||||
|
],
|
||||||
|
],
|
||||||
|
*/
|
||||||
|
],
|
||||||
|
|
||||||
|
'cleanup' => [
|
||||||
|
/*
|
||||||
|
* The strategy that will be used to cleanup old backups. The default strategy
|
||||||
|
* will keep all backups for a certain amount of days. After that period only
|
||||||
|
* a daily backup will be kept. After that period only weekly backups will
|
||||||
|
* be kept and so on.
|
||||||
|
*
|
||||||
|
* No matter how you configure it the default strategy will never
|
||||||
|
* delete the newest backup.
|
||||||
|
*/
|
||||||
|
'strategy' => \Spatie\Backup\Tasks\Cleanup\Strategies\DefaultStrategy::class,
|
||||||
|
|
||||||
|
'default_strategy' => [
|
||||||
|
/*
|
||||||
|
* The number of days for which backups must be kept.
|
||||||
|
*/
|
||||||
|
'keep_all_backups_for_days' => 7,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* After the "keep_all_backups_for_days" period is over, the most recent backup
|
||||||
|
* of that day will be kept. Older backups within the same day will be removed.
|
||||||
|
* If you create backups only once a day, no backups will be removed yet.
|
||||||
|
*/
|
||||||
|
'keep_daily_backups_for_days' => 16,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* After the "keep_daily_backups_for_days" period is over, the most recent backup
|
||||||
|
* of that week will be kept. Older backups within the same week will be removed.
|
||||||
|
* If you create backups only once a week, no backups will be removed yet.
|
||||||
|
*/
|
||||||
|
'keep_weekly_backups_for_weeks' => 8,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* After the "keep_weekly_backups_for_weeks" period is over, the most recent backup
|
||||||
|
* of that month will be kept. Older backups within the same month will be removed.
|
||||||
|
*/
|
||||||
|
'keep_monthly_backups_for_months' => 4,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* After the "keep_monthly_backups_for_months" period is over, the most recent backup
|
||||||
|
* of that year will be kept. Older backups within the same year will be removed.
|
||||||
|
*/
|
||||||
|
'keep_yearly_backups_for_years' => 2,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* After cleaning up the backups remove the oldest backup until
|
||||||
|
* this amount of megabytes has been reached.
|
||||||
|
* Set null for unlimited size.
|
||||||
|
*/
|
||||||
|
'delete_oldest_backups_when_using_more_megabytes_than' => 5000,
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The number of attempts, in case the cleanup command encounters an exception
|
||||||
|
*/
|
||||||
|
'tries' => 1,
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The number of seconds to wait before attempting a new cleanup if the previous try failed
|
||||||
|
* Set to `0` for none
|
||||||
|
*/
|
||||||
|
'retry_delay' => 0,
|
||||||
|
],
|
||||||
|
|
||||||
|
];
|
||||||
@@ -58,9 +58,6 @@ return [
|
|||||||
'prefix_indexes'=> true,
|
'prefix_indexes'=> true,
|
||||||
'strict' => false,
|
'strict' => false,
|
||||||
'engine' => null,
|
'engine' => null,
|
||||||
'options' => extension_loaded('pdo_mysql') ? array_filter([
|
|
||||||
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
|
|
||||||
]) : [],
|
|
||||||
],
|
],
|
||||||
|
|
||||||
'pgsql' => [
|
'pgsql' => [
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
<?php
|
<?php
|
||||||
return [
|
return [
|
||||||
'Title' => 'LIS',
|
'Title' => 'MyLIS-RSSA',
|
||||||
'namaapps' => 'Laboratory Information System',
|
'namaapps' => 'Mikrobiologi Information System',
|
||||||
'domainapps' => 'RSUD Dr. Saiful Anwar',
|
'domainapps' => 'RSUD Dr. Saiful Anwar',
|
||||||
'subdomainapps' => 'Kota Malang',
|
'subdomainapps' => 'Kota Malang',
|
||||||
'subsubdomainapps' => 'Jawa Timur',
|
'subsubdomainapps' => 'Jawa Timur',
|
||||||
'addressapps' => 'Jl. Lamandau 18A Bunulrejo Blimbing Malang',
|
'addressapps' => 'Jl. Lamandau 18A Bunulrejo Blimbing Malang',
|
||||||
'kota' => 'Lumajang',
|
'kota' => 'Malang',
|
||||||
'emailapps' => '[email protected]',
|
'emailapps' => '[email protected]',
|
||||||
'lamanapps' => 'https://lis.swandhana.test',
|
'lamanapps' => 'https://mylis.rssa.id',
|
||||||
'logofrontapps' => 'header.png',
|
'logofrontapps' => 'header.png',
|
||||||
];
|
];
|
||||||
?>
|
?>
|
||||||
+309
-123
@@ -1,146 +1,332 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
use Arcanedev\LogViewer\Contracts\Utilities\Filesystem;
|
use Opcodes\LogViewer\Enums\SortingMethod;
|
||||||
|
use Opcodes\LogViewer\Enums\SortingOrder;
|
||||||
|
use Opcodes\LogViewer\Enums\Theme;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
/*
|
||||||
| Log files storage path
|
|--------------------------------------------------------------------------
|
||||||
| -----------------------------------------------------------------
|
| Log Viewer
|
||||||
*/
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Viewer can be disabled, so it's no longer accessible via browser.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
'storage-path' => storage_path('logs'),
|
'enabled' => env('LOG_VIEWER_ENABLED', true),
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
'api_only' => env('LOG_VIEWER_API_ONLY', false),
|
||||||
| Log files pattern
|
|
||||||
| -----------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
'pattern' => [
|
'require_auth_in_production' => false,
|
||||||
'prefix' => Filesystem::PATTERN_PREFIX, // 'laravel-'
|
|
||||||
'date' => Filesystem::PATTERN_DATE, // '[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]'
|
/*
|
||||||
'extension' => Filesystem::PATTERN_EXTENSION, // '.log'
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Viewer Domain
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| You may change the domain where Log Viewer should be active.
|
||||||
|
| If the domain is empty, all domains will be valid.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'route_domain' => null,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Viewer Route
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Viewer will be available under this URL.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'route_path' => 'log-viewer',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Viewer Assets Path
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| The path to the Log Viewer assets.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'assets_path' => 'vendor/log-viewer',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Back to system URL
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| When set, displays a link to easily get back to this URL.
|
||||||
|
| Set to `null` to hide this link.
|
||||||
|
|
|
||||||
|
| Optional label to display for the above URL.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'back_to_system_url' => config('app.url', null),
|
||||||
|
|
||||||
|
'back_to_system_label' => null, // Displayed by default: "Back to {{ app.name }}"
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Viewer time zone.
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| The time zone in which to display the times in the UI. Defaults to
|
||||||
|
| the application's timezone defined in config/app.php.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'timezone' => null,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Viewer datetime format.
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| The format used to display timestamps in the UI.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'datetime_format' => 'Y-m-d H:i:s',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Viewer route middleware.
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Optional middleware to use when loading the initial Log Viewer page.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'middleware' => [
|
||||||
|
'web',
|
||||||
|
\Opcodes\LogViewer\Http\Middleware\AuthorizeLogViewer::class,
|
||||||
],
|
],
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
/*
|
||||||
| Locale
|
|--------------------------------------------------------------------------
|
||||||
| -----------------------------------------------------------------
|
| Log Viewer API middleware.
|
||||||
| Supported locales :
|
|--------------------------------------------------------------------------
|
||||||
| 'auto', 'ar', 'bg', 'de', 'en', 'es', 'et', 'fa', 'fr', 'hu', 'hy', 'id', 'it', 'ja', 'ko', 'nl',
|
| Optional middleware to use on every API request. The same API is also
|
||||||
| 'pl', 'pt-BR', 'ro', 'ru', 'sv', 'th', 'tr', 'zh-TW', 'zh'
|
| used from within the Log Viewer user interface.
|
||||||
*/
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
'locale' => 'auto',
|
'api_middleware' => [
|
||||||
|
\Opcodes\LogViewer\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
|
||||||
|
\Opcodes\LogViewer\Http\Middleware\AuthorizeLogViewer::class,
|
||||||
|
],
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
'api_stateful_domains' => env('LOG_VIEWER_API_STATEFUL_DOMAINS') ? explode(',', env('LOG_VIEWER_API_STATEFUL_DOMAINS')) : null,
|
||||||
| Theme
|
|
||||||
| -----------------------------------------------------------------
|
|
||||||
| Supported themes :
|
|
||||||
| 'bootstrap-5'
|
|
||||||
| 'bootstrap-4'
|
|
||||||
| 'bootstrap-3'
|
|
||||||
|
|
|
||||||
| You can make your own theme by adding a folder to the views directory and specifying it here.
|
|
||||||
*/
|
|
||||||
|
|
||||||
'theme' => 'bootstrap-5',
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Viewer Remote hosts.
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Viewer supports viewing Laravel logs from remote hosts. They must
|
||||||
|
| be running Log Viewer as well. Below you can define the hosts you
|
||||||
|
| would like to show in this Log Viewer instance.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
'hosts' => [
|
||||||
| Route settings
|
'local' => [
|
||||||
| -----------------------------------------------------------------
|
'name' => ucfirst(env('APP_ENV', 'local')),
|
||||||
*/
|
|
||||||
|
|
||||||
'route' => [
|
|
||||||
'enabled' => true,
|
|
||||||
|
|
||||||
'attributes' => [
|
|
||||||
'prefix' => 'log-viewer',
|
|
||||||
|
|
||||||
'middleware' => env('ARCANEDEV_LOGVIEWER_MIDDLEWARE') ? explode(',', env('ARCANEDEV_LOGVIEWER_MIDDLEWARE')) : null,
|
|
||||||
],
|
],
|
||||||
|
|
||||||
'show' => 'log-viewer::logs.show'
|
// 'staging' => [
|
||||||
],
|
// 'name' => 'Staging',
|
||||||
|
// 'host' => 'https://staging.example.com/log-viewer',
|
||||||
/* -----------------------------------------------------------------
|
// 'auth' => [ // Example of HTTP Basic auth
|
||||||
| Log entries per page
|
// 'username' => 'username',
|
||||||
| -----------------------------------------------------------------
|
// 'password' => 'password',
|
||||||
| This defines how many logs & entries are displayed per page.
|
// ],
|
||||||
*/
|
// 'verify_server_certificate' => true,
|
||||||
|
// ],
|
||||||
'per-page' => 30,
|
//
|
||||||
|
'production' => [
|
||||||
/* -----------------------------------------------------------------
|
'name' => 'Production',
|
||||||
| Download settings
|
'host' => 'https://example.com/log-viewer',
|
||||||
| -----------------------------------------------------------------
|
'auth' => [
|
||||||
*/
|
'token' => env('LOG_VIEWER_PRODUCTION_TOKEN'),
|
||||||
|
],
|
||||||
'download' => [
|
'headers' => [
|
||||||
'prefix' => 'laravel-',
|
'X-Foo' => 'Bar',
|
||||||
|
],
|
||||||
'extension' => 'log',
|
'verify_server_certificate' => true,
|
||||||
],
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
|
||||||
| Menu settings
|
|
||||||
| -----------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
'menu' => [
|
|
||||||
'filter-route' => 'log-viewer::logs.filter',
|
|
||||||
|
|
||||||
'icons-enabled' => true,
|
|
||||||
],
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
|
||||||
| Icons
|
|
||||||
| -----------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
'icons' => [
|
|
||||||
/**
|
|
||||||
* Font awesome >= 4.3
|
|
||||||
* http://fontawesome.io/icons/
|
|
||||||
*/
|
|
||||||
'all' => 'fa fa-fw fa-list', // http://fontawesome.io/icon/list/
|
|
||||||
'emergency' => 'fa fa-fw fa-bug', // http://fontawesome.io/icon/bug/
|
|
||||||
'alert' => 'fa fa-fw fa-bullhorn', // http://fontawesome.io/icon/bullhorn/
|
|
||||||
'critical' => 'fa fa-fw fa-heartbeat', // http://fontawesome.io/icon/heartbeat/
|
|
||||||
'error' => 'fa fa-fw fa-times-circle', // http://fontawesome.io/icon/times-circle/
|
|
||||||
'warning' => 'fa fa-fw fa-exclamation-triangle', // http://fontawesome.io/icon/exclamation-triangle/
|
|
||||||
'notice' => 'fa fa-fw fa-exclamation-circle', // http://fontawesome.io/icon/exclamation-circle/
|
|
||||||
'info' => 'fa fa-fw fa-info-circle', // http://fontawesome.io/icon/info-circle/
|
|
||||||
'debug' => 'fa fa-fw fa-life-ring', // http://fontawesome.io/icon/life-ring/
|
|
||||||
],
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
|
||||||
| Colors
|
|
||||||
| -----------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
'colors' => [
|
|
||||||
'levels' => [
|
|
||||||
'empty' => '#D1D1D1',
|
|
||||||
'all' => '#8A8A8A',
|
|
||||||
'emergency' => '#B71C1C',
|
|
||||||
'alert' => '#D32F2F',
|
|
||||||
'critical' => '#F44336',
|
|
||||||
'error' => '#FF5722',
|
|
||||||
'warning' => '#FF9100',
|
|
||||||
'notice' => '#4CAF50',
|
|
||||||
'info' => '#1976D2',
|
|
||||||
'debug' => '#90CAF9',
|
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
/* -----------------------------------------------------------------
|
/*
|
||||||
| Strings to highlight in stack trace
|
|--------------------------------------------------------------------------
|
||||||
| -----------------------------------------------------------------
|
| Include file patterns
|
||||||
*/
|
|--------------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
'highlight' => [
|
'include_files' => [
|
||||||
'^#\d+',
|
'*.log',
|
||||||
'^Stack trace:',
|
'**/*.log',
|
||||||
|
|
||||||
|
// You can include paths to other log types as well, such as apache, nginx, and more.
|
||||||
|
// This key => value pair can be used to rename and group multiple paths into one folder in the UI.
|
||||||
|
'/var/log/httpd/*' => 'Apache',
|
||||||
|
'/var/log/nginx/*' => 'Nginx',
|
||||||
|
|
||||||
|
// MacOS Apple Silicon logs
|
||||||
|
'/opt/homebrew/var/log/nginx/*',
|
||||||
|
'/opt/homebrew/var/log/httpd/*',
|
||||||
|
'/opt/homebrew/var/log/php-fpm.log',
|
||||||
|
'/opt/homebrew/var/log/postgres*log',
|
||||||
|
'/opt/homebrew/var/log/redis*log',
|
||||||
|
'/opt/homebrew/var/log/supervisor*log',
|
||||||
|
|
||||||
|
// '/absolute/paths/supported',
|
||||||
],
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Exclude file patterns.
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| This will take precedence over included files.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'exclude_files' => [
|
||||||
|
// 'my_secret.log'
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Hide unknown files.
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| The include/exclude options above might catch files which are not
|
||||||
|
| logs supported by Log Viewer. In that case, you can hide them
|
||||||
|
| from the UI and API calls by setting this to true.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'hide_unknown_files' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Shorter stack trace filters.
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Lines containing any of these strings will be excluded from the full log.
|
||||||
|
| This setting is only active when the function is enabled via the user interface.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'shorter_stack_trace_excludes' => [
|
||||||
|
'/vendor/symfony/',
|
||||||
|
'/vendor/laravel/framework/',
|
||||||
|
'/vendor/barryvdh/laravel-debugbar/',
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Cache driver
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Cache driver to use for storing the log indices. Indices are used to speed up
|
||||||
|
| log navigation. Defaults to your application's default cache driver.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'cache_driver' => env('LOG_VIEWER_CACHE_DRIVER', null),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Cache key prefix
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Log Viewer prefixes all the cache keys created with this value. If for
|
||||||
|
| some reason you would like to change this prefix, you can do so here.
|
||||||
|
| The format of Log Viewer cache keys is:
|
||||||
|
| {prefix}:{version}:{rest-of-the-key}
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'cache_key_prefix' => 'lv',
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Chunk size when scanning log files lazily
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| The size in MB of files to scan before updating the progress bar when searching across all files.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'lazy_scan_chunk_size_in_mb' => 50,
|
||||||
|
|
||||||
|
'strip_extracted_context' => true,
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Per page options
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Define the available options for number of results per page
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'per_page_options' => [10, 25, 50, 100, 250, 500],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Default settings for Log Viewer
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| These settings determine the default behaviour of Log Viewer. Many of
|
||||||
|
| these can be persisted for the user in their browser's localStorage,
|
||||||
|
| if the `use_local_storage` option is set to true.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'defaults' => [
|
||||||
|
|
||||||
|
// Whether to use browser's localStorage to store user preferences.
|
||||||
|
// If true, user preferences saved in the browser will take precedence over the defaults below.
|
||||||
|
'use_local_storage' => true,
|
||||||
|
|
||||||
|
// Method to sort the folders. Other options: `Alphabetical`, `ModifiedTime`
|
||||||
|
'folder_sorting_method' => SortingMethod::ModifiedTime,
|
||||||
|
|
||||||
|
// Order to sort the folders. Other options: `Ascending`, `Descending`
|
||||||
|
'folder_sorting_order' => SortingOrder::Descending,
|
||||||
|
|
||||||
|
// Method for sorting log-files into directories. Other options: `Alphabetical`, `ModifiedTime`
|
||||||
|
'file_sorting_method' => SortingMethod::ModifiedTime,
|
||||||
|
|
||||||
|
// Order to sort the logs. Other options: `Ascending`, `Descending`
|
||||||
|
'log_sorting_order' => SortingOrder::Descending,
|
||||||
|
|
||||||
|
// Number of results per page. Must be one of the above `per_page_options` values
|
||||||
|
'per_page' => 25,
|
||||||
|
|
||||||
|
// Color scheme for the Log Viewer. Other options: `System`, `Light`, `Dark`
|
||||||
|
'theme' => Theme::System,
|
||||||
|
|
||||||
|
// Whether to enable `Shorter Stack Traces` option by default
|
||||||
|
'shorter_stack_traces' => false,
|
||||||
|
|
||||||
|
],
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Exclude IP from identifiers
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| By default, file and folder identifiers include the server's IP address
|
||||||
|
| to ensure uniqueness. In load-balanced environments with shared storage,
|
||||||
|
| this can cause "No results" errors. Set to true to exclude IP addresses
|
||||||
|
| from identifier generation for consistent results across servers.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'exclude_ip_from_identifiers' => env('LOG_VIEWER_EXCLUDE_IP_FROM_IDENTIFIERS', false),
|
||||||
|
|
||||||
|
/*
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| Root folder prefix
|
||||||
|
|--------------------------------------------------------------------------
|
||||||
|
| The prefix for log files inside Laravel's `storage/logs` folder.
|
||||||
|
| Log Viewer does not show the full path to these files in the UI,
|
||||||
|
| but only the filename prefixed with this value.
|
||||||
|
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
'root_folder_prefix' => 'root',
|
||||||
];
|
];
|
||||||
@@ -18,7 +18,7 @@ return new class extends Migration
|
|||||||
$table->string('jk', 1)->nullable();
|
$table->string('jk', 1)->nullable();
|
||||||
$table->date('tgl_lahir')->nullable();
|
$table->date('tgl_lahir')->nullable();
|
||||||
$table->string('kota', 50)->nullable();
|
$table->string('kota', 50)->nullable();
|
||||||
$table->string('alamat', 100)->nullable();
|
$table->text('alamat')->nullable();
|
||||||
$table->string('telpon', 50)->nullable();
|
$table->string('telpon', 50)->nullable();
|
||||||
$table->string('nik', 50)->nullable();
|
$table->string('nik', 50)->nullable();
|
||||||
$table->string('bpjs', 50)->nullable();
|
$table->string('bpjs', 50)->nullable();
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ return new class extends Migration
|
|||||||
$table->id();
|
$table->id();
|
||||||
$table->timestamp('mulai')->nullable();
|
$table->timestamp('mulai')->nullable();
|
||||||
$table->timestamp('akhir')->nullable();
|
$table->timestamp('akhir')->nullable();
|
||||||
|
$table->string('orderid', 255)->nullable();
|
||||||
$table->string('nofoto', 50)->nullable();
|
$table->string('nofoto', 50)->nullable();
|
||||||
$table->integer('noloket')->nullable();
|
$table->integer('noloket')->nullable();
|
||||||
$table->string('noregister', 150)->nullable();
|
$table->string('noregister', 150)->nullable();
|
||||||
@@ -25,7 +26,7 @@ return new class extends Migration
|
|||||||
$table->string('jkpasien', 5)->nullable();
|
$table->string('jkpasien', 5)->nullable();
|
||||||
$table->date('tgllahirpasien')->nullable();
|
$table->date('tgllahirpasien')->nullable();
|
||||||
$table->string('tlppasien', 50)->nullable();
|
$table->string('tlppasien', 50)->nullable();
|
||||||
$table->string('alamatpasien', 50)->nullable();
|
$table->text('alamatpasien')->nullable();
|
||||||
$table->string('reques', 150)->nullable();
|
$table->string('reques', 150)->nullable();
|
||||||
$table->string('usia', 25)->nullable();
|
$table->string('usia', 25)->nullable();
|
||||||
$table->string('ktp', 25)->nullable();
|
$table->string('ktp', 25)->nullable();
|
||||||
@@ -50,7 +51,7 @@ return new class extends Migration
|
|||||||
$table->string('nmanalis', 250)->nullable();
|
$table->string('nmanalis', 250)->nullable();
|
||||||
$table->string('nmexcutor', 250)->nullable();
|
$table->string('nmexcutor', 250)->nullable();
|
||||||
$table->string('klinisi', 250)->nullable();
|
$table->string('klinisi', 250)->nullable();
|
||||||
$table->mediumText('klinis')->nullable();
|
$table->text('klinis')->nullable();
|
||||||
$table->integer('poli_id')->nullable();
|
$table->integer('poli_id')->nullable();
|
||||||
$table->text('keterangan')->nullable();
|
$table->text('keterangan')->nullable();
|
||||||
$table->text('kesimpulan')->nullable();
|
$table->text('kesimpulan')->nullable();
|
||||||
|
|||||||
@@ -18,6 +18,8 @@ class CreateOrganismsTable extends Migration
|
|||||||
$table->string('name');
|
$table->string('name');
|
||||||
$table->string('category');
|
$table->string('category');
|
||||||
$table->string('kelompok');
|
$table->string('kelompok');
|
||||||
|
$table->string('satuan')->nullable();
|
||||||
|
$table->string('nilai')->nullable();
|
||||||
$table->timestamp('created_at')->useCurrent();
|
$table->timestamp('created_at')->useCurrent();
|
||||||
$table->timestamp('updated_at')->useCurrent();
|
$table->timestamp('updated_at')->useCurrent();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -18,13 +18,15 @@ return new class extends Migration
|
|||||||
$table->string('antibiotik', 150)->nullable();
|
$table->string('antibiotik', 150)->nullable();
|
||||||
$table->string('subantibiotik', 150)->nullable();
|
$table->string('subantibiotik', 150)->nullable();
|
||||||
$table->string('diskcontent', 100)->nullable();
|
$table->string('diskcontent', 100)->nullable();
|
||||||
$table->integer('batasatas')->nullable();
|
$table->string('batasatas', 150)->nullable();
|
||||||
$table->string('midrange', 150)->nullable();
|
$table->string('midrange', 150)->nullable();
|
||||||
$table->integer('batasbawah')->nullable();
|
$table->string('batasbawah', 150)->nullable();
|
||||||
$table->string('sumber', 255)->nullable();
|
$table->string('sumber', 255)->nullable();
|
||||||
$table->string('kodedok', 50)->nullable();
|
$table->string('kodedok', 50)->nullable();
|
||||||
$table->string('atu', 50)->nullable();
|
$table->string('atu', 50)->nullable();
|
||||||
$table->string('kelompok', 50)->nullable();
|
$table->string('kelompok', 50)->nullable();
|
||||||
|
$table->integer('cek')->nullable();
|
||||||
|
$table->string('setmanual', 255)->nullable();
|
||||||
$table->timestamp('created_at')->useCurrent();
|
$table->timestamp('created_at')->useCurrent();
|
||||||
$table->timestamp('updated_at')->useCurrent();
|
$table->timestamp('updated_at')->useCurrent();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -13,12 +13,18 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
Schema::create('rekapantibiotik', function (Blueprint $table) {
|
Schema::create('rekapantibiotik', function (Blueprint $table) {
|
||||||
$table->id();
|
$table->id();
|
||||||
|
$table->string('kuman', 255)->nullable();
|
||||||
$table->string('antibiotic', 150)->nullable();
|
$table->string('antibiotic', 150)->nullable();
|
||||||
$table->string('resistance', 150)->nullable();
|
$table->string('resistance', 150)->nullable();
|
||||||
$table->string('value', 150)->nullable();
|
$table->string('value', 150)->nullable();
|
||||||
$table->string('interpretation', 150)->nullable();
|
$table->string('interpretation', 150)->nullable();
|
||||||
$table->string('glassreportname', 150)->nullable();
|
$table->string('glassreportname', 150)->nullable();
|
||||||
$table->integer('orderid')->nullable();
|
$table->integer('orderid')->nullable();
|
||||||
|
$table->boolean('printrow')->nullable();
|
||||||
|
$table->boolean('printcol')->nullable();
|
||||||
|
$table->string('batasatas', 150)->nullable();
|
||||||
|
$table->string('midrange', 150)->nullable();
|
||||||
|
$table->string('batasbawah', 150)->nullable();
|
||||||
$table->timestamp('created_at')->useCurrent();
|
$table->timestamp('created_at')->useCurrent();
|
||||||
$table->timestamp('updated_at')->useCurrent();
|
$table->timestamp('updated_at')->useCurrent();
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('db_komponenjawaban', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->string('accnumber', 100)->nullable();
|
||||||
|
$table->string('template', 100)->nullable();
|
||||||
|
$table->string('komponen', 255)->nullable();
|
||||||
|
$table->text('isidata')->nullable();
|
||||||
|
$table->string('nobiorepository', 100)->nullable();
|
||||||
|
$table->string('strain', 255)->nullable();
|
||||||
|
$table->string('atcc', 255)->nullable();
|
||||||
|
$table->string('sample', 255)->nullable();
|
||||||
|
$table->date('tglpenyimpanan', 100)->nullable();
|
||||||
|
$table->string('created_by', 255)->nullable();
|
||||||
|
$table->timestamp('created_at')->useCurrent();
|
||||||
|
$table->timestamp('updated_at')->useCurrent();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('db_komponenjawaban');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('pertumkolomni', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->integer('orderid')->nullable();
|
||||||
|
$table->date('tglpenyimpanan', 100)->nullable();
|
||||||
|
$table->string('media', 100)->nullable();
|
||||||
|
$table->string('kuman', 100)->nullable();
|
||||||
|
$table->string('hemolisa', 255)->nullable();
|
||||||
|
$table->string('katalase', 255)->nullable();
|
||||||
|
$table->string('koagulase', 255)->nullable();
|
||||||
|
$table->string('oksidase', 255)->nullable();
|
||||||
|
$table->string('lainnya', 255)->nullable();
|
||||||
|
$table->string('status', 255)->nullable();
|
||||||
|
$table->string('tindaklanjut', 255)->nullable();
|
||||||
|
$table->string('created_by', 255)->nullable();
|
||||||
|
$table->timestamp('created_at')->useCurrent();
|
||||||
|
$table->timestamp('updated_at')->useCurrent();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('pertumkolomni');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('bio_cabinets', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->string('code', 50)->unique();
|
||||||
|
$table->string('name', 150);
|
||||||
|
$table->string('location', 200)->nullable();
|
||||||
|
$table->text('notes')->nullable();
|
||||||
|
$table->timestamp('created_at')->useCurrent();
|
||||||
|
$table->timestamp('updated_at')->useCurrent();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('bio_cabinets');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('bio_racks', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->unsignedBigInteger('cabinet_id')->index();
|
||||||
|
$table->string('code', 50);
|
||||||
|
$table->string('name', 150);
|
||||||
|
$table->integer('level')->default(1);
|
||||||
|
$table->integer('capacity')->default(0);
|
||||||
|
$table->text('notes')->nullable();
|
||||||
|
$table->timestamp('created_at')->useCurrent();
|
||||||
|
$table->timestamp('updated_at')->useCurrent();
|
||||||
|
|
||||||
|
$table->unique(['cabinet_id', 'code']);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('bio_racks');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('bio_specimens', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->unsignedBigInteger('cabinet_id')->index();
|
||||||
|
$table->unsignedBigInteger('rack_id')->index();
|
||||||
|
$table->string('specimen_code', 100)->unique();
|
||||||
|
$table->string('specimen_name', 200);
|
||||||
|
$table->string('patient_name', 200)->nullable();
|
||||||
|
$table->date('collected_at')->nullable();
|
||||||
|
$table->date('stored_at');
|
||||||
|
$table->string('volume', 50)->nullable();
|
||||||
|
$table->string('storage_condition', 100)->nullable();
|
||||||
|
$table->text('notes')->nullable();
|
||||||
|
$table->timestamp('created_at')->useCurrent();
|
||||||
|
$table->timestamp('updated_at')->useCurrent();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('bio_specimens');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,98 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('bio_racks', function (Blueprint $table) {
|
||||||
|
if (!Schema::hasColumn('bio_racks', 'rack_number')) {
|
||||||
|
$table->integer('rack_number')->nullable()->after('level');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('bio_racks', 'box_number')) {
|
||||||
|
$table->integer('box_number')->nullable()->after('rack_number');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::table('bio_specimens', function (Blueprint $table) {
|
||||||
|
if (!Schema::hasColumn('bio_specimens', 'category_storage')) {
|
||||||
|
$table->string('category_storage', 1)->nullable()->after('specimen_name');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('bio_specimens', 'shelf_number')) {
|
||||||
|
$table->integer('shelf_number')->nullable()->after('category_storage');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('bio_specimens', 'rack_number')) {
|
||||||
|
$table->integer('rack_number')->nullable()->after('shelf_number');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('bio_specimens', 'slot_number')) {
|
||||||
|
$table->integer('slot_number')->nullable()->after('rack_number');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('bio_specimens', 'box_number')) {
|
||||||
|
$table->integer('box_number')->nullable()->after('slot_number');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('bio_specimens', 'tube_number')) {
|
||||||
|
$table->integer('tube_number')->nullable()->after('box_number');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('bio_specimens', 'bacteria_name')) {
|
||||||
|
$table->string('bacteria_name', 200)->nullable()->after('tube_number');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('bio_specimens', 'strain')) {
|
||||||
|
$table->string('strain', 50)->nullable()->after('bacteria_name');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('bio_specimens', 'atcc')) {
|
||||||
|
$table->string('atcc', 150)->nullable()->after('strain');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('bio_specimens', 'input_by')) {
|
||||||
|
$table->string('input_by', 150)->nullable()->after('atcc');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('bio_racks', function (Blueprint $table) {
|
||||||
|
if (Schema::hasColumn('bio_racks', 'rack_number')) {
|
||||||
|
$table->dropColumn('rack_number');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('bio_racks', 'box_number')) {
|
||||||
|
$table->dropColumn('box_number');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::table('bio_specimens', function (Blueprint $table) {
|
||||||
|
if (Schema::hasColumn('bio_specimens', 'category_storage')) {
|
||||||
|
$table->dropColumn('category_storage');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('bio_specimens', 'shelf_number')) {
|
||||||
|
$table->dropColumn('shelf_number');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('bio_specimens', 'rack_number')) {
|
||||||
|
$table->dropColumn('rack_number');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('bio_specimens', 'slot_number')) {
|
||||||
|
$table->dropColumn('slot_number');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('bio_specimens', 'box_number')) {
|
||||||
|
$table->dropColumn('box_number');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('bio_specimens', 'tube_number')) {
|
||||||
|
$table->dropColumn('tube_number');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('bio_specimens', 'bacteria_name')) {
|
||||||
|
$table->dropColumn('bacteria_name');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('bio_specimens', 'strain')) {
|
||||||
|
$table->dropColumn('strain');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('bio_specimens', 'atcc')) {
|
||||||
|
$table->dropColumn('atcc');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('bio_specimens', 'input_by')) {
|
||||||
|
$table->dropColumn('input_by');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
+56
@@ -0,0 +1,56 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('simbhpjenis', function (Blueprint $table) {
|
||||||
|
if (!Schema::hasColumn('simbhpjenis', 'satuan_kecil')) {
|
||||||
|
$table->string('satuan_kecil', 100)->nullable()->after('satuan');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('simbhpjenis', 'konversi_kecil')) {
|
||||||
|
$table->integer('konversi_kecil')->default(1)->after('satuan_kecil');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('simbhpjenis', 'stok_minimum')) {
|
||||||
|
$table->integer('stok_minimum')->default(0)->after('konversi_kecil');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::table('simbhpreport', function (Blueprint $table) {
|
||||||
|
if (!Schema::hasColumn('simbhpreport', 'qty_base')) {
|
||||||
|
$table->integer('qty_base')->nullable()->after('pengeluaran');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('simbhpreport', 'satuan_transaksi')) {
|
||||||
|
$table->string('satuan_transaksi', 20)->nullable()->after('qty_base');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('simbhpreport', function (Blueprint $table) {
|
||||||
|
if (Schema::hasColumn('simbhpreport', 'qty_base')) {
|
||||||
|
$table->dropColumn('qty_base');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('simbhpreport', 'satuan_transaksi')) {
|
||||||
|
$table->dropColumn('satuan_transaksi');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Schema::table('simbhpjenis', function (Blueprint $table) {
|
||||||
|
if (Schema::hasColumn('simbhpjenis', 'satuan_kecil')) {
|
||||||
|
$table->dropColumn('satuan_kecil');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('simbhpjenis', 'konversi_kecil')) {
|
||||||
|
$table->dropColumn('konversi_kecil');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('simbhpjenis', 'stok_minimum')) {
|
||||||
|
$table->dropColumn('stok_minimum');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('simbhpreport', function (Blueprint $table) {
|
||||||
|
if (!Schema::hasColumn('simbhpreport', 'masa_expired')) {
|
||||||
|
$table->date('masa_expired')->nullable()->after('satuan_transaksi');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('simbhpreport', function (Blueprint $table) {
|
||||||
|
if (Schema::hasColumn('simbhpreport', 'masa_expired')) {
|
||||||
|
$table->dropColumn('masa_expired');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
+34
@@ -0,0 +1,34 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('rekap_penerimaan_sample_print_histories', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->date('tanggal')->nullable();
|
||||||
|
$table->integer('printed_by_id')->nullable();
|
||||||
|
$table->string('printed_by_name', 250)->nullable();
|
||||||
|
$table->timestamp('printed_at')->nullable();
|
||||||
|
$table->text('row_ids')->nullable();
|
||||||
|
$table->longText('rows_payload')->nullable();
|
||||||
|
$table->timestamp('created_at')->useCurrent();
|
||||||
|
$table->timestamp('updated_at')->useCurrent();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('rekap_penerimaan_sample_print_histories');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('critical_value_samples', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->unsignedBigInteger('periksa_id')->unique();
|
||||||
|
$table->string('nofoto', 50)->nullable();
|
||||||
|
$table->string('noregister', 150)->nullable();
|
||||||
|
$table->string('nmpasien', 200)->nullable();
|
||||||
|
$table->string('nm_spesimen', 255)->nullable();
|
||||||
|
$table->timestamp('critical_set_at')->nullable();
|
||||||
|
$table->unsignedBigInteger('critical_set_by_user_id')->nullable();
|
||||||
|
$table->string('critical_set_by_name', 150)->nullable();
|
||||||
|
$table->timestamp('followed_up_at')->nullable();
|
||||||
|
$table->unsignedBigInteger('followed_up_by_user_id')->nullable();
|
||||||
|
$table->string('followed_up_by_name', 150)->nullable();
|
||||||
|
$table->timestamps();
|
||||||
|
|
||||||
|
$table->index('nofoto');
|
||||||
|
$table->index('critical_set_at');
|
||||||
|
$table->index('followed_up_at');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('critical_value_samples');
|
||||||
|
}
|
||||||
|
};
|
||||||
+41
@@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the migrations.
|
||||||
|
*/
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('critical_value_samples', function (Blueprint $table) {
|
||||||
|
// Snapshot from periksa for easier listing.
|
||||||
|
$table->string('asalpasien', 250)->nullable()->after('noregister');
|
||||||
|
|
||||||
|
// Follow-up details recorded when marking as read.
|
||||||
|
$table->string('follow_up_status', 25)->nullable()->after('followed_up_by_name'); // reported|not_reported
|
||||||
|
$table->string('follow_up_method', 50)->nullable()->after('follow_up_status');
|
||||||
|
$table->string('follow_up_recipient', 250)->nullable()->after('follow_up_method');
|
||||||
|
$table->string('follow_up_reason', 250)->nullable()->after('follow_up_recipient');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reverse the migrations.
|
||||||
|
*/
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('critical_value_samples', function (Blueprint $table) {
|
||||||
|
$table->dropColumn([
|
||||||
|
'asalpasien',
|
||||||
|
'follow_up_status',
|
||||||
|
'follow_up_method',
|
||||||
|
'follow_up_recipient',
|
||||||
|
'follow_up_reason',
|
||||||
|
]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -0,0 +1,78 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('simbhpjenis', function (Blueprint $table) {
|
||||||
|
if (!Schema::hasColumn('simbhpjenis', 'barcode_besar')) {
|
||||||
|
$table->string('barcode_besar', 20)->nullable()->after('kodejenis');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('simbhpjenis', 'barcode_kecil')) {
|
||||||
|
$table->string('barcode_kecil', 20)->nullable()->after('barcode_besar');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!Schema::hasColumn('simbhpjenis', 'barcode_besar')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DB::table('simbhpjenis')
|
||||||
|
->orderBy('id', 'ASC')
|
||||||
|
->chunkById(200, function ($rows) {
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$id = (int) ($row->id ?? 0);
|
||||||
|
if ($id <= 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$idPart = str_pad((string) $id, 8, '0', STR_PAD_LEFT);
|
||||||
|
$barcodeBesar = '91' . $idPart . '1';
|
||||||
|
|
||||||
|
$existingBesar = isset($row->barcode_besar) ? trim((string) $row->barcode_besar) : '';
|
||||||
|
$existingKecil = isset($row->barcode_kecil) ? trim((string) $row->barcode_kecil) : '';
|
||||||
|
|
||||||
|
$satuanKecil = isset($row->satuan_kecil) ? trim((string) $row->satuan_kecil) : '';
|
||||||
|
$konversi = (int) ($row->konversi_kecil ?? 1);
|
||||||
|
if ($konversi <= 0) {
|
||||||
|
$konversi = 1;
|
||||||
|
}
|
||||||
|
$hasBreakdown = ($satuanKecil !== '' && $konversi > 1);
|
||||||
|
|
||||||
|
$update = [];
|
||||||
|
if ($existingBesar === '') {
|
||||||
|
$update['barcode_besar'] = $barcodeBesar;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($hasBreakdown) {
|
||||||
|
$barcodeKecil = '91' . $idPart . '2';
|
||||||
|
if ($existingKecil === '') {
|
||||||
|
$update['barcode_kecil'] = $barcodeKecil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count($update) > 0) {
|
||||||
|
DB::table('simbhpjenis')->where('id', $id)->update($update);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 'id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('simbhpjenis', function (Blueprint $table) {
|
||||||
|
if (Schema::hasColumn('simbhpjenis', 'barcode_kecil')) {
|
||||||
|
$table->dropColumn('barcode_kecil');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('simbhpjenis', 'barcode_besar')) {
|
||||||
|
$table->dropColumn('barcode_besar');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('periksa', function (Blueprint $table) {
|
||||||
|
if (!Schema::hasColumn('periksa', 'tanggalregis')) {
|
||||||
|
$table->date('tanggalregis')->nullable()->after('tgladendum');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('periksa', 'tanggalsampel')) {
|
||||||
|
$table->date('tanggalsampel')->nullable()->after('tanggalregis');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('periksa', 'pengambilan')) {
|
||||||
|
$table->string('pengambilan', 255)->nullable()->after('diagnosa2');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Schema::table('pertumkolomni', function (Blueprint $table) {
|
||||||
|
if (!Schema::hasColumn('pertumkolomni', 'keterangan')) {
|
||||||
|
$table->text('keterangan')->nullable()->after('tindaklanjut');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('periksa', function (Blueprint $table) {
|
||||||
|
if (Schema::hasColumn('periksa', 'tanggalregis')) {
|
||||||
|
$table->dropColumn('tanggalregis');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('periksa', 'tanggalsampel')) {
|
||||||
|
$table->dropColumn('tanggalsampel');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('periksa', 'pengambilan')) {
|
||||||
|
$table->dropColumn('pengambilan');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
Schema::table('pertumkolomni', function (Blueprint $table) {
|
||||||
|
if (Schema::hasColumn('pertumkolomni', 'keterangan')) {
|
||||||
|
$table->dropColumn('keterangan');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
+33
@@ -0,0 +1,33 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
|
||||||
|
Schema::table('bio_specimens', function (Blueprint $table) {
|
||||||
|
if (!Schema::hasColumn('bio_specimens', 'atcc')) {
|
||||||
|
$table->string('atcc', 150)->nullable()->after('strain');
|
||||||
|
}
|
||||||
|
if (!Schema::hasColumn('bio_specimens', 'sampleid')) {
|
||||||
|
$table->string('sampleid', 150)->nullable()->after('atcc');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('bio_specimens', function (Blueprint $table) {
|
||||||
|
if (Schema::hasColumn('bio_specimens', 'atcc')) {
|
||||||
|
$table->dropColumn('atcc');
|
||||||
|
}
|
||||||
|
if (Schema::hasColumn('bio_specimens', 'sampleid')) {
|
||||||
|
$table->dropColumn('sampleid');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
|
||||||
|
Schema::table('periksa', function (Blueprint $table) {
|
||||||
|
if (!Schema::hasColumn('periksa', 'asalpengirim')) {
|
||||||
|
$table->string('asalpengirim', 150)->nullable()->after('order_id');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('periksa', function (Blueprint $table) {
|
||||||
|
if (Schema::hasColumn('periksa', 'asalpengirim')) {
|
||||||
|
$table->dropColumn('asalpengirim');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -4,6 +4,10 @@ namespace Database\Seeders;
|
|||||||
|
|
||||||
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
// use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Database\Seeders\JawabanSeeder;
|
||||||
|
use Database\Seeders\OrganismSeeder;
|
||||||
|
use Database\Seeders\SirabSeeder;
|
||||||
use App\User;
|
use App\User;
|
||||||
|
|
||||||
class DatabaseSeeder extends Seeder
|
class DatabaseSeeder extends Seeder
|
||||||
@@ -13,11 +17,48 @@ class DatabaseSeeder extends Seeder
|
|||||||
*/
|
*/
|
||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
User::create([
|
$ceksudah = User::where('username', 'admin')->count();
|
||||||
'nama' => 'Administrator',
|
if ($ceksudah == 0){
|
||||||
'username' => 'admin',
|
User::create([
|
||||||
'password' => bcrypt('semangat'),
|
'nama' => 'Administrator',
|
||||||
'previlage' => 'developer'
|
'username' => 'admin',
|
||||||
]);
|
'password' => bcrypt('semangat'),
|
||||||
|
'previlage' => 'developer',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
$ceksudah = User::where('username', 'doktestes')->count();
|
||||||
|
if ($ceksudah == 0){
|
||||||
|
User::create([
|
||||||
|
'nama' => 'doktestes',
|
||||||
|
'username' => 'doktestes',
|
||||||
|
'password' => bcrypt('doktestes'),
|
||||||
|
'previlage' => 'supervisor',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
$ceksudah = User::where('username', 'ppdstes')->count();
|
||||||
|
if ($ceksudah == 0){
|
||||||
|
User::create([
|
||||||
|
'nama' => 'ppdstes',
|
||||||
|
'username' => 'ppdstes',
|
||||||
|
'password' => bcrypt('ppdstes'),
|
||||||
|
'previlage' => 'ppds',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
$ceksudah = User::where('username', 'analistes')->count();
|
||||||
|
if ($ceksudah == 0){
|
||||||
|
User::create([
|
||||||
|
'nama' => 'analistes',
|
||||||
|
'username' => 'analistes',
|
||||||
|
'password' => bcrypt('analistes'),
|
||||||
|
'previlage' => 'analis',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
$json1 = file_get_contents(database_path('seeders/data/ruangan.json'));
|
||||||
|
$data1 = json_decode($json1, true);
|
||||||
|
DB::table('ruangan')->insert($data1);
|
||||||
|
$this->call(JawabanSeeder::class);
|
||||||
|
$this->call(OrganismSeeder::class);
|
||||||
|
$this->call(SirabSeeder::class);
|
||||||
|
$this->call(PoliSeeder::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -22,7 +22,324 @@ class JawabanSeeder extends Seeder
|
|||||||
['kategori' => '1', 'judul' => 'Pewarna Langsung', 'subjawaban' => '', 'kesimpulan' => ''],
|
['kategori' => '1', 'judul' => 'Pewarna Langsung', 'subjawaban' => '', 'kesimpulan' => ''],
|
||||||
['kategori' => '1', 'judul' => 'TBC', 'subjawaban' => '', 'kesimpulan' => ''],
|
['kategori' => '1', 'judul' => 'TBC', 'subjawaban' => '', 'kesimpulan' => ''],
|
||||||
['kategori' => '1', 'judul' => 'Viral Load', 'subjawaban' => '', 'kesimpulan' => ''],
|
['kategori' => '1', 'judul' => 'Viral Load', 'subjawaban' => '', 'kesimpulan' => ''],
|
||||||
['kategori' => '1', 'judul' => 'PCR COVID', 'subjawaban' => '', 'kesimpulan' => '']
|
['kategori' => '1', 'judul' => 'PCR COVID', 'subjawaban' => '', 'kesimpulan' => ''],
|
||||||
|
['kategori' => '1', 'judul' => 'IgM IgG Leptospira', 'subjawaban' => '', 'kesimpulan' => '']
|
||||||
|
]);
|
||||||
|
DB::table('dokter')->insert([
|
||||||
|
[ 'id' => 2, 'nama' => 'NON DOKTER', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'ND', 'alamat' => 'UMUM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 196, 'nama' => 'Dr.dr.MOCHAMAD BACHTIAR BUDIANTO,Sp.B(K)Onk,FINACS,FICS', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BO_003', 'alamat' => 'BEDAH ONKOLOGI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 231, 'nama' => 'dr.RATRI ISTIQOMAH,Sp.KJ', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JW_006', 'alamat' => 'JIWA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 344, 'nama' => 'dr.SYAIFULLAH ASMIRAGANI,Sp.OT. Subsp. O.T.B(K),MMRS', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_002', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 361, 'nama' => 'Prof.Dr.dr.ACHMAD RUDIJANTO,Sp.PD-KEMD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_021', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 377, 'nama' => 'dr.ANGGUN PUTRI YUNIASWAN,Sp.KK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'KL_011', 'alamat' => 'KULKEL', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 389, 'nama' => 'dr.ARIF WIDIATMOKO,Sp.KK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'KL_006', 'alamat' => 'KULKEL', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 395, 'nama' => 'dr.AUNUR ROFIQ, Sp.DVE, Subsp.DAI,FINSDV,FAADV', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'KL_002', 'alamat' => 'KULKEL', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 397, 'nama' => 'dr.AZIZA MATINU KARIMA,Sp.KJ', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JW_007', 'alamat' => 'JIWA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 398, 'nama' => 'dr.BADRUL MUNIR,Sp.S', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'SR_010', 'alamat' => 'SARAF', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 400, 'nama' => 'dr.BAGUS PUTU PUTRA SURYANA,Sp.PD(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_007', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 405, 'nama' => 'dr.BOGI PRATOMO WIBOWO,Sp.PD-KGEH', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_008', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 411, 'nama' => 'dr.CATUR ARI SETIANTO,Sp.S', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'SR_013', 'alamat' => 'SARAF', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 412, 'nama' => 'Dr.dr.CESARIUS SINGGIH W.,Sp.PD-KR', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_015', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 417, 'nama' => 'dr.DEARISA SURYA YUDHANTARA,Sp.KJ', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JW_005', 'alamat' => 'JIWA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 421, 'nama' => 'dr.DESSIKA RAHMAWATI,Sp.S', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'SR_011', 'alamat' => 'SARAF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 425, 'nama' => 'dr.DEWI INDIASTARI,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_024', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 427, 'nama' => 'dr.DHANY PRAFITA EKASARI,Sp.KK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'KL_012', 'alamat' => 'KULKEL', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 428, 'nama' => 'Dr.dr.DHELYA WIDASMARA,Sp.KK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'KL_007', 'alamat' => 'KULKEL', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 435, 'nama' => 'dr.DIDI CANDRADIKUSUMA,Sp.PD-KPTI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_016', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 444, 'nama' => 'dr.DJOKO HERI HERMANTO,Sp.PD(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_010', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 447, 'nama' => 'Prof.dr.DJOKO WAHONO S.,Sp.PD-KEMD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_002', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 457, 'nama' => 'dr.EKO ARI SETIJONO M.,Sp.S(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'SR_005', 'alamat' => 'SARAF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 486, 'nama' => 'dr.FRILYA RACHMA PUTRI,Sp.KJ', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JW_004', 'alamat' => 'JIWA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 501, 'nama' => 'dr.HERI SUTANTO,Sp.PD(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_023', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 503, 'nama' => 'dr.HERWINDA BRAHMANTI,Sp.KK,M.Sc', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'KL_008', 'alamat' => 'KULKEL', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 506, 'nama' => 'dr.IIN NOOR CHOZIN,Sp.P', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'PR_007', 'alamat' => 'PARU', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 531, 'nama' => 'dr.LAKSMI SASIARINI,Sp.PD(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_018', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 535, 'nama' => 'dr.LITA SETYOWATIE,Sp.KK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'KL_010', 'alamat' => 'KULKEL', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 536, 'nama' => 'dr.MACHLUSIL HUSNA,Sp.S', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'SR_007', 'alamat' => 'SARAF', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 565, 'nama' => 'dr.NGAKAN PUTU PARSAMA PUTRA,Sp.P(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'PR_002', 'alamat' => 'PARU', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 569, 'nama' => 'dr.NINIEK BUDIARTI,Sp.PD-KPTI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_011', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 594, 'nama' => 'dr.REZKI TANTULAR,Sp.P', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'PR_010', 'alamat' => 'PARU', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 595, 'nama' => 'dr.RIA DAMAYANTI,Sp.S', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'SR_016', 'alamat' => 'SARAF', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 602, 'nama' => 'dr.RODHIYAN RAKHMATIAR,Sp.S', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'SR_015', 'alamat' => 'SARAF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 606, 'nama' => 'dr.RULLI ROSANDI,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_020', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 612, 'nama' => 'dr.SHAHDEVI NANDAR KURNIAWAN,Sp.S(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'SR_008', 'alamat' => 'SARAF', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 613, 'nama' => 'dr.SHINTA OKTYA WARDHANI,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_012', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 614, 'nama' => 'dr.SINTA MURLISTYARINI,Sp.KK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'KL_009', 'alamat' => 'KULKEL', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 627, 'nama' => 'dr.SRI BUDHI RIANAWATI,Sp.S(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'SR_006', 'alamat' => 'SARAF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 630, 'nama' => 'dr.SRI SOENARTI,Sp.PD(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_013', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 636, 'nama' => 'dr.SUCI PRAWITASARI,Sp.KK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'KL_013', 'alamat' => 'KULKEL', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 643, 'nama' => 'dr.SUPRIONO,Sp.PD(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_014', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 644, 'nama' => 'dr.SURYANTI DWI PRATIWI,Sp.P(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'PR_008', 'alamat' => 'PARU', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 648, 'nama' => 'dr.SYIFA MUSTIKA,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_022', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 661, 'nama' => 'dr.TRI WAHJU ASTUTI,M.Kes,Sp.P(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'PR_005', 'alamat' => 'PARU', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 664, 'nama' => 'dr.UNGKY AGUS SETYAWAN,Sp.P', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'PR_009', 'alamat' => 'PARU', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 675, 'nama' => 'dr.WINARNI DIAN DWIASTUTI WISNU PUTRI,Sp.KJ', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JW_008', 'alamat' => 'JIWA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 690, 'nama' => 'dr.ZAMRONI AFIF,Sp.S', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'SR_012', 'alamat' => 'SARAF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 698, 'nama' => 'dr.AGUNG RIYANTO BUDI SANTOSO,Sp.OT,Subsp.T.L.B.M(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_009', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 705, 'nama' => 'dr.AHMAD DIAN WAHYUDIONO,Sp.THT-KL(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'HT_010', 'alamat' => 'THT', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 714, 'nama' => 'dr.ANANTO SATYA PRADANA DRAJAT,Sp.OT', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_013', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 715, 'nama' => 'dr.ANDHIKA YUDISTIRA,Sp.OT,Subsp.O.T.B(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_012', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 719, 'nama' => 'dr.ANDRI KUSTONO,Sp.U', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'URO_008', 'alamat' => 'BEDAH UROLOGI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 729, 'nama' => 'dr.ANNY SULISTIYOWATI,Sp.M(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_008', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 733, 'nama' => 'dr.ARIES BUDIANTO,Sp.B-KBD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BD_003', 'alamat' => 'BEDAH DIGESTIF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 736, 'nama' => 'dr.ARTONO ISHARANTO,Sp.B.TKV', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BT_002', 'alamat' => 'BEDAH THORAX', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 737, 'nama' => 'dr.ARVIANSYAH,Sp.B.P.R.E', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BP_003', 'alamat' => 'BEDAH PLASTIK', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 740, 'nama' => 'dr.AULIA ABDUL HAMID ABDULLAH, M.BioMed. Sc, Sp.M (K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_016', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 745, 'nama' => 'dr.BESUT DARYANTO,Sp.U(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'URO_002', 'alamat' => 'BEDAH UROLOGI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 757, 'nama' => 'dr.DEBBY SHINTIYA DEWI,Sp.M(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_009', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 777, 'nama' => 'dr.DONNY WISNU WARDHANA,Sp.BS', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BS_004', 'alamat' => 'BEDAH SARAF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 781, 'nama' => 'dr.DWICHA RAHMAWANSA S.,Sp.B-KBD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BD_006', 'alamat' => 'BEDAH DIGESTIF', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 783, 'nama' => 'Dr.dr.EDI HANDOKO,Sp.THT-KL(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'HT_005', 'alamat' => 'THT', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 784, 'nama' => 'Dr.dr.EDI MUSTAMSIR,Sp.OT,Subsp.P.L(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_003', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 790, 'nama' => 'dr.ELISABETH PRAJANTI S.,Sp.BP-RE', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BP_006', 'alamat' => 'BEDAH PLASTIK', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 801, 'nama' => 'Dr.dr.FARHAD BAL`AFIF,Sp.BS', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BS_003', 'alamat' => 'BEDAH SARAF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 823, 'nama' => 'dr.HENDRADI SURJOTOMO,Sp.THT-KL(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'HT_008', 'alamat' => 'THT', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 825, 'nama' => 'dr.HERA DWI NOVITA,Sp.M', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_017', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 827, 'nama' => 'dr.HERMAN YOSEF LIMPAT WIHASTYOKO,Sp.BP-RE.,Subsp.K.M.(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BP_002', 'alamat' => 'BEDAH PLASTIK', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 829, 'nama' => 'dr.HERWINDO DICKY PUTRANTO,Sp.M', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_018', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 830, 'nama' => 'dr.HERY SUSILO,Sp.B(K)Onk', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BO_004', 'alamat' => 'BEDAH ONKOLOGI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 831, 'nama' => 'dr.HIDAYAT SUYUTI,PhD,Sp.M', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_024', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 840, 'nama' => 'dr.IMAM SUSENO BAYUADI,Sp.B-TKV', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BT_004', 'alamat' => 'BEDAH THORAX', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 844, 'nama' => 'dr.IRIANA MAHARANI,Sp.THT-KL(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'HT_011', 'alamat' => 'THT', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 846, 'nama' => 'dr.ISTAN IRMANSYAH,Sp.OT,Subsp.Onk.Ort.R(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_004', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 858, 'nama' => 'dr.KOERNIA KUSUMA WARDHANA,Sp.B-TKV', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BT_003', 'alamat' => 'BEDAH THORAX', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 859, 'nama' => 'dr.KRISNA YUARNO PHATAMA,Sp.OT,Subsp.P.L.(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_010', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 861, 'nama' => 'dr.KURNIA PENTA SEPUTRA,Sp.U(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'URO_004', 'alamat' => 'BEDAH UROLOGI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 864, 'nama' => 'dr.LELY RETNO WULANDARI,Sp.M(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_010', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 869, 'nama' => 'dr.LULIK INGGARWATI,Sp.B,Sp.BA(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BA_002', 'alamat' => 'BEDAH ANAK', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 876, 'nama' => 'dr.MEDIANTO,Sp.U', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'URO_009', 'alamat' => 'BEDAH UROLOGI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 878, 'nama' => 'dr.MEYRNA HERYANING PUTRI,Sp.THT-KL', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'HT_013', 'alamat' => 'THT', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 883, 'nama' => 'dr.MOHAMMAD DWIJO MURDIYO,Sp.THT-KL', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'HT_012', 'alamat' => 'THT', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 894, 'nama' => 'dr.NADIA ARTHA DEWI,Sp.M', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_011', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 895, 'nama' => 'dr.NANDA WAHYU ANANDITA,Sp.M(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_012', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 901, 'nama' => 'dr.NINA HANDAYANI,Sp.M(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_019', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 911, 'nama' => 'dr.OVI SOFIA,Sp.M(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_020', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 912, 'nama' => 'dr.PAKSI SATYAGRAHA,M.Kes,Sp.U(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'URO_005', 'alamat' => 'BEDAH UROLOGI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 913, 'nama' => 'dr.PANJI SANANTA,Sp.OT, Subsp.A (K),MKed', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_006', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 915, 'nama' => 'dr.PRADANA NURHADI,Sp.U', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'URO_006', 'alamat' => 'BEDAH UROLOGI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 942, 'nama' => 'dr.ROSY ALDINA,Sp.M(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_013', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 950, 'nama' => 'dr.SATRIA PANDU PERSADA ISMA,Sp.OT,Subsp.Onk.Ort.R.(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_007', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 953, 'nama' => 'dr.SESKOATI PRAYITNANINGSIH,Sp.M', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_014', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 954, 'nama' => 'dr.SETYO SUGIHARTO,Sp.B-KBD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BD_002', 'alamat' => 'BEDAH DIGESTIF', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 960, 'nama' => 'dr.SOEHARTONO,Sp.THT-KL(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'HT_009', 'alamat' => 'THT', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 967, 'nama' => 'dr.TAUFIQ NUR BUDAYA,Sp.U', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'URO_007', 'alamat' => 'BEDAH UROLOGI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 970, 'nama' => 'dr.THOMAS ERWIN CHRISTIAN JUNUS HUWAE,Sp.OT,Subsp.T.L.B.M(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_005', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 972, 'nama' => 'dr.TITOK HARIYANTO,Sp.M', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_021', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 975, 'nama' => 'dr.TOMMY ALFANDY NAZWAR,Sp.BS', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BS_006', 'alamat' => 'BEDAH SARAF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 978, 'nama' => 'dr.TRIANA BUDI SULISTYA,Sp.M(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_015', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 986, 'nama' => 'dr.WILMA AGUSTINA,Sp.B.P.R.E', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BP_004', 'alamat' => 'BEDAH PLASTIK', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 989, 'nama' => 'dr.WINO VRIEDA VIERLIA,Sp.M', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_023', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 995, 'nama' => 'dr.YUDI SISWANTO,MSc,M.Ked-Klin,Sp.B.P.R.E', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BP_005', 'alamat' => 'BEDAH PLASTIK', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 999, 'nama' => 'dr.MUHAMMAD IRAWAN,Sp.A. M.Biomed', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_035', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1013, 'nama' => 'Dr.dr.BAMBANG RAHARDJO,Sp.OG(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_008', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1041, 'nama' => 'dr.HERMAWAN WIBISONO,Sp.OG(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_016', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1042, 'nama' => 'Dr.dr.I WAYAN ARSANA WIYASA,Sp.OG(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_007', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1065, 'nama' => 'dr.MUKHAMAD NORYANTO,Sp.OG(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_010', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1067, 'nama' => 'dr.MULYO HADI WIBOWO,Sp.OG', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_023', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1076, 'nama' => 'dr.NUGRAHANTI PRASETYORINI,Sp.OG(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_011', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1080, 'nama' => 'Dr.dr.RAHAJENG,Sp.OG(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_012', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1097, 'nama' => 'dr.SUHENI NINIK HARIYATI,Sp.OG(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_019', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1101, 'nama' => 'Dr.dr.SUTRISNO,Sp.OG(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_005', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1104, 'nama' => 'Dr.dr.TATIT NURSETA,Sp.OG(K)Onk', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_014', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1117, 'nama' => 'dr.YAHYA IRWANTO,Sp.OG(K)Onk', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_015', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1123, 'nama' => 'dr.A.SUSANTO NUGROHO,Sp.A(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_007', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1136, 'nama' => 'dr.ARIANI,M.Kes,Sp.A', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_011', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1138, 'nama' => 'dr.ASTRID KRISTINA KARDANI,Sp.A(K).,M.Biomed', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_028', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1141, 'nama' => 'dr.BRIGITTA IDA RESITA VEBRIANTI C.,Sp.A(K),M.Kes', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_023', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1145, 'nama' => 'dr.DESY WULANDARI,Sp.A,M.Biomed', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_032', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1156, 'nama' => 'dr.DYAHRIS KOENTARTIWI,Sp.A', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_021', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1157, 'nama' => 'dr.EKO SULISTIJONO,Sp.A(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_012', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1169, 'nama' => 'dr.ERY OLIVIANTO,Sp.A(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_020', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1177, 'nama' => 'dr.HAJENG WULANDARI,Sp.A.,M.Biomed', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_033', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1179, 'nama' => 'dr.HARJOEDI ADJI TJAHJONO,Sp.A(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_008', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1188, 'nama' => 'dr.IRENE RATRIDEWI,Sp.A(K),M.Kes', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_006', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1189, 'nama' => 'dr.IRFAN AGUS SALIM,Sp.A', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_034', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1199, 'nama' => 'Dr.dr.KRISNI SOEBANDIJAH,Sp.A(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_009', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1200, 'nama' => 'dr.KURNIAWAN TAUFIQ KADAFI,Sp.A', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_024', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1227, 'nama' => 'dr.NUGROHO DANU TRI SUBROTO,Sp.A', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_031', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1234, 'nama' => 'dr.PRASETYA ISMAIL PERMADI,Sp.A,M.Biomed', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_025', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1257, 'nama' => 'dr.SAPTADI YULIARTO,Sp.A(K),M.Kes', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_018', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1258, 'nama' => 'Dr.dr.SATRIO WIBOWO,Sp.A(K),M.si.Med', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_015', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1259, 'nama' => 'dr.SAVITRI LAKSMI WINAPUTRI,Sp.A', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_030', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1260, 'nama' => 'dr.SETYA MITHRA HARTIASTUTI,Sp.A,M.Si.Med', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_027', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1265, 'nama' => 'dr.SONY WICAKSONO,Sp.A,M.Kes', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_029', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1280, 'nama' => 'dr.WISNU BARLIANTO,MSi.Med,Sp.A(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_016', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1313, 'nama' => 'dr.ENDANG INDERAWATI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_001', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1328, 'nama' => 'Dr.dr.I WAYAN AGUNG INDRAWAN,Sp.OG(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_009', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1349, 'nama' => 'dr.MUHAYATI KUSUMA WARDHANI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_011', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1403, 'nama' => 'dr.WIYANTI ANA OKTAVIA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_010', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1411, 'nama' => 'drg.ANGELIQUE JULIKADEWI,Sp.Ort', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_006', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1412, 'nama' => 'drg.ANGGANI PRASASTI,Sp.KG', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_005', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1415, 'nama' => 'drg.EVA RIAMA PANDIANGAN,Sp.BM', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_009', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1416, 'nama' => 'drg.FAIDAH,Sp.KG', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_010', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1417, 'nama' => 'drg.FERTY PURNAWATIE', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_018', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1419, 'nama' => 'drg.LELY INDRIASARI,Sp.KGA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_011', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1423, 'nama' => 'drg.MOHAMAD SAMSUL ARIFIN', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_013', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1430, 'nama' => 'drg.RIFIANA TAKANAMITA,Sp.Perio', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_019', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1431, 'nama' => 'drg.RINDA ARIYANTI,Sp.Ort', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_007', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1432, 'nama' => 'drg.ROBINSON PASARIBU,Sp.BM', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_002', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1436, 'nama' => 'drg.SUKEKSI DYAH INTANNINGRUM,Sp.KGA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_014', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1437, 'nama' => 'drg.SUZY RATNA DINARTI,Sp.Pros', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_016', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1441, 'nama' => 'drg.VANRISTA PARIENDRA,Sp.KG', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_015', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1447, 'nama' => 'dr.ALI HAEDAR,Sp.EM,KPEC,FAHA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'EM_007', 'alamat' => 'EMERGENCY', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1458, 'nama' => 'dr.ARI PRASETYADJATI,Sp.EM, KDM', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'EM_002', 'alamat' => 'EMERGENCY', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1463, 'nama' => 'dr.AURICK YUDHA NAGARA,Sp.EM,KPEC', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'EM_009', 'alamat' => 'EMERGENCY', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1480, 'nama' => 'dr.DWI WARDOYO TRIYULIARTO,Sp.EM,KEC', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'EM_003', 'alamat' => 'EMERGENCY', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1524, 'nama' => 'dr.MUNSIFAH ZAIYANAH,Sp.EM,KTox', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'EM_004', 'alamat' => 'EMERGENCY', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1558, 'nama' => 'dr.SURYANTO EKO AGUNG NUGROHO,Sp.EM,KDM', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'EM_005', 'alamat' => 'EMERGENCY', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1564, 'nama' => 'dr.TAUFIQ ABDULLAH,Sp.EM,KTox', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'EM_008', 'alamat' => 'EMERGENCY', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1577, 'nama' => 'dr.YUDDY IMOWANTO,Sp.EM,KEC', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'EM_006', 'alamat' => 'EMERGENCY', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1611, 'nama' => 'dr.BUYUNG HARTIYO LAKSONO,Sp.An(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_007', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1726, 'nama' => 'dr.TAUFIQ AGUS SISWAGAMA,Sp.An', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_010', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1742, 'nama' => 'dr.WIDANTO,Sp.B,Sp.BA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BA_003', 'alamat' => 'BEDAH ANAK', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1788, 'nama' => 'dr.DIANAWATI EKASARI,S.Ked', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_007', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1793, 'nama' => 'dr.DYAH AYU FAHMI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_006', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1806, 'nama' => 'dr.EVIRA TIYAKUSUMA,Sp.MK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_005', 'alamat' => 'LAB.MIKRO', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1813, 'nama' => 'dr.FRIDA SEPTYOWATI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_004', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1893, 'nama' => 'Dr.dr.SUSANTHY DJAJALAKSANA,Sp.P(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'PR_004', 'alamat' => 'PARU', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1909, 'nama' => 'dr.WAHYU PURNOMO', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_002', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1925, 'nama' => 'dr.ACHMAD BAYHAQI NASIR ASLAM,Sp.Rad(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RO_006', 'alamat' => 'RADIOLOGI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1927, 'nama' => 'dr.AGUNG SETYAWAN,Sp.Rad', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RO_003', 'alamat' => 'RADIOLOGI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1943, 'nama' => 'dr.DINI RACHMA ERAWATI,Sp.Rad', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RO_005', 'alamat' => 'RADIOLOGI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1950, 'nama' => 'dr.FARAH NURDIANA,Sp.Rad', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RO_008', 'alamat' => 'RADIOLOGI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1962, 'nama' => 'dr.IRMA DARINAFITRI,Sp.Rad', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RO_002', 'alamat' => 'RADIOLOGI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1966, 'nama' => 'dr.LIANA KARLIASARI,Sp.Rad', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RO_012', 'alamat' => 'RADIOLOGI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1984, 'nama' => 'dr.SISWIDIYATI,Sp.Rad', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RO_009', 'alamat' => 'RADIOLOGI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 1998, 'nama' => 'Prof.Dr.dr.YUYUN YUENIWATI P,M.Kes,Sp.Rad(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RO_011', 'alamat' => 'RADIOLOGI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2352, 'nama' => 'dr.AGUSTIN ISKANDAR,M.Kes,Sp.PK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPK_009', 'alamat' => 'LAB.PK', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2363, 'nama' => 'dr.CATUR SUCI SUTRISNANI,Sp.PK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPK_002', 'alamat' => 'LAB.PK', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2369, 'nama' => 'dr.DIAN SUKMA HANGGARA,Sp.PK,M.Biomed', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPK_011', 'alamat' => 'LAB.PK', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2390, 'nama' => 'Dr.dr.HANI SUSIANTI,Sp.PK(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPK_003', 'alamat' => 'LAB.PK', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2399, 'nama' => 'dr.INDAH ADHITA WULANDA,Sp.PK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPK_007', 'alamat' => 'LAB.PK', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2404, 'nama' => 'dr.JUNE LEGIAWATI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPK_008', 'alamat' => 'LAB.PK', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2410, 'nama' => 'Prof.Dr.dr.KUSWORINI,M.Kes,Sp.PK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPK_014', 'alamat' => 'LAB.PK', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2416, 'nama' => 'dr.MAIMUN ZULHAIDAH A.,M.Kes,Sp.PK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPK_001', 'alamat' => 'LAB.PK', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2449, 'nama' => 'dr.SINGGIH PUDJO WAHONO,Sp.PK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPK_006', 'alamat' => 'LAB.PK', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2453, 'nama' => 'dr.SITI FATONAH,Sp.PK(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPK_005', 'alamat' => 'LAB.PK', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2485, 'nama' => 'dr.DEWI SANTOSANINGSIH,SpMK,MKes,Phd', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MK_007', 'alamat' => 'LAB.MIKRO', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2493, 'nama' => 'dr.NURIMA DIYAH PUJI HASTUTI, Sp.MK, M.Ked.Klin', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MK_001', 'alamat' => 'LAB.MIKRO', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2497, 'nama' => 'dr.SIWIPENI IRMAWANTI,M.Biomed.,Sp.MK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MK_009', 'alamat' => 'LAB.MIKRO', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2504, 'nama' => 'dr.AINA ANGELINA,Sp.PA,Subsp H.L.E,(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPA_008', 'alamat' => 'LAB.PA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2506, 'nama' => 'dr.ARIF SATRIA HARDIKA,Sp.PA,Subsp O.G.P.(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPA_002', 'alamat' => 'LAB.PA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2508, 'nama' => 'dr.DIAH PRABAWATI RETNANI,Sp.PA(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPA_003', 'alamat' => 'LAB.PA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2512, 'nama' => 'dr.EVIANA NORAHMAWATI,Sp.PA(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPA_004', 'alamat' => 'LAB.PA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2516, 'nama' => 'dr.KENTY WANTRI ANITA,M.Kes,Sp.PA(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPA_006', 'alamat' => 'LAB.PA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2518, 'nama' => 'dr.M.LUQMAN FADLI,Sp.PA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPA_009', 'alamat' => 'LAB.PA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2525, 'nama' => 'dr.RA.ROSE KHASANA DEWI,Sp.PA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPA_010', 'alamat' => 'LAB.PA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2539, 'nama' => 'dr.DWI INDRIANI LESTARI,Sp.RM', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RH_002', 'alamat' => 'IRM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2548, 'nama' => 'dr.MOHAMMAD BARLIAN NUGROHO,Sp.KFR', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RH_005', 'alamat' => 'IRM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2553, 'nama' => 'dr.RAHMAD,Sp.KFR', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RH_006', 'alamat' => 'IRM', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2556, 'nama' => 'dr.SAMIAH RACHMAWATI,Sp.KFR', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RH_007', 'alamat' => 'IRM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2573, 'nama' => 'dr.ERIKO PRAWESTININGTYAS,Sp.F', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'FM_002', 'alamat' => 'IKF', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2574, 'nama' => 'dr.ETTY KURNIA,Sp.F', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'FM_003', 'alamat' => 'IKF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2577, 'nama' => 'dr.MUHAMMAD FAHRUL,Sp.F', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'FM_001', 'alamat' => 'IKF', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2587, 'nama' => 'dr.WENING PRASTOWO,Sp.F', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'FM_004', 'alamat' => 'IKF', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2695, 'nama' => 'dr.MUCHAMMAD FAHRUL UDIN,Sp.A(K) M.Kes', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_026', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2784, 'nama' => 'dr.ANNA FUJI RAHIMAH,Sp.JP', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_015', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2785, 'nama' => 'dr.ARDIAN RIZAL,Sp.JP(K),FIHA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_012', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2790, 'nama' => 'dr.BUDI SATRIJO,Sp.JP(K),FIHA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_013', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2792, 'nama' => 'dr.CHOLID TRI TJAHJONO,M.Kes,Sp.JP(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_006', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2814, 'nama' => 'dr.HENY MARTINI,Sp.JP(K)FIHA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_005', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2821, 'nama' => 'dr.INDRA PRASETYA,Sp.JP', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_016', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2835, 'nama' => 'dr.MOHAMMAD SAIFUR ROHMAN,Sp.JP,(K),Ph.D', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_007', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2839, 'nama' => 'dr.NOVI KURNIANINGSIH,Sp.JP', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_011', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2849, 'nama' => 'dr.SASMOJO WIDITO,Sp.JP(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_004', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2850, 'nama' => 'dr.SETYASIH ANJARWANI,Sp.JP(K),FIHA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_009', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2861, 'nama' => 'dr.VALERINNA YOGIBUANA S.P.,Sp.JP', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_018', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2884, 'nama' => 'dr.FAJAR WAHYU ATMOKO', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_014', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2895, 'nama' => 'dr.SARAH INDERAYANTI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_009', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2905, 'nama' => 'dr.WIDODO MARDI SANTOSO,Sp.S', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'SR_009', 'alamat' => 'SARAF', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2910, 'nama' => 'dr.ALFRED JULIUS PETRARIZKY,Sp.Onk.Rad', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RP_002', 'RADIOTERAPI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2923, 'nama' => 'dr.RAFIQ SULISTYO NUGROHO,Sp.Onk.Rad', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RP_001', 'RADIOTERAPI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2935, 'nama' => 'dr.ACHMAD RIFAI,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_026', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2944, 'nama' => 'Dr.dr.ATMA GUNAWAN,Sp.PD(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_006', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 2980, 'nama' => 'dr.NUR SAMSU,Sp.PD-KGH', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_019', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3007, 'nama' => 'dr.AHMAD FEZA FADLURRAHMAN,Sp.An-TI., Subsp.An.Kv. (K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_013', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3013, 'nama' => 'dr.ARIE ZAINUL FATONI,Sp.An', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_011', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3014, 'nama' => 'Dr.dr.ASWOCO ANDYK ASMORO,Sp.An(FIPM)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_003', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3041, 'nama' => 'dr.ISNGADI,M.Kes,Sp.An(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_006', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3047, 'nama' => 'dr.KARMINI,Sp.An(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_002', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3068, 'nama' => 'dr.RISTIAWAN MUJI LAKSONO,Sp.An.KMN', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_008', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3072, 'nama' => 'dr.RUDDI HARTONO,Sp.An', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_009', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3073, 'nama' => 'dr.RUDY VITRALUDYONO,Sp.An', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_012', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3087, 'nama' => 'dr.WIWI JAYA,Sp.An (K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_005', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3090, 'nama' => 'dr.HERWINDO PUDJO BRAHMANTYO,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_025', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3092, 'nama' => 'dr.ZUHROTUN ULYA, Sp.KJ', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JW_009', 'alamat' => 'JIWA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3102, 'nama' => 'dr.HARTADI TANJOYO, Sp.Em', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'EM_010', 'alamat' => 'EMERGENCY', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3103, 'nama' => 'dr.INDRASTUTI NORMAHAYU, Sp.Rad(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RO_001', 'alamat' => 'RADIOLOGI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3104, 'nama' => 'dr.ERY SATRIAWAN,Sp.OT', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_014', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3105, 'nama' => 'dr.WELLA KAROLINA, Sp.JP', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_019', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3106, 'nama' => 'dr.VENY MAYANGSARI,Sp.JP', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_020', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3107, 'nama' => 'dr.PERDANA ADITYA RAHMAN,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_028', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3109, 'nama' => 'dr.RIZKI EKAPUTRA HANDOKO,Sp.THT-KL', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'HT_014', 'alamat' => 'THT', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3110, 'nama' => 'dr.NINA NUR ARIFAH,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_030', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3113, 'nama' => 'dr.ZENDY SAGITA,Sp.M', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_025', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3114, 'nama' => 'dr.HABIBA AURORA,M.Biomed,Sp.Rad', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RO_010', 'alamat' => 'RADIOLOGI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3115, 'nama' => 'dr.HENDY SETYO YUDHANTO,Sp.PA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPA_001', 'alamat' => 'LAB.PA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3117, 'nama' => 'dr.HERU SULISTYO,Sp.B-KBD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BD_007', 'alamat' => 'BEDAH DIGESTIF', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3118, 'nama' => 'dr.VATIEN RAHMAWATI,Sp.M', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_026', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3121, 'nama' => 'dr.NUGRAHITA SAFIRAWIDI WITJAKSONO', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_017', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3125, 'nama' => 'dr.RUDI PRIYO UTOMO,Sp.OG', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_024', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3126, 'nama' => 'dr.FADILAH MUTAQIN,Sp.A, M.Biomed', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_036', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3127, 'nama' => 'dr.ANGGIA PRAMESWARI WARDHANA,Sp.OG', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_025', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3128, 'nama' => 'dr.ANDREW WILLIAM TULLE,M.Sc.', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MK_006', 'alamat' => 'LAB.MIKRO', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3129, 'nama' => 'dr.AYU YESI AGUSTINA,Sp.An-TI,Subsp.T. I (K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_014', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3130, 'nama' => 'dr.SYAHRUL CHILMI,M.Biomed,SpPK,Ph.D', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPK_020', 'alamat' => 'LAB.PK', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3131, 'nama' => 'drg.HIRZI ASDYAKSA,Sp.BM', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'GM_020', 'alamat' => 'GIMU', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3132, 'nama' => 'dr.AYUNITA TRI WIRATTAMI,Sp.THT-KL', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'HT_015', 'alamat' => 'THT', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3134, 'nama' => 'dr.EKO NOFIYANTO, Sp.An-TI.MMRS', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_015', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3135, 'nama' => 'dr.ADHIKA PRASTYA WIKANANDA,Sp.JP', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_021', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3136, 'nama' => 'dr.FANNIYAH,Sp.An-TI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_016', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3137, 'nama' => 'dr.MUHAMAD AKBAR SIDIQ,Sp.An-TI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_017', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3138, 'nama' => 'dr.NUR SHELLA PUTRI BASUKI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_021', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3140, 'nama' => 'dr.MELINDA, Sp.A, M.Biomed', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'AN_036', 'alamat' => 'IKA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3141, 'nama' => 'dr.ETIK MERTIANTI,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_031', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3142, 'nama' => 'dr.EDEN SURYOIMAN WINOTO,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_032', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3143, 'nama' => 'dr.RINADHI REZA BRAMANTYA,Sp.PD-KEMD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_033', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3144, 'nama' => 'dr.CHRISTIAN SURYA EKA PUTRA,Sp.P', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'PR_014', 'alamat' => 'PARU', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3145, 'nama' => 'dr.GUTAMA UTAMA ARYA PRINGGA,Sp.KFR,M.Ked Klin', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RH_009', 'alamat' => 'IRM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3146, 'nama' => 'dr.GRACELIA RUTH ELISABETH D,Sp.B.TKV,M.Med.KI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BT_005', 'alamat' => 'BEDAH THORAX', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3147, 'nama' => 'dr.SINUNG WIKANADI,Sp.B., Sp.BA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BA_004', 'alamat' => 'BEDAH ANAK', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3148, 'nama' => 'dr.MILANITALIA GADYS ROSANDI,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_034', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3149, 'nama' => 'dr.NYOMAN SATVIKA DHARMA,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_035', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3150, 'nama' => 'dr.MIRZA ZAKA PRATAMA,SpPD,M.Biomed', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_036', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3151, 'nama' => 'dr.DOMY PRADANA PUTRA,SpOT', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_015', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3152, 'nama' => 'dr.BERLIAN ANGGRAENI PUTRI,Sp.PA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPA_011', 'alamat' => 'LAB.PA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3153, 'nama' => 'dr.DICKI TRIANGGA PUTRA, Sp.KJ', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JW_010', 'alamat' => 'JIWA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3154, 'nama' => 'dr.YUYUN KUSNANINGRUM,Sp.MK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MK_010', 'alamat' => 'LAB.MIKRO', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3155, 'nama' => 'Dr.ADINDA AMALIA DANI, Sp.DV', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'KL_014', 'alamat' => 'KULKEL', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3188, 'nama' => 'dr.AHMAD THOHIR,Sp.M', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MT_027', 'alamat' => 'MATA', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3221, 'nama' => 'dr.CHAIDAR MUTTAQIN, Sp.BTKV', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BT_006', 'alamat' => 'BEDAH THORAX', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3222, 'nama' => 'dr.AULIA HANUM, Sp.Rad', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RO_013', 'alamat' => 'RADIOLOGI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3229, 'nama' => 'dr.FITRI INDAH SARI, Sp.P', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'PR_015', 'alamat' => 'PARU', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3230, 'nama' => 'dr.ADEYCA AMARYLLIS RISA PUTRI, Sp.N', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'SR_018', 'alamat' => 'SARAF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3231, 'nama' => 'dr.DEA ARIE KURNIAWAN,Sp.JP', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_022', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3232, 'nama' => 'dr.PRISCA ANINDHITA FAJARPENI,Sp.B', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BT_006', 'alamat' => 'BEDAH ONKOLOGI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3233, 'nama' => 'dr.IHDA DIAN KUSUMA, M.Biomed, Sp.PA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPA_012', 'alamat' => 'LAB.PA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3234, 'nama' => 'dr.DWI FITRIANTI ARIEZA PUTRI, Sp.FM', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'FM_006', 'alamat' => 'IKF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3235, 'nama' => 'dr.DEWI ARUM SAWITRI,Sp.AN-TI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_018', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3236, 'nama' => 'dr.MUHAMMAD FARLYZHAR YUSUF,Sp.An-TI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'IC_019', 'alamat' => 'ANESTHESI', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3237, 'nama' => 'dr.DANDY DRESTANTO ADIWIGNYO,Sp.OT', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BR_016', 'alamat' => 'BEDAH ORTOPEDI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3238, 'nama' => 'dr.ADIN YAN PERMANA,Sp.OG', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_026', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3239, 'nama' => 'dr.FACHRIY BALAFIF,M.Ked.klin,Sp.BS', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BS_007', 'alamat' => 'BEDAH SARAF', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3240, 'nama' => 'dr.MOCHAMMAD PUTRO ARGO,Sp.OG', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_027', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3241, 'nama' => 'dr.EDI WIBOWO,Sp.U', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'URO_010', 'alamat' => 'BEDAH UROLOGI', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3242, 'nama' => 'dr.YORDAN WICAKSONO ASHARI,Sp.JP', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'JT_023', 'alamat' => 'JANTUNG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3243, 'nama' => 'dr.YULIANA AYU RAHAYU MANIK', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_022', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3244, 'nama' => 'dr.CYNTIA PUTRI WIDYASARI', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_023', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3245, 'nama' => 'dr.FADHILLAH SALMAN SOFYAN', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_024', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3246, 'nama' => 'dr.VITA FEBRYLIA ADZIMA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_025', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3247, 'nama' => 'dr.ANDRANISSA AMALIA PASHIRA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_026', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3248, 'nama' => 'dr.SRI SAYEKTININGSIH,MM', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_027', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3250, 'nama' => 'dr.R.GALIH AGUNG PRAGIWAKSANA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DU_029', 'alamat' => 'DOKTER UMUM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3251, 'nama' => 'dr.NURRAHMA WAHYU FITRIYANI,M.MedED,Sp.DV', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'KL_015', 'alamat' => 'KULKEL', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3284, 'nama' => 'dr.RIZKI EKAPUTRA HANDOKO,Sp.THT-KL', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'HT_014', 'alamat' => 'THT', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3317, 'nama' => 'dr.NAYLA RAHMADIANI,Sp.PA', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'LPA_013', 'alamat' => 'LAB.PA', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3350, 'nama' => 'dr.MOCHAMAD FACHRUREZA,Sp.PD', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'DL_037', 'alamat' => 'IPD', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3351, 'nama' => 'dr.KRESNA AGUNG PRABOWO, Sp.B.Subsp.B.V.E(K)', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'BT_007', 'alamat' => 'BEDAH THORAX', 'created_at' => '2025-08-02 07:15:10', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3384, 'nama' => 'dr.ADITYO PRABOWO,Sp.OG,M.Ked.Klin', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'OG_028', 'alamat' => 'OBG', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3385, 'nama' => 'dr. IMALIA AYUNAZHARY', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'RH_010', 'alamat' => 'IRM', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51'],
|
||||||
|
[ 'id' => 3386, 'nama' => 'dr. MOHAMMAD AGUNG MARZAH, Sp.MK.', 'jk' => '', 'tgl_lahir' => null, 'kota' => 'MK_011', 'alamat' => 'LAB.MIKRO', 'created_at' => '2025-08-02 07:14:51', 'updated_at' => '2025-08-02 07:14:51']
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -279,19 +279,16 @@ class OrganismSeeder extends Seeder
|
|||||||
['name' => 'Budding Cell 1-5/LPB (2+)', 'category' => 'BC', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Budding Cell 1-5/LPB (2+)', 'category' => 'BC', 'kelompok' => 'mikroorganisme'],
|
||||||
['name' => 'Budding Cell 6-30/LPB (3+)', 'category' => 'BC', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Budding Cell 6-30/LPB (3+)', 'category' => 'BC', 'kelompok' => 'mikroorganisme'],
|
||||||
['name' => 'Budding Cell >30/LPB (4+)', 'category' => 'BC', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Budding Cell >30/LPB (4+)', 'category' => 'BC', 'kelompok' => 'mikroorganisme'],
|
||||||
|
|
||||||
['name' => 'Pseudohifa (+)', 'category' => 'HIFA', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Pseudohifa (+)', 'category' => 'HIFA', 'kelompok' => 'mikroorganisme'],
|
||||||
['name' => 'Hifa (+)', 'category' => 'HIFA', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Hifa (+)', 'category' => 'HIFA', 'kelompok' => 'mikroorganisme'],
|
||||||
['name' => 'Hifa <1/LPB (1+)', 'category' => 'HIFA', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Hifa <1/LPB (1+)', 'category' => 'HIFA', 'kelompok' => 'mikroorganisme'],
|
||||||
['name' => 'Hifa 1-5/LPB (2+)', 'category' => 'HIFA', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Hifa 1-5/LPB (2+)', 'category' => 'HIFA', 'kelompok' => 'mikroorganisme'],
|
||||||
['name' => 'Hifa 6-30/LPB (3+)', 'category' => 'HIFA', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Hifa 6-30/LPB (3+)', 'category' => 'HIFA', 'kelompok' => 'mikroorganisme'],
|
||||||
['name' => 'Hifa >30/LPB (4+)', 'category' => 'HIFA', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Hifa >30/LPB (4+)', 'category' => 'HIFA', 'kelompok' => 'mikroorganisme'],
|
||||||
|
|
||||||
['name' => 'Bacil Gram Positif <1/LPB (1+)', 'category' => 'BGP', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Bacil Gram Positif <1/LPB (1+)', 'category' => 'BGP', 'kelompok' => 'mikroorganisme'],
|
||||||
['name' => 'Bacil Gram Positif 1-5/LPB (2+)', 'category' => 'BGP', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Bacil Gram Positif 1-5/LPB (2+)', 'category' => 'BGP', 'kelompok' => 'mikroorganisme'],
|
||||||
['name' => 'Bacil Gram Positif 6-30/LPB (3+)', 'category' => 'BGP', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Bacil Gram Positif 6-30/LPB (3+)', 'category' => 'BGP', 'kelompok' => 'mikroorganisme'],
|
||||||
['name' => 'Bacil Gram Positif >30/LPB (4+)', 'category' => 'BGP', 'kelompok' => 'mikroorganisme'],
|
['name' => 'Bacil Gram Positif >30/LPB (4+)', 'category' => 'BGP', 'kelompok' => 'mikroorganisme'],
|
||||||
|
|
||||||
['name' => 'Tidak ditemukan morfologi budding cells', 'category' => 'id_sputum', 'kelompok' => 'Sputum'],
|
['name' => 'Tidak ditemukan morfologi budding cells', 'category' => 'id_sputum', 'kelompok' => 'Sputum'],
|
||||||
['name' => 'Ditemukan morfologi budding cells', 'category' => 'id_sputum', 'kelompok' => 'Sputum'],
|
['name' => 'Ditemukan morfologi budding cells', 'category' => 'id_sputum', 'kelompok' => 'Sputum'],
|
||||||
['name' => 'Tidak ditemukan morfologi budding cells', 'category' => 'id_swabtenggorok', 'kelompok' => 'Swab Tenggorok'],
|
['name' => 'Tidak ditemukan morfologi budding cells', 'category' => 'id_swabtenggorok', 'kelompok' => 'Swab Tenggorok'],
|
||||||
@@ -343,14 +340,22 @@ class OrganismSeeder extends Seeder
|
|||||||
['name' => 'Ditemukan morfologi bakteri berspora di sub terminal', 'category' => 'id_pewarnaanspora', 'kelompok' => 'Pewarnaan Spora'],
|
['name' => 'Ditemukan morfologi bakteri berspora di sub terminal', 'category' => 'id_pewarnaanspora', 'kelompok' => 'Pewarnaan Spora'],
|
||||||
['name' => 'Ditemukan morfologi bakteri berspora di sentral', 'category' => 'id_pewarnaanspora', 'kelompok' => 'Pewarnaan Spora'],
|
['name' => 'Ditemukan morfologi bakteri berspora di sentral', 'category' => 'id_pewarnaanspora', 'kelompok' => 'Pewarnaan Spora'],
|
||||||
['name' => 'Tidak diitemukan morfologi bakteri berspora', 'category' => 'id_pewarnaanspora', 'kelompok' => 'Pewarnaan Spora'],
|
['name' => 'Tidak diitemukan morfologi bakteri berspora', 'category' => 'id_pewarnaanspora', 'kelompok' => 'Pewarnaan Spora'],
|
||||||
['name' => 'KGP 1+ ʆ hemolisa', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'Ditemukan morfologi <i>Inclusion Bodies</i> dan <i>Reticulate Bodies</i>', 'category' => 'id_pewarnaangiesma', 'kelompok' => 'Pewarnaan Giemsa'],
|
||||||
['name' => 'KGP 2+ ʆ hemolisa', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'Tidak ditemukan morfologi <i>Inclusion Bodies</i> dan <i>Reticulate Bodies</i>', 'category' => 'id_pewarnaangiesma', 'kelompok' => 'Pewarnaan Giemsa'],
|
||||||
['name' => 'KGP 3+ ʆ hemolisa', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'Ditemukan morfologi kista <i>tropozoid</i>', 'category' => 'id_pewarnaangiesma', 'kelompok' => 'Pewarnaan Giemsa'],
|
||||||
['name' => 'KGP 4+ ʆ hemolisa', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'Tidak Ditemukan morfologi kista <i>tropozoid</i>', 'category' => 'id_pewarnaangiesma', 'kelompok' => 'Pewarnaan Giemsa'],
|
||||||
['name' => 'KGP 1+ β hemolisa', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'Ditemukan morfologi Hifa', 'category' => 'id_pewarnaankoh', 'kelompok' => 'Pewarnaan KOH'],
|
||||||
['name' => 'KGP 2+ β hemolisa', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'Ditemukan morfologi <i>Budding Cell</i>', 'category' => 'id_pewarnaankoh', 'kelompok' => 'Pewarnaan KOH'],
|
||||||
['name' => 'KGP 3+ β hemolisa', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'Ditemukan morfologi <i>Conidia</i>', 'category' => 'id_pewarnaankoh', 'kelompok' => 'Pewarnaan KOH'],
|
||||||
['name' => 'KGP 4+ β hemolisa', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'Ditemukan morfologi Hifa dan <i>Budding Cell</i>', 'category' => 'id_pewarnaankoh', 'kelompok' => 'Pewarnaan KOH'],
|
||||||
|
['name' => 'Ditemukan morfologi Hifa dan <i>Conidia</i>', 'category' => 'id_pewarnaankoh', 'kelompok' => 'Pewarnaan KOH'],
|
||||||
|
['name' => 'Ditemukan morfologi <i>Budding Cell</i> dan <i>Conidia</i>', 'category' => 'id_pewarnaankoh', 'kelompok' => 'Pewarnaan KOH'],
|
||||||
|
['name' => 'Tidak ditemukan morfologi <i>Budding Cell</i>, Hifa dan <i>Conidia</i>', 'category' => 'id_pewarnaankoh', 'kelompok' => 'Pewarnaan KOH'],
|
||||||
|
['name' => 'Tidak ditemukan morfologi <i>Budding Cell</i> dan Hifa', 'category' => 'id_pewarnaankoh', 'kelompok' => 'Pewarnaan KOH'],
|
||||||
|
['name' => 'KGP 1+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
||||||
|
['name' => 'KGP 2+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
||||||
|
['name' => 'KGP 3+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
||||||
|
['name' => 'KGP 4+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
||||||
['name' => 'BGN 1+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'BGN 1+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
||||||
['name' => 'BGN 2+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'BGN 2+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
||||||
['name' => 'BGN 3+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'BGN 3+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
||||||
@@ -375,14 +380,10 @@ class OrganismSeeder extends Seeder
|
|||||||
['name' => 'BGP Coryneform 2+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'BGP Coryneform 2+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
||||||
['name' => 'BGP Coryneform 3+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'BGP Coryneform 3+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
||||||
['name' => 'BGP Coryneform 4+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
['name' => 'BGP Coryneform 4+', 'category' => 'id_mediabap', 'kelompok' => 'Media BAP'],
|
||||||
['name' => 'KGP 1+ ʆ hemolisa', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
['name' => 'KGP 1+', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
||||||
['name' => 'KGP 2+ ʆ hemolisa', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
['name' => 'KGP 2+', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
||||||
['name' => 'KGP 3+ ʆ hemolisa', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
['name' => 'KGP 3+', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
||||||
['name' => 'KGP 4+ ʆ hemolisa', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
['name' => 'KGP 4+', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
||||||
['name' => 'KGP 1+ β hemolisa', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
|
||||||
['name' => 'KGP 2+ β hemolisa', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
|
||||||
['name' => 'KGP 3+ β hemolisa', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
|
||||||
['name' => 'KGP 4+ β hemolisa', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
|
||||||
['name' => 'BGN 1+', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
['name' => 'BGN 1+', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
||||||
['name' => 'BGN 2+', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
['name' => 'BGN 2+', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
||||||
['name' => 'BGN 3+', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
['name' => 'BGN 3+', 'category' => 'id_mediacap', 'kelompok' => 'Media CAP'],
|
||||||
|
|||||||
@@ -0,0 +1,27 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Database\Seeders;
|
||||||
|
|
||||||
|
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||||
|
use Illuminate\Database\Seeder;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use App\Poli;
|
||||||
|
class PoliSeeder extends Seeder
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Run the database seeds.
|
||||||
|
*/
|
||||||
|
public function run(): void
|
||||||
|
{
|
||||||
|
Poli::truncate();
|
||||||
|
$json1 = file_get_contents(database_path('seeders/data/poli.json'));
|
||||||
|
$data1 = json_decode($json1, true);
|
||||||
|
|
||||||
|
// Bagi data ke dalam batch 500
|
||||||
|
$chunks = array_chunk($data1, 500);
|
||||||
|
|
||||||
|
foreach ($chunks as $chunk) {
|
||||||
|
DB::table('poli')->insert($chunk);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load diff
Executable
+206
@@ -0,0 +1,206 @@
|
|||||||
|
[
|
||||||
|
{"id":15,"poli":"Mikrobiologi","subpoli":"3.3.4 KULTUR AEROB","subsubpoli":"KULTUR CAIRAN","modaliti":"CAIRAN ASPIRASI","modaliti2":"7","created_at":"2025-09-02 09:30:39","updated_at":"2025-09-09 08:43:58"},
|
||||||
|
{"id":28,"poli":"Mikrobiologi","subpoli":"10.3.8 TCM TBC (GENE EXPERT)","subsubpoli":"TCM TB","modaliti":"SPUTUM","modaliti2":"2","created_at":"2025-09-03 04:42:03","updated_at":"2025-09-09 08:37:10"},
|
||||||
|
{"id":31,"poli":"Mikrobiologi","subpoli":"1.3.3 PEWARNAAN KOH JAMUR URINE","subsubpoli":"KOH","modaliti":"URINE","modaliti2":"1","created_at":"2025-09-03 06:53:56","updated_at":"2025-09-09 08:40:44"},
|
||||||
|
{"id":20,"poli":"Mikrobiologi","subpoli":"14.1.1 CCI","subsubpoli":"CCI","modaliti":"CCI","modaliti2":"1","created_at":"2025-09-02 15:25:01","updated_at":"2025-09-09 08:41:28"},
|
||||||
|
{"id":37,"poli":"Mikrobiologi","subpoli":"9.3.3 KULTUR FECES AEROB DAN UJI KEPEKAAN AB","subsubpoli":"KULTUR FECES","modaliti":"FECES","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:30"},
|
||||||
|
{"id":2,"poli":"Mikrobiologi","subpoli":"2.3.5 KULTUR AEROB SEKRET DAN UJI KEPEKAAN AB","subsubpoli":"KULTUR SV\/SU","modaliti":"SEKRET","modaliti2":"3","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 08:42:37"},
|
||||||
|
{"id":22,"poli":"Mikrobiologi","subpoli":"8.3.4 KULTUR AEROB SPESIMEN MATA DAN UJI KEPEKAAN AB","subsubpoli":"KULTUR MATA","modaliti":"MATA","modaliti2":"3","created_at":"2025-09-02 16:12:25","updated_at":"2025-09-09 08:48:06"},
|
||||||
|
{"id":40,"poli":"Mikrobiologi","subpoli":"11.3.7 KULTUR TBC MGIT (AUTOMATIC)","subsubpoli":"KULTUR TB","modaliti":"PUS","modaliti2":"60","created_at":"2025-09-05 03:03:01","updated_at":"2025-09-09 08:38:54"},
|
||||||
|
{"id":24,"poli":"Mikrobiologi","subpoli":"10.3.3 PEWARNAAN KOH JAMUR SPUTUM","subsubpoli":"KOH","modaliti":"SPUTUM","modaliti2":"1","created_at":"2025-09-03 00:19:23","updated_at":"2025-09-09 08:36:29"},
|
||||||
|
{"id":17,"poli":"Mikrobiologi","subpoli":"4.3.4 KULTUR DARAH AEROB DEWASA 2 BOTOL DAN UJI KEPEKAAN AB","subsubpoli":"DRH\/ KA","modaliti":"DARAH","modaliti2":"7","created_at":"2025-09-02 11:12:54","updated_at":"2025-09-09 08:45:35"},
|
||||||
|
{"id":19,"poli":"Mikrobiologi","subpoli":"12.3.4 KULTUR AEROB DAN UJI KEPEKAAN AB","subsubpoli":"KULTUR JARINGAN","modaliti":"JARINGAN","modaliti2":"3","created_at":"2025-09-02 11:21:00","updated_at":"2025-09-09 08:39:25"},
|
||||||
|
{"id":12,"poli":"Mikrobiologi","subpoli":"10.3.4 KULTUR AEROB SPUTUM DAN UJI KEPEKAAN AB","subsubpoli":"KULTUR SPT","modaliti":"SPUTUM","modaliti2":"3","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 08:36:45"},
|
||||||
|
{"id":18,"poli":"Mikrobiologi","subpoli":"11.3.4 KULTUR AEROB PUS DAN UJI KEPEKAAN AB","subsubpoli":"KULTUR PUS","modaliti":"PUS","modaliti2":"3","created_at":"2025-09-02 11:21:00","updated_at":"2025-09-09 08:38:23"},
|
||||||
|
{"id":50,"poli":"Mikrobiologi","subpoli":"11.3.3 PEWARNAAN KOH JAMUR PUS","subsubpoli":"KOH","modaliti":"PUS","modaliti2":"1","created_at":"2025-09-08 10:30:42","updated_at":"2025-09-09 08:38:06"},
|
||||||
|
{"id":39,"poli":"Mikrobiologi","subpoli":"10.3.5 KULTUR JAMUR SPUTUM","subsubpoli":"KULTUR JMR","modaliti":"SPUTUM","modaliti2":"14","created_at":"2025-09-04 05:20:17","updated_at":"2025-09-09 08:36:58"},
|
||||||
|
{"id":48,"poli":"Mikrobiologi","subpoli":"3.3.3 PEWARNAA KOH","subsubpoli":"KOH","modaliti":"CAIRAN ASPIRASI","modaliti2":"1","created_at":"2025-09-08 06:28:52","updated_at":"2025-09-09 08:43:38"},
|
||||||
|
{"id":55,"poli":"Mikrobiologi","subpoli":"11.3.9 TCM TB (GENE EXPERT)","subsubpoli":"TCM TB","modaliti":"PUS","modaliti2":"2","created_at":"2025-09-09 19:12:14","updated_at":"2025-09-09 19:12:14"},
|
||||||
|
{"id":62,"poli":"Mikrobiologi","subpoli":"12.3.8 TCM TB (GENE EXPERT)","subsubpoli":"TCM TB","modaliti":"JARINGAN","modaliti2":"2","created_at":"2025-09-09 19:16:40","updated_at":"2025-09-09 19:16:40"},
|
||||||
|
{"id":1,"poli":"Mikrobiologi","subpoli":"10 SPUTUM - 10 3 4 KULTUR AEROB SPUTUM DAN UJI KEPEKAAN AB","subsubpoli":"KULTUR SPT","modaliti":"SPUTUM","modaliti2":"3","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 08:37:32"},
|
||||||
|
{"id":33,"poli":"Mikrobiologi","subpoli":"4.3.6 KULTUR DARAH AEROB PEDIATRI 2 BOTOL DAN UJI KEPEKAAN AB","subsubpoli":"DRH\/ KA","modaliti":"DARAH","modaliti2":"7","created_at":"2025-09-04 00:58:10","updated_at":"2025-09-09 08:46:09"},
|
||||||
|
{"id":6,"poli":"Mikrobiologi","subpoli":"1.3.4 KULTUR AEROP URINE DAN UJI KEPEKAAN AB","subsubpoli":"KULTUR URINE","modaliti":"URINE","modaliti2":"3","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 08:40:58"},
|
||||||
|
{"id":23,"poli":"Mikrobiologi","subpoli":"10.3.1 PEWARNAAN GRAM SPUTUM","subsubpoli":"GRAM","modaliti":"SPUTUM","modaliti2":"1","created_at":"2025-09-02 20:44:54","updated_at":"2025-09-09 08:35:58"},
|
||||||
|
{"id":41,"poli":"Mikrobiologi","subpoli":"13.3.1 SWAB HIDUNG","subsubpoli":"MRSA","modaliti":"SWAB HIDUNG","modaliti2":"2","created_at":"2025-09-06 01:45:10","updated_at":"2025-09-09 08:40:04"},
|
||||||
|
{"id":45,"poli":"Mikrobiologi","subpoli":"15.2.2 KULTUR TB MEDIA MGIT (AUTOMATIC)","subsubpoli":"KULTUR TB","modaliti":"PMDT","modaliti2":"60","created_at":"2025-09-08 03:33:35","updated_at":"2025-09-09 08:41:43"},
|
||||||
|
{"id":44,"poli":"Mikrobiologi","subpoli":"4.3.2 PEWARNAAN KOH JAMUR CAIRAN LAIN-LAIN","subsubpoli":"KOH","modaliti":"DARAH","modaliti2":"1","created_at":"2025-09-06 15:55:18","updated_at":"2025-09-09 08:45:07"},
|
||||||
|
{"id":7,"poli":"Mikrobiologi","subpoli":"4.3.3 KULTUR DARAH AEROB DEWASA 1 BOTOL DAN UJI KEPEKAAN AB","subsubpoli":"DRH\/ KI","modaliti":"DARAH\/KI","modaliti2":"7","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 19:09:57"},
|
||||||
|
{"id":32,"poli":"Mikrobiologi","subpoli":"11.3.5 KULTUR JAMUR PUS","subsubpoli":"KULTUR JMR","modaliti":"PUS","modaliti2":"14","created_at":"2025-09-03 09:10:01","updated_at":"2025-09-09 08:38:38"},
|
||||||
|
{"id":25,"poli":"Mikrobiologi","subpoli":"1.3.5 KULTUR JAMUR URINE","subsubpoli":"KULTUR JMR","modaliti":"URINE","modaliti2":"14","created_at":"2025-09-03 03:17:21","updated_at":"2025-09-09 08:41:14"},
|
||||||
|
{"id":26,"poli":"Mikrobiologi","subpoli":"3.3.7 KULTUR TBC MGIT (AUTOMATIC)","subsubpoli":"KULTUR TB","modaliti":"CAIRAN ASPIRASI","modaliti2":"60","created_at":"2025-09-03 03:41:15","updated_at":"2025-09-09 08:44:32"},
|
||||||
|
{"id":42,"poli":"Mikrobiologi","subpoli":"13.3.2 SWAB TENGGOROK","subsubpoli":"MRSA","modaliti":"SWAB TENGGOROK","modaliti2":"2","created_at":"2025-09-06 01:45:10","updated_at":"2025-09-09 08:40:17"},
|
||||||
|
{"id":11,"poli":"Mikrobiologi","subpoli":"5.3.4 KULTUR AEROB SWAB TENGGOROK DAN UJI KEPEKAAN AB","subsubpoli":"KOH","modaliti":"SWAB TENGGOROK","modaliti2":"1","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 08:47:00"},
|
||||||
|
{"id":27,"poli":"Mikrobiologi","subpoli":"2.3.6 KULTUR JAMUR SEKRET","subsubpoli":"KULTUR JMR","modaliti":"SEKRET","modaliti2":"14","created_at":"2025-09-03 04:28:53","updated_at":"2025-09-09 08:42:51"},
|
||||||
|
{"id":13,"poli":"Mikrobiologi","subpoli":"4.3.5 KULTUR DARAH AEROB PEDIATRI 1 BOTOL DAN UJI KEPEKAAN AB","subsubpoli":"DRH\/ KI","modaliti":"DARAH\/KI","modaliti2":"7","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 19:10:09"},
|
||||||
|
{"id":30,"poli":"Mikrobiologi","subpoli":"16.1.1 HIV VIRAL LOAD","subsubpoli":"EID\/ VL","modaliti":"PCR","modaliti2":"14","created_at":"2025-09-03 06:01:11","updated_at":"2025-09-09 08:42:15"},
|
||||||
|
{"id":56,"poli":"Mikrobiologi","subpoli":"10.3.6 KULTUR TBC MEDIA LJ (KONVENSIONAL)","subsubpoli":"KULTUR TB","modaliti":"SPUTUM","modaliti2":"60","created_at":"2025-09-09 19:13:13","updated_at":"2025-09-09 19:13:13"},
|
||||||
|
{"id":21,"poli":"Mikrobiologi","subpoli":"8.3.3 PEWARNAAN KOH JAMUR SPESIMEN MATA","subsubpoli":"KOH","modaliti":"MATA","modaliti2":"1","created_at":"2025-09-02 16:12:25","updated_at":"2025-09-09 08:47:54"},
|
||||||
|
{"id":14,"poli":"Mikrobiologi","subpoli":"15.2.3 TCM TB (GENE EXPERT)","subsubpoli":"TCM TB","modaliti":"TCM TB","modaliti2":"2","created_at":"2025-09-02 07:07:00","updated_at":"2026-01-29 11:31:12"},
|
||||||
|
{"id":16,"poli":"Mikrobiologi","subpoli":"3.3.5 KULTUR JAMUR","subsubpoli":"KULTUR JMR","modaliti":"CAIRAN ASPIRASI","modaliti2":"14","created_at":"2025-09-02 09:30:39","updated_at":"2025-09-09 08:44:17"},
|
||||||
|
{"id":51,"poli":"Mikrobiologi","subpoli":"2.3.4 PEWARNAAN KOH JAMUR SEKRET","subsubpoli":"KOH","modaliti":"SEKRET","modaliti2":"1","created_at":"2025-09-09 03:50:23","updated_at":"2025-09-09 17:30:58"},
|
||||||
|
{"id":8,"poli":"Mikrobiologi","subpoli":"4.3.7 KULTUR JAMUR DARAH","subsubpoli":"KULTUR JMR","modaliti":"DARAH","modaliti2":"14","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 08:46:23"},
|
||||||
|
{"id":34,"poli":"Mikrobiologi","subpoli":"8.3.5 KULTUR JAMUR SPESIMEN MATA","subsubpoli":"KULTUR JMR","modaliti":"MATA","modaliti2":"14","created_at":"2025-09-04 01:35:15","updated_at":"2025-09-09 08:48:17"},
|
||||||
|
{"id":52,"poli":"Mikrobiologi","subpoli":"10.3.7 KULTUR TBC MGIT (AUTOMATIC)","subsubpoli":"KULTUR TB","modaliti":"SPUTUM","modaliti2":"60","created_at":"2025-09-09 06:19:32","updated_at":"2025-09-09 17:30:38"},
|
||||||
|
{"id":53,"poli":"Mikrobiologi","subpoli":"11.3.6 KULTUR TBC MEDIA LJ (KONVENSIONAL)","subsubpoli":"KULTUR TB","modaliti":"PUS","modaliti2":"60","created_at":"2025-09-09 19:10:57","updated_at":"2025-09-09 19:10:57"},
|
||||||
|
{"id":38,"poli":"Mikrobiologi","subpoli":"9.3.4 KULTUR JAMUR FECES","subsubpoli":"KULTUR JMR","modaliti":"FECES","modaliti2":"14","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":60,"poli":"Mikrobiologi","subpoli":"12.3.6 KULTUR TBC MEDIA LJ (KONVENSIONAL)","subsubpoli":"KULTUR TB","modaliti":"JARINGAN","modaliti2":"60","created_at":"2025-09-09 19:15:54","updated_at":"2025-09-09 19:15:54"},
|
||||||
|
{"id":54,"poli":"Mikrobiologi","subpoli":"11.3.8 PEMERIKSAAN MRSA","subsubpoli":"MRSA","modaliti":"PUS","modaliti2":"2","created_at":"2025-09-09 19:11:50","updated_at":"2025-09-09 19:11:50"},
|
||||||
|
{"id":59,"poli":"Mikrobiologi","subpoli":"12.3.5 KULTUR JAMUR","subsubpoli":"KULTUR JMR","modaliti":"JARINGAN","modaliti2":"14","created_at":"2025-09-09 19:15:34","updated_at":"2025-09-09 19:15:34"},
|
||||||
|
{"id":35,"poli":"Mikrobiologi","subpoli":"11.3.1 PEWARNAAN GRAM PUS","subsubpoli":"GRAM","modaliti":"PUS","modaliti2":"1","created_at":"2025-09-04 02:08:37","updated_at":"2025-09-09 08:37:47"},
|
||||||
|
{"id":46,"poli":"Mikrobiologi","subpoli":"12.3.1 PEWARNAAN GRAM","subsubpoli":"GRAM","modaliti":"JARINGAN","modaliti2":"1","created_at":"2025-09-08 04:27:19","updated_at":"2025-09-09 08:39:09"},
|
||||||
|
{"id":3,"poli":"Mikrobiologi","subpoli":"1.3.1 PEWARNAAN GRAM URINE","subsubpoli":"GRAM","modaliti":"URINE","modaliti2":"1","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 08:39:44"},
|
||||||
|
{"id":43,"poli":"Mikrobiologi","subpoli":"3.3.1 PEWARNAAN GRAM","subsubpoli":"GRAM","modaliti":"CAIRAN ASPIRASI","modaliti2":"1","created_at":"2025-09-06 03:25:16","updated_at":"2025-09-09 08:43:08"},
|
||||||
|
{"id":72,"poli":"Mikrobiologi","subpoli":"13.3.3. PUS","subsubpoli":"MRSA","modaliti":"PUS","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":10,"poli":"Mikrobiologi","subpoli":"5.3.2 PEWARNAAN NEISSER SWAB TENGGOROK","subsubpoli":"NEISSER","modaliti":"SWAB TENGGOROK","modaliti2":"1","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 08:46:48"},
|
||||||
|
{"id":96,"poli":"Mikrobiologi","subpoli":"3.3.10 AG CRYPTOCOCCUS NEOFORMANS","subsubpoli":"AG CRYPTO","modaliti":"CAIRAN ASPIRASI","modaliti2":"","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":115,"poli":"Mikrobiologi","subpoli":"4.3.9 AG CRYPTOCOCCUS NEOFORMANS","subsubpoli":"AG CRYPTO","modaliti":"DARAH","modaliti2":"","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":83,"poli":"Mikrobiologi","subpoli":"18.1.3 TCM CLAMIDIA TRACHOMATIS \/ NEISSERIA GONORRHOE","subsubpoli":"CLAMIDIA","modaliti":"TCM","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":79,"poli":"Mikrobiologi","subpoli":"17.3.1 TCM COVID-19","subsubpoli":"COVID 19","modaliti":"TCM","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":80,"poli":"Mikrobiologi","subpoli":"17.3.2 PCR COVID-19","subsubpoli":"COVID 19","modaliti":"TCM","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":166,"poli":"Mikrobiologi","subpoli":"B.2.6 PEMERIKSAAN DIPHTERI","subsubpoli":"DIPH","modaliti":"SWAB","modaliti2":"5","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":147,"poli":"Mikrobiologi","subpoli":"8.3.9 PEWARNAAN GIENSA","subsubpoli":"GIEMSA","modaliti":"MATA","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":87,"poli":"Mikrobiologi","subpoli":"2.3.2 PEWARNAAN GRAM SEKRET ","subsubpoli":"GRAM","modaliti":"SEKRET","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":125,"poli":"Mikrobiologi","subpoli":"6.3.1 PEWARNAAN GRAM SWAB LAIN-LAIN","subsubpoli":"GRAM","modaliti":"SWAB LAIN LAIN","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":154,"poli":"Mikrobiologi","subpoli":"A.2.1 PEWARNAAN LANGSUNG GRAM URINE ","subsubpoli":"GRAM","modaliti":"URINE","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":158,"poli":"Mikrobiologi","subpoli":"B.2.1 PEWARNAAN LANGSUNG GRAM SWAB TENGGOROK","subsubpoli":"GRAM","modaliti":"SWAB TENGGOROK","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":162,"poli":"Mikrobiologi","subpoli":"B.2.2 PEWARNAAN LANGSUNG GRAM SWAB HIDUNG","subsubpoli":"GRAM","modaliti":"SWAB HIDUNG","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":81,"poli":"Mikrobiologi","subpoli":"18.1.1 TCM HCV","subsubpoli":"HCV","modaliti":"TCM","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":82,"poli":"Mikrobiologi","subpoli":"18.1.2 TCM HIV VIRAL LOAD","subsubpoli":"HIV","modaliti":"TCM","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":84,"poli":"Mikrobiologi","subpoli":"18.1.4 TCM HPV","subsubpoli":"HPV","modaliti":"TCM","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":107,"poli":"Mikrobiologi","subpoli":"4.3.10 IGM LEPTOSPIRA","subsubpoli":"IGM","modaliti":"DARAH","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":118,"poli":"Mikrobiologi","subpoli":"5.3.3 PEWARNAAN KOH JAMUR SWAB TENGGOROK","subsubpoli":"KOH","modaliti":"SWAB TENGGOROK","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":127,"poli":"Mikrobiologi","subpoli":"6.3.3 PEWARNAAN KOH JAMUR SWAB LAIN-LAIN","subsubpoli":"KOH","modaliti":"SWAB LAIN LAIN","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":133,"poli":"Mikrobiologi","subpoli":"7.3.3 PEWARNAAN KOH JAMUR SWAB TELINGA","subsubpoli":"KOH","modaliti":"SWAB TELINGA","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":149,"poli":"Mikrobiologi","subpoli":"9.3.2 PEWARNAAN KOH JAMUR FECES","subsubpoli":"KOH","modaliti":"FECES","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":156,"poli":"Mikrobiologi","subpoli":"A.2.3 PEWARNAAN LANGSUNG KOH URINE","subsubpoli":"KOH","modaliti":"URINE","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":160,"poli":"Mikrobiologi","subpoli":"B.2.11 PEMERIKSAAN KULTUR BAKTERI SWAB KULIT & UJI KEPEKAAN AB","subsubpoli":"KULTUR","modaliti":"PUS","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":121,"poli":"Mikrobiologi","subpoli":"5.3.6 KULTUR DIPHTERI SWAB TENGGOROK","subsubpoli":"KULTUR DIPH","modaliti":"SWAB TENGGOROK","modaliti2":"5","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":128,"poli":"Mikrobiologi","subpoli":"6.3.4 KULTUR DIPHTERI SWAB LAIN-LAIN","subsubpoli":"KULTUR DIPH","modaliti":"SWAB LAIN LAIN","modaliti2":"5","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":130,"poli":"Mikrobiologi","subpoli":"6.3.6 KULTUR JAMUR SWAB LAIN-LAIN","subsubpoli":"KULTUR JMR","modaliti":"SWAB LAIN LAIN","modaliti2":"14","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":135,"poli":"Mikrobiologi","subpoli":"7.3.5 KULTUR JAMUR SWAB TELINGA","subsubpoli":"KULTUR JMR","modaliti":"SWAB TELINGA","modaliti2":"14","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":159,"poli":"Mikrobiologi","subpoli":"B.2.10 PEMERIKSAAN KULTUR BAKTERI SWAB MATA & UJI KEPEKAAN AB","subsubpoli":"KULTUR MATA","modaliti":"MATA","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":169,"poli":"Mikrobiologi","subpoli":"B.2.9 PEMERIKSAAN KULTUR BAKTERI SWAB TELINGA & UJI KEPEKAAN AB","subsubpoli":"KULTUR S. TEL","modaliti":"SWAB TELINGA","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":168,"poli":"Mikrobiologi","subpoli":"B.2.8 PEMERIKSAAN KULTUR BAKTERI SWAB HIDUNG & UJI KEPEKAAN AB","subsubpoli":"KULTUR SH","modaliti":"SWAB HIDUNG","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":167,"poli":"Mikrobiologi","subpoli":"B.2.7 PEMERIKSAAN KULTUR BAKTERI SWAB TENGGOROK & UJI KEPEKAAN AB","subsubpoli":"KULTUR ST","modaliti":"SWAB TENGGOROK","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":129,"poli":"Mikrobiologi","subpoli":"6.3.5 KULTUR AEROB SWAB LAIN-LAIN DAN UJI KEPEKAAN AB","subsubpoli":"KULTUR SWAB LAIN LAIN","modaliti":"SWAB LAIN LAIN","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":92,"poli":"Mikrobiologi","subpoli":"2.3.7 KULTUR TBC MEDIA LJ (KONVENSIONAL)","subsubpoli":"KULTUR TB","modaliti":"SEKRET","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":102,"poli":"Mikrobiologi","subpoli":"3.3.6 KULTUR TBC MEDIA LJ (KONVENSIONAL) ","subsubpoli":"KULTUR TB","modaliti":"CAIRAN ASPIRASI","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":122,"poli":"Mikrobiologi","subpoli":"5.3.7 KULTUR TBC MEDIA LJ (KONVENSIONAL)","subsubpoli":"KULTUR TB","modaliti":"SWAB TENGGOROK","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":123,"poli":"Mikrobiologi","subpoli":"5.3.8 KULTUR TBC MGIT (AUTOMATIC)","subsubpoli":"KULTUR TB","modaliti":"SWAB TENGGOROK","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":136,"poli":"Mikrobiologi","subpoli":"7.3.6 KULTUR TBC MEDIA LJ (KONVENSIONAL)","subsubpoli":"KULTUR TB","modaliti":"SWAB TELINGA","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":137,"poli":"Mikrobiologi","subpoli":"7.3.7 KULTUR TBC MGIT (AUTOMATIC)","subsubpoli":"KULTUR TB","modaliti":"SWAB TELINGA","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":144,"poli":"Mikrobiologi","subpoli":"8.3.6 KULTUR TBC MEDIA LJ (KONVENSIONAL)","subsubpoli":"KULTUR TB","modaliti":"MATA","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":85,"poli":"Mikrobiologi","subpoli":"2.3.1 NUGENT SCORE \/ CLUE CELLS","subsubpoli":"NUGENT SCORE","modaliti":"SEKRET","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":157,"poli":"Mikrobiologi","subpoli":"A.2.4 PEMERIKSAAN KULTUR BAKTERI URINE","subsubpoli":"KULTUR URINE","modaliti":"URINE","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":161,"poli":"Mikrobiologi","subpoli":"B.2.12 PEMERIKSAAN SKRINING MRSA","subsubpoli":"MRSA","modaliti":"MRSA","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":97,"poli":"Mikrobiologi","subpoli":"3.3.11 PEWARNAAN NEGATIVE SWAB TENGGOROKAINING INDIAN INK","subsubpoli":"NEGATIVE","modaliti":"SWAB TENGGOROK","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":114,"poli":"Mikrobiologi","subpoli":"4.3.8 PEWARNAAN NEGATIVE SWAB TENGGOROKAINNING INDIAN INK","subsubpoli":"NEGATIVE","modaliti":"DARAH","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":93,"poli":"Mikrobiologi","subpoli":"2.3.8 KULTUR TBC MGIT (AUTOMATIC) \/ TCM GENE EXPERT","subsubpoli":"TBC","modaliti":"SEKRET","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":86,"poli":"Mikrobiologi","subpoli":"2.3.10 TCM CLAMIDIA TRACHOMATIS \/ NEISSERIA GONORRHOE","subsubpoli":"TCM GO","modaliti":"SEKRET","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":94,"poli":"Mikrobiologi","subpoli":"2.3.9 TCM GENE EXPERT","subsubpoli":"TCM TB","modaliti":"SEKRET","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":104,"poli":"Mikrobiologi","subpoli":"3.3.8 TCM GENE EXPERT","subsubpoli":"TCM TB","modaliti":"CAIRAN ASPIRASI","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":105,"poli":"Mikrobiologi","subpoli":"3.3.9 TCM MYCOBACTERIUM TUBERCULOSIS","subsubpoli":"TCM TB","modaliti":"CAIRAN ASPIRASI","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":124,"poli":"Mikrobiologi","subpoli":"5.3.9 TCM TBC (GENE EXPERT)","subsubpoli":"TCM TB","modaliti":"SWAB TENGGOROK","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":138,"poli":"Mikrobiologi","subpoli":"7.3.8 TCM TBC (GENE EXPERT)","subsubpoli":"TCM TB","modaliti":"SWAB TELINGA","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":146,"poli":"Mikrobiologi","subpoli":"8.3.8 TCM TBC (GENE EXPERT)","subsubpoli":"TCM TB","modaliti":"MATA","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":134,"poli":"Mikrobiologi","subpoli":"7.3.4 KULTUR AEROB SWAB TELINGA DAN UJI KEPEKAAN AB","subsubpoli":"KULTUR S. TEL","modaliti":"SWAB TELINGA","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":171,"poli":"Mikrobiologi","subpoli":"C.2.2 PEWARNAAN LANGSUNG BTA SEKRET URETHRA ","subsubpoli":"BTA","modaliti":"SU","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":170,"poli":"Mikrobiologi","subpoli":"C.2.1 PEWARNAAN LANGSUNG GRAM SEKRET URETHRA","subsubpoli":"GRAM","modaliti":"SU","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":174,"poli":"Mikrobiologi","subpoli":"C.2.5 PEWARNAAN LANGSUNG GRAM SEKRET VAGINA ","subsubpoli":"GRAM","modaliti":"SV","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":179,"poli":"Mikrobiologi","subpoli":"D.2.1 PEWARNAAN LANGSUNG GRAM KUKU ","subsubpoli":"GRAM","modaliti":"KUKU","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":190,"poli":"Mikrobiologi","subpoli":"D.2.2 PEWARNAAN LANGSUNG GRAM RAMBUT ","subsubpoli":"GRAM","modaliti":"RAMBUT","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":192,"poli":"Mikrobiologi","subpoli":"D.2.3 PEWARNAAN LANGSUNG GRAM KULIT ","subsubpoli":"GRAM","modaliti":"KULIT","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":193,"poli":"Mikrobiologi","subpoli":"D.2.4 PEWARNAAN LANGSUNG GRAM TULANG ","subsubpoli":"GRAM","modaliti":"TULANG","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":199,"poli":"Mikrobiologi","subpoli":"E.2.1 PEWARNAAN LANGSUNG GRAM DARAH","subsubpoli":"GRAM","modaliti":"DARAH","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":205,"poli":"Mikrobiologi","subpoli":"G.2.1 PEWARNAAN LANGSUNG GRAM CAIRAN ASPIRASI OTAK","subsubpoli":"GRAM","modaliti":"LCS","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":209,"poli":"Mikrobiologi","subpoli":"G.2.13 PEWARNAAN LANGSUNG GRAM CAIRAN ASPIRASI EFUSI PLEURA","subsubpoli":"GRAM","modaliti":"C. PLEURA","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":213,"poli":"Mikrobiologi","subpoli":"G.2.17 PEWARNAAN LANGSUNG GRAM CAIRAN ASPIRASI PERITONEUM","subsubpoli":"GRAM","modaliti":"C. PERITONEUM","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":218,"poli":"Mikrobiologi","subpoli":"G.2.21 PEWARNAAN LANGSUNG GRAM CAIRAN ASPIRASI SENDI","subsubpoli":"GRAM","modaliti":"C. SENDI","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":224,"poli":"Mikrobiologi","subpoli":"G.2.5 PEWARNAAN LANGSUNG GRAM CAIRAN ASPIRASI TUBO OVARIAL","subsubpoli":"GRAM","modaliti":"TUBO O","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":203,"poli":"Mikrobiologi","subpoli":"E.2.5 HCV TCM","subsubpoli":"HCV","modaliti":"TCM","modaliti2":"2","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":187,"poli":"Mikrobiologi","subpoli":"D.2.17 PAKET IDENTIFIKASI JAMUR JARINGAN KUKU","subsubpoli":"IDEN JMR","modaliti":"KUKU","modaliti2":"14","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":189,"poli":"Mikrobiologi","subpoli":"D.2.19 PAKET IDENTIFIKASI JAMUR JARINGAN KULIT","subsubpoli":"IDEN JMR","modaliti":"KULIT","modaliti2":"14","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":191,"poli":"Mikrobiologi","subpoli":"D.2.20 PAKET IDENTIFIKASI JAMUR JARINGAN TULANG","subsubpoli":"IDEN JMR","modaliti":"TULANG","modaliti2":"14","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":172,"poli":"Mikrobiologi","subpoli":"C.2.3 PEWARNAAN LANGSUNG KOH SEKRET URETHRA ","subsubpoli":"KOH","modaliti":"SU","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":176,"poli":"Mikrobiologi","subpoli":"C.2.7 PEWARNAAN LANGSUNG KOH SEKRET VAGINA ","subsubpoli":"KOH","modaliti":"SV","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":180,"poli":"Mikrobiologi","subpoli":"D.2.10 PEWARNAAN LANGSUNG KOH RAMBUT ","subsubpoli":"KOH","modaliti":"RAMBUT","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":181,"poli":"Mikrobiologi","subpoli":"D.2.11 PEWARNAAN LANGSUNG KOH KULIT ","subsubpoli":"KOH","modaliti":"KULIT","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":182,"poli":"Mikrobiologi","subpoli":"D.2.12 PEWARNAAN LANGSUNG KOH TULANG ","subsubpoli":"KOH","modaliti":"TULANG","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":198,"poli":"Mikrobiologi","subpoli":"D.2.9 PEWARNAAN LANGSUNG KOH KUKU ","subsubpoli":"KOH","modaliti":"KUKU","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":201,"poli":"Mikrobiologi","subpoli":"E.2.3 PEWARNAAN LANGSUNG KOH DARAH","subsubpoli":"KOH","modaliti":"DARAH","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":207,"poli":"Mikrobiologi","subpoli":"G.2.11 PEWARNAAN LANGSUNG KOH CAIRAN ASPIRASI ABSES HEPAR","subsubpoli":"KOH","modaliti":"ABSES HEPAR","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":211,"poli":"Mikrobiologi","subpoli":"G.2.15 PEWARNAAN LANGSUNG KOH CAIRAN ASPIRASI EFUSI PLEURA","subsubpoli":"KOH","modaliti":"C. PLEURA","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":215,"poli":"Mikrobiologi","subpoli":"G.2.19 PEWARNAAN LANGSUNG KOH CAIRAN ASPIRASI PERITONEUM","subsubpoli":"KOH","modaliti":"C. PERITONEUM","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":208,"poli":"Mikrobiologi","subpoli":"G.2.12 PEMRIKSAAN KULTUR BAKTERI CAIRAN ASPIRASI ABSES HEPAR","subsubpoli":"KULTUR C. ABSES H","modaliti":"ABSES HEPAR","modaliti2":"7","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":221,"poli":"Mikrobiologi","subpoli":"G.2.24 PEMRIKSAAN KULTUR BAKTERI CAIRAN ASPIRASI SENDI","subsubpoli":"KULTUR C. SENDI","modaliti":"C. SENDI","modaliti2":"7","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":227,"poli":"Mikrobiologi","subpoli":"G.2.8 PEMRIKSAAN KULTUR BAKTERI CAIRAN ASPIRASI TUBO OVARIAL","subsubpoli":"KULTUR C. TUBO O","modaliti":"TUBO O","modaliti2":"7","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":212,"poli":"Mikrobiologi","subpoli":"G.2.16 PEMRIKSAAN KULTUR BAKTERI CAIRAN ASPIRASI EFUSI PLEURA","subsubpoli":"KULTUR CP","modaliti":"C. PLEURA","modaliti2":"7","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":217,"poli":"Mikrobiologi","subpoli":"G.2.20 PEMRIKSAAN KULTUR BAKTERI CAIRAN ASPIRASI PERITONEUM","subsubpoli":"KULTUR CPER","modaliti":"C. PERITONEUM","modaliti2":"7","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":202,"poli":"Mikrobiologi","subpoli":"E.2.4 PEMERIKSAAN KULTUR BAKTERI DARAH AEROB & UJI KEPEKAAN AB","subsubpoli":"KULTUR DRH","modaliti":"DARAH","modaliti2":"7","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":204,"poli":"Mikrobiologi","subpoli":"F.2.1 PAKET KULTUR BAKTERI FESES AEROB & UJI KEPEKAAN AB","subsubpoli":"KULTUR FECES","modaliti":"FECES","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":183,"poli":"Mikrobiologi","subpoli":"D.2.13 PAKET KULTUR BAKTERI JARINGAN KUKU","subsubpoli":"KULTUR JARINGAN","modaliti":"KUKU","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":184,"poli":"Mikrobiologi","subpoli":"D.2.14 PAKET KULTUR BAKTERI JARINGAN RAMBUT","subsubpoli":"KULTUR JARINGAN","modaliti":"RAMBUT","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":185,"poli":"Mikrobiologi","subpoli":"D.2.15 PAKET KULTUR BAKTERI JARINGAN KULIT","subsubpoli":"KULTUR JARINGAN","modaliti":"KULIT","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":186,"poli":"Mikrobiologi","subpoli":"D.2.16 PAKET KULTUR BAKTERI JARINGAN TULANG","subsubpoli":"KULTUR JARINGAN","modaliti":"TULANG","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":188,"poli":"Mikrobiologi","subpoli":"D.2.18 PAKET IDENTIFIKASI JAMUR JARINGAN RAMBUT","subsubpoli":"KULTUR JMR","modaliti":"RAMBUT","modaliti2":"14","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":173,"poli":"Mikrobiologi","subpoli":"C.2.4 PEMERIKSAAN KULTUR BAKTERI URETHRA","subsubpoli":"KULTUR SU","modaliti":"SU","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":177,"poli":"Mikrobiologi","subpoli":"C.2.8 PEMERIKSAAN KULTUR BAKTERI SWAB VAGINA & UJI KEPEKAAN AB","subsubpoli":"KULTUR SV","modaliti":"SV","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":223,"poli":"Mikrobiologi","subpoli":"G.2.4 PEMRIKSAAN KULTUR BAKTERI CAIRAN ASPIRASI OTAK & UJI KEPEKAAN AB","subsubpoli":"LCS","modaliti":"LCS","modaliti2":"7","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":178,"poli":"Mikrobiologi","subpoli":"C.2.9 PEMERIKSAAN VAGINOSIS BAKTERIALIS (CLUE CELLS)","subsubpoli":"NUGENT SCORE","modaliti":"SV","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":233,"poli":"Mikrobiologi","subpoli":"H.2.5 PEMERIKSAAN KULTUR MYCROBACTERIUM TBC","subsubpoli":"KULTUR TB","modaliti":"SPUTUM","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":66,"poli":"Mikrobiologi","subpoli":"4.3.8 PEWARNAAN NEGATIVE STAINNING INDIAN INK","subsubpoli":"NEGATIVE","modaliti":"DARAH","modaliti2":"1","created_at":"2025-09-30 03:37:54","updated_at":"2025-11-06 19:24:58"},
|
||||||
|
{"id":36,"poli":"Mikrobiologi","subpoli":"10.3.2 PEWARNAAN BTA SPUTUM","subsubpoli":"BTA","modaliti":"SPUTUM","modaliti2":"1","created_at":"2025-09-04 03:11:12","updated_at":"2025-09-09 08:36:18"},
|
||||||
|
{"id":49,"poli":"Mikrobiologi","subpoli":"11.3.2 PEWARNAAN BTA PUS","subsubpoli":"BTA","modaliti":"PUS","modaliti2":"1","created_at":"2025-09-08 10:30:42","updated_at":"2025-09-09 08:37:58"},
|
||||||
|
{"id":47,"poli":"Mikrobiologi","subpoli":"3.3.2 PEWARNAAN BTA","subsubpoli":"BTA","modaliti":"CAIRAN ASPIRASI","modaliti2":"1","created_at":"2025-09-08 06:28:52","updated_at":"2025-09-09 08:43:23"},
|
||||||
|
{"id":57,"poli":"Mikrobiologi","subpoli":"12.3.2 PEWARNAAN BTA","subsubpoli":"BTA","modaliti":"JARINGAN","modaliti2":"1","created_at":"2025-09-09 19:14:29","updated_at":"2025-09-09 19:14:29"},
|
||||||
|
{"id":64,"poli":"Mikrobiologi","subpoli":"1.3.2 PEWARNAAN BTA URINE","subsubpoli":"BTA","modaliti":"SEKRET","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":88,"poli":"Mikrobiologi","subpoli":"2.3.3 PEWARNAAN BTA SEKRET","subsubpoli":"BTA","modaliti":"SEKRET","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":126,"poli":"Mikrobiologi","subpoli":"6.3.2 PEWARNAAN BTA SWAB LAIN-LAIN","subsubpoli":"BTA","modaliti":"SWAB LAIN LAIN","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":132,"poli":"Mikrobiologi","subpoli":"7.3.2 PEWARNAAN BTA","subsubpoli":"BTA","modaliti":"SWAB TELINGA","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":140,"poli":"Mikrobiologi","subpoli":"8.3.2 PEWARNAAN BTA SPESIMEN MATA","subsubpoli":"BTA","modaliti":"MATA","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":148,"poli":"Mikrobiologi","subpoli":"9.3.1 PEWARNAAN BTA FECES","subsubpoli":"BTA","modaliti":"FECES","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":155,"poli":"Mikrobiologi","subpoli":"A.2.2 PEWARNAAN LANGSUNG BTA URINE","subsubpoli":"BTA","modaliti":"URINE","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":175,"poli":"Mikrobiologi","subpoli":"C.2.6 PEWARNAAN LANGSUNG BTA SEKRET VAGINA ","subsubpoli":"BTA","modaliti":"SV","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":194,"poli":"Mikrobiologi","subpoli":"D.2.5 PEWARNAAN LANGSUNG BTA KUKU ","subsubpoli":"BTA","modaliti":"KUKU","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":195,"poli":"Mikrobiologi","subpoli":"D.2.6 PEWARNAAN LANGSUNG BTA RAMBUT ","subsubpoli":"BTA","modaliti":"RAMBUT","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":196,"poli":"Mikrobiologi","subpoli":"D.2.7 PEWARNAAN LANGSUNG BTA KULIT ","subsubpoli":"BTA","modaliti":"KULIT","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":197,"poli":"Mikrobiologi","subpoli":"D.2.8 PEWARNAAN LANGSUNG BTA TULANG ","subsubpoli":"BTA","modaliti":"TULANG","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":200,"poli":"Mikrobiologi","subpoli":"E.2.2 PEWARNAAN LANGSUNG BTA DARAH","subsubpoli":"BTA","modaliti":"DARAH","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":206,"poli":"Mikrobiologi","subpoli":"G.2.10 PEWARNAAN LANGSUNG BTA CAIRAN ASPIRASI ABSES HEPAR","subsubpoli":"BTA","modaliti":"ABSES HEPAR","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":214,"poli":"Mikrobiologi","subpoli":"G.2.18 PEWARNAAN LANGSUNG BTA CAIRAN ASPIRASI PERITONEUM","subsubpoli":"BTA","modaliti":"C. PERITONEUM","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":216,"poli":"Mikrobiologi","subpoli":"G.2.2 PEWARNAAN LANGSUNG BTA CAIRAN ASPIRASI OTAK","subsubpoli":"BTA","modaliti":"LCS","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":219,"poli":"Mikrobiologi","subpoli":"G.2.22 PEWARNAAN LANGSUNG BTA CAIRAN ASPIRASI SENDI","subsubpoli":"BTA","modaliti":"C. SENDI","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":225,"poli":"Mikrobiologi","subpoli":"G.2.6 PEWARNAAN LANGSUNG BTA CAIRAN ASPIRASI TUBO OVARIAL","subsubpoli":"BTA","modaliti":"TUBO O","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":230,"poli":"Mikrobiologi","subpoli":"H.2.2 PEWARNAAN LANGSUNG BTA SPUTUM","subsubpoli":"BTA","modaliti":"SPUTUM","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":235,"poli":"Mikrobiologi","subpoli":"I.2.2 PEWARNAAN LANGSUNG BTA PUS","subsubpoli":"BTA","modaliti":"PUS","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":210,"poli":"Mikrobiologi","subpoli":"G.2.14 PEWARNAAN LANGSUNG BTA CAIRAN ASPIRASI EFUSI PLEURA","subsubpoli":"BTA","modaliti":"C. PLEURA","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":29,"poli":"Mikrobiologi","subpoli":"4.3.1 PEWARNAAN GRAM CAIRAN LAIN-LAIN","subsubpoli":"GRAM","modaliti":"DARAH","modaliti2":"1","created_at":"2025-09-03 04:47:47","updated_at":"2025-09-09 08:44:52"},
|
||||||
|
{"id":9,"poli":"Mikrobiologi","subpoli":"5.3.1 PEWARNAAN GRAM SWAB TENGGOROK","subsubpoli":"GRAM","modaliti":"SWAB TENGGOROK","modaliti2":"1","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 08:46:37"},
|
||||||
|
{"id":4,"poli":"Mikrobiologi","subpoli":"7.3.1 PEWARNAAN GRAM SWAB TELINGA","subsubpoli":"GRAM","modaliti":"SWAB TELINGA","modaliti2":"1","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 08:47:24"},
|
||||||
|
{"id":5,"poli":"Mikrobiologi","subpoli":"8.3.1 PEWARNAAN GRAM SPESIMEN MATA","subsubpoli":"GRAM","modaliti":"MATA","modaliti2":"1","created_at":"2025-09-02 02:01:44","updated_at":"2025-09-09 08:47:39"},
|
||||||
|
{"id":163,"poli":"Mikrobiologi","subpoli":"B.2.3 PEWARNAAN LANGSUNG GRAM SWAB TELINGA","subsubpoli":"GRAM","modaliti":"SWAB TELINGA","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":164,"poli":"Mikrobiologi","subpoli":"B.2.4 PEWARNAAN LANGSUNG GRAM SWAB MATA","subsubpoli":"GRAM","modaliti":"SWAB MATA","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":165,"poli":"Mikrobiologi","subpoli":"B.2.5 PEWARNAAN LANGSUNG GRAM SWAB KULIT","subsubpoli":"GRAM","modaliti":"KULIT","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":228,"poli":"Mikrobiologi","subpoli":"G.2.9 PEWARNAAN LANGSUNG GRAM CAIRAN ASPIRASI ABSES HEPAR","subsubpoli":"GRAM","modaliti":"ABSES HEPAR","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":229,"poli":"Mikrobiologi","subpoli":"H.2.1 PEWARNAAN LANGSUNG GRAM SPUTUM","subsubpoli":"GRAM","modaliti":"SPUTUM","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":234,"poli":"Mikrobiologi","subpoli":"I.2.1 PEWARNAAN LANGSUNG GRAM PUS","subsubpoli":"GRAM","modaliti":"PUS","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":63,"poli":"Mikrobiologi","subpoli":"2.3.2 PEWARNAAN GRAM SEKRET","subsubpoli":"GRAM","modaliti":"SEKRET","modaliti2":"1","created_at":"2025-09-14 04:54:56","updated_at":"2025-10-31 14:25:36"},
|
||||||
|
{"id":67,"poli":"Mikrobiologi","subpoli":"5.3.5 KULTUR JAMUR SWAB TENGGOROK","subsubpoli":"JAMUR","modaliti":"SWAB TENGGOROKAN","modaliti2":"14","created_at":"2025-11-17 10:34:43","updated_at":"2025-11-18 09:58:17"},
|
||||||
|
{"id":58,"poli":"Mikrobiologi","subpoli":"12.3.3 PEWARNAAN KOH JAMUR","subsubpoli":"KOH","modaliti":"JARINGAN","modaliti2":"1","created_at":"2025-09-09 19:15:11","updated_at":"2025-09-09 19:15:11"},
|
||||||
|
{"id":220,"poli":"Mikrobiologi","subpoli":"G.2.23 PEWARNAAN LANGSUNG KOH CAIRAN ASPIRASI SENDI","subsubpoli":"KOH","modaliti":"CAIRAN ASPIRASI","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":222,"poli":"Mikrobiologi","subpoli":"G.2.3 PEWARNAAN LANGSUNG KOH CAIRAN ASPIRASI OTAK","subsubpoli":"KOH","modaliti":"LCS","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":226,"poli":"Mikrobiologi","subpoli":"G.2.7 PEWARNAAN LANGSUNG KOH CAIRAN ASPIRASI TUBO OVARIAL","subsubpoli":"KOH","modaliti":"TUBO O","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":231,"poli":"Mikrobiologi","subpoli":"H.2.3 PEWARNAAN LANGSUNG KOH SPUTUM","subsubpoli":"KOH","modaliti":"SPUTUM","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":236,"poli":"Mikrobiologi","subpoli":"I.2.3 PEWARNAAN LANGSUNG KOH PUS","subsubpoli":"KOH","modaliti":"PUS","modaliti2":"1","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":237,"poli":"Mikrobiologi","subpoli":"I.2.4 PEMRIKSAAN KULTUR BAKTERI PUS AEROB & UJI KEPEKAAN AB","subsubpoli":"KULTUR PUS","modaliti":"PUS","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":232,"poli":"Mikrobiologi","subpoli":"H.2.4 PEMRIKSAAN KULTUR BAKTERI SPUTUM AEROB NON SPESIFIK & UJI KEPEKAAN AB","subsubpoli":"KULTUR SPT","modaliti":"SPUTUM","modaliti2":"3","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":61,"poli":"Mikrobiologi","subpoli":"12.3.7 KULTUR TBC MGIT (AUTOMATIC)","subsubpoli":"KULTUR TB","modaliti":"JARINGAN","modaliti2":"60","created_at":"2025-09-09 19:16:19","updated_at":"2025-09-09 19:16:19"},
|
||||||
|
{"id":68,"poli":"Mikrobiologi","subpoli":"1.3.6 KULTUR TBC MEDIA LJ (KONVENSIONAL)","subsubpoli":"KULTUR TB","modaliti":"URINE","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":69,"poli":"Mikrobiologi","subpoli":"1.3.7 KULTUR TBC MGIT (AUTOMATIC)","subsubpoli":"KULTUR TB","modaliti":"URINE","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":75,"poli":"Mikrobiologi","subpoli":"15.2.1 KULTUR TB MEDIA LJ","subsubpoli":"KULTUR TB","modaliti":"PMDT","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":145,"poli":"Mikrobiologi","subpoli":"8.3.7 KULTUR TBC MGIT (AUTOMATIC)","subsubpoli":"KULTUR TB","modaliti":"MATA","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":152,"poli":"Mikrobiologi","subpoli":"9.3.5 KULTUR TBC MEDIA LJ (KONVENSIONAL)","subsubpoli":"KULTUR TB","modaliti":"FECES","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":153,"poli":"Mikrobiologi","subpoli":"9.3.6 KULTUR TBC MGIT (AUTOMATIC)","subsubpoli":"KULTUR TB","modaliti":"FECES","modaliti2":"60","created_at":"2025-09-04 04:09:47","updated_at":"2025-09-09 08:48:42"},
|
||||||
|
{"id":70,"poli":"Mikrobiologi","subpoli":"3.3.11 PEWARNAAN NEGATIVE STAINING INDIAN INK","subsubpoli":null,"modaliti":null,"modaliti2":null,"created_at":"2026-01-29 04:26:10","updated_at":"2026-01-29 04:26:10"},
|
||||||
|
{"id":71,"poli":"Mikrobiologi","subpoli":"3.3.6 KULTUR TBC MEDIA LJ (KONVENSIONAL)","subsubpoli":null,"modaliti":null,"modaliti2":null,"created_at":"2026-04-13 00:24:12","updated_at":"2026-04-13 00:24:12"}
|
||||||
|
]
|
||||||
Executable
+141
@@ -0,0 +1,141 @@
|
|||||||
|
[
|
||||||
|
{"id":32,"poli":"Core","ruangan":"R.TIND. SPIROMETRI - IRNA I","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":33,"poli":"Core","ruangan":"R.TIND. ECHO - IPJT","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":34,"poli":"Core","ruangan":"IGD - P1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":35,"poli":"Core","ruangan":"IGD - P2 COVID","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":36,"poli":"Core","ruangan":"IGD - TRIASE COVID","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":37,"poli":"Core","ruangan":"R.TIND. THT - IRNA II","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":38,"poli":"Core","ruangan":"R.BUGENVILE - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":39,"poli":"Core","ruangan":"R.HCU INFEKSI MELATI - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":40,"poli":"Core","ruangan":"R. ESWL","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":41,"poli":"Core","ruangan":"R.TIND. NEUROLOGI - IRNA 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":42,"poli":"Core","ruangan":"R.TIND. CAPD - INST. DIALISIS","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":43,"poli":"Core","ruangan":"R.BENGAWAN SOLO - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":44,"poli":"Core","ruangan":"OK LOKAL R. 21","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":45,"poli":"Core","ruangan":"R. USG","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":46,"poli":"Core","ruangan":"R.TINDAKAN KEMOTERAPI - IRJ","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":47,"poli":"Core","ruangan":"R.TIND. TRANSFUSI THALASEMIA - IRNA IV","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":48,"poli":"Core","ruangan":"R.HCU SARANGAN - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":49,"poli":"Core","ruangan":"ANESTESI dan TERAPI INTENSIF","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":50,"poli":"Core","ruangan":"IGD - TRIASE","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":51,"poli":"Core","ruangan":"THT","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":52,"poli":"Core","ruangan":"MATA","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":53,"poli":"Core","ruangan":"R.TIND. BEDAH - IBS","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":54,"poli":"Core","ruangan":"R.TIND. REHABILITASI JANTUNG - IPJT","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":55,"poli":"Core","ruangan":"PARU","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":56,"poli":"Core","ruangan":"JANTUNG","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":57,"poli":"Core","ruangan":"KULIT","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":58,"poli":"Core","ruangan":"REHAB MEDIK","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":59,"poli":"Core","ruangan":"SARAF","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":60,"poli":"Core","ruangan":"GIZI","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":61,"poli":"Core","ruangan":"OBG","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":62,"poli":"Core","ruangan":"ONKOLOGI","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":63,"poli":"Core","ruangan":"R.ICU KAPUAS B - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":64,"poli":"Core","ruangan":"KOMPLEMENTER","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":65,"poli":"Core","ruangan":"GCU","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":66,"poli":"Core","ruangan":"HEMATO-ONKOLOGI","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":67,"poli":"Core","ruangan":"HOME CARE","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":68,"poli":"Core","ruangan":"R.BARITO - KLS VIP A","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":69,"poli":"Core","ruangan":"R.BARITO - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":70,"poli":"Core","ruangan":"R.HCU RANU GRATI - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":71,"poli":"Core","ruangan":"IGD - P0","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":72,"poli":"Core","ruangan":"R.SEMERU - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":73,"poli":"Core","ruangan":"RADIOTERAPI","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":74,"poli":"Core","ruangan":"R.HCU CISADANE - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":75,"poli":"Core","ruangan":"KLINIK COVID","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":76,"poli":"Core","ruangan":"KLINIK TB-MDR","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":77,"poli":"Core","ruangan":"KLINIK GIGI & MULUT","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":78,"poli":"Core","ruangan":"R.PARANGTRITIS - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":79,"poli":"Core","ruangan":"R.ICU INFEKSI MELATI - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":80,"poli":"Core","ruangan":"R.KELIMUTU - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":81,"poli":"Core","ruangan":"IGD - P2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":82,"poli":"Core","ruangan":"R.LOSARI - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":83,"poli":"Core","ruangan":"R.HCU BRANTAS - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":84,"poli":"Core","ruangan":"IGD - P3 COVID","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":85,"poli":"Core","ruangan":"SEKSI REKAM MEDIK","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":86,"poli":"Core","ruangan":"R.BENGAWAN SOLO - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":87,"poli":"Core","ruangan":"LAB PATOLOGI ANATOMI","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":88,"poli":"Core","ruangan":"R. BMD","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":89,"poli":"Core","ruangan":"R. KATETERISASI JANTUNG","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":90,"poli":"Core","ruangan":"R. ECHOCARDIOGRAFI DAN IMAGING","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":91,"poli":"Core","ruangan":"R. PREVENSI DAN REHABILITASI JANTUNG","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":92,"poli":"Core","ruangan":"R.TIND. APHARESIS - IRNA 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":93,"poli":"Core","ruangan":"DALAM","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":94,"poli":"Core","ruangan":"R. Konsul Terapi Intensif","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":95,"poli":"Core","ruangan":"ANAK","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":96,"poli":"Core","ruangan":"BEDAH","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":97,"poli":"Core","ruangan":"R. INTENSIF KABER","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":98,"poli":"Core","ruangan":"GIGI DAN MULUT","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":99,"poli":"Core","ruangan":"R.RANU KUMBOLO (BAYI) - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":100,"poli":"Core","ruangan":"R. ECHOCARDIOGRAPHY IRNA 4","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":101,"poli":"Core","ruangan":"PSIKIATRI","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":102,"poli":"Core","ruangan":"R.RINJANI - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":103,"poli":"Core","ruangan":"R.RINJANI - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":104,"poli":"Core","ruangan":"R.RINJANI - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":105,"poli":"Core","ruangan":"R.TIND. UROLOGI - IRNA II","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":106,"poli":"Core","ruangan":"R.CVCU MUSI - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":107,"poli":"Core","ruangan":"IGD - P3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":108,"poli":"Core","ruangan":"R.HCU MAHAKAM - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":109,"poli":"Core","ruangan":"R.BARITO - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":110,"poli":"Core","ruangan":"LAB SENTRAL","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":111,"poli":"Core","ruangan":"R.BUNAKEN - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":112,"poli":"Core","ruangan":"R.KELIMUTU - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":113,"poli":"Core","ruangan":"R.TIND. ENDOSCOPY - IRNA 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":114,"poli":"Core","ruangan":"R.GILI TRAWANGAN - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":115,"poli":"Core","ruangan":"R.GILI TRAWANGAN - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":116,"poli":"Core","ruangan":"R.TONDANO - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":117,"poli":"Core","ruangan":"R.TIND. SPIROMETRI - IRNA IV","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":118,"poli":"Core","ruangan":"R.TIND. REHABILITASI MEDIK - IRM","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":119,"poli":"Core","ruangan":"R.TIND. RADIOTERAPI - INST. RADIOTERAPI","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":120,"poli":"Core","ruangan":"R.TIND. MEDICAL CHECK UP JANTUNG - IPJT","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":121,"poli":"Core","ruangan":"IGD - P0 COVID","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":122,"poli":"Core","ruangan":"R.BARITO - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":123,"poli":"Core","ruangan":"R.TIND. BERSALIN - IRNA III","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":124,"poli":"Core","ruangan":"R.TIND. MATA - IRNA II","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":125,"poli":"Core","ruangan":"FARMASI","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":126,"poli":"Core","ruangan":"IKF DAN MEDIKOLEGAL","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":127,"poli":"Core","ruangan":"R.TIND. BRONCHOSCOPY - IRNA 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":128,"poli":"Core","ruangan":"R.TIND. HEMODIALISIS - INST. DIALISIS","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":129,"poli":"Core","ruangan":"IGD - P1 COVID","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":130,"poli":"Core","ruangan":"INSTALASI PELATIHAN","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":131,"poli":"Core","ruangan":"BIDANG DIKLIT","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":132,"poli":"Core","ruangan":"ITIKOM","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":133,"poli":"Core","ruangan":"BAGIAN UMUM","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":134,"poli":"Core","ruangan":"BAGIAN KEUANGAN & AKUNTANSI","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":135,"poli":"Core","ruangan":"IPL","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":136,"poli":"Core","ruangan":"R.GILI TRAWANGAN - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":137,"poli":"Core","ruangan":"R.TIND. KATETERISASI JANTUNG - IPJT","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":138,"poli":"Core","ruangan":"R.TIND. CAPD - IRNA IV","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":139,"poli":"Core","ruangan":"R.TIND. ECHO - IRNA IV","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":140,"poli":"Core","ruangan":"R.HCU CILIWUNG - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":141,"poli":"Core","ruangan":"R.PICU KRAKATAU - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":142,"poli":"Core","ruangan":"RADIOLOGI","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":143,"poli":"Core","ruangan":"R.BUNAKEN - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":144,"poli":"Core","ruangan":"R.TOBA (BAYI) - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":145,"poli":"Core","ruangan":"R.TOBA (BAYI) KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":146,"poli":"Core","ruangan":"R.NICU MANINJAU - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":147,"poli":"Core","ruangan":"R.GALUNGGUNG - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":148,"poli":"Core","ruangan":"R.PANGANDARAN - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":149,"poli":"Core","ruangan":"R.MAWAR - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":150,"poli":"Core","ruangan":"R.MAWAR - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":151,"poli":"Core","ruangan":"R.TOBA (IBU) - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":152,"poli":"Core","ruangan":"R.BROMO - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":153,"poli":"Core","ruangan":"R.TOBA (IBU) - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":154,"poli":"Core","ruangan":"R.JIMBARAN - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":155,"poli":"Core","ruangan":"R.HCU KAWI - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":156,"poli":"Core","ruangan":"R.NUSA DUA - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":157,"poli":"Core","ruangan":"R.KERINCI - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":158,"poli":"Core","ruangan":"R.KERINCI - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":159,"poli":"Core","ruangan":"RUANG ROE - KLS 2","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":160,"poli":"Core","ruangan":"R.RANU KUMBOLO - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":161,"poli":"Core","ruangan":"R.SINGKARAK - KLS 3","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":162,"poli":"Core","ruangan":"R.LANTAI 2 - KLS I","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":163,"poli":"Core","ruangan":"R.ICU KAPUAS A - KLS 1","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":164,"poli":"Core","ruangan":"R.LANTAI 4 - KLS VIP A","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"id":165,"poli":"Core","ruangan":"KLINIK TB-SO","created_at":"2024-09-23 10:13:14","updated_at":"2024-09-23 10:13:14"},
|
||||||
|
{"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":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"}
|
||||||
|
]
|
||||||
Executable
+7242
File diff suppressed because it is too large
Load diff
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'رسالة استثناء: :message',
|
||||||
|
'exception_trace' => 'تتبع الإستثناء: :trace',
|
||||||
|
'exception_message_title' => 'رسالة استثناء',
|
||||||
|
'exception_trace_title' => 'تتبع الإستثناء',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'أخفق النسخ الاحتياطي لل :application_name',
|
||||||
|
'backup_failed_body' => 'مهم: حدث خطأ أثناء النسخ الاحتياطي :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'نسخ احتياطي جديد ناجح ل :application_name',
|
||||||
|
'backup_successful_subject_title' => 'نجاح النسخ الاحتياطي الجديد!',
|
||||||
|
'backup_successful_body' => 'أخبار عظيمة، نسخة احتياطية جديدة ل :application_name تم إنشاؤها بنجاح على القرص المسمى :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'فشل تنظيف النسخ الاحتياطي للتطبيق :application_name .',
|
||||||
|
'cleanup_failed_body' => 'حدث خطأ أثناء تنظيف النسخ الاحتياطية ل :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'تنظيف النسخ الاحتياطية ل :application_name تمت بنجاح',
|
||||||
|
'cleanup_successful_subject_title' => 'تنظيف النسخ الاحتياطية تم بنجاح!',
|
||||||
|
'cleanup_successful_body' => 'تنظيف النسخ الاحتياطية ل :application_name على القرص المسمى :disk_name تم بنجاح.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'النسخ الاحتياطية ل :application_name على القرص :disk_name صحية',
|
||||||
|
'healthy_backup_found_subject_title' => 'النسخ الاحتياطية ل :application_name صحية',
|
||||||
|
'healthy_backup_found_body' => 'تعتبر النسخ الاحتياطية ل :application_name صحية. عمل جيد!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'مهم: النسخ الاحتياطية ل :application_name غير صحية',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'مهم: النسخ الاحتياطية ل :application_name غير صحية. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'النسخ الاحتياطية ل :application_name على القرص :disk_name غير صحية.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'لا يمكن الوصول إلى وجهة النسخ الاحتياطي. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'لا توجد نسخ احتياطية لهذا التطبيق على الإطلاق.',
|
||||||
|
'unhealthy_backup_found_old' => 'تم إنشاء أحدث النسخ الاحتياطية في :date وتعتبر قديمة جدا.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'عذرا، لا يمكن تحديد سبب دقيق.',
|
||||||
|
'unhealthy_backup_found_full' => 'النسخ الاحتياطية تستخدم الكثير من التخزين. الاستخدام الحالي هو :disk_usage وهو أعلى من الحد المسموح به من :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'لم يتم عمل نسخ احتياطية حتى الآن',
|
||||||
|
'application_name' => 'اسم التطبيق',
|
||||||
|
'backup_name' => 'اسم النسخ الاحتياطي',
|
||||||
|
'disk' => 'القرص',
|
||||||
|
'newest_backup_size' => 'أحدث حجم للنسخ الاحتياطي',
|
||||||
|
'number_of_backups' => 'عدد النسخ الاحتياطية',
|
||||||
|
'total_storage_used' => 'إجمالي مساحة التخزين المستخدمة',
|
||||||
|
'newest_backup_date' => 'أحدث تاريخ النسخ الاحتياطي',
|
||||||
|
'oldest_backup_date' => 'أقدم تاريخ نسخ احتياطي',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Съобщение за изключение: :message',
|
||||||
|
'exception_trace' => 'Проследяване на изключение: :trace',
|
||||||
|
'exception_message_title' => 'Съобщение за изключение',
|
||||||
|
'exception_trace_title' => 'Проследяване на изключение',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Неуспешно резервно копие на :application_name',
|
||||||
|
'backup_failed_body' => 'Важно: Възникна грешка при архивиране на :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Успешно ново резервно копие на :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Успешно ново резервно копие!',
|
||||||
|
'backup_successful_body' => 'Чудесни новини, ново резервно копие на :application_name беше успешно създадено на диска с име :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Почистването на резервните копия на :application_name не бе успешно.',
|
||||||
|
'cleanup_failed_body' => 'Възникна грешка при почистването на резервните копия на :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Почистването на архивите на :application_name е успешно',
|
||||||
|
'cleanup_successful_subject_title' => 'Почистването на резервните копия е успешно!',
|
||||||
|
'cleanup_successful_body' => 'Почистването на резервни копия на :application_name на диска с име :disk_name беше успешно.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Резервните копия за :application_name на диск :disk_name са здрави',
|
||||||
|
'healthy_backup_found_subject_title' => 'Резервните копия за :application_name са здрави',
|
||||||
|
'healthy_backup_found_body' => 'Резервните копия за :application_name се считат за здрави. Добра работа!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Важно: Резервните копия за :application_name не са здрави',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Важно: Резервните копия за :application_name не са здрави. :проблем',
|
||||||
|
'unhealthy_backup_found_body' => 'Резервните копия за :application_name на диск :disk_name не са здрави.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Дестинацията за резервни копия не може да бъде достигната. :грешка',
|
||||||
|
'unhealthy_backup_found_empty' => 'Изобщо няма резервни копия на това приложение.',
|
||||||
|
'unhealthy_backup_found_old' => 'Последното резервно копие, направено на :date, се счита за твърде старо.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'За съжаление не може да се определи точна причина.',
|
||||||
|
'unhealthy_backup_found_full' => 'Резервните копия използват твърде много място за съхранение. Текущото използване е :disk_usage, което е по-високо от разрешеното ограничение на :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Все още не са правени резервни копия',
|
||||||
|
'application_name' => 'Име на приложението',
|
||||||
|
'backup_name' => 'Име на резервно копие',
|
||||||
|
'disk' => 'Диск',
|
||||||
|
'newest_backup_size' => 'Най-новият размер на резервно копие',
|
||||||
|
'number_of_backups' => 'Брой резервни копия',
|
||||||
|
'total_storage_used' => 'Общо използвано дисково пространство',
|
||||||
|
'newest_backup_date' => 'Най-нова дата на резервно копие',
|
||||||
|
'oldest_backup_date' => 'Най-старата дата на резервно копие',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'এক্সসেপশন বার্তা: :message',
|
||||||
|
'exception_trace' => 'এক্সসেপশন ট্রেস: :trace',
|
||||||
|
'exception_message_title' => 'এক্সসেপশন message',
|
||||||
|
'exception_trace_title' => 'এক্সসেপশন ট্রেস',
|
||||||
|
|
||||||
|
'backup_failed_subject' => ':application_name এর ব্যাকআপ ব্যর্থ হয়েছে।',
|
||||||
|
'backup_failed_body' => 'গুরুত্বপূর্ণঃ :application_name ব্যাক আপ করার সময় একটি ত্রুটি ঘটেছে।',
|
||||||
|
|
||||||
|
'backup_successful_subject' => ':application_name এর নতুন ব্যাকআপ সফল হয়েছে।',
|
||||||
|
'backup_successful_subject_title' => 'নতুন ব্যাকআপ সফল হয়েছে!',
|
||||||
|
'backup_successful_body' => 'খুশির খবর, :application_name এর নতুন ব্যাকআপ :disk_name ডিস্কে সফলভাবে তৈরি হয়েছে।',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => ':application_name ব্যাকআপগুলি সাফ করতে ব্যর্থ হয়েছে।',
|
||||||
|
'cleanup_failed_body' => ':application_name ব্যাকআপগুলি সাফ করার সময় একটি ত্রুটি ঘটেছে।',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => ':application_name এর ব্যাকআপগুলি সফলভাবে সাফ করা হয়েছে।',
|
||||||
|
'cleanup_successful_subject_title' => 'ব্যাকআপগুলি সফলভাবে সাফ করা হয়েছে!',
|
||||||
|
'cleanup_successful_body' => ':application_name এর ব্যাকআপগুলি :disk_name ডিস্ক থেকে সফলভাবে সাফ করা হয়েছে।',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => ':application_name এর ব্যাকআপগুলি :disk_name ডিস্কে স্বাস্থ্যকর অবস্থায় আছে।',
|
||||||
|
'healthy_backup_found_subject_title' => ':application_name এর ব্যাকআপগুলি স্বাস্থ্যকর অবস্থায় আছে।',
|
||||||
|
'healthy_backup_found_body' => ':application_name এর ব্যাকআপগুলি স্বাস্থ্যকর বিবেচনা করা হচ্ছে। Good job!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'গুরুত্বপূর্ণঃ :application_name এর ব্যাকআপগুলি অস্বাস্থ্যকর অবস্থায় আছে।',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'গুরুত্বপূর্ণঃ :application_name এর ব্যাকআপগুলি অস্বাস্থ্যকর অবস্থায় আছে। :problem',
|
||||||
|
'unhealthy_backup_found_body' => ':disk_name ডিস্কের :application_name এর ব্যাকআপগুলি অস্বাস্থ্যকর অবস্থায় আছে।',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'ব্যাকআপ গন্তব্যে পৌঁছানো যায় নি। :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'এই অ্যাপ্লিকেশনটির কোনও ব্যাকআপ নেই।',
|
||||||
|
'unhealthy_backup_found_old' => 'সর্বশেষ ব্যাকআপ যেটি :date এই তারিখে করা হয়েছে, সেটি খুব পুরানো।',
|
||||||
|
'unhealthy_backup_found_unknown' => 'দুঃখিত, সঠিক কারণ নির্ধারণ করা সম্ভব হয়নি।',
|
||||||
|
'unhealthy_backup_found_full' => 'ব্যাকআপগুলি অতিরিক্ত স্টোরেজ ব্যবহার করছে। বর্তমান ব্যবহারের পরিমান :disk_usage যা অনুমোদিত সীমা :disk_limit এর বেশি।',
|
||||||
|
|
||||||
|
'no_backups_info' => 'কোনো ব্যাকআপ এখনও তৈরি হয়নি',
|
||||||
|
'application_name' => 'আবেদনের নাম',
|
||||||
|
'backup_name' => 'ব্যাকআপের নাম',
|
||||||
|
'disk' => 'ডিস্ক',
|
||||||
|
'newest_backup_size' => 'নতুন ব্যাকআপ আকার',
|
||||||
|
'number_of_backups' => 'ব্যাকআপের সংখ্যা',
|
||||||
|
'total_storage_used' => 'ব্যবহৃত মোট সঞ্চয়স্থান',
|
||||||
|
'newest_backup_date' => 'নতুন ব্যাকআপের তারিখ',
|
||||||
|
'oldest_backup_date' => 'পুরানো ব্যাকআপের তারিখ',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Zpráva výjimky: :message',
|
||||||
|
'exception_trace' => 'Stopa výjimky: :trace',
|
||||||
|
'exception_message_title' => 'Zpráva výjimky',
|
||||||
|
'exception_trace_title' => 'Stopa výjimky',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Záloha :application_name neuspěla',
|
||||||
|
'backup_failed_body' => 'Důležité: Při záloze :application_name se vyskytla chyba',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Úspěšná nová záloha :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Úspěšná nová záloha!',
|
||||||
|
'backup_successful_body' => 'Dobrá zpráva, na disku jménem :disk_name byla úspěšně vytvořena nová záloha :application_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Vyčištění záloh :application_name neuspělo.',
|
||||||
|
'cleanup_failed_body' => 'Při čištění záloh :application_name se vyskytla chyba',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Vyčištění záloh :application_name úspěšné',
|
||||||
|
'cleanup_successful_subject_title' => 'Vyčištění záloh bylo úspěšné!',
|
||||||
|
'cleanup_successful_body' => 'Vyčištění záloh :application_name na disku jménem :disk_name bylo úspěšné.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Zálohy pro :application_name na disku :disk_name jsou zdravé',
|
||||||
|
'healthy_backup_found_subject_title' => 'Zálohy pro :application_name jsou zdravé',
|
||||||
|
'healthy_backup_found_body' => 'Zálohy pro :application_name jsou považovány za zdravé. Dobrá práce!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Důležité: Zálohy pro :application_name jsou nezdravé',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Důležité: Zálohy pro :application_name jsou nezdravé. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Zálohy pro :application_name na disku :disk_name jsou nezdravé.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Nelze se dostat k cíli zálohy. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Tato aplikace nemá vůbec žádné zálohy.',
|
||||||
|
'unhealthy_backup_found_old' => 'Poslední záloha vytvořená dne :date je považována za příliš starou.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Omlouváme se, nemůžeme určit přesný důvod.',
|
||||||
|
'unhealthy_backup_found_full' => 'Zálohy zabírají příliš mnoho místa na disku. Aktuální využití disku je :disk_usage, což je vyšší než povolený limit :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Zatím nebyly vytvořeny žádné zálohy',
|
||||||
|
'application_name' => 'Název aplikace',
|
||||||
|
'backup_name' => 'Název zálohy',
|
||||||
|
'disk' => 'Disk',
|
||||||
|
'newest_backup_size' => 'Velikost nejnovější zálohy',
|
||||||
|
'number_of_backups' => 'Počet záloh',
|
||||||
|
'total_storage_used' => 'Celková využitá kapacita úložiště',
|
||||||
|
'newest_backup_date' => 'Datum nejnovější zálohy',
|
||||||
|
'oldest_backup_date' => 'Datum nejstarší zálohy',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Fejlbesked: :message',
|
||||||
|
'exception_trace' => 'Fejl trace: :trace',
|
||||||
|
'exception_message_title' => 'Fejlbesked',
|
||||||
|
'exception_trace_title' => 'Fejl trace',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Backup af :application_name fejlede',
|
||||||
|
'backup_failed_body' => 'Vigtigt: Der skete en fejl under backup af :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Ny backup af :application_name oprettet',
|
||||||
|
'backup_successful_subject_title' => 'Ny backup!',
|
||||||
|
'backup_successful_body' => 'Gode nyheder - der blev oprettet en ny backup af :application_name på disken :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Oprydning af backups for :application_name fejlede.',
|
||||||
|
'cleanup_failed_body' => 'Der skete en fejl under oprydning af backups for :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Oprydning af backups for :application_name gennemført',
|
||||||
|
'cleanup_successful_subject_title' => 'Backup oprydning gennemført!',
|
||||||
|
'cleanup_successful_body' => 'Oprydningen af backups for :application_name på disken :disk_name er gennemført.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Alle backups for :application_name på disken :disk_name er OK',
|
||||||
|
'healthy_backup_found_subject_title' => 'Alle backups for :application_name er OK',
|
||||||
|
'healthy_backup_found_body' => 'Alle backups for :application_name er ok. Godt gået!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Vigtigt: Backups for :application_name fejlbehæftede',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Vigtigt: Backups for :application_name er fejlbehæftede. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Backups for :application_name på disken :disk_name er fejlbehæftede.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Backup destinationen kunne ikke findes. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Denne applikation har ingen backups overhovedet.',
|
||||||
|
'unhealthy_backup_found_old' => 'Den seneste backup fra :date er for gammel.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Beklager, en præcis årsag kunne ikke findes.',
|
||||||
|
'unhealthy_backup_found_full' => 'Backups bruger for meget plads. Nuværende disk forbrug er :disk_usage, hvilket er mere end den tilladte grænse på :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Der blev ikke foretaget nogen sikkerhedskopier endnu',
|
||||||
|
'application_name' => 'Applikationens navn',
|
||||||
|
'backup_name' => 'Backup navn',
|
||||||
|
'disk' => 'Disk',
|
||||||
|
'newest_backup_size' => 'Nyeste backup-størrelse',
|
||||||
|
'number_of_backups' => 'Antal sikkerhedskopier',
|
||||||
|
'total_storage_used' => 'Samlet lagerplads brugt',
|
||||||
|
'newest_backup_date' => 'Nyeste backup-størrelse',
|
||||||
|
'oldest_backup_date' => 'Ældste backup-størrelse',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Fehlermeldung: :message',
|
||||||
|
'exception_trace' => 'Fehlerverfolgung: :trace',
|
||||||
|
'exception_message_title' => 'Fehlermeldung',
|
||||||
|
'exception_trace_title' => 'Fehlerverfolgung',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Backup von :application_name konnte nicht erstellt werden',
|
||||||
|
'backup_failed_body' => 'Wichtig: Beim Backup von :application_name ist ein Fehler aufgetreten',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Erfolgreiches neues Backup von :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Erfolgreiches neues Backup!',
|
||||||
|
'backup_successful_body' => 'Gute Nachrichten, ein neues Backup von :application_name wurde erfolgreich erstellt und in :disk_name gepeichert.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Aufräumen der Backups von :application_name schlug fehl.',
|
||||||
|
'cleanup_failed_body' => 'Beim aufräumen der Backups von :application_name ist ein Fehler aufgetreten',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Aufräumen der Backups von :application_name backups erfolgreich',
|
||||||
|
'cleanup_successful_subject_title' => 'Aufräumen der Backups erfolgreich!',
|
||||||
|
'cleanup_successful_body' => 'Aufräumen der Backups von :application_name in :disk_name war erfolgreich.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Die Backups von :application_name in :disk_name sind gesund',
|
||||||
|
'healthy_backup_found_subject_title' => 'Die Backups von :application_name sind Gesund',
|
||||||
|
'healthy_backup_found_body' => 'Die Backups von :application_name wurden als gesund eingestuft. Gute Arbeit!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Wichtig: Die Backups für :application_name sind nicht gesund',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Wichtig: Die Backups für :application_name sind ungesund. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Die Backups für :application_name in :disk_name sind ungesund.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Das Backup Ziel konnte nicht erreicht werden. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Es gibt für die Anwendung noch gar keine Backups.',
|
||||||
|
'unhealthy_backup_found_old' => 'Das letzte Backup am :date ist zu lange her.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Sorry, ein genauer Grund konnte nicht gefunden werden.',
|
||||||
|
'unhealthy_backup_found_full' => 'Die Backups verbrauchen zu viel Platz. Aktuell wird :disk_usage belegt, dass ist höher als das erlaubte Limit von :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Bisher keine Backups vorhanden',
|
||||||
|
'application_name' => 'Applikationsname',
|
||||||
|
'backup_name' => 'Backup Name',
|
||||||
|
'disk' => 'Speicherort',
|
||||||
|
'newest_backup_size' => 'Neuste Backup-Größe',
|
||||||
|
'number_of_backups' => 'Anzahl Backups',
|
||||||
|
'total_storage_used' => 'Gesamter genutzter Speicherplatz',
|
||||||
|
'newest_backup_date' => 'Neustes Backup',
|
||||||
|
'oldest_backup_date' => 'Ältestes Backup',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Exception message: :message',
|
||||||
|
'exception_trace' => 'Exception trace: :trace',
|
||||||
|
'exception_message_title' => 'Exception message',
|
||||||
|
'exception_trace_title' => 'Exception trace',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Failed backup of :application_name',
|
||||||
|
'backup_failed_body' => 'Important: An error occurred while backing up :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Successful new backup of :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Successful new backup!',
|
||||||
|
'backup_successful_body' => 'Great news, a new backup of :application_name was successfully created on the disk named :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Cleaning up the backups of :application_name failed.',
|
||||||
|
'cleanup_failed_body' => 'An error occurred while cleaning up the backups of :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Clean up of :application_name backups successful',
|
||||||
|
'cleanup_successful_subject_title' => 'Clean up of backups successful!',
|
||||||
|
'cleanup_successful_body' => 'The clean up of the :application_name backups on the disk named :disk_name was successful.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'The backups for :application_name on disk :disk_name are healthy',
|
||||||
|
'healthy_backup_found_subject_title' => 'The backups for :application_name are healthy',
|
||||||
|
'healthy_backup_found_body' => 'The backups for :application_name are considered healthy. Good job!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Important: The backups for :application_name are unhealthy',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Important: The backups for :application_name are unhealthy. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'The backups for :application_name on disk :disk_name are unhealthy.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'The backup destination cannot be reached. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'There are no backups of this application at all.',
|
||||||
|
'unhealthy_backup_found_old' => 'The latest backup made on :date is considered too old.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Sorry, an exact reason cannot be determined.',
|
||||||
|
'unhealthy_backup_found_full' => 'The backups are using too much storage. Current usage is :disk_usage which is higher than the allowed limit of :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'No backups were made yet',
|
||||||
|
'application_name' => 'Application name',
|
||||||
|
'backup_name' => 'Backup name',
|
||||||
|
'disk' => 'Disk',
|
||||||
|
'newest_backup_size' => 'Newest backup size',
|
||||||
|
'number_of_backups' => 'Number of backups',
|
||||||
|
'total_storage_used' => 'Total storage used',
|
||||||
|
'newest_backup_date' => 'Newest backup date',
|
||||||
|
'oldest_backup_date' => 'Oldest backup date',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Mensaje de la excepción: :message',
|
||||||
|
'exception_trace' => 'Traza de la excepción: :trace',
|
||||||
|
'exception_message_title' => 'Mensaje de la excepción',
|
||||||
|
'exception_trace_title' => 'Traza de la excepción',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Copia de seguridad de :application_name fallida',
|
||||||
|
'backup_failed_body' => 'Importante: Ocurrió un error al realizar la copia de seguridad de :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Se completó con éxito la copia de seguridad de :application_name',
|
||||||
|
'backup_successful_subject_title' => '¡Nueva copia de seguridad creada con éxito!',
|
||||||
|
'backup_successful_body' => 'Buenas noticias, una nueva copia de seguridad de :application_name fue creada con éxito en el disco llamado :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'La limpieza de copias de seguridad de :application_name falló.',
|
||||||
|
'cleanup_failed_body' => 'Ocurrió un error mientras se realizaba la limpieza de copias de seguridad de :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'La limpieza de copias de seguridad de :application_name se completó con éxito',
|
||||||
|
'cleanup_successful_subject_title' => '!Limpieza de copias de seguridad completada con éxito!',
|
||||||
|
'cleanup_successful_body' => 'La limpieza de copias de seguridad de :application_name en el disco llamado :disk_name se completo con éxito.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Las copias de seguridad de :application_name en el disco :disk_name están en buen estado',
|
||||||
|
'healthy_backup_found_subject_title' => 'Las copias de seguridad de :application_name están en buen estado',
|
||||||
|
'healthy_backup_found_body' => 'Las copias de seguridad de :application_name se consideran en buen estado. ¡Buen trabajo!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Importante: Las copias de seguridad de :application_name están en mal estado',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Importante: Las copias de seguridad de :application_name están en mal estado. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Las copias de seguridad de :application_name en el disco :disk_name están en mal estado.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'No se puede acceder al destino de la copia de seguridad. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'No existe ninguna copia de seguridad de esta aplicación.',
|
||||||
|
'unhealthy_backup_found_old' => 'La última copia de seguriad hecha en :date es demasiado antigua.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Lo siento, no es posible determinar la razón exacta.',
|
||||||
|
'unhealthy_backup_found_full' => 'Las copias de seguridad están ocupando demasiado espacio. El espacio utilizado actualmente es :disk_usage el cual es mayor que el límite permitido de :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Aún no se hicieron copias de seguridad',
|
||||||
|
'application_name' => 'Nombre de la aplicación',
|
||||||
|
'backup_name' => 'Nombre de la copia de seguridad',
|
||||||
|
'disk' => 'Disco',
|
||||||
|
'newest_backup_size' => 'Tamaño de copia de seguridad más reciente',
|
||||||
|
'number_of_backups' => 'Número de copias de seguridad',
|
||||||
|
'total_storage_used' => 'Almacenamiento total utilizado',
|
||||||
|
'newest_backup_date' => 'Fecha de la copia de seguridad más reciente',
|
||||||
|
'oldest_backup_date' => 'Fecha de la copia de seguridad más antigua',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'پیغام خطا: :message',
|
||||||
|
'exception_trace' => 'جزییات خطا: :trace',
|
||||||
|
'exception_message_title' => 'پیغام خطا',
|
||||||
|
'exception_trace_title' => 'جزییات خطا',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'پشتیبانگیری :application_name با خطا مواجه شد.',
|
||||||
|
'backup_failed_body' => 'پیغام مهم: هنگام پشتیبانگیری از :application_name خطایی رخ داده است. ',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'نسخه پشتیبان جدید :application_name با موفقیت ساخته شد.',
|
||||||
|
'backup_successful_subject_title' => 'پشتیبانگیری موفق!',
|
||||||
|
'backup_successful_body' => 'خبر خوب، به تازگی نسخه پشتیبان :application_name روی دیسک :disk_name با موفقیت ساخته شد. ',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'پاکسازی نسخه پشتیبان :application_name انجام نشد.',
|
||||||
|
'cleanup_failed_body' => 'هنگام پاکسازی نسخه پشتیبان :application_name خطایی رخ داده است.',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'پاکسازی نسخه پشتیبان :application_name با موفقیت انجام شد.',
|
||||||
|
'cleanup_successful_subject_title' => 'پاکسازی نسخه پشتیبان!',
|
||||||
|
'cleanup_successful_body' => 'پاکسازی نسخه پشتیبان :application_name روی دیسک :disk_name با موفقیت انجام شد.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'نسخه پشتیبان :application_name روی دیسک :disk_name سالم بود.',
|
||||||
|
'healthy_backup_found_subject_title' => 'نسخه پشتیبان :application_name سالم بود.',
|
||||||
|
'healthy_backup_found_body' => 'نسخه پشتیبان :application_name به نظر سالم میاد. دمت گرم!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'خبر مهم: نسخه پشتیبان :application_name سالم نبود.',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'خبر مهم: نسخه پشتیبان :application_name سالم نبود. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'نسخه پشتیبان :application_name روی دیسک :disk_name سالم نبود.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'مقصد پشتیبانگیری در دسترس نبود. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'برای این برنامه هیچ نسخه پشتیبانی وجود ندارد.',
|
||||||
|
'unhealthy_backup_found_old' => 'آخرین نسخه پشتیبان برای تاریخ :date است، که به نظر خیلی قدیمی میاد. ',
|
||||||
|
'unhealthy_backup_found_unknown' => 'متاسفانه دلیل دقیقی قابل تعیین نیست.',
|
||||||
|
'unhealthy_backup_found_full' => 'نسخههای پشتیبان حجم زیادی اشغال کردهاند. میزان دیسک استفادهشده :disk_usage است که از میزان مجاز :disk_limit فراتر رفته است. ',
|
||||||
|
|
||||||
|
'no_backups_info' => 'هنوز نسخه پشتیبان تهیه نشده است',
|
||||||
|
'application_name' => 'نام نرمافزار',
|
||||||
|
'backup_name' => 'نام نسخه پشتیبان',
|
||||||
|
'disk' => 'دیسک',
|
||||||
|
'newest_backup_size' => 'اندازه جدیدترین نسخه پشتیبان',
|
||||||
|
'number_of_backups' => 'تعداد نسخههای پشتیبان',
|
||||||
|
'total_storage_used' => 'کل فضای ذخیرهسازی استفادهشده',
|
||||||
|
'newest_backup_date' => 'تاریخ جدیدترین نسخه پشتیبان',
|
||||||
|
'oldest_backup_date' => 'تاریخ قدیمیترین نسخه پشتیبان',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Virheilmoitus: :message',
|
||||||
|
'exception_trace' => 'Virhe, jäljitys: :trace',
|
||||||
|
'exception_message_title' => 'Virheilmoitus',
|
||||||
|
'exception_trace_title' => 'Virheen jäljitys',
|
||||||
|
|
||||||
|
'backup_failed_subject' => ':application_name varmuuskopiointi epäonnistui',
|
||||||
|
'backup_failed_body' => 'HUOM!: :application_name varmuuskoipionnissa tapahtui virhe',
|
||||||
|
|
||||||
|
'backup_successful_subject' => ':application_name varmuuskopioitu onnistuneesti',
|
||||||
|
'backup_successful_subject_title' => 'Uusi varmuuskopio!',
|
||||||
|
'backup_successful_body' => 'Hyviä uutisia! :application_name on varmuuskopioitu levylle :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => ':application_name varmuuskopioiden poistaminen epäonnistui.',
|
||||||
|
'cleanup_failed_body' => ':application_name varmuuskopioiden poistamisessa tapahtui virhe.',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => ':application_name varmuuskopiot poistettu onnistuneesti',
|
||||||
|
'cleanup_successful_subject_title' => 'Varmuuskopiot poistettu onnistuneesti!',
|
||||||
|
'cleanup_successful_body' => ':application_name varmuuskopiot poistettu onnistuneesti levyltä :disk_name.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => ':application_name varmuuskopiot levyllä :disk_name ovat kunnossa',
|
||||||
|
'healthy_backup_found_subject_title' => ':application_name varmuuskopiot ovat kunnossa',
|
||||||
|
'healthy_backup_found_body' => ':application_name varmuuskopiot ovat kunnossa. Hieno homma!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'HUOM!: :application_name varmuuskopiot ovat vialliset',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'HUOM!: :application_name varmuuskopiot ovat vialliset. :problem',
|
||||||
|
'unhealthy_backup_found_body' => ':application_name varmuuskopiot levyllä :disk_name ovat vialliset.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Varmuuskopioiden kohdekansio ei ole saatavilla. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Tästä sovelluksesta ei ole varmuuskopioita.',
|
||||||
|
'unhealthy_backup_found_old' => 'Viimeisin varmuuskopio, luotu :date, on liian vanha.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Virhe, tarkempaa tietoa syystä ei valitettavasti ole saatavilla.',
|
||||||
|
'unhealthy_backup_found_full' => 'Varmuuskopiot vievät liikaa levytilaa. Tällä hetkellä käytössä :disk_usage, mikä on suurempi kuin sallittu tilavuus (:disk_limit).',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Varmuuskopioita ei vielä tehty',
|
||||||
|
'application_name' => 'Sovelluksen nimi',
|
||||||
|
'backup_name' => 'Varmuuskopion nimi',
|
||||||
|
'disk' => 'Levy',
|
||||||
|
'newest_backup_size' => 'Uusin varmuuskopion koko',
|
||||||
|
'number_of_backups' => 'Varmuuskopioiden määrä',
|
||||||
|
'total_storage_used' => 'Käytetty tallennustila yhteensä',
|
||||||
|
'newest_backup_date' => 'Uusin varmuuskopion koko',
|
||||||
|
'oldest_backup_date' => 'Vanhin varmuuskopion koko',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => "Message de l'exception : :message",
|
||||||
|
'exception_trace' => "Trace de l'exception : :trace",
|
||||||
|
'exception_message_title' => "Message de l'exception",
|
||||||
|
'exception_trace_title' => "Trace de l'exception",
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Échec de la sauvegarde de :application_name',
|
||||||
|
'backup_failed_body' => 'Important : Une erreur est survenue lors de la sauvegarde de :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Succès de la sauvegarde de :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Sauvegarde créée avec succès !',
|
||||||
|
'backup_successful_body' => 'Bonne nouvelle, une nouvelle sauvegarde de :application_name a été créée avec succès sur le disque nommé :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Le nettoyage des sauvegardes de :application_name a echoué.',
|
||||||
|
'cleanup_failed_body' => 'Une erreur est survenue lors du nettoyage des sauvegardes de :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Succès du nettoyage des sauvegardes de :application_name',
|
||||||
|
'cleanup_successful_subject_title' => 'Sauvegardes nettoyées avec succès !',
|
||||||
|
'cleanup_successful_body' => 'Le nettoyage des sauvegardes de :application_name sur le disque nommé :disk_name a été effectué avec succès.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Les sauvegardes pour :application_name sur le disque :disk_name sont saines',
|
||||||
|
'healthy_backup_found_subject_title' => 'Les sauvegardes pour :application_name sont saines',
|
||||||
|
'healthy_backup_found_body' => 'Les sauvegardes pour :application_name sont considérées saines. Bon travail !',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Important : Les sauvegardes pour :application_name sont corrompues',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Important : Les sauvegardes pour :application_name sont corrompues. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Les sauvegardes pour :application_name sur le disque :disk_name sont corrompues.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => "La destination de la sauvegarde n'est pas accessible. :error",
|
||||||
|
'unhealthy_backup_found_empty' => "Il n'y a aucune sauvegarde pour cette application.",
|
||||||
|
'unhealthy_backup_found_old' => 'La dernière sauvegarde du :date est considérée trop vieille.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Désolé, une raison exacte ne peut être déterminée.',
|
||||||
|
'unhealthy_backup_found_full' => 'Les sauvegardes utilisent trop d\'espace disque. L\'utilisation actuelle est de :disk_usage alors que la limite autorisée est de :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Aucune sauvegarde n\'a encore été effectuée',
|
||||||
|
'application_name' => "Nom de l'application",
|
||||||
|
'backup_name' => 'Nom de la sauvegarde',
|
||||||
|
'disk' => 'Disque',
|
||||||
|
'newest_backup_size' => 'Taille de la sauvegarde la plus récente',
|
||||||
|
'number_of_backups' => 'Nombre de sauvegardes',
|
||||||
|
'total_storage_used' => 'Stockage total utilisé',
|
||||||
|
'newest_backup_date' => 'Date de la sauvegarde la plus récente',
|
||||||
|
'oldest_backup_date' => 'Date de la sauvegarde la plus ancienne',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'הודעת חריגה: :message',
|
||||||
|
'exception_trace' => 'מעקב חריגה: :trace',
|
||||||
|
'exception_message_title' => 'הודעת חריגה',
|
||||||
|
'exception_trace_title' => 'מעקב חריגה',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'כשל בגיבוי של :application_name',
|
||||||
|
'backup_failed_body' => 'חשוב: אירעה שגיאה במהלך גיבוי היישום :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'גיבוי חדש מוצלח של :application_name',
|
||||||
|
'backup_successful_subject_title' => 'גיבוי חדש מוצלח!',
|
||||||
|
'backup_successful_body' => 'חדשות טובות, גיבוי חדש של :application_name נוצר בהצלחה על הדיסק בשם :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'נכשל בניקוי הגיבויים של :application_name',
|
||||||
|
'cleanup_failed_body' => 'אירעה שגיאה במהלך ניקוי הגיבויים של :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'ניקוי הגיבויים של :application_name בוצע בהצלחה',
|
||||||
|
'cleanup_successful_subject_title' => 'ניקוי הגיבויים בוצע בהצלחה!',
|
||||||
|
'cleanup_successful_body' => 'ניקוי הגיבויים של :application_name על הדיסק בשם :disk_name בוצע בהצלחה.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'הגיבויים של :application_name על הדיסק :disk_name תקינים',
|
||||||
|
'healthy_backup_found_subject_title' => 'הגיבויים של :application_name תקינים',
|
||||||
|
'healthy_backup_found_body' => 'הגיבויים של :application_name נחשבים לתקינים. עבודה טובה!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'חשוב: הגיבויים של :application_name אינם תקינים',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'חשוב: הגיבויים של :application_name אינם תקינים. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'הגיבויים של :application_name על הדיסק :disk_name אינם תקינים.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'לא ניתן להגיע ליעד הגיבוי. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'אין גיבויים של היישום הזה בכלל.',
|
||||||
|
'unhealthy_backup_found_old' => 'הגיבוי האחרון שנעשה בתאריך :date נחשב כישן מדי.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'מצטערים, לא ניתן לקבוע סיבה מדויקת.',
|
||||||
|
'unhealthy_backup_found_full' => 'הגיבויים משתמשים בשטח אחסון רב מידי. שימוש הנוכחי הוא :disk_usage, שגבול המותר הוא :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'לא נעשו עדיין גיבויים',
|
||||||
|
'application_name' => 'שם היישום',
|
||||||
|
'backup_name' => 'שם הגיבוי',
|
||||||
|
'disk' => 'דיסק',
|
||||||
|
'newest_backup_size' => 'גודל הגיבוי החדש ביותר',
|
||||||
|
'number_of_backups' => 'מספר הגיבויים',
|
||||||
|
'total_storage_used' => 'סך האחסון המופעל',
|
||||||
|
'newest_backup_date' => 'תאריך הגיבוי החדש ביותר',
|
||||||
|
'oldest_backup_date' => 'תאריך הגיבוי הישן ביותר',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'अपवाद संदेश: :message',
|
||||||
|
'exception_trace' => 'अपवाद निशान: :trace',
|
||||||
|
'exception_message_title' => 'अपवादी संदेश',
|
||||||
|
'exception_trace_title' => 'अपवाद निशान',
|
||||||
|
|
||||||
|
'backup_failed_subject' => ':application_name का बैकअप असफल रहा',
|
||||||
|
'backup_failed_body' => 'जरूरी सुचना: :application_name का बैकअप लेते समय असफल रहे',
|
||||||
|
|
||||||
|
'backup_successful_subject' => ':application_name का बैकअप सफल रहा',
|
||||||
|
'backup_successful_subject_title' => 'बैकअप सफल रहा!',
|
||||||
|
'backup_successful_body' => 'खुशखबर, :application_name का बैकअप :disk_name पर संग्रहित करने मे सफल रहे.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => ':application_name के बैकअप की सफाई असफल रही.',
|
||||||
|
'cleanup_failed_body' => ':application_name के बैकअप की सफाई करते समय कुछ बाधा आयी है.',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => ':application_name के बैकअप की सफाई सफल रही',
|
||||||
|
'cleanup_successful_subject_title' => 'बैकअप की सफाई सफल रही!',
|
||||||
|
'cleanup_successful_body' => ':application_name का बैकअप जो :disk_name नाम की डिस्क पर संग्रहित है, उसकी सफाई सफल रही.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => ':disk_name नाम की डिस्क पर संग्रहित :application_name के बैकअप स्वस्थ है',
|
||||||
|
'healthy_backup_found_subject_title' => ':application_name के सभी बैकअप स्वस्थ है',
|
||||||
|
'healthy_backup_found_body' => 'बहुत बढ़िया! :application_name के सभी बैकअप स्वस्थ है.',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'जरूरी सुचना : :application_name के बैकअप अस्वस्थ है',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'जरूरी सुचना : :application_name के बैकअप :problem के बजेसे अस्वस्थ है',
|
||||||
|
'unhealthy_backup_found_body' => ':disk_name नाम की डिस्क पर संग्रहित :application_name के बैकअप अस्वस्थ है',
|
||||||
|
'unhealthy_backup_found_not_reachable' => ':error के बजेसे बैकअप की मंजिल तक पोहोच नहीं सकते.',
|
||||||
|
'unhealthy_backup_found_empty' => 'इस एप्लीकेशन का कोई भी बैकअप नहीं है.',
|
||||||
|
'unhealthy_backup_found_old' => 'हालहीमें :date को लिया हुआ बैकअप बहुत पुराना है.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'माफ़ कीजिये, सही कारण निर्धारित नहीं कर सकते.',
|
||||||
|
'unhealthy_backup_found_full' => 'सभी बैकअप बहुत ज्यादा जगह का उपयोग कर रहे है. फ़िलहाल सभी बैकअप :disk_usage जगह का उपयोग कर रहे है, जो की :disk_limit अनुमति सीमा से अधिक का है.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'अभी तक कोई बैकअप नहीं बनाया गया था',
|
||||||
|
'application_name' => 'आवेदन का नाम',
|
||||||
|
'backup_name' => 'बैकअप नाम',
|
||||||
|
'disk' => 'डिस्क',
|
||||||
|
'newest_backup_size' => 'नवीनतम बैकअप आकार',
|
||||||
|
'number_of_backups' => 'बैकअप की संख्या',
|
||||||
|
'total_storage_used' => 'उपयोग किया गया कुल संग्रहण',
|
||||||
|
'newest_backup_date' => 'नवीनतम बैकअप आकार',
|
||||||
|
'oldest_backup_date' => 'सबसे पुराना बैकअप आकार',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Greška: :message',
|
||||||
|
'exception_trace' => 'Praćenje greške: :trace',
|
||||||
|
'exception_message_title' => 'Greška',
|
||||||
|
'exception_trace_title' => 'Praćenje greške',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Neuspješno sigurnosno kopiranje za :application_name',
|
||||||
|
'backup_failed_body' => 'Važno: Došlo je do greške prilikom sigurnosnog kopiranja za :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Uspješno sigurnosno kopiranje za :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Uspješno sigurnosno kopiranje!',
|
||||||
|
'backup_successful_body' => 'Nova sigurnosna kopija za :application_name je uspješno spremljena na disk :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Neuspješno čišćenje sigurnosnih kopija za :application_name',
|
||||||
|
'cleanup_failed_body' => 'Došlo je do greške prilikom čišćenja sigurnosnih kopija za :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Uspješno čišćenje sigurnosnih kopija za :application_name',
|
||||||
|
'cleanup_successful_subject_title' => 'Uspješno čišćenje sigurnosnih kopija!',
|
||||||
|
'cleanup_successful_body' => 'Sigurnosne kopije za :application_name su uspješno očišćene s diska :disk_name.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Sigurnosne kopije za :application_name na disku :disk_name su zdrave',
|
||||||
|
'healthy_backup_found_subject_title' => 'Sigurnosne kopije za :application_name su zdrave',
|
||||||
|
'healthy_backup_found_body' => 'Sigurnosne kopije za :application_name se smatraju zdravima. Svaka čast!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Važno: Sigurnosne kopije za :application_name su nezdrave',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Važno: Sigurnosne kopije za :application_name su nezdrave. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Sigurnosne kopije za :application_name na disku :disk_name su nezdrave.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Destinacija sigurnosne kopije nije dohvatljiva. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Nijedna sigurnosna kopija ove aplikacije ne postoji.',
|
||||||
|
'unhealthy_backup_found_old' => 'Zadnja sigurnosna kopija generirana na datum :date smatra se prestarom.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Isprike, ali nije moguće odrediti razlog.',
|
||||||
|
'unhealthy_backup_found_full' => 'Sigurnosne kopije zauzimaju previše prostora. Trenutno zauzeće je :disk_usage što je više od dozvoljenog ograničenja od :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Nema sigurnosnih kopija',
|
||||||
|
'application_name' => 'Naziv aplikacije',
|
||||||
|
'backup_name' => 'Naziv sigurnosne kopije',
|
||||||
|
'disk' => 'Disk',
|
||||||
|
'newest_backup_size' => 'Veličina najnovije sigurnosne kopije',
|
||||||
|
'number_of_backups' => 'Broj sigurnosnih kopija',
|
||||||
|
'total_storage_used' => 'Ukupno zauzeće',
|
||||||
|
'newest_backup_date' => 'Najnovija kopija na datum',
|
||||||
|
'oldest_backup_date' => 'Najstarija kopija na datum',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Pesan pengecualian: :message',
|
||||||
|
'exception_trace' => 'Jejak pengecualian: :trace',
|
||||||
|
'exception_message_title' => 'Pesan pengecualian',
|
||||||
|
'exception_trace_title' => 'Jejak pengecualian',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Gagal backup :application_name',
|
||||||
|
'backup_failed_body' => 'Penting: Sebuah error terjadi ketika membackup :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Backup baru sukses dari :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Backup baru sukses!',
|
||||||
|
'backup_successful_body' => 'Kabar baik, sebuah backup baru dari :application_name sukses dibuat pada disk bernama :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Membersihkan backup dari :application_name yang gagal.',
|
||||||
|
'cleanup_failed_body' => 'Sebuah error teradi ketika membersihkan backup dari :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Sukses membersihkan backup :application_name',
|
||||||
|
'cleanup_successful_subject_title' => 'Sukses membersihkan backup!',
|
||||||
|
'cleanup_successful_body' => 'Pembersihan backup :application_name pada disk bernama :disk_name telah sukses.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Backup untuk :application_name pada disk :disk_name sehat',
|
||||||
|
'healthy_backup_found_subject_title' => 'Backup untuk :application_name sehat',
|
||||||
|
'healthy_backup_found_body' => 'Backup untuk :application_name dipertimbangkan sehat. Kerja bagus!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Penting: Backup untuk :application_name tidak sehat',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Penting: Backup untuk :application_name tidak sehat. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Backup untuk :application_name pada disk :disk_name tidak sehat.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Tujuan backup tidak dapat terjangkau. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Tidak ada backup pada aplikasi ini sama sekali.',
|
||||||
|
'unhealthy_backup_found_old' => 'Backup terakhir dibuat pada :date dimana dipertimbahkan sudah sangat lama.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Maaf, sebuah alasan persisnya tidak dapat ditentukan.',
|
||||||
|
'unhealthy_backup_found_full' => 'Backup menggunakan terlalu banyak kapasitas penyimpanan. Penggunaan terkini adalah :disk_usage dimana lebih besar dari batas yang diperbolehkan yaitu :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Belum ada backup yang dibuat',
|
||||||
|
'application_name' => 'Nama aplikasi',
|
||||||
|
'backup_name' => 'Nama cadangan',
|
||||||
|
'disk' => 'Disk',
|
||||||
|
'newest_backup_size' => 'Ukuran cadangan terbaru',
|
||||||
|
'number_of_backups' => 'Jumlah cadangan',
|
||||||
|
'total_storage_used' => 'Total penyimpanan yang digunakan',
|
||||||
|
'newest_backup_date' => 'Ukuran cadangan terbaru',
|
||||||
|
'oldest_backup_date' => 'Ukuran cadangan tertua',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => "Messaggio dell'eccezione: :message",
|
||||||
|
'exception_trace' => "Traccia dell'eccezione: :trace",
|
||||||
|
'exception_message_title' => "Messaggio dell'eccezione",
|
||||||
|
'exception_trace_title' => "Traccia dell'eccezione",
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Fallito il backup di :application_name',
|
||||||
|
'backup_failed_body' => 'Importante: Si è verificato un errore durante il backup di :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Creato nuovo backup di :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Nuovo backup creato!',
|
||||||
|
'backup_successful_body' => 'Grande notizia, un nuovo backup di :application_name è stato creato con successo sul disco :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Pulizia dei backup di :application_name fallita.',
|
||||||
|
'cleanup_failed_body' => 'Si è verificato un errore durante la pulizia dei backup di :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Pulizia dei backup di :application_name avvenuta con successo',
|
||||||
|
'cleanup_successful_subject_title' => 'Pulizia dei backup avvenuta con successo!',
|
||||||
|
'cleanup_successful_body' => 'La pulizia dei backup di :application_name sul disco :disk_name è avvenuta con successo.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'I backup per :application_name sul disco :disk_name sono sani',
|
||||||
|
'healthy_backup_found_subject_title' => 'I backup per :application_name sono sani',
|
||||||
|
'healthy_backup_found_body' => 'I backup per :application_name sono considerati sani. Bel Lavoro!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Importante: i backup per :application_name sono corrotti',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Importante: i backup per :application_name sono corrotti. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'I backup per :application_name sul disco :disk_name sono corrotti.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Impossibile raggiungere la destinazione di backup. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Non esiste alcun backup di questa applicazione.',
|
||||||
|
'unhealthy_backup_found_old' => 'L\'ultimo backup fatto il :date è considerato troppo vecchio.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Spiacenti, non è possibile determinare una ragione esatta.',
|
||||||
|
'unhealthy_backup_found_full' => 'I backup utilizzano troppa memoria. L\'utilizzo corrente è :disk_usage che è superiore al limite consentito di :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Non sono stati ancora effettuati backup',
|
||||||
|
'application_name' => "Nome dell'applicazione",
|
||||||
|
'backup_name' => 'Nome di backup',
|
||||||
|
'disk' => 'Disco',
|
||||||
|
'newest_backup_size' => 'Dimensione backup più recente',
|
||||||
|
'number_of_backups' => 'Numero di backup',
|
||||||
|
'total_storage_used' => 'Spazio di archiviazione totale utilizzato',
|
||||||
|
'newest_backup_date' => 'Data del backup più recente',
|
||||||
|
'oldest_backup_date' => 'Data del backup più vecchio',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => '例外のメッセージ: :message',
|
||||||
|
'exception_trace' => '例外の追跡: :trace',
|
||||||
|
'exception_message_title' => '例外のメッセージ',
|
||||||
|
'exception_trace_title' => '例外の追跡',
|
||||||
|
|
||||||
|
'backup_failed_subject' => ':application_name のバックアップに失敗しました。',
|
||||||
|
'backup_failed_body' => '重要: :application_name のバックアップ中にエラーが発生しました。',
|
||||||
|
|
||||||
|
'backup_successful_subject' => ':application_name のバックアップに成功しました。',
|
||||||
|
'backup_successful_subject_title' => 'バックアップに成功しました!',
|
||||||
|
'backup_successful_body' => '朗報です。ディスク :disk_name へ :application_name のバックアップが成功しました。',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => ':application_name のバックアップ削除に失敗しました。',
|
||||||
|
'cleanup_failed_body' => ':application_name のバックアップ削除中にエラーが発生しました。',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => ':application_name のバックアップ削除に成功しました。',
|
||||||
|
'cleanup_successful_subject_title' => 'バックアップ削除に成功しました!',
|
||||||
|
'cleanup_successful_body' => 'ディスク :disk_name に保存された :application_name のバックアップ削除に成功しました。',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'ディスク :disk_name への :application_name のバックアップは正常です。',
|
||||||
|
'healthy_backup_found_subject_title' => ':application_name のバックアップは正常です。',
|
||||||
|
'healthy_backup_found_body' => ':application_name へのバックアップは正常です。いい仕事してますね!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => '重要: :application_name のバックアップに異常があります。',
|
||||||
|
'unhealthy_backup_found_subject_title' => '重要: :application_name のバックアップに異常があります。 :problem',
|
||||||
|
'unhealthy_backup_found_body' => ':disk_name への :application_name のバックアップに異常があります。',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'バックアップ先にアクセスできませんでした。 :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'このアプリケーションのバックアップは見つかりませんでした。',
|
||||||
|
'unhealthy_backup_found_old' => ':date に保存された直近のバックアップが古すぎます。',
|
||||||
|
'unhealthy_backup_found_unknown' => '申し訳ございません。予期せぬエラーです。',
|
||||||
|
'unhealthy_backup_found_full' => 'バックアップがディスク容量を圧迫しています。現在の使用量 :disk_usage は、許可された限界値 :disk_limit を超えています。',
|
||||||
|
|
||||||
|
'no_backups_info' => 'バックアップはまだ作成されていません',
|
||||||
|
'application_name' => 'アプリケーション名',
|
||||||
|
'backup_name' => 'バックアップ名',
|
||||||
|
'disk' => 'ディスク',
|
||||||
|
'newest_backup_size' => '最新のバックアップサイズ',
|
||||||
|
'number_of_backups' => 'バックアップ数',
|
||||||
|
'total_storage_used' => '使用された合計ストレージ',
|
||||||
|
'newest_backup_date' => '最新のバックアップ日時',
|
||||||
|
'oldest_backup_date' => '最も古いバックアップ日時',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Қате туралы хабарлама: :message',
|
||||||
|
'exception_trace' => 'Қате туралы мәліметтер: :trace',
|
||||||
|
'exception_message_title' => 'Қате туралы хабарлама',
|
||||||
|
'exception_trace_title' => 'Қате туралы мәліметтер',
|
||||||
|
|
||||||
|
'backup_failed_subject' => ':application_name бағдарламасының резервтік көшірмесін жасау сәтсіз аяқталды',
|
||||||
|
'backup_failed_body' => 'Маңызды: :application_name бағдарламасының резервтік көшірмесін жасау барысында қате орын алды',
|
||||||
|
|
||||||
|
'backup_successful_subject' => ':application_name бағдарламасының жаңа резервтік көшірмесі сәтті құрылды',
|
||||||
|
'backup_successful_subject_title' => 'Жаңа резервтік көшірме сәтті құрылды!',
|
||||||
|
'backup_successful_body' => 'Жақсы жаңалық: :application_name бағдарламасының жаңа резервтік көшірмесі :disk_name дискінде сәтті құрылды.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => ':application_name бағдарламасының резервтік көшірмелерін тазалау сәтсіз аяқталды',
|
||||||
|
'cleanup_failed_body' => ':application_name бағдарламасының резервтік көшірмелерін тазалау барысында қате орын алды',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => ':application_name бағдарламасының резервтік көшірмелерін тазалау сәтті өтті',
|
||||||
|
'cleanup_successful_subject_title' => 'Резервтік көшірмелерді тазалау сәтті аяқталды!',
|
||||||
|
'cleanup_successful_body' => ':disk_name дискіндегі :application_name бағдарламасының резервтік көшірмелерін тазалау сәтті аяқталды.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => ':disk_name дискіндегі :application_name бағдарламасының резервтік көшірмелері қалыпты күйде',
|
||||||
|
'healthy_backup_found_subject_title' => ':application_name бағдарламасының резервтік көшірмелері қалыпты күйде',
|
||||||
|
'healthy_backup_found_body' => ':application_name бағдарламасының резервтік көшірмелері толық тексеруден өтті. Өте жақсы!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Маңызды: :application_name бағдарламасының резервтік көшірмелері жарамсыз күйде',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Маңызды: :application_name бағдарламасының резервтік көшірмелері жарамсыз күйде. :problem',
|
||||||
|
'unhealthy_backup_found_body' => ':disk_name дискіндегі :application_name бағдарламасының резервтік көшірмелері жарамсыз күйде.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Резервтік көшірме сақтау орнына қол жеткізу мүмкін емес. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Осы бағдарлама бойынша резервтік көшірмелер әлі жасалмаған.',
|
||||||
|
'unhealthy_backup_found_old' => 'Соңғы резервтік көшірме (:date) тым ескі болып саналады.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Кешіріңіз, нақты себебін анықтау мүмкін емес.',
|
||||||
|
'unhealthy_backup_found_full' => 'Резервтік көшірмелер тым көп орын алып отыр. Ағымдағы пайдалану көлемі :disk_usage, бұл рұқсат етілген шектен :disk_limit аса жоғары.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Әлі резервтік көшірме жасалмаған',
|
||||||
|
'application_name' => 'Бағдарлама атауы',
|
||||||
|
'backup_name' => 'Резервтік көшірме атауы',
|
||||||
|
'disk' => 'Диск',
|
||||||
|
'newest_backup_size' => 'Соңғы резервтік көшірменің көлемі',
|
||||||
|
'number_of_backups' => 'Резервтік көшірмелер саны',
|
||||||
|
'total_storage_used' => 'Жалпы қолданылған сақтау көлемі',
|
||||||
|
'newest_backup_date' => 'Соңғы резервтік көшірме күні',
|
||||||
|
'oldest_backup_date' => 'Ең ескі резервтік көшірме күні',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => '예외 메시지: :message',
|
||||||
|
'exception_trace' => '예외 추적: :trace',
|
||||||
|
'exception_message_title' => '예외 메시지',
|
||||||
|
'exception_trace_title' => '예외 추적',
|
||||||
|
|
||||||
|
'backup_failed_subject' => ':application_name 백업 실패',
|
||||||
|
'backup_failed_body' => '중요: :application_name 백업 중 오류 발생',
|
||||||
|
|
||||||
|
'backup_successful_subject' => ':application_name 백업 성공',
|
||||||
|
'backup_successful_subject_title' => '백업이 성공적으로 완료되었습니다!',
|
||||||
|
'backup_successful_body' => '좋은 소식입니다. :disk_name 디스크에 :application_name 백업이 성공적으로 완료되었습니다.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => ':application_name 백업 정리 실패',
|
||||||
|
'cleanup_failed_body' => ':application_name 백업 정리 중 오류 발생',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => ':application_name 백업 정리 성공',
|
||||||
|
'cleanup_successful_subject_title' => '백업 정리가 성공적으로 완료되었습니다!',
|
||||||
|
'cleanup_successful_body' => ':disk_name 디스크에 저장된 :application_name 백업 정리가 성공적으로 완료되었습니다.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => ':application_name 백업은 정상입니다.',
|
||||||
|
'healthy_backup_found_subject_title' => ':application_name 백업은 정상입니다.',
|
||||||
|
'healthy_backup_found_body' => ':application_name 백업은 정상입니다. 수고하셨습니다!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => '중요: :application_name 백업에 문제가 있습니다.',
|
||||||
|
'unhealthy_backup_found_subject_title' => '중요: :application_name 백업에 문제가 있습니다. :problem',
|
||||||
|
'unhealthy_backup_found_body' => ':disk_name 디스크에 :application_name 백업에 문제가 있습니다.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => '백업 위치에 액세스할 수 없습니다. :error',
|
||||||
|
'unhealthy_backup_found_empty' => '이 애플리케이션에는 백업이 없습니다.',
|
||||||
|
'unhealthy_backup_found_old' => ':date에 저장된 최신 백업이 너무 오래되었습니다.',
|
||||||
|
'unhealthy_backup_found_unknown' => '죄송합니다. 예기치 않은 오류가 발생했습니다.',
|
||||||
|
'unhealthy_backup_found_full' => '백업이 디스크 공간을 다 차지하고 있습니다. 현재 사용량 :disk_usage는 허용 한도 :disk_limit을 초과합니다.',
|
||||||
|
|
||||||
|
'no_backups_info' => '아직 백업이 생성되지 않았습니다.',
|
||||||
|
'application_name' => '애플리케이션 이름',
|
||||||
|
'backup_name' => '백업 이름',
|
||||||
|
'disk' => '디스크',
|
||||||
|
'newest_backup_size' => '최신 백업 크기',
|
||||||
|
'number_of_backups' => '백업 수',
|
||||||
|
'total_storage_used' => '총 사용 스토리지',
|
||||||
|
'newest_backup_date' => '최신 백업 날짜',
|
||||||
|
'oldest_backup_date' => '가장 오래된 백업 날짜',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Fout bericht: :message',
|
||||||
|
'exception_trace' => 'Fout trace: :trace',
|
||||||
|
'exception_message_title' => 'Fout bericht',
|
||||||
|
'exception_trace_title' => 'Fout trace',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Back-up van :application_name mislukt',
|
||||||
|
'backup_failed_body' => 'Belangrijk: Er ging iets fout tijdens het maken van een back-up van :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Succesvolle nieuwe back-up van :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Succesvolle nieuwe back-up!',
|
||||||
|
'backup_successful_body' => 'Goed nieuws, een nieuwe back-up van :application_name was succesvol aangemaakt op de schijf genaamd :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Het opschonen van de back-ups van :application_name is mislukt.',
|
||||||
|
'cleanup_failed_body' => 'Er ging iets fout tijdens het opschonen van de back-ups van :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Opschonen van :application_name back-ups was succesvol.',
|
||||||
|
'cleanup_successful_subject_title' => 'Opschonen van back-ups was succesvol!',
|
||||||
|
'cleanup_successful_body' => 'Het opschonen van de :application_name back-ups op de schijf genaamd :disk_name was succesvol.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'De back-ups voor :application_name op schijf :disk_name zijn gezond',
|
||||||
|
'healthy_backup_found_subject_title' => 'De back-ups voor :application_name zijn gezond',
|
||||||
|
'healthy_backup_found_body' => 'De back-ups voor :application_name worden als gezond beschouwd. Goed gedaan!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Belangrijk: De back-ups voor :application_name zijn niet meer gezond',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Belangrijk: De back-ups voor :application_name zijn niet gezond. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'De back-ups voor :application_name op schijf :disk_name zijn niet gezond.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'De back-upbestemming kon niet worden bereikt. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Er zijn geen back-ups van deze applicatie beschikbaar.',
|
||||||
|
'unhealthy_backup_found_old' => 'De laatste back-up gemaakt op :date is te oud.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Sorry, een exacte reden kon niet worden bepaald.',
|
||||||
|
'unhealthy_backup_found_full' => 'De back-ups gebruiken te veel opslagruimte. Momenteel wordt er :disk_usage gebruikt wat hoger is dan de toegestane limiet van :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Er zijn nog geen back-ups gemaakt',
|
||||||
|
'application_name' => 'Naam van de toepassing',
|
||||||
|
'backup_name' => 'Back-upnaam',
|
||||||
|
'disk' => 'Schijf',
|
||||||
|
'newest_backup_size' => 'Nieuwste back-upgrootte',
|
||||||
|
'number_of_backups' => 'Aantal back-ups',
|
||||||
|
'total_storage_used' => 'Totale gebruikte opslagruimte',
|
||||||
|
'newest_backup_date' => 'Datum nieuwste back-up',
|
||||||
|
'oldest_backup_date' => 'Datum oudste back-up',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Exception: :message',
|
||||||
|
'exception_trace' => 'Exception trace: :trace',
|
||||||
|
'exception_message_title' => 'Exception',
|
||||||
|
'exception_trace_title' => 'Exception trace',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Backup feilet for :application_name',
|
||||||
|
'backup_failed_body' => 'Viktg: En feil oppstod under backing av :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Gjennomført backup av :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Gjennomført backup!',
|
||||||
|
'backup_successful_body' => 'Gode nyheter, en ny backup av :application_name ble opprettet på disken :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Opprydding av backup for :application_name feilet.',
|
||||||
|
'cleanup_failed_body' => 'En feil oppstod under opprydding av backups for :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Opprydding av backup for :application_name gjennomført',
|
||||||
|
'cleanup_successful_subject_title' => 'Opprydding av backup gjennomført!',
|
||||||
|
'cleanup_successful_body' => 'Oppryddingen av backup for :application_name på disken :disk_name har blitt gjennomført.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Alle backups for :application_name på disken :disk_name er OK',
|
||||||
|
'healthy_backup_found_subject_title' => 'Alle backups for :application_name er OK',
|
||||||
|
'healthy_backup_found_body' => 'Alle backups for :application_name er ok. Godt jobba!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Viktig: Backups for :application_name ikke OK',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Viktig: Backups for :application_name er ikke OK. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Backups for :application_name på disken :disk_name er ikke OK.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Kunne ikke finne backup-destinasjonen. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Denne applikasjonen mangler backups.',
|
||||||
|
'unhealthy_backup_found_old' => 'Den siste backupem fra :date er for gammel.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Beklager, kunne ikke finne nøyaktig årsak.',
|
||||||
|
'unhealthy_backup_found_full' => 'Backups bruker for mye lagringsplass. Nåværende diskbruk er :disk_usage, som er mer enn den tillatte grensen på :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Ingen sikkerhetskopier ble gjort ennå',
|
||||||
|
'application_name' => 'Programnavn',
|
||||||
|
'backup_name' => 'Navn på sikkerhetskopi',
|
||||||
|
'disk' => 'Disk',
|
||||||
|
'newest_backup_size' => 'Nyeste backup-størrelse',
|
||||||
|
'number_of_backups' => 'Antall sikkerhetskopier',
|
||||||
|
'total_storage_used' => 'Total lagring brukt',
|
||||||
|
'newest_backup_date' => 'Nyeste backup-størrelse',
|
||||||
|
'oldest_backup_date' => 'Eldste sikkerhetskopistørrelse',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Błąd: :message',
|
||||||
|
'exception_trace' => 'Zrzut błędu: :trace',
|
||||||
|
'exception_message_title' => 'Błąd',
|
||||||
|
'exception_trace_title' => 'Zrzut błędu',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Tworzenie kopii zapasowej aplikacji :application_name nie powiodło się',
|
||||||
|
'backup_failed_body' => 'Ważne: Wystąpił błąd podczas tworzenia kopii zapasowej aplikacji :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Pomyślnie utworzono kopię zapasową aplikacji :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Nowa kopia zapasowa!',
|
||||||
|
'backup_successful_body' => 'Wspaniała wiadomość, nowa kopia zapasowa aplikacji :application_name została pomyślnie utworzona na dysku o nazwie :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Czyszczenie kopii zapasowych aplikacji :application_name nie powiodło się.',
|
||||||
|
'cleanup_failed_body' => 'Wystąpił błąd podczas czyszczenia kopii zapasowej aplikacji :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Kopie zapasowe aplikacji :application_name zostały pomyślnie wyczyszczone',
|
||||||
|
'cleanup_successful_subject_title' => 'Kopie zapasowe zostały pomyślnie wyczyszczone!',
|
||||||
|
'cleanup_successful_body' => 'Czyszczenie kopii zapasowych aplikacji :application_name na dysku :disk_name zakończone sukcesem.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Kopie zapasowe aplikacji :application_name na dysku :disk_name są poprawne',
|
||||||
|
'healthy_backup_found_subject_title' => 'Kopie zapasowe aplikacji :application_name są poprawne',
|
||||||
|
'healthy_backup_found_body' => 'Kopie zapasowe aplikacji :application_name są poprawne. Dobra robota!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Ważne: Kopie zapasowe aplikacji :application_name są niepoprawne',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Ważne: Kopie zapasowe aplikacji :application_name są niepoprawne. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Kopie zapasowe aplikacji :application_name na dysku :disk_name są niepoprawne.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Miejsce docelowe kopii zapasowej nie jest osiągalne. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'W aplikacji nie ma żadnej kopii zapasowych tej aplikacji.',
|
||||||
|
'unhealthy_backup_found_old' => 'Ostatnia kopia zapasowa wykonania dnia :date jest zbyt stara.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Niestety, nie można ustalić dokładnego błędu.',
|
||||||
|
'unhealthy_backup_found_full' => 'Kopie zapasowe zajmują zbyt dużo miejsca. Obecne użycie dysku :disk_usage jest większe od ustalonego limitu :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Nie utworzono jeszcze kopii zapasowych',
|
||||||
|
'application_name' => 'Nazwa aplikacji',
|
||||||
|
'backup_name' => 'Nazwa kopii zapasowej',
|
||||||
|
'disk' => 'Dysk',
|
||||||
|
'newest_backup_size' => 'Najnowszy rozmiar kopii zapasowej',
|
||||||
|
'number_of_backups' => 'Liczba kopii zapasowych',
|
||||||
|
'total_storage_used' => 'Całkowite wykorzystane miejsce',
|
||||||
|
'newest_backup_date' => 'Najnowszy rozmiar kopii zapasowej',
|
||||||
|
'oldest_backup_date' => 'Najstarszy rozmiar kopii zapasowej',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Mensagem de exceção: :message',
|
||||||
|
'exception_trace' => 'Rasto da exceção: :trace',
|
||||||
|
'exception_message_title' => 'Mensagem de exceção',
|
||||||
|
'exception_trace_title' => 'Rasto da exceção',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Falha no backup da aplicação :application_name',
|
||||||
|
'backup_failed_body' => 'Importante: Ocorreu um erro ao executar o backup da aplicação :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Backup realizado com sucesso: :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Backup Realizado com Sucesso!',
|
||||||
|
'backup_successful_body' => 'Boas notícias, foi criado um novo backup no disco :disk_name referente à aplicação :application_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Falha na limpeza dos backups da aplicação :application_name.',
|
||||||
|
'cleanup_failed_body' => 'Ocorreu um erro ao executar a limpeza dos backups da aplicação :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Limpeza dos backups da aplicação :application_name concluída!',
|
||||||
|
'cleanup_successful_subject_title' => 'Limpeza dos backups concluída!',
|
||||||
|
'cleanup_successful_body' => 'Concluída a limpeza dos backups da aplicação :application_name no disco :disk_name.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Os backups da aplicação :application_name no disco :disk_name estão em dia',
|
||||||
|
'healthy_backup_found_subject_title' => 'Os backups da aplicação :application_name estão em dia',
|
||||||
|
'healthy_backup_found_body' => 'Os backups da aplicação :application_name estão em dia. Bom trabalho!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Importante: Os backups da aplicação :application_name não estão em dia',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Importante: Os backups da aplicação :application_name não estão em dia. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Os backups da aplicação :application_name no disco :disk_name não estão em dia.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'O destino dos backups não pode ser alcançado. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Não existem backups para essa aplicação.',
|
||||||
|
'unhealthy_backup_found_old' => 'O último backup realizado em :date é demasiado antigo.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Desculpe, impossível determinar a razão exata.',
|
||||||
|
'unhealthy_backup_found_full' => 'Os backups estão a utilizar demasiado espaço de armazenamento. A utilização atual é de :disk_usage, o que é maior que o limite permitido de :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Nenhum backup foi feito ainda',
|
||||||
|
'application_name' => 'Nome da Aplicação',
|
||||||
|
'backup_name' => 'Nome de backup',
|
||||||
|
'disk' => 'Disco',
|
||||||
|
'newest_backup_size' => 'Tamanho de backup mais recente',
|
||||||
|
'number_of_backups' => 'Número de backups',
|
||||||
|
'total_storage_used' => 'Armazenamento total usado',
|
||||||
|
'newest_backup_date' => 'Data de backup mais recente',
|
||||||
|
'oldest_backup_date' => 'Data de backup mais antiga',
|
||||||
|
];
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Mensagem de exceção: :message',
|
||||||
|
'exception_trace' => 'Rastreamento de exceção: :trace',
|
||||||
|
'exception_message_title' => 'Mensagem de exceção',
|
||||||
|
'exception_trace_title' => 'Rastreamento de exceção',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Falha no backup da aplicação :application_name',
|
||||||
|
'backup_failed_body' => 'Importante: Ocorreu um erro ao fazer o backup da aplicação :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Backup realizado com sucesso: :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Backup Realizado com sucesso!',
|
||||||
|
'backup_successful_body' => 'Boas notícias, um novo backup da aplicação :application_name foi criado no disco :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Falha na limpeza dos backups da aplicação :application_name.',
|
||||||
|
'cleanup_failed_body' => 'Um erro ocorreu ao fazer a limpeza dos backups da aplicação :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Limpeza dos backups da aplicação :application_name concluída!',
|
||||||
|
'cleanup_successful_subject_title' => 'Limpeza dos backups concluída!',
|
||||||
|
'cleanup_successful_body' => 'A limpeza dos backups da aplicação :application_name no disco :disk_name foi concluída.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Os backups da aplicação :application_name no disco :disk_name estão em dia',
|
||||||
|
'healthy_backup_found_subject_title' => 'Os backups da aplicação :application_name estão em dia',
|
||||||
|
'healthy_backup_found_body' => 'Os backups da aplicação :application_name estão em dia. Bom trabalho!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Importante: Os backups da aplicação :application_name não estão em dia',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Importante: Os backups da aplicação :application_name não estão em dia. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Os backups da aplicação :application_name no disco :disk_name não estão em dia.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'O destino dos backups não pode ser alcançado. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Não existem backups para essa aplicação.',
|
||||||
|
'unhealthy_backup_found_old' => 'O último backup realizado em :date é considerado muito antigo.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Desculpe, a exata razão não pode ser encontrada.',
|
||||||
|
'unhealthy_backup_found_full' => 'Os backups estão usando muito espaço de armazenamento. A utilização atual é de :disk_usage, o que é maior que o limite permitido de :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Nenhum backup foi feito ainda',
|
||||||
|
'application_name' => 'Nome da Aplicação',
|
||||||
|
'backup_name' => 'Nome de backup',
|
||||||
|
'disk' => 'Disco',
|
||||||
|
'newest_backup_size' => 'Tamanho do backup mais recente',
|
||||||
|
'number_of_backups' => 'Número de backups',
|
||||||
|
'total_storage_used' => 'Armazenamento total usado',
|
||||||
|
'newest_backup_date' => 'Data do backup mais recente',
|
||||||
|
'oldest_backup_date' => 'Data do backup mais antigo',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Cu excepția mesajului: :message',
|
||||||
|
'exception_trace' => 'Urmă excepţie: :trace',
|
||||||
|
'exception_message_title' => 'Mesaj de excepție',
|
||||||
|
'exception_trace_title' => 'Urmă excepţie',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Nu s-a putut face copie de rezervă pentru :application_name',
|
||||||
|
'backup_failed_body' => 'Important: A apărut o eroare în timpul generării copiei de rezervă pentru :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Copie de rezervă efectuată cu succes pentru :application_name',
|
||||||
|
'backup_successful_subject_title' => 'O nouă copie de rezervă a fost efectuată cu succes!',
|
||||||
|
'backup_successful_body' => 'Vești bune, o nouă copie de rezervă pentru :application_name a fost creată cu succes pe discul cu numele :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Curățarea copiilor de rezervă pentru :application_name nu a reușit.',
|
||||||
|
'cleanup_failed_body' => 'A apărut o eroare în timpul curățirii copiilor de rezervă pentru :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Curățarea copiilor de rezervă pentru :application_name a fost făcută cu succes',
|
||||||
|
'cleanup_successful_subject_title' => 'Curățarea copiilor de rezervă a fost făcută cu succes!',
|
||||||
|
'cleanup_successful_body' => 'Curățarea copiilor de rezervă pentru :application_name de pe discul cu numele :disk_name a fost făcută cu succes.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Copiile de rezervă pentru :application_name de pe discul :disk_name sunt în regulă',
|
||||||
|
'healthy_backup_found_subject_title' => 'Copiile de rezervă pentru :application_name sunt în regulă',
|
||||||
|
'healthy_backup_found_body' => 'Copiile de rezervă pentru :application_name sunt considerate în regulă. Bună treabă!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Important: Copiile de rezervă pentru :application_name nu sunt în regulă',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Important: Copiile de rezervă pentru :application_name nu sunt în regulă. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Copiile de rezervă pentru :application_name de pe discul :disk_name nu sunt în regulă.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Nu se poate ajunge la destinația copiilor de rezervă. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Nu există copii de rezervă ale acestei aplicații.',
|
||||||
|
'unhealthy_backup_found_old' => 'Cea mai recentă copie de rezervă făcută la :date este considerată prea veche.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Ne pare rău, un motiv exact nu poate fi determinat.',
|
||||||
|
'unhealthy_backup_found_full' => 'Copiile de rezervă folosesc prea mult spațiu de stocare. Utilizarea curentă este de :disk_usage care este mai mare decât limita permisă de :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Nu s-au făcut încă copii de rezervă',
|
||||||
|
'application_name' => 'Numele aplicatiei',
|
||||||
|
'backup_name' => 'Numele de rezervă',
|
||||||
|
'disk' => 'Disc',
|
||||||
|
'newest_backup_size' => 'Cea mai nouă dimensiune de rezervă',
|
||||||
|
'number_of_backups' => 'Număr de copii de rezervă',
|
||||||
|
'total_storage_used' => 'Spațiu total de stocare utilizat',
|
||||||
|
'newest_backup_date' => 'Cea mai nouă dimensiune de rezervă',
|
||||||
|
'oldest_backup_date' => 'Cea mai veche dimensiune de rezervă',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Сообщение об ошибке: :message',
|
||||||
|
'exception_trace' => 'Сведения об ошибке: :trace',
|
||||||
|
'exception_message_title' => 'Сообщение об ошибке',
|
||||||
|
'exception_trace_title' => 'Сведения об ошибке',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Не удалось сделать резервную копию :application_name',
|
||||||
|
'backup_failed_body' => 'Внимание: Произошла ошибка во время резервного копирования :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Успешно создана новая резервная копия :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Успешно создана новая резервная копия!',
|
||||||
|
'backup_successful_body' => 'Отличная новость, новая резервная копия :application_name успешно создана и сохранена на диск :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Не удалось очистить резервные копии :application_name',
|
||||||
|
'cleanup_failed_body' => 'Произошла ошибка при очистке резервных копий :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Очистка от резервных копий :application_name прошла успешно',
|
||||||
|
'cleanup_successful_subject_title' => 'Очистка резервных копий прошла успешно!',
|
||||||
|
'cleanup_successful_body' => 'Очистка от старых резервных копий :application_name на диске :disk_name прошла успешно.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Резервные копии :application_name с диска :disk_name исправны',
|
||||||
|
'healthy_backup_found_subject_title' => 'Резервные копии :application_name исправны',
|
||||||
|
'healthy_backup_found_body' => 'Резервные копии :application_name считаются исправными. Хорошая работа!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Внимание: резервные копии :application_name неисправны',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Внимание: резервные копии для :application_name неисправны. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Резервные копии для :application_name на диске :disk_name неисправны.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Не удается достичь места назначения резервной копии. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Резервные копии для этого приложения отсутствуют.',
|
||||||
|
'unhealthy_backup_found_old' => 'Последнее резервное копирование созданное :date является устаревшим.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Извините, точная причина не может быть определена.',
|
||||||
|
'unhealthy_backup_found_full' => 'Резервные копии используют слишком много памяти. Используется :disk_usage что выше допустимого предела: :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Резервных копий еще не было',
|
||||||
|
'application_name' => 'Имя приложения',
|
||||||
|
'backup_name' => 'Имя резервной копии',
|
||||||
|
'disk' => 'Диск',
|
||||||
|
'newest_backup_size' => 'Размер последней резервной копии',
|
||||||
|
'number_of_backups' => 'Количество резервных копий',
|
||||||
|
'total_storage_used' => 'Общий объем используемого хранилища',
|
||||||
|
'newest_backup_date' => 'Дата последней резервной копии',
|
||||||
|
'oldest_backup_date' => 'Дата самой старой резервной копии',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Správa výnimky: :message',
|
||||||
|
'exception_trace' => 'Stopa výnimky: :trace',
|
||||||
|
'exception_message_title' => 'Správa výnimky',
|
||||||
|
'exception_trace_title' => 'Stopa výnimky',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Záloha :application_name zlyhala',
|
||||||
|
'backup_failed_body' => 'Dôležité: Pri zálohovaní :application_name sa vyskytla chyba',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Úspešná nová záloha :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Úspešná nová záloha!',
|
||||||
|
'backup_successful_body' => 'Dobrá správa, na disku s názvom :disk_name bola úspešne vytvorená nová záloha :application_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Vyčistenie záloh :application_name zlyhalo.',
|
||||||
|
'cleanup_failed_body' => 'Pri čistení záloh :application_name sa vyskytla chyba',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Vyčistenie záloh :application_name bolo úspešné',
|
||||||
|
'cleanup_successful_subject_title' => 'Vyčistenie záloh bolo úspešné!',
|
||||||
|
'cleanup_successful_body' => 'Vyčistenie záloh :application_name na disku s názvom :disk_name bolo úspešné.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Zálohy pre :application_name na disku :disk_name sú zdravé',
|
||||||
|
'healthy_backup_found_subject_title' => 'Zálohy pre :application_name sú zdravé',
|
||||||
|
'healthy_backup_found_body' => 'Zálohy pre :application_name sa považujú za zdravé. Dobrá práca!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Dôležité: Zálohy pre :application_name sú nezdravé',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Dôležité: Zálohy pre :application_name sú nezdravé. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Zálohy pre :application_name na disku :disk_name sú nezdravé.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Nemožno sa dostať k cieľu zálohy. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Táto aplikácia nemá žiadne zálohy.',
|
||||||
|
'unhealthy_backup_found_old' => 'Posledná záloha vytvorená dňa :date sa považuje za príliš starú.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Ospravedlňujeme sa, nemôžeme určiť presný dôvod.',
|
||||||
|
'unhealthy_backup_found_full' => 'Zálohy zaberajú príliš veľa miesta na disku. Aktuálne využitie disku je :disk_usage, čo je viac ako povolený limit :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Zatiaľ neboli vytvorené žiadne zálohy',
|
||||||
|
'application_name' => 'Názov aplikácie',
|
||||||
|
'backup_name' => 'Názov zálohy',
|
||||||
|
'disk' => 'Disk',
|
||||||
|
'newest_backup_size' => 'Veľkosť najnovšej zálohy',
|
||||||
|
'number_of_backups' => 'Počet záloh',
|
||||||
|
'total_storage_used' => 'Celková využitá kapacita úložiska',
|
||||||
|
'newest_backup_date' => 'Dátum najnovšej zálohy',
|
||||||
|
'oldest_backup_date' => 'Dátum najstaršej zálohy',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Hata mesajı: :message',
|
||||||
|
'exception_trace' => 'Hata izleri: :trace',
|
||||||
|
'exception_message_title' => 'Hata mesajı',
|
||||||
|
'exception_trace_title' => 'Hata izleri',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Yedeklenemedi :application_name',
|
||||||
|
'backup_failed_body' => 'Önemli: Yedeklenirken bir hata oluştu :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Başarılı :application_name yeni yedeklemesi',
|
||||||
|
'backup_successful_subject_title' => 'Başarılı bir yeni yedekleme!',
|
||||||
|
'backup_successful_body' => 'Harika bir haber, :application_name ait yeni bir yedekleme :disk_name adlı diskte başarıyla oluşturuldu.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => ':application_name yedeklemeleri temizlenmesi başarısız.',
|
||||||
|
'cleanup_failed_body' => ':application_name yedeklerini temizlerken bir hata oluştu ',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => ':application_name yedeklemeleri temizlenmesi başarılı.',
|
||||||
|
'cleanup_successful_subject_title' => 'Yedeklerin temizlenmesi başarılı!',
|
||||||
|
'cleanup_successful_body' => ':application_name yedeklemeleri temizlenmesi, :disk_name diskinden silindi',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => ':application_name yedeklenmesi, :disk_name adlı diskte sağlıklı',
|
||||||
|
'healthy_backup_found_subject_title' => ':application_name yedeklenmesi sağlıklı',
|
||||||
|
'healthy_backup_found_body' => ':application_name için yapılan yedeklemeler sağlıklı sayılır. Aferin!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Önemli: :application_name için yedeklemeler sağlıksız',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Önemli: :application_name için yedeklemeler sağlıksız. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Yedeklemeler: :application_name disk: :disk_name sağlıksız.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Yedekleme hedefine ulaşılamıyor. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Bu uygulamanın yedekleri yok.',
|
||||||
|
'unhealthy_backup_found_old' => ':date tarihinde yapılan en son yedekleme çok eski kabul ediliyor.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Üzgünüm, kesin bir sebep belirlenemiyor.',
|
||||||
|
'unhealthy_backup_found_full' => 'Yedeklemeler çok fazla depolama alanı kullanıyor. Şu anki kullanım: :disk_usage, izin verilen sınırdan yüksek: :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Henüz yedekleme yapılmadı',
|
||||||
|
'application_name' => 'Uygulama Adı',
|
||||||
|
'backup_name' => 'Yedek adı',
|
||||||
|
'disk' => 'Disk',
|
||||||
|
'newest_backup_size' => 'En yeni yedekleme boyutu',
|
||||||
|
'number_of_backups' => 'Yedekleme sayısı',
|
||||||
|
'total_storage_used' => 'Kullanılan toplam depolama alanı',
|
||||||
|
'newest_backup_date' => 'En yeni yedekleme tarihi',
|
||||||
|
'oldest_backup_date' => 'En eski yedekleme tarihi',
|
||||||
|
];
|
||||||
+45
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => 'Повідомлення про помилку: :message',
|
||||||
|
'exception_trace' => 'Деталі помилки: :trace',
|
||||||
|
'exception_message_title' => 'Повідомлення помилки',
|
||||||
|
'exception_trace_title' => 'Деталі помилки',
|
||||||
|
|
||||||
|
'backup_failed_subject' => 'Не вдалось зробити резервну копію :application_name',
|
||||||
|
'backup_failed_body' => 'Увага: Трапилась помилка під час резервного копіювання :application_name',
|
||||||
|
|
||||||
|
'backup_successful_subject' => 'Успішне резервне копіювання :application_name',
|
||||||
|
'backup_successful_subject_title' => 'Успішно створена резервна копія!',
|
||||||
|
'backup_successful_body' => 'Чудова новина, нова резервна копія :application_name успішно створена і збережена на диск :disk_name.',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => 'Не вдалось очистити резервні копії :application_name',
|
||||||
|
'cleanup_failed_body' => 'Сталася помилка під час очищення резервних копій :application_name',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => 'Успішне очищення від резервних копій :application_name',
|
||||||
|
'cleanup_successful_subject_title' => 'Очищення резервних копій пройшло вдало!',
|
||||||
|
'cleanup_successful_body' => 'Очищенно від старих резервних копій :application_name на диску :disk_name пойшло успішно.',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => 'Резервна копія :application_name з диску :disk_name установлена',
|
||||||
|
'healthy_backup_found_subject_title' => 'Резервна копія :application_name установлена',
|
||||||
|
'healthy_backup_found_body' => 'Резервна копія :application_name успішно установлена. Хороша робота!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => 'Увага: резервна копія :application_name не установилась',
|
||||||
|
'unhealthy_backup_found_subject_title' => 'Увага: резервна копія для :application_name не установилась. :problem',
|
||||||
|
'unhealthy_backup_found_body' => 'Резервна копія для :application_name на диску :disk_name не установилась.',
|
||||||
|
'unhealthy_backup_found_not_reachable' => 'Резервна копія не змогла установитись. :error',
|
||||||
|
'unhealthy_backup_found_empty' => 'Резервні копії для цього додатку відсутні.',
|
||||||
|
'unhealthy_backup_found_old' => 'Останнє резервне копіювання створено :date є застарілим.',
|
||||||
|
'unhealthy_backup_found_unknown' => 'Вибачте, але ми не змогли визначити точну причину.',
|
||||||
|
'unhealthy_backup_found_full' => 'Резервні копії використовують занадто багато пам`яті. Використовується :disk_usage що вище за допустиму межу :disk_limit.',
|
||||||
|
|
||||||
|
'no_backups_info' => 'Резервних копій ще не було зроблено',
|
||||||
|
'application_name' => 'Назва програми',
|
||||||
|
'backup_name' => 'Резервне ім’я',
|
||||||
|
'disk' => 'Диск',
|
||||||
|
'newest_backup_size' => 'Найновіший розмір резервної копії',
|
||||||
|
'number_of_backups' => 'Кількість резервних копій',
|
||||||
|
'total_storage_used' => 'Загальний обсяг використаного сховища',
|
||||||
|
'newest_backup_date' => 'Найновіший розмір резервної копії',
|
||||||
|
'oldest_backup_date' => 'Найстаріший розмір резервної копії',
|
||||||
|
];
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => '异常信息: :message',
|
||||||
|
'exception_trace' => '异常跟踪: :trace',
|
||||||
|
'exception_message_title' => '异常信息',
|
||||||
|
'exception_trace_title' => '异常跟踪',
|
||||||
|
|
||||||
|
'backup_failed_subject' => ':application_name 备份失败',
|
||||||
|
'backup_failed_body' => '重要说明:备份 :application_name 时发生错误',
|
||||||
|
|
||||||
|
'backup_successful_subject' => ':application_name 备份成功',
|
||||||
|
'backup_successful_subject_title' => '备份成功!',
|
||||||
|
'backup_successful_body' => '好消息, :application_name 备份成功,位于磁盘 :disk_name 中。',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => '清除 :application_name 的备份失败。',
|
||||||
|
'cleanup_failed_body' => '清除备份 :application_name 时发生错误',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => '成功清除 :application_name 的备份',
|
||||||
|
'cleanup_successful_subject_title' => '成功清除备份!',
|
||||||
|
'cleanup_successful_body' => '成功清除 :disk_name 磁盘上 :application_name 的备份。',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => ':disk_name 磁盘上 :application_name 的备份是健康的',
|
||||||
|
'healthy_backup_found_subject_title' => ':application_name 的备份是健康的',
|
||||||
|
'healthy_backup_found_body' => ':application_name 的备份是健康的。干的好!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => '重要说明::application_name 的备份不健康',
|
||||||
|
'unhealthy_backup_found_subject_title' => '重要说明::application_name 备份不健康。 :problem',
|
||||||
|
'unhealthy_backup_found_body' => ':disk_name 磁盘上 :application_name 的备份不健康。',
|
||||||
|
'unhealthy_backup_found_not_reachable' => '无法访问备份目标。 :error',
|
||||||
|
'unhealthy_backup_found_empty' => '根本没有此应用程序的备份。',
|
||||||
|
'unhealthy_backup_found_old' => '最近的备份创建于 :date ,太旧了。',
|
||||||
|
'unhealthy_backup_found_unknown' => '对不起,确切原因无法确定。',
|
||||||
|
'unhealthy_backup_found_full' => '备份占用了太多存储空间。当前占用了 :disk_usage ,高于允许的限制 :disk_limit。',
|
||||||
|
|
||||||
|
'no_backups_info' => '尚未进行任何备份',
|
||||||
|
'application_name' => '应用名称',
|
||||||
|
'backup_name' => '备份名称',
|
||||||
|
'disk' => '磁盘',
|
||||||
|
'newest_backup_size' => '最新备份大小',
|
||||||
|
'number_of_backups' => '备份数量',
|
||||||
|
'total_storage_used' => '使用的总存储量',
|
||||||
|
'newest_backup_date' => '最新备份大小',
|
||||||
|
'oldest_backup_date' => '最旧的备份大小',
|
||||||
|
];
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
return [
|
||||||
|
'exception_message' => '異常訊息: :message',
|
||||||
|
'exception_trace' => '異常追蹤: :trace',
|
||||||
|
'exception_message_title' => '異常訊息',
|
||||||
|
'exception_trace_title' => '異常追蹤',
|
||||||
|
|
||||||
|
'backup_failed_subject' => ':application_name 備份失敗',
|
||||||
|
'backup_failed_body' => '重要說明:備份 :application_name 時發生錯誤',
|
||||||
|
|
||||||
|
'backup_successful_subject' => ':application_name 備份成功',
|
||||||
|
'backup_successful_subject_title' => '備份成功!',
|
||||||
|
'backup_successful_body' => '好消息, :application_name 備份成功,位於磁碟 :disk_name 中。',
|
||||||
|
|
||||||
|
'cleanup_failed_subject' => '清除 :application_name 的備份失敗。',
|
||||||
|
'cleanup_failed_body' => '清除備份 :application_name 時發生錯誤',
|
||||||
|
|
||||||
|
'cleanup_successful_subject' => '成功清除 :application_name 的備份',
|
||||||
|
'cleanup_successful_subject_title' => '成功清除備份!',
|
||||||
|
'cleanup_successful_body' => '成功清除 :disk_name 磁碟上 :application_name 的備份。',
|
||||||
|
|
||||||
|
'healthy_backup_found_subject' => ':disk_name 磁碟上 :application_name 的備份是健康的',
|
||||||
|
'healthy_backup_found_subject_title' => ':application_name 的備份是健康的',
|
||||||
|
'healthy_backup_found_body' => ':application_name 的備份是健康的。幹的好!',
|
||||||
|
|
||||||
|
'unhealthy_backup_found_subject' => '重要說明::application_name 的備份不健康',
|
||||||
|
'unhealthy_backup_found_subject_title' => '重要說明::application_name 備份不健康。 :problem',
|
||||||
|
'unhealthy_backup_found_body' => ':disk_name 磁碟上 :application_name 的備份不健康。',
|
||||||
|
'unhealthy_backup_found_not_reachable' => '無法訪問備份目標。 :error',
|
||||||
|
'unhealthy_backup_found_empty' => '根本沒有此應用程序的備份。',
|
||||||
|
'unhealthy_backup_found_old' => '最近的備份創建於 :date ,太舊了。',
|
||||||
|
'unhealthy_backup_found_unknown' => '對不起,確切原因無法確定。',
|
||||||
|
'unhealthy_backup_found_full' => '備份佔用了太多存儲空間。當前佔用了 :disk_usage ,高於允許的限制 :disk_limit。',
|
||||||
|
|
||||||
|
'no_backups_info' => '尚未進行任何備份',
|
||||||
|
'application_name' => '應用名稱',
|
||||||
|
'backup_name' => '備份名稱',
|
||||||
|
'disk' => '磁碟',
|
||||||
|
'newest_backup_size' => '最新備份大小',
|
||||||
|
'number_of_backups' => '備份數量',
|
||||||
|
'total_storage_used' => '使用的總存儲量',
|
||||||
|
'newest_backup_date' => '最新備份大小',
|
||||||
|
'oldest_backup_date' => '最早的備份大小',
|
||||||
|
];
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
FROM python:3.11-slim
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
|
|
||||||
COPY . /app
|
|
||||||
|
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
net-tools \
|
|
||||||
iproute2 \
|
|
||||||
procps \
|
|
||||||
lsof \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
CMD ["python", "app.py"]
|
|
||||||
Loaded 100 of 15104 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in New Issue
Block a user