* dev: hotfix, moved combobox and datepicker * dev: hotfix, moved combobox and datepicker * dev: hotfix, text-size standardization * dev: hotfix, text-size standardization * feat/encounter-status-107: wip * feat/encounter: wip * feat/encounter: done --------- Co-authored-by: Munawwirul Jamal <munawwirul.jamal@gmail.com>
62 lines
1.8 KiB
TypeScript
62 lines
1.8 KiB
TypeScript
// 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<string, any>) || {}
|
|
return result
|
|
} catch (error) {
|
|
console.error(`Error putting ${name}:`, error)
|
|
throw new Error(`Failed to put ${name}`)
|
|
}
|
|
} |