MSV FM

dot.antimicrobial@66.96.161.157: ~ $
Path : /hermes/sb_web/b1536/advancedfunctions.co/AMBV2_V6/
File Upload :
Current < : /hermes/sb_web/b1536/advancedfunctions.co/AMBV2_V6/barcodeReaderAMBCovid.html

<!DOCTYPE html>
<html>

<head>
    <title>Records Management System</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script type="text/javascript" src="https://unpkg.com/@zxing/library@0.18.5"></script>
    <script src="https://kit.fontawesome.com/de23248495.js" crossorigin="anonymous"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
<script src='barcodeReader.js'></script>
<script src='gui.js'></script>
<script src='googleSheetsPortal.js'></script>
<script src='searchBar.js'></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> 
<script src='verifyPatientAMB.js'></script>
<style>
div.onHover{color:black;background-color:rgba(255,165,0,0.8);}
div.onHover:hover{color:white;background-color:#4F6272;}
</style>
</head>

<body onload= 'javascript:searchForEmployee()'>
<div style='position:fixed;top:0px;left:0px;z-index:3;width:100%;height:100%;background-color:rgba(225,225,225,0.4);' id='locationDropDownMenuUi' ></div>
<div id='Location' style='width: 300px;padding:10px;background-color:rgb(10,31,87);color:white; text-align:left;position:relative;left:50vw;top:0px;transform:translate(-50%,0%);font:22px Calibri;'>Location</div>
<div id='uIBarcodeReader'></div>
<div id='status' style= 'margin: auto; width:300px;text-align:center;' ></div>
<div id='statusLeftAlign' style= 'margin: auto; width:300px;text-align:left;' ></div>
</body>

<script>
var googleSheetsPortalScript='';

var locations=[];
locations=['East Bay Street','Cruise Port'];
var locationsDropdownMenu="<div style='position:absolute;top:50vh;transform:translate(0%,-50%)'><div style='padding:12px 12px;width:100vw;text-align:center;font:22px Calibri;background-color:rgb(10,31,87);color:white;'>🔍 Select Location</div>";
for(var i=0;i<locations.length;i++){
locationsDropdownMenu=locationsDropdownMenu+"<div style='padding:12px 12px;width:100vw;text-align:center;font:22px Calibri;cursor:pointer;' onclick='javascript:setLocation(&#39;"+locations[i]+"&#39;)' class='onHover'>"+locations[i]+"</div>";
}
locationsDropdownMenu=locationsDropdownMenu+"</div>";
document.getElementById('locationDropDownMenuUi').innerHTML=locationsDropdownMenu;


function setLocation(locationToSet){
if(locationToSet==locations[0]){
//East Bay Street
googleSheetsPortalScript='https://script.google.com/macros/s/AKfycbyjR3Ac6BeNkn1uoeGFoiNtr8amdyyII6bywaa8Z9aMKIr11FQ/exec';}
if(locationToSet==locations[1]){
//Cruise Port
googleSheetsPortalScript='https://script.google.com/macros/s/AKfycbykh1EMX7_mUGPdcmAVdTsIGMev2nQai09V1mvOGA/exec';}

document.getElementById('locationDropDownMenuUi').style.display='none';
document.getElementById('Location').innerHTML=locationToSet;
document.getElementById('Location').style.backgroundColor='rgba(255,165,0,0.8)';
document.getElementById('Location').style.color='rgb(10,31,87)';
}


var employeeName='';
var scannerMode= 'employee'; 
 


makeField('Identification number');
makeField('First name');
makeField('Last name');
makeDateField('Date of birth');
makeField('Sex');
makeField('Phone number');
makeField('Email address');

function searchForEmployee(){
displayUiBarcodeReader('Identification Number');
getHeader('<h4 ><u>Administrator Login</u></h4>');
startScanning();
}

function populateDropdownMenu(){
sendDataToGoogleSheets(['getListOfNamesAndIds'],googleSheetsPortalScript);
}

function verifyPatientEmail(){
if(isCharactersValid('Identification number', 'numeric')==true&&isCharactersValid('First name', 'alpha')==true&&isCharactersValid('Last name', 'alpha')==true&&isCharactersValid('monthField','numeric')==true&&isCharactersValid('dayField','numeric')==true&&isCharactersValid('yearField','numeric')==true&&isCharactersValid('Phone number', 'numeric')==true&&isCharactersValid('Sex', 'alpha')==true&&isCharactersValid('Email address','')==true){
displayUi('status','');
sendDataToGoogleSheets(['verifyPatientEmail',getFieldText('Identification number'),employeeName,getFieldText('First name'),getFieldText('Last name'),getFieldText('monthField')+'-'+getFieldText('dayField')+'-'+getFieldText('yearField'),0,getFieldText('Sex'),getFieldText('Phone number'),getFieldText('Email address')],googleSheetsPortalScript);
}else{
isCharactersValid('Identification number', 'numeric');
isCharactersValid('First name', 'alpha');
isCharactersValid('Last name', 'alpha');
isCharactersValid('monthField','numeric');
isCharactersValid('dayField','numeric');
isCharactersValid('yearField','numeric');
isCharactersValid('Phone number', 'numeric');
isCharactersValid('Sex', 'alpha');
isCharactersValid('Email address','');
setScannedText('Invalid characters');
}

}

function updatePatientInfo(){
if(isCharactersValid('Identification number', 'numeric')==true&&isCharactersValid('First name', 'alpha')==true&&isCharactersValid('Last name', 'alpha')==true&&isCharactersValid('monthField','numeric')==true&&isCharactersValid('dayField','numeric')==true&&isCharactersValid('yearField','numeric')==true&&isCharactersValid('Phone number', 'numeric')==true&&isCharactersValid('Sex', 'alpha')==true&&isCharactersValid('Email address','')==true){
displayUi('status','');
sendDataToGoogleSheets(['updatePatientInfo',getFieldText('Identification number'),employeeName,getFieldText('First name'),getFieldText('Last name'),getFieldText('monthField')+'-'+getFieldText('dayField')+'-'+getFieldText('yearField'),0,getFieldText('Sex'),getFieldText('Phone number'),getFieldText('Email address')],googleSheetsPortalScript);
}else{
isCharactersValid('Identification number', 'numeric');
isCharactersValid('First name', 'alpha');
isCharactersValid('Last name', 'alpha');
isCharactersValid('monthField','numeric');
isCharactersValid('dayField','numeric');
isCharactersValid('yearField','numeric');
isCharactersValid('Phone number', 'numeric');
isCharactersValid('Sex', 'alpha');
isCharactersValid('Email address','');
setScannedText('Invalid characters');
}

}

function searchForPatient(){
displayUiBarcodeReader('Identification Number');
getHeader('<h4 ><u>Patient Search</u></h4>');
startScanning();
setTimeout(function(){getFooter("<hr><div style='text-align:right'>"+createButton('sendBatchResults','Send Batch Results','displaySendBatchResultsUi()')+"<br><br>"+createButton('archiveSentResultsButton','Archive Sent Results','displayArchiveSentResults()')+"</div>");},1000);
}

function displaySendBatchResultsUi(){
stopScanning();
displayUi('uIBarcodeReader',"<div style= 'margin: auto; width:300px;' ><h4><u>Send Batch Results</u></h4>"+"<form action='javascript:sendBatchResults()' autocomplete='off'><div class='form-group' style='display: grid;grid-template-columns: auto 30%;padding: 10px;grid-gap: 10px;'><input class='form-control' id='batchResults' placeholder='Barcodes' ><button type='submit' class='btn btn-default' id='submitButton'>Send</button></div></form><hr><ul><li>Enter barcodes separated by a <b>comma</b> or a <b>space</b> e.g. 4821,1929,2412 or 2812 3131 2211 or 3214 2124,4211</li></ul></div>");
}

function sendBatchResults(){
if(isCharactersValid('batchResults','')){
var batchBarcodes=("sendBatchResults,"+employeeName+","+getFieldText('batchResults').replaceAll(' ',',')).split(',');
sendDataToGoogleSheets(batchBarcodes,googleSheetsPortalScript);
displayUi('statusLeftAlign','');
displayUi('status',"<hr><i class='fa fa-gear fa-spin' style='font-size:24px;color:lightgray'></i> may take a few minutes");
}
}

function displayArchiveSentResults(){
displayUi('uIBarcodeReader',"<div style= 'margin: auto; width:300px;' ><h4><u>Archive Sent Results</u></h4><br>"+createButton('startArchivingButton','Start Archiving','startArchiving()')+"<hr><ul><li><b>All portals</b> will be inactive during <b>archiving</b></li><li><b>Rows</b> will be <b>deleted</b>.</li></ul></div>");
}

function startArchiving(){
displayUi('uIBarcodeReader',"<div style= 'margin: auto; width:300px;' ><h4><u>Archive Sent Results</u></h4><br>"+createButton('stopArchivingButton','Stop Archiving','stopArchiving()')+"<hr><ul><li><b>All portals</b> will be inactive during <b>archiving</b></li><li><b>Rows</b> will be <b>deleted</b>.</li><li>Archiving may take as long as <b>30 minutes</b>.</li></ul></div>");

sendDataToGoogleSheets(['archiveSentResults'],googleSheetsPortalScript);
displayUi('status',"<hr><i class='fa fa-gear fa-spin' style='font-size:24px;color:lightgray'></i> May take a few minutes");
}

function stopArchiving(){
displayUi('uIBarcodeReader',"<div style= 'margin: auto; width:300px;' ><h4><u>Archive Sent Results</u></h4><br>"+createButton('startArchivingButton','Start Archiving','startArchiving()')+"<hr><ul><li><b>All portals</b> will be inactive during <b>archiving</b></li><li><b>Rows</b> will be <b>deleted</b>.</li><li>Archiving may take as long as <b>30 minutes</b>.</li></ul></div>");

sendDataToGoogleSheets(['stopArchiving'],googleSheetsPortalScript);
displayUi('status',"");
}

function onClickCheckbox(){
var testResult='';
var testName='';

if(getValue('positive')==true&&getDataFromGoogleSheetsAsArray()[13]=='NEGATIVE'){
setValue('positive',true);
setValue('negative',false);
}
if(getValue('negative')==true&&getDataFromGoogleSheetsAsArray()[13]=='POSITIVE'){
setValue('negative',true);
setValue('positive',false);
}

if(getValue('positive')==true){
testResult='POSITIVE';}
if(getValue('negative')==true){
testResult='NEGATIVE';}

if(getValue('pcr')==true&&getDataFromGoogleSheetsAsArray()[12]=='Antigen'){
setValue('pcr',true);
setValue('antigen',false);
}
if(getValue('antigen')==true&&getDataFromGoogleSheetsAsArray()[12]=='PCR'){
setValue('antigen',true);
setValue('pcr',false);
}

if(getValue('pcr')==true){
testName='PCR';}
if(getValue('antigen')==true){
testName='Antigen';}


disableButtons();

sendDataToGoogleSheets(['setTestResult',getDataFromGoogleSheetsAsArray()[1],testName,testResult,employeeName],googleSheetsPortalScript);
}

function disableButtons(){
setEnabled('positive',false);
setEnabled('negative',false);
setEnabled('pcr',false);
setEnabled('antigen',false); 
setEnabled('sampleCollectionButton',false);
setEnabled('labTestButton',false);
setEnabled('emailResults',false);
}

function emailResultsFunction(){
disableButtons();

if(getValue('positive')==true||getValue('negative')==true){
sendDataToGoogleSheets(['emailResults',getScannedText(),employeeName],googleSheetsPortalScript);
}
}

function searchBarItemSelected(id){
setScannedText(id);
sendDataToGoogleSheets(['patientSearch',id,employeeName],googleSheetsPortalScript);
}

function send(){
if(scannerMode=='employee'){
sendDataToGoogleSheets(['employeeSearch',getScannedText()],googleSheetsPortalScript);
displayUi('status',"<i class='fa fa-gear fa-spin' style='font-size:24px;color:lightgray'></i>");}

if(scannerMode=='patient'){
sendDataToGoogleSheets(['patientSearch',getScannedText(),employeeName],googleSheetsPortalScript);}

}

function barCodeScanned(){
send();
}

function receiveDataFromGoogleSheets(){

waitForGoogleThenExecute();

if(scannerMode=='patient'){
if(getDataFromGoogleSheetsAsArray()[0]=='patientFound'){

getFooter(getSearchBarUi(false)+ getFormUiAsString()+"<br><div style='width: 270px;' id='formContainer'><div  style='display: grid;grid-template-columns: auto 30%;'><div style='text-align:left;'><h4><u>Sample taken time</u></h4></div><button  class='btn btn-default' onclick='javascript:updateSampleCollectionTime()' id='sampleCollectionButton'>Now</button></div></div>"+createSpan('sampleCollectionTime')+'<br><br><h4><u>Test name</u></h4>'+createChoice('pcr','PCR')+ '<br>' +createChoice('antigen','Antigen')+ "<br><hr><br><div style='width: 270px;' id='formContainer'><div  style='display: grid;grid-template-columns: auto 30%;'><div style='text-align:left;'><h4><u>Lab test time</u></h4></div><button  class='btn btn-default' onclick='javascript:updateLabTestTime()' id='labTestButton'>Now</button></div></div>"+createSpan('labTestTime')+'<br><br><h4><u>Test results</u></h4>'+createChoice('positive','Positive')+ '<br>' +createChoice('negative','Negative')+ '<br><br>' +createButton('emailResults','Email Results','emailResultsFunction()'));


setFieldText('Identification number', getDataFromGoogleSheetsAsArray()[1]);
setFieldText('First name', getDataFromGoogleSheetsAsArray()[3]);
setFieldText('Last name', getDataFromGoogleSheetsAsArray()[4]);

 var dob= getDataFromGoogleSheetsAsArray()[5];
 var dobM=dob.substring(0,dob.indexOf('-'));
 dob=dob.substring(dob.indexOf('-')+1,dob.length);
 var dobD=dob.substring(0,dob.indexOf('-'));
 dob=dob.substring(dob.indexOf('-')+1,dob.length);
 var dobY=dob;
setFieldText('monthField', dobM);
setFieldText('dayField', dobD);
setFieldText('yearField', dobY); 
setFieldText('Sex', getDataFromGoogleSheetsAsArray()[7]);
setFieldText('Phone number',getDataFromGoogleSheetsAsArray()[8]);
setFieldText('Email address', getDataFromGoogleSheetsAsArray()[9]);

if(getDataFromGoogleSheetsAsArray()[13]=='POSITIVE'){
setValue('positive',true);
setValue('negative',false);
}
if(getDataFromGoogleSheetsAsArray()[13]=='NEGATIVE'){
setValue('negative',true);
setValue('positive',false);
}

if(getDataFromGoogleSheetsAsArray()[12]=='PCR'){
setValue('pcr',true);
setValue('antigen',false);
}
if(getDataFromGoogleSheetsAsArray()[12]=='Antigen'){
setValue('antigen',true);
setValue('pcr',false);
}

if(getDataFromGoogleSheetsAsArray()[14]=='Sent'){
disableButtons();
document.getElementById('emailResults').innerHTML='Resend email';
}
displayUi('sampleCollectionTime',getDataFromGoogleSheetsAsArray()[10]);
displayUi('labTestTime',getDataFromGoogleSheetsAsArray()[11]);
}
if(getDataFromGoogleSheetsAsArray()[0]=='patientNotFound'){
setScannedText('Patient not found');
displayUi('status','');
}
}

if(scannerMode=='employee'){
if(getDataFromGoogleSheetsAsArray()[0]=='employeeFound'){
employeeName= getDataFromGoogleSheetsAsArray()[1];
scannerMode='patient';
searchForPatient();
getFooter(getSearchBarUi(false));
displayUi('status','');
}
if(getDataFromGoogleSheetsAsArray()[0]=='employeeNotFound'){
getFooter('Employee Not Found');
displayUi('status','');
}
}

if(getDataFromGoogleSheetsAsArray()[0]=='listOfNamesAndIdsFound'){
setRecordToSearch(getDataFromGoogleSheetsAsArray());
}

if(getDataFromGoogleSheetsAsArray()[0]=='batchResultsLog'){
var batchResultsLog='<hr><h4>Batch Results Log</h4><ul>';
for(var i=1;i<getDataFromGoogleSheetsAsArray().length;i++){
batchResultsLog=batchResultsLog+'<li>'+getDataFromGoogleSheetsAsArray()[i]+'</li>';
}
batchResultsLog=batchResultsLog+'</ul>';
displayUi('status','')
displayUi('statusLeftAlign',batchResultsLog)
}


try{
if(getValue('positive')==true||getValue('negative')==true){
setEnabled('emailResults',true);
}else{
setEnabled('emailResults',false);
}
}catch(err){}

if(getDataFromGoogleSheetsAsArray()[0]=='archiveComplete'){
displayArchiveSentResults();
displayUi('status',"<hr>Archive complete!");
}

if(getDataFromGoogleSheetsAsArray()[0]=='archiving'){
displayUi('uIBarcodeReader',"<div style= 'margin: auto; width:300px;' ><h4><u>Archive Sent Results</u></h4><br>"+createButton('stopArchivingButton','Stop Archiving','stopArchiving()')+"<hr><ul><li><b>All portals</b> will be inactive during <b>archiving</b></li><li><b>Rows</b> will be <b>deleted</b>.</li><li>Archiving may take as long as <b>30 minutes</b>.</li></ul></div>");
displayUi('status',"<hr><i class='fa fa-gear fa-spin' style='font-size:24px;color:lightgray'></i> May take a few minutes");
}

}

function waitForGoogleThenExecute(){
try{
setEnabled('positive',true);
setEnabled('negative',true);
setEnabled('pcr',true);
setEnabled('antigen',true);
setEnabled('sampleCollectionButton',true);
setEnabled('labTestButton',true);
setEnabled('emailResults',true);
}catch(err){
}
}

function updateLabTestTime(){

disableButtons();

sendDataToGoogleSheets(['updateLabTestTime',getScannedText(),employeeName],googleSheetsPortalScript);
}

function updateSampleCollectionTime(){

disableButtons();

sendDataToGoogleSheets(['updateSampleCollectionTime',getScannedText(),employeeName],googleSheetsPortalScript);
}

</script>
</html>