public LinkedList<instant> getMicrobiologicalInstants(int subject_id, int itemid1, int itemid2, int itemid3, String tableName, boolean negated, LinkedList<Attribute> attributes, IntervalDescription intDesc) throws ParseException
    {
    	LinkedList<instant> instants = new LinkedList<instant>();
    	
    	if(!meetsAttributes(subject_id, attributes))
    	{
    		return instants;
    	}
    	
    	Statement stmt = null;
    	ResultSet rs = null;
    	//String sqlQuery = "select * from microbiologyevents where subject_id = " + subject_id + " and spec_itemid = " + itemid1 + " and org_itemid = " + itemid2 + " and ab_itemid = " + itemid3;
    	String sqlQuery = "select * from microbiologyevents where subject_id = " + subject_id + " and spec_itemid = " + itemid1;
    	
    	String colName = "";
    	
    	if(!intDesc.category.equalsIgnoreCase("ANY"))
    	{
    		if(intDesc.category.equalsIgnoreCase("POSITIVE"))
    		{
    			sqlQuery = sqlQuery + " and isolate_num > 0";
    		}
    		else
    		{
    			sqlQuery = sqlQuery + " and isolate_num = 0";
    		}
    	}

    	sqlQuery += " order by charttime asc";
    	
    	System.out.println(sqlQuery);
    	
    	try 
        {
            stmt = connection.createStatement();
            rs = stmt.executeQuery(sqlQuery);

            // or alternatively, if you don't know ahead of time that
            // the query will be a SELECT...

            if (stmt.execute(sqlQuery))
            {
                rs = stmt.getResultSet();
            }
            
            
            
            while (rs.next())
            {
            	
  //labresult(String name, double result, String date, double lower_limit, double upper_limit)
            	
            	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
            	String dateInString = rs.getString("charttime");
            	java.util.Date date = sdf.parse(dateInString);
            	
            	int isolation_num = rs.getInt("isolate_num");
            	String category = "POSITIVE";
            	if(isolation_num == 0)
            	{
            		category = "NEGATIVE";
            	}
            	
            	String instantIdentifier = rs.getString("spec_itemid") + " - " +  rs.getString("org_itemid") + " - " + rs.getString("ab_itemid");
            	
            	instant instant = new instant(subject_id, instantIdentifier, category, null, date, intDesc);
				instants.add(instant);
            	
            }


        }
        catch (SQLException ex)
        {
            // handle any errors
        	System.out.println("SQLException on GetMicrobiologicalInstants");
            System.out.println("SQLException: " + ex.getMessage());
            System.out.println("SQLState: " + ex.getSQLState());
            System.out.println("VendorError: " + ex.getErrorCode());
            System.out.println(sqlQuery);
        }
        finally 
        {
            // it is a good idea to release
            // resources in a finally{} block
            // in reverse-order of their creation
            // if they are no-longer needed

        	if (rs != null) {
	            try {
	                rs.close();
	            } catch (SQLException sqlEx) { } // ignore

	            rs = null;
	        }
	
	    }
    	
    	return instants;
    }