diff --git a/app/components/app/sep/entry-form.vue b/app/components/app/sep/entry-form.vue new file mode 100644 index 00000000..0e6c16da --- /dev/null +++ b/app/components/app/sep/entry-form.vue @@ -0,0 +1,282 @@ + + + + + + + + + Tanggal SEP* + + {{ errors.tanggalSep }} + + + Jalur + + {{ errors.jalur }} + + + + + + + + Data Pasien + + + Cari Pasien + + + + + No. Kartu BPJS* + + {{ errors.noBpjs }} + + + No. KTP* + + {{ errors.noKtp }} + + + No. RM* + + {{ errors.noRm }} + + + Nama Pasien* + + {{ errors.namaPasien }} + + + No. Telepon* + + {{ errors.noTelp }} + + + + + + + Data SEP + + + No. Surat Kontrol* + + + + + Cari Data + + + {{ errors.noSuratKontrol }} + + + Tanggal Surat Kontrol* + + {{ errors.tglSuratKontrol }} + + + + Klinik Tujuan* + + {{ errors.klinikTujuan }} + + + Klinik Eksekutif* + + + + Ya + + + + Tidak + + + + + + DPJP* + + {{ errors.dpjp }} + + + Diagnosa Awal* + + {{ errors.diagnosaAwal }} + + + + + + Catatan + + + + + + COB* + + + + Ya + + + + Tidak + + + + + Katarak* + + + + Ya + + + + Tidak + + + + + + + + Jenis Prosedur* + + + + Prosedur tidak berkelanjutan + + + + Prosedur dan terapi berkelanjutan + + + + + + + + Kode Penunjang* + + {{ errors.kodePenunjang }} + + + + + + + Riwayat SEP + + + Preview + + + + Simpan + + + + + diff --git a/app/components/app/sep/list-cfg.ts b/app/components/app/sep/list-cfg.ts new file mode 100644 index 00000000..013c7d6b --- /dev/null +++ b/app/components/app/sep/list-cfg.ts @@ -0,0 +1,78 @@ +import type { Col, KeyLabel, RecComponent, RecStrFuncComponent, Th } from '~/components/pub/custom-ui/data/types' +import { defineAsyncComponent } from 'vue' + +type SepDto = any + +const action = defineAsyncComponent(() => import('~/components/pub/custom-ui/data/dropdown-action-dud.vue')) + +export const cols: Col[] = [ + { width: 120 }, // TGL. SEP + { width: 150 }, // NO. SEP + { width: 120 }, // PELAYANAN + { width: 100 }, // JALUR + { width: 150 }, // NO. RM + { width: 200 }, // NAMA PASIEN + { width: 150 }, // NO. KARTU BPJS + { width: 150 }, // NO. SURAT KONTROL + { width: 150 }, // TGL SURAT KONTROL + { width: 150 }, // KLINIK TUJUAN + { width: 200 }, // DPJP + { width: 200 }, // DIAGNOSIS AWAL + { width: 100 }, // AKSI +] + +export const header: Th[][] = [ + [ + { label: 'TGL. SEP' }, + { label: 'NO. SEP' }, + { label: 'PELAYANAN' }, + { label: 'JALUR' }, + { label: 'NO. RM' }, + { label: 'NAMA PASIEN' }, + { label: 'NO. KARTU BPJS' }, + { label: 'NO. SURAT KONTROL' }, + { label: 'TGL SURAT KONTROL' }, + { label: 'KLINIK TUJUAN' }, + { label: 'DPJP' }, + { label: 'DIAGNOSIS AWAL' }, + { label: 'AKSI' }, + ], +] + +export const keys = [ + 'tgl_sep', + 'no_sep', + 'pelayanan', + 'jalur', + 'no_rm', + 'nama_pasien', + 'no_kartu_bpjs', + 'no_surat_kontrol', + 'tgl_surat_kontrol', + 'klinik_tujuan', + 'dpjp', + 'diagnosis_awal', + 'action', +] + +export const delKeyNames: KeyLabel[] = [ + { key: 'no_sep', label: 'NO. SEP' }, + { key: 'nama_pasien', label: 'Nama Pasien' }, +] + +export const funcParsed: Record any> = { + +} + +export const funcComponent: RecStrFuncComponent = { + action(rec, idx) { + const res: RecComponent = { + idx, + rec: rec as object, + component: action, + } + return res + }, +} + +export const funcHtml: Record any> = {} diff --git a/app/components/app/sep/list.vue b/app/components/app/sep/list.vue new file mode 100644 index 00000000..25707062 --- /dev/null +++ b/app/components/app/sep/list.vue @@ -0,0 +1,34 @@ + + + + + diff --git a/app/components/app/sep/table-history-sep.vue b/app/components/app/sep/table-history-sep.vue new file mode 100644 index 00000000..bfe00e51 --- /dev/null +++ b/app/components/app/sep/table-history-sep.vue @@ -0,0 +1,81 @@ + + + + + + + + History SEP + + + + + + + + + + + + + NO. SEP + TGL. SEP + NO. RUJUKAN + DIAGNOSIS AWAL + JENIS PELAYANAN + KELAS RAWAT + + + + + {{ p.no_sep }} + {{ p.tgl_sep }} + {{ p.no_rujukan }} + {{ p.diagnosis }} + {{ p.pelayanan }} + {{ p.kelas }} + + + + + + + + + + + diff --git a/app/components/app/sep/table-search-letter.vue b/app/components/app/sep/table-search-letter.vue new file mode 100644 index 00000000..64e65ff6 --- /dev/null +++ b/app/components/app/sep/table-search-letter.vue @@ -0,0 +1,104 @@ + + + + + + + + Cari No. Surat Kontrol + + + + + + + + + + + + + + NO. SURAT KONTROL + TGL RENCANA KONTROL + NO. SEP + NAMA PASIEN + NO. KARTU BPJS + KLINIK + DOKTER + + + + + + + + + + {{ p.noSurat }} + {{ p.tglRencana }} + {{ p.noSep }} + {{ p.namaPasien }} + {{ p.noBpjs }} + {{ p.klinik }} + {{ p.dokter }} + + + + + + + + + + Simpan + + + + + diff --git a/app/components/app/sep/table-search-patient.vue b/app/components/app/sep/table-search-patient.vue new file mode 100644 index 00000000..13a78651 --- /dev/null +++ b/app/components/app/sep/table-search-patient.vue @@ -0,0 +1,100 @@ + + + + + + + + Cari Pasien + + + + + + + + + + + + + + NO. KTP + NO. RM + NO. KARTU BPJS + NAMA PASIEN + + + + + + + + + + {{ p.ktp }} + {{ p.rm }} + {{ p.bpjs }} + {{ p.nama }} + + + + + + + + + + Simpan + + + + + diff --git a/app/components/content/sep/entry.vue b/app/components/content/sep/entry.vue new file mode 100644 index 00000000..61107232 --- /dev/null +++ b/app/components/content/sep/entry.vue @@ -0,0 +1,113 @@ + + + + + + Tambah SEP + + + + + + + diff --git a/app/components/content/sep/list.vue b/app/components/content/sep/list.vue new file mode 100644 index 00000000..2bfccd49 --- /dev/null +++ b/app/components/content/sep/list.vue @@ -0,0 +1,250 @@ + + + + + + + + + + + + + + + {{ dateRange }} + + + + + + + + + + + + + Ekspor + + + + Ekspor CSV + Ekspor Excel + + + + + + + + + + + + + + + + + + + + + + Hapus SEP + + + + Apakah anda yakin ingin menghapus SEP dengan data: + + + + No. SEP : {{ sepData.no_sep }} + No. Kartu BPJS : {{ sepData.kartu }} + Nama Pasien : {{ sepData.nama }} + + + + + Tidak + + + Ya + + + + + + diff --git a/app/components/pub/custom-ui/form/datepicker-single.vue b/app/components/pub/custom-ui/form/datepicker-single.vue new file mode 100644 index 00000000..7e628404 --- /dev/null +++ b/app/components/pub/custom-ui/form/datepicker-single.vue @@ -0,0 +1,56 @@ + + + + + + + + + {{ format(date, 'PPP') }} + {{ props.placeholder || 'Tanggal' }} + + + + + + + + + + diff --git a/app/components/pub/ui/select/SelectTrigger.vue b/app/components/pub/ui/select/SelectTrigger.vue index eb4c6b0f..6cb99609 100644 --- a/app/components/pub/ui/select/SelectTrigger.vue +++ b/app/components/pub/ui/select/SelectTrigger.vue @@ -28,7 +28,7 @@ const iconName = computed(() => props.iconName || 'i-radix-icons-caret-sort') > - + diff --git a/app/pages/(features)/bpjs/sep/add.vue b/app/pages/(features)/bpjs/sep/add.vue new file mode 100644 index 00000000..87413fc5 --- /dev/null +++ b/app/pages/(features)/bpjs/sep/add.vue @@ -0,0 +1,41 @@ + + + + + + + + diff --git a/app/pages/(features)/bpjs/sep/index.vue b/app/pages/(features)/bpjs/sep/index.vue new file mode 100644 index 00000000..7c527526 --- /dev/null +++ b/app/pages/(features)/bpjs/sep/index.vue @@ -0,0 +1,40 @@ + + + + + + + + + + diff --git a/package.json b/package.json index 905dee25..d415abde 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "@radix-icons/vue": "^1.0.0", "@unovis/ts": "^1.5.1", "@unovis/vue": "^1.5.1", + "date-fns": "^4.1.0", "embla-carousel": "^8.5.2", "embla-carousel-vue": "^8.5.2", "h3": "^1.15.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bcbed231..36169ffb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ dependencies: '@unovis/vue': specifier: ^1.5.1 version: 1.5.2(@unovis/ts@1.5.2)(vue@3.5.18) + date-fns: + specifier: ^4.1.0 + version: 4.1.0 embla-carousel: specifier: ^8.5.2 version: 8.6.0 @@ -6124,6 +6127,10 @@ packages: engines: {node: '>= 12'} dev: true + /date-fns@4.1.0: + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + dev: false + /db0@0.3.2: resolution: {integrity: sha512-xzWNQ6jk/+NtdfLyXEipbX55dmDSeteLFt/ayF+wZUU5bzKgmrDOxmInUTbyVRp46YwnJdkDA1KhB7WIXFofJw==} peerDependencies:
{{ errors.tanggalSep }}
{{ errors.jalur }}
{{ errors.noBpjs }}
{{ errors.noKtp }}
{{ errors.noRm }}
{{ errors.namaPasien }}
{{ errors.noTelp }}
{{ errors.noSuratKontrol }}
{{ errors.tglSuratKontrol }}
{{ errors.klinikTujuan }}
{{ errors.dpjp }}
{{ errors.diagnosaAwal }}
{{ errors.kodePenunjang }}
No. SEP : {{ sepData.no_sep }}
No. Kartu BPJS : {{ sepData.kartu }}
Nama Pasien : {{ sepData.nama }}
{{ format(date, 'PPP') }}
{{ props.placeholder || 'Tanggal' }}