Compare commits

..

4 Commits

3 changed files with 26 additions and 3 deletions

View File

@ -1,3 +1,20 @@
# vistassh-py # vistassh-py
Python-based web interface for VistA roll-and-scroll terminal Python-based web interface for VistA roll-and-scroll terminal
## Getting started
You will need:
- Python 3.10+ & pip
- Node.js & npm
To install the dependencies and build the frontend, perform the following steps:
```bash
pip install -r requirements.txt
cd frontend
npm install
npm run build
```
To run, invoke `main.py`.

View File

@ -1,7 +1,8 @@
export async function get_api_appointments({ fetch, clinics = [], date = 'T' } = {}) { export async function get_api_appointments({ fetch, clinics = [], date = 'T' } = {}) {
if(clinics.constructor === Array) clinics = clinics.map(x => x.replace(/^\s+|\s+$/g, '').replace(/\s+/, ' ')).filter(x => x).join('^').replace(/\//g, '|'); if(clinics.constructor === Array) clinics = clinics.map(x => x.replace(/^\s+|\s+$/g, '').replace(/\s+/, ' ')).filter(x => x).join('^').replace(/\//g, '|');
else clinics = clinics.replace(/^\s+|\s+$/g, '').replace(/\s+/, ' ').replace(/\//g, '|'); else clinics = clinics.replace(/^\s+|\s+$/g, '').replace(/\s+/, ' ').replace(/\//g, '|');
return await (await (fetch || window.fetch)('/api/appointments/' + clinics + '/' + date)).json(); if(clinics) return await (await (fetch || window.fetch)('/api/appointments/' + clinics + '/' + date)).json();
else return [];
} }
export async function get_api_lookup({ fetch, query, ordinal, force = false } = {}) { export async function get_api_lookup({ fetch, query, ordinal, force = false } = {}) {

View File

@ -2,7 +2,12 @@ import { get_api_appointments } from '$lib/backend.js';
/** @type {import('./$types').PageLoad} */ /** @type {import('./$types').PageLoad} */
export async function load({ params, fetch }) { export async function load({ params, fetch }) {
let clinics = await (await fetch('/api/config/user/clinics')).json(); let clinics = [];
try {
clinics = await (await fetch('/api/config/user/clinics')).json();
} catch(ex) {
console.error(ex, ex.stack);
}
let appointments = await get_api_appointments({ fetch, clinics, date: 'T' }); let appointments = await get_api_appointments({ fetch, clinics, date: 'T' });
appointments.sort((a, b) => a.time_scheduled < b.time_scheduled ? -1 : a.time_scheduled > b.time_scheduled ? 1 : 0); appointments.sort((a, b) => a.time_scheduled < b.time_scheduled ? -1 : a.time_scheduled > b.time_scheduled ? 1 : 0);
return { return {