From 5b15f86acbb12131dd15bebedcf80a92fb8a8cb7 Mon Sep 17 00:00:00 2001 From: riefive Date: Fri, 7 Nov 2025 15:49:55 +0700 Subject: [PATCH] fix(sep): add external mapper for member --- app/components/app/sep/entry-form.vue | 10 ---------- app/components/content/sep/entry.vue | 28 +++++++++++++-------------- 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/app/components/app/sep/entry-form.vue b/app/components/app/sep/entry-form.vue index 0a646cd4..35956ad7 100644 --- a/app/components/app/sep/entry-form.vue +++ b/app/components/app/sep/entry-form.vue @@ -15,7 +15,6 @@ import TreeSelect from '~/components/pub/my-ui/select-tree/tree-select.vue' // Types import { IntegrationBpjsSchema, type IntegrationBpjsFormData } from '~/schemas/integration-bpjs.schema' -import type { PatientEntity } from '~/models/patient' import type { TreeItem } from '~/components/pub/my-ui/select-tree/type' // Helpers @@ -48,7 +47,6 @@ const props = defineProps<{ cities: any[] districts: any[] specialists?: TreeItem[] - patient?: PatientEntity | null | undefined objects?: any values?: any }>() @@ -138,7 +136,6 @@ const onSubmit = handleSubmit((values) => { }) watch(props, (value) => { - const patient = value.patient || ({} as PatientEntity) const objects = value.objects || ({} as any) if (Object.keys(objects).length > 0) { sepDate.value = objects?.registerDate || new Date().toISOString().substring(0, 10) @@ -160,13 +157,6 @@ watch(props, (value) => { isDateReload.value = false }, 100) } - if (Object.keys(patient).length > 0) { - cardNumber.value = '-' - nationalId.value = patient?.person?.residentIdentityNumber || '-' - medicalRecordNumber.value = patient?.number || '-' - patientName.value = patient?.person?.name || '-' - phoneNumber.value = '-' - } }) // Watch debounced search values diff --git a/app/components/content/sep/entry.vue b/app/components/content/sep/entry.vue index 143948a1..3a916c4d 100644 --- a/app/components/content/sep/entry.vue +++ b/app/components/content/sep/entry.vue @@ -218,9 +218,9 @@ async function getPatientInternalMappers(id: string) { if (selectedPatientObject.value) { const patient = selectedPatientObject.value selectedObjects.value['cardNumber'] = '-' - selectedObjects.value['patientName'] = patient?.person?.name || '-' selectedObjects.value['nationalIdentity'] = patient?.person?.residentIdentityNumber || '-' selectedObjects.value['medicalRecordNumber'] = patient?.number || '-' + selectedObjects.value['patientName'] = patient?.person?.name || '-' selectedObjects.value['phoneNumber'] = patient?.person?.contacts?.[0]?.value || '-' } } catch (err) { @@ -230,11 +230,21 @@ async function getPatientInternalMappers(id: string) { async function getPatientExternalMappers(id: string, type: string) { try { - const resultMember = await getMemberList({ + const result = await getMemberList({ mode: type, number: id, date: new Date().toISOString().substring(0, 10), }) + if (result && result.success && result.body) { + const memberRaws = result.body?.response || null + selectedObjects.value['cardNumber'] = memberRaws?.peserta?.noKartu || '' + selectedObjects.value['nationalIdentity'] = memberRaws?.peserta?.nik || '' + selectedObjects.value['medicalRecordNumber'] = memberRaws?.peserta?.mr?.noMR || '' + selectedObjects.value['patientName'] = memberRaws?.peserta?.nama || '' + selectedObjects.value['phoneNumber'] = memberRaws?.peserta?.mr?.noTelepon || '' + selectedObjects.value['classLevel'] = memberRaws?.peserta?.hakKelas?.kode || '' + selectedObjects.value['status'] = memberRaws?.statusPeserta?.kode || '' + } } catch (err) { console.error('Failed to load patient from query params:', err) } @@ -278,20 +288,10 @@ async function handleEvent(menu: string, value: any) { const prevCardNumber = selectedPatientObject.value?.person?.residentIdentityNumber || '' if (type === 'indentity' && text !== prevCardNumber) { await getPatientByIdentifierSearch(text) - const resultMember = await getMemberList({ - mode: 'by-identity', - number: text, - date: new Date().toISOString().substring(0, 10), - }) - console.log(resultMember) + await getPatientExternalMappers(text, 'by-identity') } if (type === 'cardNumber' && text !== prevCardNumber) { - const resultMember = await getMemberList({ - mode: 'by-card', - number: text, - date: new Date().toISOString().substring(0, 10), - }) - console.log(resultMember) + await getPatientExternalMappers(text, 'by-card') } return }