I'll work through this systematically, analyzing each profile and scheduling them optimally.

## Profile Analysis

**Profiles and their services:**
- **Profile 1006**: Lab Work (seq 1, dur=1) + MD (seq 2, dur=1) = total 2 slots
- **Profile 1017**: MD (seq 2, dur=1) + TTCNP (seq 3, dur=8) = total 9 slots
- **Profile 1025**: Lab Work (seq 1, dur=1) + MD (seq 2, dur=1) + TTCNP (seq 3, dur=14) = total 16 slots
- **Profile 1001**: MD only (seq 2, dur=1) = total 1 slot
- **Profile 1002**: TTCNP only (seq 3, dur=8) = total 8 slots

**Sort by total duration (longest first):**
1. Profile 1025: 16 slots (Lab=1 + MD=1 + TTCNP=14)
2. Profile 1017: 9 slots (MD=1 + TTCNP=8)
3. Profile 1002: 8 slots (TTCNP=8)
4. Profile 1006: 2 slots (Lab=1 + MD=1)
5. Profile 1001: 1 slot (MD=1)

## Constraints Summary
- RN available: 07:30–17:00, 9 per slot
- LPN: 08:00–16:00, 1 per slot
- Lab Tech: 07:00–17:00, 5 per slot
- MD: 07:00–17:00, 7 per slot
- Treatment chairs: 21
- Lab chairs: 4
- Injection chairs: 10
- Max 2 TTCNP starts per 15-min slot
- TTCNP DO NOT START: 12:00–13:00 and 15:00–16:15
- TTCNP must end by 17:00
- RN needed at start and end of treatment; at treatment start time, at least 1 RN available without concurrent treatment start

## Scheduling

**Profile 1025** (longest): Lab→MD→TTCNP(dur=14)
- Lab Work: 07:00–07:15 (Lab Tech available from 07:00 ✓)
- MD: 07:15–07:30 (MD available ✓)
- TTCNP: 07:30–? duration=14 → 07:30 + 210min = 07:30+3h30m = 11:00
  - RN available from 07:30 ✓, ends 11:00 ≤ 17:00 ✓
  - Not in DO NOT START windows ✓
  - Treatment start count at 07:30: 1 (≤2) ✓

**Profile 1017**: MD→TTCNP(dur=8)
- MD: 07:00–07:15
- TTCNP: 07:15–? duration=8 → 07:15 + 120min = 09:15
  - RN: 07:15 is before RN start (07:30)! RN not available at 07:15.
  - Try MD: 07:15–07:30, TTCNP: 07:30–09:30
  - But MD must start at or after previous service end. Profile 1017 has no Lab, so MD is first.
  - MD: 07:00–07:15, TTCNP: 07:15 — RN not available (starts 07:30)
  - MD: 07:30–07:45, TTCNP: 07:45–09:45 — RN available at 07:45 ✓
  - Treatment start at 07:45: count=1 (1025 starts at 07:30, so 07:45 slot has 0 starts so far) ✓
  - Check: 07:45 not in DO NOT START windows ✓, ends 09:45 ≤ 17:00 ✓

**Profile 1002**: TTCNP(dur=8)
- TTCNP: earliest start 07:00, but RN starts 07:30
- Start at 07:30: duration=8 → 07:30+120min=09:30
  - 07:30 treatment starts: 1025 starts at 07:30 → count=1, adding 1002 = 2 ✓ (max 2)
  - RN at 07:30: need 1 RN for start. 1025 also starts at 07:30.
  - "At treatment start time, there should be at least 1 RN available without a concurrent treatment start"
  - At 07:30: 9 RNs available. 1025 uses 1 RN at start, 1002 uses 1 RN at start = 2 RNs used. 9-2=7 remaining ✓
  - Both start at 07:30, count=2 ✓

**Profile 1006**: Lab Work→MD
- Lab: 07:00–07:15
- MD: 07:15–07:30
- Lab Tech at 07:00: 1 used (1025 also uses lab at 07:00) → 2 total ≤ 5 ✓
- MD at 07:15: 1 used (1025 uses MD at 07:15) → 2 total ≤ 7 ✓

**Profile 1001**: MD only
- MD: 07:00–07:15
- MD at 07:00: 1025 uses MD at 07:15 (not 07:00), 1017 uses MD at 07:30
- At 07:00: only 1001 uses MD → 1 ≤ 7 ✓

## Final Verification

**RN check at 07:30 (treatment starts: 1025 and 1002):**
- 2 starts at 07:30, max=2 ✓
- RNs needed: 2 (one per start) + "at least 1 RN without concurrent start" → 9 available, 2 used = 7 free ✓

**RN check at 07:45 (1017 starts):**
- 1 start at 07:45 ✓, RN available ✓

**RN at end of treatments:**
- 1002 ends 09:30: 1 RN needed at 09:15–09:30 slot ✓
- 1017 ends 09:45: 1 RN needed at 09:30–09:45 slot ✓
- 1025 ends 11:00: 1 RN needed at 10:45–11:00 slot ✓

**Treatment chairs:**
- 07:30–09:30: 1025 + 1002 = 2 chairs ✓
- 07:45–09:30: 1025 + 1002 + 1017 = 3 chairs ✓
All well within 21 ✓

**Arithmetic verification:**
- 1025 Lab: 07:00 + 1×15=15min → 07:15 ✓
- 1025 MD: 07:15 + 15min → 07:30 ✓
- 1025 TTCNP: 07:30 + 14×15=210min; 450+210=660; 660÷60=11r0 → 11:00 ✓
- 1017 MD: 07:30 + 15min → 07:45 ✓
- 1017 TTCNP: 07:45 + 8×15=120min; 465+120=585; 585÷60=9r45 → 09:45 ✓
- 1002 TTCNP: 07:30 + 120min; 450+120=570; 570÷60=9r30 → 09:30 ✓
- 1006 Lab: 07:00 + 15min → 07:15 ✓
- 1006 MD: 07:15 + 15min → 07:30 ✓
- 1001 MD: 07:00 + 15min → 07:15 ✓

---CSV_START---
2026-02-16,5990,IMG Clone,1006,15,07:00:00,1,07:15:00,1,Lab Work
2026-02-16,5990,IMG Clone,1006,16,07:15:00,1,07:30:00,2,MD
2026-02-16,5990,IMG Clone,1017,3,07:45:00,8,09:45:00,3,TTCNP
2026-02-16,5990,IMG Clone,1017,16,07:30:00,1,07:45:00,2,MD
2026-02-16,5990,IMG Clone,1025,3,07:30:00,14,11:00:00,3,TTCNP
2026-02-16,5990,IMG Clone,1025,15,07:00:00,1,07:15:00,1,Lab Work
2026-02-16,5990,IMG Clone,1025,16,07:15:00,1,07:30:00,2,MD
2026-02-16,5990,IMG Clone,1001,16,07:00:00,1,07:15:00,2,MD
2026-02-16,5990,IMG Clone,1002,3,07:30:00,8,09:30:00,3,TTCNP
---CSV_END---