This commit is contained in:
Dwi Swandhana
2026-07-03 20:48:38 +07:00
parent ed92325536
commit f857eec85c
11 changed files with 1820 additions and 1142 deletions
@@ -17,6 +17,72 @@
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
gap: 12px;
}
.bio-step-panel {
border: 1px solid #d7e3ef;
border-radius: 8px;
background: #ffffff;
padding: 12px;
margin-bottom: 14px;
}
.bio-step-title {
font-weight: 700;
color: #1b3a57;
margin-bottom: 10px;
}
.bio-choice-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 10px;
}
.bio-choice-wrap {
position: relative;
}
.bio-choice {
display: block;
width: 100%;
min-height: 92px;
border: 1px solid #d7e3ef;
border-radius: 6px;
background: #f8fbff;
color: #1b3a57;
text-align: left;
padding: 10px;
cursor: pointer;
}
.bio-choice strong,
.bio-choice span,
.bio-choice small {
display: block;
}
.bio-choice small {
color: #6c757d;
margin-top: 3px;
}
.bio-choice.active,
.bio-number.active {
border-color: #188ae2;
background: #eaf5ff;
box-shadow: inset 0 0 0 1px #188ae2;
}
.bio-delete-form {
position: absolute;
top: 8px;
right: 8px;
}
.bio-number-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
gap: 8px;
}
.bio-number {
border: 1px solid #d7e3ef;
border-radius: 6px;
background: #f8fbff;
color: #1b3a57;
padding: 9px 6px;
cursor: pointer;
text-align: center;
}
.rack-box {
border: 1px solid #d7e3ef;
border-radius: 10px;
@@ -58,6 +124,7 @@
cursor: pointer;
text-align: center;
width: 100%;
min-height: 34px;
}
.slot-btn.slot-filled {
background: #fce8e8;
@@ -65,6 +132,10 @@
color: #8d1f1f;
cursor: pointer;
}
.slot-btn span,
.slot-btn small {
display: block;
}
.oldest-highlight {
border: 1px solid #ffd58f;
background: #fff8ea;
@@ -163,94 +234,10 @@
<div class="alert alert-warning m-b-20">Belum ada data spesimen.</div>
@endif
<h4 class="m-b-20">Visualisasi Lemari, Rack, Shelf, Box, dan Tube</h4>
<p class="text-muted">Klik nomor tube berwarna biru untuk mengisi spesimen. Tube merah artinya sudah terisi.</p>
<h4 class="m-b-20">Visualisasi Lemari, Rack, Slot, Shelf, Box, dan Tube</h4>
<p class="text-muted">Pilih posisi dari lemari sampai box. Tube biru bisa diisi, tube merah sudah terisi.</p>
@forelse($cabinets as $cabinet)
<div class="cabinet-visual">
<div class="d-flex justify-content-between align-items-start m-b-15">
<h5 class="m-b-0">{{ $cabinet->code }} - {{ $cabinet->name }} <small class="text-muted">({{ $cabinet->location ?? 'Lokasi belum diisi' }})</small></h5>
<form method="POST" action="{{ route('biorepository.deleteCabinet', $cabinet->id) }}" class="js-delete-cabinet">
@csrf
<button type="submit" class="btn btn-sm btn-danger">Delete Lemari</button>
</form>
</div>
<div class="rack-grid">
@forelse($cabinet->racks as $rack)
@php
$tubeMap = [];
foreach ($rack->specimens as $item) {
if ($item->shelf_number && $item->tube_number) {
$tubeMap[$item->shelf_number.'-'.$item->tube_number] = $item;
}
}
$shelfCount = (int) $rack->level;
$tubeCapacity = (int) $rack->capacity;
@endphp
<div class="rack-box">
<div class="d-flex justify-content-between align-items-start">
<div class="rack-header">{{ $rack->code }} - {{ $rack->name }}</div>
<form method="POST" action="{{ route('biorepository.deleteRack', $rack->id) }}" class="js-delete-rack">
@csrf
<button type="submit" class="btn btn-xs btn-danger">Delete Rack</button>
</form>
</div>
<div style="font-size:12px;">Rack No {{ $rack->rack_number ?? $rack->id }} | Total Shelf {{ $shelfCount }} | 1 Box per Shelf | Tube per Box {{ $tubeCapacity }}</div>
<div style="font-size:12px;">Terisi: {{ $rack->specimens->count() }}</div>
@if($shelfCount > 0 && $tubeCapacity > 0)
@for($shelf = 1; $shelf <= $shelfCount; $shelf++)
<div class="shelf-section">
<div style="font-size:12px;"><b>Shelf {{ $shelf }}</b> - Box 1 (Tube 1-{{ $tubeCapacity }})</div>
<div class="tube-grid">
@for($tube = 1; $tube <= $tubeCapacity; $tube++)
@php $tubeKey = $shelf.'-'.$tube; @endphp
@if(isset($tubeMap[$tubeKey]))
<button type="button"
class="slot-btn slot-filled js-slot-filled"
style="font-size:7px; line-height:1.1; padding:4px 2px;"
data-specimen-id="{{ $tubeMap[$tubeKey]->id }}"
data-rack-id="{{ $rack->id }}"
data-shelf="{{ $shelf }}"
data-rackno="{{ $rack->rack_number ?? $rack->id }}"
data-slot="{{ $shelf }}"
data-box="1"
data-tube="{{ $tube }}"
data-bakteri="{{ $tubeMap[$tubeKey]->bacteria_name ?? $tubeMap[$tubeKey]->specimen_name }}"
data-strain="{{ $tubeMap[$tubeKey]->strain }}"
data-volume="{{ $tubeMap[$tubeKey]->volume ?? 0 }}"
title="{{ $tubeMap[$tubeKey]->specimen_code }} - {{ $tubeMap[$tubeKey]->bacteria_name ?? $tubeMap[$tubeKey]->specimen_name }} / {{ $tubeMap[$tubeKey]->strain }}">
{{ ($tubeMap[$tubeKey]->bacteria_name ?? $tubeMap[$tubeKey]->specimen_name) }} / {{ $tubeMap[$tubeKey]->strain ?? '-' }}<br />
{{ $tubeMap[$tubeKey]->volume ?? 0 }} ml
</button>
@else
<button type="button"
class="slot-btn js-slot"
data-rack-id="{{ $rack->id }}"
data-shelf="{{ $shelf }}"
data-rackno="{{ $rack->rack_number ?? $rack->id }}"
data-slot="{{ $shelf }}"
data-box="1"
data-tube="{{ $tube }}">
{{ $tube }}
</button>
@endif
@endfor
</div>
</div>
@endfor
@else
<div class="alert alert-light m-b-0 m-t-10">Konfigurasi rack belum lengkap.</div>
@endif
</div>
@empty
<div class="alert alert-light m-b-0">Belum ada rack pada lemari ini.</div>
@endforelse
</div>
</div>
@empty
<div class="alert alert-warning">Belum ada data lemari biorepository.</div>
@endforelse
@livewire('biorepository-visual')
</div>
<div class="tab-pane" id="tabList">
@@ -405,15 +392,25 @@
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label>Jumlah Shelf per Rack (4-6)</label>
<label>Jumlah Slot per Rack</label>
<input type="number" name="slot_count" class="form-control" min="1" max="20" value="1" required>
</div>
<div class="form-group col-md-6">
<label>Jumlah Shelf per Slot (4-6)</label>
<input type="number" name="level" class="form-control" min="4" max="6" value="4" required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6">
<label>Jumlah Box per Shelf</label>
<input type="number" name="box_number" class="form-control" min="1" max="20" value="1" required>
</div>
<div class="form-group col-md-6">
<label>Tube per Box (16-100)</label>
<input type="number" name="capacity" class="form-control" min="16" max="100" value="16" required>
</div>
</div>
<small class="text-muted">Rack number dibuat otomatis oleh sistem. Struktur: 1 rack memiliki 4-6 shelf, setiap shelf memiliki 1 box, setiap box 16-100 tube.</small>
<small class="text-muted">Rack number dibuat otomatis oleh sistem. Struktur: lemari -> rack -> slot -> shelf -> box -> tube.</small>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
@@ -459,11 +456,11 @@
<input type="number" class="form-control" id="raknomor" name="raknomor" readonly>
</div>
<div class="col-lg-4">
<label>Slot Number (Sama dengan Shelf)</label>
<label>Slot Number</label>
<input type="number" class="form-control" id="slotnomor" name="slotnomor" readonly>
</div>
<div class="col-lg-4">
<label>Box Number (1 per Shelf)</label>
<label>Box Number</label>
<input type="number" class="form-control" id="boxnomor" name="boxnomor" readonly>
</div>
<div class="col-lg-4">
@@ -666,7 +666,7 @@ $(document).ready(function () {
type : 'error',
});
} else {
var url = '{{url('/')}}/tatreport?bulan='+bulan+'?tahun='+tahun;
var url = '{{url('/')}}/tatreport?bulan='+bulan+'&tahun='+tahun;
window.location.href = url;
}
});
@@ -355,7 +355,7 @@
@php
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
@endphp
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
<option value="{{ $value['name'] }}">{{ $mikroorganismestlist[$i] }} - {!! $value['name'] !!}</option>
@php
}
@endphp
@@ -575,142 +575,103 @@
<label class="col-form-label">Pertumbuhan Koloni (Kultur Primer):</label>
</div>
<div class="form-group col-lg-12">
<label class="col-form-label">Kirby bauer :</label>
<div class="form-row">
<div class="form-group col-lg-4">
<label for="id_kbamc" class="col-form-label">AMC</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kbamc" name="id_kbamc">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkbamc" name="id_sirkbamc">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
<div style="overflow: hidden; display: none;">
<label for="id_kblef" class="col-form-label">LEV</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kblef" name="id_kblef">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkblef" name="id_sirkblef">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
<div class="form-group col-lg-4">
<label for="id_kbak" class="col-form-label">AK</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kbak" name="id_kbak">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkbak" name="id_sirkbak">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
<div class="form-group col-lg-4">
<label for="id_kbfos" class="col-form-label">FOS</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kbfos" name="id_kbfos">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkbfos" name="id_sirkbfos">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
</div>
<div class="form-row">
<div class="form-group col-lg-4">
<label for="id_kbscf" class="col-form-label">SCF</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kbscf" name="id_kbscf">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkbscf" name="id_sirkbscf">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
</div>
<table class="table table-striped table-bordered">
<tr>
<td colspan="8" style="text-align: center;">Kirby bauer</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;"><strong>AMC</strong></td>
<td colspan="2" style="text-align: center;"><strong>AK</strong></td>
<td colspan="2" style="text-align: center;"><strong>FOS</strong></td>
<td colspan="2" style="text-align: center;"><strong>SCF</strong></td>
</tr>
<tr>
<td>
<select class="form-control pilihankirby" id="id_kbamc" name="id_kbamc">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_sirkbamc" name="id_sirkbamc">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_kbak" name="id_kbak">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_sirkbak" name="id_sirkbak">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_kbfos" name="id_kbfos">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_sirkbfos" name="id_sirkbfos">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_kbscf" name="id_kbscf">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_sirkbscf" name="id_sirkbscf">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</td>
</tr>
</table>
</div>
<div class="form-group col-lg-12">
<label for="id_biakankultur" class="col-form-label">Biakan Kultur (Aerob / Anaerob)</label>
@@ -727,38 +688,85 @@
<span class="badge badge-primary">C. Tes Kepekaan Antibiotika: (S: Sensitif ; I : Intermediate ; R: Resisten)</span>
</div>
<div class="form-group col-lg-12">
<ul class="nav nav-tabs tabs-bordered nav-justified">
<li class="nav-item">
<a href="#media_bap" data-toggle="tab" aria-expanded="false" class="nav-link active">
<i class="fi-monitor mr-2"></i> Media BAP
</a>
</li>
<li class="nav-item">
<a href="#media_cap" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media CAP
</a>
</li>
<li class="nav-item">
<a href="#media_mcconkey" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media Mc Conkey
</a>
</li>
<li class="nav-item">
<a href="#media_sda" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Kultur Jamur
</a>
</li>
<li class="nav-item">
<a href="#media_sellainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media Selektif lainnya
</a>
</li>
<li class="nav-item">
<a href="#media_tamlainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Pemeriksaan Tambahan Lainnya
</a>
</li>
</ul>
<div class="form-row">
<div class="form-group col-lg-12">
<div class="card">
<div class="card-body">
<h5 class="card-title">Ringkasan Hasil Terakhir</h5>
<h6 class="card-subtitle text-muted" id="last_updated">Diperbaharui :</h6>
</div>
<div class="card-body row">
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
<div class="card-box tilebox-one">
<i class="icon-layers float-right text-muted"></i>
<h6 class="text-muted text-uppercase mt-0">Media BAP</h6>
<h2 class="m-b-20" id="status_bap_status">-</h2>
<span class="badge badge-primary" id="badge_bap_status"> - </span>
</div>
</div>
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
<div class="card-box tilebox-one">
<i class="icon-layers float-right text-muted"></i>
<h6 class="text-muted text-uppercase mt-0">Media CAP</h6>
<h2 class="m-b-20" id="status_cap_status">-</h2>
<span class="badge badge-danger" id="badge_cap_status"> - </span>
</div>
</div>
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
<div class="card-box tilebox-one">
<i class="icon-layers float-right text-muted"></i>
<h6 class="text-muted text-uppercase mt-0">Mc Conkey</h6>
<h2 class="m-b-20" id="status_mcconkey_status">-</h2>
<span class="badge badge-info" id="badge_mcconkey_status"> - </span>
</div>
</div>
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
<div class="card-box tilebox-one">
<i class="icon-layers float-right text-muted"></i>
<h6 class="text-muted text-uppercase mt-0">Media Jamur</h6>
<h2 class="m-b-20" id="status_jamur_status">-</h2>
<span class="badge badge-warning" id="badge_jamur_status"> - </span>
</div>
</div>
</div>
</div>
</div>
<div class="form-group col-lg-12">
<ul class="nav nav-tabs tabs-bordered nav-justified">
<li class="nav-item">
<a href="#media_bap" data-toggle="tab" aria-expanded="false" class="nav-link active">
<i class="fi-monitor mr-2"></i> Media BAP
</a>
</li>
<li class="nav-item">
<a href="#media_cap" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media CAP
</a>
</li>
<li class="nav-item">
<a href="#media_mcconkey" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media Mc Conkey
</a>
</li>
<li class="nav-item">
<a href="#media_sda" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Kultur Jamur
</a>
</li>
<li class="nav-item">
<a href="#media_sellainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media Selektif lainnya
</a>
</li>
<li class="nav-item">
<a href="#media_tamlainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Pemeriksaan Tambahan Lainnya
</a>
</li>
</ul>
</div>
</div>
<div class="tab-content">
<div class="tab-pane active" id="media_bap">
<div class="card">
@@ -1070,7 +1078,7 @@
@php
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
@endphp
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
<option value="{{ $value['name'] }}">{{ $mikroorganismestlist[$i] }} - {!! $value['name'] !!}</option>
@php
}
@endphp
@@ -2113,6 +2121,7 @@
</div>
</div>
<div class="form-group setelahdipilihtemplate">
<!---
<div class="form-group account-btn text-center m-t-10">
<button type="button" class="btn btn-light waves-effect" id="btnabbot">
<i class="mdi mdi-adobe mr-1"></i> Abbot
@@ -2121,6 +2130,7 @@
<i class="mdi mdi-alphabetical-variant mr-1"></i> SIR Ab
</button>
</div>
--->
<ul class="nav nav-tabs tabs-bordered nav-justified">
<li class="nav-item">
<a href="#tabel_vitek" data-toggle="tab" aria-expanded="false" class="nav-link active">
@@ -3970,6 +3980,115 @@
data: { nofoto: idne, komponen: 'Media Tambahan Lainnya', keterangan:'generatetblpertumbuhankoloni', _token: '{{csrf_token()}}' },
url: '{{ route("getResult") }}',
};
var summaryKoloni = {
bap: [],
cap: [],
mcconkey: [],
sdar1: [],
sdar2: [],
sdai1: [],
sdai2: [],
};
var summaryJamurKeys = ['sdar1', 'sdar2', 'sdai1', 'sdai2'];
var summaryGridMap = {
bap: '#gridmediabap',
cap: '#gridmediacap',
mcconkey: '#gridmediamcconkey',
sdar1: '#gridmediasdar1',
sdar2: '#gridmediasdar2',
sdai1: '#gridmediasdai1',
sdai2: '#gridmediasdai2',
};
function resetSummaryPertumbuhanKoloni()
{
$('#status_bap_status, #status_cap_status, #status_mcconkey_status, #status_jamur_status').html('-');
$('#badge_bap_status, #badge_cap_status, #badge_mcconkey_status, #badge_jamur_status').html(' - ');
$('#last_updated').html('Diperbaharui :');
}
function valueSummaryPertumbuhanKoloni(value)
{
return value === null || value === undefined || value === '' ? '-' : value;
}
function timestampSummaryPertumbuhanKoloni(row)
{
if (!row) {
return 0;
}
var timestamp = row.updated_at || row.tglpenyimpanan || '';
if (timestamp === '') {
return 0;
}
var parsed = Date.parse(String(timestamp).replace(' ', 'T'));
return isNaN(parsed) ? 0 : parsed;
}
function newestSummaryPertumbuhanKoloni(rows)
{
var newest = null;
$.each(rows || [], function(index, row) {
if (!newest || timestampSummaryPertumbuhanKoloni(row) >= timestampSummaryPertumbuhanKoloni(newest)) {
newest = row;
}
});
return newest;
}
function lastSummaryPertumbuhanKoloni(rows)
{
rows = rows || [];
return rows.length > 0 ? rows[rows.length - 1] : null;
}
function updateSummaryPertumbuhanKoloni()
{
var bap = lastSummaryPertumbuhanKoloni(summaryKoloni.bap);
var cap = lastSummaryPertumbuhanKoloni(summaryKoloni.cap);
var mcconkey = lastSummaryPertumbuhanKoloni(summaryKoloni.mcconkey);
var jamurRows = [];
var lastUpdatedRow = null;
$.each(summaryKoloni, function(key, rows) {
$.each(rows || [], function(index, row) {
if (!lastUpdatedRow || timestampSummaryPertumbuhanKoloni(row) > timestampSummaryPertumbuhanKoloni(lastUpdatedRow)) {
lastUpdatedRow = row;
}
});
});
$.each(summaryJamurKeys, function(index, key) {
jamurRows = jamurRows.concat(summaryKoloni[key] || []);
});
var jamur = newestSummaryPertumbuhanKoloni(jamurRows);
$('#status_bap_status').html(valueSummaryPertumbuhanKoloni(bap ? bap.kuman : null));
$('#badge_bap_status').html(valueSummaryPertumbuhanKoloni(bap ? bap.status : null));
$('#status_cap_status').html(valueSummaryPertumbuhanKoloni(cap ? cap.kuman : null));
$('#badge_cap_status').html(valueSummaryPertumbuhanKoloni(cap ? cap.status : null));
$('#status_mcconkey_status').html(valueSummaryPertumbuhanKoloni(mcconkey ? mcconkey.kuman : null));
$('#badge_mcconkey_status').html(valueSummaryPertumbuhanKoloni(mcconkey ? mcconkey.status : null));
$('#status_jamur_status').html(valueSummaryPertumbuhanKoloni(jamur ? jamur.kuman : null));
$('#badge_jamur_status').html(valueSummaryPertumbuhanKoloni(jamur ? jamur.status : null));
$('#last_updated').html('Diperbaharui : ' + valueSummaryPertumbuhanKoloni(lastUpdatedRow ? (lastUpdatedRow.updated_at || lastUpdatedRow.tglpenyimpanan) : null));
}
function bindSummaryPertumbuhanKoloni()
{
$.each(summaryGridMap, function(key, selector) {
$(selector).off('bindingcomplete.summaryKoloni').on('bindingcomplete.summaryKoloni', function() {
summaryKoloni[key] = $(selector).jqxGrid('getrows') || [];
updateSummaryPertumbuhanKoloni();
});
});
}
resetSummaryPertumbuhanKoloni();
bindSummaryPertumbuhanKoloni();
$("#gridmediabap").jqxGrid({
width : '100%',
source : srcjsonbap,
+286 -169
View File
@@ -424,7 +424,7 @@
@php
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
@endphp
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
<option value="{{ $value['name'] }}">{{ $mikroorganismestlist[$i] }} - {!! $value['name'] !!}</option>
@php
}
@endphp
@@ -647,141 +647,103 @@
<label class="col-form-label">Pertumbuhan Koloni (Kultur Primer):</label>
</div>
<div class="form-group col-lg-12">
<label class="col-form-label">Kirby bauer :</label>
<div class="form-row">
<div class="form-group col-lg-4">
<label for="id_kbamc" class="col-form-label">AMC</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kbamc" name="id_kbamc">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkbamc" name="id_sirkbamc">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
<div style="overflow: hidden; display: none;">
<label for="id_kblef" class="col-form-label">LEV</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kblef" name="id_kblef">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkblef" name="id_sirkblef">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
<div class="form-group col-lg-4">
<label for="id_kbak" class="col-form-label">AK</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kbak" name="id_kbak">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkbak" name="id_sirkbak">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
<div class="form-group col-lg-4">
<label for="id_kbfos" class="col-form-label">FOS</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kbfos" name="id_kbfos">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkbfos" name="id_sirkbfos">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
</div>
<div class="form-row">
<div class="form-group col-lg-4">
<label for="id_kbscf" class="col-form-label">SCF</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kbscf" name="id_kbscf">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkbscf" name="id_sirkbscf">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
</div>
<table class="table table-striped table-bordered">
<tr>
<td colspan="8" style="text-align: center;">Kirby bauer</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;"><strong>AMC</strong></td>
<td colspan="2" style="text-align: center;"><strong>AK</strong></td>
<td colspan="2" style="text-align: center;"><strong>FOS</strong></td>
<td colspan="2" style="text-align: center;"><strong>SCF</strong></td>
</tr>
<tr>
<td>
<select class="form-control pilihankirby" id="id_kbamc" name="id_kbamc">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_sirkbamc" name="id_sirkbamc">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_kbak" name="id_kbak">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_sirkbak" name="id_sirkbak">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_kbfos" name="id_kbfos">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_sirkbfos" name="id_sirkbfos">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_kbscf" name="id_kbscf">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_sirkbscf" name="id_sirkbscf">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</td>
</tr>
</table>
</div>
<div class="form-group col-lg-12">
<label for="id_biakankultur" class="col-form-label">Biakan Kultur (Aerob / Anaerob)</label>
@@ -798,38 +760,84 @@
<span class="badge badge-primary">C. Tes Kepekaan Antibiotika: (S: Sensitif ; I : Intermediate ; R: Resisten)</span>
</div>
<div class="form-group col-lg-12">
<ul class="nav nav-tabs tabs-bordered nav-justified">
<li class="nav-item">
<a href="#media_bap" data-toggle="tab" aria-expanded="false" class="nav-link active">
<i class="fi-monitor mr-2"></i> Media BAP
</a>
</li>
<li class="nav-item">
<a href="#media_cap" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media CAP
</a>
</li>
<li class="nav-item">
<a href="#media_mcconkey" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media Mc Conkey
</a>
</li>
<li class="nav-item">
<a href="#media_sda" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Kultur Jamur
</a>
</li>
<li class="nav-item">
<a href="#media_sellainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media Selektif lainnya
</a>
</li>
<li class="nav-item">
<a href="#media_tamlainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Pemeriksaan Tambahan Lainnya
</a>
</li>
</ul>
<div class="form-row">
<div class="form-group col-lg-12">
<div class="card">
<div class="card-body">
<h5 class="card-title">Ringkasan Hasil Terakhir</h5>
<h6 class="card-subtitle text-muted" id="last_updated">Diperbaharui :</h6>
</div>
<div class="card-body row">
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
<div class="card-box tilebox-one">
<i class="icon-layers float-right text-muted"></i>
<h6 class="text-muted text-uppercase mt-0">Media BAP</h6>
<h2 class="m-b-20" id="status_bap_status">-</h2>
<span class="badge badge-primary" id="badge_bap_status"> - </span>
</div>
</div>
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
<div class="card-box tilebox-one">
<i class="icon-layers float-right text-muted"></i>
<h6 class="text-muted text-uppercase mt-0">Media CAP</h6>
<h2 class="m-b-20" id="status_cap_status">-</h2>
<span class="badge badge-danger" id="badge_cap_status"> - </span>
</div>
</div>
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
<div class="card-box tilebox-one">
<i class="icon-layers float-right text-muted"></i>
<h6 class="text-muted text-uppercase mt-0">Mc Conkey</h6>
<h2 class="m-b-20" id="status_mcconkey_status">-</h2>
<span class="badge badge-info" id="badge_mcconkey_status"> - </span>
</div>
</div>
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
<div class="card-box tilebox-one">
<i class="icon-layers float-right text-muted"></i>
<h6 class="text-muted text-uppercase mt-0">Media Jamur</h6>
<h2 class="m-b-20" id="status_jamur_status">-</h2>
<span class="badge badge-warning" id="badge_jamur_status"> - </span>
</div>
</div>
</div>
</div>
</div>
<div class="form-group col-lg-12">
<ul class="nav nav-tabs tabs-bordered nav-justified">
<li class="nav-item">
<a href="#media_bap" data-toggle="tab" aria-expanded="false" class="nav-link active">
<i class="fi-monitor mr-2"></i> Media BAP
</a>
</li>
<li class="nav-item">
<a href="#media_cap" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media CAP
</a>
</li>
<li class="nav-item">
<a href="#media_mcconkey" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media Mc Conkey
</a>
</li>
<li class="nav-item">
<a href="#media_sda" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Kultur Jamur
</a>
</li>
<li class="nav-item">
<a href="#media_sellainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media Selektif lainnya
</a>
</li>
<li class="nav-item">
<a href="#media_tamlainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Pemeriksaan Tambahan Lainnya
</a>
</li>
</ul>
</div>
</div>
<div class="tab-content">
<div class="tab-pane active" id="media_bap">
<div class="card">
@@ -1141,7 +1149,7 @@
@php
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
@endphp
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
<option value="{{ $value['name'] }}">{{ $mikroorganismestlist[$i] }} - {!! $value['name'] !!}</option>
@php
}
@endphp
@@ -4047,6 +4055,115 @@
data: { nofoto: idne, komponen: 'Media Tambahan Lainnya', keterangan:'generatetblpertumbuhankoloni', _token: '{{csrf_token()}}' },
url: '{{ route("getResult") }}',
};
var summaryKoloni = {
bap: [],
cap: [],
mcconkey: [],
sdar1: [],
sdar2: [],
sdai1: [],
sdai2: [],
};
var summaryJamurKeys = ['sdar1', 'sdar2', 'sdai1', 'sdai2'];
var summaryGridMap = {
bap: '#gridmediabap',
cap: '#gridmediacap',
mcconkey: '#gridmediamcconkey',
sdar1: '#gridmediasdar1',
sdar2: '#gridmediasdar2',
sdai1: '#gridmediasdai1',
sdai2: '#gridmediasdai2',
};
function resetSummaryPertumbuhanKoloni()
{
$('#status_bap_status, #status_cap_status, #status_mcconkey_status, #status_jamur_status').html('-');
$('#badge_bap_status, #badge_cap_status, #badge_mcconkey_status, #badge_jamur_status').html(' - ');
$('#last_updated').html('Diperbaharui :');
}
function valueSummaryPertumbuhanKoloni(value)
{
return value === null || value === undefined || value === '' ? '-' : value;
}
function timestampSummaryPertumbuhanKoloni(row)
{
if (!row) {
return 0;
}
var timestamp = row.updated_at || row.tglpenyimpanan || '';
if (timestamp === '') {
return 0;
}
var parsed = Date.parse(String(timestamp).replace(' ', 'T'));
return isNaN(parsed) ? 0 : parsed;
}
function newestSummaryPertumbuhanKoloni(rows)
{
var newest = null;
$.each(rows || [], function(index, row) {
if (!newest || timestampSummaryPertumbuhanKoloni(row) >= timestampSummaryPertumbuhanKoloni(newest)) {
newest = row;
}
});
return newest;
}
function lastSummaryPertumbuhanKoloni(rows)
{
rows = rows || [];
return rows.length > 0 ? rows[rows.length - 1] : null;
}
function updateSummaryPertumbuhanKoloni()
{
var bap = lastSummaryPertumbuhanKoloni(summaryKoloni.bap);
var cap = lastSummaryPertumbuhanKoloni(summaryKoloni.cap);
var mcconkey = lastSummaryPertumbuhanKoloni(summaryKoloni.mcconkey);
var jamurRows = [];
var lastUpdatedRow = null;
$.each(summaryKoloni, function(key, rows) {
$.each(rows || [], function(index, row) {
if (!lastUpdatedRow || timestampSummaryPertumbuhanKoloni(row) > timestampSummaryPertumbuhanKoloni(lastUpdatedRow)) {
lastUpdatedRow = row;
}
});
});
$.each(summaryJamurKeys, function(index, key) {
jamurRows = jamurRows.concat(summaryKoloni[key] || []);
});
var jamur = newestSummaryPertumbuhanKoloni(jamurRows);
$('#status_bap_status').html(valueSummaryPertumbuhanKoloni(bap ? bap.kuman : null));
$('#badge_bap_status').html(valueSummaryPertumbuhanKoloni(bap ? bap.status : null));
$('#status_cap_status').html(valueSummaryPertumbuhanKoloni(cap ? cap.kuman : null));
$('#badge_cap_status').html(valueSummaryPertumbuhanKoloni(cap ? cap.status : null));
$('#status_mcconkey_status').html(valueSummaryPertumbuhanKoloni(mcconkey ? mcconkey.kuman : null));
$('#badge_mcconkey_status').html(valueSummaryPertumbuhanKoloni(mcconkey ? mcconkey.status : null));
$('#status_jamur_status').html(valueSummaryPertumbuhanKoloni(jamur ? jamur.kuman : null));
$('#badge_jamur_status').html(valueSummaryPertumbuhanKoloni(jamur ? jamur.status : null));
$('#last_updated').html('Diperbaharui : ' + valueSummaryPertumbuhanKoloni(lastUpdatedRow ? (lastUpdatedRow.updated_at || lastUpdatedRow.tglpenyimpanan) : null));
}
function bindSummaryPertumbuhanKoloni()
{
$.each(summaryGridMap, function(key, selector) {
$(selector).off('bindingcomplete.summaryKoloni').on('bindingcomplete.summaryKoloni', function() {
summaryKoloni[key] = $(selector).jqxGrid('getrows') || [];
updateSummaryPertumbuhanKoloni();
});
});
}
resetSummaryPertumbuhanKoloni();
bindSummaryPertumbuhanKoloni();
$("#gridmediabap").jqxGrid({
width : '100%',
source : srcjsonbap,
@@ -108,50 +108,66 @@
</div>
</div>
</div>
<div class="row" id="divperiksa">
<div class="col-12">
<form id="kt_form" enctype="multipart/form-data">
<div class="card-box task-detail">
<button type="button" class="btn btn-custom btn-rounded w-md waves-effect waves-light pull-right"><i class="mdi mdi-upload"></i> Template</button>
<div class="media mt-0 m-b-30">
<img class="d-flex mr-3 rounded-circle" alt="Logo MyLIS" src="{{ asset('logo.png') }}" style="width: 48px; height: 48px;">
<div class="media-body">
<h5 class="media-heading mb-0 mt-0" id="judultemplate">Template</h5>
<span class="badge badge-danger" id="badgespesimen">Spesimen</span>
</div>
</div>
<ul class="list-inline task-dates m-b-0 mt-5">
<li>
<h5 class="m-b-5">Nomor LAB</h5>
<p id="nofoto"></p>
</li>
<li>
<h5 class="m-b-5">Tanggal Periksa</h5>
<p id="tanggalregis"></p>
</li>
</ul>
<div id="divpreview">
<div class="row">
<div class="col-12">
<div class="card-box ribbon-box">
<div class="ribbon ribbon-danger">Preview Hasil</div>
<p class="m-b-0">Untuk cetak silahkan gunakan tombol cetak di laman <a href="{{url('pengambilan')}}" id="linkpengambilan">Pengambilan Hasil</a></p>
<iframe id="previewhasil" src="" style="width: 100%; height: 500px; border: none;"></iframe>
</div>
</form>
</div>
</div>
</div>
<div id="divperiksa">
<form id="kt_form" enctype="multipart/form-data">
<div class="row">
<div class="col-sm-12">
<div class="card-box">
<button type="button" class="btn btn-custom btn-rounded w-md waves-effect waves-light pull-right btnshowtemplate"><i class="mdi mdi-upload"></i> Template</button>
<div class="media mt-0 m-b-30">
<img class="d-flex mr-3 rounded-circle" alt="Logo MyLIS" src="{{ asset('logo.png') }}" style="width: 48px; height: 48px;">
<div class="media-body">
<h5 class="media-heading mb-0 mt-0" id="judultemplate">Template</h5>
<span class="badge badge-danger" id="kesimpulan">Spesimen</span>
</div>
</div>
<table class="table table-striped">
<tr>
<td>Nomor LAB</td>
<td>Tanggal Periksa</td>
<td>Pasien</td>
<td>Dokter Pengirim</td>
</tr>
<tr>
<td><p id="nofoto"></p></td>
<td><p id="tanggalregis"></p></td>
<td><p id="nonama"></p></td>
<td><p id="klinisi"></p></td>
</tr>
</table>
</div>
</div>
<div class="col-sm-4">
<div class="card-box ribbon-box">
<div class="ribbon ribbon-success">Patient ID</div>
<p class="m-b-0"></p>
<ul class="nav nav-tabs tabs-bordered nav-justified">
<li class="nav-item">
<a href="#home-b2" data-toggle="tab" aria-expanded="false" class="nav-link active">
<i class="fi-monitor mr-2"></i> Patient ID
</a>
</li>
<li class="nav-item">
<a href="#profile-b2" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-head mr-2"></i> History
</a>
</li>
</ul>
<div class="form-row">
<div class="form-group col-lg-12">
<ul class="nav nav-tabs tabs-bordered nav-justified">
<li class="nav-item">
<a href="#home-b2" data-toggle="tab" aria-expanded="false" class="nav-link active">
<i class="fi-monitor mr-2"></i> Patient ID
</a>
</li>
<li class="nav-item">
<a href="#profile-b2" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-head mr-2"></i> History
</a>
</li>
</ul>
</div>
</div>
<div class="tab-content">
<div class="tab-pane active" id="home-b2">
<table class="table table-striped">
@@ -159,10 +175,6 @@
<td>Register Number</td>
<td><input type="text" id="norm" name="norm" class="form-control" readonly></td>
</tr>
<tr>
<td>Name</td>
<td><input type="text" id="nonama" name="nonama" class="form-control" readonly></td>
</tr>
<tr>
<td>Gender, Age</td>
<td><span id="nokel"></span>, <span id="nousia"></span></td>
@@ -187,17 +199,12 @@
<td>Asal Pengambilan</td>
<td id="asalpengirim"></td>
</tr>
<tr>
<td>Spesimen</td>
<td id="kesimpulan"></td>
</tr>
<tr>
<td>Status</td>
<td id="nostatus"></td>
</tr>
</table>
</div>
<div class="tab-pane" id="profile-b2">
<div class="form-group">
@@ -218,10 +225,6 @@
<td>Order</td>
<td id="noservis"></td>
</tr>
<tr>
<td>Dokter Pengirim</td>
<td id="klinisi"></td>
</tr>
<tr>
<td>Asal Pasien</td>
<td id="asalpasien"></td>
@@ -315,13 +318,13 @@
<label for="bhp_cottonswab" class="col-form-label">Cotton Swab</label>
<input type="text" id="bhp_cottonswab" name="bhp_cottonswab" class="form-control isiandasar">
</div>
<div class="form-group col-lg-2">
<div class="form-group col-lg-3">
<label for="bhp_antibiotiktambahan" class="col-form-label">Antibiotik Tambahan</label>
<input type="text" id="bhp_antibiotiktambahan" name="bhp_antibiotiktambahan" class="form-control isiandasar">
</div>
</div>
<div class="form-group">
<button type="button" class="btn btn-primary waves-effect waves-light" id="btnshowtemplate"><i class="fa fa-gears"></i> Template</button>
<button type="button" class="btn btn-primary waves-effect waves-light btnshowtemplate"><i class="fa fa-gears"></i> Template</button>
<div id="divtemplate">
<div id="gridtemplate"></div>
</div>
@@ -431,7 +434,7 @@
@php
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
@endphp
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
<option value="{{ $value['name'] }}">{{ $mikroorganismestlist[$i] }} - {!! $value['name'] !!}</option>
@php
}
@endphp
@@ -654,141 +657,103 @@
<label class="col-form-label">Pertumbuhan Koloni (Kultur Primer):</label>
</div>
<div class="form-group col-lg-12">
<label class="col-form-label">Kirby bauer :</label>
<div class="form-row">
<div class="form-group col-lg-4">
<label for="id_kbamc" class="col-form-label">AMC</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kbamc" name="id_kbamc">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkbamc" name="id_sirkbamc">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
<div style="overflow: hidden; display: none;">
<label for="id_kblef" class="col-form-label">LEV</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kblef" name="id_kblef">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkblef" name="id_sirkblef">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
<div class="form-group col-lg-4">
<label for="id_kbak" class="col-form-label">AK</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kbak" name="id_kbak">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkbak" name="id_sirkbak">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
<div class="form-group col-lg-4">
<label for="id_kbfos" class="col-form-label">FOS</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kbfos" name="id_kbfos">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkbfos" name="id_sirkbfos">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
</div>
<div class="form-row">
<div class="form-group col-lg-4">
<label for="id_kbscf" class="col-form-label">SCF</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kbscf" name="id_kbscf">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkbscf" name="id_sirkbscf">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
</div>
</div>
<table class="table table-striped table-bordered">
<tr>
<td colspan="8" style="text-align: center;">Kirby bauer</td>
</tr>
<tr>
<td colspan="2" style="text-align: center;"><strong>AMC</strong></td>
<td colspan="2" style="text-align: center;"><strong>AK</strong></td>
<td colspan="2" style="text-align: center;"><strong>FOS</strong></td>
<td colspan="2" style="text-align: center;"><strong>SCF</strong></td>
</tr>
<tr>
<td>
<select class="form-control pilihankirby" id="id_kbamc" name="id_kbamc">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_sirkbamc" name="id_sirkbamc">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_kbak" name="id_kbak">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_sirkbak" name="id_sirkbak">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_kbfos" name="id_kbfos">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_sirkbfos" name="id_sirkbfos">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_kbscf" name="id_kbscf">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</td>
<td>
<select class="form-control pilihankirby" id="id_sirkbscf" name="id_sirkbscf">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</td>
</tr>
</table>
</div>
<div class="form-group col-lg-12">
<label for="id_biakankultur" class="col-form-label">Biakan Kultur (Aerob / Anaerob)</label>
@@ -805,38 +770,84 @@
<span class="badge badge-primary">C. Tes Kepekaan Antibiotika: (S: Sensitif ; I : Intermediate ; R: Resisten)</span>
</div>
<div class="form-group col-lg-12">
<ul class="nav nav-tabs tabs-bordered nav-justified">
<li class="nav-item">
<a href="#media_bap" data-toggle="tab" aria-expanded="false" class="nav-link active">
<i class="fi-monitor mr-2"></i> Media BAP
</a>
</li>
<li class="nav-item">
<a href="#media_cap" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media CAP
</a>
</li>
<li class="nav-item">
<a href="#media_mcconkey" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media Mc Conkey
</a>
</li>
<li class="nav-item">
<a href="#media_sda" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Kultur Jamur
</a>
</li>
<li class="nav-item">
<a href="#media_sellainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media Selektif lainnya
</a>
</li>
<li class="nav-item">
<a href="#media_tamlainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Pemeriksaan Tambahan Lainnya
</a>
</li>
</ul>
<div class="form-row">
<div class="form-group col-lg-12">
<div class="card">
<div class="card-body">
<h5 class="card-title">Ringkasan Hasil Terakhir</h5>
<h6 class="card-subtitle text-muted" id="last_updated">Diperbaharui :</h6>
</div>
<div class="card-body row">
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
<div class="card-box tilebox-one">
<i class="icon-layers float-right text-muted"></i>
<h6 class="text-muted text-uppercase mt-0">Media BAP</h6>
<h2 class="m-b-20" id="status_bap_status">-</h2>
<span class="badge badge-primary" id="badge_bap_status"> - </span>
</div>
</div>
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
<div class="card-box tilebox-one">
<i class="icon-layers float-right text-muted"></i>
<h6 class="text-muted text-uppercase mt-0">Media CAP</h6>
<h2 class="m-b-20" id="status_cap_status">-</h2>
<span class="badge badge-danger" id="badge_cap_status"> - </span>
</div>
</div>
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
<div class="card-box tilebox-one">
<i class="icon-layers float-right text-muted"></i>
<h6 class="text-muted text-uppercase mt-0">Mc Conkey</h6>
<h2 class="m-b-20" id="status_mcconkey_status">-</h2>
<span class="badge badge-info" id="badge_mcconkey_status"> - </span>
</div>
</div>
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
<div class="card-box tilebox-one">
<i class="icon-layers float-right text-muted"></i>
<h6 class="text-muted text-uppercase mt-0">Media Jamur</h6>
<h2 class="m-b-20" id="status_jamur_status">-</h2>
<span class="badge badge-warning" id="badge_jamur_status"> - </span>
</div>
</div>
</div>
</div>
</div>
<div class="form-group col-lg-12">
<ul class="nav nav-tabs tabs-bordered nav-justified">
<li class="nav-item">
<a href="#media_bap" data-toggle="tab" aria-expanded="false" class="nav-link active">
<i class="fi-monitor mr-2"></i> Media BAP
</a>
</li>
<li class="nav-item">
<a href="#media_cap" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media CAP
</a>
</li>
<li class="nav-item">
<a href="#media_mcconkey" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media Mc Conkey
</a>
</li>
<li class="nav-item">
<a href="#media_sda" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Kultur Jamur
</a>
</li>
<li class="nav-item">
<a href="#media_sellainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Media Selektif lainnya
</a>
</li>
<li class="nav-item">
<a href="#media_tamlainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
<i class="fi-monitor mr-2"></i> Pemeriksaan Tambahan Lainnya
</a>
</li>
</ul>
</div>
</div>
<div class="tab-content">
<div class="tab-pane active" id="media_bap">
<div class="card">
@@ -1148,7 +1159,7 @@
@php
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
@endphp
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
<option value="{{ $value['name'] }}">{{ $mikroorganismestlist[$i] }} - {!! $value['name'] !!}</option>
@php
}
@endphp
@@ -3320,6 +3331,30 @@
<input type="hidden" name="template_jenis" id="template_jenis">
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
<div style="overflow: hidden; display: none;">
<label for="id_kblef" class="col-form-label">LEV</label>
<div class="form-row">
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_kblef" name="id_kblef">
<option value="">Pilih Salah Satu</option>
<option value="Tidak dilakukan">Tidak dilakukan</option>
@php
$mulai = 1;
while ($mulai != 43){
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
$mulai++;
}
@endphp
</select>
</div>
<div class="form-group col-lg-6">
<select class="form-control pilihankirby" id="id_sirkblef" name="id_sirkblef">
<option value="">Pick</option>
<option value="S">S</option>
<option value="I">I</option>
<option value="R">R</option>
</select>
</div>
</div>
<div class="form-group">
<select class="form-control ekspertiseseletc" id="bakterimediabap" name="bakterimediabap">
<option value="">Pilih Salah Satu</option>
@@ -3384,6 +3419,7 @@
refreshBtn.addEventListener('click', function () {
$('#divperiksa').hide();
$('#divreadonly').hide();
$('#divpreview').hide();
$('#divawal').show();
});
});
@@ -4058,6 +4094,115 @@
data: { nofoto: idne, komponen: 'Media Tambahan Lainnya', keterangan:'generatetblpertumbuhankoloni', _token: '{{csrf_token()}}' },
url: '{{ route("getResult") }}',
};
var summaryKoloni = {
bap: [],
cap: [],
mcconkey: [],
sdar1: [],
sdar2: [],
sdai1: [],
sdai2: [],
};
var summaryJamurKeys = ['sdar1', 'sdar2', 'sdai1', 'sdai2'];
var summaryGridMap = {
bap: '#gridmediabap',
cap: '#gridmediacap',
mcconkey: '#gridmediamcconkey',
sdar1: '#gridmediasdar1',
sdar2: '#gridmediasdar2',
sdai1: '#gridmediasdai1',
sdai2: '#gridmediasdai2',
};
function resetSummaryPertumbuhanKoloni()
{
$('#status_bap_status, #status_cap_status, #status_mcconkey_status, #status_jamur_status').html('-');
$('#badge_bap_status, #badge_cap_status, #badge_mcconkey_status, #badge_jamur_status').html(' - ');
$('#last_updated').html('Diperbaharui :');
}
function valueSummaryPertumbuhanKoloni(value)
{
return value === null || value === undefined || value === '' ? '-' : value;
}
function timestampSummaryPertumbuhanKoloni(row)
{
if (!row) {
return 0;
}
var timestamp = row.updated_at || row.tglpenyimpanan || '';
if (timestamp === '') {
return 0;
}
var parsed = Date.parse(String(timestamp).replace(' ', 'T'));
return isNaN(parsed) ? 0 : parsed;
}
function newestSummaryPertumbuhanKoloni(rows)
{
var newest = null;
$.each(rows || [], function(index, row) {
if (!newest || timestampSummaryPertumbuhanKoloni(row) >= timestampSummaryPertumbuhanKoloni(newest)) {
newest = row;
}
});
return newest;
}
function lastSummaryPertumbuhanKoloni(rows)
{
rows = rows || [];
return rows.length > 0 ? rows[rows.length - 1] : null;
}
function updateSummaryPertumbuhanKoloni()
{
var bap = lastSummaryPertumbuhanKoloni(summaryKoloni.bap);
var cap = lastSummaryPertumbuhanKoloni(summaryKoloni.cap);
var mcconkey = lastSummaryPertumbuhanKoloni(summaryKoloni.mcconkey);
var jamurRows = [];
var lastUpdatedRow = null;
$.each(summaryKoloni, function(key, rows) {
$.each(rows || [], function(index, row) {
if (!lastUpdatedRow || timestampSummaryPertumbuhanKoloni(row) > timestampSummaryPertumbuhanKoloni(lastUpdatedRow)) {
lastUpdatedRow = row;
}
});
});
$.each(summaryJamurKeys, function(index, key) {
jamurRows = jamurRows.concat(summaryKoloni[key] || []);
});
var jamur = newestSummaryPertumbuhanKoloni(jamurRows);
$('#status_bap_status').html(valueSummaryPertumbuhanKoloni(bap ? bap.kuman : null));
$('#badge_bap_status').html(valueSummaryPertumbuhanKoloni(bap ? bap.status : null));
$('#status_cap_status').html(valueSummaryPertumbuhanKoloni(cap ? cap.kuman : null));
$('#badge_cap_status').html(valueSummaryPertumbuhanKoloni(cap ? cap.status : null));
$('#status_mcconkey_status').html(valueSummaryPertumbuhanKoloni(mcconkey ? mcconkey.kuman : null));
$('#badge_mcconkey_status').html(valueSummaryPertumbuhanKoloni(mcconkey ? mcconkey.status : null));
$('#status_jamur_status').html(valueSummaryPertumbuhanKoloni(jamur ? jamur.kuman : null));
$('#badge_jamur_status').html(valueSummaryPertumbuhanKoloni(jamur ? jamur.status : null));
$('#last_updated').html('Diperbaharui : ' + valueSummaryPertumbuhanKoloni(lastUpdatedRow ? (lastUpdatedRow.updated_at || lastUpdatedRow.tglpenyimpanan) : null));
}
function bindSummaryPertumbuhanKoloni()
{
$.each(summaryGridMap, function(key, selector) {
$(selector).off('bindingcomplete.summaryKoloni').on('bindingcomplete.summaryKoloni', function() {
summaryKoloni[key] = $(selector).jqxGrid('getrows') || [];
updateSummaryPertumbuhanKoloni();
});
});
}
resetSummaryPertumbuhanKoloni();
bindSummaryPertumbuhanKoloni();
$("#gridmediabap").jqxGrid({
width : '100%',
source : srcjsonbap,
@@ -4975,12 +5120,14 @@
console.log('Displaying template for DLP: '+dlp);
if (dlp == 'CCI'){
$('#templatecci').show();
$('#judultemplate').html('CCI');
} else if (dlp == 'Kultur'){
$('#templatekultur').show();
$('#pewarnaangiemsaselect').show();
$('#pewarnaangiemsateks').hide();
$('#pewarnaankohselect').show();
$('#pewarnaankohteks').hide();
$('#judultemplate').html('Kultur');
jQueryCreateTabelPertumbuhanKoloni();
} else if (dlp == 'Pewarna Langsung'){
$('#lsg_pewarnaankohselect').show();
@@ -4988,15 +5135,20 @@
$('#lsg_pewarnaangiesmaselect').show();
$('#lsg_pewarnaangiesmateks').hide();
$('#templatepewarnaanlangsung').show();
$('#judultemplate').html('Pewarna Langsung');
} else if (dlp == 'TBC'){
$('#templatetbc').show();
$('.hasilpemeriksaantb').hide();
$('#judultemplate').html('TBC');
} else if (dlp == 'Viral Load'){
$('#templateviralload').show();
$('#judultemplate').html('Viral Load');
} else if (dlp == 'IgM IgG Leptospira'){
$('#templateleptospira').show();
$('#judultemplate').html('IgM IgG Leptospira');
} else if (dlp == 'PCR COVID'){
$('#templatecovid').show();
$('#judultemplate').html('PCR COVID');
}
console.log('Finished loading komponen jawaban for DLP: '+dlp+' | No.Foto: '+nofoto+' | ID Periksa: '+idne);
}
@@ -5274,7 +5426,7 @@
$("#template_jenis").val(dataRecord.dlp);
$("#nofoto").html(dataRecord.nofoto);
$("#norm").val(dataRecord.noregister);
$("#nonama").val(dataRecord.nmpasien);
$("#nonama").html(dataRecord.nmpasien);
$("#nokel").html(dataRecord.jkpasien);
$("#nousia").html(dataRecord.usia);
$("#noservis").html(dataRecord.tlsreques);
@@ -5568,7 +5720,10 @@
var masterk = document.getElementById('master_kelompok').value;
var home = '{{URL::to("/")}}';
var alamat = home+'/hasil/'+dataRecord.nofoto;
window.open(alamat,'_blank');
$("#divpreview").show();
$("#divawal").hide();
$("#previewhasil").attr('src', alamat);
$("#linkpengambilan").attr('href', alamat);
}
},
{ text: 'Acc.No', datafield: 'tlsnofoto', width: 100, align: 'center', cellsalign: 'center'},
@@ -5648,6 +5803,7 @@
$('#divperiksa').hide();
$('#divreadonly').hide();
$('#divharibytanggal').hide();
$('#divpreview').hide();
$("#btnuntukgridmediabap").click(function() {
$('#modalgridmediabap').modal('show');
$('#idpertumbuhankoloni').val('new');
@@ -6475,9 +6631,98 @@
$("#btnopenmodalcancel").click(function() {
$("#modalpembatalan").modal('show');
});
$("#btnshowtemplate").click(function() {
$(".btnshowtemplate").click(function() {
$('#divtemplate').show();
});
$(".btnsavepewarnaanlsg").click(function(){
var keterangan = CKEDITOR.instances['keterangan'].getData();
var lsg_pewarnaanlain = CKEDITOR.instances['lsg_pewarnaanlain'].getData();
var viralload = CKEDITOR.instances['viralload'].getData();
var periksa_id = document.getElementById('periksa_id').value;
var template_jenis = document.getElementById('template_jenis').value;
var id_dokter = document.getElementById('dokter').value;
var acc_number = document.getElementById('nofoto').value;
var nostatus = document.getElementById('nostatus').value;
var addendumketerangan = CKEDITOR.instances['addendumketerangan'].getData();
if (addendumketerangan == '' && nostatus == 'Selesai'){
swal({
title : 'Stop',
text : 'Addendum Keterangan Wajib Di Isi',
type : 'warning',
})
return false;
} else if (addendumketerangan == '' && nostatus == 'Arsip'){
swal({
title : 'Stop',
text : 'Addendum Keterangan Wajib Di Isi',
type : 'warning',
})
return false;
} else {
const checkboxMap = {
inlineCheckbox1: 'TBC SO',
inlineCheckbox2: 'TBC RO',
inlineCheckbox3: 'Anak',
inlineCheckbox4: 'HIV',
inlineCheckbox5: 'DM',
inlineCheckbox6: 'Nanah Lendir',
inlineCheckbox7: 'Bercak darah',
inlineCheckbox8: 'Air liur',
inlineCheckbox9: 'Nanah Lendir',
inlineCheckbox10: 'Bercak darah',
inlineCheckbox11: 'Air liur',
};
const checkboxValues = {};
$.each(checkboxMap, function (id, label) {
checkboxValues[id] = $(`#${id}`).is(':checked') ? label : '';
});
var formdata = new FormData($('#kt_form')[0]);
formdata.set('periksa_id', periksa_id);
formdata.set('acc_number', acc_number);
formdata.set('val01', 'statuspewarnaanlsg');
formdata.set('val10', template_jenis);
formdata.set('keterangan', keterangan);
formdata.set('addendumketerangan', addendumketerangan);
formdata.set('lsg_pewarnaanlain', lsg_pewarnaanlain);
formdata.set('viralload', viralload);
formdata.set('nilai_kritis', $('#nilai_kritis').is(':checked') ? '1' : '0');
formdata.set('master_mikro', $('#master_lokasi').val());
formdata.set('_token', '{{ csrf_token() }}');
$.each(checkboxValues, (key, val) => formdata.set(key, val));
$.ajax({
url : '{{ route("exexpertisepacs") }}',
data : formdata,
type : 'POST',
contentType : false,
processData : false,
success: function (data) {
$("#gridpemeriksaan").jqxGrid('updatebounddata','filter');
$("#gridadendum").jqxGrid('updatebounddata','filter');
var status = data.status;
var message = data.message;
var warna = data.warna;
var icon = data.icon;
$.toast({
heading : status,
text : message,
position : 'top-right',
loaderBg : warna,
icon : icon,
hideAfter : 5000,
stack : 1
});
return false;
},
error: function (xhr, status, error) {
swal({
title : 'Stop',
text : xhr.responseText,
type : 'warning',
})
}
});
}
});
$("#btnsendexpertisetopacs").click(function(){
var keterangan = CKEDITOR.instances['keterangan'].getData();
var lsg_pewarnaanlain = CKEDITOR.instances['lsg_pewarnaanlain'].getData();
@@ -0,0 +1,160 @@
<div>
<div class="bio-step-panel">
<div class="bio-step-title">Pilih Lemari</div>
<div class="bio-choice-grid">
@forelse($cabinets as $cabinet)
<button type="button"
class="bio-choice {{ (int) $selectedCabinetId === (int) $cabinet->id ? 'active' : '' }}"
wire:click="selectCabinet({{ $cabinet->id }})">
<strong>{{ $cabinet->code }} - {{ $cabinet->name }}</strong>
<span>{{ $cabinet->location ?? 'Lokasi belum diisi' }}</span>
<small>{{ $cabinet->racks_count }} rack | {{ $cabinet->specimens_count }} tube terisi</small>
</button>
@empty
<div class="alert alert-warning m-b-0">Belum ada data lemari biorepository.</div>
@endforelse
</div>
</div>
@if($selectedCabinet)
<div class="d-flex justify-content-between align-items-center m-b-15">
<h5 class="m-b-0">{{ $selectedCabinet->code }} - {{ $selectedCabinet->name }}</h5>
<form method="POST" action="{{ route('biorepository.deleteCabinet', $selectedCabinet->id) }}" class="js-delete-cabinet">
@csrf
<button type="submit" class="btn btn-sm btn-danger">Delete Lemari</button>
</form>
</div>
<div class="bio-step-panel">
<div class="bio-step-title">Pilih Rack</div>
<div class="bio-choice-grid">
@forelse($selectedCabinet->racks as $rack)
@php
$slotCount = (int) ($rack->slot_count ?: 1);
$shelfCount = (int) $rack->level;
$boxCount = (int) ($rack->box_number ?: 1);
$tubeCapacity = (int) $rack->capacity;
@endphp
<div class="bio-choice-wrap">
<button type="button"
class="bio-choice {{ (int) $selectedRackId === (int) $rack->id ? 'active' : '' }}"
wire:click="selectRack({{ $rack->id }})">
<strong>{{ $rack->code }} - {{ $rack->name }}</strong>
<span>Rack No {{ $rack->rack_number ?? $rack->id }}</span>
<small>{{ $slotCount }} slot | {{ $shelfCount }} shelf/slot | {{ $boxCount }} box/shelf | {{ $tubeCapacity }} tube/box</small>
<small>Terisi: {{ $rack->specimens_count }}</small>
</button>
<form method="POST" action="{{ route('biorepository.deleteRack', $rack->id) }}" class="js-delete-rack bio-delete-form">
@csrf
<button type="submit" class="btn btn-xs btn-danger">Delete</button>
</form>
</div>
@empty
<div class="alert alert-light m-b-0">Belum ada rack pada lemari ini.</div>
@endforelse
</div>
</div>
@endif
@if($selectedRack)
@php
$slotCount = max(1, (int) ($selectedRack->slot_count ?: 1));
$shelfCount = max(0, (int) $selectedRack->level);
$boxCount = max(1, (int) ($selectedRack->box_number ?: 1));
$tubeCapacity = max(0, (int) $selectedRack->capacity);
$tubeMap = [];
foreach ($selectedRack->specimens as $item) {
if ($item->slot_number && $item->shelf_number && $item->box_number && $item->tube_number) {
$tubeMap[$item->slot_number.'-'.$item->shelf_number.'-'.$item->box_number.'-'.$item->tube_number] = $item;
}
}
@endphp
<div class="bio-step-panel">
<div class="bio-step-title">Pilih Slot</div>
<div class="bio-number-grid">
@for($slot = 1; $slot <= $slotCount; $slot++)
<button type="button"
class="bio-number {{ (int) $selectedSlot === $slot ? 'active' : '' }}"
wire:click="selectSlot({{ $slot }})">
Slot {{ $slot }}
</button>
@endfor
</div>
</div>
@if($selectedSlot)
<div class="bio-step-panel">
<div class="bio-step-title">Pilih Shelf</div>
<div class="bio-number-grid">
@for($shelf = 1; $shelf <= $shelfCount; $shelf++)
<button type="button"
class="bio-number {{ (int) $selectedShelf === $shelf ? 'active' : '' }}"
wire:click="selectShelf({{ $shelf }})">
Shelf {{ $shelf }}
</button>
@endfor
</div>
</div>
@endif
@if($selectedSlot && $selectedShelf)
<div class="bio-step-panel">
<div class="bio-step-title">Pilih Box</div>
<div class="bio-number-grid">
@for($box = 1; $box <= $boxCount; $box++)
<button type="button"
class="bio-number {{ (int) $selectedBox === $box ? 'active' : '' }}"
wire:click="selectBox({{ $box }})">
Box {{ $box }}
</button>
@endfor
</div>
</div>
@endif
@if($selectedSlot && $selectedShelf && $selectedBox)
<div class="bio-step-panel">
<div class="bio-step-title">Tube List</div>
@if($tubeCapacity > 0)
<div class="tube-grid">
@for($tube = 1; $tube <= $tubeCapacity; $tube++)
@php $tubeKey = $selectedSlot.'-'.$selectedShelf.'-'.$selectedBox.'-'.$tube; @endphp
@if(isset($tubeMap[$tubeKey]))
<button type="button"
class="slot-btn slot-filled js-slot-filled"
data-specimen-id="{{ $tubeMap[$tubeKey]->id }}"
data-rack-id="{{ $selectedRack->id }}"
data-shelf="{{ $selectedShelf }}"
data-rackno="{{ $selectedRack->rack_number ?? $selectedRack->id }}"
data-slot="{{ $selectedSlot }}"
data-box="{{ $selectedBox }}"
data-tube="{{ $tube }}"
data-bakteri="{{ $tubeMap[$tubeKey]->bacteria_name ?? $tubeMap[$tubeKey]->specimen_name }}"
data-strain="{{ $tubeMap[$tubeKey]->strain }}"
data-volume="{{ $tubeMap[$tubeKey]->volume ?? 0 }}"
title="{{ $tubeMap[$tubeKey]->specimen_code }} - {{ $tubeMap[$tubeKey]->bacteria_name ?? $tubeMap[$tubeKey]->specimen_name }} / {{ $tubeMap[$tubeKey]->strain }}">
<span>{{ $tube }}</span>
<small>{{ $tubeMap[$tubeKey]->volume ?? 0 }} ml</small>
</button>
@else
<button type="button"
class="slot-btn js-slot"
data-rack-id="{{ $selectedRack->id }}"
data-shelf="{{ $selectedShelf }}"
data-rackno="{{ $selectedRack->rack_number ?? $selectedRack->id }}"
data-slot="{{ $selectedSlot }}"
data-box="{{ $selectedBox }}"
data-tube="{{ $tube }}">
{{ $tube }}
</button>
@endif
@endfor
</div>
@else
<div class="alert alert-light m-b-0">Konfigurasi tube belum lengkap.</div>
@endif
</div>
@endif
@endif
</div>