innercontext/frontend/src/routes/health/lab-results/new/+page.server.ts

43 lines
1.4 KiB
TypeScript

import { createLabResult } from '$lib/api';
import { getSessionApiOptions } from '$lib/server/api';
import { fail, redirect } from '@sveltejs/kit';
import type { Actions, PageServerLoad } from './$types';
export const load: PageServerLoad = async () => {
return {};
};
export const actions: Actions = {
default: async (event) => {
const form = await event.request.formData();
const collected_at = form.get('collected_at') as string;
const test_code = form.get('test_code') as string;
const test_name_original = form.get('test_name_original') as string;
const value_num = form.get('value_num') as string;
const unit_original = form.get('unit_original') as string;
const flag = form.get('flag') as string;
const lab = form.get('lab') as string;
if (!collected_at || !test_code) {
return fail(400, { error: 'Date and test code are required' });
}
const body: Record<string, unknown> = {
collected_at,
test_code
};
if (test_name_original) body.test_name_original = test_name_original;
if (value_num) body.value_num = Number(value_num);
if (unit_original) body.unit_original = unit_original;
if (flag) body.flag = flag;
if (lab) body.lab = lab;
try {
await createLabResult(body, getSessionApiOptions(event));
} catch (error) {
return fail(500, { error: (error as Error).message });
}
redirect(303, '/health/lab-results');
}
};