import BlankPage from './pages/blank.f7.html';
import NotFoundPage from './pages/not-found.f7.html';
import InitPage from './pages/init.f7.html';
import LandingPage from './pages/landing.f7.html';
import LandingHomePage from './pages/landing-home.f7.html';
import LandingAboutPage from './pages/landing-about.f7.html';
import LandingTutorialPage from './pages/landing-tutorial.f7.html';
import LandingContactPage from './pages/landing-contact.f7.html';
import LandingRegisterPage from './pages/landing-register.f7.html';
import HomePage from './pages/home.f7.html';
import ProfilePage from './pages/profile.f7.html';
import PatientPage from './pages/patient.f7.html';
import PatientFilesPage from './pages/patient-files.f7.html';
import PatientFilesExistingPage from './pages/patient-files-existing.f7.html';
import PatientFilesNewPage from './pages/patient-files-new.f7.html';
import PatientFilesPacsPage from './pages/patient-files-pacs.f7.html';
import PatientRisksPage from './pages/patient-risks.f7.html';
import PatientHistoryPage from './pages/patient-history.f7.html';
import PatientFamilyPage from './pages/patient-family.f7.html';
import PatientExaminationPage from './pages/patient-examination.f7.html';
import PatientTreatmentsPage from './pages/patient-treatments.f7.html';
import ReportPage from './pages/report-config.f7.html';
import ExportPage from './pages/export.f7.html';
import AcquirePage from './pages/acquire-area.f7.html';
import AcquireMediaPage from './pages/acquire-media.f7.html';
import MeasurePage from './pages/measure.f7.html';
export default [
// Default page
{
path: '/',
component: BlankPage,
},
// Init page
{
path: '/init/',
component: InitPage,
},
// Landing page
{
path: '/landing/',
component: LandingPage,
},
// Landing home page
{
path: '/landing-home/',
component: LandingHomePage,
},
// Landing about page
{
path: '/landing-about/',
component: LandingAboutPage,
},
// Landing tutorial page
{
path: '/landing-tutorial/',
component: LandingTutorialPage,
},
// Landing contact page
{
path: '/landing-contact/',
component: LandingContactPage,
},
// Landing register page
{
path: '/landing-register/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/account/signup/?lang='+global.lang+'&apiKey=')
.then(data => {
// Process response
console.log("account/signup", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
resolve({
component: LandingRegisterPage,
}, {
context: data,
});
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Home page
{
path: '/home/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/home/?apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("home", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
if(data.credit_left==0) {
app.methods.signout(global.tr[global.lang].topLevel.warning.no_credit);
}
else {
app.data.settings = data.settings;
console.log("settings", app.data.settings);
resolve({
component: HomePage,
}, {
context: data,
});
app.views.create('.view-home', {
name: 'homeView',
url: '/patient/'
});
}
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Export page
{
path: '/export/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.get(app.data.config.apiBaseURL + '/home/export/?apiKey=', function (data) {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log('home/export', data);
app.preloader.hide();
if (data.result == 'ERROR') {
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
resolve({
component: ExportPage,
}, {
context: data,
});
}
}, function (data) {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
}, 'json');
}
},
// Profile page
{
path: '/profile/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/profile/?lang='+global.lang+'&apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("profile", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
resolve({
component: ProfilePage,
}, {
context: data,
});
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Patient page
{
path: '/patient/',
async: function (routeTo, routeFrom, resolve, reject) {
resolve({
component: PatientPage,
}, {
context: {},
});
app.views.create('.view-home-patient', {
name: 'homePatientView',
url: '/patient-files/'
});
app.data.patient.ID = null;
app.data.patient.visitID = null;
}
},
// Patient files page
{
path: '/patient-files/',
async: function (routeTo, routeFrom, resolve, reject) {
resolve({
component: PatientFilesPage,
}, {
context: {},
});
app.views.create('#view-home-patient-files-existing', {
name: 'homePatientFilesExistingView',
url: '/patient-files-existing/'
});
app.views.create('#view-home-patient-files-new', {
name: 'homePatientFilesNewView',
url: '/patient-files-new/'
});
app.views.create('#view-home-patient-files-pacs', {
name: 'homePatientFilesPacsView',
url: '/patient-files-pacs/'
});
}
},
// Patient files existing page
{
path: '/patient-files-existing/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/patient/files-existing/?apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("patient/files-existing", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
resolve({
component: PatientFilesExistingPage,
}, {
context: data,
});
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Patient files new page
{
path: '/patient-files-new/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/patient/files-new/?lang='+global.lang+'&apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("patient/files-new", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
resolve({
component: PatientFilesNewPage,
}, {
context: data,
});
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Patient files pacs page
{
path: '/patient-files-pacs/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/patient/files-pacs/?apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("patient/files-pacs", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
resolve({
component: PatientFilesPacsPage,
}, {
context: data,
});
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Patient risks page
{
path: '/patient-risks/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/patient/risks/' + app.data.patient.visitID + '/?apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("patient/risks", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
data.context.risks=JSON.parse(data.context.risks);
resolve({
component: PatientRisksPage,
}, {
context: data,
});
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Patient history page
{
path: '/patient-history/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/patient/history/' + app.data.patient.visitID + '/' + global.lang + '/?apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("patient/history", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
data.context.phistory=JSON.parse(data.context.phistory);
resolve({
component: PatientHistoryPage,
}, {
context: data,
});
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Patient family page
{
path: '/patient-family/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/patient/family/' + app.data.patient.visitID + '/?apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("patient/family", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
data.context.fhistory=JSON.parse(data.context.fhistory);
resolve({
component: PatientFamilyPage,
}, {
context: data,
});
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Patient examination page
{
path: '/patient-examination/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/patient/examination/' + app.data.patient.visitID + '/?apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("patient/examination", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
data.context.examination=JSON.parse(data.context.examination);
resolve({
component: PatientExaminationPage,
}, {
context: data,
});
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Patient treatments page
{
path: '/patient-treatments/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/patient/treatments/' + app.data.patient.visitID + '/?apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("patient/treatments", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
data.context.treatments=JSON.parse(data.context.treatments);
resolve({
component: PatientTreatmentsPage,
}, {
context: data,
});
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Acquire page
{
path: '/acquire/',
async: function (routeTo, routeFrom, resolve, reject) {
if(!app.data.patient.visitID) {
$$('.link.bar-link').removeClass('active');
if(app.views.homeView.router.url=='/patient/') {
$$('#toolbar-patient').addClass('active');
}
else if(app.views.homeView.router.url=='/profile/') {
$$('#toolbar-profile').addClass('active');
}
else if(app.views.homeView.router.url=='/export/') {
$$('#toolbar-export').addClass('active');
}
app.notification.create({
icon: 'info',
title: global.tr[global.lang].topLevel.notification.title,
text: global.tr[global.lang].topLevel.warning.select_patient,
closeTimeout: 3000,
closeButton: true,
}).open();
reject();
}
else {
resolve({
component: AcquirePage,
}, {
context: {},
});
}
}
},
// Report page
{
path: '/report/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
if(!app.data.patient.visitID) {
$$('.link.bar-link').removeClass('active');
if(app.views.homeView.router.url=='/patient/') {
$$('#toolbar-patient').addClass('active');
}
else if(app.views.homeView.router.url=='/profile/') {
$$('#toolbar-profile').addClass('active');
}
else if(app.views.homeView.router.url=='/export/') {
$$('#toolbar-export').addClass('active');
}
app.notification.create({
icon: 'info',
title: global.tr[global.lang].topLevel.notification.title,
text: global.tr[global.lang].topLevel.warning.select_patient,
closeTimeout: 3000,
closeButton: true,
}).open();
reject();
return;
}
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/report/' + app.data.patient.ID + '/' + app.data.patient.visitID + '/?apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("report", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
resolve({
component: ReportPage,
}, {
context: data,
});
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Acquire media page
{
path: '/acquire-media/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/acquire/media/' + app.data.patient.ID + '/' + app.data.patient.visitID + '/?apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("acquire/media", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
resolve({
component: AcquireMediaPage,
}, {
context: data,
});
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Measure page
{
path: '/measure/',
async: function (routeTo, routeFrom, resolve, reject) {
var app = this.app;
if(!app.data.patient.visitID) {
$$('.link.bar-link').removeClass('active');
if(app.views.homeView.router.url=='/patient/') {
$$('#toolbar-patient').addClass('active');
}
else if(app.views.homeView.router.url=='/profile/') {
$$('#toolbar-profile').addClass('active');
}
else if(app.views.homeView.router.url=='/export/') {
$$('#toolbar-export').addClass('active');
}
app.notification.create({
icon: 'info',
title: global.tr[global.lang].topLevel.notification.title,
text: global.tr[global.lang].topLevel.warning.select_patient,
closeTimeout: 3000,
closeButton: true,
}).open();
reject();
return;
}
app.preloader.show();
app.request.promise.json(app.data.config.apiBaseURL + '/measure/' + app.data.patient.ID + '/' + app.data.patient.visitID + '/?apiKey=')
.then(data => {
// Refresh token if needed
app.methods.refreshToken(data);
// Process response
console.log("measure", data);
app.preloader.hide();
if (data.result == 'ERROR') {
reject();
switch (data.reason) {
case 'denied':
app.methods.signout(global.tr[global.lang].topLevel.warning.disconnected);
break;
default:
app.dialog.alert(global.tr[global.lang].topLevel.error.internal_error);
break;
}
}
else {
if(!data.media.length) {
$$('.link.bar-link').removeClass('active');
$$('#toolbar-acquire').addClass('active');
app.notification.create({
icon: 'info',
title: global.tr[global.lang].topLevel.notification.title,
text: global.tr[global.lang].topLevel.notification.acquire_media,
closeTimeout: 3000,
closeButton: true,
}).open();
reject();
}
else {
resolve({
component: MeasurePage,
}, {
context: data,
});
}
}
}).catch(e => {
console.log(e);
reject();
app.preloader.hide();
app.dialog.alert(global.tr[global.lang].topLevel.error.server_unavailable);
});
}
},
// Error page
{
path: '(.*)',
component: NotFoundPage,
},
];