JavaScript (V8), 137 bytes
A naive solution that prints the triplets m n r.
X=>{for(m=0;m++<X;)for(n=m;n++<X;)for(x=0;x++<X;)!(y=m*n/x,d=(m*m+n*n+x*x+y*y)**.5,d%2||y%1||y<x|d>X*2)&m+n<d&x+y<d&&m-x&&print(m,n,d/2)}
A naive solution that prints the triplets m n r.
X=>{for(m=0;m++<X;)for(n=m;n++<X;)for(x=0;x++<X;)!(y=m*n/x,d=(m*m+n*n+x*x+y*y)**.5,d%2||y%1||y<x|d>X*2)&m+n<d&x+y<d&&m-x&&print(m,n,d/2)}