MSV FM

dot.antimicrobial@66.96.161.157: ~ $
Path : /hermes/sb_web/b1536/advancedfunctions.co/AMBV2_V5/
File Upload :
Current < : /hermes/sb_web/b1536/advancedfunctions.co/AMBV2_V5/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>
</head>

<body onload= 'javascript:searchForEmployee()'>
<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='https://script.google.com/macros/s/AKfycbyjR3Ac6BeNkn1uoeGFoiNtr8amdyyII6bywaa8Z9aMKIr11FQ/exec';
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>