Im Rahmen der Veranstaltung "CS3330 - Projektpraktikum MedizinischeInformatik" an der Universität zu Lübeck entstandenes Krankenhausinformationssystem (KIS).
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
3.9 KiB

  1. package de.uniluebeck.mi.projmi6.db;
  2. import de.uniluebeck.mi.projmi6.model.Patient;
  3. import de.uniluebeck.mi.projmi6.model.Station;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.sql.Statement;
  8. import java.util.ArrayList;
  9. import java.util.List;
  10. /**
  11. * Created by nils on 15.11.2015.
  12. */
  13. public class DBHandler {
  14. private static final String SELECT_ALL_PATIENTS = "SELECT * FROM `patient`";
  15. private static final String SELECT_PATIENT_BY_ID = "SELECT * FROM `patient` WHERE `id` = ?";
  16. private static final String UPDATE_PATIENT = "UPDATE `patient` SET `CAVE`=?, `Familienstand`=?, " +
  17. "`Geburtsdatum`=?, `Geburtsname`=?, `Geschlecht`=?, `KassenID`=?, `LetzterBearbeiter`=?, `Nachname`=?, " +
  18. "`Ort`=?, `PLZ`=?, `Strasse`=?, `Telefon`=?, `Versichertennummer`=?, `Vorname`=? WHERE `ID`=?";
  19. private static final String SELECT_ALL_STATIONEN = "SELECT * FROM `stammstation`";
  20. public static List<Patient> getAllPatients() throws SQLException {
  21. Statement statement = MySqlConnFactory.getConnection().createStatement();
  22. ResultSet rs = statement.executeQuery(SELECT_ALL_PATIENTS);
  23. List<Patient> patients = new ArrayList<>();
  24. while (rs.next()) {
  25. patients.add(getPatient(rs));
  26. }
  27. return patients;
  28. }
  29. public static Patient getPatient(int id) throws SQLException {
  30. PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(SELECT_PATIENT_BY_ID);
  31. ResultSet rs;
  32. statement.setInt(1, id);
  33. rs = statement.executeQuery();
  34. return getPatient(rs);
  35. }
  36. private static Patient getPatient(ResultSet rs) throws SQLException {
  37. Patient patient = new Patient();
  38. patient.setPatID(rs.getInt("id"));
  39. patient.setGeburtsname(rs.getString("geburtsname"));
  40. patient.setVorname(rs.getString("vorname"));
  41. patient.setNachname(rs.getString("nachname"));
  42. patient.setGeburtsdatum(rs.getDate("geburtsdatum").toLocalDate());
  43. patient.setStrasse(rs.getString("strasse"));
  44. patient.setHausnummer(rs.getString("hausnummer"));
  45. patient.setPlz(rs.getString("plz"));
  46. patient.setTelefon(rs.getString("telefon"));
  47. // patient.setFamilienstand(rs.getString("familienstand")); TODO
  48. // patient.setGeschlecht(Patient.Geschlecht.valueOf(rs.getString("geschlecht"))); TODO
  49. patient.setVersichertennummer(rs.getString("versichertennummer"));
  50. patient.setKassenID(rs.getInt("kassenid"));
  51. patient.setErsteller(rs.getInt("ersteller"));
  52. patient.setErstellDatumZeit(rs.getTimestamp("erstelldatum").toLocalDateTime());
  53. patient.setBearbeiter(rs.getInt("letzterbearbeiter"));
  54. patient.setBearbeitetDatumZeit(rs.getTimestamp("letztesbearbeitungsdatum").toLocalDateTime());
  55. return patient;
  56. }
  57. public static void updatePatient(Patient patient) throws SQLException {
  58. PreparedStatement statement = MySqlConnFactory.getConnection().prepareStatement(UPDATE_PATIENT);
  59. statement.setString(1, patient.getCave());
  60. statement.setString(2, patient.getFamilienstand().toString());
  61. }
  62. public static List<Station> getAllStationen() throws SQLException {
  63. Statement statement = MySqlConnFactory.getConnection().createStatement();
  64. ResultSet rs = statement.executeQuery(SELECT_ALL_STATIONEN);
  65. List<Station> stationen = new ArrayList<>();
  66. while (rs.next()) {
  67. stationen.add(getStation(rs));
  68. }
  69. return stationen;
  70. }
  71. private static Station getStation(ResultSet rs) throws SQLException {
  72. Station station = new Station();
  73. station.setStation(rs.getString("station"));
  74. station.setBezeichnung(rs.getString("bezeichnung"));
  75. station.setBezeichnungLang(rs.getString("bezeichnunglang"));
  76. station.setStationstyp(rs.getInt("stationstyp"));
  77. return station;
  78. }
  79. }