billing: add ABHA create/verify tab in patient billing view and update IPD panel package; add hospital logo image
This commit is contained in:
parent
3c4dff6285
commit
eac78b7014
|
|
@ -1,4 +1,18 @@
|
|||
<!-- Main content -->
|
||||
<style>
|
||||
/* Hide browser autocomplete suggestions */
|
||||
input:-webkit-autofill,
|
||||
input:-webkit-autofill:hover,
|
||||
input:-webkit-autofill:focus {
|
||||
-webkit-box-shadow: 0 0 0 1000px white inset !important;
|
||||
box-shadow: 0 0 0 1000px white inset !important;
|
||||
}
|
||||
|
||||
/* Hide autocomplete dropdown suggestions */
|
||||
input:autofill {
|
||||
background-color: white !important;
|
||||
}
|
||||
</style>
|
||||
<section class="content">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
|
@ -21,6 +35,11 @@
|
|||
data-bs-target="#lastopd" type="button" role="tab" aria-controls="lastopd"
|
||||
aria-selected="false" data-url="<?= base_url('billing/patient/search_opd') ?>">Last OPDs</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="abha-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#abha" type="button" role="tab" aria-controls="abha"
|
||||
aria-selected="false">ABHA Create/Verify</button>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content pt-2" id="patientTabsContent">
|
||||
<div class="tab-pane fade" id="nperson" role="tabpanel" aria-labelledby="nperson-tab">
|
||||
|
|
@ -243,11 +262,127 @@
|
|||
</span>
|
||||
</div>
|
||||
</form>
|
||||
<div id="search_loading" class="alert alert-info mt-2" style="display:none;">
|
||||
<span class="spinner-border spinner-border-sm me-2" role="status" aria-hidden="true"></span>
|
||||
<span id="search_loading_text">Searching...</span>
|
||||
</div>
|
||||
<div class="searchresult"></div>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="lastopd" role="tabpanel" aria-labelledby="lastopd-tab">
|
||||
|
||||
</div>
|
||||
<div class="tab-pane fade" id="abha" role="tabpanel" aria-labelledby="abha-tab">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h6 class="card-title">ABHA Number Create and Verify</h6>
|
||||
<p class="text-muted">Create and verify your unique health identification number</p>
|
||||
|
||||
<ul class="nav nav-tabs" id="abhaSubTabs" role="tablist">
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link active" id="abha-create-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#abha-create" type="button" role="tab" aria-controls="abha-create"
|
||||
aria-selected="true">Create ABHA</button>
|
||||
</li>
|
||||
<li class="nav-item" role="presentation">
|
||||
<button class="nav-link" id="abha-verify-tab" data-bs-toggle="tab"
|
||||
data-bs-target="#abha-verify" type="button" role="tab" aria-controls="abha-verify"
|
||||
aria-selected="false">Verify ABHA</button>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content pt-3" id="abhaSubTabsContent">
|
||||
<div class="tab-pane fade show active" id="abha-create" role="tabpanel" aria-labelledby="abha-create-tab">
|
||||
<form id="abha_create_form" class="needs-validation" novalidate>
|
||||
<?= csrf_field() ?>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group mb-3">
|
||||
<label class="form-label">Aadhaar Number</label>
|
||||
<input type="text" class="form-control" id="abha_create_aadhaar"
|
||||
name="aadhaar" placeholder="12-digit Aadhaar" required
|
||||
data-inputmask='"mask": "9999-9999-9999"' data-mask>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group mb-3">
|
||||
<label class="form-label">Mobile Number</label>
|
||||
<input type="text" class="form-control" id="abha_create_mobile"
|
||||
name="mobile" placeholder="10-digit Mobile" required
|
||||
data-inputmask='"mask": "9999999999"' data-mask>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group mb-3">
|
||||
<label class="form-label">Full Name</label>
|
||||
<input type="text" class="form-control" id="abha_create_name"
|
||||
name="full_name" placeholder="Patient Full Name" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group mb-3">
|
||||
<label class="form-label">Gender</label>
|
||||
<select class="form-select" id="abha_create_gender" name="gender" required>
|
||||
<option value="">Select Gender</option>
|
||||
<option value="M">Male</option>
|
||||
<option value="F">Female</option>
|
||||
<option value="O">Other</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group mb-3">
|
||||
<label class="form-label">Date of Birth</label>
|
||||
<input type="date" class="form-control" id="abha_create_dob"
|
||||
name="dob" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<button type="submit" class="btn btn-primary">Generate OTP & Create ABHA</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane fade" id="abha-verify" role="tabpanel" aria-labelledby="abha-verify-tab">
|
||||
<form id="abha_verify_form" class="needs-validation" novalidate>
|
||||
<?= csrf_field() ?>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group mb-3">
|
||||
<label class="form-label">ABHA Number / Health ID</label>
|
||||
<input type="text" class="form-control" id="abha_verify_number"
|
||||
name="abha_number" placeholder="ABHA Number" required>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group mb-3">
|
||||
<label class="form-label">Aadhaar or Mobile</label>
|
||||
<input type="text" class="form-control" id="abha_verify_mobile"
|
||||
name="mobile_aadhaar" placeholder="Enter Mobile or Aadhaar" required>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<button type="submit" class="btn btn-success">Verify ABHA</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -274,9 +409,21 @@
|
|||
|
||||
$('form.form2').on('submit', function(form) {
|
||||
form.preventDefault();
|
||||
var searchBtn = $('form.form2 button[type="submit"]');
|
||||
var loadingDiv = $('#search_loading');
|
||||
|
||||
// Show loading indicator and disable button
|
||||
loadingDiv.show();
|
||||
searchBtn.prop('disabled', true);
|
||||
searchBtn.text('Searching...');
|
||||
|
||||
$.post('<?= base_url('billing/patient/search') ?>', $('form.form2').serialize(), function(data) {
|
||||
$('div.searchresult').html(data);
|
||||
$('#example1').DataTable();
|
||||
|
||||
// Hide loading indicator and re-enable button
|
||||
loadingDiv.hide();
|
||||
searchBtn.prop('disabled', false);
|
||||
searchBtn.text('Go!');
|
||||
});
|
||||
});
|
||||
|
||||
|
|
@ -377,6 +524,10 @@
|
|||
});
|
||||
|
||||
$("#input_name")
|
||||
.on("focus", function() {
|
||||
// Suppress browser autocomplete suggestions
|
||||
$(this).removeAttr('readonly').off('mousedown.autocomplete');
|
||||
})
|
||||
// don't navigate away from the field on tab when selecting an item
|
||||
.on("keydown", function(event) {
|
||||
if (event.keyCode === $.ui.keyCode.TAB &&
|
||||
|
|
@ -515,7 +666,7 @@
|
|||
function onchange_title() {
|
||||
var d = $('#cbo_title').val();
|
||||
|
||||
if (d == "Mr." || d == "Master" || d == "Baby Boy") {
|
||||
if (d == "Mr." || d == "Master" || d == "Baby Boy" || d == "Mohd.") {
|
||||
$("#options_gender1").prop("checked", true);
|
||||
} else {
|
||||
$("#options_gender2").prop("checked", true);
|
||||
|
|
|
|||
|
|
@ -12,6 +12,45 @@ $ayushmanButtonClass = $isAyushmanCase ? 'accordion-button' : 'accordion-button
|
|||
$ayushmanChecklistItems = $ayushman_checklist_items ?? [];
|
||||
?>
|
||||
|
||||
<style>
|
||||
/* Select2 - match Bootstrap form-select-sm sizing */
|
||||
#package_list_id + .select2-container .select2-selection--single {
|
||||
height: calc(1.5em + 0.5rem + 2px);
|
||||
padding: 0.25rem 0.5rem;
|
||||
font-size: 0.875rem;
|
||||
border: 1px solid #ced4da;
|
||||
border-radius: 0.25rem;
|
||||
}
|
||||
#package_list_id + .select2-container .select2-selection--single .select2-selection__rendered {
|
||||
line-height: calc(1.5em + 0.5rem);
|
||||
padding-left: 0.4rem;
|
||||
color: #212529;
|
||||
}
|
||||
#package_list_id + .select2-container .select2-selection--single .select2-selection__arrow {
|
||||
height: calc(1.5em + 0.5rem);
|
||||
top: 0;
|
||||
}
|
||||
#package_list_id + .select2-container--open .select2-selection--single {
|
||||
border-color: #86b7fe;
|
||||
outline: 0;
|
||||
box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
|
||||
}
|
||||
.select2-dropdown {
|
||||
border: 1px solid #ced4da;
|
||||
border-radius: 0.25rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
.select2-container--default .select2-search--dropdown .select2-search__field {
|
||||
border: 1px solid #ced4da;
|
||||
border-radius: 0.2rem;
|
||||
padding: 0.25rem 0.5rem;
|
||||
font-size: 0.875rem;
|
||||
}
|
||||
.select2-results__option--highlighted {
|
||||
background-color: #0d6efd !important;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="card border-top border-3 border-danger">
|
||||
<div class="card-header">
|
||||
<strong>IPD Package</strong>
|
||||
|
|
@ -110,7 +149,7 @@ $ayushmanChecklistItems = $ayushman_checklist_items ?? [];
|
|||
<div class="row g-2">
|
||||
<div class="col-md-12">
|
||||
<label class="form-label">Package Name</label>
|
||||
<select class="form-select form-select-sm" id="package_list_id" onchange="ipdPackageSetRate()">
|
||||
<select class="form-select form-select-sm select2" id="package_list_id" onchange="ipdPackageSetRate()" style="width:100%">
|
||||
<option value="">Select</option>
|
||||
<?php foreach ($package_list ?? [] as $row) : ?>
|
||||
<?php $displayAmount = (float) ($row->amount1 ?? $row->Pakage_Min_Amount ?? 0); ?>
|
||||
|
|
@ -277,10 +316,6 @@ $ayushmanChecklistItems = $ayushman_checklist_items ?? [];
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php else : ?>
|
||||
<div class="alert alert-light border mt-3 mb-0">
|
||||
Ayushman Bharat treatment search is shown automatically for cases where insurance or scheme contains Ayushman or PMJAY.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -332,6 +367,19 @@ $ayushmanChecklistItems = $ayushman_checklist_items ?? [];
|
|||
var ipdAyushmanClaimSheetUrl = '<?= site_url('billing/ipd/panel/' . $ipdId . '/ayushman/claim-sheet') ?>';
|
||||
var ipdAyushmanResults = {};
|
||||
|
||||
// Initialize Select2 on package list select
|
||||
(function initPackageSelect2() {
|
||||
if (window.jQuery && $.fn && $.fn.select2) {
|
||||
$('#package_list_id').select2({
|
||||
placeholder: 'Search package...',
|
||||
allowClear: true,
|
||||
width: '100%'
|
||||
}).on('select2:select select2:clear', function() {
|
||||
ipdPackageSetRate();
|
||||
});
|
||||
}
|
||||
})();
|
||||
|
||||
function normalizeText(value) {
|
||||
return String(value || '')
|
||||
.toLowerCase()
|
||||
|
|
|
|||
BIN
public/assets/images/hospital_logo_20260507_183044_245e94f7.png
Normal file
BIN
public/assets/images/hospital_logo_20260507_183044_245e94f7.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 112 KiB |
Loading…
Reference in New Issue
Block a user