// --- GET ------------------------------------------------------------------------------------- public static ExtraInsurarInvoice get(String uid) { ExtraInsurarInvoice insurarInvoice = new ExtraInsurarInvoice(); if (uid != null && uid.length() > 0) { String[] ids = uid.split("\\."); if (ids.length == 2) { PreparedStatement ps = null; ResultSet rs = null; String sSelect = "SELECT * FROM OC_EXTRAINSURARINVOICES WHERE OC_INSURARINVOICE_SERVERID = ? AND OC_INSURARINVOICE_OBJECTID = ?"; Connection oc_conn = MedwanQuery.getInstance().getOpenclinicConnection(); try { ps = oc_conn.prepareStatement(sSelect); ps.setInt(1, Integer.parseInt(ids[0])); ps.setInt(2, Integer.parseInt(ids[1])); rs = ps.executeQuery(); if (rs.next()) { insurarInvoice.setUid(uid); insurarInvoice.setDate(rs.getTimestamp("OC_INSURARINVOICE_DATE")); insurarInvoice.setInvoiceUid(rs.getInt("OC_INSURARINVOICE_ID") + ""); insurarInvoice.setInsurarUid(rs.getString("OC_INSURARINVOICE_INSURARUID")); insurarInvoice.setCreateDateTime(rs.getTimestamp("OC_INSURARINVOICE_CREATETIME")); insurarInvoice.setUpdateDateTime(rs.getTimestamp("OC_INSURARINVOICE_UPDATETIME")); insurarInvoice.setUpdateUser(rs.getString("OC_INSURARINVOICE_UPDATEUID")); insurarInvoice.setVersion(rs.getInt("OC_INSURARINVOICE_VERSION")); insurarInvoice.setBalance(rs.getDouble("OC_INSURARINVOICE_BALANCE")); insurarInvoice.setStatus(rs.getString("OC_INSURARINVOICE_STATUS")); } rs.close(); ps.close(); insurarInvoice.debets = Debet.getFullExtraInsurarDebetsViaInvoiceUid(insurarInvoice.getUid()); insurarInvoice.credits = InsurarCredit.getInsurarCreditsViaInvoiceUID(insurarInvoice.getUid()); } catch (Exception e) { Debug.println("OpenClinic => InsurarInvoice.java => get => " + e.getMessage()); e.printStackTrace(); } finally { try { if (rs != null) rs.close(); if (ps != null) ps.close(); oc_conn.close(); } catch (Exception e) { e.printStackTrace(); } } } } return insurarInvoice; }
// --- GET DEBETS FOR INVOICE ------------------------------------------------------------------ public static Vector getDebetsForInvoiceSortByDate(String sInvoiceUid) { PreparedStatement ps = null; ResultSet rs = null; SortedMap sortedDebets = new TreeMap(); Vector debets = new Vector(); String sSelect = ""; Connection oc_conn = MedwanQuery.getInstance().getOpenclinicConnection(); try { sSelect = "SELECT a.lastname, a.firstname, d.*,e.*,c.*" + " FROM OC_DEBETS d, OC_EXTRAINSURARINVOICES i, OC_ENCOUNTERS e, AdminView a, OC_PRESTATIONS c" + " WHERE d.OC_DEBET_EXTRAINSURARINVOICEUID = ?" + " AND i.OC_INSURARINVOICE_OBJECTID = replace(d.OC_DEBET_EXTRAINSURARINVOICEUID,'" + MedwanQuery.getInstance().getConfigString("serverId") + ".','')" + " AND e.OC_ENCOUNTER_OBJECTID = replace(d.OC_DEBET_ENCOUNTERUID,'" + MedwanQuery.getInstance().getConfigString("serverId") + ".','')" + " AND c.OC_PRESTATION_OBJECTID = replace(d.OC_DEBET_PRESTATIONUID,'" + MedwanQuery.getInstance().getConfigString("serverId") + ".','')" + " AND e.OC_ENCOUNTER_PATIENTUID = a.personid" + " ORDER BY OC_DEBET_DATE,lastname,firstname,OC_DEBET_PATIENTINVOICEUID"; ps = oc_conn.prepareStatement(sSelect); ps.setString(1, sInvoiceUid); rs = ps.executeQuery(); Debet debet; while (rs.next()) { debet = new Debet(); debet.setUid(rs.getInt("OC_DEBET_SERVERID") + "." + rs.getInt("OC_DEBET_OBJECTID")); debet.setDate(rs.getTimestamp("OC_DEBET_DATE")); debet.setAmount(rs.getDouble("OC_DEBET_AMOUNT")); debet.setInsurarAmount(rs.getDouble("OC_DEBET_INSURARAMOUNT")); debet.setInsuranceUid(rs.getString("OC_DEBET_INSURANCEUID")); debet.setPrestationUid(rs.getString("OC_DEBET_PRESTATIONUID")); debet.setEncounterUid(rs.getString("OC_DEBET_ENCOUNTERUID")); debet.setSupplierUid(rs.getString("OC_DEBET_SUPPLIERUID")); debet.setPatientInvoiceUid(rs.getString("OC_DEBET_PATIENTINVOICEUID")); debet.setInsurarInvoiceUid(rs.getString("OC_DEBET_INSURARINVOICEUID")); debet.setComment(rs.getString("OC_DEBET_COMMENT")); debet.setCredited(rs.getInt("OC_DEBET_CREDITED")); debet.setQuantity(rs.getInt("OC_DEBET_QUANTITY")); debet.setExtraInsurarAmount(rs.getDouble("OC_DEBET_EXTRAINSURARAMOUNT")); debet.setExtraInsurarInvoiceUid(rs.getString("OC_DEBET_EXTRAINSURARINVOICEUID")); debet.setExtraInsurarUid(rs.getString("OC_DEBET_EXTRAINSURARUID")); debet.setServiceUid(rs.getString("OC_DEBET_SERVICEUID")); debet.setPatientName(rs.getString("lastname") + ", " + rs.getString("firstname")); // ********************* // add Encounter object // ********************* Encounter encounter = new Encounter(); encounter.setPatientUID(ScreenHelper.checkString(rs.getString("OC_ENCOUNTER_PATIENTUID"))); encounter.setDestinationUID( ScreenHelper.checkString(rs.getString("OC_ENCOUNTER_DESTINATIONUID"))); encounter.setUid( ScreenHelper.checkString(rs.getString("OC_ENCOUNTER_SERVERID")) + "." + ScreenHelper.checkString(rs.getString("OC_ENCOUNTER_OBJECTID"))); encounter.setCreateDateTime(rs.getTimestamp("OC_ENCOUNTER_CREATETIME")); encounter.setUpdateDateTime(rs.getTimestamp("OC_ENCOUNTER_UPDATETIME")); encounter.setUpdateUser(ScreenHelper.checkString(rs.getString("OC_ENCOUNTER_UPDATEUID"))); encounter.setVersion(rs.getInt("OC_ENCOUNTER_VERSION")); encounter.setBegin(rs.getTimestamp("OC_ENCOUNTER_BEGINDATE")); encounter.setEnd(rs.getTimestamp("OC_ENCOUNTER_ENDDATE")); encounter.setType(ScreenHelper.checkString(rs.getString("OC_ENCOUNTER_TYPE"))); encounter.setOutcome(ScreenHelper.checkString(rs.getString("OC_ENCOUNTER_OUTCOME"))); encounter.setOrigin(ScreenHelper.checkString(rs.getString("OC_ENCOUNTER_ORIGIN"))); encounter.setSituation(ScreenHelper.checkString(rs.getString("OC_ENCOUNTER_SITUATION"))); encounter.setCategories(ScreenHelper.checkString(rs.getString("OC_ENCOUNTER_CATEGORIES"))); // Now find the most recent service for this encounter Encounter.EncounterService encounterService = encounter.getLastEncounterService(); if (encounterService != null) { encounter.setServiceUID(encounterService.serviceUID); encounter.setManagerUID(encounterService.managerUID); encounter.setBedUID(encounterService.bedUID); } debet.setEncounter(encounter); // ********************* // add Prestation object // ********************* Prestation prestation = new Prestation(); prestation.setUid( rs.getString("OC_PRESTATION_SERVERID") + "." + rs.getString("OC_PRESTATION_OBJECTID")); prestation.setCode(rs.getString("OC_PRESTATION_CODE")); prestation.setDescription(rs.getString("OC_PRESTATION_DESCRIPTION")); prestation.setPrice(rs.getDouble("OC_PRESTATION_PRICE")); prestation.setCategories(rs.getString("OC_PRESTATION_CATEGORIES")); ObjectReference or = new ObjectReference(); or.setObjectType(rs.getString("OC_PRESTATION_REFTYPE")); or.setObjectUid(rs.getString("OC_PRESTATION_REFUID")); prestation.setReferenceObject(or); prestation.setCreateDateTime(rs.getTimestamp("OC_PRESTATION_CREATETIME")); prestation.setUpdateDateTime(rs.getTimestamp("OC_PRESTATION_UPDATETIME")); prestation.setUpdateUser(rs.getString("OC_PRESTATION_UPDATEUID")); prestation.setVersion(rs.getInt("OC_PRESTATION_VERSION")); prestation.setType(rs.getString("OC_PRESTATION_TYPE")); debet.setPrestation(prestation); sortedDebets.put( new SimpleDateFormat("yyyyMMdd").format(debet.getDate()) + "." + debet.getPatientName() + "." + debet.getPatientInvoiceUid() + "." + debet.getUid(), debet); } } catch (Exception e) { e.printStackTrace(); Debug.println( "OpenClinic => InsurarInvoice.java => getInsurarInvoicesWhereDifferentStatus => " + e.getMessage() + " = " + sSelect); } finally { try { if (rs != null) rs.close(); if (ps != null) ps.close(); oc_conn.close(); } catch (Exception e) { e.printStackTrace(); } } Iterator iDebets = sortedDebets.keySet().iterator(); while (iDebets.hasNext()) { debets.add(sortedDebets.get(iDebets.next())); } return debets; }