ESH/appointment_management.php

883 lines
29 KiB
PHP
Raw Normal View History

2024-10-23 18:28:06 +05:30
<?php
include ('techsyn_header.php');
include ('log_entry.php');
?>
<!-- Main Content Container for side bar and body-->
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<?php include('techsyn_sidebar.php'); ?>
<!--breadcrumb-->
<div class="main-content">
<div class="main-content-inner">
<div class="breadcrumbs ace-save-state" id="breadcrumbs">
<ul class="breadcrumb">
<li><i class="ace-icon fa fa-home home-icon"></i> <a href="#">Home</a>
</li>
<li class="#">Appointment List</li>
</ul>
</div>
<!-- End of breadcrumb -->
<div class="page-content">
<div class="box box-primary"
style="padding: 10px; margin: 2px 0px 50px 5px; width: 99.5%;">
<form id="task_form" method="post">
<!-- box-body-->
<div class="box-body">
<div class="col-sm-2"></div>
<div class="col-sm-8">
<div class="row">
<div class="form-group">
<label class="col-sm-2 control-label no-padding-right"
for="form-field-first">Name<span style="color: red">*</span></label>
<div class="col-sm-4">
<?php include('patient_search_list.php'); ?>
<input type="hidden"
name="patient_id" id="patient_id" /> <input type="hidden"
name="flex_patient_id" id="flex_patient_id" />
</div>
<label class="col-sm-2 control-label" for="app_type">Appointment
Type</label>
<div class="col-sm-4">
<select id="app_type" name="app_type"
class="form-control select2">
<option value="" selected disabled>Choose Appointment Type?</option>
<option value="H">Home</option>
<option value="C">clinic visit</option>
</select>
</div>
</div>
</div>
<br> <br>
<div class="row">
<div class="form-group">
<label class="col-sm-2 control-label" for="phone_no">Contact
No.:</label>
<div class="col-sm-4">
<input type="text" class=" form-control" id="phone_no"
name="phone_no" placeholder="Contact No." data-max="12">
</div>
<label class="col-sm-2 control-label" for="email_id">Email ID:</strong></label>
<div class="col-sm-4">
<input type="text" class="form-control" id="email_id"
name="email_id" placeholder="Email ID" maxlength="50">
</div>
</div>
</div>
<br> <br>
<div class="row">
<div class="form-group">
<label class="control-label col-sm-2" for="appointment_date">Appointment
Date:</label>
<div class="col-sm-4">
<div class="input-group">
<input class="form-control"
id="appointment_date" name="appointment_date" type="text"
>
<span class="input-group-addon"> <i
class="ace-icon fa fa-calendar"></i>
</span>
</div>
</div>
<label class="col-sm-2 control-label" for="form-field-comment">TimeSlot</label>
<div class="col-sm-4 row">
<div class="col-sm-6">
<input type="time" class="form-control no-padding-left"
name="time_slot1" id="time_slot1">
</div>
<div class="col-sm-6">
<input type="time" class="form-control no-padding-left"
name="time_slot2" id="time_slot2">
</div>
</div>
</div>
</div>
<br> <br>
<div class="row">
<div class="form-group">
<label class="col-sm-2 control-label no-padding-right"
for="form-field-comment">Service</label>
<div class="col-sm-4">
<select class="form-control" name="service" id="service">
<?php echo generateOption('product_service_master','product_name','product_id','',''); ?>
</select>
</div>
<label class="col-sm-2 control-label" for="app_status">Appointment Status</label>
<div class="col-sm-4">
<select id="app_status" name="app_status" class="form-control select2">
<?php // echo "$_SESSION['role_id']"; ?>
<option value="" selected disabled>Appointment Status</option>
<option value="P" selected>PENDING</option>
<option value="C">CONFIRMED</option>
<option value="R">CANCEL</option>
</select>
</div>
</div>
</div>
<br> <br>
<div class="row">
<div class="form-group">
<label class="col-sm-2 control-label" for="form-field-comment">OHC
Center</label>
<div class="col-sm-10">
<select class="form-control" name="center" id="center">
<?php echo generateOption('ohc_type','address','ohc_type_id','1',''); ?>
</select>
</div>
</div>
</div>
<br> <br>
<div class="row">
<div class="form-group">
<label class="col-sm-2 control-label" for="form-field-comment">Remarks</label>
<div class="col-sm-10">
<textarea id="appointment_message" name="appointment_message"
placeholder="Message" rows="4" cols="8"
class="autosize-transition form-control"
style="overflow: hidden; overflow-wrap: break-word;"></textarea>
</div>
</div>
</div>
</div>
<div class="col-sm-2"></div>
<div class="row"></div>
</div>
<!-- End box-body-->
<!--box-footer-->
<div class="box-footer" style="text-align: center;">
<button class="btn btn-info save_button" id="save_button1"
type="button" onclick="validate();">
<i class="ace-icon fa fa-floppy-o bigger-110"></i> Save
</button>
<button class="btn btn-success new_button" id="new_button"
type="reset" onclick="show_save_button();">
<i class="ace-icon fa fa-plus-square-o bigger-110"></i> New
</button>
</div>
<!--End box-footer-->
</form>
</div>
<!--box box-primary-->
<!-- Main Content Container for side bar and body-->
<div class="main-container ace-save-state" id="main-container">
<script type="text/javascript">
try{ace.settings.loadState('main-container')}catch(e){}
</script>
<!-- End of breadcrumb -->
<div class="page-content" style="margin-top: -47px;">
<div id="flexigridDiv" class="table-responsive">
<form name="f1" method="post" id="flex_appointment_form"
action="bio_medical_waste_generation_excel.php">
<div id="flex1" style="width: 100%">
<input type="hidden" name="appointment_id" id="appointment_id" />
</div>
</form>
<form name="export_form" method="post" id="export_form" action="">
<!-- <input type="hidden" name="flex_appointment_form" id="flex_appointment_form"/> -->
<!-- <input type="hidden" name="pdf_action" id="pdf_action" value="client_appointment_list_pdf.php"/> -->
<input type="hidden" name="excel_action" id="excel_action"
value="excel_client.php" />
</form>
</div>
</div>
</div>
<!-- /.page-content -->
<script type="text/javascript">
$(function() {
var w=screen.width*.85;
var h =0;
h =(window.innerHeight-($("#navbar").height()+$(".breadcrumbs").height()))*.55;
$("#flex1").flexigrid({
url: 'appointment_management_script.php',
dataType: 'json',
colModel : [
{display: 'Sr', name : 'count', width : w*.05, sortable : false, align: 'left'},
{display: '', name : 'links', width : w*.10, sortable : false, align: 'left'},
{display: 'Patient Name', name : 'patient_name', width : w*.15, sortable : true, align: 'left'},
{display: 'Contact Number', name : 'contact_no', width : w*.10, sortable : true, align: 'left'},
{display: 'Email ID', name : 'email_id', width : w*.10, sortable : true, align: 'left'},
{display: 'Date', name : 'appointment_date', width : w*.10, sortable : true, align: 'left'},
{display: 'Center', name : 'appointment_center', width : w*.10, sortable : true, align: 'left'},
{display: 'Type', name : 'appointment_type', width : w*.10, sortable : true, align: 'left'},
{display: 'Message', name : 'message', width : w*.10, sortable : true, align: 'left'},
{display: 'Time', name : 'appointment_time', width : w*.10, sortable : true, align: 'left'},
{display: 'Status', name : 'status', width : w*.07, sortable : false, align: 'left'}
],
buttons : [
// {name: 'Add', bclass: 'add', onpress : add},
//{separator: true},
//{name: 'PDFReport', bclass: 'print', onpress : pdfReport},
// {separator: true},
{name: 'PDF', bclass: 'print', onpress : pdf},
{separator: true},
{name: 'Excel', bclass: 'print_excel', onpress : excel},
{separator: true}
],
searchitems : [
{display: 'Name', name : 'patient_name'},
{display: 'Contact No.', name : 'contact_no'},
{display: 'Email ID', name : 'email_id'},
{display: 'Time', name : 'appointment_time'},
{display: 'Center (1,2,3..)', name : 'appointment_center'},
],
sortname: "appointment_id",
sortorder: "asc",
usepager: true,//pagination
//title:"Employee OPD",
useRp: true,
rp: 20,//records per page
showTableToggleBtn: false,//toggle button for the whole table
resizable: true,
// width: w,
height: h,
singleSelect: true
});
});
// function open_frequency(flex_ambulance_id,action){
// if(action=="V"){
// //$(".save_button").hide()
// location.href="ambulance_details.php?flex_ambulance_id="+flex_ambulance_id+"";
// $(".save_button").hide()
// }else{
// location.href="ambulance_details.php?flex_ambulance_id="+flex_ambulance_id+"";
// }
// }
function delete_client_appointment(appointment_id){
$.ajax({
url : 'delete_client_appointment_list.php',
data: {appointment_id:appointment_id},
type : 'POST',
dataType:'json',
success : function(data) {
if(data=='SUCCESS') {
BootstrapDialog.alert('Deleted Appointment Details Successfully');
$("#flex1").flexReload();
return;
}
},
error : function(data) {
BootstrapDialog.alert('Error Appointment Details Successfully');
return;
}
});
}
function show_save_button(){
$("#save_button1").show()
}
function open_client_appointment(appointment_id,access){
if(access=='V'){
$("#save_button1").hide()
}else if(access=='E')
$("#save_button1").show()
$.ajax({
url : 'select_client_appointment_list.php',
data:{appointment_id:appointment_id},
type : 'POST',
dataType:'json',
success : function(data) {
$("#appointment_id").val(data.appointment_id);
$("#full_name").val(data.patient_name);
$("#contact_number").val(data.contact_no);
$("#email_id").val(data.email_id);
$("#appointment_date").val(data.appointment_date);
$("#center").val(data.appointment_center);
$("#service").val(data.appointment_service);
//$("#time_slot").val(data.appointment_time);
$("#appointment_message").val(data.message);
var s=data.appointment_time;
var ts=s.split(' - ');
$("#time_slot1").val(ts[0]);
$("#time_slot2").val(ts[1]);
},
error : function(data) {
BootstrapDialog.alert('Error Populating Appointment Details');
return;
}
});
}
function pdf(){
window.open('pdf_client.php');
}
function excel(){
window.open('excel_client.php');
}
function myDateFormat(date){
var d=new Date(date);
var day=d.getDate();
var m=d.getMonth()+1;
var y=d.getFullYear();
return day+"-"+m+"-"+y;
}
function validate(){
save();
}
</script>
<?php include('techsyn_footer.php'); ?>
</div>
<!-- End of page-content -->
</div>
</div>
</div>
<style>
#modal-add-ailment {
overflow-y: scroll;
}
</style>
<script type="text/javascript">
$('.select2').select2()
jQuery(function($) {
var myTable =
$('#dynamic-table')
.DataTable( {
bAutoWidth: false,
"aoColumns": [
{ "bSortable": false },
null, null,null, null, null,
{ "bSortable": false }
],
"aaSorting": [],
select: {
style: 'multi'
}
} );
var defaultCopyAction = myTable.button(1).action();
myTable.button(1).action(function (e, dt, button, config) {
defaultCopyAction(e, dt, button, config);
$('.dt-button-info').addClass('gritter-item-wrapper gritter-info gritter-center white');
});
var defaultColvisAction = myTable.button(0).action();
myTable.button(0).action(function (e, dt, button, config) {
defaultColvisAction(e, dt, button, config);
if($('.dt-button-collection > .dropdown-menu').length == 0) {
$('.dt-button-collection')
.wrapInner('<ul class="dropdown-menu dropdown-light dropdown-caret dropdown-caret" />')
.find('a').attr('href', '#').wrap("<li />")
}
$('.dt-button-collection').appendTo('.tableTools-container .dt-buttons')
});
setTimeout(function() {
$($('.tableTools-container')).find('a.dt-button').each(function() {
var div = $(this).find(' > div').first();
if(div.length == 1) div.tooltip({container: 'body', title: div.parent().text()});
else $(this).tooltip({container: 'body', title: $(this).text()});
});
}, 500);
myTable.on( 'select', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', true);
}
} );
myTable.on( 'deselect', function ( e, dt, type, index ) {
if ( type === 'row' ) {
$( myTable.row( index ).node() ).find('input:checkbox').prop('checked', false);
}
} );
$('th input[type=checkbox], td input[type=checkbox]').prop('checked', false);
$('#dynamic-table > thead > tr > th input[type=checkbox], #dynamic-table_wrapper input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;
$('#dynamic-table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) myTable.row(row).select();
else myTable.row(row).deselect();
});
});
$('#dynamic-table').on('click', 'td input[type=checkbox]' , function(){
var row = $(this).closest('tr').get(0);
if(this.checked) myTable.row(row).deselect();
else myTable.row(row).select();
});
$(document).on('click', '#dynamic-table .dropdown-toggle', function(e) {
e.stopImmediatePropagation();
e.stopPropagation();
e.preventDefault();
});
var active_class = 'active';
$('#simple-table > thead > tr > th input[type=checkbox]').eq(0).on('click', function(){
var th_checked = this.checked;
$(this).closest('table').find('tbody > tr').each(function(){
var row = this;
if(th_checked) $(row).addClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', true);
else $(row).removeClass(active_class).find('input[type=checkbox]').eq(0).prop('checked', false);
});
});
$('#simple-table').on('click', 'td input[type=checkbox]' , function(){
var $row = $(this).closest('tr');
if($row.is('.detail-row ')) return;
if(this.checked) $row.addClass(active_class);
else $row.removeClass(active_class);
});
$('[data-rel="tooltip"]').tooltip({placement: tooltip_placement});
function tooltip_placement(context, source) {
var $source = $(source);
var $parent = $source.closest('table')
var off1 = $parent.offset();
var w1 = $parent.width();
var off2 = $source.offset();
if( parseInt(off2.left) < parseInt(off1.left) + parseInt(w1 / 2) ) return 'right';
return 'left';
}
/***************/
$('.show-details-btn').on('click', function(e) {
e.preventDefault();
$(this).closest('tr').next().toggleClass('open');
$(this).find(ace.vars['.icon']).toggleClass('fa-angle-double-down').toggleClass('fa-angle-double-up');
});
/***************/
})
function save(){
$.ajax({
url : 'save_appointment_management.php ',
type : "POST",
data : $("#task_form").serialize(),
success : function(data) {
// alert(data);
BootstrapDialog.alert('Appointment Details Saved Successfully.');
$("#flex1").flexReload();
return;
},
error : function(data) {
BootstrapDialog.alert('Error Saving Appointment Details');
return;
}
});
$('.close').click();
// location.href="procurement_list.php";
}
// $('.date-picker').datepicker({
// autoclose:true,
// format:'dd/mm/yyyy'
// }).next().on(ace.click_event,function(){
// $(this).prev().focus();
// });
</script>
<!-- bootstrap & fontawesome -->
<link rel="stylesheet"
href="assets/font-awesome/4.5.0/css/font-awesome.min.css" />
<!-- page specific plugin styles -->
<link rel="stylesheet" href="assets/css/jquery-ui.custom.min.css" />
<link rel="stylesheet" href="assets/css/chosen.min.css" />
<link rel="stylesheet" href="assets/css/bootstrap-datepicker3.min.css" />
<link rel="stylesheet" href="assets/css/bootstrap-timepicker.min.css" />
<link rel="stylesheet" href="assets/css/daterangepicker.min.css" />
<link rel="stylesheet"
href="assets/css/bootstrap-datetimepicker.min.css" />
<link rel="stylesheet" href="assets/css/bootstrap-colorpicker.min.css" />
<script type="text/javascript" src="js/typeahead.bundle.js"></script>
<script src="assets/js/jquery-ui.custom.min.js"></script>
<script src="assets/js/jquery.ui.touch-punch.min.js"></script>
<script src="assets/js/chosen.jquery.min.js"></script>
<script src="assets/js/spinbox.min.js"></script>
<script src="assets/js/bootstrap-datepicker.min.js"></script>
<script src="assets/js/bootstrap-timepicker.min.js"></script>
<script src="assets/js/jquery.dataTables.min.js"></script>
<script src="assets/js/jquery.dataTables.bootstrap.min.js"></script>
<script src="assets/js/dataTables.buttons.min.js"></script>
<script src="assets/js/buttons.flash.min.js"></script>
<script src="assets/js/buttons.html5.min.js"></script>
<script src="assets/js/buttons.print.min.js"></script>
<script src="assets/js/buttons.colVis.min.js"></script>
<script src="assets/js/dataTables.select.min.js"></script>
<script src="assets/js/moment.min.js"></script>
<script src="assets/js/daterangepicker.min.js"></script>
<script src="assets/js/bootstrap-datetimepicker.min.js"></script>
<script src="assets/js/bootstrap-colorpicker.min.js"></script>
<script src="assets/js/jquery.knob.min.js"></script>
<script src="assets/js/autosize.min.js"></script>
<script src="assets/js/jquery.inputlimiter.min.js"></script>
<script src="assets/js/jquery.maskedinput.min.js"></script>
<script src="assets/js/bootstrap-tag.min.js"></script>
<script src="assets/js/ace-elements.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
var counter = $("#count_items").val();
//alert (counter);
$("#addrow").on("click", function () {
var newRow = $("<tr>");
var task_frequency_option = $("#task_frequency0").html();
var ohc_type_option = $("#ohc_type0").html();
console.log("task_frequency_option"+task_frequency_option);
var cols = "";
cols += '<td><input type="text" class="form-control" id="frequency_name' + counter + '" name="frequency_name' + counter + '"/></td>';
cols += '<td><input type="text" class="form-control" id="frequency_code' + counter + '" name="frequency_code' + counter + '"/></td>';
cols += '<td align="center"><a href="#" class="btn-lg" data-toggle="tooltip" id="deletebtn" title="Delete"><span class="glyphicon glyphicon-trash"></span></a></td>';
newRow.append(cols);
$("#myTable").append(newRow);
/*$('#item_id'+counter).chosen({allow_single_deselect:true});
$('#item_id'+counter).next().css({'width': $('#item_id'+counter).parent().width()});*/
counter++;
$('.select2').select2()
$("#count_items").val(counter);
// $('.date-picker').datepicker({
// autoclose: true,
// todayHighlight: true
// })
});
$("#myTable").on("click", "#deletebtn", function (event) {
$(this).closest("tr").remove();
counter -= 1
$("#count_items").val(counter);
});
});
</script>
<script type="text/javascript">
jQuery(function($) {
$('#id-disable-check').on('click', function() {
var inp = $('#form-input-readonly').get(0);
if(inp.hasAttribute('disabled')) {
inp.setAttribute('readonly' , 'true');
inp.removeAttribute('disabled');
inp.value="This text field is readonly!";
}
else {
inp.setAttribute('disabled' , 'disabled');
inp.removeAttribute('readonly');
inp.value="This text field is disabled!";
}
});
if(!ace.vars['touch']) {
$('.chosen-select').chosen({allow_single_deselect:true});
$(window)
.off('resize.chosen')
.on('resize.chosen', function() {
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
}).trigger('resize.chosen');
//resize chosen on sidebar collapse/expand
$(document).on('settings.ace.chosen', function(e, event_name, event_val) {
if(event_name != 'sidebar_collapsed') return;
$('.chosen-select').each(function() {
var $this = $(this);
$this.next().css({'width': $this.parent().width()});
})
});
$('#chosen-multiple-style .btn').on('click', function(e){
var target = $(this).find('input[type=radio]');
var which = parseInt(target.val());
if(which == 2) $('#form-field-select-4').addClass('tag-input-style');
else $('#form-field-select-4').removeClass('tag-input-style');
});
}
$('[data-rel=tooltip]').tooltip({container:'body'});
$('[data-rel=popover]').popover({container:'body'});
autosize($('textarea[class*=autosize]'));
$('textarea.limited').inputlimiter({
remText: '%n character%s remaining...',
limitText: 'max allowed : %n.'
});
//"jQuery UI Slider"
//range slider tooltip example
$( "#slider-range" ).css('height','200px').slider({
orientation: "vertical",
range: true,
min: 0,
max: 100,
values: [ 17, 67 ],
slide: function( event, ui ) {
var val = ui.values[$(ui.handle).index()-1] + "";
if( !ui.handle.firstChild ) {
$("<div class='tooltip right in' style='display:none;left:16px;top:-6px;'><div class='tooltip-arrow'></div><div class='tooltip-inner'></div></div>")
.prependTo(ui.handle);
}
$(ui.handle.firstChild).show().children().eq(1).text(val);
}
}).find('span.ui-slider-handle').on('blur', function(){
$(this.firstChild).hide();
});
$( "#slider-range-max" ).slider({
range: "max",
min: 1,
max: 10,
value: 2
});
$( "#slider-eq > span" ).css({width:'90%', 'float':'left', margin:'15px'}).each(function() {
// read initial values from markup and remove that
var value = parseInt( $( this ).text(), 10 );
$( this ).empty().slider({
value: value,
range: "min",
animate: true
});
});
$("#slider-eq > span.ui-slider-purple").slider('disable');//disable third item
$('#id-input-file-1 , #id-input-file-2').ace_file_input({
no_file:'No File ...',
btn_choose:'Choose',
btn_change:'Change',
droppable:false,
onchange:null,
thumbnail:false //| true | large
//whitelist:'gif|png|jpg|jpeg'
//blacklist:'exe|php'
//onchange:''
//
});
//pre-show a file name, for example a previously selected file
//$('#id-input-file-1').ace_file_input('show_file_list', ['myfile.txt'])
//datepicker plugin
//link
// $('.date-picker').datepicker({
// autoclose: true,
// todayHighlight: true
// })
// //show datepicker when clicking on the icon
// .next().on(ace.click_event, function(){
// $(this).prev().focus();
// });
//chosen plugin inside a modal will have a zero width because the select element is originally hidden
//and its width cannot be determined.
//so we set the width after modal is show
$('#modal-form').on('shown.bs.modal', function () {
if(!ace.vars['touch']) {
$(this).find('.chosen-container').each(function(){
$(this).find('a:first-child').css('width' , '210px');
$(this).find('.chosen-drop').css('width' , '210px');
$(this).find('.chosen-search input').css('width' , '200px');
});
}
})
/**
//or you can activate the chosen plugin after modal is shown
//this way select element becomes visible with dimensions and chosen works as expected
$('#modal-form').on('shown', function () {
$(this).find('.modal-chosen').chosen();
})
*/
$(document).one('ajaxloadstart.page', function(e) {
autosize.destroy('textarea[class*=autosize]')
$('.limiterBox,.autosizejs').remove();
// $('.daterangepicker.dropdown-menu,.colorpicker.dropdown-menu,.bootstrap-datetimepicker-widget.dropdown-menu').remove();
});
});
</script>
<script>
$("#generate_pdf").on("click", function(){
// $("#medical_examination_form").submit(function(e){
// e.preventDefault();
// });
document.forms['task_form'].action="pdf_client.php";
document.forms['task_form'].method="post";
document.forms['task_form'].submit();
});
$("#contact_number").change(function (e) {
e.preventDefault();
var keyObj = $("#contact_number");
var maxLength = parseInt(keyObj.attr('data-max'));
if((keyObj).val().length !== maxLength){
BootstrapDialog.alert("Phone Number should be of 10 digits");
$(this).val('');
}
});
$('#appointment_date').datepicker({
format: 'dd/mm/yyyy',//use this option to display seconds
defaultDate:new Date(),
endDate: "+30d",
//minDate: new Date()-10,
icons: {
time: 'fa fa-clock-o',
date: 'fa fa-calendar',
up: 'fa fa-chevron-up',
down: 'fa fa-chevron-down',
previous: 'fa fa-chevron-left',
next: 'fa fa-chevron-right',
today: 'fa fa-arrows ',
clear: 'fa fa-trash',
close: 'fa fa-times'
}
}).datepicker("setDate", new Date());
</script>