/* * Created on 2004-okt-10 * * To change the template for this generated file go to * Window - Preferences - Java - Code Generation - Code and Comments */ package se.idega.idegaweb.ehealth.presentation; import java.util.ArrayList; import java.util.Iterator; import javax.faces.component.UIComponent; import se.idega.util.PIDChecker; import com.idega.business.IBOLookup; import com.idega.presentation.IWContext; import com.idega.presentation.Image; import com.idega.presentation.Layer; import com.idega.presentation.Page; import com.idega.presentation.Script; import com.idega.presentation.Table; import com.idega.presentation.text.Break; import com.idega.presentation.text.Text; import com.idega.presentation.ui.DateInput; import com.idega.presentation.ui.DropdownMenu; import com.idega.presentation.ui.Form; import com.idega.presentation.ui.GenericButton; import com.idega.user.business.UserBusiness; import com.idega.user.data.User; import com.idega.util.Age; import com.idega.util.IWTimestamp; /** * @author Malin * * To change the template for this generated type comment go to * Window - Preferences - Java - Code Generation - Code and Comments */ public class JournalTexts extends EHealthBlock { private String prefix = "patient_"; private String prmForm = prefix + "form_visit"; private String prmCareUnit = prefix + "care_unit"; private String prmCareGiver = prefix + "care_giver"; private String prmDateContact = prefix + "date_care_contact"; private String prmAppointType = prefix + "appoint_type"; private String prmPrint = prefix + "print"; private String prmHealthCentre = prefix + "healthcentre"; private String prmFrom = prefix + "from"; private String prmTo = prefix + "to"; private String prmSearch = prefix + "search"; //private String prmLoglist = prefix + "loglist"; private String keyOpenNewWindow = prefix + "open_in_new_window"; private String keyFrom = prefix + "from"; private String keyTo = prefix + "to"; private String keyText1U1 = prefix + "jt1U1"; private String keyText2U1 = prefix + "jt2U1"; private String keyText3U1 = prefix + "jt3U1"; private String keyText4U1 = prefix + "jt4U1"; private String keyText5U1 = prefix + "jt5U1"; private String keyText1U2 = prefix + "jt1U2"; private String keyText2U2 = prefix + "jt2U2"; private String keyText3U2 = prefix + "jt3U2"; private String keyText4U2 = prefix + "jt4U2"; private String keyText5U2 = prefix + "jt5U2"; private int userID = -1; private User user; IWContext _iwc = null; Age age = null; private boolean showOpenButton = true; public void main(IWContext iwc) throws Exception { _iwc = iwc; userID = iwc.getUserId(); if (userID > 0) { user = ((UserBusiness) IBOLookup.getServiceInstance(iwc, UserBusiness.class)).getUser(userID); } if (user != null && user.getDateOfBirth() != null) age = new Age(user.getDateOfBirth()); else if (user != null && user.getPersonalID() != null) age = new Age(PIDChecker.getInstance().getDateFromPersonalID(user.getPersonalID())); add(getAppointmentHistoryForm()); } public UIComponent getAppointmentHistoryForm(){ Form myForm = new Form(); myForm.setName(prmForm); Table T = new Table(1, 4); T.setCellpadding(0); T.setCellspacing(0); T.setBorder(0); T.setBorderColor("#000000"); T.setVerticalAlignment(1, 3, Table.VERTICAL_ALIGN_TOP); T.setVerticalAlignment(1, 4, Table.VERTICAL_ALIGN_BOTTOM); T.add(getSearchSortTable(), 1, 1); T.add(getHeadingTable(), 1, 2); T.add(getInfoLayer(), 1, 3); T.add(getTableButtons(), 1, 4); T.add(new Break(), 1, 1); T.add(new Break(), 1, 3); T.setHeight(1, 3, "235"); T.setHeight(1, 4, "40"); myForm.add(T); Page pVisit = this.getParentPage(); if (pVisit != null) { Script S = pVisit.getAssociatedScript(); pVisit.setOnLoad("setRowColor(document.getElementById('lay1_1'));"); S.addFunction("setRowColor(obj)", setRowColorScript()); Script timeScript = myForm.getAssociatedFormScript(); if (timeScript == null) { timeScript = new Script(); myForm.setAssociatedFormScript(timeScript); } } ArrayList texts = new ArrayList(); if (age != null && age.getYears() >= 70){ texts.add(localize(keyText1U1, "Texten")); texts.add(localize(keyText2U1, "Texten")); texts.add(localize(keyText3U1, "Texten")); texts.add(localize(keyText4U1, "Texten")); texts.add(localize(keyText5U1, "Texten")); } else{ texts.add(localize(keyText1U2, "Texten")); texts.add(localize(keyText2U2, "Texten")); texts.add(localize(keyText3U2, "Texten")); texts.add(localize(keyText4U2, "Texten")); texts.add(localize(keyText5U2, "Texten")); } Layer layer = new Layer(Layer.DIV); layer.setVisibility("hidden"); layer.setOverflow("scroll"); layer.setPositionType("absolute"); layer.setWidth("610"); layer.setHeight("150"); layer.setMarkupAttribute("class", "ehealth_div"); int theRow = 1; Iterator iter = texts.iterator(); while (iter.hasNext()) { Layer layers = (Layer) layer.clone(); layers.setID("lay" + theRow + "_"); String text = (String) iter.next(); layers.add(text); T.add(layers, 1, 3); theRow++; } return myForm; } private Layer getInfoLayer(){ Layer layerInfo = new Layer(Layer.DIV); layerInfo.setOverflow("scroll"); layerInfo.setPositionType("relative"); layerInfo.setWidth("610"); layerInfo.setHeight("75"); layerInfo.setMarkupAttribute("class", "ehealth_div"); Table tableInfo = new Table(7, 6); tableInfo.setNoWrap(); tableInfo.setCellpadding(0); tableInfo.setCellspacing(0); tableInfo.setBorder(0); tableInfo.setWidth(570); tableInfo.setWidth(1, 1, "125"); tableInfo.setWidth(2, 1, "20"); tableInfo.setWidth(3, 1, "110"); tableInfo.setWidth(4, 1, "20"); tableInfo.setWidth(5, 1, "150"); tableInfo.setWidth(6, 1, "20"); tableInfo.setWidth(7, 1, "125"); Image transpImg = Table.getTransparentCell(_iwc); transpImg.setWidth(20); transpImg.setHeight(13); Layer layer = new Layer(Layer.DIV); layer.setOnMouseOver("setRowColor(this);"); layer.setPositionType("relative"); layer.setHeight(13); int theRow = 1; int theColumn = 1; ArrayList dates = new ArrayList(); ArrayList caregivers = new ArrayList(); ArrayList vcs = new ArrayList(); ArrayList visitypes = new ArrayList(); if (age != null && age.getYears() >= 70){ dates.add("2004-10-11"); dates.add("2004-10-06"); dates.add("2004-06-15"); dates.add("2004-02-07"); dates.add("2003-12-16"); caregivers.add("Dr Magne Syhl"); caregivers.add("Dr Alve Don"); caregivers.add("Dr Inga Pren"); caregivers.add("Dr Alve Don"); caregivers.add("Dr Alve Don"); vcs.add("Gimo VC"); vcs.add("Gimo VC"); vcs.add("Gimo VC"); vcs.add("Gimo VC"); vcs.add("Gimo VC"); visitypes.add("L�k mott.bes�k"); visitypes.add("Inskrivning"); visitypes.add("L�k mott.bes�k"); visitypes.add("L�k mott.bes�k"); visitypes.add("L�k mott.bes�k"); } else{ dates.add("2004-09-28"); dates.add("2004-09-24"); dates.add("2004-08-15"); dates.add("2004-04-07"); dates.add("2003-10-16"); caregivers.add("Dr Inga Pren"); caregivers.add("Dr Magne Syhl"); caregivers.add("Dr Alve Don"); caregivers.add("Dr Alve Don"); caregivers.add("Dr Alve Don"); vcs.add("Gimo VC"); vcs.add("Gimo VC"); vcs.add("Gimo VC"); vcs.add("Gimo VC"); vcs.add("Gimo VC"); visitypes.add("L�k mott.bes�k"); visitypes.add("L�k mott.bes�k"); visitypes.add("L�k mott.bes�k"); visitypes.add("L�k mott.bes�k"); visitypes.add("L�k mott.bes�k"); } Iterator idates = dates.iterator(); Iterator icaregivers = caregivers.iterator(); Iterator ivcs = vcs.iterator(); Iterator ivisitypes = visitypes.iterator(); while (idates.hasNext()) { //for (theRow = 1; theRow <= 5; theRow++) { for (theColumn = 1; theColumn <= 7; theColumn++) { Layer layers = (Layer) layer.clone(); layers.setID("lay" + theRow + "_"+ theColumn); if (theColumn % 2 == 0){ layers.add(transpImg); layers.setWidth("20"); } else if (theColumn == 1){ String theDate = (String) idates.next(); layers.add(theDate); } else if (theColumn == 3){ String theCaregiver = (String) icaregivers.next(); layers.add(theCaregiver); } else if (theColumn == 5){ String theVc = (String) ivcs.next(); layers.add(theVc); } else if (theColumn == 7){ String theVisitType = (String) ivisitypes.next(); layers.add(theVisitType); } tableInfo.add(layers, theColumn, theRow); } theRow++; } layerInfo.add(tableInfo); return layerInfo; } private Layer getHeadingTable(){ Layer layerHead = new Layer(Layer.DIV); layerHead.setMarkupAttribute("class", "ehealth_div_no_border"); Table table = new Table(7, 1); table.setCellpadding(0); table.setCellspacing(0); table.setBorder(0); table.setWidth(570); table.setHeight(20); table.setAlignment(1, 1, Table.HORIZONTAL_ALIGN_LEFT); table.setWidth(1, 1, "125"); table.setWidth(2, 1, "20"); table.setWidth(3, 1, "110"); table.setWidth(4, 1, "20"); table.setWidth(5, 1, "150"); table.setWidth(6, 1, "20"); table.setWidth(7, 1, "125"); Text date = getLocalizedSmallHeader(prmDateContact,"Date for care contact"); Text careGiver = getLocalizedSmallHeader(prmCareGiver,"Care giver"); Text careUnit = getLocalizedSmallHeader(prmCareUnit,"Care unit"); Text regReason = getLocalizedSmallHeader(prmAppointType,"Appointment type"); table.add(date, 1, 1); table.add(careGiver, 3, 1); table.add(careUnit, 5, 1); table.add(regReason, 7, 1); layerHead.add(table); return layerHead; } private Table getSearchSortTable(){ Table table = new Table(3, 5); table.setCellpadding(0); table.setCellspacing(0); table.setBorder(0); table.setVerticalAlignment(1, 1, Table.VERTICAL_ALIGN_BOTTOM); table.setVerticalAlignment(3, 1, Table.VERTICAL_ALIGN_BOTTOM); table.setVerticalAlignment(1, 2, Table.VERTICAL_ALIGN_BOTTOM); table.setVerticalAlignment(3, 2, Table.VERTICAL_ALIGN_BOTTOM); table.setVerticalAlignment(1, 3, Table.VERTICAL_ALIGN_BOTTOM); table.setVerticalAlignment(1, 4, Table.VERTICAL_ALIGN_BOTTOM); table.setVerticalAlignment(1, 5, Table.VERTICAL_ALIGN_BOTTOM); table.setVerticalAlignment(3, 3, Table.VERTICAL_ALIGN_BOTTOM); table.setAlignment(3, 3, Table.HORIZONTAL_ALIGN_RIGHT); table.setHeight(1, 1, "25"); table.setHeight(1, 2, "25"); table.setHeight(1, 3, "25"); table.setHeight(1, 4, "25"); table.setHeight(1, 5, "25"); table.setWidth(2, 1, "25"); IWTimestamp stamp = new IWTimestamp(); DateInput from = (DateInput) getStyledInterface(new DateInput(prmFrom, true)); from.setYearRange(stamp.getYear() - 11, stamp.getYear()+3); DateInput to = (DateInput) getStyledInterface(new DateInput(prmTo, true)); to.setYearRange(stamp.getYear() - 11, stamp.getYear()+3); DropdownMenu dropHCentre = (DropdownMenu) getStyledInterface(new DropdownMenu(prmHealthCentre)); dropHCentre.addMenuElementFirst("-1", "V�lj v�rdenhet"); dropHCentre.addMenuElement("1", "Gimo VC"); dropHCentre.addMenuElement("2", "�sthammar VC"); dropHCentre.addMenuElement("3", "Alunda VC"); dropHCentre.addMenuElement("4", "�sterbybruk VC"); dropHCentre.addMenuElement("5", "Tierp VC"); dropHCentre.addMenuElement("6", "�regrund VC"); dropHCentre.addMenuElement("7", "Skutsk�r VC"); dropHCentre.addMenuElement("8", "M�nkarbo VC"); DropdownMenu dropCaregiver = (DropdownMenu) getStyledInterface(new DropdownMenu(prmHealthCentre)); dropCaregiver.addMenuElementFirst("-1", "V�lj v�rdgivare"); dropCaregiver.addMenuElement("1", "Dr Magne Syhl"); dropCaregiver.addMenuElement("2", "Dr Alve Don"); dropCaregiver.addMenuElement("3", "Dr Inga Pren"); dropCaregiver.addMenuElement("4", "Dr Volta Ren"); dropCaregiver.addMenuElement("5", "Dr Cura Don"); GenericButton search = getButton(new GenericButton("search", localize(prmSearch, "Search"))); // GenericButton loglist = getButton(new GenericButton("loglist", localize(prmLoglist, "Loglist"))); table.add(getSmallHeader(localize(keyFrom, "From")+": "), 1, 1); table.add(from, 1, 2); table.add(getSmallHeader(localize(keyTo, "To")+": "), 3, 1); table.add(to, 3, 2); // table.add(loglist, 3, 3); table.add(dropHCentre, 1, 3); table.add(dropCaregiver, 1, 4); table.add(search, 1, 5); return table; } private String setRowColorScript() { StringBuffer s = new StringBuffer(); s.append("function setRowColor(obj){").append(" \n\t"); s.append("elementBase = obj.id.substring(0, 5);").append(" \n\t"); s.append("for(i=1;i<document.all.tags('div').length;i++){").append(" \n\t"); s.append("if (document.all.tags('div')[i].id.length == 5){").append(" \n\t"); s.append("document.all.tags('div')[i].style.visibility = 'hidden'"); s.append("}").append("\n\t"); s.append("document.all.tags('div')[i].style.backgroundColor = '#ffffff';"); s.append("}").append("\n\t"); s.append("for (i = 1; i <= 7; i++){").append(" \n\t"); s.append("elementName = eval(elementBase + i);").append(" \n\t"); s.append("document.getElementById(elementName.id).style.backgroundColor = '#CCCCCC';").append(" \n\t"); s.append("}").append("\n\t"); s.append("showlayer = eval(elementBase + '.id');").append(" \n\t"); s.append("document.all(showlayer).style.visibility = 'visible';").append(" \n\t"); s.append("}").append("\n\t\t\t"); return s.toString(); } private Table getTableButtons() { Table table = new Table(5, 1); table.setCellpadding(0); table.setCellspacing(0); table.setBorder(0); table.setHeight(20); table.setAlignment(1, 1, Table.HORIZONTAL_ALIGN_LEFT); table.setWidth(2, 1, "15"); table.setWidth(4, 1, "15"); Image printIcon = (Image) getPrintIcon(_iwc); table.add(printIcon, 1, 1); GenericButton print = getButton(new GenericButton("print", localize(prmPrint, "Print"))); if (showOpenButton){ GenericButton openinWindow = getButton(new GenericButton("open", localize(keyOpenNewWindow, "Open in new window"))); table.add(openinWindow, 5, 1); } table.add(print, 3, 1); return table; } public void setShowOpenButton(boolean showOpenButton){ this.showOpenButton = showOpenButton; } }