rxjs con forkjoin múltiple al hacer solicitudes http

Estoy haciendo algunas solicitudes http y uso rxjs para una notificación exitosa del resultado:

  getReportings(departmentId: number): Observable<any> {
        return Observable.forkJoin(
            this.http.get('/api/members/' + departmentId).map(res => res.json()),
            this.http.get('/api/reports/' + departmentId).map(res => res.json())
        );
    }

Cuando se realizan ambas solicitudes http, quiero que dentro del método getReportings itere la matriz de informes, lea algunos valores y para cada informe vuelva a hacer una nueva solicitud http con esos valores.

En general, tengo 2 (miembro / informes) + appr. 4 a 8 (otras cosas) solicitudes.

Cuando todos apr. Se realizan de 6 a 8 solicitudes. Deseo obtener TODOS los datos de las solicitudes anteriores de 6 a 8 en el controlador exitoso.

¿Cómo puedo hacer esto con rxjs?

ACTUALIZAR

Como el usuario olsn solicitó más detalles y lo entiendo ahora, ¿cuál es su preocupación? Pongo más datos aquí (pseudocódigo) cómo deberían verse las solicitudes de 6 a 8:

getReportings(departmentId: number): Observable<any> {
    return Observable.forkJoin(
        this.http.get('/api/members/' + departmentId).map(res => res.json()),
        this.http.get('/api/reports/' + departmentId).map(res => res.json())
    ).switchMap((result: [any[], any[]]) => {
        let members: any[] = result[0];
        let reports: any[] = result[1];
        let allNewStreams: Observable<any>[] = [
            Observable.of(members),
            Observable.of(reports)
        ]; 

        for(let report of reports)
        {
            allNewStreams.push(
this.http.get(report.url + ?key1=report.name1?).map(res => res.json()));
        }


        return Observable.forkJoin(allNewStreams); // will contain members, reports + 4-6 other results in an array [members[], reports[], ...other stuff]
    });
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta