fix(sep): add external mapper for member

This commit is contained in:
riefive
2025-11-07 15:49:55 +07:00
parent c9f38b44f8
commit 5b15f86acb
2 changed files with 14 additions and 24 deletions
-10
View File
@@ -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
+14 -14
View File
@@ -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
}