@@ -60,26 +60,32 @@ public enum SupportedFhirVersion {
6060
6161 private static List <PatientExporter > patientExporters ;
6262 private static List <PostCompletionExporter > postCompletionExporters ;
63-
63+
64+ /**
65+ * If the config setting "exporter.enable_custom_exporters" is enabled,
66+ * load classes implementing the {@link PatientExporter} or {@link PostCompletionExporter}
67+ * interfaces from the classpath, via the ServiceLoader.
68+ */
6469 public static void loadCustomExporters () {
6570 if (Config .getAsBoolean ("exporter.enable_custom_exporters" , false )) {
66- patientExporters = new LinkedList <>();
67- postCompletionExporters = new LinkedList <>();
68-
71+ patientExporters = new ArrayList <>();
72+ postCompletionExporters = new ArrayList <>();
73+
6974 ServiceLoader <PatientExporter > loader = ServiceLoader .load (PatientExporter .class );
7075 for (PatientExporter instance : loader ) {
7176 System .out .println (instance .getClass ().getCanonicalName ());
7277 patientExporters .add (instance );
7378 }
7479
75- ServiceLoader <PostCompletionExporter > loader2 = ServiceLoader .load (PostCompletionExporter .class );
80+ ServiceLoader <PostCompletionExporter > loader2 =
81+ ServiceLoader .load (PostCompletionExporter .class );
7682 for (PostCompletionExporter instance : loader2 ) {
7783 System .out .println (instance .getClass ().getCanonicalName ());
7884 postCompletionExporters .add (instance );
7985 }
8086 }
8187 }
82-
88+
8389 /**
8490 * Runtime configuration of the record exporter.
8591 */
@@ -341,13 +347,13 @@ private static boolean exportRecord(Person person, String fileTag, long stopTime
341347 String consolidatedNotes = ClinicalNoteExporter .export (person );
342348 writeNewFile (outFilePath , consolidatedNotes );
343349 }
344-
350+
345351 if (patientExporters != null && !patientExporters .isEmpty ()) {
346352 for (PatientExporter patientExporter : patientExporters ) {
347353 patientExporter .export (person , stopTime , options );
348354 }
349355 }
350-
356+
351357 if (options .isQueueEnabled ()) {
352358 try {
353359 switch (options .queuedFhirVersion ()) {
@@ -538,7 +544,7 @@ public static void runPostCompletionExports(Generator generator, ExporterRuntime
538544 e .printStackTrace ();
539545 }
540546 }
541-
547+
542548 if (postCompletionExporters != null && !postCompletionExporters .isEmpty ()) {
543549 for (PostCompletionExporter postCompletionExporter : postCompletionExporters ) {
544550 postCompletionExporter .export (generator , options );
0 commit comments