Widget:VisitSchedulerRedux: Difference between revisions

Jump to navigation Jump to search
No edit summary
No edit summary
Line 11: Line 11:
$( "#patientID, #assigned, #indexEvent, #indexEventTime").css({"display":"flex","flex-direction":"column","align-items":"flex-end"});
$( "#patientID, #assigned, #indexEvent, #indexEventTime").css({"display":"flex","flex-direction":"column","align-items":"flex-end"});
$( "#indexEvent, #indexEventTime, #visit-1, #visitTime-1" ).val("");
$( "#indexEvent, #indexEventTime, #visit-1, #visitTime-1" ).val("");
$( "#indexEvent" ).datepicker({minDate: new Date()});
$( "#indexEvent" ).datepicker();
$( "#visit-1" ).datepicker({minDate: new Date()});
$( "#visit-1" ).datepicker({minDate: new Date()});
$( "#visit-1" ).change(function(){
$( "#indexEvent" ).change(function(){
 
$( "#appointments" ).html("<tr><th>Visit Number</th><th>Visit Date</th><th>Visit Time</th><th>Delayed Infusion?</th><th>Visit Description</th></tr>");
$( "#appointments" ).show();
var schedule = visitSchedule($("patientID").val(),$("#assigned").val(),new Date($( "#indexEvent" ).val()));
var schedule = visitSchedule($("patientID").val(),$("#assigned").val(),new Date($( "#indexEvent" ).val()));
});
});
function visitSchedule(patient, assigned, index){
function visitSchedule(patient, assigned, index){
$("#print, #save").css("visibility","visible");
var timeConstraints = {
var timeConstraints = {
// VisitNum : [Days from Infusion 1, Window + Days, Window - Days, Window + Hours, Window - Hours, Visit, Visit Description, Short Visit Description]
// VisitNum : [Days from Infusion 1, Window + Days, Window - Days, Window + Hours, Window - Hours, Visit, Visit Description, Short Visit Description]
Line 34: Line 34:
this.patientID = patient;
this.patientID = patient;
this.assigned = assigned;
this.assigned = assigned;
if(!$("#visit-2").length){
$.each(timeConstraints, function(key, value){
$.each(timeConstraints, function(key, value){
if(key == 1){
if(key == 1){
currentAppointment = new Date($("#visit-1").val());
currentAppointment = new Date($( "#indexEvent" ).val());
} else {
} else {
currentAppointment = new Date($("#visit-"+(key-1)).val());
currentAppointment = new Date($("#visit-"+(key-1)).val());
}
}
currentAppointment = new Date(currentAppointment.getFullYear(), currentAppointment.getMonth(), currentAppointment.getDate()+value[0]);
currentAppointment = new Date(currentAppointment.getFullYear(), currentAppointment.getMonth(), currentAppointment.getDate()+value[0]);
if(key ==1 ){
if(key <= 4){
$("#visit-1").val(new Date($("#visit-1").val()).toDateString());
}
else if(key <= 4){
$("#appointments").append("<tr><td>"+value[5]+"</td><td><input type='text' class='appointment' id='visit-"+key+"' value='"+currentAppointment.toDateString()+"' /></td><td><input type='time' id='visitTime-"+key+"' value='"+$("#indexEventTime").val()+"'></td><td><input type='checkbox' class='delayedInfusion' value='"+key+"' /></td><td>"+value[6]+"</td></tr>");
$("#appointments").append("<tr><td>"+value[5]+"</td><td><input type='text' class='appointment' id='visit-"+key+"' value='"+currentAppointment.toDateString()+"' /></td><td><input type='time' id='visitTime-"+key+"' value='"+$("#indexEventTime").val()+"'></td><td><input type='checkbox' class='delayedInfusion' value='"+key+"' /></td><td>"+value[6]+"</td></tr>");
} else {
} else {
Line 51: Line 47:
}
}
$("#visit-"+key).datepicker({minDate: new Date(currentAppointment.getFullYear(), currentAppointment.getMonth(), currentAppointment.getDate()-value[2]), maxDate:new Date(currentAppointment.getFullYear(), currentAppointment.getMonth(), currentAppointment.getDate()+value[1])});
$("#visit-"+key).datepicker({minDate: new Date(currentAppointment.getFullYear(), currentAppointment.getMonth(), currentAppointment.getDate()-value[2]), maxDate:new Date(currentAppointment.getFullYear(), currentAppointment.getMonth(), currentAppointment.getDate()+value[1])});
})};
});
validateConstraints();
validateConstraints();
$(".appointment").change(function(){
$(".appointment").change(function(){
Line 58: Line 54:
$(this).val(updatedAppointment);
$(this).val(updatedAppointment);
$.each(timeConstraints, function(key, value){
$.each(timeConstraints, function(key, value){
                                 $("#visit-"+key).css("border", "1px solid black");
                                 $("#visit-"+key).css("border", "5px solid white");
if(key > modId && key <= 4){
if(key > modId && key <= 4){
updatedAppointment = new Date(updatedAppointment.getFullYear(), updatedAppointment.getMonth(), updatedAppointment.getDate()+value[0]);
updatedAppointment = new Date(updatedAppointment.getFullYear(), updatedAppointment.getMonth(), updatedAppointment.getDate()+value[0]);
Line 68: Line 64:
}
}
});
});
validateConstraints();
validateConstraints();
});
});
$( "#indexEventTime", "#visit-2" ).change(function(){
$( "#indexEventTime" ).change(function(){
$.each(timeConstraints, function(key, value){
$.each(timeConstraints, function(key, value){
$("#visitTime-"+key).val($("#indexEventTime").val());
$("#visitTime-"+key).val($("#indexEventTime").val());
Line 77: Line 72:
});
});
$(".delayedInfusion").change(function(){
$(".delayedInfusion").change(function(){
if($(this).prop('checked')){
$("#visit-"+$(this).val()).datepicker('destroy');
$("#visit-"+$(this).val()).datepicker('destroy');
var prevAppointment = new Date($("#visit-"+($(this).val()-1)).val());
$("#visit-"+$(this).val()).datepicker();
$("#visit-"+$(this).val()).datepicker({minDate: new Date(prevAppointment.getFullYear(), prevAppointment.getMonth(), prevAppointment.getDate()+5)});
} else {
fixDateRanges();
}
});
});
$("#visitTime-1").change(function(){validateConstraints();});
$("#visitTime-1").change(function(){validateConstraints();});
$( "#indexEventTime" ).change(function(){validateConstraints();});
$( "#indexEventTime" ).change(function(){validateConstraints();});
function fixDateRanges(){
 
$.each(timeConstraints, function(key, value){
var updatedAppointment = new Date($("#visit-"+(key-1)).val());
                $("#visit-"+key).css("border", "1px solid black");
if(key > 1 && key <= 4){
updatedAppointment = new Date(updatedAppointment.getFullYear(), updatedAppointment.getMonth(), updatedAppointment.getDate()+value[0]);
$("#visit-"+key).val(updatedAppointment.toDateString());
$("#visit-"+key).datepicker('destroy');
$("#visit-"+key).datepicker({minDate: new Date(updatedAppointment.getFullYear(), updatedAppointment.getMonth(), updatedAppointment.getDate()-value[2]), maxDate:new Date(updatedAppointment.getFullYear(), updatedAppointment.getMonth(), updatedAppointment.getDate()+value[1])});
}
});
}
function validateConstraints(){
function validateConstraints(){
var errorFlag = false;
var errorFlag = false;

Revision as of 11:57, 31 January 2019