feat(sep): search member through vclaim
This commit is contained in:
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user