finish: integrasi create education assessment

note: masih perlu cek terkait new api domain
This commit is contained in:
Khafid Prayoga
2025-10-23 16:20:50 +07:00
parent d879325496
commit dd33bbac8e
6 changed files with 160 additions and 10 deletions

No files matched your search

+26
View File
@@ -1,4 +1,6 @@
import * as z from 'zod'
import { genEduAssessmentRaw, type EduAssessment, type EduAssessmentRaw } from '../models/edu-assessment'
import { serializeKeyToBoolean } from '../lib/clinical.constants'
const AssessmentEducationSchema = z.object({
generalEducationNeeds: z
@@ -55,3 +57,27 @@ type AssessmentEducationFormData = z.infer<typeof AssessmentEducationSchema>
export { AssessmentEducationSchema }
export type { AssessmentEducationFormData }
export function encode(encounterId: number, formData: AssessmentEducationFormData): EduAssessmentRaw {
let base = genEduAssessmentRaw()
// serialize general data
const general = serializeKeyToBoolean('general', formData.generalEducationNeeds)
const special = serializeKeyToBoolean('special', formData.specificEducationNeeds)
base.encounter_id = encounterId
base.generalEdus = JSON.stringify(general)
base.specialEdus = JSON.stringify(special)
base.assessments = JSON.stringify({
'learn-ability': formData.learningAbility,
'learn-will': formData.learningWillingness,
obstacle: formData.barrier,
'learn-method': formData.learningMethod,
lang: formData.language,
'lang-obstacle': formData.languageBarrier,
belief: formData.beliefValue,
})
base.plan = JSON.stringify(formData.plans)
return base
}