public Vector<StockEntry> readFile(InputStream inputStream) throws Exception {
    	Vector<StockEntry> result = new Vector<StockEntry>();

    	new WorkbookFactory();
    	Workbook myWorkBook = WorkbookFactory.create(inputStream);

    	Sheet mySheet = myWorkBook.getSheetAt(0);

    	Iterator<Row> rowIter = mySheet.rowIterator();
    	rowIter.next();

    	while(rowIter.hasNext()){
    		Row myRow = rowIter.next();

    		// End of file can contain rows without the required 
    		if (myRow.getPhysicalNumberOfCells() != 5) {
    			break;
    		}
    		
    		Cell countryCell = myRow.getCell(WHO_COUNTRY_INDEX);
    		Cell yearCell = myRow.getCell(WHO_YEAR_INDEX);
    		Cell dayCell = myRow.getCell(WHO_DAY_INDEX);
    		Cell vaccineCell = myRow.getCell(WHO_VACCINE_INDEX);
    		Cell stockCell = myRow.getCell(WHO_STOCK_INDEX);

    		String countryValue = countryCell.getStringCellValue();
    		int yearValue = (int) yearCell.getNumericCellValue();
    		int dayValue = (int) dayCell.getNumericCellValue();
    		String vaccineValue = vaccineCell.getStringCellValue();
    		double stockValue = stockCell.getNumericCellValue();

    		Calendar c = Calendar.getInstance();
    		c.set(Calendar.YEAR, yearValue);
    		c.set(Calendar.DAY_OF_YEAR, dayValue);
    		
			StockEntry placedOrderEntry = new StockEntry(countryValue, vaccineValue, StockEntry.ENTRY_TYPE_WHO, c.getTime(), stockValue); 
			result.add(placedOrderEntry);
    	}

    	return result;
    }