feat: add encounterId handling in SEP entry and update validation logic in integration schema

This commit is contained in:
riefive
2025-12-02 13:31:17 +07:00
parent 32a6c27375
commit 38ecb5fa08
3 changed files with 10 additions and 5 deletions
@@ -91,6 +91,7 @@ async function handleEvent(menu: string, value?: any) {
}
toNavigateSep({
isService: 'false',
encounterId: props.id || null,
sourcePath: route.path,
resource: `${props.classCode}-${props.subClassCode}`,
...value,
@@ -88,6 +88,7 @@ export function useIntegrationSepEntry() {
const specialistsTree = ref<TreeItem[]>([])
const resourceType = ref('')
const resourcePath = ref('')
const encounterId = ref<number | string | null>(null)
/**
* Map letter data to form fields for save-sep
@@ -486,7 +487,7 @@ export function useIntegrationSepEntry() {
}
mappedValues.userName = userStore.user?.user_name || ''
const payload = { ...makeSepData(mappedValues), encounterId: null }
const payload = { ...makeSepData(mappedValues), encounterId: encounterId.value || null }
createSep(payload)
.then((res) => {
@@ -615,6 +616,7 @@ export function useIntegrationSepEntry() {
const queries = route.query as any
isServiceHidden.value = queries['is-service'] === 'true'
selectedObjects.value = {}
if (queries['encounter-id']) encounterId.value = queries['encounter-id']
if (queries['resource']) resourceType.value = queries['resource']
if (queries['source-path']) resourcePath.value = queries['source-path']
if (queries['doctor-code']) selectedObjects.value['doctorCode'] = queries['doctor-code']
@@ -630,7 +632,7 @@ export function useIntegrationSepEntry() {
await getPatientInternalMappers(queries['patient-id'])
}
if (queries['card-number']) {
const resultMember = await getMemberList({
await getMemberList({
mode: 'by-card',
number: queries['card-number'],
date: new Date().toISOString().substring(0, 10),
@@ -675,6 +677,7 @@ export function useIntegrationSepEntry() {
specialistsTree,
resourceType,
resourcePath,
encounterId,
patients,
selectedPatient,
paginationMeta,
+4 -3
View File
@@ -14,6 +14,7 @@ const ERROR_MESSAGES = {
}
const ACCEPTED_UPLOAD_TYPES = ['image/jpeg', 'image/png', 'application/pdf']
const isRequiredSep = false;
const IntegrationEncounterSchema = z
.object({
@@ -115,9 +116,9 @@ const IntegrationEncounterSchema = z
.refine(
(data) => {
// If payment type is jkn and SEP type is selected, then SEP number is required
// if (data.paymentType === 'jkn' && data.sepType && data.sepType.trim() !== '') {
// return data.sepNumber && data.sepNumber.trim() !== ''
// }
if (isRequiredSep && data.paymentType === 'jkn' && data.sepType && data.sepType.trim() !== '') {
return data.sepNumber && data.sepNumber.trim() !== ''
}
return true
},
{