feat/page-cleaning: adjust add encounter

This commit is contained in:
Andrian Roshandy
2025-12-02 10:02:00 +07:00
parent d221203bd5
commit 88a2dc5aba
9 changed files with 779 additions and 224 deletions

No files matched your search

+21 -19
View File
@@ -2,10 +2,12 @@ import { z } from 'zod'
const ERROR_MESSAGES = {
required: {
doctorId: 'Dokter wajib diisi',
doctor_code: 'Dokter wajib diisi',
registerDate: 'Tanggal Daftar wajib diisi',
paymentType: 'Jenis Pembayaran wajib diisi',
subSpecialistId: 'Subspesialis wajib diisi',
paymentMethod_code: 'Jenis Pembayaran wajib diisi',
unit_code: 'Spesialis wajib diisi',
// specialist_code: 'Spesialis wajib diisi',
// subSpecialist_code: 'Subspesialis wajib diisi',
patientCategory: 'Kelompok Peserta wajib diisi',
cardNumber: 'No. Kartu BPJS wajib diisi',
sepType: 'Jenis SEP wajib diisi',
@@ -21,22 +23,22 @@ const IntegrationEncounterSchema = z
patientName: z.string().optional(),
nationalIdentity: z.string().optional(),
medicalRecordNumber: z.string().optional(),
// Visit data
doctorId: z
.string({ required_error: ERROR_MESSAGES.required.doctorId })
.min(1, ERROR_MESSAGES.required.doctorId),
subSpecialistId: z
.string({ required_error: ERROR_MESSAGES.required.subSpecialistId })
.min(1, ERROR_MESSAGES.required.subSpecialistId)
doctor_code: z
.string({ required_error: ERROR_MESSAGES.required.doctor_code })
.min(1, ERROR_MESSAGES.required.doctor_code),
unit_code: z
.string({ required_error: ERROR_MESSAGES.required.unit_code })
.min(1, ERROR_MESSAGES.required.unit_code)
.optional(),
registerDate: z
.string({ required_error: ERROR_MESSAGES.required.registerDate })
.min(1, ERROR_MESSAGES.required.registerDate),
paymentType: z
.string({ required_error: ERROR_MESSAGES.required.paymentType })
.min(1, ERROR_MESSAGES.required.paymentType),
paymentMethod_code: z
.string({ required_error: ERROR_MESSAGES.required.paymentMethod_code })
.min(1, ERROR_MESSAGES.required.paymentMethod_code),
// BPJS related fields
patientCategory: z
.string()
@@ -54,7 +56,7 @@ const IntegrationEncounterSchema = z
.string()
.min(1, ERROR_MESSAGES.required.sepNumber)
.optional(),
// File uploads
sepFile: z
.any()
@@ -76,7 +78,7 @@ const IntegrationEncounterSchema = z
.refine(
(data) => {
// If payment type is jkn, then patient category is required
if (data.paymentType === 'jkn') {
if (data.paymentMethod_code === 'jkn') {
return data.patientCategory && data.patientCategory.trim() !== ''
}
return true
@@ -89,7 +91,7 @@ const IntegrationEncounterSchema = z
.refine(
(data) => {
// If payment type is jkn, then card number is required
if (data.paymentType === 'jkn') {
if (data.paymentMethod_code === 'jkn') {
return data.cardNumber && data.cardNumber.trim() !== ''
}
return true
@@ -102,7 +104,7 @@ const IntegrationEncounterSchema = z
.refine(
(data) => {
// If payment type is jkn, then SEP type is required
if (data.paymentType === 'jkn') {
if (data.paymentMethod_code === 'jkn') {
return data.sepType && data.sepType.trim() !== ''
}
return true
@@ -115,7 +117,7 @@ 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() !== '') {
if (data.paymentMethod_code === 'jkn' && data.sepType && data.sepType.trim() !== '') {
return data.sepNumber && data.sepNumber.trim() !== ''
}
return true