From a41df17d86930382a6d27bbeb8884242ee896744 Mon Sep 17 00:00:00 2001 From: riefive Date: Tue, 18 Nov 2025 12:40:58 +0700 Subject: [PATCH] fix: get control letter of doctor --- app/components/content/sep/entry.vue | 103 ++++++++---------- app/components/content/sep/list.vue | 84 ++++---------- app/services/vclaim-control-letter.service.ts | 7 +- 3 files changed, 73 insertions(+), 121 deletions(-) diff --git a/app/components/content/sep/entry.vue b/app/components/content/sep/entry.vue index eb3b5ad3..e9e76981 100644 --- a/app/components/content/sep/entry.vue +++ b/app/components/content/sep/entry.vue @@ -341,7 +341,7 @@ async function handleEvent(menu: string, value: any) { if (menu === 'service-type') { selectedServiceType.value = value doctors.value = await getDoctorLabelList({ - serviceType: selectedServiceType.value || 1, + serviceType: selectedServiceType.value || '2', serviceDate: new Date().toISOString().substring(0, 10), specialistCode: 0, }) @@ -369,13 +369,33 @@ async function handleEvent(menu: string, value: any) { } if (menu === 'search-letter') { isLetterReadonly.value = false - getLetterMappers(value.admissionType, value.search).then(() => { + getLetterMappers(value.admissionType, value.search).then(async () => { if (letters.value.length > 0) { const copyObjects = { ...selectedObjects.value } const letter = letters.value[0] selectedObjects.value = {} - selectedLetter.value = letter.letterNumber + selectedLetter.value = letter.letterNumber isLetterReadonly.value = true + if (letter.information || letter.clinic) { + const poly = value.admissionType === '3' ? letter.clinic : letter.information?.poly + if (poly) { + const resultControl = await getControlLetterList({ + mode: 'by-schedule', + controlDate: letter.plannedDate, + controlType: selectedServiceType.value, + polyCode: poly, + }) + 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 controlLetters = resultUnique.map((item: any) => ({ + value: item.kodeDokter ? String(item.kodeDokter) : '', + label: `${item.kodeDokter} - ${item.namaDokter} - ${item.jadwalPraktek} (${item.kapasitas})`, + })) + doctors.value = controlLetters + } + } + } setTimeout(async () => { selectedObjects.value = copyObjects selectedObjects.value['letterDate'] = letter.plannedDate @@ -420,7 +440,7 @@ async function handleEvent(menu: string, value: any) { } if (menu === 'save-sep') { isSaveLoading.value = true - + // Map letter data to form if admissionType !== '3' and letters.value has data let mappedValues = value if (selectedAdmissionType.value !== '3') { @@ -456,7 +476,7 @@ async function handleEvent(menu: string, value: any) { if (!value.clinicExcecutive) { mappedValues.clinicExcecutive = 'no' } - + createSep(makeSepData(mappedValues)) .then((res) => { const body = res?.body @@ -492,13 +512,13 @@ async function handleFetch(params: any) { if (menu === 'clinic-from') { facilitiesFrom.value = await getHealthFacilityLabelList({ healthcare: value, - healthcareType: selectedServiceType.value || 1, + healthcareType: selectedServiceType.value || 2, }) } if (menu === 'clinic-to') { facilitiesTo.value = await getHealthFacilityLabelList({ healthcare: value, - healthcareType: selectedServiceType.value || 1, + healthcareType: selectedServiceType.value || 2, }) } if (menu === 'province') { @@ -523,6 +543,7 @@ async function handleFetchSpecialists() { } async function handleInit() { + selectedServiceType.value = '2' const facilities = await getHealthFacilityLabelList({ healthcare: 'Puskesmas', healthcareType: selectedLetter.value || 1, @@ -531,7 +552,7 @@ async function handleInit() { facilitiesFrom.value = facilities facilitiesTo.value = facilities doctors.value = await getDoctorLabelList({ - serviceType: selectedServiceType.value || 1, + serviceType: selectedServiceType.value || '2', serviceDate: new Date().toISOString().substring(0, 10), specialistCode: 0, }) @@ -616,44 +637,20 @@ onMounted(async () => { diff --git a/app/components/content/sep/list.vue b/app/components/content/sep/list.vue index 9777aa98..f122e27f 100644 --- a/app/components/content/sep/list.vue +++ b/app/components/content/sep/list.vue @@ -107,10 +107,7 @@ const headerPrep: HeaderPrep = { }, } -async function getMonitoringVisitMappers() { - isLoading.dataListLoading = true - data.value = [] - +function getDateFilter() { let dateFilter = ''; const isTimeLocal = true const dateFirst = dateSelection.value && dateSelection.value.start ? dateSelection.value.start.toDate(getLocalTimeZone()) : new Date() @@ -120,9 +117,15 @@ async function getMonitoringVisitMappers() { } else { dateFilter = dateFirst.toISOString().substring(0, 10) } - + return dateFilter +} + +async function getMonitoringVisitMappers() { + isLoading.dataListLoading = true + data.value = [] + const dateFilter = getDateFilter() const result = await geMonitoringVisitList({ - date: dateFilter, + date: dateFilter || '', serviceType: serviceType.value, }) @@ -241,35 +244,20 @@ provide('table_data_loader', isLoading)
- +
-
- @@ -280,14 +268,9 @@ provide('table_data_loader', isLoading) - @@ -299,54 +282,35 @@ provide('table_data_loader', isLoading)
- +
- Hapus SEP - Apakah anda yakin ingin menghapus SEP dengan data: -
-

No. SEP : {{ sepData.sepNumber }}

-

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

-

Nama Pasien : {{ sepData.patientName }}

+

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

+

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

+

Nama Pasien: {{ sepData.patientName }}

- - - diff --git a/app/services/vclaim-control-letter.service.ts b/app/services/vclaim-control-letter.service.ts index 007e91c5..5747d557 100644 --- a/app/services/vclaim-control-letter.service.ts +++ b/app/services/vclaim-control-letter.service.ts @@ -6,6 +6,7 @@ const name = 'rencana-kontrol' export function getList(params: any = null) { let url = path + console.log(params) if (params?.letterNumber && params.mode === 'by-control') { url += `/noSuratKontrol/${params.letterNumber}` } @@ -15,11 +16,11 @@ export function getList(params: any = null) { if (params?.letterNumber && params.mode === 'by-sep') { url += `/${params.letterNumber}` } - if (params?.letterNumber && params.mode === 'by-schedule') { - url += `/jadwalDokter?jeniskontrol=${params.controlType}&kodepoli=${params.poliCode}&tanggalkontrol=${params.controlDate}` + if (params?.controlDate && params.mode === 'by-schedule') { + url += `/jadwalDokter?jeniskontrol=${params.controlType}&kodepoli=${params.polyCode}&tanggalkontrol=${params.controlDate}` delete params.controlType - delete params.poliCode delete params.controlDate + delete params.polyCode } if (params) { delete params.letterNumber