*** empty log message ***
[thera-pi.git] / Reha / src / dialoge / InfoDialog.java
blob7b688a82c7379d170eb94049c211af536ba69b30
1 package dialoge;
3 import hauptFenster.Reha;
5 import java.awt.BorderLayout;
6 import java.awt.Color;
7 import java.awt.Dimension;
8 import java.awt.Font;
9 import java.awt.event.KeyEvent;
10 import java.awt.event.KeyListener;
11 import java.awt.event.WindowEvent;
12 import java.awt.event.WindowListener;
13 import java.text.DecimalFormat;
14 import java.util.Vector;
16 import javax.swing.BorderFactory;
17 import javax.swing.ImageIcon;
18 import javax.swing.JButton;
19 import javax.swing.JDialog;
20 import javax.swing.JEditorPane;
21 import javax.swing.JLabel;
22 import javax.swing.JOptionPane;
23 import javax.swing.JScrollPane;
24 import javax.swing.SwingUtilities;
25 import javax.swing.event.HyperlinkEvent;
26 import javax.swing.event.HyperlinkListener;
27 import javax.swing.text.BadLocationException;
28 import javax.swing.text.SimpleAttributeSet;
29 import javax.swing.text.StyleConstants;
31 import org.jdesktop.swingx.JXPanel;
33 import stammDatenTools.RezTools;
34 import systemEinstellungen.SystemConfig;
35 import systemEinstellungen.SystemPreislisten;
36 import utils.DatFunk;
37 import CommonTools.StringTools;
38 import CommonTools.JCompTools;
39 import CommonTools.SqlInfo;
41 import com.jgoodies.forms.layout.CellConstraints;
42 import com.jgoodies.forms.layout.FormLayout;
44 public class InfoDialog extends JDialog implements WindowListener{
45 /**
48 private static final long serialVersionUID = -2903001967749371315L;
49 private JLabel textlab;
50 private JLabel bildlab;
51 private KeyListener kl;
52 Font font = new Font("Arial",Font.PLAIN,12);
54 private String arg1 = null;
55 private String infoArt = null;
56 JEditorPane htmlPane1 = null;
57 JEditorPane htmlPane2 = null;
59 Vector <Vector<String>> vecResult = null;
60 Vector<String> tage = null;
61 Vector<Vector<String>> tageplus = null;
62 boolean historie = false;
63 boolean notfound = false;
64 String endhinweis = "";
65 JScrollPane scr1 = null;
66 JScrollPane scr2 = null;
68 String last12Wo = null;
70 String disziplin = "";
71 int tagebreak = 0;
73 DecimalFormat df = new DecimalFormat( "0.00" );
75 public InfoDialog(String arg1,String infoArt,Vector<Vector<String>> data) {
76 super();
77 setUndecorated(true);
78 setModal(true);
79 this.arg1 = arg1;
80 this.infoArt = infoArt;
81 activateListener();
82 this.setLayout(new BorderLayout());
83 if(this.infoArt.equals("terminInfo")){
84 //this.getContentPane().setLayout(new BorderLayout());
85 //this.add(getTerminInfoContent());
86 this.setContentPane(getTerminInfoContent());
87 }else if(this.infoArt.equals("offenRGAF")){
88 this.setContentPane(getOffeneRechnungenInfoContent(data));
89 }else{
90 this.setContentPane(getContent());
93 this.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
94 this.addKeyListener(kl);
95 //validate();
96 this.getContentPane().validate();
99 public JXPanel getTerminInfoContent(){
100 JXPanel jpan = new JXPanel();
101 jpan.addKeyListener(kl);
102 //jpan.setPreferredSize(new Dimension(400,100));
103 jpan.setBackground(Color.WHITE);
104 jpan.setBorder(BorderFactory.createLineBorder(Color.BLACK));
105 //jpan.setPreferredSize(new Dimension(1000,750));
106 FormLayout lay = new FormLayout("5dlu,p:g,p,p:g,5dlu",
107 "5dlu,p,5dlu,p,p,max(350dlu;p),0dlu,100dlu,5dlu");
108 jpan.setLayout(lay);
109 CellConstraints cc = new CellConstraints();
110 bildlab = new JLabel(" ");
111 bildlab.setIcon(SystemConfig.hmSysIcons.get("tporgklein"));
112 jpan.add(bildlab,cc.xy(3, 2,CellConstraints.FILL,CellConstraints.DEFAULT));
113 htmlPane1 = new JEditorPane(/*initialURL*/);
114 htmlPane1.setContentType("text/html");
115 htmlPane1.setEditable(false);
116 htmlPane1.setOpaque(false);
117 htmlPane1.addKeyListener(kl);
118 //htmlPane1.setPreferredSize(new Dimension(1000,750));
119 //htmlPane.addHyperlinkListener(this);
120 scr1 = JCompTools.getTransparentScrollPane(htmlPane1);
122 scr1.validate();
123 jpan.add(scr1,cc.xywh(2,4,3, 3,CellConstraints.FILL,CellConstraints.FILL));
125 htmlPane2 = new JEditorPane(/*initialURL*/);
126 htmlPane2.setContentType("text/html");
127 htmlPane2.setEditable(false);
128 htmlPane2.setOpaque(false);
129 htmlPane2.addKeyListener(kl);
132 scr2 = JCompTools.getTransparentScrollPane(htmlPane2);
133 scr2.validate();
134 jpan.add(scr2,cc.xyw(2,8,3,CellConstraints.FILL,CellConstraints.FILL));
136 holeTerminInfo();
138 htmlPane1.addHyperlinkListener(new HyperlinkListener() {
139 public void hyperlinkUpdate(HyperlinkEvent e) {
140 if(e.getEventType() == HyperlinkEvent.EventType.ACTIVATED){
141 if( extractFieldName(e.getURL().toString()).equals("weiteretermine") ){
142 System.err.println(e.getURL().toString());
143 htmlPane1.requestFocus();
144 //hier muß der Suchendialog gestartet werden
145 JOptionPane.showMessageDialog(null,"Hier erscheint der Suchendialog");
146 return;
150 private String extractFieldName(String url){
151 String ext = url.substring(7);
152 return ext.replace(".de", "");
156 jpan.validate();
157 return jpan;
160 public JXPanel getOffeneRechnungenInfoContent(Vector<Vector<String>> vdata){
161 JXPanel jpan = new JXPanel();
162 jpan.addKeyListener(kl);
163 //jpan.setPreferredSize(new Dimension(400,100));
164 jpan.setBackground(Color.WHITE);
165 jpan.setBorder(BorderFactory.createLineBorder(Color.BLACK));
167 FormLayout lay = new FormLayout("5dlu,fill:0:grow(0.5),p,fill:0:grow(0.5),5dlu",
168 "5dlu,p,5dlu,p,p,250dlu,5dlu,2dlu,150dlu:g,5dlu");
169 jpan.setLayout(lay);
170 CellConstraints cc = new CellConstraints();
171 bildlab = new JLabel(" ");
172 bildlab.setIcon(SystemConfig.hmSysIcons.get("tporgklein"));
173 jpan.add(bildlab,cc.xy(3, 2));
174 htmlPane1 = new JEditorPane(/*initialURL*/);
175 htmlPane1.setContentType("text/html");
176 htmlPane1.setEditable(false);
177 htmlPane1.setOpaque(false);
178 htmlPane1.addKeyListener(kl);
179 //htmlPane.addHyperlinkListener(this);
180 scr1 = JCompTools.getTransparentScrollPane(htmlPane1);
181 scr1.validate();
182 jpan.add(scr1,cc.xywh(2,4,3, 4));
184 htmlPane2 = new JEditorPane(/*initialURL*/);
185 htmlPane2.setContentType("text/html");
186 htmlPane2.setEditable(false);
187 htmlPane2.setOpaque(false);
188 htmlPane2.addKeyListener(kl);
189 scr2 = JCompTools.getTransparentScrollPane(htmlPane2);
190 scr2.validate();
191 jpan.add(scr2,cc.xywh(2,8,3,2));
193 holeOffeneRechnungen(vdata);
194 scr1.validate();
195 scr2.validate();
196 jpan.revalidate();
197 return jpan;
200 private void activateListener(){
201 kl = new KeyListener(){
202 @Override
203 public void keyTyped(KeyEvent e) {
204 // TODO Auto-generated method stub
208 @Override
209 public void keyPressed(KeyEvent e) {
210 // TODO Auto-generated method stub
214 @Override
215 public void keyReleased(KeyEvent e) {
216 if(e.getKeyCode()==KeyEvent.VK_F1 && (!e.isControlDown()) && (!e.isShiftDown())){
217 dispose();
224 public JXPanel getContent(){
225 JXPanel jpan = new JXPanel();
226 jpan.addKeyListener(kl);
227 jpan.setPreferredSize(new Dimension(400,100));
228 jpan.setBackground(Color.WHITE);
229 jpan.setBorder(BorderFactory.createLineBorder(Color.BLACK));
231 FormLayout lay = new FormLayout("fill:0:grow(0.5),p,fill:0:grow(0.5)",
232 "fill:0:grow(0.25),p,15dlu,p,fill:0:grow(0.75)");
233 jpan.setLayout(lay);
234 CellConstraints cc = new CellConstraints();
235 bildlab = new JLabel(" ");
236 bildlab.setIcon(SystemConfig.hmSysIcons.get("tporgklein"));
237 jpan.add(bildlab,cc.xy(2, 2));
238 textlab = new JLabel(" ");
239 textlab.setFont(font);
240 textlab.setForeground(Color.BLUE);
241 jpan.add(textlab,cc.xy(2, 4,CellConstraints.CENTER,CellConstraints.CENTER));
242 jpan.validate();
243 int tagebeginn = 0;
244 int tagebreak = 0;
245 return jpan;
248 public void setzeLabel(String labelText){
249 textlab.setText(labelText);
250 textlab.getParent().validate();
251 try {
252 Thread.sleep(50);
253 } catch (InterruptedException e) {
254 e.printStackTrace();
257 @Override
258 public void windowOpened(WindowEvent e) {
260 @Override
261 public void windowClosing(WindowEvent e) {
263 @Override
264 public void windowClosed(WindowEvent e) {
266 @Override
267 public void windowIconified(WindowEvent e) {
269 @Override
270 public void windowDeiconified(WindowEvent e) {
272 @Override
273 public void windowActivated(WindowEvent e) {
275 @Override
276 public void windowDeactivated(WindowEvent e) {
279 private void holeTerminInfo(){
280 //vecResult = SqlInfo.holeFelder("select lastdate,termine from verordn where rez_nr = '"+macheNummer(this.arg1)+"' LIMIT 1");
281 vecResult = SqlInfo.holeFelder("select t1.lastdate,t1.termine,t2.n_name,t2.v_name,t1.kuerzel1,t1.anzahl1,t1.kuerzel2,t1.anzahl2,t1.kuerzel3,t1.anzahl3,t1.kuerzel4,t1.anzahl4,ktraeger,rezeptart,zzstatus,preisgruppe,rez_datum,arztbericht,berid from verordn as t1 join pat5 as t2 on(t2.pat_intern = t1.pat_intern) where t1.rez_nr = '"+macheNummer(this.arg1)+"' LIMIT 1");
282 if(vecResult.size()<=0){
283 this.historie=true;
284 vecResult = SqlInfo.holeFelder("select t1.lastdate,t1.termine,t2.n_name,t2.v_name,t1.kuerzel1,t1.anzahl1,t1.kuerzel2,t1.anzahl2,t1.kuerzel3,t1.anzahl3,t1.kuerzel4,t1.anzahl4,ktraeger,rezeptart,zzstatus,preisgruppe,rez_datum,arztbericht,berid from lza as t1 join pat5 as t2 on(t2.pat_intern = t1.pat_intern) where t1.rez_nr = '"+macheNummer(this.arg1)+"' LIMIT 1");
285 if(vecResult.size() > 0){
286 JOptionPane.showMessageDialog(null,"Dieses Rezept ist bereits in der Historie - also abgerechnet!"+"\nRezeptnummer: "+this.arg1);
287 }else{
288 JOptionPane.showMessageDialog(null,"Dieses Rezept ist weder im aktuellen Rezeptstamm noch in der Historie - also gelöscht!"+"\nRezeptnummer: "+this.arg1);
290 SwingUtilities.invokeLater(new Runnable(){
291 public void run(){
292 dispose();
295 return;
298 try{
299 //int frist = (Integer)((Vector<?>)SystemPreislisten.hmFristen.get(disziplin).get((erstebehandlung ? 0 : 2))).get(preisgruppe);
300 disziplin = StringTools.getDisziplin(this.arg1);
302 tagebreak = (Integer)((Vector<?>)SystemPreislisten.hmFristen.get(disziplin).get(2)).get(Integer.parseInt(vecResult.get(0).get(15))-1 );
304 }catch(Exception ex){
305 tagebreak = 28;
306 ex.printStackTrace();
309 fuelleHTML();
312 private void fuelleHTML(){
313 try{
314 String shtml = ladehead()+
315 getMittelTeil()+
316 ladeend();
317 htmlPane1.setText(shtml);
318 scr1.revalidate();
319 htmlPane1.validate();
320 SwingUtilities.invokeLater(new Runnable(){
321 public void run(){
322 if(scr1.isVisible()){
323 scr1.getVerticalScrollBar().setValue(0);
324 //scr1.getViewport().scrollRectToVisible(new Rectangle(0,0));
328 /**************/
329 shtml = ladehead()+
330 getErgebnisTeil();
331 ladeend();
332 htmlPane2.setText(shtml);
333 scr2.revalidate();
334 htmlPane2.validate();
335 SwingUtilities.invokeLater(new Runnable(){
336 public void run(){
337 if(scr2.isVisible()){
338 scr2.getVerticalScrollBar().setValue(0);
339 //scr1.getViewport().scrollRectToVisible(new Rectangle(0,0));
346 }catch(Exception ex){
347 ex.printStackTrace();
350 public static String macheNummer(String string){
351 if(string.indexOf("\\") >= 0){
352 return string.substring(0,string.indexOf("\\"));
354 return string;
356 /***************************************************/
357 public String getErgebnisTeil(){
358 StringBuffer ergebnis = new StringBuffer();
359 if(tage.size() == Integer.parseInt(vecResult.get(0).get(5))){
360 ergebnis.append("<span "+getSpanStyle("12","#ff0000")+"<b>Das Rezept ist voll</b></span>\n");
361 }else if(tage.size() > 0 && tage.size() < Integer.parseInt(vecResult.get(0).get(5))){
362 String slastdate = DatFunk.sDatPlusTage(tage.get(tage.size()-1), tagebreak);
363 String lastdate = DatFunk.WochenTag(slastdate)+" "+slastdate;
364 long diff = 0;
365 if( (diff = DatFunk.TageDifferenz(slastdate, DatFunk.sHeute())) > 0 ){
366 ergebnis.append("<span "+getSpanStyle("14","#ff0000")+"<b>"+lastdate+"</b></span><br>"+"<span "+getSpanStyle("10","")+"Maximale Unterbrechung verpasst "+lastdate+"!! ("+Integer.toString(tagebreak)+" Tage)</span>\n");
367 }else{
368 ergebnis.append("<span "+getSpanStyle("14","#008000")+"<b>"+lastdate+"</b></span><br>"+"<span "+getSpanStyle("10","")+"nächster Termin spätestens am " +lastdate+" ("+Integer.toString(tagebreak)+" Tage)</span>\n");
371 }else if(tage.size() == 0){
372 long diff = 0;
373 if((diff = DatFunk.TageDifferenz(DatFunk.sDatInDeutsch(vecResult.get(0).get(0)), DatFunk.sHeute())) > 0){
374 ergebnis.append("<span "+getSpanStyle("14","#ff0000")+"<b>"+DatFunk.sDatInDeutsch(vecResult.get(0).get(0))+"</b></span><br>"+"<span "+getSpanStyle("10","")+"Achtung Behandlungsbeginn heute überschreitet<br>den spätestesn Behandlungsbeginn<br>um "+Long.toString(diff)+" Tage!!</span>\n");
375 }else{
376 ergebnis.append("<span "+getSpanStyle("14","#008000")+"<b>"+DatFunk.sDatInDeutsch(vecResult.get(0).get(0))+"</b></span><br>"+"<span "+getSpanStyle("10","")+"Behandlung noch nicht begonnen stand heute<br>spätester Behandlungsbeginn<br>in "+Long.toString(diff)+" Tage(n)!!</span>\n");
379 //jetzt den Saich mit der 12-Wochenfrist für ADR
380 if(vecResult.get(0).get(13).equals("2") && tage.size() > 0){
381 String lastdate = DatFunk.sDatPlusTage(tage.get(0), (12*7)-1);
382 long diff = DatFunk.TageDifferenz(lastdate, DatFunk.sHeute());
383 if(diff > 0){
384 ergebnis.append("<span "+getSpanStyle("14","#ff0000")+"<br><br><b>"+DatFunk.WochenTag(lastdate)+" "+lastdate+" VO-AdR</b></span><br>"+"<span "+getSpanStyle("10","")+"letzter Behandlungstermin spätestens am "+lastdate+" (12 Wochenfrist)</span>\n");
385 }else{
386 ergebnis.append("<span "+getSpanStyle("14","#008000")+"<br><br><b>"+DatFunk.WochenTag(lastdate)+" "+lastdate+" VO-AdR</b></span><br>"+"<span "+getSpanStyle("10","")+"letzter Behandlungstermin spätestens am "+lastdate+" (12 Wochenfrist)</span>\n");
388 }else if(!vecResult.get(0).get(13).equals("2") && Integer.parseInt(vecResult.get(0).get(5)) >= 10){
389 String lastdate = DatFunk.sDatPlusTage(tage.get(0), (12*7)-1);
390 long diff = DatFunk.TageDifferenz(lastdate, DatFunk.sHeute());
391 if(diff > 0){
392 ergebnis.append("<span "+getSpanStyle("14","#ff0000")+"<br><br><b>"+DatFunk.WochenTag(lastdate)+" "+lastdate+"</b></span><br>"+"<span "+getSpanStyle("10","")+"letzter Behandlungstermin spätestens am "+lastdate+" (12 Wochenfrist)</span>\n");
393 }else{
394 ergebnis.append("<span "+getSpanStyle("14","#008000")+"<br><br><b>"+DatFunk.WochenTag(lastdate)+" "+lastdate+"</b></span><br>"+"<span "+getSpanStyle("10","")+"letzter Behandlungstermin spätestens am "+lastdate+" (12 Wochenfrist)</span>\n");
401 return ergebnis.toString();
403 /***************************************************/
404 public String getMittelTeil(){
405 StringBuffer mitte = new StringBuffer();
406 boolean zuzahl = (vecResult.get(0).get(14).equals("0") ? false : true);
407 tage = RezTools.holeEinzelTermineAusRezept("",vecResult.get(0).get(1)) ;
408 tageplus = RezTools.holeTermineUndBehandlerAusRezept("", vecResult.get(0).get(1));
409 Object[] otest = {null,null};
410 /**********************/
411 if(tageplus.size()/*tage.size()*/ > 0){
412 last12Wo = DatFunk.sDatPlusTage(tageplus.get(0).get(0)/*tage.get(0)*/, (12*7)-1);
413 }else{
414 last12Wo = DatFunk.sDatPlusTage(DatFunk.sDatInDeutsch(vecResult.get(0).get(0)), (12*7)-1);
417 //System.out.println("12 Wochenfrist läuft ab am "+last12Wo);
418 /*********************/
420 mitte.append("<span "+getSpanStyle("12","")+StringTools.EGross(vecResult.get(0).get(2))+", "+StringTools.EGross(vecResult.get(0).get(3))+"<br>Rezeptnummer: "+this.arg1+
421 "<br>"+StringTools.EGross(vecResult.get(0).get(12))+"</span>"+"<br><br>\n");
422 mitte.append("<span "+getSpanStyle("10","")+getPositionen()+"</span>"+"<br><br>\n");
424 if(!zuzahl){
425 mitte.append("<span "+getSpanStyle("10","")+"Rezeptgebühr: </span><span "+getSpanStyle("10","#008000")+ "<b>nicht erforderlich oder befreit</b>"+"</span>"+"<br>\n");
426 }else{
427 if(vecResult.get(0).get(14).equals("1")){
428 mitte.append("<span "+getSpanStyle("10","")+"Rezeptgebühr: </span><span "+getSpanStyle("10","#008000")+ "<b>bezahlt</b>"+"</span>"+"<br>\n");
429 }else if(vecResult.get(0).get(14).equals("2")){
430 mitte.append("<span "+getSpanStyle("10","")+"Rezeptgebühr: </span><span "+getSpanStyle("10","#ff0000")+ "<b>nicht bezahlt</b>"+"</span>"+"<br>\n");
434 if(vecResult.get(0).get(17).equals("T")){
435 if(vecResult.get(0).get(18).equals("") || vecResult.get(0).get(18).equals("-1") || vecResult.get(0).get(18).equals("0") ){
436 mitte.append("<span "+getSpanStyle("10","")+"Arztbericht: </span><span "+getSpanStyle("10","#ff0000")+ "<b>noch nicht erstellt</b>"+"</span>"+"<br>\n");
437 }else{
438 mitte.append("<span "+getSpanStyle("10","")+"Arztbericht: </span><span "+getSpanStyle("10","#008000")+ "<b>bereits angelegt</b>"+"</span>"+"<br>\n");
441 mitte.append("<span "+getSpanStyle("10","")+"Bislang durchgeführt: <b>"+Integer.toString(tageplus.size()/*tage.size()*/)+" von "+vecResult.get(0).get(5)+"</b></span>"+"<br>\n");
442 mitte.append("<span "+getSpanStyle("10","")+"Rezeptdatum: <b>"+DatFunk.sDatInDeutsch(vecResult.get(0).get(16))+"</b></span>"+"<br>\n");
443 mitte.append("<span "+getSpanStyle("10","")+"Spätester Behandlungsbeginn: <b>"+DatFunk.sDatInDeutsch(vecResult.get(0).get(0))+"</b></span>"+"<br><br>\n");
445 int pghmr = Integer.parseInt(vecResult.get(0).get(15));
446 String disziplin = StringTools.getDisziplin(this.arg1);
448 if(SystemPreislisten.hmHMRAbrechnung.get(disziplin).get(pghmr-1) < 1){
449 mitte.append("<span "+getSpanStyle("14","#ff0000")+"<b>Keine HMR-Prüfung erforderlich</b>"+"</span>"+"<br><br>\n");
451 mitte.append("<table width='100%'>\n");
452 /***********************************************************************************/
453 long diff = 0;
454 long diff1 = 0;
456 for(int i = 0; i < tageplus.size()/*tage.size()*/;i++){
457 mitte.append("<tr>\n");
458 mitte.append("<td class='itemkleinodd'>"+Integer.toString(i+1)+"</td>\n");
459 mitte.append("<td class='itemkleinodd' align=\"center\">"+tageplus.get(i).get(0)/*tage.get(i)*/+"</td>\n");
461 if(i==0){
462 //zuerst testen ob vor dem Rezeptdatum begonnen wurde
463 if( (diff1=DatFunk.TageDifferenz(DatFunk.sDatInDeutsch(vecResult.get(0).get(16)), tageplus.get(i).get(0)/*tage.get(i)*/)) < 0){
464 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/nichtok.gif"+"'>"+" < Rezeptdatum<br>"+Long.toString(diff1)+" Tage"+"</td>\n");
465 mitte.append("<td>&nbsp;</td>\n");
466 //mitte.append("<td><img src='file:///"+Reha.proghome+"icons/nichtok.gif"+"'>"+"</td>\n");
467 //mitte.append("<td>"+" < Rezeptdatum<br>"+Long.toString(diff1)+" Tage"+"</td>\n");
468 }else{
469 if( (diff = DatFunk.TageDifferenz(DatFunk.sDatInDeutsch(vecResult.get(0).get(0)), tageplus.get(i).get(0)/*tage.get(i)*/)) > 0){
470 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/nichtok.gif"+"'>"+" > "+Long.toString(diff)+" Tage"+"</td>\n");
471 //mitte.append("<td><img src='file:///"+Reha.proghome+"icons/nichtok.gif"+"'>"+"</td>\n");
472 //mitte.append("<td> > "+Long.toString(diff)+" Tage</td>\n");
473 otest = Wochen12Test(last12Wo,tageplus.get(i).get(0)/*tage.get(i)*/);
474 if( ((Boolean)otest[0]) == (Boolean) true){
475 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/nichtok.gif"+"'>"+/*otest[1].toString()*/""+" 12 Wo."+"</td>\n");
476 }else{
477 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/ok.gif"+"'>"+/*otest[1].toString()*/""+" 12 Wo."+"</td>\n");
478 //mitte.append("<td><img src='file:///"+Reha.proghome+"icons/ok.gif"+"'>"+"</td>\n");
479 //mitte.append("<td>"+" 12 Wo."+"</td>\n");
481 }else{
482 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/ok.gif"+"'>"+" <= "+Long.toString(diff)+" Tage"+"</td>\n");
483 otest = Wochen12Test(last12Wo,tageplus.get(i).get(0)/*tage.get(i)*/);
484 if( ((Boolean)otest[0]) == (Boolean) true){
485 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/nichtok.gif"+"'>"+/*otest[1].toString()*/""+" 12 Wo."+"</td>\n");
486 //mitte.append("<td><img src='file:///"+Reha.proghome+"icons/nichtok.gif"+"'>"+"</td>\n");
487 //mitte.append("<td>"+" 12 Wo."+"</td>\n");
488 }else{
489 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/ok.gif"+"'>"+/*otest[1].toString()*/""+" 12 Wo."+"</td>\n");
490 //mitte.append("<td><img src='file:///"+Reha.proghome+"icons/ok.gif"+"'>"+"</td>\n");
491 //mitte.append("<td>"+" 12 Wo."+"</td>\n");
495 mitte.append("<td>"+tageplus.get(i).get(1)+"</td>\n");
496 }else if(i > 0 ){
497 if( (diff = DatFunk.TageDifferenz(tageplus.get(i-1).get(0)/*tage.get(i-1)*/,tageplus.get(i).get(0)/*tage.get(i)*/)) > tagebreak){
498 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/nichtok.gif"+"'>"+" > "+Long.toString(diff)+" Tage"+"</td>\n");
499 otest = Wochen12Test(last12Wo,tageplus.get(i).get(0)/*tage.get(i)*/);
500 if( ((Boolean)otest[0]) == (Boolean) true){
501 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/nichtok.gif"+"'>"+/*otest[1].toString()*/""+" 12 Wo."+"</td>\n");
502 }else{
503 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/ok.gif"+"'>"+/*otest[1].toString()*/""+" 12 Wo."+"</td>\n");
506 }else{
507 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/ok.gif"+"'>"+" <= "+Long.toString(diff)+" Tage"+"</td>\n");
508 otest = Wochen12Test(last12Wo,tageplus.get(i).get(0)/*tage.get(i)*/);
509 if( ((Boolean)otest[0]) == (Boolean) true){
510 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/nichtok.gif"+"'>"+/*otest[1].toString()*/""+" 12 Wo."+"</td>\n");
511 }else{
512 mitte.append("<td><img src='file:///"+Reha.proghome+"icons/ok.gif"+"'>"+/*otest[1].toString()*/""+" 12 Wo."+"</td>\n");
516 mitte.append("<td style='white-space: nowrap;'>"+tageplus.get(i).get(1)+"</td>\n");
517 //mitte.append("<td style='white-space: nowrap;'>&nbsp;</td>\n");
520 mitte.append("</tr>\n");
522 /***********************************************************************************/
523 mitte.append("<tr><td>&nbsp;</td>\n");
524 mitte.append("<td align=\"center\">"+makeLink("fragezeichen.png","weiteretermine")+"</td></tr>");
525 mitte.append("</table>\n");
527 mitte.append("<br>");
528 mitte.append("<form action='http://fakeurl.com:1'><input type='submit' value=' Folgetermine ? ' /></form>");
530 // mitte.append("<object classid=\"javax.swing.JButton\" label=\" Folgetermine ?\"></object>");
532 return mitte.toString();
534 /***************************************************/
535 private String makeLink(String ico, String url){
536 String linktext = "<img src='file:///"+Reha.proghome+"icons/"+ico+"' border=0>";
537 linktext = "<a href=\"http://"+url+".de\">"+linktext+"</a>\n";
538 return linktext;
541 private Object[] Tage28Test(String datumalt,String datumneu){
542 Object[] oret = {null,null};
543 long wert = 0;
544 return oret;
546 private Object[] Wochen12Test(String datumalt,String datumneu){
547 Object[] oret = {null,null};
548 long wert = 0;
549 wert = DatFunk.TageDifferenz(datumalt,datumneu);
550 oret[1] = (int) Integer.parseInt( Long.toString(wert-1) );
551 if( wert > 0){
552 oret[0] = (Boolean) true;
553 }else{
554 oret[0] = (Boolean) false;
556 return (Object[])oret.clone();
558 private String getPositionen(){
559 StringBuffer positionen = new StringBuffer();
560 positionen.append( (!vecResult.get(0).get(4).equals("") ? vecResult.get(0).get(5)+" x "+vecResult.get(0).get(4) : "")+
561 (!vecResult.get(0).get(6).equals("") ? ", "+vecResult.get(0).get(7)+" x "+vecResult.get(0).get(6) : "")+
562 (!vecResult.get(0).get(8).equals("") ? ", "+vecResult.get(0).get(9)+" x "+vecResult.get(0).get(8) : "")+
563 (!vecResult.get(0).get(10).equals("") ? ", "+vecResult.get(0).get(11)+" x "+vecResult.get(0).get(10) : "") );
565 return positionen.toString();
567 private String getSpanStyle(String pix,String color){
568 return "style='font-family: Arial, Helvetica, sans-serif; font-size: "+pix+"px;"+(color.length()>0 ? "color: "+color+";" : "")+ " '>";
570 final StringBuffer bufhead = new StringBuffer();
571 final StringBuffer bufend = new StringBuffer();
572 public String ladehead(){
573 bufhead.append("<html>\n<head>\n");
574 bufhead.append("<STYLE TYPE=\"text/css\">\n");
575 bufhead.append("<!--\n");
576 bufhead.append("A{text-decoration:none;background-color:transparent;border:none}\n");
577 bufhead.append("A.even{text-decoration:underline;color: #000000; background-color:transparent;border:none}\n");
578 bufhead.append("A.odd{text-decoration:underline;color: #FFFFFF;background-color:transparent;border:none}\n");
579 bufhead.append("TD{font-family: Arial; font-size: 12pt; vertical-align: top;white-space: nowrap;}\n");
580 bufhead.append("TD.inhalt {font-family: Arial, Helvetica, sans-serif; font-size: 20px;background-color: #7356AC;color: #FFFFFF;}\n");
581 bufhead.append("TD.inhaltinfo {font-family: Arial, Helvetica, sans-serif; font-size: 20px;background-color: #DACFE7; color: #1E0F87;}\n");
582 bufhead.append("TD.headline1 {font-family: Arial, Helvetica, sans-serif; font-size: 14px; background-color: #EADFF7; color: #000000;}\n");
583 bufhead.append("TD.headline2 {font-family: Arial, Helvetica, sans-serif; font-size: 14px; background-color: #DACFE7; color: #000000;}\n");
584 bufhead.append("TD.headline3 {font-family: Arial, Helvetica, sans-serif; font-size: 14px; background-color: #7356AC; color: #FFFFFF;}\n");
585 bufhead.append("TD.headline4 {font-family: Arial, Helvetica, sans-serif; font-size: 14px; background-color: #1E0F87; color: #FFFFFF;}\n");
586 bufhead.append("TD.itemeven {font-family: Arial, Helvetica, sans-serif; font-size: 14px; background-color: #E6E6E6; color: #000000;}\n");
587 bufhead.append("TD.itemodd {font-family: Arial, Helvetica, sans-serif; font-size: 14px; background-color: #737373; color: #F0F0F0;}\n");
588 bufhead.append("TD.itemkleineven {font-family: Arial, Helvetica, sans-serif; font-size: 9px; background-color: #E6E6E6; color: #000000;}\n");
589 bufhead.append("TD.itemkleinodd {font-family: Arial, Helvetica, sans-serif; font-size: 9px; background-color: #737373; color: #F0F0F0;}\n");
590 bufhead.append("TD.header {font-family: Arial, Helvetica, sans-serif; font-size: 14px; background-color: #1E0F87; color: #FFFFFF;}\n");
591 bufhead.append("UL {font-family: Arial, Helvetica, sans-serif; font-size: 9px;}\n");
592 bufhead.append("UL.paeb { margin-top: 0px; margin-bottom: 0px; }\n");
593 bufhead.append("H1 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: #1E0F87; color: #FFFFFF;}\n");
594 bufhead.append("--->\n");
595 bufhead.append("</STYLE>\n");
596 bufhead.append("</head>\n");
597 bufhead.append("<body>\n");
598 //bufhead.append("<div style=margin-left:30px;>");
599 //bufhead.append("<font face=\"Tahoma\"><style=margin-left=30px;>");
600 return bufhead.toString();
605 public String ladeend(){
606 bufend.append("</body>\n</html>\n");
607 return bufend.toString();
610 /***************************************************/
611 public void holeOffeneRechnungen(Vector<Vector<String>> data){
612 String complete = ladehead();
613 StringBuffer bdata = new StringBuffer();
614 bdata.append("<span "+getSpanStyle("14","")+"Offene RGR-/AFR-Rechnungen</span><br>\n");
615 bdata.append("<table width='100%'>\n");
616 Double gesamt = 0.00;
617 //String stmt = "select t1.rdatum,t1.rnr,t1.roffen,t1.pat_intern from rgaffaktura as t1 join pat5 as t2 on (t1.pat_intern=t2.pat_intern) where t1.roffen > '0' and t1.pat_intern = '"+xpatint+"' order by t1.rdatum";
618 for( int i = 0; i < data.size();i++){
619 bdata.append("<tr>\n");
620 bdata.append("<td>"+Integer.toString(i+1)+".</td>\n");
621 bdata.append("<td>\n");
622 bdata.append(DatFunk.sDatInDeutsch(data.get(i).get(0)));
623 bdata.append("</td>\n");
624 bdata.append("<td>\n");
625 bdata.append(data.get(i).get(1));
626 bdata.append("</td>\n");
627 bdata.append("<td>\n");
628 bdata.append(data.get(i).get(2).replace(".", ",")+" EUR");
629 bdata.append("</td>\n");
630 bdata.append("</tr>\n");
631 gesamt = gesamt+Double.parseDouble(data.get(i).get(2));
633 bdata.append("<tr>\n");
634 bdata.append("<td>\n");
635 bdata.append("&nbsp;");
636 bdata.append("</td>\n");
637 bdata.append("<td>\n");
638 bdata.append("<b>Summe</b>");
639 bdata.append("</td>\n");
640 bdata.append("<td>\n");
641 bdata.append("&nbsp;");
642 bdata.append("</td>\n");
643 bdata.append("<td>\n");
644 bdata.append("<b>"+df.format( gesamt)+"</b> EUR");
645 bdata.append("</td>\n");
646 bdata.append("</tr>\n");
648 bdata.append("</table>\n");
649 complete = complete+bdata.toString()+ladeend();
650 htmlPane1.setText(complete);
652 bdata.setLength(0);
653 bdata.trimToSize();
654 complete = "";
655 complete = ladehead();
656 bdata.append("<span "+getSpanStyle("14","")+"Merkmale für diesen Patient</span><br>\n");
657 int durchlauf = 0;
658 for(int i = 62; i > 56;i--){
659 if(Reha.thisClass.patpanel.patDaten.get(i).equals("T")){
661 vPatMerker.add(inif.getStringProperty("Kriterien", "Krit"+i));
662 String simg = inif.getStringProperty("Kriterien", "Image"+i);
663 if(simg.equals("")){
664 vPatMerkerIcon.add(null);
665 }else{
666 vPatMerkerIcon.add(new ImageIcon(Reha.proghome+"icons/"+simg));
668 if(SystemConfig.vPatMerkerIconFile.get(durchlauf) != null){
669 bdata.append("<img src='file:///"+SystemConfig.vPatMerkerIconFile.get(durchlauf)+"'>&nbsp;&nbsp;");
672 bdata.append("<span "+getSpanStyle("12","#FF0000")+SystemConfig.vPatMerker.get(durchlauf)+"</span><br>\n");
676 durchlauf++;
678 complete = complete+bdata.toString()+ladeend();
679 htmlPane2.setText(complete);