From a6ff2499ee3cae6c2260ee4906d11cf3be9961d7 Mon Sep 17 00:00:00 2001 From: riefive Date: Tue, 18 Nov 2025 14:32:25 +0700 Subject: [PATCH] fix: adjust payload sep --- app/components/content/sep/entry.vue | 14 +++++++++++--- app/components/content/sep/list.vue | 3 ++- app/services/vclaim-sep.service.ts | 17 +++++++++++++---- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/app/components/content/sep/entry.vue b/app/components/content/sep/entry.vue index e9e76981..a674f032 100644 --- a/app/components/content/sep/entry.vue +++ b/app/components/content/sep/entry.vue @@ -55,6 +55,7 @@ import { getPatientByIdentifierSearch, } from '~/handlers/patient.handler' +const userStore = useUserStore() const route = useRoute() const openPatient = ref(false) const openLetter = ref(false) @@ -290,8 +291,13 @@ function mapLetterDataToForm(formValues: any): any { } // response.rujukan.provPerujuk.kode → fromClinic (rujukan.ppkRujukan) - if (info.ppkRujukan) { - mappedValues.referralTo = info.ppkRujukan + if (info.destination) { + mappedValues.referralTo = info.destination + } + + // response.rujukan.poliRujukan.kode → polyCode + if (info.poly) { + mappedValues.polyCode = info.poly } // response.asalFaskes → asalRujukan (1 = Faskes 1, 2 = Faskes RS) @@ -387,7 +393,7 @@ async function handleEvent(menu: string, value: any) { }) if (resultControl && resultControl.success && resultControl.body) { const resultData = resultControl.body?.response?.list || [] - const resultUnique = [...new Map(resultData.map((item: any) => [item.kode, item])).values()] + const resultUnique = [...new Map(resultData.map((item: any) => [item.kodeDokter, item])).values()] const controlLetters = resultUnique.map((item: any) => ({ value: item.kodeDokter ? String(item.kodeDokter) : '', label: `${item.kodeDokter} - ${item.namaDokter} - ${item.jadwalPraktek} (${item.kapasitas})`, @@ -477,6 +483,8 @@ async function handleEvent(menu: string, value: any) { mappedValues.clinicExcecutive = 'no' } + mappedValues.userName = userStore.user?.user_name || '' + createSep(makeSepData(mappedValues)) .then((res) => { const body = res?.body diff --git a/app/components/content/sep/list.vue b/app/components/content/sep/list.vue index f122e27f..c4becc6b 100644 --- a/app/components/content/sep/list.vue +++ b/app/components/content/sep/list.vue @@ -185,6 +185,7 @@ async function handleRemove() { console.log('Data dihapus:', sepData) const result = await removeSepData(makeSepDataForRemove({ ...sepData.value, userName: userStore.user?.user_name })) if (result && result.success && result.body) { + await getSepList() toast({ title: 'Berhasil', description: 'Data berhasil dihapus', variant: 'default' }) } else { toast({ title: 'Gagal', description: 'Gagal menghapus data', variant: 'destructive' }) @@ -301,7 +302,7 @@ provide('table_data_loader', isLoading) Apakah anda yakin ingin menghapus SEP dengan data:
-

>No. SEP: {{ sepData.sepNumber }}

+

No. SEP: {{ sepData.sepNumber }}

No. Kartu BPJS: {{ sepData.cardNumber }}

Nama Pasien: {{ sepData.patientName }}

diff --git a/app/services/vclaim-sep.service.ts b/app/services/vclaim-sep.service.ts index defc2414..93224a4a 100644 --- a/app/services/vclaim-sep.service.ts +++ b/app/services/vclaim-sep.service.ts @@ -7,6 +7,9 @@ import type { IntegrationBpjsFormData } from '~/schemas/integration-bpjs.schema' const path = '/api/vclaim-swagger/sep' const name = 'sep' +// TODO: temporary destinationClinic +const destinationClinic = '1323R001' + export function create(data: any) { return base.create(path, data, name) } @@ -20,6 +23,10 @@ export function getList(params: any = null) { return base.getList(url, params, name) } +export function getDetail(id: number | string) { + return base.getDetail(path, id, name) +} + export function remove(payload: any) { const url = `${path}` return base.removeCustom(url, payload, name) @@ -27,6 +34,8 @@ export function remove(payload: any) { export function makeSepData( data: IntegrationBpjsFormData & { + userName: string + polyCode?: string referralFrom?: string referralTo?: string referralLetterDate?: string @@ -36,13 +45,13 @@ export function makeSepData( const content = { noKartu: data.cardNumber || '', tglSep: data.sepDate, - ppkPelayanan: data.fromClinic || '', + ppkPelayanan: destinationClinic || data.fromClinic || '', jnsPelayanan: data.serviceType ? String(data.serviceType) : '2', noMR: data.medicalRecordNumber || '', catatan: data.note || '', diagAwal: data.initialDiagnosis || '', poli: { - tujuan: data.destinationClinic || '', + tujuan: data.polyCode || '', eksekutif: data.clinicExcecutive === 'yes' ? '1' : '0', }, cob: { @@ -51,7 +60,7 @@ export function makeSepData( katarak: { katarak: data.cataract === 'yes' ? '1' : '0', }, - tujuanKunj: data.purposeOfVisit || '', + tujuanKunj: data.purposeOfVisit || '0', flagProcedure: data.procedureType || '', kdPenunjang: data.supportCode || '', assesmentPel: data.serviceAssessment || '', @@ -75,7 +84,7 @@ export function makeSepData( }, dpjpLayan: data.attendingDoctor || '', noTelp: data.phoneNumber || '', - user: data.patientName || '', + user: data.userName || '', jaminan: { lakaLantas: data.trafficAccident || '0', noLP: data.lpNumber || '',