fix(sep): add external mapper for member
This commit is contained in:
@@ -15,7 +15,6 @@ import TreeSelect from '~/components/pub/my-ui/select-tree/tree-select.vue'
|
|||||||
|
|
||||||
// Types
|
// Types
|
||||||
import { IntegrationBpjsSchema, type IntegrationBpjsFormData } from '~/schemas/integration-bpjs.schema'
|
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'
|
import type { TreeItem } from '~/components/pub/my-ui/select-tree/type'
|
||||||
|
|
||||||
// Helpers
|
// Helpers
|
||||||
@@ -48,7 +47,6 @@ const props = defineProps<{
|
|||||||
cities: any[]
|
cities: any[]
|
||||||
districts: any[]
|
districts: any[]
|
||||||
specialists?: TreeItem[]
|
specialists?: TreeItem[]
|
||||||
patient?: PatientEntity | null | undefined
|
|
||||||
objects?: any
|
objects?: any
|
||||||
values?: any
|
values?: any
|
||||||
}>()
|
}>()
|
||||||
@@ -138,7 +136,6 @@ const onSubmit = handleSubmit((values) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
watch(props, (value) => {
|
watch(props, (value) => {
|
||||||
const patient = value.patient || ({} as PatientEntity)
|
|
||||||
const objects = value.objects || ({} as any)
|
const objects = value.objects || ({} as any)
|
||||||
if (Object.keys(objects).length > 0) {
|
if (Object.keys(objects).length > 0) {
|
||||||
sepDate.value = objects?.registerDate || new Date().toISOString().substring(0, 10)
|
sepDate.value = objects?.registerDate || new Date().toISOString().substring(0, 10)
|
||||||
@@ -160,13 +157,6 @@ watch(props, (value) => {
|
|||||||
isDateReload.value = false
|
isDateReload.value = false
|
||||||
}, 100)
|
}, 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
|
// Watch debounced search values
|
||||||
|
|||||||
@@ -218,9 +218,9 @@ async function getPatientInternalMappers(id: string) {
|
|||||||
if (selectedPatientObject.value) {
|
if (selectedPatientObject.value) {
|
||||||
const patient = selectedPatientObject.value
|
const patient = selectedPatientObject.value
|
||||||
selectedObjects.value['cardNumber'] = '-'
|
selectedObjects.value['cardNumber'] = '-'
|
||||||
selectedObjects.value['patientName'] = patient?.person?.name || '-'
|
|
||||||
selectedObjects.value['nationalIdentity'] = patient?.person?.residentIdentityNumber || '-'
|
selectedObjects.value['nationalIdentity'] = patient?.person?.residentIdentityNumber || '-'
|
||||||
selectedObjects.value['medicalRecordNumber'] = patient?.number || '-'
|
selectedObjects.value['medicalRecordNumber'] = patient?.number || '-'
|
||||||
|
selectedObjects.value['patientName'] = patient?.person?.name || '-'
|
||||||
selectedObjects.value['phoneNumber'] = patient?.person?.contacts?.[0]?.value || '-'
|
selectedObjects.value['phoneNumber'] = patient?.person?.contacts?.[0]?.value || '-'
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
@@ -230,11 +230,21 @@ async function getPatientInternalMappers(id: string) {
|
|||||||
|
|
||||||
async function getPatientExternalMappers(id: string, type: string) {
|
async function getPatientExternalMappers(id: string, type: string) {
|
||||||
try {
|
try {
|
||||||
const resultMember = await getMemberList({
|
const result = await getMemberList({
|
||||||
mode: type,
|
mode: type,
|
||||||
number: id,
|
number: id,
|
||||||
date: new Date().toISOString().substring(0, 10),
|
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) {
|
} catch (err) {
|
||||||
console.error('Failed to load patient from query params:', 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 || ''
|
const prevCardNumber = selectedPatientObject.value?.person?.residentIdentityNumber || ''
|
||||||
if (type === 'indentity' && text !== prevCardNumber) {
|
if (type === 'indentity' && text !== prevCardNumber) {
|
||||||
await getPatientByIdentifierSearch(text)
|
await getPatientByIdentifierSearch(text)
|
||||||
const resultMember = await getMemberList({
|
await getPatientExternalMappers(text, 'by-identity')
|
||||||
mode: 'by-identity',
|
|
||||||
number: text,
|
|
||||||
date: new Date().toISOString().substring(0, 10),
|
|
||||||
})
|
|
||||||
console.log(resultMember)
|
|
||||||
}
|
}
|
||||||
if (type === 'cardNumber' && text !== prevCardNumber) {
|
if (type === 'cardNumber' && text !== prevCardNumber) {
|
||||||
const resultMember = await getMemberList({
|
await getPatientExternalMappers(text, 'by-card')
|
||||||
mode: 'by-card',
|
|
||||||
number: text,
|
|
||||||
date: new Date().toISOString().substring(0, 10),
|
|
||||||
})
|
|
||||||
console.log(resultMember)
|
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user