diff --git a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java index b6c77a5..8df2fc2 100644 --- a/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java +++ b/src/main/java/de/uniluebeck/mi/projmi6/db/DBHandler.java @@ -109,6 +109,17 @@ public class DBHandler { private static final String SELECT_ALL_KASSEN = "SELECT * FROM `kasse`"; private static final String SELECT_KASSE_BY_KASSENID = "SELECT * FROM `kasse` WHERE `kasse`.`KassenID` = ?"; private static final String SELECT_STATHIST_BY_STATION = "SELECT * FROM `stationshistorie` WHERE `stationshistorie`.`Station` = ?"; + private static final String SELECT_STATUBERITEMS_BY_STATION = "SELECT p.id AS patid," + + "concat(p.nachname, ', ', p.vorname) AS patname," + + "p.geburtsdatum AS dob," + + "timestampdiff(YEAR, p.geburtsdatum, curdate()) AS patage," + + "f.aufnahmedatum AS aufnahme," + + "f.entlassungsdatum AS entlassung," + + "f.fallid AS fallid " + + "FROM stationshistorie s " + + "INNER JOIN fall f ON s.fallid = f.fallid " + + "INNER JOIN patient p ON f.patientid = p.id " + + "WHERE s.station = ?"; /** * Gibt alle {@link Patient} aus der DB zurueck. @@ -253,6 +264,34 @@ public class DBHandler { return station; } + public static List getStationsUebersichtsItems(String station) throws SQLException { + PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_STATUBERITEMS_BY_STATION); + statement.setString(1, station); + ResultSet rs = statement.executeQuery(); + + List statUeberItems = new ArrayList<>(); + while (rs.next()) { + statUeberItems.add(getStatUeberItem(rs)); + } + return statUeberItems; + } + + private static StationsUebersichtsItem getStatUeberItem(ResultSet rs) throws SQLException { + StationsUebersichtsItem item = new StationsUebersichtsItem(); + item.setFallId(rs.getInt("fallid")); + item.setPatId(rs.getInt("patid")); + item.setPatName(rs.getString("patname")); + item.setPatAge(rs.getInt("patage")); + item.setPatBirthdate(rs.getDate("dob").toLocalDate()); + if (rs.getDate("aufnahme") != null) { + item.setStationAufnahme(rs.getDate("aufnahme").toLocalDate()); + } + if (rs.getDate("entlassung") != null) { + item.setStationEntlassung(rs.getDate("entlassung").toLocalDate()); + } + return item; + } + public static List getStationsHistorieByStation(String station) throws SQLException { PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_STATHIST_BY_STATION); statement.setString(1, station); @@ -331,7 +370,7 @@ public class DBHandler { /** * Fuehrt {@code INSERT} bei einem neuen Datensatz und {@code UPDATE} bei einem existierenden Datensatz aus. * - * @param fall zu verarbeitender Datensatz. + * @param fall zu verarbeitender Datensatz. * @param mitarbid {@link Mitarbeiter#mitarbID} des aktuellen Benutzers/Mitarbeiters. * @param isUpdate {@code true} wenn der Datensatz bereits existiert, sonst {@code false}. * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. @@ -396,7 +435,8 @@ public class DBHandler { /** * Fuehrt {@code INSERT} eines neuen Datensatz durch. - * @param fall zu verarbeitender Datensatz. + * + * @param fall zu verarbeitender Datensatz. * @param mitarbid {@link Mitarbeiter#mitarbID} des aktuellen Benutzers/Mitarbeiters. * @throws SQLException wenn Fehler bei der SQL Verarbeitung auftreten. */