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, }, ];