Generating a Report

This page describes the complete workflow from an open project to a signed PDF: assembling blocks in the canvas, previewing, PDF generation, automatic collection of snapshots and simulations, and recording in the history. The interface is designed to feel like a word processor while remaining deeply integrated with the project data.

The Three Editor Zones

The report editor is structured into three zones that together cover the construction and configuration of the document. This layout remains consistent regardless of the chosen template.

Zone Role
Left Panel: Library List of available blocks, search, and filtering by Concise or Expert mode.
Central Area: Canvas Assembling report blocks, toolbar, and live previewing.
Right Panel: Templates & Info Template list, minimap, and counters (block count, page count, minimum required license).

The Concise / Expert toggle above the library filters blocks according to their complexity level: blocks marked as "expert" are hidden in concise mode to simplify the view for less experienced users.

Standard Workflow

Open Reports > Load a Preset > Add or Remove Blocks > Preview > Generate PDF > Download

Each step can be revisited independently. The canvas preserves its state between sessions, allowing you to interrupt your work and resume later without data loss.

Canvas Toolbar

The toolbar above the canvas brings together the most frequent actions, organized into logical groups.

Group Available Actions
Identification Report name, entered directly in the text field.
Parameters Report language (French or English), preset selection.
Template Save, clear, export to JSON, import from JSON.
Action Preview, generate PDF.

The JSON export produces a file describing the report's structure: block list, order, and parameters. This file can be re-imported later or shared with other users to reproduce the same layout. It does not contain the data itself, only the skeleton.

Real-Time Validation

A validation bar below the toolbar displays alerts automatically generated by analyzing the current report. Alerts fall into four categories:

Alert Category Example
FAIH Completeness The report contains no blocks regarding honesty or scientific rigor.
Content Consistency A block requires data missing from the project (e.g., unmeasured CSIA).
License A block requires a higher license level than the active user's.
Duplicate The same block is present multiple times in the canvas.
Alerts do not block generation: they signal issues and leave the final judgment to the user. An alert regarding the absence of an "honesty" block may be intentionally accepted for a short service report, but it should be a conscious choice, not an oversight.

Automatic Collection of Derived Content

During generation, IsoFind automatically enriches the payload sent to the backend with several elements collected from the execution environment. This collection saves the user from having to manually export and re-import these contents.

Collected Content Source Usage
Map Snapshots Maps saved in the Mapping module. map_snapshot block.
Cross-section Snapshots Sections saved in the Mapping module. section_snapshot block.
Simulation Results sessionStorage isofind_sim_result All simulation category blocks.
Matching Results sessionStorage isofind_matching_result matching_results, matching_detail blocks.
Comparison Scenarios data-scenario-ids attributes from canvas comparison blocks. simulation_scenario_comparison block.

This injection logic is transparent to the user. It ensures that a block expecting a simulation result does not require a manual reload: if a result exists in the current session, it is automatically transmitted to the backend.

Preview vs. Final Generation

Two buttons coexist in the toolbar for two distinct use cases.

Action Behavior Usage
Preview Generates a temporary, unsigned PDF opened in the browser. Iterative proofreading during assembly.
Generate PDF Generates the final signed PDF and adds it to the history. Deliverable for distribution.

The preview is fast, does not sign the document, and does not record it in the history. It is used exclusively to visually verify the result before the final step. Full generation, however, produces an immutable document that can be shared and whose integrity can be verified later.

Report History Tab

Every generated report is saved in the project history, accessible via the "Generated Reports" tab. The history preserves the final PDF, generation parameters, date, and author. It allows you to retrieve an old report, reopen it, use it as a base for a new one, or delete it.

Deleting a report from the history does not affect copies already distributed. A report sent to a third party remains verifiable on their end even if the source report is deleted from the project. The cryptographic signature guarantees this independent verifiability.

Report Language

The language selection is made in the canvas toolbar. The two available languages are French and English. All standard blocks are translated into both languages; custom blocks depend on their implementation, and Python code can read the lang variable to adapt its output.

Changing the language entirely recomposes the report: labels, dates, number formats, and alert messages. It is not possible to mix languages within a single report; for a bilingual deliverable, the standard practice is to generate two separate reports.

Branding Customization

The Customization tab allows you to configure the organization name and logo that will appear in the PDF header and footer. These elements are stored via the /api/reports/branding endpoint and applied to all reports generated by the workstation.

A real-time preview on the customization page shows how the header will appear in the final document, preventing surprises regarding logo size or organization name rendering.

Importing and Exporting Templates

Two icons in the toolbar allow you to export the current report structure as JSON or import a previously exported JSON file. This mechanism allows you to share report structures between users without sharing the underlying data.

An exported template can also be manually adjusted by editing the JSON file: changing block order, adding specific parameters, etc. The import process validates the structure before loading and flags unknown blocks or invalid options.

Learn More