1418 lines
58 KiB
PHP
Executable File

<?php
if($nurse->submited_for_verification=='yes' && $nurse->verification_status=='verified'){
?>
<!-- styling -->
<style type="text/css">
.trnct{
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
word-break: break-all;
}
.trnct.by1{
-webkit-line-clamp: 1;
}
.trnct.by2{
-webkit-line-clamp: 2;
}
.trnct.by3{
-webkit-line-clamp: 3;
}
.flex-start-g1{
display: flex;
justify-content: flex-start;
gap:1rem;
}
.flex-sp-bt-g1{
display: flex;
justify-content: space-between;
gap:1.5rem;
}
.cntr{
display: flex;
justify-content: center;
align-items: center;
}
.disabled-link{
pointer-events: none;
color: #999;
cursor: not-allowed;
text-decoration: none;
}
.fw-bold-light{
font-weight: 600;
}
.my-scroll:not(.hov){
width:0px !important;
}
.my-scroll.hov::-webkit-scrollbar{
width:0px !important;
}
.my-scroll.hov:hover::-webkit-scrollbar{
width:3px !important;
}
.my-scroll::-webkit-scrollbar-track{
background: #f1f1f1 !important;
}
.my-scroll::-webkit-scrollbar-thumb{
background: #888 !important;
}
.my-scroll::-webkit-scrollbar-thumb:hover{
background: #555 !important;
}
/*##~~##*/
.dashboard-quick-cards{
border-radius: 10px;
transition: 0.4s;
border:1px solid rgba(0, 0, 0, 0.1);
margin-bottom: 1.5rem;
}
.dashboard-quick-cards:not(.disable-crd):hover{
box-shadow:5px 20px 50px rgba(0, 0, 0, 0.1);
transition:0.4s;
transform: scale(1.05);
}
.dashboard-quick-cards .card-body{
padding: 2rem 0.7rem 2rem 1.5rem !important;
}
.main-heading{
color: #35393E;
font-family: Quicksand;
font-size: 22.7px;
font-style: normal;
font-weight: 700;
margin-bottom: 0px;
text-align: start;
}
.sub-heading{
color: #9EA4AB;
font-family: Quicksand;
font-size: 13.04px;
font-style: normal;
margin-bottom: 0px;
/*margin-top: 10px;*/
}
.prcntg-badge{
width: fit-content;
flex-shrink: 0;
border-radius: 19.5px;
background: #DFF3FF;
padding: 4px 9px;
font-size: 11px;
/*margin-top: 10px;*/
display: inline-block;
position: absolute;
bottom: 10px;
right: 10px;
}
.prcntg-badge.fall{
background:rgba(250, 68, 7,0.25) !important;
}
.prcntg-badge i{
transform: rotate(45deg);
}
.card-logo{
display: flex;
justify-content: center;
align-items: center;
height: 52px;
}
.card-logo img{
height: 45px;
}
.dashboard-basic-cards{
border-radius: 10px;
transition: 0.4s;
border:1px solid rgba(0, 0, 0, 0.1);
overflow-y: auto !important;
overflow-x: hidden !important;
/*max-height: 400px !important;
min-height: 400px !important;*/
height: 393px;
}
.dashboard-basic-cards:hover{
box-shadow:5px 20px 50px rgba(0, 0, 0, 0.1);
transition:0.4s;
transform: scale(1.01);
}
.dashboard-basic-cards::-webkit-scrollbar {
width: 0px;
}
.dashboard-basic-cards:hover::-webkit-scrollbar {
width: 3px;
}
.dashboard-basic-cards::-webkit-scrollbar-track {
background: #f1f1f1;
}
.dashboard-basic-cards::-webkit-scrollbar-thumb {
background: #888;
}
.dashboard-basic-cards::-webkit-scrollbar-thumb:hover {
background: #555;
}
.dashboard-basic-cards .card-body{
padding: 1.2rem !important;
}
.w-m-y-filter-box-2{
position: absolute;
top: 10px;
right: 10px;
}
.w-m-y-filter-box-2 .dropdown-toggle{
color: #909BB0;
font-family: Quicksand;
background: #EAF1FF;
border: none !important;
font-size: 9px !important;
border-radius: 5px !important;
padding: 5px 10px !important;
font-weight: 600;
cursor: pointer;
}
.w-m-y-filter-box-2 .dropdown-menu{
font-size: 11px;
min-width: max-content !important;
}
.w-m-y-filter-box-2 .dropdown-menu .dropdown-item {
padding: 5px 20px !important;
}
.link-pointer {
/*position: absolute;
top: 12px;
right: 12px;*/
transform: rotate(-120deg);
padding: 5px 9px;
border-radius: 50%;
background: #F3F8FC;
/*box-shadow: 0px -1px 0px 0px rgba(0,0,0,0.1);*/
}
.link-pointer.abs {
position: absolute;
top: 10px;
right: 10px;
}
.link-pointer i{
color: rgba(0,0,0,0.5);
}
/*calender-scheduling*/
.dashboard-basic-cards[data-card-name="daily_scheduled"] > .card-body{
padding:0px !important;
height:100% !important;
}
.moment-calender-wrapper{
width: 100%;
height:inherit;
margin-right:auto !important;
margin-left:auto !important;
}
.moment-calender-wrapper .dsh-block-1{
padding:15px 20px !important;
}
.moment-calender-wrapper .dsh-block-1 .calender-button{
margin-bottom: 10px;
}
.moment-calender-wrapper .dsh-block-1 .calender-button .round-button {
display: inline-block;
width: 29px;
height: 29px;
border-radius: 50%;
background-color: #f3f8fc;
color: #797c7e;
text-align: center;
line-height: 22px;
font-size: 14px;
cursor: pointer;
margin: 0px 5px;
border: none;
padding: 5px 9px;
}
.moment-calender-wrapper .dsh-block-1 .calender-button .preview-month{
margin-top: 5px;
}
.moment-calender-wrapper .dsh-block-1 table#calendar {
font-family: Arial, sans-serif;
border-collapse: collapse;
width: 100%;
font-size: 11px;
}
.moment-calender-wrapper .dsh-block-1 table#calendar th, #calendar td {
text-align: center;
padding: 13px;
}
.moment-calender-wrapper .dsh-block-1 table#calendar th {
color: #5fc0fe;
}
.moment-calender-wrapper .dsh-block-1 table#calendar td:hover {
cursor: pointer;
}
.moment-calender-wrapper .dsh-block-1 table#calendar .today {
background-color: #5fc0fe;
color: white;
border-radius: 10%;
}
.moment-calender-wrapper .dsh-block-2{
padding:15px 5px !important;
background:#F8F9FB;
height:inherit;
}
.moment-calender-wrapper .dsh-list-container{
overflow-y: auto;
height:inherit;
}
.dsh-ul-list{
list-style-type: none;
padding-inline-start: 0px !important;
}
.dsh-ul-list::-webkit-scrollbar {
width: 0px;
}
.dsh-ul-list:hover::-webkit-scrollbar {
width: 3px;
}
.dsh-ul-list::-webkit-scrollbar-track {
background: #f1f1f1;
}
.dsh-ul-list::-webkit-scrollbar-thumb {
background: #888;
}
.dsh-ul-list::-webkit-scrollbar-thumb:hover {
background: #555;
}
.daily-scheduled-list-cards{
border-radius: 10px;
transition: 0.1s;
border:1px solid rgba(0, 0, 0, 0.1);
fill: #FFF;
/*filter: drop-shadow(0px 1.399999976158142px 6px rgba(0, 0, 0, 0.06));*/
margin-bottom: 7px;
}
.daily-scheduled-list-cards[area-active='true']:hover{
border:2px solid #5FC0FE;
}
.daily-scheduled-list-cards.active[area-active='true']{
border-left: 3px solid #5FC0FE;
}
.daily-scheduled-list-cards .card-body .dsh-time{
color: #9EA4AB;
font-family: Quicksand;
font-size: 12px;
font-style: normal;
margin-bottom: 0px;
}
.daily-scheduled-list-cards .card-body .dsh-title{
color: #35393E;
font-family: Quicksand;
font-size: 13px;
font-style: normal;
font-weight: 500;
margin-bottom: 0px;
margin-top: 0px;
}
.daily-scheduled-list-cards .dsh-visit-forms .dropdown-menu{
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
}
.ul-gvftdr4rdr {
list-style-type: none;
font-size: 10px;
background: rgba(0,0,0,0.01);
padding: 10px;
margin-bottom: 8px;
border-radius: 10px;
border: 1px solid #ddd;
}
.ul-gvftdr4rdr li{
display: inline-block;
margin-right: 2px;
}
/*calender-scheduling*/
/*media-query*/
@media screen and (max-width: 576px) {
.dashboard-quick-cards .card-body{
text-align: center !important;
}
}
@media screen and (max-width: 992px) {
.dashboard-basic-cards{
max-height: 700px;
height: auto;
}
.dashboard-basic-cards[data-card-name="daily_scheduled"]{
height: 700px !important;
}
.moment-calender-wrapper .dsh-block-2{
height: 300px !important;
}
}
/*media-query*/
.disable-crd{
opacity:0.5 !important;
cursor: default !important;
}
.visit-resume{
display: none;
}
.dynamic-modal-gftcfg5rt{
padding: 0 !important;
}
</style>
<!-- styling -->
<!-- content -->
<input type="hidden" class="hms-cg-schedule-id" value="0">
<div class="app-content content" data-dashboard="caregiver">
<div class="row px-2 pt-1">
<div class="col-lg-3 col-md-4 col-sm-6">
<div class="card dashboard-cards dashboard-quick-cards cursor-pointer" data-card-name="patients_list">
<div class="card-body">
<div class="flex-start-g1">
<div class="card-logo">
<img src="<?=base_url()?>common/assets/assets/images/admin_dashboard/icon-1.png">
<div class="dropdown w-m-y-filter-box-2">
<span class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false" data-filter-type="">...</span>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" onclick="ajax_get_cdb_data({'filter':'week','card_name':'patients_list'})">Weekly</a>
<a class="dropdown-item" onclick="ajax_get_cdb_data({'filter':'month','card_name':'patients_list'})">Monthly</a>
<a class="dropdown-item" onclick="ajax_get_cdb_data({'filter':'year','card_name':'patients_list'})">Yearly</a>
</div>
</div>
</div>
<div class="card-info">
<p class="sub-heading trnct by1">My Patients List</p>
<p class="main-heading trnct by1">...</p>
<span class="prcntg-badge">
<i class="fa fa-arrow-up" aria-hidden="true"></i> ...
</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-3 col-md-4 col-sm-6">
<div class="card dashboard-cards dashboard-quick-cards cursor-pointer" data-card-name="available_services">
<div class="card-body">
<div class="flex-start-g1">
<div class="card-logo">
<img src="<?=base_url()?>common/assets/assets/images/admin_dashboard/icon-3.png">
</div>
<div class="card-info">
<p class="sub-heading trnct by1">Available Patient Visits</p>
<p class="main-heading">...</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-3 col-md-4 col-sm-6">
<div class="card dashboard-cards dashboard-quick-cards cursor-pointer" data-card-name="documentation_reporting">
<div class="card-body">
<div class="flex-sp-bt-g1">
<div class="flex-start-g1">
<div class="card-logo">
<img src="<?=base_url()?>common/assets/assets/images/admin_dashboard/icon-5.png">
</div>
<div class="card-info cntr">
<p class="sub-heading trnct by2 font-weight-bold">Documentation & Reporting</p>
</div>
</div>
<div class="cntr">
<a class="link-pointer"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-3 col-md-4 col-sm-6">
<div class="card dashboard-cards dashboard-quick-cards cursor-pointer" data-card-name="resources_education">
<div class="card-body">
<div class="flex-sp-bt-g1">
<div class="flex-start-g1">
<div class="card-logo">
<img src="<?=base_url()?>common/assets/assets/images/admin_dashboard/icon-6.png">
</div>
<div class="card-info cntr">
<p class="sub-heading trnct by2 font-weight-bold">Resources & Education</p>
</div>
</div>
<div class="cntr">
<a class="link-pointer"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row px-2">
<div class="col-lg-8">
<div class="card dashboard-cards dashboard-basic-cards" data-card-name="daily_scheduled">
<div class="card-body">
<div class="row moment-calender-wrapper">
<div class="col-lg-6 dsh-block-1">
<div class="calender-button">
<div class="float-left">
<h5 class="card-title font-weight-bold preview-month">Daily Schedule</h5>
</div>
<div class="float-right">
<button class="round-button" onclick="previousMonth()">
<i class="fa fa-chevron-left"></i>
</button>
<button class="round-button" onclick="nextMonth()">
<i class="fa fa-chevron-right"></i>
</button>
</div>
</div>
<table id="calendar">
<thead>
<tr>
<th>S</th>
<th>M</th>
<th>T</th>
<th>W</th>
<th>T</th>
<th>F</th>
<th>S</th>
</tr>
</thead>
<tbody id="calendar-body"></tbody>
</table>
</div>
<div class="col-lg-6 dsh-block-2">
<div class="dsh-list-container my-scroll hov">
<ul class="ul-gvftdr4rdr">
<li>
<i class="fa fa-circle mr-1 text-danger" aria-hidden="true" title="Unconfirmed"></i>Unconfirmed
</li>
<li>
<i class="fa fa-circle mr-1 text-info" aria-hidden="true" title="Upcoming"></i>Upcoming
</li>
<li>
<i class="fa fa-circle mr-1 text-success" aria-hidden="true" title="Ongoing"></i>Ongoing
</li>
<li>
<i class="fa fa-circle mr-1 text-primary" aria-hidden="true" title="Completed"></i>Completed
</li>
<li>
<i class="fa fa-circle mr-1 text-warning" aria-hidden="true" title="Missed"></i>Missed
</li>
<li>
<i class="fa fa-circle mr-1 text-secondary" aria-hidden="true" title="Declined"></i>Declined
</li>
</ul>
<ul class="dsh-ul-list"></ul>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-4">
<div class="row">
<div class="col-lg-12">
<div class="card dashboard-cards dashboard-quick-cards cursor-pointer" data-card-name="recent_visits">
<div class="card-body">
<a class="link-pointer abs"><i class="fa fa-arrow-down" aria-hidden="true"></i></a>
<div class="flex-start-g1">
<!-- <div class="card-logo">
<div class="dropdown w-m-y-filter-box-2">
<span class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false" data-filter-type="">...</span>
<div class="dropdown-menu dropdown-menu-right">
<a class="dropdown-item" onclick="ajax_get_cdb_total_patients({'filter':'week'})">Weekly</a>
<a class="dropdown-item" onclick="ajax_get_cdb_total_patients({'filter':'month'})">Monthly</a>
<a class="dropdown-item" onclick="ajax_get_cdb_total_patients({'filter':'year'})">Yearly</a>
</div>
</div>
</div> -->
<div class="card-info">
<h4 class="mb-0 font-weight-bold">Visit History</h4>
<p class="sub-heading trnct by1">Recent Visits</p>
<p class="main-heading trnct by1">...</p>
<span class="prcntg-badge">
<i class="fa fa-arrow-up" aria-hidden="true"></i> ...
</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-12">
<div class="card dashboard-cards dashboard-quick-cards cursor-pointer disable-crd" data-card-name="start_visit" save-type="" style="background: #5FC0FE;">
<div class="card-body">
<div class="flex-sp-bt-g1">
<div class="card-info cntr">
<p class="main-heading text-white h3">Start Your Visit</p>
</div>
<div class="card-logo mr-2">
<span class="visit-pause">
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none">
<path opacity="0.4" d="M20.9487 38.5C30.6138 38.5 38.4487 30.6649 38.4487 21C38.4487 11.335 30.6138 3.5 20.9487 3.5C11.2838 3.5 3.44873 11.335 3.44873 21C3.44873 30.6649 11.2838 38.5 20.9487 38.5Z" fill="white"/>
<path d="M26.1964 17.9027L21.1214 14.9802C19.8614 14.2452 18.3389 14.2452 17.0789 14.9802C15.8189 15.7152 15.0664 17.0102 15.0664 18.4802V24.3427C15.0664 25.7952 15.8189 27.1077 17.0789 27.8427C17.7089 28.2102 18.4089 28.3852 19.0914 28.3852C19.7914 28.3852 20.4739 28.2102 21.1039 27.8427L26.1789 24.9202C27.4389 24.1852 28.1914 22.8902 28.1914 21.4202C28.2264 19.9502 27.4739 18.6377 26.1964 17.9027Z" fill="white"/>
</svg>
</span>
<span class="visit-resume">
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none">
<path id="Vector" opacity="0.4" d="M20.9487 38.5C30.6138 38.5 38.4487 30.6649 38.4487 21C38.4487 11.335 30.6138 3.5 20.9487 3.5C11.2838 3.5 3.44873 11.335 3.44873 21C3.44873 30.6649 11.2838 38.5 20.9487 38.5Z" fill="white"/>
<path id="Vector_2" d="M16.8 14.25C15.8063 14.25 15 15.0059 15 15.9375V26.0625C15 26.9941 15.8063 27.75 16.8 27.75H18C18.9938 27.75 19.8 26.9941 19.8 26.0625V15.9375C19.8 15.0059 18.9938 14.25 18 14.25H16.8ZM24 14.25C23.0063 14.25 22.2 15.0059 22.2 15.9375V26.0625C22.2 26.9941 23.0063 27.75 24 27.75H25.2C26.1938 27.75 27 26.9941 27 26.0625V15.9375C27 15.0059 26.1938 14.25 25.2 14.25H24Z" fill="white"/>
</svg>
</span>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-12">
<div class="card dashboard-cards dashboard-quick-cards cursor-pointer disable-crd" data-card-name="add_notes" style="background: #69D499;">
<div class="card-body">
<div class="flex-sp-bt-g1">
<div class="card-info cntr">
<p class="main-heading text-white h3">Add Quick Notes</p>
</div>
<div class="card-logo mr-2">
<svg xmlns="http://www.w3.org/2000/svg" width="42" height="42" viewBox="0 0 42 42" fill="none">
<path opacity="0.4" d="M37.9053 18.27L36.1903 25.585C34.7204 31.9025 31.8153 34.4575 26.3553 33.9325C25.4803 33.8625 24.5353 33.705 23.5203 33.46L20.5803 32.76C13.2828 31.0275 11.0253 27.4225 12.7403 20.1075L14.4553 12.775C14.8053 11.2875 15.2253 9.99251 15.7503 8.92501C17.7978 4.69001 21.2803 3.55251 27.1253 4.93501L30.0478 5.61751C37.3803 7.33251 39.6203 10.955 37.9053 18.27Z" fill="white"/>
<path d="M26.3555 33.9327C25.2705 34.6677 23.9055 35.2802 22.243 35.8227L19.478 36.7327C12.5306 38.9727 8.8731 37.1002 6.6156 30.1527L4.3756 23.2402C2.1356 16.2927 3.9906 12.6177 10.9381 10.3777L13.7031 9.46767C14.4206 9.24017 15.1031 9.04767 15.7506 8.92517C15.2256 9.99267 14.8056 11.2877 14.4556 12.7752L12.7406 20.1077C11.0256 27.4227 13.2831 31.0277 20.5805 32.7602L23.5205 33.4602C24.5355 33.7052 25.4805 33.8627 26.3555 33.9327Z" fill="white"/>
<path d="M30.6064 18.3924C30.5014 18.3924 30.3964 18.3749 30.2739 18.3574L21.7864 16.205C21.0864 16.03 20.6664 15.3125 20.8414 14.6125C21.0164 13.9125 21.7339 13.4925 22.4339 13.6675L30.9214 15.82C31.6214 15.995 32.0414 16.7125 31.8664 17.4125C31.7264 17.9899 31.1839 18.3924 30.6064 18.3924Z" fill="white"/>
<path d="M25.4785 24.3073C25.3735 24.3073 25.2685 24.2898 25.146 24.2723L20.0535 22.9773C19.3535 22.8023 18.9335 22.0848 19.1085 21.3848C19.2835 20.6848 20.001 20.2648 20.701 20.4398L25.7935 21.7348C26.4935 21.9098 26.9135 22.6273 26.7385 23.3273C26.5985 23.9223 26.0735 24.3073 25.4785 24.3073Z" fill="white"/>
</svg>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- content -->
<!-- dynamic modal box -->
<div class="modal fade dynamic-modal-gftcfg5rt" id="dynamic_modal_gftcfg5rt" tabindex="-1" aria-labelledby="dynamic_modal_gftcfg5rt_label" aria-hidden="true" data-backdrop="static" focus="true" data-card-details="">
<div class="modal-dialog modal-dialog-centered modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="dynamic_modal_gftcfg5rt_label">...</h5>
<button type="button" class="close close-modal" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">
<i class="fa fa-times" aria-hidden="true"></i>
</span>
</button>
</div>
<div class="modal-body">loading...</div>
<div class="modal-footer m-0">loading...</div>
</div>
</div>
</div>
<!-- dynamic modal box -->
<!-- scripting -->
<script src="<?=base_url()?>common/js/utils.js"></script>
<script type="text/javascript">
const today = new Date();
let currentMonth = today.getMonth();
let currentYear = today.getFullYear();
$(document).ready(function(){
// var cdb_cards={
// 'patients_list',
// 'available_services',
// 'documentation_reporting',
// 'resources_education',
// 'daily_scheduled',
// 'recent_visits',
// 'start_visit',
// 'add_notes'
// };
ajax_get_cdb_data({
'filter':'week',
'card_name':'patients_list'
});
ajax_get_cdb_data({
'filter':'week',
'card_name':'available_services'
});
ajax_get_cdb_data({
'filter':'month',
'card_name':'recent_visits'
});
initialize_schedule_calendar(currentYear, currentMonth);
$('#dynamic_modal_gftcfg5rt').on('hidden.bs.modal',function(event){
$(this).find('modal-title').text('loading...');
$(this).find('.modal-body').html('loading...');
$(this).find('.modal-footer').html('loading...');
// $('.dynamic-modal-gftcfg5rt .save-dynamic-info').attr('data-save-type','');
});
});
$(document).on('click','.dashboard-quick-cards:not(.disable-crd)',function(event){
var preventClasses=event.target.classList;
if(['dropdown-item', 'dropdown-toggle'].some(value => preventClasses.contains(value))){
return false;
}else{
var req={};
req.card_name=$(this).attr('data-card-name');
req.filter=$(this).find('.w-m-y-filter-box-2 .dropdown-toggle').attr('data-filter-type');
if([
'patients_list',
'available_services',
'documentation_reporting',
'resources_education',
'recent_visits',
'start_visit',
'add_notes'
].includes(req.card_name)
){
var heading, link;
switch(req.card_name){
case 'patients_list':
link='CaregiversDashboard/myPatientsList?flt='+req.filter;
window.location.href=link;return false;
break;
case 'available_services':
link='CaregiversDashboard/availableServices';
window.location.href=link;return false;
break;
case 'documentation_reporting':
link='CaregiversDashboard/documentsList';
window.location.href=link;return false;
break;
case 'resources_education':
link='CaregiversDashboard/resourcesEducation';
// window.location.href=link;return false;
break;
case 'recent_visits':
link='CaregiversDashboard/recentVisits';
window.location.href=link;return false;
break;
case 'start_visit':
var dyn_data={};
dyn_data.schedule_id=$('.hms-cg-schedule-id').val();
dyn_data.info_type=$(this).attr('save-type');
if(dyn_data.info_type=='visit_clock_in'){
popup_clock_in_out({'save_type':dyn_data.info_type});
}else if(dyn_data.info_type=='visit_clock_out'){
ajax_get_dynamic_modal_data(dyn_data);
}
break;
case 'add_notes':
var dyn_data={};
dyn_data.schedule_id=$('.hms-cg-schedule-id').val();
dyn_data.info_type='visit_notes';
ajax_get_dynamic_modal_data(dyn_data);
break;
default:return false;
}
}
}
});
$(document).on('click','.daily-scheduled-list-cards[area-active="true"]',function(event){
var schedule_info=$(this).closest('li').attr('data-schedule-info');
$('.daily-scheduled-list-cards[area-active="true"]').removeClass('active');
$(this).addClass('active');
check_scheduling_actions(JSON.parse(schedule_info));
});
$(document).on('click','.dynamic-modal-gftcfg5rt .save-dynamic-info',function(event){
var trgt=$('.dynamic-modal-gftcfg5rt');
var dyn_data={};
dyn_data.save_type=$(this).attr('data-save-type');
if(dyn_data.save_type=='visit_notes'){
dyn_data.schedule_id=$('.hms-cg-schedule-id').val();
dyn_data.notes=trgt.find('.modal-body #visit_notes').val();
}else if(dyn_data.save_type=='visit_clock_out'){
popup_clock_in_out({'save_type':dyn_data.save_type});
return false;
}
ajax_save_dynamic_modal_data(dyn_data);
});
function ajax_get_dynamic_modal_data(req){
try{
var apiUrl="<?=base_url()?>CaregiversDashboard/hms_get_dynamic_info";
$.ajax({
type: 'GET',
url: apiUrl,
data: {
params: req
},
beforeSend: function(){
// console.log("fetching datas...");
},
success: function(response){
var response=$.parseJSON(response);
// console.log(response);
if(response.status==200){
req.details=response.data;
draw_into_dynamic_modal(req);
}
},
error: function(){
console.error("something bad happened while calling ajax-CaregiversDashboard/hms_get_dynamic_info");
},
complete: function(){
// console.log("completed fetching datas...");
}
});
}catch(error){
console.error(`Error occured in function ajax_get_dynamic_modal_data(); - ${error}`);
}
}
function ajax_save_dynamic_modal_data(req){
try{
var apiUrl="<?=base_url()?>CaregiversDashboard/hms_save_dynamic_info";
$.ajax({
type: 'POST',
url: apiUrl,
data: {
'<?=$this->security->get_csrf_token_name()?>' : '<?=$this->security->get_csrf_hash()?>',
body: req
},
beforeSend: function(){
// console.log("fetching datas...");
},
success: function(response){
var response=$.parseJSON(response);
Swal.fire({
position: 'center',
icon: response.status==200?'success':'error',
title: response.msg,
showConfirmButton: false,
timer: 3500
});
$('.dynamic-modal-gftcfg5rt').modal('hide');
if(response.status==200){
//...
}
},
error: function(){
console.error("something bad happened while calling ajax-CaregiversDashboard/ajax_save_dynamic_modal_data");
},
complete: function(){
// console.log("completed fetching datas...");
}
});
}catch(error){
console.error(`Error occured in function ajax_save_dynamic_modal_data(); - ${error}`);
}
}
function draw_into_dynamic_modal(data){
try{
if(data.info_type=='visit_notes'){
$('.dynamic-modal-gftcfg5rt .modal-title').text('Add Notes');
var html=`<div class="form-group">
<label for="visit_notes">Notes</label>
<textarea class="form-control" id="visit_notes" rows="3">${data.details.notes}</textarea>
</div>`;
$('.dynamic-modal-gftcfg5rt .modal-body').html(html);
var html=`<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary save-dynamic-info" data-save-type="${data.info_type}">Save</button>`;
$('.dynamic-modal-gftcfg5rt .modal-footer').html(html);
}else if(data.info_type=='visit_clock_out'){
var tasksData=data.details.tasks;
$('.dynamic-modal-gftcfg5rt .modal-title').text('Task List');
if(tasksData.length>0){
//body
var html=`<p class="fw-bold-light text-muted mb-1">
Please check performed tasks from the Task List options below before you actually go for clock out.
</p>`;
$('.dynamic-modal-gftcfg5rt .modal-body').html(html);
for(const task of tasksData){
html=`<div class="form-check mb-1">
<input class="form-check-input input-visit-task-lists" type="checkbox" value="${task.id}" id="visit_task_${task.name}" ${task.checked>0?'checked':''} ${task.id>1?'disabled':''}>
<label class="form-check-label" for="visit_task_${task.name}">${task.title}</label>
</div>`;
$('.dynamic-modal-gftcfg5rt .modal-body').append(html);
}
//footer
var html=`<button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary save-dynamic-info" data-save-type="${data.info_type}">Clock Out</button>`;
$('.dynamic-modal-gftcfg5rt .modal-footer').html(html);
}else{
$('.dynamic-modal-gftcfg5rt .modal-body').html('No Tasks Found!');
}
}
$('.dynamic-modal-gftcfg5rt').modal('show');
}catch(error){
console.error(`Error occured in function draw_into_dynamic_modal(); - ${error}`);
}
}
function modal_error_msg(stat=false,type=null,msg=''){
try{
var trgt=$('.dynamic-modal-gftcfg5rt .modal-body');
if(stat){
var cls;
switch(type){
case 'success':cls='success';break;
case 'error':cls='danger';break;
case 'warning':cls='warning';break;
default:cls='secondary';
}
msg=msg!=''?msg:strtoUpper(type)+'!';
var html=`<div class="alert alert-${cls} alert-dismissible fade show mb-1 my-alert-fdgfdtrxg" role="alert">
<strong class="text-white">${msg}</strong>
<button type="button" class="close h-100" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>`;
trgt.prepend(html);
}else{
trgt.remove('.my-alert-fdgfdtrxg');
}
}catch(error){
console.error(`Error occured in function modal_error_msg(); - ${error}`);
}
}
function check_scheduling_actions(req){
try{
var apiUrl="<?=base_url()?>CaregiversDashboard/hms_check_scheduling_actions";
$.ajax({
type: 'GET',
url: apiUrl,
data: {
params: req
},
beforeSend: function(){
// console.log("fetching datas...");
},
success: function(response){
var response=$.parseJSON(response);
if(response.status==200){
enable_disable_scheduling_action_cards(response.data);
}
},
error: function(){
console.error("something bad happened while calling ajax-CaregiversDashboard/hms_check_scheduling_actions");
},
complete: function(){
// console.log("completed fetching datas...");
}
});
}catch(error){
console.error(`Error occured in function check_scheduling_actions(); - ${error}`);
}
}
function enable_disable_scheduling_action_cards(data){
try{
$('.hms-cg-schedule-id').val(data.schedule_id);
var visit_trgt=$('.dashboard-quick-cards[data-card-name="start_visit"]');
var note_trgt=$('.dashboard-quick-cards[data-card-name="add_notes"]');
visit_trgt.attr('save-type','');
if(data.overall_permission!==false){
if(data.clock_in_permission!==false){
visit_trgt.attr('save-type','visit_clock_in');
visit_trgt.removeClass('disable-crd');
visit_trgt.find('.main-heading').text('Start Your Visit');
visit_trgt.find('.card-logo .visit-pause').show();
visit_trgt.find('.card-logo .visit-resume').hide();
}else if(data.clock_out_permission!==false){
visit_trgt.attr('save-type','visit_clock_out');
visit_trgt.removeClass('disable-crd');
visit_trgt.find('.main-heading').text('End Your Visit');
visit_trgt.find('.card-logo .visit-pause').hide();
visit_trgt.find('.card-logo .visit-resume').show();
}else{
visit_trgt.addClass('disable-crd');
}
if(data.add_notes_permission!=-false){
note_trgt.removeClass('disable-crd');
}else{
note_trgt.addClass('disable-crd');
}
}else{
visit_trgt.addClass('disable-crd');
note_trgt.addClass('disable-crd');
visit_trgt.find('.main-heading').text('Start Your Visit');
visit_trgt.find('.card-logo .visit-pause').show();
visit_trgt.find('.card-logo .visit-resume').hide();
}
}catch(error){
console.error(`Error occured in function enable_disable_scheduling_action_cards(); - ${error}`);
}
}
function popup_clock_in_out(req){
try{
var cio=req.save_type || '';
if(['visit_clock_in','visit_clock_out'].includes(cio)){
var title=cio=='visit_clock_in'?'Do you want to start the visit?':'Do you want to end this visit?';
Swal.fire({
title: title,
text: ``,
showCancelButton: true,
showConfirmButton: true,
}).then((result) => {
if(result.isConfirmed){
if(cio=='visit_clock_out'){
if($('.input-visit-task-lists:checked').length>0){
var tasks=$('.input-visit-task-lists:checked').map(function() {
return $(this).val();
}).get();
var tasksStr=tasks.join(',');
ajax_save_clock_in_out_visit({
'tasks':tasksStr
});
}else{
modal_error_msg(true,'error','Please check at least one task!');
return false;
}
}else{
ajax_save_clock_in_out_visit({});
}
}
});
}else{
//...
}
}catch(error){
console.error(`Error occured in function start_end_scheduled_visit(); - ${error}`);
}
}
function ajax_save_clock_in_out_visit(req){
try{
req.schedule_id=$('.hms-cg-schedule-id').val();
var apiUrl="<?=base_url()?>CaregiversDashboard/hms_save_clock_in_out_visit";
$.ajax({
type: 'POST',
url: apiUrl,
data: {
'<?=$this->security->get_csrf_token_name()?>' : '<?=$this->security->get_csrf_hash()?>',
body: req
},
beforeSend: function(){
// console.log("saving datas...");
},
success: function(response){
var response=$.parseJSON(response);
Swal.fire({
position: 'center',
icon: response.status==200?'success':'error',
title: response.msg,
showConfirmButton: false,
timer: 3500
});
if(response.status==200){
enable_disable_scheduling_action_cards(response.data);
$('.dynamic-modal-gftcfg5rt').modal('hide');
}
},
error: function(){
console.error("something bad happened while calling ajax/hms_get_adb_daily_scheduled");
},
complete: function(){
// console.log("completed fetching datas...");
}
});
}catch(error){
console.error(`Error occured in function ajax_save_clock_in_out_visit(); - ${error}`);
}
}
function ajax_get_cdb_data(req){
try{
if(req.card_name=='patients_list'){
if(req.filter=='week'){
req.periods=Samples.utils.weeksrange({count:2,direction:'backward',format:'yyyy-mm-dd',joiner:' ~ '});
}else if(req.filter=='month'){
req.periods=Samples.utils.monthsrange({count:2,direction:'backward',format:'yyyy-mm-dd',joiner:' ~ '});
}else if(req.filter=='year'){
req.periods=Samples.utils.yearsrange({count:2,direction:'backward',format:'yyyy-mm-dd',joiner:' ~ '});
}
}
var apiUrl="<?=base_url()?>CaregiversDashboard/hms_get_cdb_data";
$.ajax({
type: 'GET',
url: apiUrl,
data: {
params: req
},
beforeSend: function(){
// console.log("fetching datas...");
},
success: function(response){
var response=$.parseJSON(response);
// console.log(response);
if(response.status==200){
fill_quick_cards_data(req,response.data);
}
},
error: function(){
console.error("something bad happened while calling ajax-CaregiversDashboard/hms_get_cdb_data");
},
complete: function(){
// console.log("completed fetching datas...");
}
});
}catch(error){
console.error(`Error occured in function ajax_get_cdb_data(); - ${error}`);
}
}
function fill_quick_cards_data(req,data){
try{
var trgt=$(`.app-content.content[data-dashboard="caregiver"] .dashboard-quick-cards[data-card-name="${req.card_name}"]`);
//filter-box
update_wmy_filter_box_text(req);
//main-heading
trgt.find('.main-heading').text(Samples.utils.formatnumber({number:data.new}));
//prcntg
if(data.growth=='increased'){
trgt.find('.prcntg-badge').removeClass('fall');
trgt.find('.prcntg-badge').html(`<i class="fa fa-arrow-up mr-1" aria-hidden="true"></i>${data.rate}%`);
}else if(data.growth=='decreased'){
trgt.find('.prcntg-badge').addClass('fall');
trgt.find('.prcntg-badge').html(`<i class="fa fa-arrow-down mr-1" aria-hidden="true"></i>${data.rate}%`);
}else if(data.growth=='none'){
trgt.find('.prcntg-badge').removeClass('fall');
trgt.find('.prcntg-badge').html(`<i class="fa fa-ban mr-1" aria-hidden="true"></i>${data.rate}%`);
}
}catch(error){
console.error(`Error occured in function fill_quick_cards_data(); - ${error}`);
}
}
function update_wmy_filter_box_text(req){
try{
var trgt=$(`.app-content.content[data-dashboard="caregiver"] .dashboard-cards[data-card-name="${req.card_name}"]`);
var filter_by;
switch(req.filter){
case 'week':filter_by='Weekly';break;
case 'month':filter_by='Monthly';break;
case 'year':filter_by='Yearly';break;
default:filter_by='';
}
trgt.find('.w-m-y-filter-box-2').find('.dropdown-toggle').text(filter_by);
trgt.find('.w-m-y-filter-box-2').find('.dropdown-toggle').attr('data-filter-type',req.filter);
}catch(error){
console.error(`Error occured in function update_wmy_filter_box_text(); - ${error}`);
}
}
function initialize_schedule_calendar(year, month) {
const monthName = new Date(year, month, 1).toLocaleString('en-US', { month: 'long' });
$('.preview-month').html(monthName+' '+year);
const calendarBody = document.getElementById("calendar-body");
calendarBody.innerHTML = "";
const startDate = new Date(year, month, 1);
const endDate = new Date(year, month + 1, 0);
const totalDays = endDate.getDate();
let date = 1;
let day = startDate.getDay();
for (let i = 0; i < 6; i++) {
const row = document.createElement("tr");
for (let j = 0; j < 7; j++) {
const cell = document.createElement("td");
if (i === 0 && j < day) {
cell.textContent = "";
} else if (date > totalDays) {
cell.textContent = "";
} else {
cell.textContent = date;
// Highlight today's date
if (date === today.getDate() && year === today.getFullYear() && month === today.getMonth()) {
cell.classList.add("today");
ajax_get_adb_daily_scheduled(year, month, date);
}
cell.addEventListener("click", () => {
const cells = document.querySelectorAll('td');
cells.forEach(cell => {
cell.classList.remove("today");
});
cell.classList.add("today");
const tdElement = document.querySelector('.today');
const cellValue = tdElement.textContent;
ajax_get_adb_daily_scheduled(year, month, cellValue);
});
date++;
}
row.appendChild(cell);
}
calendarBody.appendChild(row);
}
}
function ajax_get_adb_daily_scheduled(year,month,date) {
try{
var formated_date=year+"-"+(month+1)+"-"+String(date).padStart(2,'0');
var req={
'start_date':formated_date,
'end_date':formated_date
};
var apiUrl="<?=base_url()?>CaregiversDashboard/hms_get_cdb_daily_schedules";
$.ajax({
type: 'GET',
url: apiUrl,
data: {
params: req
},
beforeSend: function(){
$('.dsh-ul-list').html('loading...');
},
success: function(response){
var response=$.parseJSON(response);
if(response.status==200){
//...reset action cards
enable_disable_scheduling_action_cards({
"schedule_id": 0,
"overall_permission": false
});
//...draw daily schedule cards
draw_daily_scheduled_cards(req,response.data);
}
},
error: function(){
console.error("something bad happened while calling ajax/hms_get_adb_daily_scheduled");
},
complete: function(){
// console.log("completed fetching datas...");
}
});
}catch(error){
console.error(`Error occured in function ajax_get_adb_daily_scheduled(); - ${error}`);
}
}
function draw_daily_scheduled_cards(req,data){
try{
var dshList=$('.dsh-ul-list');
dshList.empty();
if(data.length>0){
for(const schedule of data){
var start_time=schedule.start_time!=null&&schedule.start_time!=""?new Date(schedule.start_time):'';
var end_time=schedule.end_time!=null&&schedule.end_time!=""?new Date(schedule.end_time):'';
var startTime=start_time!=''?start_time.toLocaleTimeString([],{ hour: '2-digit', minute: '2-digit' }):'';
var endTime=end_time!=''?end_time.toLocaleTimeString([],{ hour: '2-digit', minute: '2-digit' }):'';
var schedule_info={
'schedule_id':schedule.schedule_id,
'live_status':schedule.live_status
};
var class_i;
switch(schedule.live_status){
case 'unconfirmed':
class_i='text-danger';
break;
case 'upcoming':
class_i='text-info';
break;
case 'ongoing':
class_i='text-success';
break;
case 'completed':
class_i='text-primary';
break;
case 'missed':
class_i='text-warning';
break;
case 'declined':
class_i='text-secondary';
break;
default:
class_i='';
}
// var class_j=['upcoming','ongoing'].includes(schedule.live_status)?'cursor-pointer':'';
var visit_forms='';
if(schedule.live_status=='ongoing' || schedule.live_status=='completed'){
visit_forms=`<div class="btn-group dsh-visit-forms">
<small class="dropdown-toggle text-info" data-toggle="dropdown" aria-expanded="false">Visit Forms</small>
<div class="dropdown-menu dropdown-menu-right" style="width:fit-content;font-size:12px;z-index:999;">
<a class="dropdown-item" href="<?=base_url()?>assessment/view?id=${schedule.patient_id}&scheduleId=${schedule.schedule_id}">
Assessment/Reassessment Form
</a>
<a class="dropdown-item disabled-link" href="#">PCSP Visit Form</a>
<a class="dropdown-item disabled-link" href="#">Wound Care Visit Form</a>
<a class="dropdown-item disabled-link" href="#">PDN Visit Form</a>
<a class="dropdown-item disabled-link" href="#">IV Visit Form</a>
</div>
</div>`;
}
var html=`<li class="cursor-pointer" data-schedule-info='${JSON.stringify(schedule_info)}'>
<div class="card daily-scheduled-list-cards" area-active='true' style="box-shadow: 0px 1.399999976158142px 6px rgba(0, 0, 0, 0.06) !important">
<div class="card-body">
<div class="flex-sp-bt-g1">
<p class="dsh-time">
<i class="fa fa-circle mr-1 ${class_i}" aria-hidden="true" title="${Samples.utils.capitalize(schedule.live_status)}"></i>
${startTime} - ${endTime}
</p>
${visit_forms}
</div>
<div class="">
<p class="dsh-title">
<b>You</b>
${schedule.tense=='present'?'are':'were'} scheduled to
<a href="<?=base_url()?>CaregiversDashboard/viewPatientDetails?id=${schedule.patient_id}">${schedule.patient_name}</a>
</p>
</div>
</div>
</div>
</li>`;
dshList.append(html);
}
}else{
var html=`<div class="card daily-scheduled-list-cards" area-active='false'>
<div class="card-body">
<p class="dsh-time">No schedules found!</p>
</div>
</div>`;
dshList.append(html);
}
}catch(error){
console.error(`Error occured in function draw_daily_scheduled_cards(); - ${error}`);
}
}
function nextMonth() {
currentMonth = (currentMonth + 1) % 12;
if (currentMonth === 0) {
currentYear++;
}
initialize_schedule_calendar(currentYear, currentMonth);
}
function previousMonth() {
currentMonth = (currentMonth - 1 + 12) % 12;
if (currentMonth === 11) {
currentYear--;
}
initialize_schedule_calendar(currentYear, currentMonth);
}
</script>
<!-- scripting -->
<?php
}else{
$dayArr=array();
$dayTimeArr=array();
foreach($master_schdule as $schedule){
$dayArr[$schedule->week_day][]=$schedule->id;
$dayTimeArr[$schedule->week_day][]=$schedule->from_time.' - '.$schedule->to_time;
}
$progressData = json_decode($nurse->from_tab_status_pctg);
$progress = $progressData->form1+$progressData->form2+$progressData->form3+$progressData->form4+$progressData->form5+$progressData->form6+$progressData->form7+$progressData->form8+$progressData->form9+$progressData->form10+$progressData->form11;
?>
<div class="app-content content">
<div class="content-wrapper">
<div class="content-body">
<section id="block-examples">
<div class="row">
<div class="col-md-12 col-sm-12">
<div class="card">
<div class="card-header bg-gradient-y-info">
<h2 class="text-center p-1">
<span class="font-weight-bold text-white">Notice Panel</span>
</h2>
</div>
<div class="card-body">
<div class="row mb-0">
<div class="col-md-12">
<?php
if($nurse->submited_for_verification=='no'){
if($progress>99){
$progress=100;
}
?>
<div class="col-md-12 card">
<label class="progres_bar"> Progress (<?php echo $progress; ?>%)</label>
<div class="progress">
<div class="progress-bar" role="progressbar" style="width: <?php echo $progress; ?>%;" aria-valuenow="<?php echo $progress; ?>" aria-valuemin="0" aria-valuemax="100">
<?php echo $progress;?>%
</div>
</div>
<?php
if($progress<100){
?>
<span class="text-center text-danger custm_de">Please complete your profile.</span>
<?php
}
else if($nurse->rejection_reason!=""){
?>
<span class="text-center text-danger custm_de">Rejected For: <?php echo $nurse->rejection_reason; ?></span>
<span class="text-center text-danger custm_de">Check and update profile.</span>
<?php
}
else{
?>
<span class="text-center text-danger custm_de">Go to profile and click send for approval.</span>
<?php
}
?>
</div>
<?php
}
if($nurse->verification_status=='docverified'){
?>
<div class="col-md-12 card py-3">
<?php
if($onboardQuiz['status']==0){
if($onboardQuiz['token']==""){
?>
<h1 class="text-center">Your Documents are verified</h1>
<h2 class="text-center text-danger custm_de py-0">Please wait for Onboarding Link</h2>
<div class="center">
<i class="fa fa-hand-o-right mx-1"></i>
<span class="text-center text-info">Contact to Admin for further Details</span>
</div>
<?php
}
else{
?>
<div class="center">
<!-- <img src="<?=base_url();?>common/img/onboard.png" class="onboard-img" alt="incomplete onboarding process" title="incomplete onboarding process"> -->
</div>
<h1 class="text-center">Incomplete Onboarding Process</h1>
<div class="center"><small>Click the button below to complete the onboarding process</small></div>
<div class="m-auto py-2 center">
<i class="fa fa-2x fa-hand-o-right mx-1"></i>
<a class="btn btn-lg btn-danger" href="<?php echo base_url()."onboarding/process/".$onboardQuiz['token'];?>"
target="_blank">
Click to contiune
</a>
</div>
<?php
}
}
else{
?>
<span class="text-center text-danger custm_de">Wait for onboarding Verification.</span>
<?php
}
?>
</div>
<!-- <div class="form-check col-md-12" style="text-align: center;">
<a target="_blank" class="btn btn-success btn_clr" href="<?php echo base_url(); ?>CaregiversDashboard/formPrint/<?= $nurse->id ?>">Print Submitted Form</a>
</div> -->
<?php
}
if($nurse->verification_status=='unverified' && $nurse->submited_for_verification=='yes'){
?>
<div class="col-md-12 card py-3">
<div class="center"></div>
<h1 class="text-center text-danger custm_de py-0">Please Wait For Document Verification</h1>
<h2 class="text-center">OR</h2>
<div class="center py-1">
<i class="fa fa-hand-o-right mx-1"></i>
<span class="text-center text-info">Contact to Admin for further Details</span>
</div>
</div>
<?php
}
?>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
</div>
</div>
</div>
<?php
}
?>