|
| 1 | +# D2D Integration with VRG Hub - Quick Reference |
| 2 | + |
| 3 | +## ✅ Integration Complete! |
| 4 | + |
| 5 | +D2D is now embedded in VRG Hub and accessible from anywhere users can access VRG Hub. |
| 6 | + |
| 7 | +## Access URLs |
| 8 | + |
| 9 | +### Through VRG Hub (Recommended) |
| 10 | +- **Primary:** `https://your-vrg-hub.com/d2d-converter` |
| 11 | +- **Alternative:** `https://your-vrg-hub.com/documents-to-dicom` |
| 12 | + |
| 13 | +### Direct Access (Private Network Only) |
| 14 | +- **Direct:** `http://10.200.1.8:8000` |
| 15 | + |
| 16 | +## How It Works |
| 17 | + |
| 18 | +``` |
| 19 | +┌─────────────┐ ┌──────────────┐ ┌────────────┐ |
| 20 | +│ User │────────▶│ VRG Hub │────────▶│ D2D Backend│ |
| 21 | +│ (Anywhere) │ │ (Public) │ │ (10.200.1.8)│ |
| 22 | +└─────────────┘ └──────────────┘ └────────────┘ |
| 23 | + │ │ |
| 24 | + Reverse Proxy Docker |
| 25 | + (vite config) Container |
| 26 | +``` |
| 27 | + |
| 28 | +## What Users See |
| 29 | + |
| 30 | +1. **Login to VRG Hub** (normal authentication) |
| 31 | +2. **Navigate to D2D Converter** page |
| 32 | +3. **Full D2D interface** embedded in VRG Hub |
| 33 | +4. **All features work** exactly the same: |
| 34 | + - Document conversion |
| 35 | + - Worklist query |
| 36 | + - DICOM send to PACS |
| 37 | + - Archive management |
| 38 | + |
| 39 | +## Technical Details |
| 40 | + |
| 41 | +### Files Modified in VRG Hub |
| 42 | + |
| 43 | +**1. vite.config.ts** |
| 44 | +- Added reverse proxy for `/d2d/*` routes |
| 45 | +- Forwards to `http://10.200.1.8:8000` |
| 46 | +- Handles WebSocket connections |
| 47 | + |
| 48 | +**2. src/pages/D2dConverter.tsx** (NEW) |
| 49 | +- Responsive page component |
| 50 | +- Embeds D2D via iframe |
| 51 | +- Loading states and error handling |
| 52 | +- Quick start guide |
| 53 | + |
| 54 | +**3. src/App.tsx** |
| 55 | +- Added routes for D2D converter |
| 56 | +- Lazy-loaded component |
| 57 | +- Two URL paths available |
| 58 | + |
| 59 | +### Proxy Configuration |
| 60 | + |
| 61 | +```typescript |
| 62 | +proxy: { |
| 63 | + '/d2d': { |
| 64 | + target: 'http://10.200.1.8:8000', |
| 65 | + changeOrigin: true, |
| 66 | + rewrite: (path) => path.replace(/^\/d2d/, ''), |
| 67 | + ws: true, |
| 68 | + }, |
| 69 | +} |
| 70 | +``` |
| 71 | + |
| 72 | +## Benefits |
| 73 | + |
| 74 | +### For Users |
| 75 | +✅ **Access from anywhere** - Don't need VPN or private network access |
| 76 | +✅ **Single sign-on** - Log into VRG Hub once |
| 77 | +✅ **Familiar interface** - Same VRG Hub UI/UX |
| 78 | +✅ **Mobile friendly** - Works on tablets and phones |
| 79 | +✅ **No training needed** - Same D2D interface they know |
| 80 | + |
| 81 | +### For IT |
| 82 | +✅ **Centralized access** - All through VRG Hub |
| 83 | +✅ **Better security** - D2D not exposed to internet |
| 84 | +✅ **Easier management** - One portal to maintain |
| 85 | +✅ **Audit logging** - Track usage through VRG Hub |
| 86 | +✅ **No firewall changes** - Uses existing VRG Hub access |
| 87 | + |
| 88 | +## Network Requirements |
| 89 | + |
| 90 | +**VRG Hub Server:** |
| 91 | +- Must be able to reach 10.200.1.8:8000 |
| 92 | +- Same VNet or VPN/peering configured |
| 93 | +- Outbound connections to d2d-vm allowed |
| 94 | + |
| 95 | +**D2D VM:** |
| 96 | +- Running at 10.200.1.8:8000 |
| 97 | +- Accessible from VRG Hub server IP |
| 98 | +- Connected to PACS (10.17.1.21:5000) |
| 99 | +- Connected to Worklist (10.17.1.21:5010) |
| 100 | + |
| 101 | +**Users:** |
| 102 | +- Access VRG Hub (public URL) |
| 103 | +- No direct network access to 10.200.1.8 needed |
| 104 | +- Standard browser (Chrome, Edge, Safari) |
| 105 | + |
| 106 | +## Production Deployment |
| 107 | + |
| 108 | +### Nginx (if VRG Hub uses nginx) |
| 109 | + |
| 110 | +Add to nginx config: |
| 111 | + |
| 112 | +```nginx |
| 113 | +location /d2d/ { |
| 114 | + proxy_pass http://10.200.1.8:8000/; |
| 115 | + proxy_http_version 1.1; |
| 116 | + proxy_set_header Upgrade $http_upgrade; |
| 117 | + proxy_set_header Connection 'upgrade'; |
| 118 | + proxy_set_header Host $host; |
| 119 | + proxy_cache_bypass $http_upgrade; |
| 120 | +} |
| 121 | +``` |
| 122 | + |
| 123 | +### Apache (if VRG Hub uses Apache) |
| 124 | + |
| 125 | +```apache |
| 126 | +ProxyPass /d2d/ http://10.200.1.8:8000/ |
| 127 | +ProxyPassReverse /d2d/ http://10.200.1.8:8000/ |
| 128 | +``` |
| 129 | + |
| 130 | +## Testing |
| 131 | + |
| 132 | +### 1. Development Test |
| 133 | + |
| 134 | +```bash |
| 135 | +cd /home/claudeagent/vrg-hub |
| 136 | +npm run dev |
| 137 | +# Navigate to: http://localhost:8080/d2d-converter |
| 138 | +``` |
| 139 | + |
| 140 | +### 2. Verify Proxy |
| 141 | + |
| 142 | +```bash |
| 143 | +# From VRG Hub server |
| 144 | +curl http://10.200.1.8:8000 |
| 145 | +# Should return D2D HTML |
| 146 | +``` |
| 147 | + |
| 148 | +### 3. End-to-End Test |
| 149 | + |
| 150 | +1. Access VRG Hub |
| 151 | +2. Navigate to `/d2d-converter` |
| 152 | +3. D2D interface should load |
| 153 | +4. Test worklist query |
| 154 | +5. Upload and convert a document |
| 155 | +6. Verify PACS send works |
| 156 | + |
| 157 | +## Monitoring |
| 158 | + |
| 159 | +### Health Check |
| 160 | + |
| 161 | +```bash |
| 162 | +# Check D2D is accessible from VRG Hub |
| 163 | +curl -I http://10.200.1.8:8000 |
| 164 | +``` |
| 165 | + |
| 166 | +### Logs |
| 167 | + |
| 168 | +**VRG Hub:** |
| 169 | +- Browser console for client errors |
| 170 | +- Server logs for proxy issues |
| 171 | + |
| 172 | +**D2D:** |
| 173 | +```bash |
| 174 | +ssh azureuser@10.200.1.8 |
| 175 | +cd /opt/d2d |
| 176 | +sudo docker-compose logs --tail 100 |
| 177 | +``` |
| 178 | + |
| 179 | +## Troubleshooting |
| 180 | + |
| 181 | +| Issue | Solution | |
| 182 | +|-------|----------| |
| 183 | +| D2D not loading | Check d2d-vm is running & accessible from VRG Hub server | |
| 184 | +| CORS errors | Verify `changeOrigin: true` in proxy config | |
| 185 | +| 404 on /d2d/ | Restart VRG Hub dev server or check nginx/Apache config | |
| 186 | +| Blank iframe | Check D2D container is running: `docker-compose ps` | |
| 187 | + |
| 188 | +## Next Steps |
| 189 | + |
| 190 | +1. **Deploy to Production** |
| 191 | + - Update nginx/Apache config |
| 192 | + - Test from production VRG Hub URL |
| 193 | + - Verify all features work |
| 194 | + |
| 195 | +2. **Train Users** |
| 196 | + - Show new D2D location in VRG Hub |
| 197 | + - Same features, new access method |
| 198 | + - Emphasize "works from anywhere" |
| 199 | + |
| 200 | +3. **Monitor Usage** |
| 201 | + - Check VRG Hub access logs |
| 202 | + - Monitor D2D container logs |
| 203 | + - Track conversion success rates |
| 204 | + |
| 205 | +## Support |
| 206 | + |
| 207 | +**For D2D Integration Issues:** |
| 208 | +- Check `/home/claudeagent/vrg-hub/D2D-INTEGRATION.md` |
| 209 | +- Verify network connectivity to 10.200.1.8 |
| 210 | + |
| 211 | +**For D2D Application Issues:** |
| 212 | +- Check `/home/claudeagent/d2d/WORKLIST-FEATURE.md` |
| 213 | +- Check `/home/claudeagent/d2d/VM-DEPLOYMENT-INFO.md` |
| 214 | + |
| 215 | +**For VRG Hub Issues:** |
| 216 | +- Standard VRG Hub support procedures |
| 217 | + |
| 218 | +--- |
| 219 | + |
| 220 | +## Summary |
| 221 | + |
| 222 | +🎉 **D2D is now integrated with VRG Hub!** |
| 223 | + |
| 224 | +Users can access the full D2D functionality from anywhere through VRG Hub, without needing direct access to the private network. |
| 225 | + |
| 226 | +**Key URLs:** |
| 227 | +- VRG Hub D2D: `https://your-vrg-hub.com/d2d-converter` |
| 228 | +- Direct D2D: `http://10.200.1.8:8000` (private only) |
| 229 | +- GitHub (D2D): `https://github.com/chrisgermon/d2d` |
| 230 | + |
| 231 | +**Status:** ✅ Ready for deployment |
| 232 | + |
| 233 | +--- |
| 234 | + |
| 235 | +**Document Created:** 2026-01-23 |
| 236 | +**Last Updated:** 2026-01-23 |
0 commit comments