<!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>
</body>
<script>
var googleSheetsPortalScript='https://script.google.com/macros/s/AKfycbzb8hgt89mbgNpDRxZ6Cp3W-10AnAP1mnIJu_WS0wRjoJjJa9c/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();
getFooter('');
}
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';}
setEnabled('positive',false);
setEnabled('negative',false);
setEnabled('pcr',false);
setEnabled('antigen',false);
setEnabled('sampleCollectionButton',false);
setEnabled('labTestButton',false);
sendDataToGoogleSheets(['setTestResult',getDataFromGoogleSheetsAsArray()[1],testName,testResult,employeeName],googleSheetsPortalScript);
}
function emailResultsFunction(){
setEnabled('positive',false);
setEnabled('negative',false);
setEnabled('pcr',false);
setEnabled('antigen',false);
setEnabled('sampleCollectionButton',false);
setEnabled('labTestButton',false);
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'){
setEnabled('positive',false);
setEnabled('negative',false);
setEnabled('pcr',false);
setEnabled('antigen',false);
setEnabled('sampleCollectionButton',false);
setEnabled('labTestButton',false);
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());
}
}
function waitForGoogleThenExecute(){
try{
setEnabled('positive',true);
setEnabled('negative',true);
setEnabled('pcr',true);
setEnabled('antigen',true);
setEnabled('sampleCollectionButton',true);
setEnabled('labTestButton',true);
}catch(err){
}
}
function updateLabTestTime(){
setEnabled('positive',false);
setEnabled('negative',false);
setEnabled('pcr',false);
setEnabled('antigen',false);
setEnabled('sampleCollectionButton',false);
setEnabled('labTestButton',false);
sendDataToGoogleSheets(['updateLabTestTime',getScannedText(),employeeName],googleSheetsPortalScript);
}
function updateSampleCollectionTime(){
setEnabled('positive',false);
setEnabled('negative',false);
setEnabled('pcr',false);
setEnabled('antigen',false);
setEnabled('sampleCollectionButton',false);
setEnabled('labTestButton',false);
sendDataToGoogleSheets(['updateSampleCollectionTime',getScannedText(),employeeName],googleSheetsPortalScript);
}
</script>
</html>