commitbcfb4c1456Merge:1cbde57975c87dAuthor: Munawwirul Jamal <[email protected]> Date: Mon Nov 17 11:15:14 2025 +0700 Merge pull request #147 from dikstub-rssa/feat/surat-kontrol-135 Feat: Integration Rehab Medik - Surat Kontrol commit975c87d99aMerge:f5820901cbde57Author: hasyim_kai <[email protected]> Date: Mon Nov 17 10:58:10 2025 +0700 Merge branch 'dev' into feat/surat-kontrol-135 commitf582090d18Author: hasyim_kai <[email protected]> Date: Thu Nov 13 11:56:21 2025 +0700 Fix: Refactor surat kontrol commita14c4a5d3cAuthor: hasyim_kai <[email protected]> Date: Tue Nov 11 14:21:58 2025 +0700 Fix: Refactor Surat Kontrol CRUD {id} to {code} commit24313adef6Author: hasyim_kai <[email protected]> Date: Fri Nov 7 10:35:46 2025 +0700 Fix: debug back btn in add, edit, detail content page commit59b44b5729Merge:99a61a0db15ec9Author: Muhammad Hasyim Chaidir Ali <[email protected]> Date: Fri Nov 7 09:11:10 2025 +0700 Merge branch 'dev' into feat/surat-kontrol-135 commit99a61a0bf2Author: hasyim_kai <[email protected]> Date: Thu Nov 6 08:06:01 2025 +0700 Feat: add right & bottom label in input base component commitdb48919325Author: hasyim_kai <[email protected]> Date: Wed Nov 5 13:53:43 2025 +0700 Feat: add banner in List if requirement not met commitbd57250f7eAuthor: hasyim_kai <[email protected]> Date: Wed Nov 5 13:26:48 2025 +0700 Fix: refactor getDetail url param commita361922e32Author: hasyim_kai <[email protected]> Date: Wed Nov 5 13:19:07 2025 +0700 Feat: Add & integrate add, edit, detail page commit331f4a6b20Author: hasyim_kai <[email protected]> Date: Tue Nov 4 16:56:08 2025 +0700 Feat: Integrate Control Letter commit2275f4dc99Author: hasyim_kai <[email protected]> Date: Mon Oct 27 14:01:58 2025 +0700 Feat: add UI BPJS > Surat Kontrol commit89e0e7a2c8Author: hasyim_kai <[email protected]> Date: Mon Oct 27 10:21:59 2025 +0700 Feat: add UI CRUD Surat Kontrol at Rehab Medik > kunjungan > Proses
109 lines
3.1 KiB
TypeScript
109 lines
3.1 KiB
TypeScript
import type { Config } from '~/components/pub/my-ui/data-table'
|
|
import type { Patient } from '~/models/patient'
|
|
import { defineAsyncComponent } from 'vue'
|
|
import { educationCodes, genderCodes } from '~/lib/constants'
|
|
import { calculateAge } from '~/lib/utils'
|
|
|
|
const action = defineAsyncComponent(() => import('./_common/dropdown-action.vue'))
|
|
const statusBadge = defineAsyncComponent(() => import('~/components/pub/my-ui/badge/status-badge.vue'))
|
|
|
|
export const config: Config = {
|
|
cols: [{}, {}, {}, {},{}, {}, {}, {}, {}, {width: 90},{width: 10},],
|
|
|
|
headers: [
|
|
[
|
|
{ label: 'No Surat' },
|
|
{ label: 'No MR' },
|
|
{ label: 'Nama' },
|
|
{ label: 'Tgl Rencana Kontrol' },
|
|
{ label: 'Tgl Penerbitan' },
|
|
{ label: 'Klinik Asal' },
|
|
{ label: 'Klinik Tujuan' },
|
|
{ label: 'DPJP' },
|
|
{ label: 'No SEP Asal' },
|
|
{ label: 'Status' },
|
|
{ label: 'Action' },
|
|
],
|
|
],
|
|
|
|
keys: ['birth_date', 'number', 'person.name', 'birth_date', 'birth_date',
|
|
'birth_date', 'number', 'person.name', 'birth_date', 'status', 'action'],
|
|
|
|
delKeyNames: [
|
|
{ key: 'code', label: 'Kode' },
|
|
{ key: 'name', label: 'Nama' },
|
|
],
|
|
|
|
parses: {
|
|
patientId: (rec: unknown): unknown => {
|
|
const patient = rec as Patient
|
|
return patient.number
|
|
},
|
|
identity_number: (rec: unknown): unknown => {
|
|
const { person } = rec as Patient
|
|
|
|
if (person.nationality == 'WNA') {
|
|
return person.passportNumber
|
|
}
|
|
|
|
return person.residentIdentityNumber || '-'
|
|
},
|
|
birth_date: (rec: unknown): unknown => {
|
|
const { person } = rec as Patient
|
|
|
|
if (typeof person.birthDate == 'object' && person.birthDate) {
|
|
return (person.birthDate as Date).toLocaleDateString('id-ID')
|
|
} else if (typeof person.birthDate == 'string') {
|
|
return (person.birthDate as string).substring(0, 10)
|
|
}
|
|
return person.birthDate
|
|
},
|
|
patient_age: (rec: unknown): unknown => {
|
|
const { person } = rec as Patient
|
|
return calculateAge(person.birthDate)
|
|
},
|
|
gender: (rec: unknown): unknown => {
|
|
const { person } = rec as Patient
|
|
|
|
if (typeof person.gender_code == 'number' && person.gender_code >= 0) {
|
|
return person.gender_code
|
|
} else if (typeof person.gender_code === 'string' && person.gender_code) {
|
|
return genderCodes[person.gender_code] || '-'
|
|
}
|
|
return '-'
|
|
},
|
|
education: (rec: unknown): unknown => {
|
|
const { person } = rec as Patient
|
|
if (typeof person.education_code == 'number' && person.education_code >= 0) {
|
|
return person.education_code
|
|
} else if (typeof person.education_code === 'string' && person.education_code) {
|
|
return educationCodes[person.education_code] || '-'
|
|
}
|
|
return '-'
|
|
},
|
|
},
|
|
|
|
components: {
|
|
action(rec, idx) {
|
|
return {
|
|
idx,
|
|
rec: rec as object,
|
|
component: action,
|
|
}
|
|
},
|
|
status(rec, idx) {
|
|
return {
|
|
idx,
|
|
rec: rec as object,
|
|
component: statusBadge,
|
|
}
|
|
},
|
|
},
|
|
|
|
htmls: {
|
|
patient_address(_rec) {
|
|
return '-'
|
|
},
|
|
},
|
|
}
|