Skip to content

Commit

Permalink
Graphviz and module override fixes.
Browse files Browse the repository at this point in the history
  • Loading branch information
jawalonoski committed Mar 20, 2024
1 parent de32971 commit 2c97526
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 4 deletions.
22 changes: 18 additions & 4 deletions src/main/java/Graphviz.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.stream.JsonReader;
Expand All @@ -8,6 +9,7 @@
import guru.nidi.graphviz.attribute.Label;
import guru.nidi.graphviz.attribute.Records;
import guru.nidi.graphviz.attribute.Style;
import guru.nidi.graphviz.engine.Engine;
import guru.nidi.graphviz.engine.Format;
import guru.nidi.graphviz.engine.GraphvizException;
import guru.nidi.graphviz.model.Factory;
Expand All @@ -24,12 +26,10 @@
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.TimeZone;

import org.mitre.synthea.engine.Module;
import org.mitre.synthea.export.Exporter;
Expand Down Expand Up @@ -278,8 +278,16 @@ private static void generateJsonModuleGraph(JsonObject module, File outputFolder

File outputFile = outputFolder.toPath().resolve(relativePath + ".png").toFile();
outputFile.mkdirs();
guru.nidi.graphviz.engine.Graphviz.fromGraph(g)

try {
guru.nidi.graphviz.engine.Graphviz.fromGraph(g).engine(Engine.DOT)
.render(Format.PNG).toFile(outputFile);
} catch (guru.nidi.graphviz.engine.GraphvizException gve) {

Check warning on line 285 in src/main/java/Graphviz.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/Graphviz.java#L283-L285

Added lines #L283 - L285 were not covered by tests
if (gve.getMessage().contains("Command took too long to execute")) {
guru.nidi.graphviz.engine.Graphviz.fromGraph(g).engine(Engine.FDP)

Check warning on line 287 in src/main/java/Graphviz.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/Graphviz.java#L287

Added line #L287 was not covered by tests
.render(Format.PNG).toFile(outputFile);
}
}

Check warning on line 290 in src/main/java/Graphviz.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/Graphviz.java#L290

Added line #L290 was not covered by tests
}

private static String getStateDescription(JsonObject state) {
Expand Down Expand Up @@ -321,7 +329,13 @@ private static String getStateDescription(JsonObject state) {
}
break;
case "SetAttribute":
String v = state.has("value") ? state.get("value").getAsString() : null;
String v = "null";

Check warning on line 332 in src/main/java/Graphviz.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/Graphviz.java#L332

Added line #L332 was not covered by tests
if (state.has("value")) {
JsonElement e = state.get("value");

Check warning on line 334 in src/main/java/Graphviz.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/Graphviz.java#L334

Added line #L334 was not covered by tests
if (e != null && e != JsonNull.INSTANCE) {
v = e.getAsString();

Check warning on line 336 in src/main/java/Graphviz.java

View check run for this annotation

Codecov / codecov/patch

src/main/java/Graphviz.java#L336

Added line #L336 was not covered by tests
}
}
details.append("Set ").append(state.get("attribute").getAsString()).append(" = ").append(v);
break;
case "Symptom":
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/org/mitre/synthea/helpers/ModuleOverrides.java
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,8 @@ private void processModule(Path modulesPath, Path modulePath, List<String> lines
}

try {
moduleFilename = moduleFilename.replace(" ", "\\ ").replace(":", "\\:");

String moduleRelativePath = modulesPath.getParent().relativize(modulePath).toString();
JsonReader reader = new JsonReader(new StringReader(
Utilities.readResource(moduleRelativePath)));
Expand Down

0 comments on commit 2c97526

Please sign in to comment.