public function atendimentoAndamento($usuario, $unidade = null)
    {
        $status = [
            self::CHAMADO_PELA_MESA,
            self::ATENDIMENTO_INICIADO,
        ];
        try {
            $qb = $this->storage
                ->getManager()
                ->createQueryBuilder()
                ->select('e')
                ->from(Atendimento::class, 'e')
                ->where('e.usuario = :usuario')
                ->andWhere('e.status IN (:status)');
            
            $params = [
                'usuario' => $usuario,
                'status' => $status,
            ];
            
            if ($unidade) {
                $qb->andWhere('e.unidade = :unidade');
                $params['unidade'] = $unidade;
            }
            
            return $qb
                ->setParameters($params)
                ->getQuery()
                ->getOneOrNullResult();
        } catch (\Doctrine\ORM\NonUniqueResultException $e) {
            /*
             * caso tenha mais de um atendimento preso ao usuario,
             * libera os atendimentos e retorna null para o atendente chamar de novo.
             * BUG #213
             */
            $this->storage
                ->getManager()
                ->createQueryBuilder()
                ->update(Atendimento::class, 'e')
                ->set('e.status', ':status')
                ->set('e.usuario', ':null')
                ->where('e.usuario = :usuario')
                ->andWhere('e.status IN (:status)')
                ->setParameters([
                    'status'  => 1,
                    'null'    => null,
                    'usuario' => $usuario,
                    'status'  => $status
                ])
                ->getQuery()
                ->execute();

            return;
        }
    }