diff --git a/.env.example b/.env.example index 884ee1fb..864bbbe6 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,5 @@ NUXT_MAIN_API_ORIGIN= NUXT_BPJS_API_ORIGIN= +NUXT_API_VCLAIM_SWAGGER= # https://vclaim-api.multy.chat NUXT_SYNC_API_ORIGIN= NUXT_API_ORIGIN= diff --git a/app/components/app/action-report/entry-form.vue b/app/components/app/action-report/entry-form.vue new file mode 100644 index 00000000..2479e1c7 --- /dev/null +++ b/app/components/app/action-report/entry-form.vue @@ -0,0 +1,468 @@ + + + diff --git a/app/components/app/action-report/fields/fill-notes.vue b/app/components/app/action-report/fields/fill-notes.vue new file mode 100644 index 00000000..41c948c5 --- /dev/null +++ b/app/components/app/action-report/fields/fill-notes.vue @@ -0,0 +1,65 @@ + + diff --git a/app/components/app/action-report/fields/index.ts b/app/components/app/action-report/fields/index.ts new file mode 100644 index 00000000..ea1a0e72 --- /dev/null +++ b/app/components/app/action-report/fields/index.ts @@ -0,0 +1,10 @@ +export { default as FillNotes } from './fill-notes.vue' +export { default as RadioBloods } from './radio-bloods.vue' +export { default as SelectBilling } from './select-billing.vue' +export { default as SelectBirthPlace } from './select-birth-place.vue' +export { default as SelectBirthType } from './select-birth-type.vue' +export { default as SelectOperationSystem } from './select-operation-system.vue' +export { default as SelectOperationType } from './select-operation-type.vue' +export { default as SelectSpecimen } from './select-specimen.vue' +export { default as SelectSurgeryCounter } from './select-surgery-counter.vue' +export { default as SelectSurgeryType } from './select-surgery-type.vue' diff --git a/app/components/app/action-report/fields/radio-bloods.vue b/app/components/app/action-report/fields/radio-bloods.vue new file mode 100644 index 00000000..9bdaa187 --- /dev/null +++ b/app/components/app/action-report/fields/radio-bloods.vue @@ -0,0 +1,101 @@ + + + diff --git a/app/components/app/action-report/fields/select-billing.vue b/app/components/app/action-report/fields/select-billing.vue new file mode 100644 index 00000000..f8df074e --- /dev/null +++ b/app/components/app/action-report/fields/select-billing.vue @@ -0,0 +1,68 @@ + + + diff --git a/app/components/app/action-report/fields/select-birth-place.vue b/app/components/app/action-report/fields/select-birth-place.vue new file mode 100644 index 00000000..b2314129 --- /dev/null +++ b/app/components/app/action-report/fields/select-birth-place.vue @@ -0,0 +1,71 @@ + + + diff --git a/app/components/app/action-report/fields/select-birth-type.vue b/app/components/app/action-report/fields/select-birth-type.vue new file mode 100644 index 00000000..537e8282 --- /dev/null +++ b/app/components/app/action-report/fields/select-birth-type.vue @@ -0,0 +1,67 @@ + + + diff --git a/app/components/app/action-report/fields/select-operation-system.vue b/app/components/app/action-report/fields/select-operation-system.vue new file mode 100644 index 00000000..bae300b2 --- /dev/null +++ b/app/components/app/action-report/fields/select-operation-system.vue @@ -0,0 +1,69 @@ + + + diff --git a/app/components/app/action-report/fields/select-operation-type.vue b/app/components/app/action-report/fields/select-operation-type.vue new file mode 100644 index 00000000..e05a4196 --- /dev/null +++ b/app/components/app/action-report/fields/select-operation-type.vue @@ -0,0 +1,69 @@ + + + diff --git a/app/components/app/action-report/fields/select-specimen.vue b/app/components/app/action-report/fields/select-specimen.vue new file mode 100644 index 00000000..9be2bb93 --- /dev/null +++ b/app/components/app/action-report/fields/select-specimen.vue @@ -0,0 +1,69 @@ + + + diff --git a/app/components/app/action-report/fields/select-surgery-counter.vue b/app/components/app/action-report/fields/select-surgery-counter.vue new file mode 100644 index 00000000..2c682529 --- /dev/null +++ b/app/components/app/action-report/fields/select-surgery-counter.vue @@ -0,0 +1,67 @@ + + + diff --git a/app/components/app/action-report/fields/select-surgery-type.vue b/app/components/app/action-report/fields/select-surgery-type.vue new file mode 100644 index 00000000..2c59438a --- /dev/null +++ b/app/components/app/action-report/fields/select-surgery-type.vue @@ -0,0 +1,69 @@ + + + diff --git a/app/components/app/action-report/list-history.cfg.ts b/app/components/app/action-report/list-history.cfg.ts new file mode 100644 index 00000000..d943bc7d --- /dev/null +++ b/app/components/app/action-report/list-history.cfg.ts @@ -0,0 +1,88 @@ +import { defineAsyncComponent } from 'vue' + +import { format } from 'date-fns' +import { id } from 'date-fns/locale' + +import type { Config, RecComponent } from '~/components/pub/my-ui/data-table' +import type { ActionReportData } from '~/components/app/action-report/sample' +const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-d.vue')) + +export const config: Config = { + cols: [ + { width: 120 }, + { width: 120 }, + { width: 120 }, + { width: 120 }, + { width: 120 }, + { width: 120 }, + { width: 120 }, + { width: 50 }, + ], + + headers: [ + [ + { label: 'TANGGAL LAPORAN' }, + { label: 'DPJP' }, + { label: 'OPERATOR' }, + { label: 'TANGGAL PEMBEDAHAN' }, + { label: 'JENIS OPERASI' }, + { label: 'KODE BILLING' }, + { label: 'SISTEM OPERASI' }, + { label: 'AKSI' }, + ], + ], + + keys: ['reportAt', 'dpjp', 'operator', 'operationAt', 'operationType', 'billing', 'system', 'action'], + + delKeyNames: [ + { key: 'code', label: 'Kode' }, + { key: 'name', label: 'Nama' }, + ], + + parses: { + reportAt: (rec: unknown): unknown => { + const attr = (rec as ActionReportData).reportAt + const result = format(new Date(attr), 'd MMMM yyyy, HH:mm', { locale: id }) + + return result + }, + operationAt: (rec: unknown): unknown => { + const attr = (rec as ActionReportData).operationAt + const result = format(new Date(attr), 'd MMMM yyyy', { locale: id }) + + return result + }, + system: (rec: unknown): unknown => { + return 'Cito' + }, + operator: (rec: unknown): unknown => { + return 'dr. Dewi Arum Sawitri, Sp.An' + }, + billing: (rec: unknown): unknown => { + return 'General' + }, + operationType: (rec: unknown): unknown => { + return 'Besar' + }, + dpjp: (rec: unknown): unknown => { + return 'dr. Irwansyah Kurniawan Sp.Bo' + }, + parent: (rec: unknown): unknown => { + const recX = rec as any + return recX.parent?.name || '-' + }, + }, + + components: { + action(rec, idx) { + const res: RecComponent = { + idx, + rec: rec as object, + component: action, + } + return res + }, + }, + + htmls: {}, +} diff --git a/app/components/app/action-report/list-history.vue b/app/components/app/action-report/list-history.vue new file mode 100644 index 00000000..6ad7dd81 --- /dev/null +++ b/app/components/app/action-report/list-history.vue @@ -0,0 +1,39 @@ + + + diff --git a/app/components/app/action-report/list.cfg.ts b/app/components/app/action-report/list.cfg.ts new file mode 100644 index 00000000..13a78728 --- /dev/null +++ b/app/components/app/action-report/list.cfg.ts @@ -0,0 +1,89 @@ +import { defineAsyncComponent } from 'vue' + +import { format } from 'date-fns' +import { id } from 'date-fns/locale' + +import type { Config, RecComponent } from '~/components/pub/my-ui/data-table' +import type { ActionReportData } from '~/components/app/action-report/sample' +const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-dud.vue')) + +export const config: Config = { + cols: [ + { width: 120 }, + { width: 120 }, + { width: 120 }, + { width: 120 }, + { width: 120 }, + { width: 120 }, + { width: 120 }, + { width: 50 }, + ], + + headers: [ + [ + { label: 'TANGGAL LAPORAN' }, + { label: 'DPJP' }, + { label: 'OPERATOR' }, + { label: 'TANGGAL PEMBEDAHAN' }, + { label: 'JENIS OPERASI' }, + { label: 'KODE BILLING' }, + { label: 'SISTEM OPERASI' }, + { label: 'AKSI' }, + ], + ], + + keys: ['reportAt', 'dpjp', 'operator', 'operationAt', 'operationType', 'billing', 'system', 'action'], + + delKeyNames: [ + { key: 'id', label: 'ID' }, + { key: 'dokter', label: 'Dokter' }, + { key: 'reportAt', label: 'Tanggal Laporan' }, + ], + + parses: { + reportAt: (rec: unknown): unknown => { + const attr = (rec as ActionReportData).reportAt + const result = format(new Date(attr), 'd MMMM yyyy, HH:mm', { locale: id }) + + return result + }, + operationAt: (rec: unknown): unknown => { + const attr = (rec as ActionReportData).operationAt + const result = format(new Date(attr), 'd MMMM yyyy', { locale: id }) + + return result + }, + system: (rec: unknown): unknown => { + return 'Cito' + }, + operator: (rec: unknown): unknown => { + return 'dr. Dewi Arum Sawitri, Sp.An' + }, + billing: (rec: unknown): unknown => { + return 'General' + }, + operationType: (rec: unknown): unknown => { + return 'Besar' + }, + dpjp: (rec: unknown): unknown => { + return 'dr. Irwansyah Kurniawan Sp.Bo' + }, + parent: (rec: unknown): unknown => { + const recX = rec as any + return recX.parent?.name || '-' + }, + }, + + components: { + action(rec, idx) { + const res: RecComponent = { + idx, + rec: rec as object, + component: action, + } + return res + }, + }, + + htmls: {}, +} diff --git a/app/components/app/action-report/list.vue b/app/components/app/action-report/list.vue new file mode 100644 index 00000000..6ad7dd81 --- /dev/null +++ b/app/components/app/action-report/list.vue @@ -0,0 +1,39 @@ + + + diff --git a/app/components/app/action-report/preview.vue b/app/components/app/action-report/preview.vue new file mode 100644 index 00000000..fa113333 --- /dev/null +++ b/app/components/app/action-report/preview.vue @@ -0,0 +1,166 @@ + + + + + diff --git a/app/components/app/action-report/sample.ts b/app/components/app/action-report/sample.ts new file mode 100644 index 00000000..b067e859 --- /dev/null +++ b/app/components/app/action-report/sample.ts @@ -0,0 +1,54 @@ +import { addWeeks, formatISO } from 'date-fns' + +export type ActionReportData = { + id: number + reportAt: string + operationAt: string + noRm: string + noBill: string + nama: string + jk: string + alamat: string + klinik: string + dokter: string + caraBayar: string + rujukan: string + ketRujukan: string + asal: string +} + +export const sampleRows: ActionReportData[] = [ + { + id: 1, + reportAt: formatISO(addWeeks(new Date(), -1)), + operationAt: formatISO(addWeeks(new Date(), 1)), + noRm: 'RM23311224', + noBill: '-', + nama: 'Ahmad Baidowi', + jk: 'L', + alamat: 'Jl Jaksa Agung S. No. 9', + klinik: 'Penyakit dalam', + dokter: 'Dr. Andreas Sutaji', + caraBayar: 'JKN', + rujukan: 'Faskes BPJS', + ketRujukan: 'RUMAH SAKIT - RS Lawang Medika - Malang', + asal: 'Rawat Jalan Reguler', + }, + { + id: 2, + reportAt: new Date().toISOString(), + operationAt: formatISO(addWeeks(new Date(), 2)), + noRm: 'RM23455667', + noBill: '-', + nama: 'Abraham Sulaiman', + jk: 'L', + alamat: 'Purwantoro, Blimbing', + klinik: 'Penyakit dalam', + dokter: 'Dr. Andreas Sutaji', + caraBayar: 'JKN', + rujukan: 'Faskes BPJS', + ketRujukan: 'RUMAH SAKIT - RS Lawang Medika - Malang', + asal: 'Rawat Jalan Reguler', + }, + // tambahkan lebih banyak baris contoh jika perlu +] diff --git a/app/components/app/ap-lab-order/list.cfg.ts b/app/components/app/ap-lab-order/list.cfg.ts new file mode 100644 index 00000000..186e9f26 --- /dev/null +++ b/app/components/app/ap-lab-order/list.cfg.ts @@ -0,0 +1,58 @@ +import type { Config, RecComponent } from '~/components/pub/my-ui/data-table' +import { defineAsyncComponent } from 'vue' + +type SmallDetailDto = any + +const action = defineAsyncComponent(() => import('~/components/pub/my-ui/data/dropdown-action-dud.vue')) + +export const config: Config = { + cols: [{}, {}, {}, { width: 50 }], + + headers: [[ + { label: 'Tgl. Order' }, + { label: 'No. Order' }, + { label: 'Jadwal Pemeriksaan' }, + { label: 'Lokalisasi' }, + { label: 'Stadium' }, + { label: 'Status' }, + { label: 'Resume' }, + { label: '' }]], + + keys: [ + 'date', + 'number', + 'examinationDate', + 'localization', + 'stadium', + 'resume', + '', + ], + + delKeyNames: [ + { key: 'date', label: 'Tanggal' }, + { key: 'number', label: 'Nomor' }, + ], + + parses: { + parent: (rec: unknown): unknown => { + const recX = rec as SmallDetailDto + return recX.parent?.name || '-' + }, + }, + + components: { + action(rec, idx) { + const res: RecComponent = { + idx, + rec: rec as object, + component: action, + props: { + size: 'sm', + }, + } + return res + }, + }, + + htmls: {}, +} diff --git a/app/components/app/ap-lab-order/list.vue b/app/components/app/ap-lab-order/list.vue new file mode 100644 index 00000000..5d4820cc --- /dev/null +++ b/app/components/app/ap-lab-order/list.vue @@ -0,0 +1,37 @@ + + + diff --git a/app/components/app/assessment-education/entry.vue b/app/components/app/assessment-education/entry.vue new file mode 100644 index 00000000..33cfa826 --- /dev/null +++ b/app/components/app/assessment-education/entry.vue @@ -0,0 +1,215 @@ + + + diff --git a/app/components/app/assessment-education/fields/base-checkbox.vue b/app/components/app/assessment-education/fields/base-checkbox.vue new file mode 100644 index 00000000..a002feb4 --- /dev/null +++ b/app/components/app/assessment-education/fields/base-checkbox.vue @@ -0,0 +1,66 @@ + + + diff --git a/app/components/app/assessment-education/fields/base-select.vue b/app/components/app/assessment-education/fields/base-select.vue new file mode 100644 index 00000000..965f0c08 --- /dev/null +++ b/app/components/app/assessment-education/fields/base-select.vue @@ -0,0 +1,79 @@ + + + diff --git a/app/components/app/assessment-education/fields/checkbox-general.vue b/app/components/app/assessment-education/fields/checkbox-general.vue new file mode 100644 index 00000000..80ca534e --- /dev/null +++ b/app/components/app/assessment-education/fields/checkbox-general.vue @@ -0,0 +1,25 @@ + + + diff --git a/app/components/app/assessment-education/fields/checkbox-special.vue b/app/components/app/assessment-education/fields/checkbox-special.vue new file mode 100644 index 00000000..0754726c --- /dev/null +++ b/app/components/app/assessment-education/fields/checkbox-special.vue @@ -0,0 +1,22 @@ + + + diff --git a/app/components/app/assessment-education/fields/index.ts b/app/components/app/assessment-education/fields/index.ts new file mode 100644 index 00000000..f813c494 --- /dev/null +++ b/app/components/app/assessment-education/fields/index.ts @@ -0,0 +1,4 @@ +export { default as BaseSelect } from './base-select.vue' +export { default as CheckboxGeneral } from './checkbox-general.vue' +export { default as CheckboxSpecial } from './checkbox-special.vue' +export { default as SelectAssessmentCode } from './select-assessment-code.vue' diff --git a/app/components/app/assessment-education/fields/select-assessment-code.vue b/app/components/app/assessment-education/fields/select-assessment-code.vue new file mode 100644 index 00000000..9d006152 --- /dev/null +++ b/app/components/app/assessment-education/fields/select-assessment-code.vue @@ -0,0 +1,36 @@ + + +