\ProvidesPackage{prisma-flow-diagram}[2025/01/20 PRISMA Flow Diagram Generator]
% Automatically load required packages
\RequirePackage{tikz}
\RequirePackage{graphicx}
\RequirePackage{float}
\usetikzlibrary{positioning, calc, chains}
% Define default node height
\def\mh{10ex}
% Define TikZ styles
\tikzset{
mynode/.style={
draw, rectangle, align=center, minimum height=\mh, text width=5cm, font=\small, outer sep=0pt
},
ml/.style args={#1/#2}{
draw, rectangle, align=center, rounded corners, font=\small\bfseries, inner sep=2ex,
outer sep=0pt, fill=cyan!30, minimum height=1.6*\mh, left=5mm of #2
},
arrow/.style={
thick,->,>=stealth
},
every join/.style=arrow,
every node/.style={
font=\small
}
}
% Start PRISMA diagram
\newcommand{\prismaflowstart}{
\begin{tikzpicture}[node distance=5mm and 10mm, start chain=going below]
\coordinate (tc);
}
% Add a main diagram node
\newcommand{\prismaflownode}[4]{
\node[mynode, #2] (#1) {#3};
\ifx#4\empty\else\draw[arrow] (#4) -- (#1);\fi
}
% Add a left-side label
\newcommand{\prismalabel}[3]{
\node[ml=#1/#2] {\rotatebox{90}{\textbf{#3}}};
}
% Add a manual arrow
\newcommand{\prismaflowarrow}[2]{
\draw[arrow] (#1) -- (#2);
}
% End PRISMA diagram
\newcommand{\prismaflowend}{
\end{tikzpicture}
}