imednet.form_designer package¶
iMednet Form Designer integration.
This package provides tools for programmatically building and publishing iMednet form layouts.
- class imednet.form_designer.FormBuilder[source]¶
Bases:
objectBuilder class to construct iMedNet Form Designer payloads programmatically.
Manages ID generation and hierarchical structure.
- add_field(type, label, question_name, required=False, choices=None, max_length=None, is_float=False)[source]¶
Add a standard field (Label + Control).
- Parameters:
type (
Literal['text','number','radio','dropdown','datetime','upload','checkbox','memo']) – Field type.label (
str) – Display label (HTML allowed).question_name (
str) – Variable OID.required (
bool) – If True, sets bl_req=’hard’.choices (
Optional[list[tuple[str,str]]]) – List of (text, code) for radios/dropdowns.max_length (
Optional[int]) – Max chars (text/memo) or digits (number).is_float (
bool) – For numbers, allow decimals.
- Return type:
None
- add_group_header(label)[source]¶
Add a group header (Label-only row).
- Return type:
None- Parameters:
label (str) –
- add_section_header(label)[source]¶
Add a separator/section header.
- Return type:
None- Parameters:
label (str) –
- class imednet.form_designer.FormDesignerClient[source]¶
Bases:
objectClient for the iMedNet Form Designer endpoint.
Handles the specific authentication and payload requirements of the legacy formdez_save.php endpoint.
- __init__(base_url, phpsessid, timeout=30.0)[source]¶
Initialize the client.
- Parameters:
base_url (
str) – The base URL of the iMedNet instance (e.g., https://xyz.imednet.com).phpsessid (
str) – The active PHP session ID from the browser.timeout (
float) – Request timeout in seconds.
- save_form(csrf_key, form_id, community_id, revision, layout)[source]¶
Submit the form layout to the server.
- Parameters:
csrf_key (
str) – The CSRF token (scraped from page).form_id (
int) – The ID of the form being edited.community_id (
int) – The study ID.revision (
int) – The NEXT revision number.layout (
ProtocolDeviationFormPayload) – The Form Layout object.
- Return type:
str- Returns:
The raw response text from the server.
- Raises:
httpx.HTTPStatusError – If the server returns a non-2xx status code.
ClientError – If validation fails for the provided arguments.
ApiError – If the server returns an error.
- imednet.form_designer.Layout¶
alias of
ProtocolDeviationFormPayload
Submodules¶
imednet.form_designer.builder module¶
Builder for iMednet Form Designer layouts.
This module provides a programmatic interface for constructing complex form layouts for iMednet, handling ID generation and hierarchical structure.
- class imednet.form_designer.builder.FormBuilder[source]¶
Bases:
objectBuilder class to construct iMedNet Form Designer payloads programmatically.
Manages ID generation and hierarchical structure.
- add_field(type, label, question_name, required=False, choices=None, max_length=None, is_float=False)[source]¶
Add a standard field (Label + Control).
- Parameters:
type (
Literal['text','number','radio','dropdown','datetime','upload','checkbox','memo']) – Field type.label (
str) – Display label (HTML allowed).question_name (
str) – Variable OID.required (
bool) – If True, sets bl_req=’hard’.choices (
Optional[list[tuple[str,str]]]) – List of (text, code) for radios/dropdowns.max_length (
Optional[int]) – Max chars (text/memo) or digits (number).is_float (
bool) – For numbers, allow decimals.
- Return type:
None
- add_group_header(label)[source]¶
Add a group header (Label-only row).
- Return type:
None- Parameters:
label (str) –
- add_section_header(label)[source]¶
Add a separator/section header.
- Return type:
None- Parameters:
label (str) –
imednet.form_designer.client module¶
HTTP client for interacting with the iMednet Form Designer backend.
- class imednet.form_designer.client.FormDesignerClient[source]¶
Bases:
objectClient for the iMedNet Form Designer endpoint.
Handles the specific authentication and payload requirements of the legacy formdez_save.php endpoint.
- __init__(base_url, phpsessid, timeout=30.0)[source]¶
Initialize the client.
- Parameters:
base_url (
str) – The base URL of the iMedNet instance (e.g., https://xyz.imednet.com).phpsessid (
str) – The active PHP session ID from the browser.timeout (
float) – Request timeout in seconds.
- save_form(csrf_key, form_id, community_id, revision, layout)[source]¶
Submit the form layout to the server.
- Parameters:
csrf_key (
str) – The CSRF token (scraped from page).form_id (
int) – The ID of the form being edited.community_id (
int) – The study ID.revision (
int) – The NEXT revision number.layout (
ProtocolDeviationFormPayload) – The Form Layout object.
- Return type:
str- Returns:
The raw response text from the server.
- Raises:
httpx.HTTPStatusError – If the server returns a non-2xx status code.
ClientError – If validation fails for the provided arguments.
ApiError – If the server returns an error.
imednet.form_designer.models module¶
Pydantic models for iMednet Form Designer layouts.
- class imednet.form_designer.models.BaseFieldProps[source]¶
Bases:
BaseModelShared properties for all data capture fields.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.CheckboxFieldProps[source]¶
Bases:
BaseFieldPropsProperties for a checkbox field.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.Choice[source]¶
Bases:
BaseModelA choice for radio or dropdown fields.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.Col[source]¶
Bases:
BaseModelA column in a layout table row.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.DateTimeFieldProps[source]¶
Bases:
BaseFieldPropsProperties for a date/time input field.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.DropdownFieldProps[source]¶
Bases:
BaseFieldPropsProperties for a dropdown/select field.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.Entity[source]¶
Bases:
BaseModelThe ‘Component’ in the Composite Pattern.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.ExtQuestionProps[source]¶
Bases:
BaseModelProperties for an external question component.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.FileUploadProps[source]¶
Bases:
BaseFieldPropsProperties for a file upload field.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.LabelProps[source]¶
Bases:
BaseModelProperties for a label component.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- imednet.form_designer.models.Layout¶
alias of
ProtocolDeviationFormPayload
- class imednet.form_designer.models.MemoFieldProps[source]¶
Bases:
BaseFieldPropsProperties for a memo/multiline text field.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.NumberFieldProps[source]¶
Bases:
BaseFieldPropsProperties for a number input field.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.Page[source]¶
Bases:
BaseModelRepresents a single page within the electronic Case Report Form (CRF).
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.PrecisionDateFieldProps[source]¶
Bases:
BaseFieldPropsProperties for a precision date input field (supporting partial dates).
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.ProtocolDeviationFormPayload[source]¶
Bases:
BaseModelRoot object representing the entire form definition payload.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.RadioFieldProps[source]¶
Bases:
BaseFieldPropsProperties for a radio button field.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.Row[source]¶
Bases:
BaseModelA row in a layout table.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.SeparatorProps[source]¶
Bases:
BaseModelProperties for a separator/section header component.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.TableProps[source]¶
Bases:
BaseModelProperties for a table layout component.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- class imednet.form_designer.models.TextFieldProps[source]¶
Bases:
BaseFieldPropsProperties for a text input field.
- model_config: ClassVar[ConfigDict] = {}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
imednet.form_designer.presets module¶
Standard form layout presets for the Form Designer.
- imednet.form_designer.presets.build_cv_pathology(builder)[source]¶
A CV Pathology sample form.
- Return type:
None- Parameters:
builder (FormBuilder) –
- imednet.form_designer.presets.build_demo_form(builder)[source]¶
A demo form with various field types.
- Return type:
None- Parameters:
builder (FormBuilder) –