Skip to content
Snippets Groups Projects
LihControlParser.java 4.5 KiB
Newer Older
Piotr Gawron's avatar
Piotr Gawron committed
package smash.appointment.parse;

Piotr Gawron's avatar
Piotr Gawron committed
import java.text.SimpleDateFormat;
Piotr Gawron's avatar
Piotr Gawron committed
import java.util.ArrayList;
Piotr Gawron's avatar
Piotr Gawron committed
import java.util.Calendar;
Piotr Gawron's avatar
Piotr Gawron committed
import java.util.List;

import org.apache.poi.ss.usermodel.Row;

public class LihControlParser extends SubjectParser {

	@Override
	protected String parseScreeningNumber(Row row) {
		String number = getString(row.getCell(0));
		if (number.trim().isEmpty()) {
			return "";
		} else {
			return "L-" + number;
		}
	}

	@Override
	protected String parseName(Row row) {
		return getString(row.getCell(2));
	}

	@Override
	protected String parseSurname(Row row) {
		return getString(row.getCell(1));
	}

	@Override
	protected String parseNdNumber(Row row) {
		return "";
	}

	@Override
	protected String getSheetName() {
		return "Screening log";
	}

	@Override
	protected int getInitRow() {
		return 1;
	}

	@Override
	protected String parseBirthDate(Row row) {
Piotr Gawron's avatar
Piotr Gawron committed
		return getDate(row.getCell(5), null);
Piotr Gawron's avatar
Piotr Gawron committed
	}

	@Override
	protected String parsemPowerId(Row row) {
		return "";
	}

Piotr Gawron's avatar
Piotr Gawron committed
	private static final SimpleDateFormat	DATE_FORMATTER = new SimpleDateFormat("yyyy-MM-dd");

Piotr Gawron's avatar
Piotr Gawron committed
	@Override
	protected String parseAddDate(Row row) {
Piotr Gawron's avatar
Piotr Gawron committed
		return DATE_FORMATTER.format(Calendar.getInstance().getTime());
Piotr Gawron's avatar
Piotr Gawron committed
	}

	@Override
	protected String parseReferal(Row row) {
		return "";
	}

	@Override
	protected String parseDiagnosisYear(Row row) {
		return "";
	}

	@Override
	protected String parseMail(Row row) {
		return getString(row.getCell(8));
	}

	@Override
	protected String parsePhone3(Row row) {
		return "";
	}

	@Override
	protected String parsePhone2(Row row) {
		return getString(row.getCell(7));
	}

	@Override
	protected String parsePhone1(Row row) {
		return getString(row.getCell(6));
	}

	@Override
	protected String parseCity(Row row) {
		return getString(row.getCell(12));

	}

	@Override
	protected String parseCountry(Row row) {
		return "";
	}

	@Override
	protected String parseZipCode(Row row) {
		return getString(row.getCell(11));
	}

	@Override
	protected String parseAddress(Row row) {
		return getString(row.getCell(9)) + ", " + getString(row.getCell(10));
	}

	@Override
	protected String parseRemarks(Row row) {
		List<String> remarks = new ArrayList<>();
		String info = getString(row.getCell(4));
		if (!info.trim().isEmpty()) {
			remarks.add("PD family relation=" + info);
		}
		remarks.add(getString(row.getCell(13)));
		remarks.add(getComments(row.getCell(14)));
		remarks.add(getComments(row.getCell(15)));
		remarks.add(getComments(row.getCell(16)));
		remarks.add(getString(row.getCell(18)));
		remarks.add(getString(row.getCell(19)));
		String result = "";
		for (String string : remarks) {
			if (!string.trim().isEmpty()) {
				result += string.trim() + "\n";
			}
		}
		return result;
	}

	@Override
	protected String parseDiagnosis(Row row) {
		return "";
	}

	@Override
	protected SubjectType parseType(Row row) {
		return SubjectType.CONTROL;
	}

	@Override
	protected List<String> parseLanguages(Row row) {
		List<String> result = new ArrayList<>();

		String languages = getString(row.getCell(3));
		String langAbbreviations[] = new String[] {};
		if (languages.indexOf(",") >= 0) {
			langAbbreviations = languages.split(",");
		} else if (languages.indexOf("+") >= 0) {
Piotr Gawron's avatar
Piotr Gawron committed
			langAbbreviations = languages.split("\\+");
Piotr Gawron's avatar
Piotr Gawron committed
		} else {
			langAbbreviations = languages.split("/");
		}
		for (String string : langAbbreviations) {
			if (!string.trim().isEmpty()) {
				result.add(getMappedLanguage(string.trim()));
			}
		}
		return result;
	}

	protected String getMappedLanguage(String abbreviation) {
Piotr Gawron's avatar
Piotr Gawron committed
		switch (abbreviation.toUpperCase()) {
			case ("F"):
				return "French";
			case ("D"):
				return "German";
			case ("A"):
				return "German";
			case ("E"):
				return "Spanish";
			case ("ALL"):
				return "German";
Piotr Gawron's avatar
Piotr Gawron committed
			case ("GB"):
				return "English";
			case ("P"):
				return "Portuguese";
			case ("PT"):
				return "Portuguese";
Piotr Gawron's avatar
Piotr Gawron committed
			case ("ENG"):
				return "English";
			case ("EN"):
				return "English";
			case ("FR"):
				return "French";
			case ("L"):
				return "Luxembourgish";
			case ("LUX"):
				return "Luxembourgish";
Piotr Gawron's avatar
Piotr Gawron committed
		}
		logger.warn("Unknown language abbreviation: " + abbreviation);
		return "";
	}

	@Override
	protected String parseToBeSeenAt(Row row) {
		return "L";
	}

	@Override
	protected boolean parseDead(Row row) {
		return false;
	}

	@Override
	protected boolean parseResigned(Row row) {
		return false;
	}
Piotr Gawron's avatar
Piotr Gawron committed
}