diff --git a/app/components/app/encounter/entry-form.vue b/app/components/app/encounter/entry-form.vue index 22acbbb8..66d2e4e3 100644 --- a/app/components/app/encounter/entry-form.vue +++ b/app/components/app/encounter/entry-form.vue @@ -1,43 +1,57 @@ + + diff --git a/app/components/app/encounter/quick-info.vue b/app/components/app/encounter/quick-info.vue index 17e1053b..4705264b 100644 --- a/app/components/app/encounter/quick-info.vue +++ b/app/components/app/encounter/quick-info.vue @@ -7,17 +7,37 @@ const props = defineProps<{ data: Encounter }>() -let address = ref('') -if (props.data.patient.person.addresses) { - address.value = props.data.patient.person.addresses.map((a) => a.address).join(', ') -} +const addressText = computed(() => { + if (props.data.patient.person.addresses && props.data.patient.person.addresses.length > 0) { + return props.data.patient.person.addresses.map((a) => a.address).join(', ') + } + return '-' +}) -let dpjp = ref('') +const paymentMethodText = computed(() => { + const code = props.data.paymentMethod_code + if (!code) return '-' + + // Map payment method codes + if (code === 'insurance') { + return 'JKN' + } else if (code === 'jkn') { + return 'JKN' + } else if (code === 'jkmm') { + return 'JKMM' + } else if (code === 'spm') { + return 'SPM' + } else if (code === 'pks') { + return 'PKS' + } +}) + +let dpjpText = ref('') if (props.data.responsible_doctor) { const dp = props.data.responsible_doctor.employee.person - dpjp.value = `${dp.frontTitle} ${dp.name} ${dp.endTitle}` + dpjpText.value = `${dp.frontTitle} ${dp.name} ${dp.endTitle}` } else if (props.data.appointment_doctor) { - dpjp.value = props.data.appointment_doctor.employee.person.name + dpjpText.value = props.data.appointment_doctor.employee.person.name } @@ -31,7 +51,7 @@ if (props.data.responsible_doctor) {
- No. RM + Tgl. Lahir {{ data.patient.person.birthDate?.substring(0, 10) }} @@ -48,7 +68,7 @@ if (props.data.responsible_doctor) { Alamat -
+ {{ addressText }}
@@ -70,7 +90,7 @@ if (props.data.responsible_doctor) { - Klinik + Diagnosa {{ data.unit?.name }} @@ -84,17 +104,21 @@ if (props.data.responsible_doctor) { DPJP - {{ dpjp }} + {{ dpjpText }} - + Pembayaran + + + {{ paymentMethodText }} + + + + Billing - + Rp. 000.000 diff --git a/app/components/content/encounter/entry.vue b/app/components/content/encounter/entry.vue index 228d165e..203d781a 100644 --- a/app/components/content/encounter/entry.vue +++ b/app/components/content/encounter/entry.vue @@ -8,8 +8,11 @@ import AppViewPatient from '~/components/app/patient/view-patient.vue' import { refDebounced } from '@vueuse/core' // Handlers +import { getDetail as getDoctorDetail } from '~/services/doctor.service' import { useEncounterEntry } from '~/handlers/encounter-entry.handler' +import { genDoctor, type Doctor } from '~/models/doctor' +// Props const props = defineProps<{ id: number classCode?: 'ambulatory' | 'emergency' | 'inpatient' | 'outpatient' @@ -54,7 +57,33 @@ const { } = useEncounterEntry(props) const debouncedSepNumber = refDebounced(sepNumber, 500) +const selectedDoctor = ref(genDoctor()) +provide('rec_select_id', recSelectId) +provide('table_data_loader', isLoading) + +watch(debouncedSepNumber, async (newValue) => { + await getValidateSepNumber(newValue) +}) + +watch( + () => formObjects.value?.paymentType, + (newValue) => { + isSepValid.value = false + if (newValue !== 'jkn') { + sepNumber.value = '' + } + }, +) + +onMounted(async () => { + await handleInit() + if (props.id > 0) { + await loadEncounterDetail() + } +}) + +///// Functions function handleSavePatient() { selectedPatientObject.value = null setTimeout(() => { @@ -100,29 +129,13 @@ async function handleEvent(menu: string, value?: any) { } } -provide('rec_select_id', recSelectId) -provide('table_data_loader', isLoading) - -watch(debouncedSepNumber, async (newValue) => { - await getValidateSepNumber(newValue) -}) - -watch( - () => formObjects.value?.paymentType, - (newValue) => { - isSepValid.value = false - if (newValue !== 'jkn') { - sepNumber.value = '' - } - }, -) - -onMounted(async () => { - await handleInit() - if (props.id > 0) { - await loadEncounterDetail() +async function getDoctorInfo(value: string) { + const resp = await getDoctorDetail(value, { includes: 'unit,specialist,subspecialist'}) + if (resp.success) { + selectedDoctor.value = resp.body.data + // console.log(selectedDoctor.value) } -}) +}