diff --git a/src/main/java/org/mitre/synthea/export/Exporter.java b/src/main/java/org/mitre/synthea/export/Exporter.java index ca3e9f8852..5699bbbef6 100644 --- a/src/main/java/org/mitre/synthea/export/Exporter.java +++ b/src/main/java/org/mitre/synthea/export/Exporter.java @@ -236,6 +236,15 @@ private static boolean exportRecord(Person person, String fileTag, long stopTime String entryJson = parser.encodeResourceToString(entry.getResource()); appendToFile(outFilePath, entryJson); } + // } else if (Config.getAsBoolean("exporter.fhir.personal_data")) { + // org.hl7.fhir.r4.model.Bundle bundle = FhirR4.convertToFHIR(person, stopTime); + // IParser parser = FhirR4.getContext().newJsonParser().setPrettyPrint(false); + // for (org.hl7.fhir.r4.model.Bundle.BundleEntryComponent entry : bundle.getEntry()) { + // String filename = entry.getResource().getResourceType().toString() + ".ndjson"; + // Path outFilePath = outDirectory.toPath().resolve(filename); + // String entryJson = parser.encodeResourceToString(entry.getResource()); + // appendToFile(outFilePath, entryJson); + // } } else { String bundleJson = FhirR4.convertToFHIRJson(person, stopTime); Path outFilePath = outDirectory.toPath().resolve(filename(person, fileTag, "json")); @@ -255,6 +264,15 @@ private static boolean exportRecord(Person person, String fileTag, long stopTime Path outFilePath = outDirectory.toPath().resolve(filename(person, fileTag, "json")); writeNewFile(outFilePath, json); } + + if (Config.getAsBoolean("exporter.ndjson.export")) { + String ndjson = JSONExporter.export(person); + File outDirectory = getOutputFolder("ndjson", person); + Path outFilePath = outDirectory.toPath().resolve(filename(person, fileTag, "ndjson")); + writeNewFile(outFilePath, ndjson); + } + + if (Config.getAsBoolean("exporter.csv.export")) { try { CSVExporter.getInstance().export(person, stopTime); diff --git a/src/main/resources/synthea.properties b/src/main/resources/synthea.properties index 843845d50a..dfbecad1de 100644 --- a/src/main/resources/synthea.properties +++ b/src/main/resources/synthea.properties @@ -22,6 +22,7 @@ exporter.fhir.us_core_version = 5.0.1 exporter.fhir.transaction_bundle = true # using bulk_data=true will ignore exporter.pretty_print exporter.fhir.bulk_data = false +exporter.fhir.personal_data = true # included_ and excluded_resources list out the resource types to include/exclude in the csv exporters. # only one of these may be set at a time, if both are set then both will be ignored. # if neither is set, then all resource types will be included. @@ -38,6 +39,7 @@ exporter.practitioner.fhir_dstu2.export = false exporter.encoding = UTF-8 exporter.json.export = false exporter.json.include_module_history = false +exporter.ndjson.export = false exporter.csv.export = false # if exporter.csv.append_mode = true, then each run will add new data to any existing CSVs. if false, each run will clear out the files and start fresh exporter.csv.append_mode = false diff --git a/src/test/java/org/mitre/synthea/TestHelper.java b/src/test/java/org/mitre/synthea/TestHelper.java index 6ef564a990..fe88c01342 100644 --- a/src/test/java/org/mitre/synthea/TestHelper.java +++ b/src/test/java/org/mitre/synthea/TestHelper.java @@ -125,6 +125,7 @@ public static void exportOff() { Config.set("exporter.practitioner.fhir_stu3.export", "false"); Config.set("exporter.practitioner.fhir_dstu2.export", "false"); Config.set("exporter.json.export", "false"); + Config.set("exporter.ndjson.export", "false"); Config.set("exporter.csv.export", "false"); Config.set("exporter.cpcds.export", "false"); Config.set("exporter.bfd.export", "false"); diff --git a/src/test/java/org/mitre/synthea/export/JSONExporterTest.java b/src/test/java/org/mitre/synthea/export/JSONExporterTest.java index 2d8f778649..dbec2f859f 100644 --- a/src/test/java/org/mitre/synthea/export/JSONExporterTest.java +++ b/src/test/java/org/mitre/synthea/export/JSONExporterTest.java @@ -30,6 +30,7 @@ public void export() throws Exception { List validationErrors = new ArrayList<>(); TestHelper.exportOff(); Config.set("exporter.json.export", "true"); + Config.set("exporter.ndjson.export", "true"); boolean moduleExport = person.randBoolean(); Config.set("exporter.json.include_module_history", String.valueOf(moduleExport)); String personJson = JSONExporter.export(person); diff --git a/src/test/java/org/mitre/synthea/identity/EntityManagerTest.java b/src/test/java/org/mitre/synthea/identity/EntityManagerTest.java index db22b27e4b..553d7f0f77 100644 --- a/src/test/java/org/mitre/synthea/identity/EntityManagerTest.java +++ b/src/test/java/org/mitre/synthea/identity/EntityManagerTest.java @@ -71,6 +71,7 @@ public void endToEnd() throws Exception { TestHelper.exportOff(); Config.set("exporter.fhir.export", "true"); Config.set("exporter.json.export", "true"); + Config.set("exporter.ndjson.export", "true"); Generator.DEFAULT_STATE = "North Carolina"; Path baseDirectory = tempFolder.newFolder().toPath(); Config.set("exporter.baseDirectory", baseDirectory.toString());