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
+7 -7
View File
@@ -50,7 +50,7 @@ const [subSpecialistId, subSpecialistIdAttrs] = defineField('subSpecialistId')
const [registerDate, registerDateAttrs] = defineField('registerDate')
const [paymentType, paymentTypeAttrs] = defineField('paymentType')
const [patientCategory, patientCategoryAttrs] = defineField('patientCategory')
const [bpjsNumber, bpjsNumberAttrs] = defineField('bpjsNumber')
const [cardNumber, cardNumberAttrs] = defineField('cardNumber')
const [sepType, sepTypeAttrs] = defineField('sepType')
const [sepNumber, sepNumberAttrs] = defineField('sepNumber')
const [patientName, patientNameAttrs] = defineField('patientName')
@@ -100,7 +100,7 @@ watch(props, (value) => {
registerDate.value = objects?.registerDate || ''
paymentType.value = objects?.paymentType || ''
patientCategory.value = objects?.patientCategory || ''
bpjsNumber.value = objects?.bpjsNumber || ''
cardNumber.value = objects?.cardNumber || ''
sepType.value = objects?.sepType || ''
sepNumber.value = objects?.sepNumber || ''
}
@@ -119,7 +119,7 @@ function onAddSep() {
doctorCode: doctorId.value,
subSpecialistCode: subSpecialistId.value,
registerDate: registerDate.value,
cardNumber: bpjsNumber.value,
cardNumber: cardNumber.value,
paymentType: paymentType.value,
sepType: sepType.value
}
@@ -331,11 +331,11 @@ const onSubmit = handleSubmit((values) => {
No. Kartu BPJS
<span class="text-red-500">*</span>
</Label>
<Field :errMessage="errors.bpjsNumber">
<Field :errMessage="errors.cardNumber">
<Input
id="bpjsNumber"
v-model="bpjsNumber"
v-bind="bpjsNumberAttrs"
id="cardNumber"
v-model="cardNumber"
v-bind="cardNumberAttrs"
:disabled="isLoading || isReadonly"
placeholder="Masukkan nomor kartu BPJS"
/>
+11 -11
View File
@@ -67,7 +67,7 @@ const { handleSubmit, errors, defineField } = useForm<IntegrationBpjsFormData>({
const [sepDate, sepDateAttrs] = defineField('sepDate')
const [serviceType, serviceTypeAttrs] = defineField('serviceType')
const [admissionType, admissionTypeAttrs] = defineField('admissionType')
const [bpjsNumber, bpjsNumberAttrs] = defineField('bpjsNumber')
const [cardNumber, cardNumberAttrs] = defineField('cardNumber')
const [nationalId, nationalIdAttrs] = defineField('nationalId')
const [medicalRecordNumber, medicalRecordNumberAttrs] = defineField('medicalRecordNumber')
const [patientName, patientNameAttrs] = defineField('patientName')
@@ -115,7 +115,7 @@ const isShowPatient = ref(props.isShowPatient || false)
const isDateReload = ref(false)
// Debounced search for bpjsNumber and nationalId
const debouncedBpjsNumber = refDebounced(bpjsNumber, 500)
const debouncedCardNumber = refDebounced(cardNumber, 500)
const debouncedNationalId = refDebounced(nationalId, 500)
if (mode === 'add') {
@@ -142,7 +142,7 @@ watch(props, (value) => {
const objects = value.objects || ({} as any)
if (Object.keys(objects).length > 0) {
sepDate.value = objects?.registerDate || new Date().toISOString().substring(0, 10)
bpjsNumber.value = objects?.bpjsNumber || '-'
cardNumber.value = objects?.cardNumber || '-'
nationalId.value = objects?.nationalIdentity || '-'
medicalRecordNumber.value = objects?.medicalRecordNumber || '-'
patientName.value = objects?.patientName || '-'
@@ -161,7 +161,7 @@ watch(props, (value) => {
}, 100)
}
if (Object.keys(patient).length > 0) {
bpjsNumber.value = '-'
cardNumber.value = '-'
nationalId.value = patient?.person?.residentIdentityNumber || '-'
medicalRecordNumber.value = patient?.number || '-'
patientName.value = patient?.person?.name || '-'
@@ -170,15 +170,15 @@ watch(props, (value) => {
})
// Watch debounced search values
watch(debouncedBpjsNumber, (newValue) => {
watch(debouncedCardNumber, (newValue) => {
if (newValue && newValue !== '-' && newValue.length >= 3) {
emit('event', 'search-patient-by-identifier', { text: newValue, type: 'bpjs' })
emit('event', 'search-patient-by-identifier', { text: newValue, type: 'cardNumber' })
}
})
watch(debouncedNationalId, (newValue) => {
if (newValue && newValue !== '-' && newValue.length >= 3) {
emit('event', 'search-patient-by-identifier', { text: newValue, type: 'nationalId' })
emit('event', 'search-patient-by-identifier', { text: newValue, type: 'indentity' })
}
})
@@ -282,11 +282,11 @@ onMounted(() => {
No. Kartu BPJS
<span class="text-red-500">*</span>
</Label>
<Field :errMessage="errors.bpjsNumber">
<Field :errMessage="errors.cardNumber">
<Input
id="bpjsNumber"
v-model="bpjsNumber"
v-bind="bpjsNumberAttrs"
id="cardNumber"
v-model="cardNumber"
v-bind="cardNumberAttrs"
:disabled="false"
/>
</Field>