feat(sep): search member through vclaim

This commit is contained in:
riefive
2025-11-07 15:37:45 +07:00
parent 25b5ef0e87
commit 630cda65af
5 changed files with 87 additions and 47 deletions
+58 -18
View File
@@ -186,7 +186,6 @@ async function getLetterMappers(admissionType: string, search: string) {
// "penanggungJawab": ""
// },
letters.value = [
{
letterNumber: lettersRaw?.rujukan?.noKunjungan || '',
@@ -206,18 +205,39 @@ async function getLetterMappers(admissionType: string, search: string) {
patientName: lettersRaw?.rujukan?.peserta?.nama || '',
patientPhone: lettersRaw?.rujukan?.peserta?.mr?.noTelepon || '',
medicalRecordNumber: lettersRaw?.rujukan?.peserta?.mr?.noMR || '',
}
},
},
]
}
}
}
function handleSavePatient() {
selectedPatientObject.value = null
setTimeout(() => {
getPatientCurrent(selectedPatient.value)
}, 150)
async function getPatientInternalMappers(id: string) {
try {
await getPatientCurrent(id)
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['phoneNumber'] = patient?.person?.contacts?.[0]?.value || '-'
}
} catch (err) {
console.error('Failed to load patient from query params:', err)
}
}
async function getPatientExternalMappers(id: string, type: string) {
try {
const resultMember = await getMemberList({
mode: type,
number: id,
date: new Date().toISOString().substring(0, 10),
})
} catch (err) {
console.error('Failed to load patient from query params:', err)
}
}
function handleSaveLetter() {
@@ -228,6 +248,11 @@ function handleSaveLetter() {
}
}
async function handleSavePatient() {
selectedPatientObject.value = null
await getPatientInternalMappers(selectedPatient.value)
}
async function handleEvent(menu: string, value: any) {
if (menu === 'admission-type') {
selectedAdmissionType.value = value
@@ -251,8 +276,22 @@ async function handleEvent(menu: string, value: any) {
const text = value.text
const type = value.type
const prevCardNumber = selectedPatientObject.value?.person?.residentIdentityNumber || ''
if (type === 'nationalId' && text !== prevCardNumber) {
getPatientByIdentifierSearch(text)
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)
}
if (type === 'cardNumber' && text !== prevCardNumber) {
const resultMember = await getMemberList({
mode: 'by-card',
number: text,
date: new Date().toISOString().substring(0, 10),
})
console.log(resultMember)
}
return
}
@@ -419,20 +458,22 @@ async function handleInit() {
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']
if (queries['bpjs-number']) selectedObjects.value['bpjsNumber'] = queries['bpjs-number']
if (queries['card-number']) selectedObjects.value['cardNumber'] = queries['card-number']
if (queries['register-date']) selectedObjects.value['registerDate'] = queries['register-date']
if (queries['sep-type']) selectedObjects.value['sepType'] = queries['sep-type']
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']
// Load patient data if identifier is provided
if (queries['patient-id']) {
try {
await getPatientCurrent(queries['patient-id'])
console.log(selectedPatientObject.value)
} catch (err) {
console.error('Failed to load patient from query params:', err)
}
await getPatientInternalMappers(queries['patient-id'])
}
if (queries['card-number']) {
const resultMember = await getMemberList({
mode: 'by-card',
number: queries['card-number'],
date: new Date().toISOString().substring(0, 10),
})
console.log(resultMember)
}
delete selectedObjects.value['is-service']
}
@@ -473,7 +514,6 @@ onMounted(async () => {
:class-level-upgrades="classLevelUpgradesList"
:class-pay-sources="classPaySourcesList"
:specialists="specialistsTree"
:patient="selectedPatientObject"
:objects="selectedObjects"
@fetch="handleFetch"
@event="handleEvent"