feat(sep): implement debounced search for patient identifiers and enhance entry form functionality
This commit is contained in:
@@ -80,6 +80,7 @@ const isServiceHidden = ref(false)
|
||||
const isSaveLoading = ref(false)
|
||||
const isLetterReadonly = ref(false)
|
||||
const resourceType = ref('')
|
||||
const resourcePath = ref('')
|
||||
|
||||
async function getMonitoringHistoryMappers() {
|
||||
histories.value = []
|
||||
@@ -243,6 +244,14 @@ async function handleEvent(menu: string, value: any) {
|
||||
})
|
||||
return
|
||||
}
|
||||
if (menu === 'search-patient-by-identifier') {
|
||||
const text = value.text
|
||||
const type = value.type
|
||||
if (type === 'nationalId') {
|
||||
getPatientByIdentifierSearch(text)
|
||||
}
|
||||
return
|
||||
}
|
||||
if (menu === 'search-letter') {
|
||||
isLetterReadonly.value = false
|
||||
getLetterMappers(value.admissionType, value.search).then(() => {
|
||||
@@ -285,7 +294,7 @@ async function handleEvent(menu: string, value: any) {
|
||||
}
|
||||
toast({ title: 'Berhasil', description: 'SEP berhasil dibuat', variant: 'default' })
|
||||
if (resourceType.value === 'encounter') {
|
||||
navigateTo('/rehab/encounter/add')
|
||||
navigateTo(resourcePath.value)
|
||||
return
|
||||
}
|
||||
navigateTo('/integration/bpjs/sep')
|
||||
@@ -387,20 +396,25 @@ async function handleInit() {
|
||||
const queries = route.query as any
|
||||
isServiceHidden.value = queries['is-service'] === 'true'
|
||||
selectedObjects.value = {}
|
||||
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['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['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['payment-type']) selectedObjects.value['paymentType'] = queries['payment-type']
|
||||
if (queries['medical-record-number'])
|
||||
selectedObjects.value['medicalRecordNumber'] = queries['medical-record-number']
|
||||
if (queries['resource']) resourceType.value = queries['resource']
|
||||
delete selectedObjects.value['is-service']
|
||||
if (queries['resource-path']) resourcePath.value = queries['resource-path']
|
||||
// Load patient data if identifier is provided
|
||||
if (queries['patient-id']) {
|
||||
try {
|
||||
await getPatientCurrent(queries['patient-id'])
|
||||
} catch (err) {
|
||||
console.error('Failed to load patient from query params:', err)
|
||||
}
|
||||
}
|
||||
if (queries['national-identity'] && queries['medical-record-number']) {
|
||||
try {
|
||||
await getPatientByIdentifierSearch(queries['national-identity'])
|
||||
@@ -415,6 +429,7 @@ async function handleInit() {
|
||||
console.error('Failed to load patient from query params:', err)
|
||||
}
|
||||
}
|
||||
delete selectedObjects.value['is-service']
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user