feat: add member validation and enhance encounter entry form with additional fields
This commit is contained in:
No files matched your search
@@ -23,6 +23,7 @@ import {
|
||||
getDetail as getEncounterDetail,
|
||||
update as updateEncounter,
|
||||
} from '~/services/encounter.service'
|
||||
import { getList as getMemberList } from '~/services/vclaim-member.service'
|
||||
import { getList as getSepList } from '~/services/vclaim-sep.service'
|
||||
|
||||
// Handlers
|
||||
@@ -59,6 +60,7 @@ export function useEncounterEntry(props: {
|
||||
const encounterData = ref<any>(null)
|
||||
const formObjects = ref<any>({})
|
||||
const isSepValid = ref(false)
|
||||
const isMemberValid = ref(false)
|
||||
const isCheckingSep = ref(false)
|
||||
const sepNumber = ref('')
|
||||
const vclaimReference = ref<any>(null)
|
||||
@@ -201,6 +203,19 @@ export function useEncounterEntry(props: {
|
||||
return { specialist_id: null, subspecialist_id: null }
|
||||
}
|
||||
|
||||
async function getValidateMember(member: string) {
|
||||
if (isCheckingSep.value) return
|
||||
isMemberValid.value = false
|
||||
try {
|
||||
const result = await getMemberList({ mode: 'by-card', number: member, date: new Date().toISOString().split('T')[0] })
|
||||
if (result.success && result.body?.response !== null) {
|
||||
isMemberValid.value = result.body?.metaData?.code === '200'
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error checking member:', error)
|
||||
}
|
||||
}
|
||||
|
||||
async function getValidateSepNumber(sepNumberValue: string) {
|
||||
vclaimReference.value = null
|
||||
if (!sepNumberValue || sepNumberValue.trim() === '') {
|
||||
@@ -220,11 +235,16 @@ export function useEncounterEntry(props: {
|
||||
formObjects.value.medicalRecordNumber = response.peserta?.noMr || '-'
|
||||
formObjects.value.cardNumber = response.peserta?.noKartu || '-'
|
||||
formObjects.value.registerDate = response.tglSep || null
|
||||
formObjects.value.sepReference = response.noSep || '-'
|
||||
formObjects.value.sepControlDate = response.tglSep || null
|
||||
formObjects.value.sepTrafficStatus = response.nmstatusKecelakaan || '-'
|
||||
formObjects.value.diagnosis = response.diagnosa || '-'
|
||||
vclaimReference.value = {
|
||||
noSep: response.noSep || sepNumberValue.trim(),
|
||||
tglRujukan: response.tglSep ? new Date(response.tglSep).toISOString() : null,
|
||||
ppkDirujuk: response.noRujukan || 'rssa',
|
||||
jnsPelayanan: response.jnsPelayanan === 'Rawat Jalan' ? '2' : response.jnsPelayanan === 'Rawat Inap' ? '1' : null,
|
||||
jnsPelayanan:
|
||||
response.jnsPelayanan === 'Rawat Jalan' ? '2' : response.jnsPelayanan === 'Rawat Inap' ? '1' : null,
|
||||
catatan: response.catatan || '',
|
||||
diagRujukan: response.diagnosa || '',
|
||||
tipeRujukan: response.tujuanKunj?.kode ?? '0',
|
||||
@@ -233,6 +253,7 @@ export function useEncounterEntry(props: {
|
||||
}
|
||||
}
|
||||
isSepValid.value = result.body?.metaData?.code === '200'
|
||||
isMemberValid.value = isSepValid.value
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error checking SEP:', error)
|
||||
@@ -497,7 +518,7 @@ export function useEncounterEntry(props: {
|
||||
if (paymentMethodCode) {
|
||||
payload.paymentMethod_code = paymentMethodCode
|
||||
}
|
||||
|
||||
|
||||
if (paymentMethodCode === 'insurance') {
|
||||
payload.insuranceCompany_id = formValues.insuranceCompany_id ?? null
|
||||
if (memberNumber) payload.member_number = memberNumber
|
||||
@@ -565,6 +586,7 @@ export function useEncounterEntry(props: {
|
||||
encounterData,
|
||||
formObjects,
|
||||
openPatient,
|
||||
isMemberValid,
|
||||
isSepValid,
|
||||
isCheckingSep,
|
||||
isEditMode,
|
||||
@@ -585,6 +607,7 @@ export function useEncounterEntry(props: {
|
||||
getPatientsList,
|
||||
getPatientCurrent,
|
||||
getPatientByIdentifierSearch,
|
||||
getValidateMember,
|
||||
getValidateSepNumber,
|
||||
handleFetchSpecialists,
|
||||
handleFetchDoctors,
|
||||
|
||||
Reference in New Issue
Block a user