74 lines
1.7 KiB
TypeScript
74 lines
1.7 KiB
TypeScript
import type { Config } 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-ud.vue'))
|
|
|
|
export const config: Config = {
|
|
cols: [{}, {}, {}, { width: 100 }, { width: 120 }, {}, {}, {}, { width: 100 }, { width: 50 }],
|
|
|
|
headers: [
|
|
[{ label: 'Tanggal' }, { label: 'Diagnosa' }, { label: 'Tanggal Selesai' }, { label: 'Staff' }, { label: 'Aksi' }],
|
|
],
|
|
|
|
keys: ['date', 'diagnosa', 'finishDate', 'staff', 'action'],
|
|
|
|
delKeyNames: [
|
|
{ key: 'code', label: 'Kode' },
|
|
{ key: 'name', label: 'Nama' },
|
|
],
|
|
|
|
parses: {
|
|
time(rec: any) {
|
|
return rec.time ? new Date(rec.time).toLocaleDateString() : ''
|
|
},
|
|
main_complaint(rec: any) {
|
|
const { value } = rec ?? {}
|
|
|
|
if (typeof value !== 'string') return '-'
|
|
|
|
try {
|
|
const parsed = JSON.parse(value)
|
|
console.log('parsed', parsed)
|
|
return parsed?.['prim-compl'] || '-'
|
|
} catch {
|
|
return '-'
|
|
}
|
|
},
|
|
encounter(rec: any) {
|
|
const data = rec?.encounter ?? {}
|
|
return data?.class_code || '-'
|
|
},
|
|
diagnose(rec: any) {
|
|
const { value } = rec ?? {}
|
|
|
|
if (typeof value !== 'string') return '-'
|
|
|
|
try {
|
|
const parsed = JSON.parse(value)
|
|
const diagnose = parsed?.diagnose || []
|
|
return diagnose.map((d: any) => d.name).join(', ')
|
|
} catch {
|
|
return '-'
|
|
}
|
|
},
|
|
},
|
|
|
|
components: {
|
|
action(rec, idx) {
|
|
return {
|
|
idx,
|
|
rec: rec as object,
|
|
component: action,
|
|
}
|
|
},
|
|
},
|
|
|
|
htmls: {
|
|
patient_address(_rec) {
|
|
return '-'
|
|
},
|
|
},
|
|
}
|