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() != 7) {
    			break;
    		}
    		
    		Cell vaccineCell = myRow.getCell(UNICEF_VACCINE_INDEX);
    		Cell activityCell = myRow.getCell(UNICEF_ACTIVITY);
    		Cell countryCell = myRow.getCell(UNICEF_COUNTRY_INDEX);
    		Cell totalStockCell = myRow.getCell(UNICEF_TOTAL_STOCK_INDEX);
    		Cell stockCell = myRow.getCell(UNICEF_STOCK_INDEX);
    		Cell dateCell = myRow.getCell(UNICEF_DATE_INDEX);

    		String vaccineValue = vaccineCell.getStringCellValue();
    		String activityValue = activityCell.getStringCellValue();
    		String countryValue = countryCell.getStringCellValue();
    		double totalStockValue = totalStockCell.getNumericCellValue();
    		double stockValue = stockCell.getNumericCellValue();
    		String dateStringValue = dateCell.getStringCellValue();
    		Date dateValue = INPUT_DATE_FORMAT.parse(dateStringValue);

    		if (activityValue.equals("Routine")) {
    			StockEntry stockEntry = new StockEntry(countryValue, vaccineValue, StockEntry.ENTRY_TYPE_UNICEF_COUNTRY, dateValue, stockValue); 
    			StockEntry totalStockEntry = new StockEntry(countryValue, vaccineValue, StockEntry.ENTRY_TYPE_UNICEF_TOTALDOSAGE, dateValue, totalStockValue); 
    			result.add(stockEntry);
    			result.add(totalStockEntry);
    		}
    	}

    	return result;
    }