(String[] args)
| 27 | |
| 28 | public class DicomConvert { |
| 29 | public static void main(String[] args) throws Exception { |
| 30 | if (args.length < 2) { |
| 31 | System.out.println("Usage: DicomConvert <root_of_data_directory> <output_file_extension> [--w width] [--od output_directory]"); |
| 32 | System.exit(1); |
| 33 | } |
| 34 | String rootDir = args[0]; |
| 35 | String outputExt = args[1]; |
| 36 | Integer width = null; |
| 37 | String outDir = null; |
| 38 | for (int i = 2; i < args.length; ++i) { |
| 39 | if (args[i].equals("--w") && i + 1 < args.length) { |
| 40 | width = Integer.parseInt(args[++i]); |
| 41 | } else if (args[i].equals("--od") && i + 1 < args.length) { |
| 42 | outDir = args[++i]; |
| 43 | } |
| 44 | } |
| 45 | List<String> inputFiles = new ArrayList<>(); |
| 46 | walkDir(new File(rootDir), inputFiles); |
| 47 | List<String> fileNames = new ArrayList<>(); |
| 48 | if (outDir != null) { |
| 49 | for (int i = 0; i < inputFiles.size(); ++i) { |
| 50 | fileNames.add(new File(outDir, Integer.toString(i)).getAbsolutePath()); |
| 51 | } |
| 52 | } else { |
| 53 | for (String f : inputFiles) { |
| 54 | fileNames.add(f); |
| 55 | } |
| 56 | } |
| 57 | List<String> outputFiles = new ArrayList<>(); |
| 58 | for (String f : fileNames) { |
| 59 | outputFiles.add(f + "." + outputExt); |
| 60 | } |
| 61 | List<Boolean> res = new ArrayList<>(); |
| 62 | for (int i = 0; i < inputFiles.size(); ++i) { |
| 63 | res.add(convertImage(inputFiles.get(i), outputFiles.get(i), width)); |
| 64 | } |
| 65 | List<String> filteredInput = new ArrayList<>(); |
| 66 | List<String> filteredOutput = new ArrayList<>(); |
| 67 | for (int i = 0; i < res.size(); ++i) { |
| 68 | if (res.get(i)) { |
| 69 | filteredInput.add(inputFiles.get(i)); |
| 70 | filteredOutput.add(outputFiles.get(i)); |
| 71 | } |
| 72 | } |
| 73 | String csvDir = (outDir != null) ? outDir : System.getProperty("user.dir"); |
| 74 | try (PrintWriter writer = new PrintWriter(new File(csvDir, "file_names.csv"), "UTF-8")) { |
| 75 | writer.println("input file name,output file name"); |
| 76 | for (int i = 0; i < filteredInput.size(); ++i) { |
| 77 | writer.println(filteredInput.get(i) + "," + filteredOutput.get(i)); |
| 78 | } |
| 79 | } |
| 80 | } |
| 81 | |
| 82 | static void walkDir(File dir, List<String> files) { |
| 83 | for (File f : dir.listFiles()) { |
nothing calls this directly
no test coverage detected