diff --git a/app/components/app/specialist/entry-form.vue b/app/components/app/specialist/entry-form.vue new file mode 100644 index 00000000..0b3a0049 --- /dev/null +++ b/app/components/app/specialist/entry-form.vue @@ -0,0 +1,124 @@ + + + diff --git a/app/components/app/specialist/list-cfg.ts b/app/components/app/specialist/list-cfg.ts new file mode 100644 index 00000000..6b8dc5ea --- /dev/null +++ b/app/components/app/specialist/list-cfg.ts @@ -0,0 +1,68 @@ +import type { + Col, + KeyLabel, + RecComponent, + RecStrFuncComponent, + RecStrFuncUnknown, + Th, +} from '~/components/pub/custom-ui/data/types' +import { defineAsyncComponent } from 'vue' + +type SmallDetailDto = any + +const action = defineAsyncComponent(() => import('~/components/pub/custom-ui/data/dropdown-action-ud.vue')) + +export const cols: Col[] = [{ width: 100 }, {}, {}, {}, { width: 50 }] + +export const header: Th[][] = [ + [{ label: 'Id' }, { label: 'Nama' }, { label: 'Kode' }, { label: 'Encounter Class' }, { label: '' }], +] + +export const keys = ['id', 'name', 'cellphone', 'religion_code', 'action'] + +export const delKeyNames: KeyLabel[] = [ + { key: 'code', label: 'Kode' }, + { key: 'name', label: 'Nama' }, +] + +export const funcParsed: RecStrFuncUnknown = { + name: (rec: unknown): unknown => { + const recX = rec as SmallDetailDto + return `${recX.firstName} ${recX.lastName || ''}`.trim() + }, + identity_number: (rec: unknown): unknown => { + const recX = rec as SmallDetailDto + if (recX.identity_number?.substring(0, 5) === 'BLANK') { + return '(TANPA NIK)' + } + return recX.identity_number + }, + inPatient_itemPrice: (rec: unknown): unknown => { + const recX = rec as SmallDetailDto + return Number(recX.inPatient_itemPrice.price).toLocaleString('id-ID') + }, + outPatient_itemPrice: (rec: unknown): unknown => { + const recX = rec as SmallDetailDto + return Number(recX.outPatient_itemPrice.price).toLocaleString('id-ID') + }, +} + +export const funcComponent: RecStrFuncComponent = { + action(rec, idx) { + const res: RecComponent = { + idx, + rec: rec as object, + component: action, + props: { + size: 'sm', + }, + } + return res + }, +} + +export const funcHtml: RecStrFuncUnknown = { + patient_address(_rec) { + return '-' + }, +} diff --git a/app/components/app/specialist/list.vue b/app/components/app/specialist/list.vue new file mode 100644 index 00000000..a6b19eb2 --- /dev/null +++ b/app/components/app/specialist/list.vue @@ -0,0 +1,36 @@ + + + diff --git a/app/components/content/specialist/entry.ts b/app/components/content/specialist/entry.ts new file mode 100644 index 00000000..c003a029 --- /dev/null +++ b/app/components/content/specialist/entry.ts @@ -0,0 +1,37 @@ +import * as z from 'zod' + +export const installationConf = { + msg: { + placeholder: '---pilih encounter class (fhir7)', + }, + items: [ + { value: '1', label: 'Ambulatory', code: 'AMB' }, + { value: '2', label: 'Inpatient', code: 'IMP' }, + { value: '3', label: 'Emergency', code: 'EMER' }, + { value: '4', label: 'Observation', code: 'OBSENC' }, + { value: '5', label: 'Pre-admission', code: 'PRENC' }, + { value: '6', label: 'Short Stay', code: 'SS' }, + { value: '7', label: 'Virtual', code: 'VR' }, + { value: '8', label: 'Home Health', code: 'HH' }, + ], +} + +export const schemaConf = z.object({ + name: z + .string({ + required_error: 'Nama instalasi harus diisi', + }) + .min(3, 'Nama instalasi minimal 3 karakter'), + + code: z + .string({ + required_error: 'Kode instalasi harus diisi', + }) + .min(3, 'Kode instalasi minimal 3 karakter'), + + encounterClassCode: z + .string({ + required_error: 'Kelompok encounter class harus dipilih', + }) + .min(1, 'Kelompok encounter class harus dipilih'), +}) diff --git a/app/components/content/specialist/list.vue b/app/components/content/specialist/list.vue new file mode 100644 index 00000000..01a05baf --- /dev/null +++ b/app/components/content/specialist/list.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/app/pages/(features)/org-src/specialist/index.vue b/app/pages/(features)/org-src/specialist/index.vue new file mode 100644 index 00000000..d6e30dfd --- /dev/null +++ b/app/pages/(features)/org-src/specialist/index.vue @@ -0,0 +1,41 @@ + + +