feat/role-check: updat flow for input encounter
This commit is contained in:
No files matched your search
@@ -24,6 +24,7 @@ import {
|
||||
import { getDetail as getDoctorDetail, getValueLabelList as getDoctorValueLabelList } from '~/services/doctor.service'
|
||||
import {
|
||||
create as createEncounter,
|
||||
createWithPatient,
|
||||
getDetail as getEncounterDetail,
|
||||
update as updateEncounter,
|
||||
} from '~/services/encounter.service'
|
||||
@@ -510,15 +511,18 @@ export function useEncounterEntry(props: {
|
||||
}
|
||||
|
||||
async function handleSaveEncounter(formValues: any) {
|
||||
console.log(formValues)
|
||||
return
|
||||
if (!selectedPatient.value || !selectedPatientObject.value) {
|
||||
toast({
|
||||
title: 'Gagal',
|
||||
description: 'Pasien harus dipilih terlebih dahulu',
|
||||
variant: 'destructive',
|
||||
})
|
||||
return
|
||||
let enccounterRef = formValues
|
||||
if (!formValues.encounter) {
|
||||
if (!selectedPatient.value || !selectedPatientObject.value) {
|
||||
toast({
|
||||
title: 'Gagal',
|
||||
description: 'Pasien harus dipilih terlebih dahulu',
|
||||
variant: 'destructive',
|
||||
})
|
||||
return
|
||||
}
|
||||
} else {
|
||||
enccounterRef = {...formValues.encounter}
|
||||
}
|
||||
|
||||
try {
|
||||
@@ -532,24 +536,24 @@ export function useEncounterEntry(props: {
|
||||
return date.toISOString()
|
||||
}
|
||||
|
||||
const { specialist_id, subspecialist_id } = getSpecialistIdsFromCode(formValues.subSpecialistId || '')
|
||||
const { specialist_id, subspecialist_id } = getSpecialistIdsFromCode(enccounterRef.subSpecialistId || '')
|
||||
|
||||
const patientId = formValues.patient_id || selectedPatientObject.value?.id || Number(selectedPatient.value)
|
||||
const patientId = enccounterRef.patient_id || selectedPatientObject.value?.id || Number(selectedPatient.value)
|
||||
|
||||
const registeredAtValue = formValues.registeredAt || formValues.registerDate || ''
|
||||
const visitDateValue = formValues.visitDate || formValues.registeredAt || formValues.registerDate || ''
|
||||
const memberNumber = formValues.member_number ?? formValues.cardNumber ?? formValues.memberNumber ?? null
|
||||
const refNumber = formValues.ref_number ?? formValues.sepNumber ?? formValues.refNumber ?? null
|
||||
sepFile.value = formValues.sepFile || null
|
||||
sippFile.value = formValues.sippFile || null
|
||||
const registeredAtValue = enccounterRef.registeredAt || enccounterRef.registerDate || ''
|
||||
const visitDateValue = enccounterRef.visitDate || enccounterRef.registeredAt || enccounterRef.registerDate || ''
|
||||
const memberNumber = enccounterRef.member_number ?? enccounterRef.cardNumber ?? enccounterRef.memberNumber ?? null
|
||||
const refNumber = enccounterRef.ref_number ?? enccounterRef.sepNumber ?? enccounterRef.refNumber ?? null
|
||||
sepFile.value = enccounterRef.sepFile || null
|
||||
sippFile.value = enccounterRef.sippFile || null
|
||||
|
||||
let paymentMethodCode = formValues.paymentMethod_code ?? null
|
||||
let paymentMethodCode = enccounterRef.paymentMethod_code ?? null
|
||||
if (!isUsePaymentNew && !paymentMethodCode) {
|
||||
if (formValues.paymentType === 'jkn' || formValues.paymentType === 'jkmm') {
|
||||
if (enccounterRef.paymentType === 'jkn' || enccounterRef.paymentType === 'jkmm') {
|
||||
paymentMethodCode = 'insurance'
|
||||
} else if (formValues.paymentType === 'spm') {
|
||||
} else if (enccounterRef.paymentType === 'spm') {
|
||||
paymentMethodCode = 'cash'
|
||||
} else if (formValues.paymentType === 'pks') {
|
||||
} else if (enccounterRef.paymentType === 'pks') {
|
||||
paymentMethodCode = 'membership'
|
||||
} else {
|
||||
paymentMethodCode = 'cash'
|
||||
@@ -558,16 +562,16 @@ export function useEncounterEntry(props: {
|
||||
|
||||
const payload: any = {
|
||||
patient_id: patientId,
|
||||
appointment_doctor_code: formValues.doctor_code || null,
|
||||
appointment_doctor_code: enccounterRef.doctor_code || null,
|
||||
class_code: props.classCode || '',
|
||||
subClass_code: props.subclassCode || '',
|
||||
specialist_code: selectedDoctor.value?.specialist_code || '',
|
||||
infra_id: formValues.infra_id ?? null,
|
||||
unit_code: formValues.unitCode ?? userStore?.user?.unit_code ?? null,
|
||||
refSource_name: formValues.refSource_name ?? 'RSSA',
|
||||
refTypeCode: formValues.paymentType === 'jkn' ? 'bpjs' : '',
|
||||
infra_id: enccounterRef.infra_id ?? null,
|
||||
unit_code: enccounterRef.unitCode ?? userStore?.user?.unit_code ?? null,
|
||||
refSource_name: enccounterRef.refSource_name ?? 'RSSA',
|
||||
refTypeCode: enccounterRef.paymentType === 'jkn' ? 'bpjs' : '',
|
||||
vclaimReference: vclaimReference.value ?? null,
|
||||
paymentType: formValues.paymentType,
|
||||
paymentType: enccounterRef.paymentType,
|
||||
registeredAt: formatDate(registeredAtValue),
|
||||
visitDate: formatDate(visitDateValue),
|
||||
}
|
||||
@@ -594,10 +598,10 @@ export function useEncounterEntry(props: {
|
||||
}
|
||||
|
||||
if (paymentMethodCode === 'insurance') {
|
||||
payload.insuranceCompany_id = formValues.insuranceCompany_id ?? null
|
||||
payload.insuranceCompany_id = enccounterRef.insuranceCompany_id ?? null
|
||||
if (memberNumber) payload.member_number = memberNumber
|
||||
if (formValues.refTypeCode) payload.refTypeCode = formValues.refTypeCode
|
||||
if (formValues.vclaimReference) payload.vclaimReference = formValues.vclaimReference
|
||||
if (enccounterRef.refTypeCode) payload.refTypeCode = enccounterRef.refTypeCode
|
||||
if (enccounterRef.vclaimReference) payload.vclaimReference = enccounterRef.vclaimReference
|
||||
} else {
|
||||
if (paymentMethodCode === 'membership' && memberNumber) {
|
||||
payload.member_number = memberNumber
|
||||
@@ -613,8 +617,18 @@ export function useEncounterEntry(props: {
|
||||
if (isEditMode.value) {
|
||||
result = await updateEncounter(props.id, payload)
|
||||
} else {
|
||||
console.log('💾 [ADD MODE] Sending POST request:', { payload })
|
||||
result = await createEncounter(payload)
|
||||
// console.log('💾 [ADD MODE] Sending POST request:', { payload })
|
||||
if (!formValues.encounter) {
|
||||
result = await createEncounter(payload)
|
||||
} else {
|
||||
if (formValues.patient?.person?.birthDate) {
|
||||
formValues.patient.person.birthDate += 'T00:00:00.000Z'
|
||||
}
|
||||
result = await createWithPatient({
|
||||
encounter: payload,
|
||||
patient: formValues.patient,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if (result.success) {
|
||||
|
||||
Reference in New Issue
Block a user