From aa2a20a018901f17ec45a75f8e2687932c63f1c9 Mon Sep 17 00:00:00 2001 From: riefive Date: Mon, 27 Oct 2025 13:41:09 +0700 Subject: [PATCH] fix: add constant and change some service of vclaim --- app/components/content/sep/entry.vue | 26 ++++++++++++++----- app/handlers/patient.handler.ts | 4 +-- app/lib/constants.vclaim.ts | 16 ++++++++++-- .../vclaim-diagnose-referral.service.ts | 2 +- app/services/vclaim-diagnose.service.ts | 2 +- ...ervice.ts => vclaim-healthcare.service.ts} | 4 +-- app/services/vclaim-medicine.service.ts | 22 ++++++++++++++++ app/services/vclaim-region-city.service.ts | 2 +- .../vclaim-region-district.service.ts | 2 +- .../vclaim-region-province.service.ts | 2 +- 10 files changed, 65 insertions(+), 17 deletions(-) rename app/services/{vclaim-health-facility.service.ts => vclaim-healthcare.service.ts} (89%) create mode 100644 app/services/vclaim-medicine.service.ts diff --git a/app/components/content/sep/entry.vue b/app/components/content/sep/entry.vue index 8bd8c22f..d08dba68 100644 --- a/app/components/content/sep/entry.vue +++ b/app/components/content/sep/entry.vue @@ -9,8 +9,6 @@ import AppViewHistory from '~/components/app/sep/view-history.vue' import { toast } from '~/components/pub/ui/toast' // Types -import type { PaginationMeta } from '~/components/pub/my-ui/pagination/pagination.type' -import type { PatientEntity } from '~/models/patient' import type { SepHistoryData } from '~/components/app/sep/list-cfg.history' import type { SepVisitData } from '~/components/app/sep/list-cfg.visit' @@ -325,6 +323,7 @@ async function handleInit() { })) as any if (route.query) { // resource=encounter®ister-date=2025-10-23&payment-type=bpjs&bpjs-number=121212121222&sep-type=ri + // resource=encounter&is-service=false&patient-name=Slathem&national-identity=5617213001231231&medical-record-number=0000000018 const queries = route.query as any isServiceHidden.value = queries['is-service'] === 'true' selectedObjects.value = {} @@ -333,13 +332,28 @@ 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['doctor-id']) selectedObjects.value['doctorId'] = queries['doctor-id'] - if (queries['patient_name']) selectedObjects.value['patientName'] = queries['patient_name'] - if (queries['national_identity']) selectedObjects.value['nationalIdentity'] = queries['national_identity'] + if (queries['patient-name']) selectedObjects.value['patientName'] = queries['patient-name'] + if (queries['national-identity']) selectedObjects.value['nationalIdentity'] = queries['national-identity'] if (queries['payment-type']) selectedObjects.value['paymentType'] = queries['payment-type'] - if (queries['medical_record_number']) - selectedObjects.value['medicalRecordNumber'] = queries['medical_record_number'] + if (queries['medical-record-number']) + selectedObjects.value['medicalRecordNumber'] = queries['medical-record-number'] if (queries['resource']) resourceType.value = queries['resource'] delete selectedObjects.value['is-service'] + // Load patient data if identifier is provided + 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) + } + } + } catch (err) { + console.error('Failed to load patient from query params:', err) + } + } } } diff --git a/app/handlers/patient.handler.ts b/app/handlers/patient.handler.ts index ad584f1f..198b3a22 100644 --- a/app/handlers/patient.handler.ts +++ b/app/handlers/patient.handler.ts @@ -96,10 +96,10 @@ async function getPatientByIdentifierSearch(search: string) { if (result.type === 'resident-identity' && result.body.data) { patients.value = [mapPatientToRow(result.body.data)] } else if (result.type === 'identity') { - patients.value = [mapPatientToRow(result.body.data)] + patients.value = Array.isArray(result.body.data) ? result.body.data.map(mapPatientToRow) : result.body.data ? [mapPatientToRow(result.body.data)] : [] } else { const meta = result.body.meta - patients.value = result.body.data.map(mapPatientToRow) + patients.value = Array.isArray(result.body.data) ? result.body.data.map(mapPatientToRow) : result.body.data ? [mapPatientToRow(result.body.data)] : [] paginationMeta.value = mapPaginationMetaToRow(meta) } } else { diff --git a/app/lib/constants.vclaim.ts b/app/lib/constants.vclaim.ts index f3022fe4..822cf1bf 100644 --- a/app/lib/constants.vclaim.ts +++ b/app/lib/constants.vclaim.ts @@ -25,12 +25,12 @@ export const classLevelUpgrades: Record = { '6': 'ICCU', '7': 'ICU', '8': 'Diatas Kelas 1', -}; +} export const classPaySources: Record = { '1': 'Pribadi', '2': 'Pemberi Kerja', - '3': 'Asuransi Kesehatan Tambahan' + '3': 'Asuransi Kesehatan Tambahan', } export const procedureTypes: Record = { @@ -73,3 +73,15 @@ export const serviceAssessments: Record = { '4': 'Atas Instruksi RS', '5': 'Tujuan Kontrol', } + +export const paymentTypes: Record = { + jkn: 'JKN (Jaminan Kesehatan Nasional)', + jkmm: 'JKMM (Jaminan Kesehatan Mandiri)', + spm: 'SPM (Sistem Pembayaran Mandiri)', + pks: 'PKS (Pembiayaan Kesehatan Sosial)', +} + +export const sepRefTypeCodes: Record = { + internal: 'Rujukan Internal', + external: 'Faskes Lain', +} diff --git a/app/services/vclaim-diagnose-referral.service.ts b/app/services/vclaim-diagnose-referral.service.ts index 458466ef..34b94780 100644 --- a/app/services/vclaim-diagnose-referral.service.ts +++ b/app/services/vclaim-diagnose-referral.service.ts @@ -1,7 +1,7 @@ // Base import * as base from './_crud-base' -const path = '/api/vclaim/diagnosaprb' +const path = '/api/vclaim/v1/reference/diagnose-prb' const name = 'diagnose-referral' export function getList(params: any = null) { diff --git a/app/services/vclaim-diagnose.service.ts b/app/services/vclaim-diagnose.service.ts index 7993a7c2..a676f516 100644 --- a/app/services/vclaim-diagnose.service.ts +++ b/app/services/vclaim-diagnose.service.ts @@ -1,7 +1,7 @@ // Base import * as base from './_crud-base' -const path = '/api/vclaim/diagnosa' +const path = '/api/vclaim/v1/reference/diagnose' const name = 'diagnose' export function getList(params: any = null) { diff --git a/app/services/vclaim-health-facility.service.ts b/app/services/vclaim-healthcare.service.ts similarity index 89% rename from app/services/vclaim-health-facility.service.ts rename to app/services/vclaim-healthcare.service.ts index bfd751e6..60123572 100644 --- a/app/services/vclaim-health-facility.service.ts +++ b/app/services/vclaim-healthcare.service.ts @@ -1,8 +1,8 @@ // Base import * as base from './_crud-base' -const path = '/api/vclaim/referensi/faskes' -const name = 'faskes' +const path = '/api/vclaim/v1/reference/healthcare' +const name = 'healthcare' export function getList(params: any = null) { return base.getList(path, params, name) diff --git a/app/services/vclaim-medicine.service.ts b/app/services/vclaim-medicine.service.ts new file mode 100644 index 00000000..15a42050 --- /dev/null +++ b/app/services/vclaim-medicine.service.ts @@ -0,0 +1,22 @@ +// Base +import * as base from './_crud-base' + +const path = '/api/vclaim/v1/reference/medicine' +const name = 'medicine' + +export function getList(params: any = null) { + return base.getList(path, params, name) +} + +export async function getValueLabelList(params: any = null): Promise<{ value: string; label: string }[]> { + let data: { value: string; label: string }[] = [] + const result = await getList(params) + if (result.success) { + const resultData = result.body?.response?.list || [] + data = resultData.map((item: any) => ({ + value: item.kode ? String(item.kode) : '', + label: item.nama, + })) + } + return data +} diff --git a/app/services/vclaim-region-city.service.ts b/app/services/vclaim-region-city.service.ts index a77880f4..4ebfca20 100644 --- a/app/services/vclaim-region-city.service.ts +++ b/app/services/vclaim-region-city.service.ts @@ -1,7 +1,7 @@ // Base import * as base from './_crud-base' -const path = '/api/vclaim/cities' +const path = '/api/vclaim/v1/reference/regency' const name = 'cities' export function getList(params: any = null) { diff --git a/app/services/vclaim-region-district.service.ts b/app/services/vclaim-region-district.service.ts index 15a27526..0b0585a8 100644 --- a/app/services/vclaim-region-district.service.ts +++ b/app/services/vclaim-region-district.service.ts @@ -1,7 +1,7 @@ // Base import * as base from './_crud-base' -const path = '/api/vclaim/districts' +const path = '/api/vclaim/v1/reference/district' const name = 'districts' export function getList(params: any = null) { diff --git a/app/services/vclaim-region-province.service.ts b/app/services/vclaim-region-province.service.ts index 3284cfd5..5d58bb26 100644 --- a/app/services/vclaim-region-province.service.ts +++ b/app/services/vclaim-region-province.service.ts @@ -1,7 +1,7 @@ // Base import * as base from './_crud-base' -const path = '/api/vclaim/provinces' +const path = '/api/vclaim/v1/reference/province' const name = 'provinces' export function getList(params: any = null) {