// Base import type { CheckInFormData } from '~/schemas/encounter.schema' import * as base from './_crud-base' // Constants import { encounterClassCodes } from '~/lib/constants' const path = '/api/v1/encounter' const name = 'encounter' export function create(data: any) { return base.create(path, data, name) } export function getList(params: any = null) { return base.getList(path, params, name) } export function getDetail(id: number | string, params?: any) { return base.getDetail(path, id, name, params) } export function update(id: number | string, data: any) { return base.update(path, id, data, name) } export function remove(id: number | string) { return base.remove(path, id, name) } export async function getValueLabelList(params: any = null): Promise<{ value: string; label: string }[]> { let data: { value: string; label: string }[] = [] const result = await getList(params) if (result.success) { const resultData = result.body?.data || [] data = resultData.map((item: any) => ({ value: item.id ? Number(item.id) : item.code, label: item.name, })) } return data } export function getValueLabelListConstants() { const allowed = ['ambulatory', 'emergency', 'inpatient'] return Object.entries(encounterClassCodes) .filter(([key]) => allowed.includes(key)) .map(([key, value]) => ({ value: key, label: value })) } export async function checkIn(id: number, data: CheckInFormData) { try { const resp = await xfetch(`${path}/${id}/check-in`, 'PATCH', data) const result: any = {} result.success = resp.success result.body = (resp.body as Record) || {} return result } catch (error) { console.error(`Error putting ${name}:`, error) throw new Error(`Failed to put ${name}`) } }