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