diff --git a/app/components/app/material-package-item/quick-list.cfg.ts b/app/components/app/material-package-item/quick-list.cfg.ts new file mode 100644 index 00000000..90caf510 --- /dev/null +++ b/app/components/app/material-package-item/quick-list.cfg.ts @@ -0,0 +1,23 @@ +import type { Config } from '~/components/pub/my-ui/data-table' + +type SmallDetailDto = any + +export const config: Config = { + cols: [ { width: 150 }, {}, { width: 150 }], + + headers: [ + [ + { label: 'No' }, + { label: 'Name' }, + { label: 'Jumlah' }, + ], + ], + + keys: ['number', 'material.name', 'count'], + + parses: { + number: (rec: unknown): unknown => { + return (rec as SmallDetailDto).medicineGroup?.name || '-' + }, + }, +} diff --git a/app/components/app/material-package-item/quick-list.vue b/app/components/app/material-package-item/quick-list.vue new file mode 100644 index 00000000..2ff50a73 --- /dev/null +++ b/app/components/app/material-package-item/quick-list.vue @@ -0,0 +1,23 @@ + + + diff --git a/app/components/app/material-package/switcher.vue b/app/components/app/material-package/switcher.vue new file mode 100644 index 00000000..2709ff5e --- /dev/null +++ b/app/components/app/material-package/switcher.vue @@ -0,0 +1,33 @@ + + + diff --git a/app/components/app/procedure-room-order-item/list-detail.cfg.ts b/app/components/app/procedure-room-order-item/list-detail.cfg.ts new file mode 100644 index 00000000..cf0f6dab --- /dev/null +++ b/app/components/app/procedure-room-order-item/list-detail.cfg.ts @@ -0,0 +1,16 @@ +import type { Config } from '~/components/pub/my-ui/data-table' +import { defineAsyncComponent } from 'vue' + +export const config: Config = { + cols: [{}, {}, { classVal: '!p-0.5' }], + + headers: [ + [ + { label: 'Kode' }, + { label: 'Nama' }, + { label: 'Catatan' }, + ], + ], + + keys: ['procedureRoom.code', 'procedureRoom.infra.name', 'note'], +} diff --git a/app/components/app/procedure-room-order-item/list-detail.vue b/app/components/app/procedure-room-order-item/list-detail.vue new file mode 100644 index 00000000..75727a72 --- /dev/null +++ b/app/components/app/procedure-room-order-item/list-detail.vue @@ -0,0 +1,22 @@ + + + diff --git a/app/components/app/procedure-room-order-item/list-entry.cfg.ts b/app/components/app/procedure-room-order-item/list-entry.cfg.ts new file mode 100644 index 00000000..2afcd855 --- /dev/null +++ b/app/components/app/procedure-room-order-item/list-entry.cfg.ts @@ -0,0 +1,43 @@ +import type { Config } from '~/components/pub/my-ui/data-table' +import { defineAsyncComponent } from 'vue' + +const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-dud.vue')) +const input = defineAsyncComponent(() => import('~/components/pub/ui/input/Input.vue')) + +export const config: Config = { + cols: [{}, {}, { classVal: '!p-0.5' }, { width: 50 }], + + headers: [ + [ + { label: 'Kode' }, + { label: 'Nama' }, + { label: 'Catatan' }, + { label: '' }, + ], + ], + + keys: ['procedureRoom.code', 'procedureRoom.infra.name', 'note'], + + delKeyNames: [ + { key: 'mcuSrc.name', label: 'Nama' }, + ], + + components: { + note(rec, idx) { + return { + idx, + rec: rec as object, + component: input, + } + }, + action(rec, idx) { + return { + idx, + rec: rec as object, + component: action, + } + }, + }, + + htmls: {}, +} diff --git a/app/components/app/procedure-room-order-item/list-entry.vue b/app/components/app/procedure-room-order-item/list-entry.vue new file mode 100644 index 00000000..f86a0b8e --- /dev/null +++ b/app/components/app/procedure-room-order-item/list-entry.vue @@ -0,0 +1,33 @@ + + + diff --git a/app/components/app/procedure-room-order/detail.vue b/app/components/app/procedure-room-order/detail.vue new file mode 100644 index 00000000..23d0dc75 --- /dev/null +++ b/app/components/app/procedure-room-order/detail.vue @@ -0,0 +1,28 @@ + + + diff --git a/app/components/app/procedure-room-order/form.vue b/app/components/app/procedure-room-order/form.vue new file mode 100644 index 00000000..ff6c3835 --- /dev/null +++ b/app/components/app/procedure-room-order/form.vue @@ -0,0 +1,6 @@ + + + diff --git a/app/components/app/procedure-room-order/list.cfg.ts b/app/components/app/procedure-room-order/list.cfg.ts new file mode 100644 index 00000000..e415e26f --- /dev/null +++ b/app/components/app/procedure-room-order/list.cfg.ts @@ -0,0 +1,61 @@ +import type { Config, RecComponent } from '~/components/pub/my-ui/data-table' +import { defineAsyncComponent } from 'vue' +import type { ProcedureRoomOrder } from '~/models/procedure-room-order' + +const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-dsd.vue')) + +export const config: Config = { + cols: [{}, {}, {}, {}, {}, { width: 50 }], + + headers: [[ + { label: 'Tgl. Order' }, + { label: 'No. Order' }, + { label: 'Ruangan' }, + { label: 'Status' }, + { label: 'Resume' }, + { label: '' }, + ]], + + keys: ['date', 'number', 'room', 'status_code', 'resume', 'action'], + + delKeyNames: [ + { key: 'createdAt', label: 'Tgl. Order' }, + { key: 'id', label: 'No. Order' }, + ], + + parses: { + date: (rec: any) => { + const recX = rec as ProcedureRoomOrder + return recX.createdAt ? recX.createdAt.substring(0, 10) : '' + + }, + number: (rec: any) => { + const recX = rec as ProcedureRoomOrder + return `ORT-${recX.id}` + }, + room: (rec: any) => { + const recX = rec as ProcedureRoomOrder + let result = '' + if (recX.items && recX.items.length > 0) { + recX.items.forEach((item, idx) => { + result += item.infra?.name ? `
${item.infra.name}
` : '' + }) + } + // recX.ite + return '' + }, + }, + + components: { + action(rec, idx) { + const res: RecComponent = { + idx, + rec: rec as object, + component: action, + } + return res + }, + }, + + htmls: {}, +} diff --git a/app/components/app/procedure-room-order/list.vue b/app/components/app/procedure-room-order/list.vue new file mode 100644 index 00000000..bdbfe1be --- /dev/null +++ b/app/components/app/procedure-room-order/list.vue @@ -0,0 +1,34 @@ + + + diff --git a/app/components/app/procedure-room/multi-opt-picker.vue b/app/components/app/procedure-room/multi-opt-picker.vue new file mode 100644 index 00000000..ecdd945a --- /dev/null +++ b/app/components/app/procedure-room/multi-opt-picker.vue @@ -0,0 +1,41 @@ + + + diff --git a/app/components/app/procedure-room/picker.vue b/app/components/app/procedure-room/picker.vue new file mode 100644 index 00000000..3660e0cb --- /dev/null +++ b/app/components/app/procedure-room/picker.vue @@ -0,0 +1,42 @@ + + + diff --git a/app/components/app/procedure-room/single-opt-picker.vue b/app/components/app/procedure-room/single-opt-picker.vue new file mode 100644 index 00000000..ecdd945a --- /dev/null +++ b/app/components/app/procedure-room/single-opt-picker.vue @@ -0,0 +1,41 @@ + + + diff --git a/app/components/app/procedure-room/switcher.vue b/app/components/app/procedure-room/switcher.vue new file mode 100644 index 00000000..fdd80e7d --- /dev/null +++ b/app/components/app/procedure-room/switcher.vue @@ -0,0 +1,29 @@ + + + diff --git a/app/components/content/procedure-room-order/entry.vue b/app/components/content/procedure-room-order/entry.vue new file mode 100644 index 00000000..ad780e5b --- /dev/null +++ b/app/components/content/procedure-room-order/entry.vue @@ -0,0 +1,173 @@ + + + diff --git a/app/components/content/procedure-room-order/list.vue b/app/components/content/procedure-room-order/list.vue new file mode 100644 index 00000000..d742941c --- /dev/null +++ b/app/components/content/procedure-room-order/list.vue @@ -0,0 +1,191 @@ + + + diff --git a/app/components/content/procedure-room-order/main.vue b/app/components/content/procedure-room-order/main.vue new file mode 100644 index 00000000..61250fe1 --- /dev/null +++ b/app/components/content/procedure-room-order/main.vue @@ -0,0 +1,17 @@ + + + diff --git a/app/const/key-val/clinical.ts b/app/const/key-val/clinical.ts index d6a37b43..0c33a59c 100644 --- a/app/const/key-val/clinical.ts +++ b/app/const/key-val/clinical.ts @@ -18,6 +18,7 @@ export type MedObstacleCode = 'hearing' | 'sight' | 'physical' | 'emotional' | ' export type LearnMethodCode = 'demo' | 'discuss-leaflet' export type LangClassCode = 'ind' | 'region' | 'foreign' export type TranslatorSrcCode = 'team' | 'family' +export type ProcedureRoomTypeCode = 'procedure' | 'operation' export const subjectCodes: Record = { detail: 'Detail', @@ -224,3 +225,8 @@ export const translatorSrcCodes: Record = { team: 'Tim Penerjemah', family: 'Keluarga', } + +export const procedureRoomTypeCodes: Record = { + procedure: 'Ruang Tindakan', + operation: 'Ruang Operasi', +} diff --git a/app/handlers/encounter-init.handler.ts b/app/handlers/encounter-init.handler.ts index d25cfab1..e198a89a 100644 --- a/app/handlers/encounter-init.handler.ts +++ b/app/handlers/encounter-init.handler.ts @@ -40,6 +40,7 @@ const ChemoMedicineProtocolListAsync = defineAsyncComponent( const DeviceOrderAsync = defineAsyncComponent(() => import('~/components/content/device-order/main.vue')) const PrescriptionAsync = defineAsyncComponent(() => import('~/components/content/prescription/main.vue')) const CpLabOrderAsync = defineAsyncComponent(() => import('~/components/content/cp-lab-order/main.vue')) +const ProcedureRoomOrderAsync = defineAsyncComponent(() => import('~/components/content/procedure-room-order/main.vue')) const MicroLabOrderAsync = defineAsyncComponent(() => import('~/components/content/micro-lab-order/main.vue')) const CprjAsync = defineAsyncComponent(() => import('~/components/content/cprj/entry.vue')) const RadiologyAsync = defineAsyncComponent(() => import('~/components/content/radiology-order/main.vue')) @@ -164,8 +165,8 @@ const defaultKeys: Record = { classCode: ['ambulatory', 'emergency', 'inpatient'], unit: 'all', }, - actionRoomOrder: { - id: 'action-room-order', + procedureRoomOrder: { + id: 'procedure-room-order', title: 'Order Ruang Tindakan', classCode: ['ambulatory', 'emergency', 'inpatient'], unit: 'all', @@ -376,10 +377,9 @@ export function injectComponents(id: string | number, data: EncounterListData, m currentKeys.paLabOrder['component'] = null currentKeys.paLabOrder['props'] = { encounter_id: id } } - if (currentKeys?.actionRoomOrder) { - // TODO: add component for actionRoomOrder - currentKeys.actionRoomOrder['component'] = null - currentKeys.actionRoomOrder['props'] = { encounter_id: id } + if (currentKeys?.procedureRoomOrder) { + currentKeys.procedureRoomOrder['component'] = ProcedureRoomOrderAsync + currentKeys.procedureRoomOrder['props'] = { encounter_id: id } } if (currentKeys?.mcuResult) { // TODO: add component for mcuResult diff --git a/app/handlers/procedure-room-order.handler.ts b/app/handlers/procedure-room-order.handler.ts new file mode 100644 index 00000000..d2535274 --- /dev/null +++ b/app/handlers/procedure-room-order.handler.ts @@ -0,0 +1,17 @@ +import { genCrudHandler } from '~/handlers/_handler' +import { create, update, remove } from '~/services/procedure-room-order.service' + +export const { + recId, + recAction, + recItem, + isReadonly, + isProcessing, + isFormEntryDialogOpen, + isRecordConfirmationOpen, + onResetState, + handleActionSave, + handleActionEdit, + handleActionRemove, + handleCancelForm, +} = genCrudHandler({ create, update, remove}) diff --git a/app/handlers/procedure-room.handler.ts b/app/handlers/procedure-room.handler.ts new file mode 100644 index 00000000..49ee40ec --- /dev/null +++ b/app/handlers/procedure-room.handler.ts @@ -0,0 +1,17 @@ +import { genCrudHandler } from '~/handlers/_handler' +import { create, update, remove } from '~/services/procedure-room.service' + +export const { + recId, + recAction, + recItem, + isReadonly, + isProcessing, + isFormEntryDialogOpen, + isRecordConfirmationOpen, + onResetState, + handleActionSave, + handleActionEdit, + handleActionRemove, + handleCancelForm, +} = genCrudHandler({ create, update, remove}) diff --git a/app/models/infra.ts b/app/models/infra.ts index 80119748..e7ebe681 100644 --- a/app/models/infra.ts +++ b/app/models/infra.ts @@ -1,10 +1,27 @@ -export interface Infra { - id?: number +import { type Base, genBase } from "./_base"; +import { genProcedureRoom, type ProcedureRoom } from "./procedure-room"; + +export interface Infra extends Base { code: string name: string infraGroup_code: string parent_id?: number | string | null + unit_id?: number | string | null specialist_id?: number | string | null subspecialist_id?: number | string | null - unit_id?: number | string | null + procedureRoom?: ProcedureRoom +} + +export function genInfra(): Infra { + return { + ...genBase(), + code: '', + name: '', + infraGroup_code: '', + parent_id: null, + unit_id: null, + specialist_id: null, + subspecialist_id: null, + procedureRoom: genProcedureRoom(), + } } diff --git a/app/models/material-package-item.ts b/app/models/material-package-item.ts new file mode 100644 index 00000000..9ccde8d1 --- /dev/null +++ b/app/models/material-package-item.ts @@ -0,0 +1,14 @@ +import { type Base, genBase } from "./_base" + +export interface MaterialPackageItem extends Base { + materialPackage_code: string + material_code: string +} + +export function genMaterialPackage(): MaterialPackageItem { + return { + ...genBase(), + materialPackage_code: '', + material_code: '', + } +} diff --git a/app/models/material-package.ts b/app/models/material-package.ts new file mode 100644 index 00000000..df3f01d1 --- /dev/null +++ b/app/models/material-package.ts @@ -0,0 +1,14 @@ +import { type Base, genBase } from "./_base" + +export interface MaterialPackage extends Base { + code: string + name: string +} + +export function genMaterialPackage(): MaterialPackage { + return { + ...genBase(), + code: '', + name: '', + } +} diff --git a/app/models/procedure-room-order-item.ts b/app/models/procedure-room-order-item.ts new file mode 100644 index 00000000..5fa84763 --- /dev/null +++ b/app/models/procedure-room-order-item.ts @@ -0,0 +1,27 @@ +import { type Base, genBase } from "./_base"; +import { genMaterialPackage, type MaterialPackage } from "./material-package"; +import { genProcedureRoom, type ProcedureRoom } from "./procedure-room"; + +export interface ProcedureRoomOrderItem extends Base { + procedureRoomOrder_id: number + procedureRoom_code: string + procedureRoom: ProcedureRoom +} + +export interface CreateDto { + procedureRoomOrder_id: number + procedureRoom_code: string +} + +export interface UpdateDto extends CreateDto { + note?: string +} + +export function genProcedureRoomOrderItem(): ProcedureRoomOrderItem { + return { + ...genBase(), + procedureRoomOrder_id: 0, + procedureRoom_code: '', + procedureRoom: genProcedureRoom(), + } +} diff --git a/app/models/procedure-room-order.ts b/app/models/procedure-room-order.ts new file mode 100644 index 00000000..4d1bb8c5 --- /dev/null +++ b/app/models/procedure-room-order.ts @@ -0,0 +1,23 @@ +import { type Base, genBase } from "./_base"; +import { genMaterialPackage, type MaterialPackage } from "./material-package"; +import { genProcedureRoom, type ProcedureRoom } from "./procedure-room"; + +export interface ProcedureRoomOrder extends Base { + encounter_id: number + materialPackage_code?: string + materialPackage: MaterialPackage + items?: ProcedureRoom[] +} + +export interface CreateDto { + encounter_id: number +} + +export function genProcedureRoomOrder(): ProcedureRoomOrder { + return { + ...genBase(), + encounter_id: 0, + materialPackage_code: '', + materialPackage: genMaterialPackage(), + } +} diff --git a/app/models/procedure-room.ts b/app/models/procedure-room.ts new file mode 100644 index 00000000..b34bba13 --- /dev/null +++ b/app/models/procedure-room.ts @@ -0,0 +1,24 @@ +import { type Base, genBase } from "./_base"; +import type { Infra } from "./infra"; + +export interface ProcedureRoom extends Base { + code: string + infra_code: string + infra?: Infra + type_code: string + unit_code: string + specialist_code?: string | null + subspecialist_code?: string | null +} + +export function genProcedureRoom(): ProcedureRoom { + return { + ...genBase(), + code: '', + infra_code: '', + type_code: '', + unit_code: '', + specialist_code: null, + subspecialist_code: null, + } +} diff --git a/app/schemas/material-package-item.schema.ts b/app/schemas/material-package-item.schema.ts new file mode 100644 index 00000000..e893aa5b --- /dev/null +++ b/app/schemas/material-package-item.schema.ts @@ -0,0 +1,12 @@ +import { z } from 'zod' +import type { MaterialPackageItem } from '~/models/material-package-item' + +const MaterialSchema = z.object({ + materialPackage_code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'), + material_code: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'), +}) + +type MaterialFormData = z.infer & Partial + +export { MaterialSchema } +export type { MaterialFormData } diff --git a/app/schemas/material-package.schema.ts b/app/schemas/material-package.schema.ts new file mode 100644 index 00000000..38220f7b --- /dev/null +++ b/app/schemas/material-package.schema.ts @@ -0,0 +1,12 @@ +import { z } from 'zod' +import type { MaterialPackage } from '~/models/material-package' + +const MaterialSchema = z.object({ + code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'), + name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'), +}) + +type MaterialFormData = z.infer & Partial + +export { MaterialSchema } +export type { MaterialFormData } diff --git a/app/services/infra.service.ts b/app/services/infra.service.ts index 9147421d..aa9b94e8 100644 --- a/app/services/infra.service.ts +++ b/app/services/infra.service.ts @@ -1,14 +1,11 @@ -// Base import * as base from './_crud-base' - -// Types import type { Infra } from '~/models/infra' -const path = '/api/v1/infra' const name = 'infra' +const path = `/api/v1/${name}` -export function create(data: any) { +export function create(data: Infra) { return base.create(path, data, name) } @@ -20,7 +17,7 @@ export function getDetail(id: number | string) { return base.getDetail(path, id, name) } -export function update(id: number | string, data: any) { +export function update(id: number | string, data: Infra) { return base.update(path, id, data, name) } @@ -28,15 +25,26 @@ export function remove(id: number | string) { return base.remove(path, id, name) } -export async function getValueLabelList(params: any = null): Promise<{ value: string; label: string }[]> { +export async function getValueLabelList(params: any = null, useId = false): 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: Infra) => ({ - value: item.id ? Number(item.id) : item.code, - label: item.name, - })) + data = !useId ? + resultData.map((item: Infra) => ({ value: item.code, label: item.name })) : + resultData.map((item: Infra) => ({ value: item.id, label: item.name })) } return data } + +// export async function getProcedureRoomValueLabelList(params: any = null, useId = false): Promise<{ value: string; label: string }[]> { +// let data: { value: string; label: string }[] = [] +// const result = await getList({ 'infraGroup_code': 'procedure-room' ,...params}) +// if (result.success) { +// const resultData = result.body?.data || [] +// data = !useId ? +// resultData.map((item: Infra) => ({ value: item.code, label: item.name })) : +// resultData.map((item: Infra) => ({ value: item.id, label: item.name })) +// } +// return data +// } diff --git a/app/services/material-package-item.service.ts b/app/services/material-package-item.service.ts new file mode 100644 index 00000000..00059356 --- /dev/null +++ b/app/services/material-package-item.service.ts @@ -0,0 +1,25 @@ +// Base +import * as base from './_crud-base' + +const name = 'material-package-item' +const path = `/api/v1/${name}` + +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) { + return base.getDetail(path, id, name) +} + +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) +} diff --git a/app/services/material-package.service.ts b/app/services/material-package.service.ts new file mode 100644 index 00000000..36822045 --- /dev/null +++ b/app/services/material-package.service.ts @@ -0,0 +1,38 @@ +// Base +import type { MaterialPackage } from '~/models/material-package' +import * as base from './_crud-base' + +const name = 'material-package' +const path = `/api/v1/${name}` + +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) { + return base.getDetail(path, id, name) +} + +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, useId = false): 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 = !useId ? + resultData.map((item: MaterialPackage) => ({ value: item.code, label: item.name })) : + resultData.map((item: MaterialPackage) => ({ value: item.id, label: item.name })) + } + return data +} diff --git a/app/services/procedure-room-order-item.service.ts b/app/services/procedure-room-order-item.service.ts new file mode 100644 index 00000000..8e6d08b8 --- /dev/null +++ b/app/services/procedure-room-order-item.service.ts @@ -0,0 +1,26 @@ +// Base +import type { CreateDto, UpdateDto } from '~/models/procedure-room-order-item' +import * as base from './_crud-base' + +const name = 'procedure-room-order-item' +const path = `/api/v1/${name}` + +export function create(data: CreateDto) { + return base.create(path, data, name) +} + +export function getList(params: any = null) { + return base.getList(path, params, name) +} + +export function getDetail(id: number | string) { + return base.getDetail(path, id, name) +} + +export function update(id: number | string, data: UpdateDto) { + return base.update(path, id, data, name) +} + +export function remove(id: number | string) { + return base.remove(path, id, name) +} diff --git a/app/services/procedure-room-order.service.ts b/app/services/procedure-room-order.service.ts new file mode 100644 index 00000000..b5c354c3 --- /dev/null +++ b/app/services/procedure-room-order.service.ts @@ -0,0 +1,42 @@ +// Base +import type { ProcedureRoomOrder, CreateDto } from '~/models/procedure-room-order' +import * as base from './_crud-base' + +const name = 'procedure-room-order' +const path = `/api/v1/${name}` + +export function create(data: CreateDto) { + 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 = null) { + return base.getDetail(path, id, name, params) +} + +export function update(id: number | string, data: ProcedureRoomOrder) { + return base.update(path, id, data, name) +} + +export function remove(id: number | string) { + return base.remove(path, id, name) +} + + +export async function submit(id: number) { + try { + const resp = await xfetch(`${path}/${id}/submit`, 'PATCH') + const result: any = {} + if (resp.success) { + result.success = resp.success + result.body = (resp.body as Record) || {} + return result + } + } catch (error) { + console.error(`Error submitting ${name}:`, error) + throw new Error(`Failed to submit ${name}`) + } +} diff --git a/app/services/procedure-room.service.ts b/app/services/procedure-room.service.ts new file mode 100644 index 00000000..c799de75 --- /dev/null +++ b/app/services/procedure-room.service.ts @@ -0,0 +1,26 @@ +// Base +import type { ProcedureRoom } from '~/models/procedure-room' +import * as base from './_crud-base' + +const name = 'procedure-room' +const path = `/api/v1/${name}` + +export function create(data: ProcedureRoom) { + return base.create(path, data, name) +} + +export function getList(params: any = null) { + return base.getList(path, params, name) +} + +export function getDetail(id: number | string) { + return base.getDetail(path, id, name) +} + +export function update(id: number | string, data: ProcedureRoom) { + return base.update(path, id, data, name) +} + +export function remove(id: number | string) { + return base.remove(path, id, name) +}