Do
Keep reviewer outcomes explicit (
Pending,Needs Follow-Up,Cleared) and let reviewer metadata stamp automatically.Use governed vaccination-proof uploads and canonical file URLs.
Capture health details, control family/staff editing by applicant status, and feed readiness for admissions decisions.
Student Applicant record first.Pending, Needs Follow-Up, Cleared) before staff start updating rows.Applicant Health Profile stores health and safeguarding information needed during admissions review.
food_allergies, insect_bites, medication_allergies)asthma through vision_problem)diet_requirements, medical_surgeries__hospitalizations, other_medical_information)vaccine_name, date, vaccination_proof, additional_notes)applicant_health_declared_complete, applicant_health_declared_by, applicant_health_declared_on)get_applicant_healthupdate_applicant_healthPendingNeeds Follow-UpClearedFamilies can provide health details in portal phases where edits are allowed, then staff can move review status to Cleared or Needs Follow-Up.
Keep reviewer outcomes explicit (Pending, Needs Follow-Up, Cleared) and let reviewer metadata stamp automatically.
Use governed vaccination-proof uploads and canonical file URLs.
Approve applicant decisions while health review is unresolved.
Allow family-side edits after terminal applicant states (Rejected, Promoted).
Create health profile context as soon as an applicant enters active review.
Capture family-provided health details and keep entries current through the review window.
Staff reviewers move the profile through review outcomes (Pending, Needs Follow-Up, Cleared).
Applicant approval readiness depends on the health review state being complete.
On applicant promotion, health fields and vaccination rows are copied into Student Patient / Student Patient Vaccination.
Vaccination proof images are uploaded through governed dispatcher storage and linked via canonical file URLs.
Do not move applicants to final approval while health review remains unresolved; readiness checks are designed to prevent this.
ref_doctype.DocType schema file: ifitwala_ed/admission/doctype/applicant_health_profile/applicant_health_profile.json
Controller file: ifitwala_ed/admission/doctype/applicant_health_profile/applicant_health_profile.py
Required fields (reqd=1):
student_applicant (Link -> Student Applicant)Lifecycle hooks in controller: validate
Operational/public methods: none beyond standard document behavior.
DocType: Applicant Health Profile (ifitwala_ed/admission/doctype/applicant_health_profile/)
Autoname: hash
Primary link: student_applicant -> Student Applicant (immutable once set)
Portal/API surfaces:
ifitwala_ed/api/admissions_portal.py:get_applicant_healthupdate_applicant_healthifitwala_ed/ui-spa/src/pages/admissions/ApplicantHealth.vueController methods:
reviewed_by, reviewed_on)Student Applicant.promote_to_student| Role | Read | Write | Create | Delete | Notes |
|---|---|---|---|---|---|
System Manager |
Yes | Yes | Yes | Yes | Full Desk access |
Academic Admin |
Yes | Yes | Yes | Yes | Staff review role |
Admission Manager |
Yes | Yes | Yes | Yes | Full Desk access |
Admission Officer |
Yes | Yes | Yes | Yes | Full Desk access |
Guardian |
Yes | Yes | Yes | No | Family-facing write allowed by DocType permissions |
Runtime controller rules:
Draft through Withdrawn, excluding Rejected).Rejected, Promoted) are read-only.