diff --git a/appointment-import/src/main/java/smash/appointment/parse/PrcControlParser.java b/appointment-import/src/main/java/smash/appointment/parse/PrcControlParser.java new file mode 100644 index 0000000000000000000000000000000000000000..44496a88855cb7a68b258a3abfa2828d1d95d01b --- /dev/null +++ b/appointment-import/src/main/java/smash/appointment/parse/PrcControlParser.java @@ -0,0 +1,156 @@ +package smash.appointment.parse; + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; + +public class PrcControlParser extends SubjectParser { + + @Override + protected String parseScreeningNumber(Row row) { + String number = getString(row.getCell(16)); + if (number.isEmpty()) { + return ""; + } else { + return "P-" + number; + } + } + + @Override + protected String parseName(Row row) { + return getString(row.getCell(1)); + } + + @Override + protected String parseSurname(Row row) { + return getString(row.getCell(0)); + } + + @Override + protected String parseNdNumber(Row row) { + return getString(row.getCell(14)); + } + + @Override + protected String getSheetName() { + return "Contrôles"; + } + + @Override + protected int getInitRow() { + return 1; + } + + @Override + protected String parseBirthDate(Row row) { + return ""; + } + + @Override + protected String parsemPowerId(Row row) { + return ""; + } + + @Override + protected String parseAddDate(Row row) { + return getDate(row.getCell(8)); + } + + @Override + protected String parseReferal(Row row) { + return ""; + } + + @Override + protected String parseDiagnosisYear(Row row) { + return ""; + } + + @Override + protected String parseMail(Row row) { + return getString(row.getCell(5)); + } + + @Override + protected String parsePhone3(Row row) { + String phones[] = getPhones(row); + if (phones.length > 2) { + return phones[2].trim(); + } + return ""; + } + + private String[] getPhones(Row row) { + return getString(row.getCell(4)).split("/"); + } + + @Override + protected String parsePhone2(Row row) { + String phones[] = getPhones(row); + if (phones.length > 1) { + return phones[1].trim(); + } + return ""; + } + + @Override + protected String parsePhone1(Row row) { + String phones[] = getPhones(row); + return phones[0].trim(); + } + + @Override + protected String parseCity(Row row) { + String string = getString(row.getCell(3)); + int spaceIndex = string.indexOf(" "); + if (spaceIndex > 0) { + return string.substring(spaceIndex).trim(); + } + return string; + } + + @Override + protected String parseCountry(Row row) { + return ""; + } + + @Override + protected String parseZipCode(Row row) { + String string = getString(row.getCell(3)); + int spaceIndex = string.indexOf(" "); + if (spaceIndex > 0) { + return string.substring(0,spaceIndex); + } + return ""; + } + + @Override + protected String parseAddress(Row row) { + return getString(row.getCell(2)); + } + + @Override + protected String parseRemarks(Row row) { + String remark1 = getString(row.getCell(9)); + String remark2 = ""; + + String result = ""; + if (!remark1.trim().isEmpty()) { + result = result + remark1 + "\n"; + } + if (!remark2.trim().isEmpty()) { + result = result + remark2 + "\n"; + } + return result; + } + + @Override + protected String parseDiagnosis(Row row) { + return ""; + } + + @Override + protected SubjectType parseType(Row row) { + return SubjectType.CONTROL; + } + +} 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 f96a40bf30453af3b343ae423155dd155941ca14..5e27552df3a89f61c0e3ac116c28255b64b04a21 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/PrcFlyingParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/PrcFlyingParser.java @@ -42,14 +42,7 @@ public class PrcFlyingParser extends SubjectParser { @Override protected String parseBirthDate(Row row) { - String date = getString(row.getCell(27)).replaceAll(" ", ""); - if (date.length() < 8) { - return ""; - } - String year = date.substring(0, 4); - String month = date.substring(4, 6); - String day = date.substring(6, 8); - return year + "-" + month + "-" + day; + return parseDateOfBirth(row.getCell(27)); } @Override 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 21a38c19dcc740764b28400b48464502f6512782..7b76573ff58ee9a9ee5237e9e06150ab5f319109 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/PrcSubjectsParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/PrcSubjectsParser.java @@ -37,11 +37,7 @@ public class PrcSubjectsParser extends SubjectParser { @Override protected String parseBirthDate(Row row) { - String date = getString(row.getCell(27)).replaceAll(" ", ""); - String year = date.substring(0, 4); - String month = date.substring(4, 6); - String day = date.substring(6, 8); - return year + "-" + month + "-" + day; + return parseDateOfBirth(row.getCell(27)); } @Override 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 bb69f0bf7d9622cdabff6e98deb031d9205a0c88..d3fe996ccf5ce42c1510aa754bee26c303670612 100644 --- a/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java +++ b/appointment-import/src/main/java/smash/appointment/parse/SubjectParser.java @@ -153,4 +153,16 @@ public abstract class SubjectParser { return result; } + protected String parseDateOfBirth(Cell cell) { + String date = getString(cell).replaceAll(" ", ""); + if (date.length() < 8) { + return ""; + } + String year = date.substring(0, 4); + String month = date.substring(4, 6); + String day = date.substring(6, 8); + String result = year + "-" + month + "-" + day; + return result; + } + } diff --git a/appointment-import/src/test/java/smash/appointment/parse/PrcControlParserTest.java b/appointment-import/src/test/java/smash/appointment/parse/PrcControlParserTest.java new file mode 100644 index 0000000000000000000000000000000000000000..9558de7cbac2412517d9969e30dea5f5617aa457 --- /dev/null +++ b/appointment-import/src/test/java/smash/appointment/parse/PrcControlParserTest.java @@ -0,0 +1,59 @@ +package smash.appointment.parse; + +import static org.junit.Assert.*; + +import java.util.List; + +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.Test; + +public class PrcControlParserTest extends TestBase { + Logger logger = Logger.getLogger(PrcSubjectsParserTest.class); + + PrcControlParser processor = new PrcControlParser(); + + + @AfterClass + public static void tearDownAfterClass() throws Exception { + } + + @Before + public void setUp() { + super.setUp(); + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void test() throws Exception { + List<Subject> entries = processor.processExcel("testFiles/prcControlesExample.xlsx"); + assertTrue(entries.size() > 0); + + Subject subject = entries.get(0); + assertEquals("P-333", subject.getScreeningNumber()); + assertEquals("CCC", subject.getName()); + assertEquals("BBB", subject.getSurname()); + assertTrue(subject.getRemarks().contains("note")); + assertEquals("DDD", subject.getAddress()); + assertEquals("L-2423", subject.getZipCode()); + assertEquals("Luxembourg", subject.getCity()); + assertEquals("", subject.getCountry()); + assertEquals("123", subject.getPhone1()); + assertEquals("456", subject.getPhone2()); + assertEquals("789", subject.getPhone3()); + assertEquals("mail@mail.lu", subject.getMail()); + assertEquals("", subject.getDiagnosisYear()); + assertEquals("", subject.getDiagnosis()); + assertEquals("", subject.getReferal()); + assertEquals("2016-03-29", subject.getAddDate()); + assertEquals("ND3333", subject.getNdNumber()); + assertEquals("", subject.getBirthDate()); + } + + +} diff --git a/appointment-import/testFiles/prcControlesExample.xlsx b/appointment-import/testFiles/prcControlesExample.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2277978b4984e2871171b48d30d06cc32d9ee31e Binary files /dev/null and b/appointment-import/testFiles/prcControlesExample.xlsx differ