diff --git a/appointment-import/src/main/java/smash/appointment/parse/LihControlMappingParser.java b/appointment-import/src/main/java/smash/appointment/parse/LihControlMappingParser.java index 5de0db6480013f0c235c0290a9a57083471f607b..f599d8d1b25b422b628275720fd4c00ce62eb42d 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/LihControlMappingParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/LihControlMappingParser.java @@ -138,4 +138,9 @@ public class LihControlMappingParser extends SubjectParser { return new ArrayList<>(); } + @Override + protected String parseToBeSeenAt(Row row) { + return "L"; + } + } diff --git a/appointment-import/src/main/java/smash/appointment/parse/LihControlParser.java b/appointment-import/src/main/java/smash/appointment/parse/LihControlParser.java index 968e38858dea760853c442fc7016d2d1ae1d238c..003cd9bfc75c6752666556a702c384daaeb48855 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/LihControlParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/LihControlParser.java @@ -186,4 +186,9 @@ public class LihControlParser extends SubjectParser { return ""; } + @Override + protected String parseToBeSeenAt(Row row) { + return "L"; + } + } diff --git a/appointment-import/src/main/java/smash/appointment/parse/Main.java b/appointment-import/src/main/java/smash/appointment/parse/Main.java index 5c6f94cb29ca670739a31f431efb9e6e0cde03b5..ab43800c01a62fdc10ed64dc7a307bbd98eaadfb 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/Main.java +++ b/appointment-import/src/main/java/smash/appointment/parse/Main.java @@ -1,6 +1,5 @@ package smash.appointment.parse; -import java.io.IOException; import java.util.List; import org.apache.commons.cli.CommandLine; @@ -11,8 +10,6 @@ import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; import org.apache.log4j.Logger; -import org.apache.poi.EncryptedDocumentException; -import org.apache.poi.openxml4j.exceptions.InvalidFormatException; public class Main { private static Logger logger = Logger.getLogger(Main.class); @@ -57,21 +54,29 @@ public class Main { String lihMappingControlsFile = line.getOptionValue("lih-mapping"); for (Subject subject : processLihMappingControls(lihMappingControlsFile)) { - subjectDao.addSubject(subject, "[" + lihMappingControlsFile + ";" + subject.getScreeningNumber() + ";" + subject.getName() + " " + subject.getSurname() + "]"); + subjectDao.addSubject( + subject, "[" + lihMappingControlsFile + ";" + subject.getScreeningNumber() + ";" + subject.getName() + " " + subject.getSurname() + "]"); } String lihControlsFile = line.getOptionValue("lih-controls"); for (Subject subject : processLihControls(lihControlsFile)) { - subjectDao.addSubject(subject, "[" + lihControlsFile + ";" + subject.getScreeningNumber() + ";" + subject.getName() + " " + subject.getSurname() + "]"); + subjectDao + .addSubject(subject, "[" + lihControlsFile + ";" + subject.getScreeningNumber() + ";" + subject.getName() + " " + subject.getSurname() + "]"); } - logger.debug("SUBJECTS: "); + String agendaFile = line.getOptionValue("agenda"); + appointmentDao.addAppointments(processPrcAppointments(agendaFile)); + + SubjectSqlExporter subjectSqlExporter = new SubjectSqlExporter(); + // logger.debug("SUBJECTS: "); for (Subject subject : subjectDao.getSubjects()) { - logger.debug(subject); + System.out.println(subjectSqlExporter.toSql(subject)); } - String agendaFile = line.getOptionValue("agenda"); - appointmentDao.addAppointments(processPrcAppointments(agendaFile)); + // logger.debug("APPOINTMENTS: "); + for (AppointmentEntry appointmentEntry : appointmentDao.getAppointments()) { + logger.debug(appointmentEntry); + } } catch (ParseException exp) { System.out.println(exp.getMessage()); @@ -80,12 +85,12 @@ public class Main { } } - private List<Subject> processLihMappingControls(String lihMappingControlsFile) throws Exception{ + private List<Subject> processLihMappingControls(String lihMappingControlsFile) throws Exception { LihControlMappingParser parser = new LihControlMappingParser(); return parser.processExcel(lihMappingControlsFile); } - private List<Subject> processLihControls(String lihControlsFile) throws Exception{ + private List<Subject> processLihControls(String lihControlsFile) throws Exception { LihControlParser parser = new LihControlParser(); return parser.processExcel(lihControlsFile); } @@ -105,10 +110,6 @@ public class Main { processor.setSubjectDao(subjectDao); List<AppointmentEntry> entries = processor.processExcel(agendaFile); - logger.debug("APPOINTMENTS: "); - for (AppointmentEntry appointmentEntry : entries) { - logger.debug(appointmentEntry); - } return entries; } diff --git a/appointment-import/src/main/java/smash/appointment/parse/PrcControlParser.java b/appointment-import/src/main/java/smash/appointment/parse/PrcControlParser.java index dbf0dc8c6a4e779c5e276577142d7efabed1e117..239671cab64c6ab61bf467732fb3f20c33bdbf76 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/PrcControlParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/PrcControlParser.java @@ -161,4 +161,9 @@ public class PrcControlParser extends SubjectParser { return new ArrayList<>(); } + @Override + protected String parseToBeSeenAt(Row row) { + return "P"; + } + } diff --git a/appointment-import/src/main/java/smash/appointment/parse/PrcFlyingParser.java b/appointment-import/src/main/java/smash/appointment/parse/PrcFlyingParser.java index ff69003ab5130798a0e8db139fd95e292d800a1b..07453ca9312b478f3435badb453b5663f2afd67f 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/PrcFlyingParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/PrcFlyingParser.java @@ -143,11 +143,21 @@ public class PrcFlyingParser extends SubjectParser { @Override protected SubjectType parseType(Row row) { - return null; + String name = (parseName(row) + " " + parseSurname(row)).toLowerCase(); + if (name.indexOf("(c)") >= 0 || name.indexOf("©") >= 0) { + return SubjectType.CONTROL; + } else { + return SubjectType.SUBJECT; + } } + @Override protected List<String> parseLanguages(Row row) { return new ArrayList<>(); } + @Override + protected String parseToBeSeenAt(Row row) { + return "P"; + } } diff --git a/appointment-import/src/main/java/smash/appointment/parse/PrcSubjectsParser.java b/appointment-import/src/main/java/smash/appointment/parse/PrcSubjectsParser.java index c2aea1029b8417688b77fee8b1b59c881c48253b..86dd98108967c32d71086c22c599b7d2f6705aec 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/PrcSubjectsParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/PrcSubjectsParser.java @@ -138,4 +138,8 @@ public class PrcSubjectsParser extends SubjectParser { return new ArrayList<>(); } + @Override + protected String parseToBeSeenAt(Row row) { + return "P"; + } } diff --git a/appointment-import/src/main/java/smash/appointment/parse/Subject.java b/appointment-import/src/main/java/smash/appointment/parse/Subject.java index 1cfb624d8fe55bca518fce1af6aac06617659afe..9853a5cd3a3f658933f905078c248c85ed462f99 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/Subject.java +++ b/appointment-import/src/main/java/smash/appointment/parse/Subject.java @@ -12,7 +12,7 @@ public class Subject { private String surname; private String ndNumber; private String screeningNumber; - private String sex; + private String sex = ""; private String remarks; private String birthDate; private String address; @@ -29,6 +29,7 @@ public class Subject { private String addDate; private String mPowerId; private SubjectType type; + private String toBeSeenAt; private List<String> languages = new ArrayList<>(); @@ -446,6 +447,10 @@ public class Subject { setAddDate(getMergedValue("addDate", this.getAddDate(), subject.getAddDate(), errorPrefix)); setmPowerId(getMergedValue("mPowerId", this.getmPowerId(), subject.getmPowerId(), errorPrefix)); setType(getMergedValue("type", this.getType(), subject.getType(), errorPrefix)); + // override only when to be seen by flying team + if (subject.getToBeSeenAt().equals("F")) { + setToBeSeenAt(subject.getToBeSeenAt()); + } } private SubjectType getMergedValue(String string, SubjectType existingValue, SubjectType newValue, String errorPrefix) { @@ -474,4 +479,21 @@ public class Subject { } } + /** + * @return the toBeSeenAt + * @see #toBeSeenAt + */ + public String getToBeSeenAt() { + return toBeSeenAt; + } + + /** + * @param toBeSeenAt + * the toBeSeenAt to set + * @see #toBeSeenAt + */ + public void setToBeSeenAt(String toBeSeenAt) { + this.toBeSeenAt = toBeSeenAt; + } + } diff --git a/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java b/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java index 3d5652f69b68a5e3f17ec32d5d999de40ea6ae96..0f38fdde3e129f2cf8b55c594ec3f3f6bf7b7458 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java @@ -87,10 +87,13 @@ public abstract class SubjectParser { result.setBirthDate(parseBirthDate(row)); result.setType(parseType(row)); result.setLanguages(parseLanguages(row)); + result.setToBeSeenAt(parseToBeSeenAt(row)); return result; } + protected abstract String parseToBeSeenAt(Row row); + protected abstract List<String> parseLanguages(Row row); protected abstract SubjectType parseType(Row row); diff --git a/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java b/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java new file mode 100644 index 0000000000000000000000000000000000000000..d753eb60e2bba12abaac84cee6232e6c40fc104f --- /dev/null +++ b/appointment-import/src/main/java/smash/appointment/parse/SubjectSqlExporter.java @@ -0,0 +1,67 @@ +package smash.appointment.parse; + +public class SubjectSqlExporter { + + public String toSql(Subject subject) { + StringBuilder result = new StringBuilder(""); + + result.append("insert into web_subject ("); + result.append("sex, "); + result.append("last_name, "); + result.append("first_name, "); + result.append("comments,"); + result.append("address,"); + result.append("postal_code, "); + result.append("city, "); + result.append("country, "); + result.append("phone_number,"); + result.append("phone_number_2,"); + result.append("phone_number_3,"); + result.append("email,"); + result.append("year_of_diagnosis,"); + result.append("diagnosis,"); + result.append("referral,"); + result.append("date_added,"); + result.append("nd_number,"); + result.append("mpower_id,"); + result.append("screening_number,"); + result.append("status,"); + result.append("date_born) "); + + result.append("values ("); + result.append(getStringVal(subject.getSex()) + ","); + result.append(getStringVal(subject.getSurname()) + ","); + result.append(getStringVal(subject.getName()) + ","); + result.append(getStringVal(subject.getRemarks()) + ","); + result.append(getStringVal(subject.getAddress()) + ","); + result.append(getStringVal(subject.getZipCode()) + ","); + result.append(getStringVal(subject.getCity()) + ","); + result.append(getStringVal(subject.getCountry()) + ","); + result.append(getStringVal(subject.getPhone1()) + ","); + result.append(getStringVal(subject.getPhone2()) + ","); + result.append(getStringVal(subject.getPhone3()) + ","); + result.append(getStringVal(subject.getMail()) + ","); + result.append(getStringVal(subject.getDiagnosisYear()) + ","); + result.append(getStringVal(subject.getDiagnosis()) + ","); + result.append(getStringVal(subject.getReferal()) + ","); + result.append(getStringVal(subject.getAddDate()) + ","); + result.append(getStringVal(subject.getNdNumber()) + ","); + result.append(getStringVal(subject.getmPowerId()) + ","); + result.append(getStringVal(subject.getScreeningNumber()) + ","); + result.append("'',"); + result.append(getStringVal(subject.getBirthDate())); + result.append(");"); + + return result.toString(); + } + + private String getStringVal(String arg) { + if (arg == null) { + return "null"; + } else if (arg.isEmpty()) { + return "''"; + } else { + return "'" + arg + "'"; + } + } +}