protected function fetchInputScreenDetails()
    {
        $inputScreenIds = array();
        foreach ($this->information as $info) {
            $inputScreenIds[] = $info[self::COMBINATION]['dca_id'];
        }

        if (!$inputScreenIds) {
            return;
        }

        $statement = $this->connection->query(
            sprintf(
                'SELECT * FROM tl_metamodel_dca WHERE id IN (%s)',
                implode(',', $inputScreenIds)
            )
        );

        while ($inputScreens = $statement->fetch(\PDO::FETCH_OBJ)) {
            /** @noinspection PhpUndefinedFieldInspection */
            $screenId = $inputScreens->id;
            /** @noinspection PhpUndefinedFieldInspection */
            $metaModelId   = $inputScreens->pid;
            $metaModelName = $this->tableNameFromId($metaModelId);

            $propertyRows = $this->connection
                ->prepare('SELECT * FROM tl_metamodel_dcasetting WHERE pid=? AND published=1 ORDER BY sorting ASC');

            $propertyRows->bindValue(1, $screenId);
            $propertyRows->execute();

            $conditions = $this->connection->prepare('
                    SELECT cond.*, setting.attr_id AS setting_attr_id
                    FROM tl_metamodel_dcasetting_condition AS cond
                    LEFT JOIN tl_metamodel_dcasetting AS setting
                    ON (cond.settingId=setting.id)
                    LEFT JOIN tl_metamodel_dca AS dca
                    ON (setting.pid=dca.id)
                    WHERE dca.id=? AND setting.published=1 AND cond.enabled=1
                    ORDER BY sorting ASC
                ');

            $conditions->bindValue(1, $screenId);
            $conditions->execute();

            $groupSort = $this->connection->prepare('
                    SELECT *
                    FROM tl_metamodel_dca_sortgroup
                    WHERE pid=?
                    ORDER BY sorting ASC
                ');
            $groupSort->bindValue(1, $screenId);
            $groupSort->execute();

            $inputScreen = array(
                'row'        => $inputScreens->row(),
                'properties' => $propertyRows->fetchAll(\PDO::FETCH_ASSOC),
                'conditions' => $conditions->fetchAll(\PDO::FETCH_ASSOC),
                'groupSort'  => $groupSort->fetchAll(\PDO::FETCH_ASSOC)
            );

            $this->information[$metaModelName][self::INPUTSCREEN] = $inputScreen;
            $this->information[$metaModelName][self::MODELID]     = $metaModelId;

            $parentTable = $inputScreen['row']['ptable'];
            if ($parentTable && !$this->isInputScreenStandalone($metaModelName)) {
                $this->parentMap[$parentTable][] = $this->information[$metaModelName][self::MODELID];
                $this->childMap[$metaModelName]  = $parentTable;
            }
        }
    }