PrCore Documentation
AI Assistant GitHub Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Class diagram

The system is structured using several core classes, as depicted in the diagram. The EventLog class represents the event log file and contains details such as the file name, saved name, and associated Definition object. The Definition class contains definitions necessary for system training, such as column definitions, case attributes, outcome definitions, and treatment definitions, among others.

The Project class represents a project that uses the PrCore system for prescriptive process monitoring. It contains details such as the project name, description, and associated EventLog object, as well as a list of associated Plugin objects.

The Plugin class represents a plugin in the system and contains details such as the plugin name, description, and status.

The Event and Case classes used to represent events and cases in the stream data. By utilizing these classes for storing stream data, the PrCore system can provide timely and prescribing recommendations for ongoing cases, allowing users to make informed decisions about their processes.

Overall, the system design is highly structured and organized, with each class containing details essential for efficient prescriptive process monitoring.

classDiagram
    class EventLog {
        id: int
        created_at: datetime
        updated_at: datetime
        file_name: str
        saved_name: str
        df_name: str
        training_df_name: str
        simulation_df_name: str
        definition: Definition
    }

    class Definition {
        id: int
        created_at: datetime
        updated_at: datetime
        columns_definition: dict[str, str]
        case_attributes: list[str]
        fast_mode: bool
        start_transition: str
        complete_transition: str
        abort_transition: str
        outcome_definition: list[list[dict[str, str]]]
        treatment_definition: list[list[dict[str, str]]]
    }

    class Project {
        id: int
        created_at: datetime
        updated_at: datetime
        name: str
        description: str
        status: str
        error: str
        event_log: EventLog
        plugins: list[Plugin]
    }

    class Plugin {
        id: int
        created_at: datetime
        updated_at: datetime
        project_id: int
        key: str
        prescription_type: str
        name: str
        description: str
        parameters: dict[str, str | bool | int | float]
        additional_info: dict[str, Any]
        status: str
        error: str
        disabled: bool
        model_name: str
        project: Project
    }

    class Case{
        id: int
        created_at: datetime
        updated_at: datetime
        project_id: int
        case_id: str
        completed: bool
        events: list[Event]
    }

    class Event{
        id: int
        created_at: datetime
        updated_at: datetime
        project_id: int
        attributes: dict[str, str | bool | int | float | None]
        prescriptions: dict[str, Any]
        prescribed: bool
        sent: bool
        case: Case
    }

    EventLog "1" -- "1" Definition
    Project "1" -- "1" EventLog
    Project "1" -- "*" Plugin
    Project "1" -- "*" Case
    Project "1" -- "*" Event
    Case "1" -- "*" Event