/** * The contents of this file are subject to the Mozilla Public License * Version 1.1 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the * License for the specific language governing rights and limitations under * the License. * * The Original Code is OpenELIS code. * * Copyright (C) The Minnesota Department of Health. All Rights Reserved. */ package us.mn.state.health.lims.sampletracking.action; import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import us.mn.state.health.lims.common.action.BaseAction; import us.mn.state.health.lims.common.action.BaseActionForm; import us.mn.state.health.lims.common.util.StringUtil; import us.mn.state.health.lims.patient.dao.PatientDAO; import us.mn.state.health.lims.patient.daoimpl.PatientDAOImpl; import us.mn.state.health.lims.patient.valueholder.Patient; import us.mn.state.health.lims.person.valueholder.Person; import us.mn.state.health.lims.provider.valueholder.Provider; import us.mn.state.health.lims.sample.dao.SampleDAO; import us.mn.state.health.lims.sample.daoimpl.SampleDAOImpl; import us.mn.state.health.lims.sample.valueholder.Sample; import us.mn.state.health.lims.samplehuman.dao.SampleHumanDAO; import us.mn.state.health.lims.samplehuman.daoimpl.SampleHumanDAOImpl; import us.mn.state.health.lims.samplehuman.valueholder.SampleHuman; import us.mn.state.health.lims.sampleitem.dao.SampleItemDAO; import us.mn.state.health.lims.sampleitem.daoimpl.SampleItemDAOImpl; import us.mn.state.health.lims.sampleitem.valueholder.SampleItem; import us.mn.state.health.lims.sampleorganization.dao.SampleOrganizationDAO; import us.mn.state.health.lims.sampleorganization.daoimpl.SampleOrganizationDAOImpl; import us.mn.state.health.lims.sampleorganization.valueholder.SampleOrganization; import us.mn.state.health.lims.sampletracking.dao.SampleTrackingDAO; import us.mn.state.health.lims.sampletracking.daoimpl.SampleTrackingDAOImpl; import us.mn.state.health.lims.sampletracking.valueholder.SampleTracking; import us.mn.state.health.lims.sampletracking.valueholder.SampleTrackingCriteria; import us.mn.state.health.lims.sourceofsample.valueholder.SourceOfSample; import us.mn.state.health.lims.typeofsample.valueholder.TypeOfSample; /** * @author aiswarya raman * //AIS - bugzilla 1851/1853 * To change this generated comment edit the template variable "typecomment": * Window>Preferences>Java>Templates. To enable and disable the creation of type * comments go to Window>Preferences>Java>Code Generation. * bugzilla 1920 - standards */ public class SampleTrackingPopupAction extends BaseAction { protected ActionForward performAction(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { request.setAttribute(ALLOW_EDITS_KEY, "true"); request.setAttribute(PREVIOUS_DISABLED, "true"); request.setAttribute(NEXT_DISABLED, "true"); //System.out.println("I am here in SampleTrackingPopup Action"); BaseActionForm searchForm = (BaseActionForm)form; SampleTrackingDAO sampleTrackingDAO = new SampleTrackingDAOImpl(); //Ais: Modified for Type safety warning List<String> lnamea = new ArrayList<String>(); List<String> fnamea = new ArrayList<String>(); List<String> lnameparta = new ArrayList<String>(); List<String> fnameparta = new ArrayList<String>(); List<String> aIda = new ArrayList<String>(); List<String> cReferencea = new ArrayList<String>(); List<String> cReferenceparta = new ArrayList<String>(); List<String> dOba = new ArrayList<String>(); List<String> oRga= new ArrayList<String>(); List<String> oRgnamea= new ArrayList<String>(); List<String> receivedDatea= new ArrayList<String>(); List<String> collectionDatea= new ArrayList<String>(); List<String> collectionTimea= new ArrayList<String>(); List<String> sampleTypea= new ArrayList<String>(); List<String> sampleSourcea= new ArrayList<String>(); List<String> sampleTypeparta= new ArrayList<String>(); List<String> sampleSourceparta= new ArrayList<String>(); //bugzilla 2455 List<String> specimenOrIsolatea = new ArrayList<String>(); SampleTrackingCriteria sampleTrackingCriteria = new SampleTrackingCriteria(); sampleTrackingCriteria.setClientRef((String) request.getParameter("cr")); sampleTrackingCriteria.setLastName((String) request.getParameter("ln")); sampleTrackingCriteria.setFirstName((String) request.getParameter("fn")); sampleTrackingCriteria.setSubmitter((String) request.getParameter("sub")); sampleTrackingCriteria.setReceivedDate((String) request.getParameter("rd")); sampleTrackingCriteria.setSampleType((String) request.getParameter("st")); sampleTrackingCriteria.setSampleSource((String) request.getParameter("ss")); sampleTrackingCriteria.setExternalId(request.getParameter("ei")); sampleTrackingCriteria.setCollectionDate(request.getParameter("cd")); sampleTrackingCriteria.setAccessionNumberPartial(request.getParameter("an")); sampleTrackingCriteria.setProjectId(request.getParameter("pi")); sampleTrackingCriteria.setSortBy(request.getParameter("sb")); //bugzilla 2455 sampleTrackingCriteria.setSpecimenOrIsolate((String) request.getParameter("si")); List listOfSamples = sampleTrackingDAO.getAccessionByPatientAndOtherCriteria(sampleTrackingCriteria); for (int i = 0; i < listOfSamples.size(); i++ ) { //initialize Sample sample = new Sample(); Patient patient = new Patient(); Person person = new Person(); Provider provider = new Provider(); SampleHuman sampleHuman = new SampleHuman(); SampleItem sampleItem = new SampleItem(); PatientDAO patientDAO = new PatientDAOImpl(); SampleItemDAO sampleItemDAO = new SampleItemDAOImpl(); SampleHumanDAO sampleHumanDAO = new SampleHumanDAOImpl(); SampleDAO sampleDAO = new SampleDAOImpl(); SampleOrganization sampleOrganization = new SampleOrganization(); SampleOrganizationDAO sampleOrganizationDAO = new SampleOrganizationDAOImpl(); sample.setAccessionNumber(((SampleTracking)listOfSamples.get(i)).getAccNum()) ; String accessionNumber = sample.getAccessionNumber(); sampleDAO.getSampleByAccessionNumber(sample); String clientReference = sample.getClientReference(); //bugzilla 2455 String specimenOrIsolate = sample.getReferredCultureFlag(); String collectionDateForDisplay = sample.getCollectionDateForDisplay(); String collectionTimeForDisplay = sample.getCollectionTimeForDisplay(); String receivedDateForDisplay = sample.getReceivedDateForDisplay(); if (!StringUtil.isNullorNill(sample.getId())) { sampleHuman.setSampleId(sample.getId()); sampleHumanDAO.getDataBySample(sampleHuman); //bugzilla 1773 need to store sample not sampleId for use in sorting sampleItem.setSample(sample); sampleItemDAO.getDataBySample(sampleItem); patient.setId(sampleHuman.getPatientId()); if (null != patient.getId()){ patientDAO.getData(patient); person = patient.getPerson(); provider.setId(sampleHuman.getProviderId()); String firstname = person.getFirstName(); String lastname = person.getLastName(); String firstnamepart = ""; if (null != firstname ) { int firstnamelen = firstname.length(); if (firstnamelen >15){ firstnamepart = firstname.substring(0,15); }else{ firstnamepart = firstname; } }else{ firstname =""; } String lastnamepart = ""; if (null != lastname ) { int lastnamelen = lastname.length(); if (lastnamelen >15){ lastnamepart = lastname.substring(0,15); }else{ lastnamepart = lastname; } }else{ lastname = ""; } String birthDateForDisplay = patient.getBirthDateForDisplay(); if (null == birthDateForDisplay){ birthDateForDisplay =""; } lnamea.add(i,lastname); fnamea.add(i,firstname); lnameparta.add(i,lastnamepart); fnameparta.add(i,firstnamepart); dOba.add(i,birthDateForDisplay); }else { lnamea.add(i,""); fnamea.add(i,""); lnameparta.add(i,""); fnameparta.add(i,""); dOba.add(i,""); } } aIda.add(i,accessionNumber); String cReferencepart = ""; if (null != clientReference ) { int cReferencelen = clientReference.length(); if (cReferencelen >10){ cReferencepart = clientReference.substring(0,10); }else{ cReferencepart = clientReference; } }else{ clientReference = ""; } cReferencea.add(i,clientReference); cReferenceparta.add(i,cReferencepart); collectionDatea.add(i,collectionDateForDisplay); collectionTimea.add(i,collectionTimeForDisplay); receivedDatea.add(i,receivedDateForDisplay); //bugzilla 2455 specimenOrIsolatea.add(i,specimenOrIsolate); sampleOrganization.setSample(sample); sampleOrganizationDAO.getDataBySample(sampleOrganization); if (null != sampleOrganization.getOrganization()){ //bugzilla 2069 String organizationLocalAbbreviation = sampleOrganization.getOrganization().getOrganizationLocalAbbreviation(); String organizationName =sampleOrganization.getOrganization().getOrganizationName(); //bugzilla 2069 String organizationtest =sampleOrganization.getOrganization().getConcatOrganizationLocalAbbreviationName(); //System.out.println("organizationtest" + organizationtest); //bugzilla 2069 oRga.add(i,organizationLocalAbbreviation); oRgnamea.add(i,organizationName); }else{ oRga.add(i,""); oRgnamea.add(i,""); } if (sampleItem.getId() != null ){ TypeOfSample typeOfSample = sampleItem.getTypeOfSample(); SourceOfSample sourceOfSample = sampleItem.getSourceOfSample(); if (typeOfSample != null) { String typeOfSampleDesc = typeOfSample.getDescription(); //System.out.println("current size of tos#:" + sampleTypea.size()); sampleTypea.add(i,typeOfSampleDesc); int typeOfSampleDesclen = typeOfSampleDesc.length(); String typeOfSampleDescpart = ""; if (typeOfSampleDesclen >15){ typeOfSampleDescpart = typeOfSampleDesc.substring(0,15); }else{ typeOfSampleDescpart = typeOfSampleDesc; } sampleTypeparta.add(i,typeOfSampleDescpart); }else{ sampleTypea.add(i,""); sampleTypeparta.add(i,""); } if (sourceOfSample != null) { String sourceOfSampleDesc = sourceOfSample.getDescription(); sampleSourcea.add(i,sourceOfSampleDesc); int sourceOfSampleDesclen = sourceOfSampleDesc.length(); String sourceOfSampleDescpart = ""; if (sourceOfSampleDesclen >10){ sourceOfSampleDescpart = sourceOfSampleDesc.substring(0,10); }else{ sourceOfSampleDescpart = sourceOfSampleDesc; } sampleSourceparta.add(i,sourceOfSampleDescpart); }else{ sampleSourcea.add(i,""); sampleSourceparta.add(i,""); } }else{ sampleTypea.add(i,""); sampleTypeparta.add(i,""); sampleSourcea.add(i,""); sampleSourceparta.add(i,""); } } String lname [] = (String []) lnamea.toArray (new String [lnamea.size ()]); String fname [] = (String []) fnamea.toArray (new String [fnamea.size ()]); String lnamepart [] = (String []) lnameparta.toArray (new String [lnameparta.size ()]); String fnamepart [] = (String []) fnameparta.toArray (new String [fnameparta.size ()]); String aId [] = (String []) aIda.toArray (new String [aIda.size ()]); String cReference [] = (String []) cReferencea.toArray (new String [cReferencea.size ()]); String cReferencepart [] = (String []) cReferenceparta.toArray (new String [cReferenceparta.size ()]); String dOb [] = (String []) dOba.toArray (new String [dOba.size ()]); String oRg [] = (String []) oRga.toArray (new String [oRga.size ()]); String oRgname [] = (String []) oRgnamea.toArray (new String [oRgnamea.size ()]); String receivedDate [] = (String []) receivedDatea.toArray (new String [receivedDatea.size ()]); String collectionDate [] = (String []) collectionDatea.toArray (new String [collectionDatea.size ()]); String collectionTime [] = (String []) collectionTimea.toArray (new String [collectionTimea.size ()]); String sampleType [] = (String []) sampleTypea.toArray (new String [sampleTypea.size ()]); String sampleSource [] = (String []) sampleSourcea.toArray (new String [sampleSourcea.size ()]); String sampleTypepart[] = (String []) sampleTypeparta.toArray (new String [sampleTypeparta.size ()]); String sampleSourcepart [] = (String []) sampleSourceparta.toArray (new String [sampleSourceparta.size ()]); //bugzilla 2455 String specimenOrIsolate [] = (String []) specimenOrIsolatea.toArray (new String [specimenOrIsolatea.size ()]); searchForm.set("aId", aId); searchForm.set("cReference", cReference); searchForm.set("cReferencepart", cReferencepart); searchForm.set("fname", fname); searchForm.set("lname", lname); searchForm.set("fnamepart", fnamepart); searchForm.set("lnamepart", lnamepart); searchForm.set("dOb", dOb); searchForm.set("oRg", oRg); searchForm.set("oRgname", oRgname); searchForm.set("receivedDate", receivedDate); searchForm.set("collectionDate", collectionDate); searchForm.set("collectionTime", collectionTime); searchForm.set("sampleType", sampleType); searchForm.set("sampleSource", sampleSource); searchForm.set("sampleTypepart", sampleTypepart); searchForm.set("sampleSourcepart", sampleSourcepart); //bugzilla 2455 searchForm.set("specimenOrIsolate", specimenOrIsolate); return mapping.findForward("success"); } protected String getPageTitleKey() { return "sampletracking.title"; } protected String getPageSubtitleKey() { return "sampletracking.title"; } }