We will draft a causal loop diagram utilizing the workflow described in this article:

https://www.erikigelstrom.com/articles/causal-graphs-in-r-with-diagrammer/

#Generate a causal loop diagram for adoption and utilization of readmission risk score that is easy to read and smooth circular arrows

DiagrammeR::grViz("
digraph {
  graph [ranksep = 0.2, splines = true, nodesep = 0.2, fontname = Helvetica, fontsize = 12]

  node [shape = plaintext, fontname = Helvetica]

subgraph cluster_0 {
    style = invis;
    aware [label = 'Awareness', root = true]
    use [label = 'Use in Discharge', shape = box, root = true]
    train [label = 'training']
    
    aware -> use [label = '(+)']
    use -> train [label = '(-)']
    train -> aware [label = '(+)']
  }

subgraph cluster_1 {
    style = invis; 
    admit [label = '(Re)admits', shape = box, root = true]
    inc [label = 'Incentives']
    inst [label = 'Align w/\nInst Goals']
    indv [label = 'Align w/\nIndiv Goals']

    use -> admit [label = '(-)']
    admit-> inc [label = '(+)']
    inc -> inst [label = '(+)']
    inst -> indv [label = '(+)']
    indv -> use [label = '(+)']
    }

subgraph cluster_2 {
    style = invis;
    indv [label = 'Align w/\nIndiv Goals']
    app [label = 'Appropriate Alert\n(For discipline)']
    data [label = 'Data']
    disc [label = 'Discussion on rounds']
    inst [label = 'Align w/\nInst Goals']
    
    indv -> app [label = '(+)']
    app -> data [label = '(+)']
   data -> disc [label = '(+)']
    disc -> inst [label = '(+)']
}
  
edge [arrowhead = normal, fontname = Helvetica, fontsize = 10]
app -> indv [label = '(+)'] 

{rank = same; aware; use; admit}
    
}
")