Source code for imednet.form_designer.presets

from typing import Callable, Dict

from .builder import FormBuilder

FormPreset = Callable[[FormBuilder], None]


[docs]def build_demo_form(builder: FormBuilder) -> None: """A demo form with various field types.""" builder.add_section_header("Demographics") builder.add_field( type="text", label="Subject Initials", question_name="INIT", required=True, max_length=3 ) builder.add_field(type="number", label="Age", question_name="AGE", max_length=3) builder.add_field( type="radio", label="Gender", question_name="SEX", choices=[("Male", "1"), ("Female", "2")] ) builder.add_section_header("Medical History") builder.add_group_header("General Information") builder.add_field(type="datetime", label="Date of Diagnosis", question_name="DXDATE") builder.add_field(type="memo", label="Notes", question_name="NOTES")
[docs]def build_cv_pathology(builder: FormBuilder) -> None: """A CV Pathology sample form.""" builder.add_section_header("Cardiovascular Pathology") builder.add_field(type="text", label="Pathology ID", question_name="PATHID", required=True) builder.add_group_header("Specimen Details") builder.add_field( type="dropdown", label="Tissue Type", question_name="TISSUE", choices=[("Muscle", "1"), ("Nerve", "2"), ("Other", "99")], ) builder.add_field(type="upload", label="Upload Report", question_name="RPTFILE")
PRESETS: Dict[str, FormPreset] = { "Demo Form": build_demo_form, "CV Pathology": build_cv_pathology, }