wip: add form data pelaksanaan operasi
todo: blood input section * ui: patch focus ring state * layouts-pages: fix width layout calculation feat(treatment-report): add fill-notes component and validation messages - Add new FillNotes component for tissue notes input with dynamic fields - Update schema validation with required error messages for operation and specimen fields - Adjust form layout to include new FillNotes component and improve field organization cherry-pick arrangement procedure from feat/protokol-terapi-116
This commit is contained in:
No files matched your search
@@ -1,7 +1,7 @@
|
||||
import { z } from 'zod'
|
||||
|
||||
const isoDateTime = z.string().min(1, 'Tanggal / waktu wajib diisi')
|
||||
const positiveInt = z.number().int().nonnegative()
|
||||
const positiveInt = z.coerce.number().int().nonnegative()
|
||||
|
||||
const OperatorTeamSchema = z.object({
|
||||
dpjpId: z.coerce
|
||||
@@ -30,9 +30,11 @@ const ProcedureSchema = z.object({
|
||||
})
|
||||
|
||||
const OperationExecutionSchema = z.object({
|
||||
surgeryType: z.enum(['kecil', 'sedang', 'besar', 'khusus']),
|
||||
billingCode: z.string().min(1),
|
||||
operationSystem: z.enum(['khusus', 'cito', 'elektif']),
|
||||
surgeryType: z.enum(['kecil', 'sedang', 'besar', 'khusus'], { required_error: 'Silahkan pilih jenis operasi' }),
|
||||
billingCode: z.string({
|
||||
required_error: 'Silahkan pilih kode billing',
|
||||
}),
|
||||
operationSystem: z.enum(['khusus', 'cito', 'efektif', 'urgent'], { required_error: 'Silahkan pilih sistem operasi' }),
|
||||
|
||||
operationStartAt: isoDateTime,
|
||||
operationEndAt: isoDateTime,
|
||||
@@ -41,17 +43,19 @@ const OperationExecutionSchema = z.object({
|
||||
anesthesiaEndAt: isoDateTime,
|
||||
|
||||
surgeryCleanType: z.enum(['bersih', 'bersih_terkontaminasi', 'terkontaminasi', 'kotor']).optional(),
|
||||
surgeryNumber: z.enum(['1', '2', '3', '4+', 'tidak_diketahui']).optional(),
|
||||
surgeryNumber: z.enum(['first', 'retry']).optional(),
|
||||
|
||||
birthPlaceNote: z.string().optional(),
|
||||
babyWeightGram: positiveInt.optional(),
|
||||
personWeight: positiveInt.optional(),
|
||||
birthCondition: z.string().optional(),
|
||||
|
||||
operationDescription: z.string().min(1),
|
||||
operationDescription: z.string({
|
||||
required_error: 'Mohon lengkapi uraian operasi',
|
||||
}),
|
||||
|
||||
bleedingAmountCc: positiveInt.optional(),
|
||||
|
||||
birthRemark: z.enum(['lahir_hidup', 'lahir_mati', 'abortus', 'tidak_diketahui']).optional(),
|
||||
birthRemark: z.enum(['lahir_hidup', 'lahir_mati']).optional(),
|
||||
})
|
||||
|
||||
const BloodComponentSchema = z.object({
|
||||
@@ -74,11 +78,17 @@ const ImplantSchema = z.object({
|
||||
})
|
||||
|
||||
const SpecimenSchema = z.object({
|
||||
destination: z.string().min(1),
|
||||
destination: z.string({
|
||||
required_error: 'Silahkan pilih specimen',
|
||||
}),
|
||||
})
|
||||
|
||||
const TissueNoteSchema = z.object({
|
||||
note: z.string().min(1),
|
||||
note: z
|
||||
.string({
|
||||
required_error: 'Masukkan deskripsi catatan',
|
||||
})
|
||||
.min(1, { message: 'Setidaknya diperlukan 1 catatan' }),
|
||||
})
|
||||
|
||||
export const TreatmentReportSchema = z.object({
|
||||
|
||||
Reference in New Issue
Block a user