From ca687911f5713591344a8623bb00829b2be05872 Mon Sep 17 00:00:00 2001 From: riefive Date: Fri, 7 Nov 2025 13:45:14 +0700 Subject: [PATCH] feat(sep): modify item tree specialist --- app/components/content/sep/entry.vue | 55 ++++++++++------------------ app/services/specialist.service.ts | 4 +- 2 files changed, 22 insertions(+), 37 deletions(-) diff --git a/app/components/content/sep/entry.vue b/app/components/content/sep/entry.vue index ce693317..4518df27 100644 --- a/app/components/content/sep/entry.vue +++ b/app/components/content/sep/entry.vue @@ -38,6 +38,7 @@ import { getValueLabelList as getDistrictList } from '~/services/vclaim-region-d import { getValueLabelList as getDoctorLabelList } from '~/services/vclaim-doctor.service' import { getValueLabelList as getHealthFacilityLabelList } from '~/services/vclaim-healthcare.service' import { getValueLabelList as getDiagnoseLabelList } from '~/services/vclaim-diagnose.service' +import { getList as getMemberList } from '~/services/vclaim-member.service' import { getList as getHospitalLetterList } from '~/services/vclaim-reference-hospital-letter.service' import { getList as getControlLetterList } from '~/services/vclaim-control-letter.service' import { getList as getMonitoringHistoryList } from '~/services/vclaim-monitoring-history.service' @@ -166,19 +167,7 @@ async function getLetterMappers(admissionType: string, search: string) { }, ] } else { - // lettersRaw.asalFaskes - // lettersRaw.peserta.hakKelas?.kode - // lettersRaw.peserta.mr?.noMR - // lettersRaw.peserta.mr?.noTelepon - // lettersRaw.peserta?.nama - // lettersRaw.peserta?.noKartu - // lettersRaw.poliRujukan?.kode - // lettersRaw.rujukan?.pelayanan?.kode - // lettersRaw.rujukan?.poliRujukan?.kode - // lettersRaw.diagAwal - // integrate ke sep --- - // "rujukan": { // "noRujukan": "0212R0300625B000006", // rujukan?.noKunjungan // "ppkRujukan": "0212R030", @@ -200,15 +189,23 @@ async function getLetterMappers(admissionType: string, search: string) { letters.value = [ { - letterNumber: lettersRaw.rujukan.noKunjungan || '', - plannedDate: lettersRaw.rujukan.tglKunjungan || '', - sepNumber: lettersRaw.rujukan?.informasi?.eSEP || '-', - patientName: lettersRaw.rujukan.peserta.nama || '', - bpjsCardNo: lettersRaw.rujukan.peserta.noKartu || '', - clinic: lettersRaw.rujukan.poliRujukan.nama || '', + letterNumber: lettersRaw?.rujukan?.noKunjungan || '', + plannedDate: lettersRaw?.rujukan?.tglKunjungan || '', + sepNumber: lettersRaw?.rujukan?.informasi?.eSEP || '-', + patientName: lettersRaw?.rujukan?.peserta.nama || '', + bpjsCardNo: lettersRaw?.rujukan?.peserta.noKartu || '', + clinic: lettersRaw?.rujukan?.poliRujukan.nama || '', doctor: '', information: { - + facility: lettersRaw?.asalFaskes || '', + diagnoses: lettersRaw?.rujukan?.diagnosa?.kode || '', + serviceType: lettersRaw?.rujukan?.pelayanan?.kode || '', + classLevel: lettersRaw?.rujukan?.peserta?.hakKelas?.kode || '', + poly: lettersRaw?.rujukan?.poliRujukan?.kode || '', + cardNumber: lettersRaw?.rujukan?.peserta?.noKartu || '', + patientName: lettersRaw?.rujukan?.peserta?.nama || '', + patientPhone: lettersRaw?.rujukan?.peserta?.mr?.noTelepon || '', + medicalRecordNumber: lettersRaw?.rujukan?.peserta?.mr?.noMR || '', } }, ] @@ -290,6 +287,7 @@ async function handleEvent(menu: string, value: any) { } if (menu === 'save-sep') { isSaveLoading.value = true + // value.destinationClinic = value.destinationClinic || '' createSep(makeSepData(value)) .then((res) => { const body = res?.body @@ -416,6 +414,8 @@ async function handleInit() { const queries = route.query as any isServiceHidden.value = queries['is-service'] === 'true' selectedObjects.value = {} + if (queries['resource']) resourceType.value = queries['resource'] + if (queries['resource-path']) resourcePath.value = queries['resource-path'] if (queries['doctor-code']) selectedObjects.value['doctorCode'] = queries['doctor-code'] if (queries['specialist-code']) selectedObjects.value['subSpecialistCode'] = queries['specialist-code'] if (queries['sub-specialist-code']) selectedObjects.value['subSpecialistCode'] = queries['sub-specialist-code'] @@ -425,26 +425,11 @@ async function handleInit() { if (queries['sep-number']) selectedObjects.value['sepNumber'] = queries['sep-number'] if (queries['register-date']) selectedObjects.value['registerDate'] = queries['register-date'] if (queries['payment-type']) selectedObjects.value['paymentType'] = queries['payment-type'] - if (queries['resource']) resourceType.value = queries['resource'] - if (queries['resource-path']) resourcePath.value = queries['resource-path'] // Load patient data if identifier is provided if (queries['patient-id']) { try { await getPatientCurrent(queries['patient-id']) - } catch (err) { - console.error('Failed to load patient from query params:', err) - } - } - if (queries['national-identity'] && queries['medical-record-number']) { - try { - await getPatientByIdentifierSearch(queries['national-identity']) - if (patients.value.length > 0) { - const foundPatient = patients.value[0] - if (foundPatient && foundPatient.id) { - selectedPatient.value = foundPatient.id - await getPatientCurrent(foundPatient.id) - } - } + console.log(selectedPatientObject.value) } catch (err) { console.error('Failed to load patient from query params:', err) } diff --git a/app/services/specialist.service.ts b/app/services/specialist.service.ts index 293ce6ab..1e3be79c 100644 --- a/app/services/specialist.service.ts +++ b/app/services/specialist.service.ts @@ -47,9 +47,9 @@ export async function getValueLabelList(params: any = null): Promise<{ value: st * @param specialists Array of specialist objects from API * @returns TreeItem[] */ -export function getValueTreeItems(specialists: any[]): TreeItem[] { +export function getValueTreeItems(specialists: any[], byCode = true): TreeItem[] { return specialists.map((specialist: Specialist) => ({ - value: specialist.id ? String(specialist.id) : specialist.code, + value: byCode ? String(specialist.code) : String(specialist.id), label: specialist.name, hasChildren: Array.isArray(specialist.subspecialists) && specialist.subspecialists.length > 0, children: