List of usage examples for org.apache.commons.csv CSVFormat DEFAULT
CSVFormat DEFAULT
To view the source code for org.apache.commons.csv CSVFormat DEFAULT.
Click Source Link
From source file:canreg.client.gui.analysis.FrequenciesByYearInternalFrame.java
public void createPivot(String fileName) { String[] columnNames = new String[resultTable.getColumnCount()]; // We need 3 columns to work with if (columnNames.length != 3) { return;//w w w .j a va 2 s.c om } // TODO Extend this to at least 4 String[] nextLine = new String[resultTable.getColumnCount()]; // Find the column names for (int j = 0; j < columnNames.length; j++) { columnNames[j] = resultTable.getColumnName(j); } // variable we lock String lockVariable = columnNames[1]; HashMap<String, HashMap> data = new HashMap<String, HashMap>(); HashMap<String, String> years; Set<String> allYears = new TreeSet<String>(); // load up the data for (int i = 0; i < resultTable.getRowCount(); i++) { String year, cases, code; for (int j = 0; j < nextLine.length; j++) { nextLine[j] = resultTable.getValueAt(i, j).toString(); } year = nextLine[0]; if (year.trim().length() == 0) { year = "MISSING"; } allYears.add(year); code = nextLine[1]; if (code.trim().length() == 0) { code = "MISSING"; } cases = nextLine[2]; years = data.get(code); if (years == null) { years = new HashMap<String, String>(); data.put(code, years); } years.put(year, cases); } // find variables element for the lockedvariable DatabaseVariablesListElement lockedDatabaseVariablesListElement = null; for (DatabaseVariablesListElement vle : chosenVariables) { if (vle.getShortName().compareToIgnoreCase(lockVariable) == 0) { lockedDatabaseVariablesListElement = vle; } } if (lockedDatabaseVariablesListElement == null) { return; } // this happens if user has updated the selection of variables int dictionaryID = lockedDatabaseVariablesListElement.getDictionaryID(); Dictionary dict = null; if (dictionaryID >= 0) { dict = dictionary.get(dictionaryID); } String[] allYearsArray = allYears.toArray(new String[0]); Writer writer = null; try { writer = new FileWriter(fileName); // Write the column names String[] codeArray = { lockedDatabaseVariablesListElement.getFullName(), lockVariable }; String[] headers = (String[]) ArrayUtils.addAll(codeArray, allYearsArray); String[] codes = data.keySet().toArray(new String[0]); Arrays.sort(codes); CSVFormat format = CSVFormat.DEFAULT.withDelimiter(',').withHeader(headers); CSVPrinter csvPrinter = new CSVPrinter(writer, format); // write the rows for (String code : codes) { LinkedList<String> row = new LinkedList<String>(); if (dict != null) { DictionaryEntry dictionaryEntry = dict.getDictionaryEntry(code); if (dictionaryEntry != null) { row.add(dictionaryEntry.getDescription()); } else { row.add(""); } } else { row.add(""); } row.add(code); years = data.get(code); for (String year : allYears) { String cell = years.get(year); if (cell == null) { row.add("0"); } else { row.add(cell); } } csvPrinter.printRecord(row); } csvPrinter.flush(); } catch (IOException ex) { // JOptionPane.showMessageDialog(this, "File NOT written.\n" + ex.getLocalizedMessage(), "ERROR", JOptionPane.ERROR_MESSAGE); Logger.getLogger(FrequenciesByYearInternalFrame.class.getName()).log(Level.SEVERE, null, ex); } finally { try { if (writer != null) { writer.close(); } } catch (IOException ex) { Logger.getLogger(FrequenciesByYearInternalFrame.class.getName()).log(Level.SEVERE, null, ex); } } }
From source file:cn.edu.pku.lib.dataverse.UsageLogStatisPage.java
private File generateCSVDownloadLogFile() { String filesRootDirectory = System.getProperty("dataverse.files.directory"); if (filesRootDirectory == null || filesRootDirectory.equals("")) { filesRootDirectory = "/tmp/files"; }/*from w w w. j a v a 2s. c o m*/ Locale local = FacesContext.getCurrentInstance().getViewRoot().getLocale(); File file = new File(filesRootDirectory + "/temp/" + UUID.randomUUID()); try (BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), "utf-8")); CSVPrinter csvPrinter = new CSVPrinter(out, CSVFormat.DEFAULT);) { UsageLogSearchQuery query = queryForFile.clone(); final long size = 100L; query.setSize(size); query.setDateHistogramInterval(null); UsageLogSearchResult searchResult = null; int i = 0; String heads = ResourceBundle.getBundle("Bundle", local).getString("log.filedownload.header"); csvPrinter.printRecord(Arrays.asList(heads.split(","))); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); do { query.setFrom(i * size); searchResult = usageLogSearchService.search(query); List<EventLog> logs = searchResult.getEventLogs(); for (EventLog log : logs) { AuthenticatedUser user; if (log.getUserId().equals(":guest") || (user = authenticationServiceBean.getAuthenticatedUser(log.getUserId())) == null) { csvPrinter.printRecord(format.format(log.getDate()), log.getIp(), log.getContinent(), log.getCountry(), log.getSubdivision(), log.getCity(), log.getUserId(), log.getUserName(), log.getAffiliation(), log.getPosition(), fileId2Dataset.get(log.getDatafileId()).getDisplayName(local), fileId2DataFile.get(log.getDatafileId()).getLabel()); } else { if (user.isBuiltInUser()) { BuiltinUser b = builtinUserService.findByUserName(user.getUserIdentifier()); csvPrinter.printRecord(format.format(log.getDate()), log.getIp(), log.getContinent(), log.getCountry(), log.getSubdivision(), log.getCity(), log.getUserId(), log.getUserName(), b.getAffiliation(), b.getPosition(), fileId2Dataset.get(log.getDatafileId()).getDisplayName(local), fileId2DataFile.get(log.getDatafileId()).getLabel(), b.getDepartment(), b.getEmail(), b.getSpeciality(), b.getResearchInterest(), b.getGender(), b.getEducation(), b.getProfessionalTitle(), b.getSupervisor(), b.getCertificateType(), b.getCertificateNumber(), b.getOfficePhone(), b.getCellphone(), b.getOtherEmail(), b.getCountry(), b.getProvince(), b.getCity(), b.getAddress(), b.getZipCode(), "Built In"); } else if (user.isPKUIAAAUser()) { PKUIAAAUser p = pkuIAAAUserService.findByUserName(user.getUserIdentifier()); csvPrinter.printRecord(format.format(log.getDate()), log.getIp(), log.getContinent(), log.getCountry(), log.getSubdivision(), log.getCity(), log.getUserId(), log.getUserName(), p.getAffiliation(), p.getPosition(), fileId2Dataset.get(log.getDatafileId()).getDisplayName(local), fileId2DataFile.get(log.getDatafileId()).getLabel(), p.getDepartment(), p.getEmail(), p.getSpeciality(), p.getResearchInterest(), p.getGender(), p.getEducation(), p.getProfessionalTitle(), p.getSupervisor(), p.getCertificateType(), p.getCertificateNumber(), p.getOfficePhone(), p.getCellphone(), p.getOtherEmail(), p.getCountry(), p.getProvince(), p.getCity(), p.getAddress(), p.getZipCode(), "PKU IAAA"); } } } i++; } while (i < searchResult.getPages()); return file; } catch (IOException ioe) { logger.log(Level.SEVERE, null, ioe); } if (file.exists()) { file.delete(); } return null; }
From source file:com.ggvaidya.scinames.model.Dataset.java
/** * Attempt to load a dataset from a file. We use regular expressions to try to guess the file type, * and then delegate the job out. Rather cleverly, we try extracting the names using every extractor * this project knows about, and then pick the one that gives us the most number of names. * /* w w w . j a v a 2 s. c o m*/ * @param proj The project doing the loading, used to get the name extractors. * @param f The file to open. * @return The dataset loaded from that file. * @throws IOException If there was an error loading the file. */ public static Dataset loadFromFile(Project proj, File f) throws IOException { Dataset ds; // Excel file? Handle separately! String fileName = f.getName().toLowerCase(); if (fileName.endsWith(".xlsx") || fileName.endsWith(".xls")) { ds = new ExcelImporter(f).asDataset(0); } else if (fileName.endsWith(".csv") || fileName.endsWith(".tsv")) { CSVFormat csvFormat = CSVFormat.DEFAULT; if (fileName.endsWith(".tsv")) csvFormat = CSVFormat.TDF.withQuote(null); // We need this to load the AmphibiaWeb files. ds = Dataset.fromCSV(csvFormat, f); } else { // Text-based file? Try using the first line to figure out what's going on. String firstLine; try (LineNumberReader r = new LineNumberReader(new FileReader(f))) { // Load the first line to try to identify the file type. firstLine = r.readLine(); } // The most basic type of file is a TaxDiff file, which always // begins with: if (ChecklistDiff.pTaxDiffFirstLine.matcher(firstLine).matches()) { // Note that checklist diffs don't need name extractors! return ChecklistDiff.fromTaxDiffFile(f); } // If all else fails, try loading it as a checklist. Also don't need name extractors! return Checklist.fromListInFile(f); } // If we're here, we need name extractors. // Try all name extractors, see which one matches the most names. Set<List<NameExtractor>> allAvailableNameExtractors = proj.getNameExtractors(); allAvailableNameExtractors.add(NameExtractorFactory.getDefaultExtractors()); LOGGER.info("Starting name extractor comparisons"); List<NameExtractor> bestExtractor = null; long bestExtractorCount = Long.MIN_VALUE; for (List<NameExtractor> extractor : allAvailableNameExtractors) { long count = ds.rows.stream() .flatMap(row -> NameExtractorFactory.extractNamesUsingExtractors(extractor, row).stream()) .distinct().count(); if (count > bestExtractorCount) { bestExtractorCount = count; bestExtractor = extractor; } } LOGGER.info("Finished name extractor comparisons: best extractor at " + bestExtractorCount + " names was " + NameExtractorFactory.serializeExtractorsToString(bestExtractor)); try { ds.setNameExtractorsString(NameExtractorFactory.serializeExtractorsToString(bestExtractor)); } catch (NameExtractorParseException ex) { // Forget about it. We'll go with the default. } return ds; }
From source file:canreg.client.analysis.AgeSpecificCasesPerHundredThousandTableBuilder.java
@Override public LinkedList<String> buildTable(String tableHeader, String reportFileName, int startYear, int endYear, Object[][] incidenceData, PopulationDataset[] populations, PopulationDataset[] standardPopulations, LinkedList<ConfigFields> configList, String[] engineParameters, FileTypes fileType) throws NotCompatibleDataException { LinkedList<String> generatedFiles = new LinkedList<String>(); String footerString = java.util.ResourceBundle .getBundle("canreg/client/analysis/resources/AgeSpecificCasesPerHundredThousandTableBuilder") .getString("TABLE BUILT ") + new Date() + java.util.ResourceBundle .getBundle(/*from ww w .j av a 2 s . c om*/ "canreg/client/analysis/resources/AgeSpecificCasesPerHundredThousandTableBuilder") .getString(" BY CANREG5."); String notesString = ""; double tableFontSize = 7.5; String font = "Times"; int[] years = { startYear, endYear }; double casesArray[][][] = null; // a 3D array of sex, icd and agegroup - with one extra layer in all dimensions containing a sum of all double populationArray[][] = null; // contains population count in the following format: [sex][agegroup] // double RegPop[][]; double totalCasesPerHundredThousand[][]; double crudeRate[][]; double MV[][]; double ASR[][]; double ASRbyAgeGroup[][][]; double ratei[][]; // double vASR[][]; double ASRluL[][][]; double variL[][]; double variLbyAgeGroup[][][]; double DCO[][]; char ASRf[][]; double ASRratio[][]; char MVf[][]; String sexLabel[] = null; String tableLabel[] = null; String icdLabel[] = null; LinkedList cancerGroupsLocal[] = null; LinkedList<FieldDescription> incidenceFieldDescriptionList = null; boolean showSeeNotesNote = true; char Childc[][] = new char[2][3]; double casesPerHundredThousand[][][]; double cumRate64[][]; double cumRate74[][]; tableLabel = ConfigFieldsReader.findConfig("table_label", configList); // sexLabel = ConfigFieldsReader.findConfig("sex_label", configList); sexLabel = new String[] { java.util.ResourceBundle.getBundle("canreg/client/analysis/resources/AbstractEditorialTableBuilder") .getString("MALE"), java.util.ResourceBundle.getBundle("canreg/client/analysis/resources/AbstractEditorialTableBuilder") .getString("FEMALE") }; icdLabel = ConfigFieldsReader.findConfig("ICD_groups_labels", configList); icd10GroupDescriptions = ConfigFieldsReader.findConfig("ICD10_groups", configList); cancerGroupsLocal = EditorialTableTools.generateICD10Groups(icd10GroupDescriptions); allCancerGroupsIndex = EditorialTableTools.getICD10index("ALL", icd10GroupDescriptions); leukemiaNOSCancerGroupIndex = EditorialTableTools.getICD10index(950, cancerGroupsLocal); skinCancerGroupIndex = EditorialTableTools.getICD10index("C44", icd10GroupDescriptions); bladderCancerGroupIndex = EditorialTableTools.getICD10index("C67", icd10GroupDescriptions); mesotheliomaCancerGroupIndex = EditorialTableTools.getICD10index("C45", icd10GroupDescriptions); kaposiSarkomaCancerGroupIndex = EditorialTableTools.getICD10index("C46", icd10GroupDescriptions); myeloproliferativeDisordersCancerGroupIndex = EditorialTableTools.getICD10index("MPD", icd10GroupDescriptions); myelodysplasticSyndromesCancerGroupIndex = EditorialTableTools.getICD10index("MDS", icd10GroupDescriptions); allCancerGroupsButSkinIndex = EditorialTableTools.getICD10index("ALLbC44", icd10GroupDescriptions); leukemiaNOSCancerGroupIndex = EditorialTableTools.getICD10index(950, cancerGroupsLocal); brainAndCentralNervousSystemCancerGroupIndex = EditorialTableTools.getICD10index("C70-72", icd10GroupDescriptions); ovaryCancerGroupIndex = EditorialTableTools.getICD10index(569, cancerGroupsLocal); otherCancerGroupsIndex = EditorialTableTools.getICD10index("O&U", icd10GroupDescriptions); numberOfCancerGroups = cancerGroupsLocal.length; lineBreaks = parseLineBreaks(ConfigFieldsReader.findConfig("line_breaks", configList)); numberOfYears = years[1] - years[0] + 1; minimumCasesLimit = minimumCasesPerYearLimit * numberOfYears; noOldData = true; casesPerHundredThousand = new double[numberOfSexes][numberOfAgeGroups][numberOfCancerGroups]; casesArray = new double[numberOfCancerGroups][numberOfSexes][numberOfAgeGroups]; cumRate64 = new double[numberOfSexes][numberOfCancerGroups]; cumRate74 = new double[numberOfSexes][numberOfCancerGroups]; populationArray = new double[numberOfSexes][numberOfAgeGroups]; foundAgeGroups = new boolean[numberOfAgeGroups]; if (areThesePopulationDatasetsCompatible(populations)) { for (PopulationDataset population : populations) { population.addPopulationDataToArrayForTableBuilder(populationArray, foundAgeGroups, new AgeGroupStructure(5, 85, 1)); } } else { throw new NotCompatibleDataException(); } populationString = populations[0].getPopulationDatasetName(); int lastCommaPlace = populationString.lastIndexOf(","); if (lastCommaPlace != -1) { populationString = populationString.substring(0, lastCommaPlace); } if (populations[0].getFilter().length() > 0) { notesString = java.util.ResourceBundle .getBundle("canreg/client/analysis/resources/AgeSpecificCasesPerHundredThousandTableBuilder") .getString("FILTER USED:") + " " + populations[0].getFilter(); } if (populations.length > 0) { notesString += ", " + java.util.ResourceBundle.getBundle( "canreg/client/analysis/resources/AgeSpecificCasesPerHundredThousandTableBuilder") .getString("REFERENCE POPULATION:") + " " + populations[0].getReferencePopulation().getPopulationDatasetName(); } standardPopulationArray = new double[numberOfSexes][numberOfAgeGroups]; for (PopulationDataset stdPopulation : standardPopulations) { stdPopulation.addPopulationDataToArrayForTableBuilder(standardPopulationArray, null, new AgeGroupStructure(5, 85, 1)); } // standardize population array for (int sexNumber = 0; sexNumber < numberOfSexes; sexNumber++) { for (int ageGroupNumber = 0; ageGroupNumber < numberOfAgeGroups; ageGroupNumber++) { standardPopulationArray[sexNumber][ageGroupNumber] = (standardPopulationArray[sexNumber][ageGroupNumber] / standardPopulationArray[sexNumber][numberOfAgeGroups - 1]) * 100000; } } highestPopulationAgeGroup = findHighestAgeGroup(foundAgeGroups); lowestPopulationAgeGroup = findLowestAgeGroup(foundAgeGroups); int records = 0; // generate statistics // Generate based on death certificate only DCO = new double[numberOfSexes][numberOfCancerGroups]; // and microscopical verification MV = new double[numberOfSexes][numberOfCancerGroups]; String sexString; String icdString; String morphologyString; String yearString; String ageString; String basisString; String casesString; int sex, icdNumber, year, icdIndex, yearIndex, ageGroup, ageInt, basis, cases; if (incidenceData != null) { for (Object[] line : incidenceData) { try { // Set default icdIndex = -1; cases = 0; // Unknown sex group = 3 sex = 3; // Extract data sexString = (String) line[SEX_COLUMN]; sex = Integer.parseInt(sexString.trim()); // sex = 3 is unknown sex if (sex > 2) { sex = 3; } morphologyString = (String) line[MORPHOLOGY_COLUMN]; /* if (morphologyString.length() > 0) { int morphology = Integer.parseInt(morphologyString); if (morphology == 9140) { String behaviourString = getContentOfField( incidenceFieldDescriptionList, "behaviour", line).trim(); if (behaviourString.equals("3")) { icdIndex = kaposiSarkomaCancerGroupIndex; } } else if ((int)(morphology/10) == 905) { String behaviourString = getContentOfField(incidenceFieldDescriptionList, "behaviour", line).trim(); if (behaviourString.equals("3")) { icdIndex = mesotheliomaCancerGroupIndex; } } } */ if (icdIndex < 0) { icdString = (String) line[ICD10_COLUMN]; if (icdString.length() > 0 && icdString.trim().substring(0, 1).equals("C")) { icdString = icdString.trim().substring(1); icdNumber = Integer.parseInt(icdString); if (icdString.length() < 3) { icdNumber = icdNumber * 10; } icdIndex = EditorialTableTools.getICD10index(icdNumber, cancerGroupsLocal); if (icdIndex == -1) { icdIndex = -1; } } else if (icdString.length() > 0 && icdString.trim().substring(0, 1).equals("D")) { icdString = icdString.trim().substring(1); icdNumber = Integer.parseInt(icdString); if (icdString.length() < 3) { icdNumber = icdNumber * 10; } if (icdNumber == 90 || icdNumber == 414) { icdIndex = bladderCancerGroupIndex; } else if ((int) (icdNumber / 10) == 45 || (int) (icdNumber / 10) == 47) { icdIndex = myeloproliferativeDisordersCancerGroupIndex; } else if ((int) (icdNumber / 10) == 46) { icdIndex = myelodysplasticSyndromesCancerGroupIndex; } else { icdIndex = DONT_COUNT; } } } yearString = line[YEAR_COLUMN].toString(); year = Integer.parseInt(yearString); yearIndex = year - years[0]; ageString = line[AGE_COLUMN].toString(); ageInt = Integer.parseInt(ageString); if (ageInt == unknownAgeInt) { ageGroup = unknownAgeGroupIndex; } else { ageGroup = populations[yearIndex].getAgeGroupIndex(ageInt); // Adjust age group if (populations[yearIndex].getAgeGroupStructure().getSizeOfFirstGroup() != 1) { ageGroup += 1; } } // Extract cases cases = (Integer) line[CASES_COLUMN]; if (icdIndex != DONT_COUNT && year <= years[1] && year >= years[0]) { // Basis of diagnosis basisString = line[BASIS_DIAGNOSIS_COLUMN].toString(); if (basisString != null) { basis = Integer.parseInt(basisString.trim()); } else { basis = -1; } if (sex <= numberOfSexes && icdIndex >= 0 && icdIndex <= cancerGroupsLocal.length) { casesArray[icdIndex][sex - 1][ageGroup] += cases; // if (basis == 00) { DCO[sex - 1][icdIndex] += cases; } else if (basis >= 10 && basis <= 19) { MV[sex - 1][icdIndex] += cases; } } else if (otherCancerGroupsIndex >= 0) { casesArray[otherCancerGroupsIndex][sex - 1][ageGroup] += cases; } if (allCancerGroupsIndex >= 0) { casesArray[allCancerGroupsIndex][sex - 1][ageGroup] += cases; if (basis == 0) { DCO[sex - 1][allCancerGroupsIndex] += cases; } else if (basis >= 10 && basis <= 19) { MV[sex - 1][allCancerGroupsIndex] += cases; } } if (allCancerGroupsButSkinIndex >= 0 && skinCancerGroupIndex >= 0 && icdIndex != skinCancerGroupIndex) { casesArray[allCancerGroupsButSkinIndex][sex - 1][ageGroup] += cases; if (basis == 0) { DCO[sex - 1][allCancerGroupsButSkinIndex] += cases; } else if (basis >= 10 && basis <= 19) { MV[sex - 1][allCancerGroupsButSkinIndex] += cases; } } records += cases; if (records % recordsPerFeedback == 0) { System.out.println(java.util.ResourceBundle.getBundle( "canreg/client/analysis/resources/AgeSpecificCasesPerHundredThousandTableBuilder") .getString("PROCESSING RECORD NUMBER: ") + records); } } } catch (NumberFormatException nfe) { Logger.getLogger(AgeSpecificCasesPerHundredThousandTableBuilder.class.getName()) .log(Level.WARNING, null, nfe); } // Read next line } } System.out.println(java.util.ResourceBundle .getBundle("canreg/client/analysis/resources/AgeSpecificCasesPerHundredThousandTableBuilder") .getString("PROCESSED ") + records + java.util.ResourceBundle .getBundle( "canreg/client/analysis/resources/AgeSpecificCasesPerHundredThousandTableBuilder") .getString(" RECORDS.")); // Get our matrixes ready // Age standarized rate ASR = new double[numberOfSexes][numberOfCancerGroups]; ASRbyAgeGroup = new double[numberOfSexes][numberOfCancerGroups][numberOfAgeGroups]; ASRluL = new double[numberOfSexes][numberOfCancerGroups][2]; variL = new double[numberOfSexes][numberOfCancerGroups]; variLbyAgeGroup = new double[numberOfSexes][numberOfCancerGroups][numberOfAgeGroups]; // Total casesPerHundredThousand totalCasesPerHundredThousand = new double[numberOfSexes][numberOfCancerGroups]; // Crude rate crudeRate = new double[numberOfSexes][numberOfCancerGroups]; for (int sexNumber = 0; sexNumber < 2; sexNumber++) { // The age groups ageLabel[lowestPopulationAgeGroup] = "0-"; for (int icdGroup = 0; icdGroup < numberOfCancerGroups; icdGroup++) { if (icdLabel[icdGroup].substring(0 + sexNumber, 1 + sexNumber).equalsIgnoreCase("1")) { // The age groups double previousAgeGroupCases = 0; double previousAgeGroupPopulation = 0; double previousAgeGroupWstdPopulation = 0; double lastAgeGroupCases = 0; double lastAgeGroupPopulation = 0; double lastAgeGroupWstdPopulation = 0; for (int ageGroupNumber = 1; ageGroupNumber < unknownAgeGroupIndex; ageGroupNumber++) { if (ageGroupNumber == 1) { for (int ag = lowestIncidenceAgeGroup; ag < ageGroupNumber; ag++) { previousAgeGroupCases += casesArray[icdGroup][sexNumber][ag]; previousAgeGroupPopulation += populationArray[sexNumber][ag]; previousAgeGroupWstdPopulation += standardPopulationArray[sexNumber][ag]; } } if (foundAgeGroups[ageGroupNumber] && ageGroupNumber < highestPopulationAgeGroup) { casesPerHundredThousand[sexNumber][ageGroupNumber][icdGroup] = 100000 * (casesArray[icdGroup][sexNumber][ageGroupNumber] + previousAgeGroupCases) / (populationArray[sexNumber][ageGroupNumber] + previousAgeGroupPopulation); previousAgeGroupCases = 0; previousAgeGroupPopulation = 0; previousAgeGroupWstdPopulation = 0; } else { previousAgeGroupCases += casesArray[icdGroup][sexNumber][ageGroupNumber]; previousAgeGroupPopulation += populationArray[sexNumber][ageGroupNumber]; previousAgeGroupWstdPopulation += standardPopulationArray[sexNumber][ageGroupNumber]; } } // We calculate the "leftovers" from the last age group if (previousAgeGroupPopulation > 0) { casesPerHundredThousand[sexNumber][highestPopulationAgeGroup][icdGroup] = 100000 * (previousAgeGroupCases) / (previousAgeGroupPopulation); } previousAgeGroupCases = 0; previousAgeGroupPopulation = 0; previousAgeGroupWstdPopulation = 0; } } } // ASR, vASR, MV, MI, DCO for (int sexNumber = 0; sexNumber < numberOfSexes; sexNumber++) { for (int icdGroup = 0; icdGroup < numberOfCancerGroups; icdGroup++) { double previousAgeGroupCases = 0; double previousAgeGroupPopulation = 0; double previousAgeGroupWstdPopulation = 0; double lastAgeGroupCases = 0; double lastAgeGroupPopulation = 0; double lastAgeGroupWstdPopulation = 0; totalCasesPerHundredThousand[sexNumber][icdGroup] += casesArray[icdGroup][sexNumber][0]; for (int ageGroupNumber = 1; ageGroupNumber < unknownAgeGroupIndex; ageGroupNumber++) { if (ageGroupNumber == 1) { for (int ag = lowestIncidenceAgeGroup; ag < ageGroupNumber; ag++) { previousAgeGroupCases += casesArray[icdGroup][sexNumber][ag]; previousAgeGroupPopulation += populationArray[sexNumber][ag]; previousAgeGroupWstdPopulation += standardPopulationArray[sexNumber][ag]; } } if (foundAgeGroups[ageGroupNumber] && ageGroupNumber < highestPopulationAgeGroup && (previousAgeGroupPopulation + populationArray[sexNumber][ageGroupNumber] > 0)) { double asr = calculateASR( (previousAgeGroupCases + casesArray[icdGroup][sexNumber][ageGroupNumber]), (previousAgeGroupPopulation + populationArray[sexNumber][ageGroupNumber]), (previousAgeGroupWstdPopulation + standardPopulationArray[sexNumber][ageGroupNumber])); ASR[sexNumber][icdGroup] += asr; ASRbyAgeGroup[sexNumber][icdGroup][ageGroupNumber] = asr; /* We don't use confidence intervals so this was removed 16.07.07 double varil = calculateVariL((previousAgeGroupCases + casesArray[icdGroup][sex][ ageGroup]), (previousAgeGroupWstdPopulation + wstdPop[ageGroup]), (previousAgeGroupPopulation + populationArray[sex][ageGroup]) ); variL[sex][icdGroup] += varil; variLbyAgeGroup[sex][icdGroup][ageGroup] = varil; */ previousAgeGroupCases = 0; previousAgeGroupPopulation = 0; previousAgeGroupWstdPopulation = 0; } else if (ageGroupNumber < highestPopulationAgeGroup) { previousAgeGroupCases += casesArray[icdGroup][sexNumber][ageGroupNumber]; previousAgeGroupPopulation += populationArray[sexNumber][ageGroupNumber]; previousAgeGroupWstdPopulation += standardPopulationArray[sexNumber][ageGroupNumber]; } else { lastAgeGroupCases += casesArray[icdGroup][sexNumber][ageGroupNumber]; lastAgeGroupPopulation += populationArray[sexNumber][ageGroupNumber]; lastAgeGroupWstdPopulation += standardPopulationArray[sexNumber][ageGroupNumber]; } totalCasesPerHundredThousand[sexNumber][icdGroup] += casesArray[icdGroup][sexNumber][ageGroupNumber]; } // We calculate the "leftovers" from the last age group if (lastAgeGroupPopulation > 0) { double asr = calculateASR(lastAgeGroupCases, lastAgeGroupPopulation, lastAgeGroupWstdPopulation); ASR[sexNumber][icdGroup] += asr; ASRbyAgeGroup[sexNumber][icdGroup][highestPopulationAgeGroup] = asr; /* We don't use confidence intervals so this was removed 16.07.07 double varil = calculateVariL(lastAgeGroupCases, lastAgeGroupWstdPopulation, lastAgeGroupPopulation); variL[sex][icdGroup] += varil; variLbyAgeGroup[sex][icdGroup][highestPopulationAgeGroup] = varil; */ } // and take the unknown age group into account totalCasesPerHundredThousand[sexNumber][icdGroup] += casesArray[icdGroup][sexNumber][unknownAgeGroupIndex]; if (totalCasesPerHundredThousand[sexNumber][icdGroup] > 0) { DCO[sexNumber][icdGroup] = 100 * (int) DCO[sexNumber][icdGroup] / totalCasesPerHundredThousand[sexNumber][icdGroup]; MV[sexNumber][icdGroup] = 100 * (int) MV[sexNumber][icdGroup] / totalCasesPerHundredThousand[sexNumber][icdGroup]; crudeRate[sexNumber][icdGroup] = totalCasesPerHundredThousand[sexNumber][icdGroup] * standardPopulationArray[sexNumber][allAgeGroupsIndex] / (populationArray[sexNumber][allAgeGroupsIndex]); /* We don't use confidence intervals so this was removed 16.07.07 double[] asrlul = calculateASRluL(ASR[sex][icdGroup], variL[sex][icdGroup], wstdPop[allAgeGroupsIndex]); ASRluL[sex][icdGroup][0] = asrlul[0]; ASRluL[sex][icdGroup][1] = asrlul[1]; */ // Cum. Rates if (highestPopulationAgeGroup > 13) { for (int k = 1; k <= 13; k++) { cumRate64[sexNumber][icdGroup] += casesPerHundredThousand[sexNumber][k][icdGroup] * cumPop18[k] / 1000.0; } } if (highestPopulationAgeGroup > 15) { for (int k = 1; k <= 15; k++) { cumRate74[sexNumber][icdGroup] += casesPerHundredThousand[sexNumber][k][icdGroup] * cumPop18[k] / 1000.0; } } // adjust the ASR and cum rates for unknown ages if (ASR[sexNumber][icdGroup] > 0) { double ratio = totalCasesPerHundredThousand[sexNumber][icdGroup] / (totalCasesPerHundredThousand[sexNumber][icdGroup] - casesArray[icdGroup][sexNumber][unknownAgeGroupIndex]); ASR[sexNumber][icdGroup] *= ratio; cumRate64[sexNumber][icdGroup] *= ratio; cumRate74[sexNumber][icdGroup] *= ratio; } /* if (!isSpecialized) { cumRate64[sex][allCancerGroupsIndex] += cumRate64[sex][icdGroup]; cumRate74[sex][allCancerGroupsIndex] += cumRate74[sex][icdGroup]; if (icdGroup!=skinCancerGroupIndex) { cumRate64[sex][allCancerGroupsIndex] += cumRate64[sex][icdGroup]; cumRate74[sex][allCancerGroupsIndex] += cumRate74[sex][icdGroup]; } } */ } } } // Get our matrixes ready ASRf = new char[numberOfSexes][numberOfCancerGroups]; // Adjust the age labels ageLabel[1] = "0-"; ageLabel[highestPopulationAgeGroup] = ageLabel[highestPopulationAgeGroup].substring(0, ageLabel[highestPopulationAgeGroup].length() - 1) + "+"; // Write it out NumberFormat nf = NumberFormat.getInstance(); nf.setMaximumFractionDigits(1); nf.setMinimumFractionDigits(1); // Writing System.out.println(java.util.ResourceBundle .getBundle("canreg/client/analysis/resources/AgeSpecificCasesPerHundredThousandTableBuilder") .getString("WRITING DATA...\\N")); Writer reportFileWriter; if (fileType.equals(FileTypes.csv)) { // write tab separated stuff here // CSVWriter csvOut; CSVPrinter csvOut; for (int sexNumber = 0; sexNumber < numberOfSexes - 1; sexNumber++) { try { String tabReportFileName = ""; try { tabReportFileName = reportFileName + sexLabel[sexNumber] + ".csv"; System.out.println(java.util.ResourceBundle.getBundle( "canreg/client/analysis/resources/AgeSpecificCasesPerHundredThousandTableBuilder") .getString("WRITING TO ") + tabReportFileName); reportFileWriter = new OutputStreamWriter(new FileOutputStream(tabReportFileName), "UTF-8"); } catch (IOException ioe) { System.out.println(java.util.ResourceBundle.getBundle( "canreg/client/analysis/resources/AgeSpecificCasesPerHundredThousandTableBuilder") .getString("ERROR IN REPORTFILE: ") + tabReportFileName); reportFileWriter = new OutputStreamWriter(System.out); } // reportStream = new PrintStream(tabReportFileName); // write the header line LinkedList<String> headers = new LinkedList<String>(); headers.add("SITE"); headers.add("ALL AGES"); headers.add("AGE UNK"); // add age groups for (int age = 1; age <= highestPopulationAgeGroup; age++) { headers.add(ageLabel[age]); } headers.add("CRUDE RATE"); headers.add("(%)"); headers.add("CUM 0-64"); headers.add("CUM 0-74"); headers.add("ASR"); headers.add("ICD (10th)"); // csvOut.writeNext(line.toArray(new String[0])); CSVFormat format = CSVFormat.DEFAULT.withDelimiter(',') .withHeader(headers.toArray(new String[0])); csvOut = new CSVPrinter(reportFileWriter, format); // csvOut.printRecord(headers); LinkedList<String> line = new LinkedList<String>(); // write the data for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sexNumber) == '1') { line.add(icdLabel[j].substring(3)); line.add(formatNumber(totalCasesPerHundredThousand[sexNumber][j], 0)); line.add(formatNumber(casesArray[j][sexNumber][unknownAgeGroupIndex], 0)); for (int age = 1; age <= highestPopulationAgeGroup; age++) { if (casesPerHundredThousand[sexNumber][age][j] > 0) { line.add(formatNumber(casesPerHundredThousand[sexNumber][age][j])); } else { line.add("0.0"); } } line.add(formatNumber(crudeRate[sexNumber][j], 2)); line.add(formatNumber(100 * totalCasesPerHundredThousand[sexNumber][j] / totalCasesPerHundredThousand[sexNumber][allCancerGroupsButSkinIndex])); line.add(formatNumber(cumRate64[sexNumber][j], 2)); line.add(formatNumber(cumRate74[sexNumber][j], 2)); line.add(formatNumber(ASR[sexNumber][j])); line.add(icd10GroupDescriptions[j]); csvOut.printRecord(line); line.clear(); } } csvOut.flush(); csvOut.close(); generatedFiles.add(tabReportFileName); } catch (IOException ex) { Logger.getLogger(AgeSpecificCasesPerHundredThousandTableBuilder.class.getName()) .log(Level.SEVERE, null, ex); } } } // Make PS-file else { for (int sexNumber = 0; sexNumber < numberOfSexes - 1; sexNumber++) { String psFileName = reportFileName + "-" + sexLabel[sexNumber] + ".ps"; generatedFiles.add(psFileName); try { Writer fw = new OutputStreamWriter(new FileOutputStream(psFileName), "UTF-8"); nf.setMaximumFractionDigits(1); nf.setMinimumFractionDigits(1); fw.write("/RLT {rlineto} def\n"); fw.write("/LT {lineto} def\n"); fw.write("/MT {moveto} def\n"); fw.write("/SCF {scalefont} def\n"); fw.write("/SF {setfont} def\n"); fw.write("/SG {setgray} def\n"); fw.write("/FF {findfont} def\n"); fw.write("/SLW {setlinewidth} def\n"); fw.write("/CP {closepath} def\n"); fw.write("/Mainfont\n"); fw.write("/Helvetica-Bold FF " + (int) (tableFontSize * 2 - 3) + " SCF def\n"); fw.write("/Titlefont\n"); fw.write("/Helvetica FF " + tableFontSize + " SCF def\n"); fw.write("/Tablefont\n"); fw.write("/" + font + " FF " + tableFontSize + " SCF def\n"); fw.write("/ASRfont\n"); fw.write("/" + font + "-Bold FF " + tableFontSize + " SCF def\n"); fw.write("/ICDfont\n"); fw.write("/" + font + "-Italic FF " + tableFontSize + " SCF def\n"); fw.write("/ASRitalicsfont\n"); fw.write("/" + font + "-Italic-Bold FF " + tableFontSize + " SCF def\n"); fw.write("/col 735 def\n"); fw.write("/RS {dup stringwidth pop col exch sub 0 rmoveto show} def\n"); fw.write("/CS {dup stringwidth pop 810 exch sub 2 div 0 rmoveto show} def\n"); fw.write("/nstr 1 string def\n"); fw.write("/prtchar {nstr 0 3 -1 roll put nstr show} def\n"); fw.write("newpath\n"); fw.write("90 rotate -20 -570 translate\n"); // Landscape fw.write("Mainfont SF\n"); fw.write("0 535 MT (" + tableHeader + ") CS\n"); fw.write("Titlefont SF\n"); fw.write("0 525 MT (" + populationString + ") CS\n"); fw.write("0 513 MT (" + tableLabel[0] + " - " + sexLabel[sexNumber] + ") CS\n"); // draw the grey frame fw.write("0.85 SG 27 510 translate\n"); fw.write("0 -5 MT 785 -5 LT 785 -27 LT 0 -27 LT CP fill\n"); fw.write("0 -510 translate 0.95 SG\n"); double k = 475; for (int icd = 0; icd < numberOfCancerGroups; icd++) { if ((icd + 1) < numberOfCancerGroups && icdLabel[icd + 1].charAt(sexNumber) == '1') { int lines = (isLineBreak(icd)); if (lines > 0) { k -= 2; fw.write("0 " + (k - 2) + " MT 785 " + (k - 2) + " LT 785 " + (k - 2 - (lines * (tableFontSize))) + " LT 0 " + (k - 2 - (lines * (tableFontSize))) + " LT CP fill\n"); } else if (lines < 0) { k -= 2; } k -= tableFontSize; } } /* for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sex) == '1') { int lines = (isLineBreak(j)); if (lines > 0) { k -= 2; fw.write( "0 " + (k + tableFontSize) + " MT 774 " + (k + tableFontSize) + " LT 774 " + (k - lines * tableFontSize) + " LT 0 " + (k - lines * tableFontSize) + " LT CP fill\n"); } else if (lines > 0) k -= 2; k -= lines * tableFontSize; if (IsLineBreak(j)) { k -= 2; } // draw the grey frames if (j == 8) { fw.write( "0 " + (k + tableFontSize) + " MT 774 " + (k + tableFontSize) + " LT 774 " + (k - 35) + " LT 0 " + (k - 35) + " LT CP fill\n"); } else if (j == 34) { fw.write( "0 " + (k + tableFontSize) + " MT 774 " + (k + tableFontSize) + " LT 774 " + (k - 26) + " LT 0 " + (k - 26) + " LT CP fill\n"); } else if (j == 16 || j == 22 || j == 40) { fw.write( "0 " + (k + tableFontSize) + " MT 774 " + (k + tableFontSize) + " LT 774 " + (k - 18) + " LT 0 " + (k - 18) + " LT CP fill\n"); } else if (j == 27) { fw.write( "0 " + (k + tableFontSize) + " MT 774 " + (k + tableFontSize) + " LT 774 " + (k - 42) + " LT 0 " + (k - 42) + " LT CP fill\n"); } else if (j == 47) { fw.write( "0 " + (k + tableFontSize) + " MT 774 " + (k + tableFontSize) + " LT 774 " + (k - 34) + " LT 0 " + (k - 34) + " LT CP fill\n"); } else if (j == 53) { fw.write( "0 " + (k + tableFontSize) + " MT 774 " + (k + tableFontSize) + " LT 774 " + (k - 12) + " LT 0 " + (k - 12) + " LT CP fill\n"); } k -= (tableFontSize); } } */ fw.write("0 SG\n"); fw.write("ICDfont SF\n"); fw.write(" 740 496 MT (ICD) show\n"); fw.write(" 740 487 MT ((10th)) show\n"); k = 475; for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sexNumber) == '1') { if (isLineBreak(j - 1) != 0) { k -= 2; } if (j == skinCancerGroupIndex || j == ovaryCancerGroupIndex || j == bladderCancerGroupIndex || j == myelodysplasticSyndromesCancerGroupIndex || j == myeloproliferativeDisordersCancerGroupIndex || j == brainAndCentralNervousSystemCancerGroupIndex) { fw.write("ICDfont SF\n"); } else { fw.write("ICDfont SF\n"); } fw.write("745 " + k + " MT (" + icd10GroupDescriptions[j] + ") show\n"); k -= (tableFontSize); } } fw.write("/col col 0 sub def\n"); fw.write("ASRfont SF\n"); fw.write("0 496 MT (ASR) RS\n"); fw.write("0 487 MT ( ) RS\n"); k = 475; for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sexNumber) == '1') { if (isLineBreak(j - 1) != 0) { k -= 2; } if (j == skinCancerGroupIndex || j == ovaryCancerGroupIndex || j == bladderCancerGroupIndex || j == myelodysplasticSyndromesCancerGroupIndex || j == myeloproliferativeDisordersCancerGroupIndex || j == brainAndCentralNervousSystemCancerGroupIndex) { fw.write("ASRitalicsfont SF\n"); } else { fw.write("ASRfont SF\n"); } fw.write("0 " + k + " MT (" + formatNumber(ASR[sexNumber][j]) + ") RS\n"); k -= (tableFontSize); } } fw.write("/col col 20 sub def\n"); fw.write("Tablefont SF\n"); fw.write("0 496 MT (CUM) RS\n"); fw.write("0 487 MT (0-74) RS\n"); k = 475; if (cumRate74[sexNumber][allCancerGroupsIndex] > 0) { for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sexNumber) == '1') { if (isLineBreak(j - 1) != 0) { k -= 2; } if (j == skinCancerGroupIndex || j == ovaryCancerGroupIndex || j == bladderCancerGroupIndex || j == myelodysplasticSyndromesCancerGroupIndex || j == myeloproliferativeDisordersCancerGroupIndex || j == brainAndCentralNervousSystemCancerGroupIndex) { fw.write("ICDfont SF\n"); } else { fw.write("Tablefont SF\n"); } fw.write("0 " + k + " MT (" + formatNumber(cumRate74[sexNumber][j], 2) + ") RS\n"); k -= (tableFontSize); } } } fw.write("/col col 20 sub def\n"); fw.write("Tablefont SF\n"); fw.write("0 496 MT (CUM) RS\n"); fw.write("0 487 MT (0-64) RS\n"); k = 475; for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sexNumber) == '1') { if (isLineBreak(j - 1) != 0) { k -= 2; } if (j == skinCancerGroupIndex || j == ovaryCancerGroupIndex || j == bladderCancerGroupIndex || j == myelodysplasticSyndromesCancerGroupIndex || j == myeloproliferativeDisordersCancerGroupIndex || j == brainAndCentralNervousSystemCancerGroupIndex) { fw.write("ICDfont SF\n"); } else { fw.write("Tablefont SF\n"); } fw.write("0 " + k + " MT (" + formatNumber(cumRate64[sexNumber][j], 2) + ") RS\n"); k -= (tableFontSize); } } /* No MVs shown fw.write("Tablefont SF\n"); fw.write("/col col 20 sub def\n"); fw.write("0 496 MT (MV) RS\n"); fw.write("0 487 MT ((%)) RS\n"); k = 475; for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sex) == '1') { if (isLineBreak(j - 1)!=0) { k -= 2; } if (j==skinCancerGroupIndex || j == ovaryCancerGroupIndex || j == bladderCancerGroupIndex || j == myelodysplasticSyndromesCancerGroupIndex || j == myeloproliferativeDisordersCancerGroupIndex || j == brainAndCentralNervousSystemCancerGroupIndex) { fw.write("ICDfont SF\n"); } else fw.write("Tablefont SF\n"); if (CA[sex][j] >= 0) { fw.write("0 " + k + " MT (" + formatNumber(MV[sex][j]) + ") RS\n"); } else { fw.write("0 " + k + " MT ( -) RS\n"); } k -= (tableFontSize); } } */ fw.write("/col col 20 sub def\n"); fw.write("0 491 MT ((%)) RS\n"); k = 475; for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sexNumber) == '1') { if (isLineBreak(j - 1) != 0) { k -= 2; } if (j == skinCancerGroupIndex || j == ovaryCancerGroupIndex || j == bladderCancerGroupIndex || j == myelodysplasticSyndromesCancerGroupIndex || j == myeloproliferativeDisordersCancerGroupIndex || j == brainAndCentralNervousSystemCancerGroupIndex) { fw.write("ICDfont SF\n"); } else { fw.write("Tablefont SF\n"); } if (j != allCancerGroupsIndex && allCancerGroupsButSkinIndex >= 0) { fw.write("0 " + k + " MT (" + formatNumber(100 * totalCasesPerHundredThousand[sexNumber][j] / totalCasesPerHundredThousand[sexNumber][allCancerGroupsButSkinIndex]) + ") RS\n"); } k -= (tableFontSize); } } fw.write("/col col 20 sub def\n"); fw.write("0 496 MT (CRUDE) RS\n"); fw.write("0 487 MT (RATE) RS\n"); k = 475; for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sexNumber) == '1') { if (isLineBreak(j - 1) != 0) { k -= 2; } if (j == skinCancerGroupIndex || j == ovaryCancerGroupIndex || j == bladderCancerGroupIndex || j == myelodysplasticSyndromesCancerGroupIndex || j == myeloproliferativeDisordersCancerGroupIndex || j == brainAndCentralNervousSystemCancerGroupIndex) { fw.write("ICDfont SF\n"); } else { fw.write("Tablefont SF\n"); } fw.write("0 " + k + " MT (" + formatNumber(crudeRate[sexNumber][j]) + ") RS\n"); k -= (tableFontSize); } } fw.write("/col 119 def\n"); fw.write("0 496 MT (ALL) RS\n"); fw.write("0 487 MT (AGES) RS\n"); k = 475; for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sexNumber) == '1') { if (isLineBreak(j - 1) != 0) { k -= 2; } if (j == skinCancerGroupIndex || j == ovaryCancerGroupIndex || j == bladderCancerGroupIndex || j == myelodysplasticSyndromesCancerGroupIndex || j == myeloproliferativeDisordersCancerGroupIndex || j == brainAndCentralNervousSystemCancerGroupIndex) { fw.write("ICDfont SF\n"); } else { fw.write("Tablefont SF\n"); } fw.write("0 " + k + " MT (" + formatNumber(totalCasesPerHundredThousand[sexNumber][j], 0) + ") RS\n"); k -= (tableFontSize); } } fw.write("/col col 20 add def\n"); fw.write("0 496 MT (AGE) RS\n"); fw.write("0 487 MT (UNK) RS\n"); k = 475; for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sexNumber) == '1') { if (isLineBreak(j - 1) != 0) { k -= 2; } if (j == skinCancerGroupIndex || j == ovaryCancerGroupIndex || j == bladderCancerGroupIndex || j == myelodysplasticSyndromesCancerGroupIndex || j == myeloproliferativeDisordersCancerGroupIndex || j == brainAndCentralNervousSystemCancerGroupIndex) { fw.write("ICDfont SF\n"); } else { fw.write("Tablefont SF\n"); } fw.write("0 " + k + " MT (" + formatNumber(casesArray[j][sexNumber][unknownAgeGroupIndex], 0) + ") RS\n"); k -= (tableFontSize); } } if (highestPopulationAgeGroup == numberOfAgeGroups - 4) { fw.write("/col 145 def\n"); } else if (highestPopulationAgeGroup == numberOfAgeGroups - 5) { fw.write("/col 176 def\n"); } else if (highestPopulationAgeGroup == numberOfAgeGroups - 6) { fw.write("/col 208 def\n"); } else { fw.write("/col 145 def\n"); } for (int age = 1; age <= highestPopulationAgeGroup; age++) { fw.write("/col col 26 add def\n"); fw.write("0 491 MT (" + ageLabel[age] + ") RS\n"); // fw.write("/col col 5 sub def\n"); k = 475; for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sexNumber) == '1') { if (isLineBreak(j - 1) != 0) { k -= 2; } if (j == skinCancerGroupIndex || j == ovaryCancerGroupIndex || j == bladderCancerGroupIndex || j == myelodysplasticSyndromesCancerGroupIndex || j == myeloproliferativeDisordersCancerGroupIndex || j == brainAndCentralNervousSystemCancerGroupIndex) { fw.write("ICDfont SF\n"); } else { fw.write("Tablefont SF\n"); } if (casesPerHundredThousand[sexNumber][age][j] > 0) { fw.write("0 " + k + " MT (" + formatNumber(casesPerHundredThousand[sexNumber][age][j]) + ") RS\n"); } else { fw.write("0 " + k + " MT ( - ) RS\n"); } k -= (tableFontSize); } } } fw.write("3 492 MT ( S I T E) show\n"); k = 475; for (int j = 0; j < numberOfCancerGroups; j++) { if (icdLabel[j].charAt(sexNumber) == '1') { if (isLineBreak(j - 1) != 0) { k -= 2; } if (j == skinCancerGroupIndex || j == ovaryCancerGroupIndex || j == bladderCancerGroupIndex || j == myelodysplasticSyndromesCancerGroupIndex || j == myeloproliferativeDisordersCancerGroupIndex || j == brainAndCentralNervousSystemCancerGroupIndex) { fw.write("ICDfont SF\n"); } else { fw.write("Tablefont SF\n"); } fw.write("3 " + k + " MT (" + icdLabel[j].substring(3) + ") show\n"); k -= (tableFontSize); } } if (showSeeNotesNote) { fw.write("3 0 MT (" + notesString + ") show\n"); } // Write the footer fw.write("0 0 MT (" + footerString + ") CS\n"); fw.write("showpage\n"); System.out.println("Wrote " + psFileName + "."); fw.close(); } catch (IOException ioe) { System.out.println(ioe); } } } if (fileType == FileTypes.pdf) { LinkedList<String> newlyGeneratedFiles = new LinkedList<String>(); for (String fileN : generatedFiles) { PsToPdfConverter pstopdf = new PsToPdfConverter(gspath); newlyGeneratedFiles.add(pstopdf.convert(fileN)); // delete the ps file File file = new File(fileN); file.delete(); } generatedFiles = newlyGeneratedFiles; } System.out.println("Fini!"); return generatedFiles; }
From source file:canreg.client.gui.analysis.FrequenciesByYearInternalFrame.java
@Action public void saveTableAction() { LinkedList<String> filesCreated = new LinkedList<String>(); if (!resultTable.isVisible()) { refresh();// w ww . ja va 2 s . co m } resultScrollPane.setVisible(false); Writer writer = null; try { String fileName = null; String pivotFileName = null; if (chooser == null) { String path = localSettings.getProperty(LocalSettings.TABLES_PATH_KEY); if (path == null) { chooser = new JFileChooser(); } else { chooser = new JFileChooser(path); } } int returnVal = chooser.showSaveDialog(this); if (returnVal == JFileChooser.APPROVE_OPTION) { try { localSettings.setProperty(LocalSettings.TABLES_PATH_KEY, chooser.getSelectedFile().getParentFile().getCanonicalPath()); fileName = chooser.getSelectedFile().getAbsolutePath(); pivotFileName = fileName + "-pivot.csv"; // we force the .csv ending to the file if (!(fileName.endsWith(".csv") || fileName.endsWith(".CSV"))) { fileName += ".csv"; } } catch (IOException ex) { Logger.getLogger(TableBuilderInternalFrame.class.getName()).log(Level.SEVERE, null, ex); } } else { // cancelled return; } writer = new FileWriter(fileName); // CSVWriter csvwriter = new CSVWriter(writer, ','); String[] headers = new String[resultTable.getColumnCount()]; // Write the column names for (int j = 0; j < headers.length; j++) { headers[j] = resultTable.getColumnName(j); } CSVFormat format = CSVFormat.DEFAULT.withDelimiter(',').withHeader(headers); CSVPrinter csvPrinter = new CSVPrinter(writer, format); Object[] nextLine = new String[resultTable.getColumnCount()]; // write the rows for (int i = 0; i < resultTable.getRowCount(); i++) { for (int j = 0; j < nextLine.length; j++) { nextLine[j] = resultTable.getValueAt(i, j).toString(); } csvPrinter.printRecord(nextLine); } csvPrinter.flush(); csvPrinter.close(); // We need 3 columns to work with if (headers.length == 3) { createPivot(pivotFileName); filesCreated.add(pivotFileName); JOptionPane.showMessageDialog(this, "Table written to file: " + fileName + "\nPivot table written to:" + pivotFileName, "OK", JOptionPane.INFORMATION_MESSAGE); } else { JOptionPane.showMessageDialog(this, "Table written to file: " + fileName, "OK", JOptionPane.INFORMATION_MESSAGE); } filesCreated.add(fileName); } catch (IOException ex) { JOptionPane.showMessageDialog(this, "File NOT written.\n" + ex.getLocalizedMessage(), "ERROR", JOptionPane.ERROR_MESSAGE); Logger.getLogger(FrequenciesByYearInternalFrame.class.getName()).log(Level.SEVERE, null, ex); } finally { try { if (writer != null) { writer.close(); } for (String fn : filesCreated) { Tools.openFile(fn); } } catch (IOException ex) { Logger.getLogger(FrequenciesByYearInternalFrame.class.getName()).log(Level.SEVERE, null, ex); } resultScrollPane.setVisible(true); } }
From source file:br.com.hslife.orcamento.service.ImportacaoLancamentoService.java
@Override public void processarArquivoCSVImportado(Arquivo arquivo, Conta conta) throws ApplicationException { try {/*from w ww . ja v a 2 s .c o m*/ // Declarao e leitura dos dados do CSV final Reader reader = new InputStreamReader(new ByteArrayInputStream(arquivo.getDados()), "UTF-8"); final CSVParser parser = new CSVParser(reader, CSVFormat.DEFAULT.withHeader()); // Declarao das variveis LancamentoImportado lancamentoImportado = new LancamentoImportado(); for (CSVRecord record : parser) { int quantidade = Integer.parseInt(record.get("QUANTIDADE")); lancamentoImportado.setConta(conta); lancamentoImportado.setData(new SimpleDateFormat("yyyy-MM-dd").parse(record.get("DATA"))); lancamentoImportado.setHistorico(record.get("HISTORICO")); lancamentoImportado.setValor(Double.parseDouble(record.get("VALOR"))); lancamentoImportado.setMoeda(record.get("MOEDA")); lancamentoImportado.setDocumento(record.get("DOCUMENTO")); lancamentoImportado.setObservacao(record.get("OBSERVACAO")); lancamentoImportado.setCategoria(record.get("CATEGORIA")); lancamentoImportado.setFavorecido(record.get("FAVORECIDO")); lancamentoImportado.setMeiopagamento(record.get("MEIOPAGAMENTO")); lancamentoImportado.setHash(lancamentoImportado.getFullLabel()); // Insere o lanamento importado X vezes de acordo com o campo QUANTIDADE for (int i = 1; i <= quantidade; i++) { getRepository().save(lancamentoImportado.clonarLancamento(i)); } } // Fecha os streams parser.close(); reader.close(); } catch (Exception e) { throw new ApplicationException(e); } }
From source file:frames.MainGUI.java
public void LoadFeeDataToJTable(JTable t, File file) { try {//from w w w .j a va 2s. co m CSVParser parser = CSVParser.parse(file, Charset.forName("UTF-8"), CSVFormat.DEFAULT); //t.setModel(tm); DefaultTableModel model = new DefaultTableModel(); //model.setRowCount(0); for (CSVRecord c : parser) { if (c.getRecordNumber() == 1) { model.addColumn(c.get(datatype.GlobalVariable.TYPE)); model.addColumn(c.get(datatype.GlobalVariable.AMOUNT)); model.addColumn(c.get(datatype.GlobalVariable.PAID_BY)); model.addColumn(c.get(datatype.GlobalVariable.PAYER)); t.setModel(model); model = (DefaultTableModel) t.getModel(); continue; } model.addRow( new Object[] { c.get(datatype.GlobalVariable.TYPE), c.get(datatype.GlobalVariable.AMOUNT), c.get(datatype.GlobalVariable.PAID_BY), c.get(datatype.GlobalVariable.PAYER) }); } } catch (Exception e) { System.out.println(e); } }
From source file:frames.MainGUI.java
public void LoadRentToJtable(JTable t, File file) { try {/*from ww w. j a v a 2s .co m*/ CSVParser parser = CSVParser.parse(file, Charset.forName("UTF-8"), CSVFormat.DEFAULT); //t.setModel(tm); DefaultTableModel model = new DefaultTableModel(); //model.setRowCount(0); for (CSVRecord c : parser) { if (c.getRecordNumber() == 1) { model.addColumn("??"); model.addColumn(""); model.addColumn("?"); model.addColumn("?"); model.addColumn(""); model.addColumn(""); t.setModel(model); model = (DefaultTableModel) t.getModel(); continue; } model.addRow(new Object[] { c.get(0), c.get(1), c.get(2), c.get(3), c.get(4), c.get(5) }); } } catch (Exception e) { System.out.println(e); } }
From source file:io.dockstore.client.cli.nested.AbstractEntryClient.java
private void launchCwl(String entry, final List<String> args) throws ApiException, IOException { boolean isLocalEntry = false; if (args.contains("--local-entry")) { isLocalEntry = true;/*from ww w. j a v a2 s .c o m*/ } final String yamlRun = optVal(args, "--yaml", null); String jsonRun = optVal(args, "--json", null); final String csvRuns = optVal(args, "--tsv", null); if (!(yamlRun != null ^ jsonRun != null ^ csvRuns != null)) { errorMessage("One of --json, --yaml, and --tsv is required", CLIENT_ERROR); } final File tempDir = Files.createTempDir(); File tempCWL; if (!isLocalEntry) { tempCWL = File.createTempFile("temp", ".cwl", tempDir); } else { tempCWL = new File(entry); } if (!isLocalEntry) { final SourceFile cwlFromServer = getDescriptorFromServer(entry, "cwl"); Files.write(cwlFromServer.getContent(), tempCWL, StandardCharsets.UTF_8); downloadDescriptors(entry, "cwl", tempDir); } jsonRun = convertYamlToJson(yamlRun, jsonRun); final Gson gson = io.cwl.avro.CWL.getTypeSafeCWLToolDocument(); if (jsonRun != null) { // if the root document is an array, this indicates multiple runs JsonParser parser = new JsonParser(); final JsonElement parsed = parser .parse(new InputStreamReader(new FileInputStream(jsonRun), StandardCharsets.UTF_8)); if (parsed.isJsonArray()) { final JsonArray asJsonArray = parsed.getAsJsonArray(); for (JsonElement element : asJsonArray) { final String finalString = gson.toJson(element); final File tempJson = File.createTempFile("parameter", ".json", Files.createTempDir()); FileUtils.write(tempJson, finalString, StandardCharsets.UTF_8); final LauncherCWL cwlLauncher = new LauncherCWL(getConfigFile(), tempCWL.getAbsolutePath(), tempJson.getAbsolutePath()); if (this instanceof WorkflowClient) { cwlLauncher.run(Workflow.class); } else { cwlLauncher.run(CommandLineTool.class); } } } else { final LauncherCWL cwlLauncher = new LauncherCWL(getConfigFile(), tempCWL.getAbsolutePath(), jsonRun); if (this instanceof WorkflowClient) { cwlLauncher.run(Workflow.class); } else { cwlLauncher.run(CommandLineTool.class); } } } else if (csvRuns != null) { final File csvData = new File(csvRuns); try (CSVParser parser = CSVParser.parse(csvData, StandardCharsets.UTF_8, CSVFormat.DEFAULT.withDelimiter('\t').withEscape('\\').withQuoteMode(QuoteMode.NONE))) { // grab header final Iterator<CSVRecord> iterator = parser.iterator(); final CSVRecord headers = iterator.next(); // ignore row with type information iterator.next(); // process rows while (iterator.hasNext()) { final CSVRecord csvRecord = iterator.next(); final File tempJson = File.createTempFile("temp", ".json", Files.createTempDir()); StringBuilder buffer = new StringBuilder(); buffer.append("{"); for (int i = 0; i < csvRecord.size(); i++) { buffer.append("\"").append(headers.get(i)).append("\""); buffer.append(":"); // if the type is an array, just pass it through buffer.append(csvRecord.get(i)); if (i < csvRecord.size() - 1) { buffer.append(","); } } buffer.append("}"); // prettify it JsonParser prettyParser = new JsonParser(); JsonObject json = prettyParser.parse(buffer.toString()).getAsJsonObject(); final String finalString = gson.toJson(json); // write it out FileUtils.write(tempJson, finalString, StandardCharsets.UTF_8); // final String stringMapAsString = gson.toJson(stringMap); // Files.write(stringMapAsString, tempJson, StandardCharsets.UTF_8); final LauncherCWL cwlLauncher = new LauncherCWL(this.getConfigFile(), tempCWL.getAbsolutePath(), tempJson.getAbsolutePath()); if (this instanceof WorkflowClient) { cwlLauncher.run(Workflow.class); } else { cwlLauncher.run(CommandLineTool.class); } } } } else { errorMessage("Missing required parameters, one of --json or --tsv is required", CLIENT_ERROR); } }
From source file:it.sayservice.platform.smartplanner.otp.OTPHandler.java
private List<String[]> readCSV(String fileName) { List<String[]> lines = new ArrayList<String[]>(); try {/*ww w . jav a 2 s.c o m*/ FileInputStream fis = new FileInputStream(new File(fileName)); UnicodeReader ur = new UnicodeReader(fis, "UTF-8"); for (CSVRecord record : CSVFormat.DEFAULT.parse(ur)) { String[] line = Iterables.toArray(record, String.class); lines.add(line); } lines.get(0)[0] = lines.get(0)[0].replaceAll(Constants.UTF8_BOM, ""); return lines; } catch (IOException e) { return lines; } }