Merge branch 'dev' into feat/kfr-kemoterapi-174
This commit is contained in:
No files matched your search
@@ -0,0 +1,5 @@
|
||||
export interface GenerateFile {
|
||||
entityType_code: string
|
||||
ref_id: number
|
||||
type_code: string
|
||||
}
|
||||
@@ -5,7 +5,7 @@ const DivisionPositionSchema = z.object({
|
||||
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
|
||||
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'),
|
||||
headStatus: z.boolean().optional().nullable(),
|
||||
division_id: z.union([
|
||||
division_code: z.union([
|
||||
z.string({ required_error: 'Divisi Induk harus diisi' }),
|
||||
z.number({ required_error: 'Divisi Induk harus diisi' })
|
||||
]).optional().nullable(),
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { Division } from '~/models/division'
|
||||
const DivisionSchema = z.object({
|
||||
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
|
||||
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'),
|
||||
parent_id: z.union([
|
||||
parent_code: z.union([
|
||||
z.string({ required_error: 'Divisi Induk harus diisi' }),
|
||||
z.number({ required_error: 'Divisi Induk harus diisi' })
|
||||
]).optional().nullable(),
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
import { z } from 'zod'
|
||||
|
||||
const ACCEPTED_UPLOAD_TYPES = ['image/jpeg', 'image/png', 'application/pdf']
|
||||
const MAX_SIZE_BYTES = 1 * 1024 * 1024 // 1MB
|
||||
|
||||
const DocumentUploadSchema = z.object({
|
||||
entityType_code: z.string().default('encounter'),
|
||||
ref_id: z.number(),
|
||||
upload_employee_id: z.number().optional(),
|
||||
// upload_employee_id: z.number(),
|
||||
name: z.string({ required_error: 'Mohon isi', }),
|
||||
type_code: z.string({ required_error: 'Mohon isi', }),
|
||||
content: z.custom<File>()
|
||||
.refine((f) => f, { message: 'File tidak boleh kosong' })
|
||||
.refine((f) => !f || f instanceof File, { message: 'Harus berupa file yang valid' })
|
||||
.refine((f) => !f || ACCEPTED_UPLOAD_TYPES.includes(f.type), {
|
||||
message: 'Format file harus JPG, PNG, atau PDF',
|
||||
})
|
||||
.refine((f) => !f || f.size <= MAX_SIZE_BYTES, { message: 'Maksimal 1MB' }),
|
||||
})
|
||||
|
||||
type DocumentUploadFormData = z.infer<typeof DocumentUploadSchema>
|
||||
|
||||
export { DocumentUploadSchema }
|
||||
export type { DocumentUploadFormData }
|
||||
@@ -0,0 +1,16 @@
|
||||
import { z } from 'zod'
|
||||
import type { CreateDto } from '~/models/general-consent'
|
||||
|
||||
const GeneralConsentSchema = z.object({
|
||||
relatives: z.array(z.object({ name: z.string(), phone: z.string() })),
|
||||
responsibleName: z.string().optional(),
|
||||
responsiblePhone: z.string().optional(),
|
||||
informant: z.string().optional(),
|
||||
witness1: z.string().optional(),
|
||||
witness2: z.string().optional(),
|
||||
})
|
||||
|
||||
type GeneralConsentFormData = z.infer<typeof GeneralConsentSchema> & CreateDto
|
||||
|
||||
export { GeneralConsentSchema }
|
||||
export type { GeneralConsentFormData }
|
||||
@@ -5,7 +5,7 @@ const InstallationPositionSchema = z.object({
|
||||
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
|
||||
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'),
|
||||
headStatus: z.boolean().optional().nullable(),
|
||||
installation_id: z.union([
|
||||
installation_code: z.union([
|
||||
z.string({ required_error: 'Instalasi Induk harus diisi' }),
|
||||
z.number({ required_error: 'Instalasi Induk harus diisi' }),
|
||||
]),
|
||||
|
||||
@@ -5,6 +5,7 @@ export const MedicineSchema = z.object({
|
||||
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimal 1 karakter'),
|
||||
medicineGroup_code: z.string({ required_error: 'Kelompok obat harus diisi' }).min(1, 'Kelompok obat harus diisi'),
|
||||
medicineMethod_code: z.string({ required_error: 'Metode pemberian harus diisi' }).min(1, 'Metode pemberian harus diisi'),
|
||||
medicineForm_code: z.string({ required_error: 'Sediaan Obat harus diisi' }).min(1, 'Sediaan Obat harus diisi'),
|
||||
uom_code: z.string({ required_error: 'Satuan harus diisi' }).min(1, 'Satuan harus diisi'),
|
||||
infra_id: z.number().nullable().optional(),
|
||||
stock: z.preprocess((val) => Number(val), z.number({ invalid_type_error: 'Stok harus berupa angka' }).min(1, 'Stok harus lebih besar dari 0')),
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
import { z } from 'zod'
|
||||
import type { CreateDto } from '~/models/consultation'
|
||||
|
||||
export type ResumeArrangementType = "krs" | "mrs" | "rujukInternal" | "rujukExternal" | "meninggal" | "other"
|
||||
|
||||
const SecondaryDiagnosisSchema = z.object({
|
||||
diagnosis: z.string({ required_error: 'Diagnosis harus diisi' }),
|
||||
icd10: z.string({ required_error: 'ICD 10 harus diisi' }),
|
||||
diagnosisBasis: z.string({ required_error: 'Dasar Diagnosis harus diisi' })
|
||||
.min(1, 'Uraian minimum 1 karakter')
|
||||
.max(2048, 'Uraian maksimum 2048 karakter'),
|
||||
})
|
||||
|
||||
const SecondaryActionSchema = z.object({
|
||||
action: z.string({ required_error: 'Action harus diisi' }),
|
||||
icd9: z.string({ required_error: 'ICD 10 harus diisi' }),
|
||||
actionBasis: z.string({ required_error: 'Dasar Action harus diisi' })
|
||||
.min(1, 'Uraian minimum 1 karakter')
|
||||
.max(2048, 'Uraian maksimum 2048 karakter'),
|
||||
})
|
||||
|
||||
const ConsultationSchema = z.object({
|
||||
consultation: z.string({ required_error: 'Consultation harus diisi' })
|
||||
.min(1, 'Uraian minimum 1 karakter')
|
||||
.max(2048, 'Uraian maksimum 2048 karakter'),
|
||||
consultationReply: z.string({ required_error: 'Jawaban Consultation harus diisi' })
|
||||
.min(1, 'Uraian minimum 1 karakter')
|
||||
.max(2048, 'Uraian maksimum 2048 karakter'),
|
||||
})
|
||||
|
||||
const ResumeSchema = z.object({
|
||||
inDate: z.string({ required_error: 'Tanggal harus diisi' }),
|
||||
outDate: z.string({ required_error: 'Tanggal harus diisi' }),
|
||||
anamnesis: z.number({ required_error: 'Anamnesis harus diisi' })
|
||||
.min(1, 'Anamnesis minimum 1 karakter')
|
||||
.max(2048, 'Anamnesis maksimum 2048 karakter'),
|
||||
physicalCheckup: z.string({ required_error: 'Uraian harus diisi' })
|
||||
.min(1, 'Uraian minimum 1 karakter')
|
||||
.max(2048, 'Uraian maksimum 2048 karakter'),
|
||||
supplementCheckup: z.string({ required_error: 'Uraian harus diisi' })
|
||||
.min(1, 'Uraian minimum 1 karakter')
|
||||
.max(2048, 'Uraian maksimum 2048 karakter'),
|
||||
|
||||
primaryDiagnosis: z.string({ required_error: 'Diagnosis harus diisi' }),
|
||||
secondaryDiagnosis: z.array(SecondaryDiagnosisSchema).optional(),
|
||||
|
||||
primaryOperativeNonOperativeAct: z.string({ required_error: 'Diagnosis harus diisi' }),
|
||||
secondaryOperativeNonOperativeAct: z.array(SecondaryActionSchema).optional(),
|
||||
medikamentosa: z.string({ required_error: 'Uraian harus diisi' })
|
||||
.min(1, 'Uraian minimum 1 karakter')
|
||||
.max(2048, 'Uraian maksimum 2048 karakter'),
|
||||
|
||||
consultation: z.array(ConsultationSchema).optional(),
|
||||
|
||||
arrangement: z.custom<ResumeArrangementType>().default("krs"),
|
||||
inpatientIndication: z.string({ required_error: 'Uraian harus diisi' })
|
||||
.min(1, 'Uraian minimum 1 karakter')
|
||||
.max(2048, 'Uraian maksimum 2048 karakter'),
|
||||
faskes: z.string({ required_error: 'Faskes harus diisi' }).optional(),
|
||||
clinic: z.string({ required_error: 'Klinik harus diisi' }).optional(),
|
||||
deathDate: z.string({ required_error: 'Tanggal harus diisi' }).optional(),
|
||||
deathCause: z.array(z.string()).optional().default([]),
|
||||
deathCauseDescription: z.string({ required_error: 'Uraian harus diisi' })
|
||||
.min(1, 'Uraian minimum 1 karakter')
|
||||
.max(2048, 'Uraian maksimum 2048 karakter')
|
||||
.optional(),
|
||||
keterangan: z.string({ required_error: 'Uraian harus diisi' })
|
||||
.min(1, 'Uraian minimum 1 karakter')
|
||||
.max(2048, 'Uraian maksimum 2048 karakter')
|
||||
.optional(),
|
||||
})
|
||||
|
||||
type ResumeFormData = z.infer<typeof ResumeSchema> & (CreateDto)
|
||||
|
||||
export { ResumeSchema }
|
||||
export type { ResumeFormData }
|
||||
@@ -5,7 +5,7 @@ const SpecialistPositionSchema = z.object({
|
||||
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
|
||||
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'),
|
||||
headStatus: z.boolean().optional().nullable(),
|
||||
specialist_id: z
|
||||
specialist_code: z
|
||||
.union([
|
||||
z.string({ required_error: 'Spesialis harus diisi' }),
|
||||
z.number({ required_error: 'Spesialis harus diisi' }),
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { Specialist } from '~/models/specialist'
|
||||
const SpecialistSchema = z.object({
|
||||
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
|
||||
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'),
|
||||
unit_id: z
|
||||
unit_code: z
|
||||
.union([z.string({ required_error: 'Unit harus diisi' }), z.number({ required_error: 'Unit harus diisi' })])
|
||||
.optional()
|
||||
.nullable(),
|
||||
|
||||
@@ -5,7 +5,7 @@ const SubSpecialistPositionSchema = z.object({
|
||||
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
|
||||
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'),
|
||||
headStatus: z.boolean().optional().nullable(),
|
||||
subspecialist_id: z
|
||||
subspecialist_code: z
|
||||
.union([
|
||||
z.string({ required_error: 'Spesialis harus diisi' }),
|
||||
z.number({ required_error: 'Spesialis harus diisi' }),
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { Subspecialist } from '~/models/subspecialist'
|
||||
const SubspecialistSchema = z.object({
|
||||
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
|
||||
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'),
|
||||
specialist_id: z
|
||||
specialist_code: z
|
||||
.union([
|
||||
z.string({ required_error: 'Spesialis harus diisi' }),
|
||||
z.number({ required_error: 'Spesialis harus diisi' }),
|
||||
|
||||
@@ -5,7 +5,7 @@ const UnitPositionSchema = z.object({
|
||||
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
|
||||
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'),
|
||||
headStatus: z.boolean().optional().nullable(),
|
||||
unit_id: z
|
||||
unit_code: z
|
||||
.union([
|
||||
z.string({ required_error: 'Unit Induk harus diisi' }),
|
||||
z.number({ required_error: 'Unit Induk harus diisi' }),
|
||||
|
||||
@@ -4,7 +4,7 @@ import type { Unit } from '~/models/unit'
|
||||
const UnitSchema = z.object({
|
||||
code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'),
|
||||
name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'),
|
||||
installation_id: z
|
||||
installation_code: z
|
||||
.union([
|
||||
z.string({ required_error: 'Instalasi harus diisi' }),
|
||||
z.number({ required_error: 'Instalasi harus diisi' }),
|
||||
|
||||
Reference in New Issue
Block a user