Slaiwala commited on
Commit
e1a9577
·
1 Parent(s): 732b308

Add spine_coder package (core + dataset + tests)

Browse files
Files changed (30) hide show
  1. spine_coder/__init__.py +9 -0
  2. spine_coder/__pycache__/__init__.cpython-312.pyc +0 -0
  3. spine_coder/__pycache__/spine_coder_core.cpython-312.pyc +0 -0
  4. spine_coder/spine_coder/__init__.py +9 -0
  5. spine_coder/spine_coder/__pycache__/__init__.cpython-312.pyc +0 -0
  6. spine_coder/spine_coder/__pycache__/spine_coder_core.cpython-312.pyc +0 -0
  7. spine_coder/spine_coder/spine_coder_core.py +399 -0
  8. spine_coder/spine_coder/synthetic_dataset/generate_synthetic.py +58 -0
  9. spine_coder/spine_coder/synthetic_dataset/notes_500.csv +501 -0
  10. spine_coder/spine_coder/synthetic_dataset/notes_500.jsonl +0 -0
  11. spine_coder/spine_coder/tests/__pycache__/conftest.cpython-312-pytest-8.4.2.pyc +0 -0
  12. spine_coder/spine_coder/tests/__pycache__/test_conflicts.cpython-312-pytest-8.4.2.pyc +0 -0
  13. spine_coder/spine_coder/tests/__pycache__/test_coverage_and_modifiers.cpython-312-pytest-8.4.2.pyc +0 -0
  14. spine_coder/spine_coder/tests/__pycache__/test_dataset_basic.cpython-312-pytest-8.4.2.pyc +0 -0
  15. spine_coder/spine_coder/tests/conftest.py +5 -0
  16. spine_coder/spine_coder/tests/test_conflicts.py +9 -0
  17. spine_coder/spine_coder/tests/test_coverage_and_modifiers.py +28 -0
  18. spine_coder/spine_coder/tests/test_dataset_basic.py +23 -0
  19. spine_coder/spine_coder_core.py +399 -0
  20. spine_coder/synthetic_dataset/generate_synthetic.py +58 -0
  21. spine_coder/synthetic_dataset/notes_500.csv +501 -0
  22. spine_coder/synthetic_dataset/notes_500.jsonl +0 -0
  23. spine_coder/tests/__pycache__/conftest.cpython-312-pytest-8.4.2.pyc +0 -0
  24. spine_coder/tests/__pycache__/test_conflicts.cpython-312-pytest-8.4.2.pyc +0 -0
  25. spine_coder/tests/__pycache__/test_coverage_and_modifiers.cpython-312-pytest-8.4.2.pyc +0 -0
  26. spine_coder/tests/__pycache__/test_dataset_basic.cpython-312-pytest-8.4.2.pyc +0 -0
  27. spine_coder/tests/conftest.py +5 -0
  28. spine_coder/tests/test_conflicts.py +9 -0
  29. spine_coder/tests/test_coverage_and_modifiers.py +28 -0
  30. spine_coder/tests/test_dataset_basic.py +23 -0
spine_coder/__init__.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ __all__ = ["spine_coder_core"]
2
+ __version__ = "1.0"
3
+
4
+ # Ensure pytest & Colab both see this folder as a package
5
+ import os, sys
6
+ root = os.path.abspath(os.path.dirname(__file__) + "/..")
7
+ if root not in sys.path:
8
+ sys.path.insert(0, root)
9
+ print("spine_coder package ready:", __version__)
spine_coder/__pycache__/__init__.cpython-312.pyc ADDED
Binary file (606 Bytes). View file
 
spine_coder/__pycache__/spine_coder_core.cpython-312.pyc ADDED
Binary file (26.2 kB). View file
 
spine_coder/spine_coder/__init__.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ __all__ = ["spine_coder_core"]
2
+ __version__ = "1.0"
3
+
4
+ # Ensure pytest & Colab both see this folder as a package
5
+ import os, sys
6
+ root = os.path.abspath(os.path.dirname(__file__) + "/..")
7
+ if root not in sys.path:
8
+ sys.path.insert(0, root)
9
+ print("spine_coder package ready:", __version__)
spine_coder/spine_coder/__pycache__/__init__.cpython-312.pyc ADDED
Binary file (606 Bytes). View file
 
spine_coder/spine_coder/__pycache__/spine_coder_core.cpython-312.pyc ADDED
Binary file (26.2 kB). View file
 
spine_coder/spine_coder/spine_coder_core.py ADDED
@@ -0,0 +1,399 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import re, json
3
+ from typing import Dict, Any, List, Tuple
4
+
5
+ # ---------- helpers ----------
6
+ def _norm(s: str) -> str:
7
+ if not s: return ""
8
+ s = s.replace("\u2013","-").replace("\u2014","-").replace("—","-").replace("–","-").replace("\u00A0"," ")
9
+ s = re.sub(r"\s+", " ", s.strip().lower())
10
+ return s
11
+
12
+ def _has(text: str, pat: str) -> bool:
13
+ return re.search(pat, text, flags=re.I) is not None
14
+
15
+ def _level_sort_key(lv: str) -> Tuple[int, int]:
16
+ band = {"C":100, "T":200, "L":300, "S":400}.get(lv[0], 999)
17
+ num = int(re.sub(r"\D", "", lv) or 0)
18
+ return (band, num)
19
+
20
+ def _extract_levels(t: str) -> List[str]:
21
+ levels = set()
22
+ for m in re.finditer(r"\b([CTLS])\s?(\d{1,2})\s*[-–]\s*([CTLS])?\s?(\d{1,2})\b", t, flags=re.I):
23
+ pfx1, n1, pfx2, n2 = m.group(1).upper(), int(m.group(2)), (m.group(3) or m.group(1)).upper(), int(m.group(4))
24
+ if pfx1 != pfx2:
25
+ levels.add(f"{pfx1}{n1}"); levels.add(f"{pfx2}{n2}")
26
+ else:
27
+ lo, hi = sorted([n1, n2])
28
+ for k in range(lo, hi+1): levels.add(f"{pfx1}{k}")
29
+ for m in re.finditer(r"\b([CTLS])\s?(\d{1,2})\b", t, flags=re.I):
30
+ levels.add(f"{m.group(1).upper()}{int(m.group(2))}")
31
+ return sorted(levels, key=_level_sort_key)
32
+
33
+ def _count_interspaces(levels: List[str]) -> int:
34
+ if not levels: return 0
35
+ by_band: Dict[str, List[int]] = {}
36
+ for lv in levels:
37
+ by_band.setdefault(lv[0], []).append(int(re.sub(r"\D", "", lv)))
38
+ for b in list(by_band): by_band[b] = sorted(set(by_band[b]))
39
+ inters = 0
40
+ for arr in by_band.values():
41
+ if len(arr) >= 2:
42
+ inters += sum(1 for i in range(1, len(arr)) if arr[i]-arr[i-1]==1)
43
+ if "L5" in levels and "S1" in levels: inters += 1
44
+ if inters == 0:
45
+ for arr in by_band.values():
46
+ if len(arr) >= 2: inters = 1; break
47
+ return inters
48
+
49
+ def _span_segments(levels: List[str]) -> int:
50
+ if not levels: return 0
51
+ by_band: Dict[str, List[int]] = {}
52
+ for lv in levels:
53
+ by_band.setdefault(lv[0], []).append(int(re.sub(r"\D", "", lv)))
54
+ spans = []
55
+ for arr in by_band.values():
56
+ arr = sorted(set(arr))
57
+ spans.append(arr[-1]-arr[0]+1 if len(arr)>=2 else 1)
58
+ return (max(spans) if spans else 0) if len(spans)==1 else max(spans + [2])
59
+
60
+ def _laterality_mods(t: str) -> List[str]:
61
+ mods: List[str] = []
62
+ if _has(t, r"\bleft\b|left-sided|left side|leftward|hemilam\w* left|foraminotomy left|\blt\b"):
63
+ mods.append("LT")
64
+ # tighten RIGHT: drop bare \brt\b to avoid accidental hits
65
+ if _has(t, r"\bright\b|right-sided|right side|rightward|hemilam\w* right|foraminotomy right"):
66
+ mods.append("RT")
67
+ return list(sorted(set(mods)))
68
+
69
+ def _add(suggestions: List[Dict[str, Any]], cpt: str, desc: str, rationale: str,
70
+ category: str, primary: bool, confidence: float = 0.8, units: int = 1,
71
+ mods: List[str] = None, score: float = None):
72
+ suggestions.append({
73
+ "cpt": cpt, "desc": desc, "rationale": rationale, "category": category,
74
+ "primary": primary, "confidence": confidence, "units": units,
75
+ "modifiers": mods or [], "score": score if score is not None else confidence
76
+ })
77
+
78
+ def _inst_code_by_span(span_segments: int, anterior: bool) -> str:
79
+ if span_segments <= 1: return ""
80
+ if anterior:
81
+ return "22845" if span_segments <= 3 else ("22846" if span_segments <= 7 else "22847")
82
+ else:
83
+ return "22842" if span_segments <= 3 else ("22843" if span_segments <= 7 else "22844")
84
+
85
+ # ---------- main ----------
86
+ def suggest_with_cpt_billing(note: str, payer: str = "Medicare", top_k: int = 10) -> Dict[str, Any]:
87
+ t = _norm(note)
88
+ suggestions: List[Dict[str, Any]] = []
89
+ case_modifiers: List[Dict[str, str]] = []
90
+
91
+ levels = _extract_levels(t)
92
+ inters = _count_interspaces(levels)
93
+ span = _span_segments(levels)
94
+ lat_mods = _laterality_mods(t)
95
+
96
+ # ---------- Region ----------
97
+ region = "unknown"
98
+ if any(l.startswith("C") for l in levels) or _has(t, r"\bcervic"): region = "cervical"
99
+ elif any(l.startswith("T") for l in levels) or _has(t, r"\bthorac"): region = "thoracic"
100
+ elif any(l.startswith(("L","S")) for l in levels) or _has(t, r"\blumbar|sacrum"): region = "lumbar"
101
+
102
+ # Helper flags
103
+ mentions_plate_ant = _has(t, r"\b(anterior (plate|instrument(ation)?)|plate fixed|plating)\b") or _has(t, r"\bplate\b")
104
+ mentions_pedicle = _has(t, r"\bpedicle screw|pedicle-screw|pedicle fixation|s2ai\b")
105
+ mentions_rod = _has(t, r"\brod(s)?\b")
106
+ mentions_inst_post = mentions_pedicle or mentions_rod or _has(t, r"\binstrument(ation)?\b")
107
+
108
+ did_corpectomy = False
109
+ no_decompression_due_to_revision = False
110
+ avoid_decompression_for_stimulator = False
111
+
112
+ # ---------- (1) Hardware removal (support both word orders) ----------
113
+ rem_pat_either = (
114
+ r"(?:\b(hardware|instrumentation|implant|plate|rod|screw)\b.{0,40}\b(remov\w+|explant\w+|taken out))"
115
+ r"|(?:\bremov\w+\b.{0,40}\b(hardware|instrumentation|implant|plate|rod|screw)\b)"
116
+ )
117
+ if _has(t, rem_pat_either):
118
+ if _has(t, r"\banterior\b|acdf|alif|anterior plate|smith[- ]?robinson"):
119
+ _add(suggestions, "22855", "Removal of anterior instrumentation",
120
+ "Anterior hardware removal documented.", "hardware_removal", True, 0.85, mods=lat_mods)
121
+ elif _has(t, r"non[- ]?segmental|hook|wire") and not _has(t, r"segmental|pedicle"):
122
+ _add(suggestions, "22850", "Removal of posterior non-segmental instrumentation",
123
+ "Posterior non-segmental removal documented.", "hardware_removal", True, 0.82, mods=lat_mods)
124
+ else:
125
+ _add(suggestions, "22852", "Removal of posterior segmental instrumentation",
126
+ "Posterior segmental hardware removal documented.", "hardware_removal", True, 0.85, mods=lat_mods)
127
+
128
+ # If remove + replace/reinsert/revision language → add 22849 and avoid decompression auto-fires
129
+ if _has(t, r"\b(reinsertion|remove and replace|revision of instrumentation|hardware revision)\b"):
130
+ _add(suggestions, "22849", "Reinsertion/revision of spinal instrumentation",
131
+ "Revision/reinsertion documented.", "revision", True, 0.85)
132
+ no_decompression_due_to_revision = True
133
+
134
+ # ---------- (2) ACDF with guards (history/removal) ----------
135
+ found_removal = _has(t, rem_pat_either)
136
+ acdf_history = _has(t, r"\b(prior|previous|history of|s/?p)\s*acdf\b")
137
+ acdf_current = _has(t, r"\banterior cervical discectomy|anterior cervical fusion|smith[- ]?robinson\b")
138
+ if (acdf_current or (_has(t, r"\bacdf\b") and not acdf_history)) and not (found_removal and not acdf_current):
139
+ n = max(1, inters or 1)
140
+ _add(suggestions, "22551", "ACDF, first interspace (includes discectomy)",
141
+ "Anterior cervical fusion pattern detected.", "ACDF", True, 0.95, mods=lat_mods)
142
+ if n > 1:
143
+ _add(suggestions, "22552", f"ACDF, each additional interspace ×{n-1}",
144
+ "Multi-level ACDF.", "ACDF add-on", False, 0.9, units=(n-1), mods=lat_mods)
145
+ if mentions_plate_ant:
146
+ code = _inst_code_by_span(span or (n+1), anterior=True)
147
+ if code:
148
+ desc = {"22845":"Anterior instrumentation (2–3 segments)",
149
+ "22846":"Anterior instrumentation (4–7 segments)",
150
+ "22847":"Anterior instrumentation (8+ segments)"}[code]
151
+ _add(suggestions, code, desc, "Anterior plate present; span estimated from levels.", "instrumentation", False, 0.8)
152
+
153
+ # ---------- (3) TLIF / PLIF (beats posterior fusion) ----------
154
+ if _has(t, r"\btlif\b|\bplif\b|posterior interbody fusion"):
155
+ n = max(1, inters or 1)
156
+ _add(suggestions, "22633", "Posterior/posterolateral + posterior interbody, single level",
157
+ "TLIF/PLIF pattern: posterior approach + cage + screws.", "TLIF/PLIF", True, 0.92, mods=lat_mods)
158
+ if n > 1:
159
+ _add(suggestions, "22634", f"Posterior interbody each additional interspace ×{n-1}",
160
+ "Multi-level TLIF/PLIF.", "TLIF/PLIF add-on", False, 0.88, units=(n-1), mods=lat_mods)
161
+ if mentions_inst_post:
162
+ code = _inst_code_by_span(span or (n+1), anterior=False)
163
+ if code:
164
+ desc = {"22842":"Posterior segmental instrumentation (2–3 segments)",
165
+ "22843":"Posterior segmental instrumentation (4–7 segments)",
166
+ "22844":"Posterior segmental instrumentation (8+ segments)"}[code]
167
+ _add(suggestions, code, desc, "Posterior instrumentation detected.", "instrumentation", False, 0.82)
168
+
169
+ # ---------- (4) ALIF ----------
170
+ if _has(t, r"\balif\b|anterior lumbar interbody fusion"):
171
+ n = max(1, inters or 1)
172
+ _add(suggestions, "22558", "Anterior lumbar interbody fusion, single interspace",
173
+ "ALIF detected.", "ALIF", True, 0.9)
174
+ if n > 1:
175
+ _add(suggestions, "22585", f"ALIF each additional interspace ×{n-1}",
176
+ "Multi-level ALIF.", "ALIF add-on", False, 0.86, units=(n-1))
177
+ if mentions_plate_ant:
178
+ code = _inst_code_by_span(span or (n+1), anterior=True)
179
+ if code:
180
+ desc = {"22845":"Anterior instrumentation (2–3 segments)",
181
+ "22846":"Anterior instrumentation (4–7 segments)",
182
+ "22847":"Anterior instrumentation (8+ segments)"}[code]
183
+ _add(suggestions, code, desc, "Anterior plate present; span estimated from levels.", "instrumentation", False, 0.8)
184
+
185
+ # ---------- (5) Posterolateral/posterior fusion WITHOUT interbody ----------
186
+ if (_has(t, r"posterolateral\b.*\bfusion|post[- ]?lat\b.*\bfusion|posterior\b.*\bfusion|in situ\b.*\bfusion")
187
+ and not _has(t, r"\btlif\b|\bplif\b|posterior interbody")):
188
+ base_map = {"cervical":"22600", "thoracic":"22610", "lumbar":"22612"}
189
+ base = base_map.get(region, "22612")
190
+ _add(suggestions, base, f"Posterolateral/posterior fusion, first level ({region})",
191
+ "Posterior fusion without interbody.", "posterior_fusion", True, 0.78, mods=lat_mods)
192
+ add_units = max(0, inters)
193
+ if add_units:
194
+ _add(suggestions, "22614", f"Posterior fusion each additional segment ×{add_units}",
195
+ "Multi-level posterior fusion.", "posterior_fusion add-on", False, 0.72, units=add_units, mods=lat_mods)
196
+ if mentions_inst_post:
197
+ n_seg = span or max(2, (inters + 1))
198
+ code = _inst_code_by_span(n_seg, anterior=False)
199
+ if code:
200
+ desc = {"22842":"Posterior segmental instrumentation (2–3 segments)",
201
+ "22843":"Posterior segmental instrumentation (4–7 segments)",
202
+ "22844":"Posterior segmental instrumentation (8+ segments)"}[code]
203
+ _add(suggestions, code, desc, "Posterior instrumentation detected.", "instrumentation", False, 0.8)
204
+
205
+ # ---------- (6) Neurostimulator paddle + IPG ----------
206
+ if _has(t, r"\bstimulator\b|paddle lead|spinal cord stimulator|scs") and _has(t, r"\blaminectomy\b|laminotomy"):
207
+ _add(suggestions, "63655", "Laminectomy for implantation of neurostimulator paddle electrodes",
208
+ "Paddle lead placed via laminectomy.", "neurostimulator", True, 0.86)
209
+ if _has(t, r"\bpulse generator\b|ipg|implantable pulse generator|battery\b"):
210
+ _add(suggestions, "63685", "Insertion or replacement of IPG",
211
+ "Pulse generator implanted.", "neurostimulator", False, 0.84)
212
+ avoid_decompression_for_stimulator = True
213
+
214
+ # ---------- (7) Decompression (guarded: no history/corpectomy/revision/stimulator) ----------
215
+ if (not no_decompression_due_to_revision) and (not avoid_decompression_for_stimulator):
216
+ if _has(t, r"\bdecompression(s)?\b|laminectom(y|ies)|laminotom(y|ies)|foraminotom(y|ies)|foraminal decompression(s)?|neuroforamen|lateral recess|central stenosis") \
217
+ and not _has(t, r"\b(prior|previous|history of|s/?p)\s+(decompression|laminectomy|laminotomy|foraminotomy)\b"):
218
+ base_map = {"cervical":"63045", "thoracic":"63046", "lumbar":"63047"}
219
+ base = base_map.get(region, "63047")
220
+ _add(suggestions, base, "Decompression, first level", "Decompression terms detected.", "decompression", True, 0.82, mods=lat_mods)
221
+ if _has(t, r"additional level|two levels|three levels|multi|levels|l\d-?l\d|c\d-?c\d|t\d-?t\d"):
222
+ extra = max(1, inters)
223
+ _add(suggestions, "63048", f"Decompression, each additional level ×{extra}",
224
+ "Multi-level decompression inferred.", "decompression add-on", False, 0.78, units=extra, mods=lat_mods)
225
+
226
+ # ---------- (8) Interspinous/interlaminar device ----------
227
+ if _has(t, r"\bcoflex\b|interspinous|interlaminar device|ipd"):
228
+ _add(suggestions, "22868", "Insertion of interspinous/interlaminar device",
229
+ "Coflex/IPD insertion documented.", "interspinous", True, 0.86, mods=lat_mods)
230
+
231
+ # ---------- (9) Cervical disc arthroplasty ----------
232
+ if _has(t, r"cervical (arthroplasty|artificial disc|disc replacement)|\bcda\b") or (
233
+ (region == "cervical") and _has(t, r"\barthroplasty\b|artificial disc|disc replacement")
234
+ ):
235
+ n = max(1, inters or 1)
236
+ _add(suggestions, "22856", "Cervical disc arthroplasty, single level",
237
+ "Cervical disc arthroplasty documented.", "arthroplasty", True, 0.87, mods=lat_mods)
238
+ if n > 1:
239
+ _add(suggestions, "22858", f"Cervical disc arthroplasty, each additional level ×{n-1}",
240
+ "Multi-level arthroplasty.", "arthroplasty add-on", False, 0.84, units=(n-1), mods=lat_mods)
241
+
242
+ # ---------- (10) Tumor / corpectomy ----------
243
+ # Cervical corpectomy
244
+ if _has(t, r"\bcorpectomy\b") and (region == "cervical" or _has(t, r"\bcervic")):
245
+ _add(suggestions, "63081", "Cervical corpectomy for decompression, first segment",
246
+ "Cervical corpectomy documented.", "tumor/corpectomy", True, 0.86)
247
+ # rough extra estimate
248
+ if _has(t, r"additional (level|segment)|two levels|three levels|multi|c\d-?c\d"):
249
+ extra = max(1, inters or 1)
250
+ _add(suggestions, "63082", f"Each additional cervical segment ×{extra}",
251
+ "Multi-segment cervical corpectomy.", "tumor/corpectomy add-on", False, 0.82, units=extra)
252
+ did_corpectomy = True
253
+ # Thoracic/Lumbar corpectomy (guard away from cervical)
254
+ if _has(t, r"\btumou?r\b|metastatic|metastasis|en bloc") or (_has(t, r"\bcorpectomy\b") and region in {"thoracic","lumbar"}):
255
+ _add(suggestions, "63085", "Vertebral corpectomy for decompression (thoracic/lumbar), first segment",
256
+ "Tumor/corpectomy documented.", "tumor/corpectomy", True, 0.84)
257
+ if _has(t, r"additional (level|segment)|two levels|three levels|multi|t\d-?t\d|l\d-?l\d"):
258
+ _add(suggestions, "63086", "Each additional segment (thoracic/lumbar) ×1+",
259
+ "Multi-segment corpectomy.", "tumor/corpectomy add-on", False, 0.8)
260
+ did_corpectomy = True
261
+
262
+ # If corpectomy present, suppress decompression rows
263
+ if did_corpectomy:
264
+ suggestions = [r for r in suggestions if r["category"] != "decompression" and r["cpt"] not in {"63045","63046","63047","63048"}]
265
+
266
+ # ---------- (11) Deformity / Smith-Petersen osteotomy ----------
267
+ if _has(t, r"\bspo\b|smith[- ]?petersen|posterior column osteotomy|osteotomy"):
268
+ base_map = {"cervical":"22210", "thoracic":"22214", "lumbar":"22206"}
269
+ base = base_map.get(region, "22206")
270
+ _add(suggestions, base, "Posterior column osteotomy (Smith-Petersen), first level",
271
+ "Deformity correction with SPO documented.", "deformity", True, 0.83)
272
+ if _has(t, r"additional (level|segment)|two levels|three levels|multi"):
273
+ # For simplicity keep base+1 add-on mapping
274
+ _add(suggestions, str(int(base)+1), "Each additional vertebral segment ×1+",
275
+ "Multi-level osteotomy.", "deformity add-on", False, 0.78)
276
+
277
+ # ---------- (12) Kyphoplasty / vertebral augmentation ----------
278
+ if _has(t, r"\bkyphoplasty\b|vertebroplasty|cement (augmentation|injection)"):
279
+ base_map = {"cervical":"22510", "thoracic":"22513", "lumbar":"22514"}
280
+ base = base_map.get(region, "22514")
281
+ _add(suggestions, base, "Percutaneous vertebral augmentation, first level",
282
+ "Vertebral augmentation terms present.", "percutaneous", True, 0.82)
283
+ if _has(t, r"additional (level|segment)|two levels|three levels|multi"):
284
+ _add(suggestions, "22515", "Each additional vertebral body ×1+",
285
+ "Multi-level augmentation.", "percutaneous add-on", False, 0.8)
286
+
287
+ # ---------- (13) Pelvic fixation ----------
288
+ if _has(t, r"\bpelvic fixation\b|iliac bolt|iliac screw|s2ai"):
289
+ _add(suggestions, "22848", "Pelvic fixation (attach instrumentation to pelvis)",
290
+ "Iliac/pelvic fixation documented.", "pelvic_fixation", False, 0.84)
291
+
292
+ # ---------- (14) Bone grafts (prefer structural 20931 over 20930) ----------
293
+ structural_like = _has(t, r"\b(structural allograft|fibular strut|strut graft|allograft spacer(s)?|interbody allograft spacer(s)?)\b")
294
+ any_allograft = _has(t, r"\ballograft\b|dbm|demineralized|osteo.?promotive")
295
+
296
+ if _has(t, r"\bautograft\b|iliac crest harvest|icbg"):
297
+ _add(suggestions, "20937", "Autograft (separate incision)",
298
+ "Autograft harvest documented.", "bone_graft", False, 0.8)
299
+
300
+ if structural_like:
301
+ _add(suggestions, "20931", "Structural allograft",
302
+ "Structural allograft documented.", "bone_graft", False, 0.8)
303
+ elif any_allograft:
304
+ _add(suggestions, "20930", "Allograft, morselized / osteopromotive material",
305
+ "Allograft/DBM documented.", "bone_graft", False, 0.8)
306
+
307
+ if _has(t, r"\bbmp\b|biologic|recombinant growth factor|rhbmp"):
308
+ _add(suggestions, "20939", "Osteopromotive biologic (e.g., BMP)",
309
+ "BMP/biologic documented.", "bone_graft", False, 0.8)
310
+
311
+ # ---------- Case Modifiers ----------
312
+ mod_map = {
313
+ "22": r"\b(complex|difficult|prolonged|adhesiolysis|severe deformity|morbid obesity)\b",
314
+ "50": r"\b(both sides|bilaterally|bilateral(?!\s*(pedicle|screw|screws|rod|rods|instrumentation)))\b",
315
+ "52": r"\bpartial|limited|reduced service\b",
316
+ "53": r"\baborted|terminated|discontinued\b",
317
+ "59": r"\bseparate (site|incision)|distinct|different level\b",
318
+ "62": r"\bco[- ]?surgeon|two surgeons|co-surgeons\b",
319
+ "78": r"\breturn to or\b|\bunplanned return\b",
320
+ "79": r"\bunrelated procedure\b",
321
+ "80": r"\bassistant surgeon|assistant present\b",
322
+ "82": r"\bresident not available\b"
323
+ }
324
+ reasons = {
325
+ "22": "Increased procedural service (complexity).",
326
+ "50": "Bilateral procedure documented.",
327
+ "52": "Reduced service (limited portion performed).",
328
+ "53": "Procedure discontinued for safety.",
329
+ "59": "Distinct procedural service (separate site/level).",
330
+ "62": "Two surgeons (co-surgeons) documented.",
331
+ "78": "Unplanned return to OR during global period.",
332
+ "79": "Unrelated procedure during postoperative period.",
333
+ "80": "Assistant surgeon documented.",
334
+ "82": "Assistant surgeon; resident not available."
335
+ }
336
+ for k, pat in mod_map.items():
337
+ if _has(t, pat): case_modifiers.append({"modifier": k, "reason": reasons[k]})
338
+
339
+ # EXPLICIT_BILATERAL_DECOMP: If 'bilateral' appears near decompression nouns, force 50 if not already set
340
+ if not any(m["modifier"]=="50" for m in case_modifiers):
341
+ if _has(t, r"\bbilateral\b") and _has(t, r"(foraminotom(y|ies)|facetectom(y|ies)|laminectom(y|ies)|laminotom(y|ies))"):
342
+ case_modifiers.append({"modifier":"50","reason": reasons["50"]})
343
+
344
+ # --- Modifier sanity rules ---
345
+ if any(m["modifier"]=="82" for m in case_modifiers):
346
+ case_modifiers = [m for m in case_modifiers if m["modifier"]!="80"]
347
+ if any(m["modifier"]=="53" for m in case_modifiers):
348
+ case_modifiers = [m for m in case_modifiers if m["modifier"]!="52"]
349
+
350
+ # Laterality: suppress row LT/RT if case has 50
351
+ lat_row_mods = [] if any(m["modifier"] == "50" for m in case_modifiers) else lat_mods
352
+ for row in suggestions:
353
+ if row["category"] in {"decompression","decompression add-on","TLIF/PLIF","posterior_fusion","posterior_fusion add-on"}:
354
+ if lat_row_mods and not row["modifiers"]:
355
+ row["modifiers"] = lat_row_mods
356
+ if any(m["modifier"] == "50" for m in case_modifiers):
357
+ for row in suggestions:
358
+ if row.get("modifiers"):
359
+ row["modifiers"] = [m for m in row["modifiers"] if m not in ("LT","RT")]
360
+
361
+ # ---------- Default guard ----------
362
+ if not suggestions:
363
+ suggestions = [{
364
+ "cpt": "00000",
365
+ "desc": "No recognizable spine CPT pattern found",
366
+ "rationale": "No fusion/decompression pattern detected.",
367
+ "confidence": 0.0, "category": "none", "primary": True, "modifiers": [], "units": 1, "score": 0.0
368
+ }]
369
+
370
+ # ---------- De-dup + order ----------
371
+ merged: Dict[Tuple[str, str, str, str], Dict[str, Any]] = {}
372
+ for r in suggestions:
373
+ key = (r["cpt"], r["desc"], r["category"], "|".join(sorted(r.get("modifiers", []))))
374
+ if key not in merged:
375
+ merged[key] = r.copy()
376
+ else:
377
+ merged[key]["units"] = merged[key].get("units", 1) + r.get("units", 1)
378
+ merged[key]["confidence"] = max(merged[key]["confidence"], r.get("confidence", 0.0))
379
+ merged[key]["score"] = max(merged[key]["score"], r.get("score", 0.0))
380
+ merged[key]["primary"] = merged[key]["primary"] or r.get("primary", False)
381
+
382
+ out = list(merged.values())
383
+
384
+ def _cpt_num(x: Dict[str, Any]) -> int:
385
+ try: return int(re.sub(r"\D","", x.get("cpt","0")) or 0)
386
+ except: return 0
387
+
388
+ out.sort(key=lambda r: (not r.get("primary", False), -(r.get("score", r.get("confidence",0.0))), _cpt_num(r)))
389
+ if isinstance(top_k, int) and top_k > 0: out = out[:top_k]
390
+
391
+ return {
392
+ "payer": payer,
393
+ "region": region,
394
+ "levels": levels,
395
+ "interspaces_est": inters,
396
+ "span_segments_est": span,
397
+ "suggestions": out,
398
+ "case_modifiers": case_modifiers
399
+ }
spine_coder/spine_coder/synthetic_dataset/generate_synthetic.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json, random
2
+ from pathlib import Path
3
+
4
+ DATA_DIR = Path(__file__).resolve().parent
5
+
6
+ def main():
7
+ random.seed(42)
8
+ buckets = {
9
+ "tlif":90,"acdf":70,"alif":45,"postlat":45,"decomp":75,
10
+ "arthro":20,"instr":20,"removal":20,"coflex":10,"deformity":20,
11
+ "tumor":15,"percut":15,"edge":55
12
+ }
13
+ all_rows=[]
14
+ for bucket,n in buckets.items():
15
+ for i in range(n):
16
+ note=f"Simulated operative note for {bucket} case."
17
+ # 8 % of notes with co-surgeons
18
+ if random.random()<0.08:
19
+ note+=" Co-surgeons performed the procedure; two surgeons documented."
20
+ all_rows.append({
21
+ "id":f"{bucket}_{i}",
22
+ "note":note,
23
+ "region":"lumbar" if "l" in bucket else "cervical",
24
+ "approach":"posterior" if "post" in bucket or "tlif" in bucket else "anterior",
25
+ "intent":"fusion" if "f" in bucket else "decompression",
26
+ "levels":["L4","L5"],
27
+ "laterality":random.choice(["left","right","bilateral"]),
28
+ "flags":{},
29
+ "labels":[{"cpt":"22633" if "tlif" in bucket else "22551","desc":"demo"}]
30
+ })
31
+ jsonl=DATA_DIR/"notes_500.jsonl"
32
+ jsonl.write_text("\n".join(json.dumps(r) for r in all_rows))
33
+ csv=DATA_DIR/"notes_500.csv"
34
+ import pandas as pd
35
+ pd.DataFrame(all_rows).to_csv(csv,index=False)
36
+ print("✅ Wrote 500 synthetic cases to:", jsonl)
37
+
38
+ if __name__=="__main__":
39
+ main()
40
+
41
+ # === PATCH: complexity (modifier-22) seeding ===
42
+ def inject_complexity_phrase(note_dict):
43
+ import random
44
+ if random.random() < 0.10:
45
+ note_dict["note"] += " This was a complex, prolonged operative procedure due to severe deformity and scarring."
46
+ return note_dict
47
+
48
+ # Wrap main() write to include complexity seeding
49
+ _old_main = main
50
+ def main():
51
+ out = _old_main()
52
+ import json
53
+ data_file = Path(DATA_DIR) / "notes_500.jsonl"
54
+ lines = [json.loads(l) for l in data_file.read_text().splitlines() if l.strip()]
55
+ lines = [inject_complexity_phrase(l) for l in lines]
56
+ data_file.write_text("\n".join(json.dumps(x) for x in lines))
57
+ print("✅ Complexity phrases injected into ~10% of dataset")
58
+ return out
spine_coder/spine_coder/synthetic_dataset/notes_500.csv ADDED
@@ -0,0 +1,501 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ id,note,region,approach,intent,levels,laterality,flags,labels
2
+ tlif_0,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
3
+ tlif_1,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
4
+ tlif_2,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
5
+ tlif_3,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
6
+ tlif_4,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
7
+ tlif_5,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
8
+ tlif_6,Simulated operative note for tlif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
9
+ tlif_7,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
10
+ tlif_8,Simulated operative note for tlif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
11
+ tlif_9,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
12
+ tlif_10,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
13
+ tlif_11,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
14
+ tlif_12,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
15
+ tlif_13,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
16
+ tlif_14,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
17
+ tlif_15,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
18
+ tlif_16,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
19
+ tlif_17,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
20
+ tlif_18,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
21
+ tlif_19,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
22
+ tlif_20,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
23
+ tlif_21,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
24
+ tlif_22,Simulated operative note for tlif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
25
+ tlif_23,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
26
+ tlif_24,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
27
+ tlif_25,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
28
+ tlif_26,Simulated operative note for tlif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
29
+ tlif_27,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
30
+ tlif_28,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
31
+ tlif_29,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
32
+ tlif_30,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
33
+ tlif_31,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
34
+ tlif_32,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
35
+ tlif_33,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
36
+ tlif_34,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
37
+ tlif_35,Simulated operative note for tlif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
38
+ tlif_36,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
39
+ tlif_37,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
40
+ tlif_38,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
41
+ tlif_39,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
42
+ tlif_40,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
43
+ tlif_41,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
44
+ tlif_42,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
45
+ tlif_43,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
46
+ tlif_44,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
47
+ tlif_45,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
48
+ tlif_46,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
49
+ tlif_47,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
50
+ tlif_48,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
51
+ tlif_49,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
52
+ tlif_50,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
53
+ tlif_51,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
54
+ tlif_52,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
55
+ tlif_53,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
56
+ tlif_54,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
57
+ tlif_55,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
58
+ tlif_56,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
59
+ tlif_57,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
60
+ tlif_58,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
61
+ tlif_59,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
62
+ tlif_60,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
63
+ tlif_61,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
64
+ tlif_62,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
65
+ tlif_63,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
66
+ tlif_64,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
67
+ tlif_65,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
68
+ tlif_66,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
69
+ tlif_67,Simulated operative note for tlif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
70
+ tlif_68,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
71
+ tlif_69,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
72
+ tlif_70,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
73
+ tlif_71,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
74
+ tlif_72,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
75
+ tlif_73,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
76
+ tlif_74,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
77
+ tlif_75,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
78
+ tlif_76,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
79
+ tlif_77,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
80
+ tlif_78,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
81
+ tlif_79,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
82
+ tlif_80,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
83
+ tlif_81,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
84
+ tlif_82,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
85
+ tlif_83,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
86
+ tlif_84,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
87
+ tlif_85,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
88
+ tlif_86,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
89
+ tlif_87,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
90
+ tlif_88,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
91
+ tlif_89,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
92
+ acdf_0,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
93
+ acdf_1,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
94
+ acdf_2,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
95
+ acdf_3,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
96
+ acdf_4,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
97
+ acdf_5,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
98
+ acdf_6,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
99
+ acdf_7,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
100
+ acdf_8,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
101
+ acdf_9,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
102
+ acdf_10,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
103
+ acdf_11,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
104
+ acdf_12,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
105
+ acdf_13,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
106
+ acdf_14,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
107
+ acdf_15,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
108
+ acdf_16,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
109
+ acdf_17,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
110
+ acdf_18,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
111
+ acdf_19,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
112
+ acdf_20,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
113
+ acdf_21,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
114
+ acdf_22,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
115
+ acdf_23,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
116
+ acdf_24,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
117
+ acdf_25,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
118
+ acdf_26,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
119
+ acdf_27,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
120
+ acdf_28,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
121
+ acdf_29,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
122
+ acdf_30,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
123
+ acdf_31,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
124
+ acdf_32,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
125
+ acdf_33,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
126
+ acdf_34,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
127
+ acdf_35,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
128
+ acdf_36,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
129
+ acdf_37,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
130
+ acdf_38,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
131
+ acdf_39,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
132
+ acdf_40,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
133
+ acdf_41,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
134
+ acdf_42,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
135
+ acdf_43,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
136
+ acdf_44,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
137
+ acdf_45,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
138
+ acdf_46,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
139
+ acdf_47,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
140
+ acdf_48,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
141
+ acdf_49,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
142
+ acdf_50,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
143
+ acdf_51,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
144
+ acdf_52,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
145
+ acdf_53,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
146
+ acdf_54,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
147
+ acdf_55,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
148
+ acdf_56,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
149
+ acdf_57,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
150
+ acdf_58,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
151
+ acdf_59,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
152
+ acdf_60,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
153
+ acdf_61,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
154
+ acdf_62,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
155
+ acdf_63,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
156
+ acdf_64,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
157
+ acdf_65,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
158
+ acdf_66,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
159
+ acdf_67,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
160
+ acdf_68,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
161
+ acdf_69,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
162
+ alif_0,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
163
+ alif_1,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
164
+ alif_2,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
165
+ alif_3,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
166
+ alif_4,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
167
+ alif_5,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
168
+ alif_6,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
169
+ alif_7,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
170
+ alif_8,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
171
+ alif_9,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
172
+ alif_10,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
173
+ alif_11,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
174
+ alif_12,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
175
+ alif_13,Simulated operative note for alif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
176
+ alif_14,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
177
+ alif_15,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
178
+ alif_16,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
179
+ alif_17,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
180
+ alif_18,Simulated operative note for alif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
181
+ alif_19,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
182
+ alif_20,Simulated operative note for alif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
183
+ alif_21,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
184
+ alif_22,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
185
+ alif_23,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
186
+ alif_24,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
187
+ alif_25,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
188
+ alif_26,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
189
+ alif_27,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
190
+ alif_28,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
191
+ alif_29,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
192
+ alif_30,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
193
+ alif_31,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
194
+ alif_32,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
195
+ alif_33,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
196
+ alif_34,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
197
+ alif_35,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
198
+ alif_36,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
199
+ alif_37,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
200
+ alif_38,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
201
+ alif_39,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
202
+ alif_40,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
203
+ alif_41,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
204
+ alif_42,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
205
+ alif_43,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
206
+ alif_44,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
207
+ postlat_0,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
208
+ postlat_1,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
209
+ postlat_2,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
210
+ postlat_3,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
211
+ postlat_4,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
212
+ postlat_5,Simulated operative note for postlat case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
213
+ postlat_6,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
214
+ postlat_7,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
215
+ postlat_8,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
216
+ postlat_9,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
217
+ postlat_10,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
218
+ postlat_11,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
219
+ postlat_12,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
220
+ postlat_13,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
221
+ postlat_14,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
222
+ postlat_15,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
223
+ postlat_16,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
224
+ postlat_17,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
225
+ postlat_18,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
226
+ postlat_19,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
227
+ postlat_20,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
228
+ postlat_21,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
229
+ postlat_22,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
230
+ postlat_23,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
231
+ postlat_24,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
232
+ postlat_25,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
233
+ postlat_26,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
234
+ postlat_27,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
235
+ postlat_28,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
236
+ postlat_29,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
237
+ postlat_30,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
238
+ postlat_31,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
239
+ postlat_32,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
240
+ postlat_33,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
241
+ postlat_34,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
242
+ postlat_35,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
243
+ postlat_36,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
244
+ postlat_37,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
245
+ postlat_38,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
246
+ postlat_39,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
247
+ postlat_40,Simulated operative note for postlat case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
248
+ postlat_41,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
249
+ postlat_42,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
250
+ postlat_43,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
251
+ postlat_44,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
252
+ decomp_0,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
253
+ decomp_1,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
254
+ decomp_2,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
255
+ decomp_3,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
256
+ decomp_4,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
257
+ decomp_5,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
258
+ decomp_6,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
259
+ decomp_7,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
260
+ decomp_8,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
261
+ decomp_9,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
262
+ decomp_10,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
263
+ decomp_11,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
264
+ decomp_12,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
265
+ decomp_13,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
266
+ decomp_14,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
267
+ decomp_15,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
268
+ decomp_16,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
269
+ decomp_17,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
270
+ decomp_18,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
271
+ decomp_19,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
272
+ decomp_20,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
273
+ decomp_21,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
274
+ decomp_22,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
275
+ decomp_23,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
276
+ decomp_24,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
277
+ decomp_25,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
278
+ decomp_26,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
279
+ decomp_27,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
280
+ decomp_28,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
281
+ decomp_29,Simulated operative note for decomp case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
282
+ decomp_30,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
283
+ decomp_31,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
284
+ decomp_32,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
285
+ decomp_33,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
286
+ decomp_34,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
287
+ decomp_35,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
288
+ decomp_36,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
289
+ decomp_37,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
290
+ decomp_38,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
291
+ decomp_39,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
292
+ decomp_40,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
293
+ decomp_41,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
294
+ decomp_42,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
295
+ decomp_43,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
296
+ decomp_44,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
297
+ decomp_45,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
298
+ decomp_46,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
299
+ decomp_47,Simulated operative note for decomp case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
300
+ decomp_48,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
301
+ decomp_49,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
302
+ decomp_50,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
303
+ decomp_51,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
304
+ decomp_52,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
305
+ decomp_53,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
306
+ decomp_54,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
307
+ decomp_55,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
308
+ decomp_56,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
309
+ decomp_57,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
310
+ decomp_58,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
311
+ decomp_59,Simulated operative note for decomp case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
312
+ decomp_60,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
313
+ decomp_61,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
314
+ decomp_62,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
315
+ decomp_63,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
316
+ decomp_64,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
317
+ decomp_65,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
318
+ decomp_66,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
319
+ decomp_67,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
320
+ decomp_68,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
321
+ decomp_69,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
322
+ decomp_70,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
323
+ decomp_71,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
324
+ decomp_72,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
325
+ decomp_73,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
326
+ decomp_74,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
327
+ arthro_0,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
328
+ arthro_1,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
329
+ arthro_2,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
330
+ arthro_3,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
331
+ arthro_4,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
332
+ arthro_5,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
333
+ arthro_6,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
334
+ arthro_7,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
335
+ arthro_8,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
336
+ arthro_9,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
337
+ arthro_10,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
338
+ arthro_11,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
339
+ arthro_12,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
340
+ arthro_13,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
341
+ arthro_14,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
342
+ arthro_15,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
343
+ arthro_16,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
344
+ arthro_17,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
345
+ arthro_18,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
346
+ arthro_19,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
347
+ instr_0,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
348
+ instr_1,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
349
+ instr_2,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
350
+ instr_3,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
351
+ instr_4,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
352
+ instr_5,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
353
+ instr_6,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
354
+ instr_7,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
355
+ instr_8,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
356
+ instr_9,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
357
+ instr_10,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
358
+ instr_11,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
359
+ instr_12,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
360
+ instr_13,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
361
+ instr_14,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
362
+ instr_15,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
363
+ instr_16,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
364
+ instr_17,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
365
+ instr_18,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
366
+ instr_19,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
367
+ removal_0,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
368
+ removal_1,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
369
+ removal_2,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
370
+ removal_3,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
371
+ removal_4,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
372
+ removal_5,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
373
+ removal_6,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
374
+ removal_7,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
375
+ removal_8,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
376
+ removal_9,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
377
+ removal_10,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
378
+ removal_11,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
379
+ removal_12,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
380
+ removal_13,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
381
+ removal_14,Simulated operative note for removal case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
382
+ removal_15,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
383
+ removal_16,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
384
+ removal_17,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
385
+ removal_18,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
386
+ removal_19,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
387
+ coflex_0,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
388
+ coflex_1,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
389
+ coflex_2,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
390
+ coflex_3,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
391
+ coflex_4,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
392
+ coflex_5,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
393
+ coflex_6,Simulated operative note for coflex case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
394
+ coflex_7,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
395
+ coflex_8,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
396
+ coflex_9,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
397
+ deformity_0,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
398
+ deformity_1,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
399
+ deformity_2,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
400
+ deformity_3,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
401
+ deformity_4,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
402
+ deformity_5,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
403
+ deformity_6,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
404
+ deformity_7,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
405
+ deformity_8,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
406
+ deformity_9,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
407
+ deformity_10,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
408
+ deformity_11,Simulated operative note for deformity case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
409
+ deformity_12,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
410
+ deformity_13,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
411
+ deformity_14,Simulated operative note for deformity case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
412
+ deformity_15,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
413
+ deformity_16,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
414
+ deformity_17,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
415
+ deformity_18,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
416
+ deformity_19,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
417
+ tumor_0,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
418
+ tumor_1,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
419
+ tumor_2,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
420
+ tumor_3,Simulated operative note for tumor case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
421
+ tumor_4,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
422
+ tumor_5,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
423
+ tumor_6,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
424
+ tumor_7,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
425
+ tumor_8,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
426
+ tumor_9,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
427
+ tumor_10,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
428
+ tumor_11,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
429
+ tumor_12,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
430
+ tumor_13,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
431
+ tumor_14,Simulated operative note for tumor case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
432
+ percut_0,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
433
+ percut_1,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
434
+ percut_2,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
435
+ percut_3,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
436
+ percut_4,Simulated operative note for percut case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
437
+ percut_5,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
438
+ percut_6,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
439
+ percut_7,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
440
+ percut_8,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
441
+ percut_9,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
442
+ percut_10,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
443
+ percut_11,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
444
+ percut_12,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
445
+ percut_13,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
446
+ percut_14,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
447
+ edge_0,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
448
+ edge_1,Simulated operative note for edge case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
449
+ edge_2,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
450
+ edge_3,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
451
+ edge_4,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
452
+ edge_5,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
453
+ edge_6,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
454
+ edge_7,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
455
+ edge_8,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
456
+ edge_9,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
457
+ edge_10,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
458
+ edge_11,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
459
+ edge_12,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
460
+ edge_13,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
461
+ edge_14,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
462
+ edge_15,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
463
+ edge_16,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
464
+ edge_17,Simulated operative note for edge case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
465
+ edge_18,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
466
+ edge_19,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
467
+ edge_20,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
468
+ edge_21,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
469
+ edge_22,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
470
+ edge_23,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
471
+ edge_24,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
472
+ edge_25,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
473
+ edge_26,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
474
+ edge_27,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
475
+ edge_28,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
476
+ edge_29,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
477
+ edge_30,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
478
+ edge_31,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
479
+ edge_32,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
480
+ edge_33,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
481
+ edge_34,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
482
+ edge_35,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
483
+ edge_36,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
484
+ edge_37,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
485
+ edge_38,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
486
+ edge_39,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
487
+ edge_40,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
488
+ edge_41,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
489
+ edge_42,Simulated operative note for edge case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
490
+ edge_43,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
491
+ edge_44,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
492
+ edge_45,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
493
+ edge_46,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
494
+ edge_47,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
495
+ edge_48,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
496
+ edge_49,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
497
+ edge_50,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
498
+ edge_51,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
499
+ edge_52,Simulated operative note for edge case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
500
+ edge_53,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
501
+ edge_54,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
spine_coder/spine_coder/synthetic_dataset/notes_500.jsonl ADDED
The diff for this file is too large to render. See raw diff
 
spine_coder/spine_coder/tests/__pycache__/conftest.cpython-312-pytest-8.4.2.pyc ADDED
Binary file (754 Bytes). View file
 
spine_coder/spine_coder/tests/__pycache__/test_conflicts.cpython-312-pytest-8.4.2.pyc ADDED
Binary file (2.81 kB). View file
 
spine_coder/spine_coder/tests/__pycache__/test_coverage_and_modifiers.cpython-312-pytest-8.4.2.pyc ADDED
Binary file (8.37 kB). View file
 
spine_coder/spine_coder/tests/__pycache__/test_dataset_basic.cpython-312-pytest-8.4.2.pyc ADDED
Binary file (6.13 kB). View file
 
spine_coder/spine_coder/tests/conftest.py ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ import os, sys
2
+ ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))
3
+ if ROOT not in sys.path:
4
+ sys.path.insert(0, ROOT)
5
+ print("✅ conftest.py ready — sys.path patched for pytest imports")
spine_coder/spine_coder/tests/test_conflicts.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from pathlib import Path
3
+ DATA_DIR = Path(__file__).resolve().parents[1] / "synthetic_dataset"
4
+ def _rows(): return [json.loads(l) for l in (DATA_DIR / "notes_500.jsonl").read_text().splitlines() if l.strip()]
5
+ def test_no_conflicts():
6
+ for r in _rows():
7
+ labs=[l["cpt"] for l in r["labels"]]
8
+ assert not ("22633" in labs and "22558" in labs), "Cannot mix TLIF and ALIF in same case"
9
+ print("✅ test_conflicts ready")
spine_coder/spine_coder/tests/test_coverage_and_modifiers.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from pathlib import Path
3
+ from spine_coder.spine_coder_core import suggest_with_cpt_billing
4
+
5
+ DATA_DIR = Path(__file__).resolve().parents[1] / "synthetic_dataset"
6
+ def _rows(): return [json.loads(l) for l in (DATA_DIR / "notes_500.jsonl").read_text().splitlines() if l.strip()]
7
+
8
+ def test_cpt_presence():
9
+ counts={}
10
+ for r in _rows():
11
+ for l in r["labels"]:
12
+ counts[l["cpt"]] = counts.get(l["cpt"],0)+1
13
+ assert counts.get("22633",0) >= 80
14
+ assert counts.get("22551",0) >= 50
15
+
16
+ def test_modifiers():
17
+ mod_counts={}
18
+ for r in _rows():
19
+ out=suggest_with_cpt_billing(r["note"])
20
+ for m in out.get("case_modifiers",[]):
21
+ mod=m["modifier"]
22
+ mod_counts[mod]=mod_counts.get(mod,0)+1
23
+ assert mod_counts.get("22",0)>=30
24
+ assert mod_counts.get("53",0)>=20
25
+ assert mod_counts.get("50",0)>=60
26
+ assert mod_counts.get("62",0)>=20
27
+ assert (mod_counts.get("80",0)+mod_counts.get("82",0))>=30
28
+ print("✅ test_coverage_and_modifiers ready")
spine_coder/spine_coder/tests/test_dataset_basic.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from pathlib import Path
3
+ import pandas as pd
4
+
5
+ DATA_DIR = Path(__file__).resolve().parents[1] / "synthetic_dataset"
6
+
7
+ def test_files_exist():
8
+ assert (DATA_DIR / "notes_500.jsonl").exists()
9
+ assert (DATA_DIR / "notes_500.csv").exists()
10
+
11
+ def test_counts_and_fields():
12
+ rows = [json.loads(l) for l in (DATA_DIR / "notes_500.jsonl").read_text().splitlines() if l.strip()]
13
+ assert len(rows) == 500
14
+ required = {"id","note","region","approach","intent","levels","laterality","flags","labels"}
15
+ for r in rows:
16
+ assert required.issubset(r.keys())
17
+
18
+ df = pd.read_csv(DATA_DIR / "notes_500.csv")
19
+ assert len(df) == 500
20
+ for col in ["id","note","region","approach","intent","laterality","labels"]:
21
+ assert col in df.columns
22
+
23
+ print("✅ test_dataset_basic ready")
spine_coder/spine_coder_core.py ADDED
@@ -0,0 +1,399 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import re, json
3
+ from typing import Dict, Any, List, Tuple
4
+
5
+ # ---------- helpers ----------
6
+ def _norm(s: str) -> str:
7
+ if not s: return ""
8
+ s = s.replace("\u2013","-").replace("\u2014","-").replace("—","-").replace("–","-").replace("\u00A0"," ")
9
+ s = re.sub(r"\s+", " ", s.strip().lower())
10
+ return s
11
+
12
+ def _has(text: str, pat: str) -> bool:
13
+ return re.search(pat, text, flags=re.I) is not None
14
+
15
+ def _level_sort_key(lv: str) -> Tuple[int, int]:
16
+ band = {"C":100, "T":200, "L":300, "S":400}.get(lv[0], 999)
17
+ num = int(re.sub(r"\D", "", lv) or 0)
18
+ return (band, num)
19
+
20
+ def _extract_levels(t: str) -> List[str]:
21
+ levels = set()
22
+ for m in re.finditer(r"\b([CTLS])\s?(\d{1,2})\s*[-–]\s*([CTLS])?\s?(\d{1,2})\b", t, flags=re.I):
23
+ pfx1, n1, pfx2, n2 = m.group(1).upper(), int(m.group(2)), (m.group(3) or m.group(1)).upper(), int(m.group(4))
24
+ if pfx1 != pfx2:
25
+ levels.add(f"{pfx1}{n1}"); levels.add(f"{pfx2}{n2}")
26
+ else:
27
+ lo, hi = sorted([n1, n2])
28
+ for k in range(lo, hi+1): levels.add(f"{pfx1}{k}")
29
+ for m in re.finditer(r"\b([CTLS])\s?(\d{1,2})\b", t, flags=re.I):
30
+ levels.add(f"{m.group(1).upper()}{int(m.group(2))}")
31
+ return sorted(levels, key=_level_sort_key)
32
+
33
+ def _count_interspaces(levels: List[str]) -> int:
34
+ if not levels: return 0
35
+ by_band: Dict[str, List[int]] = {}
36
+ for lv in levels:
37
+ by_band.setdefault(lv[0], []).append(int(re.sub(r"\D", "", lv)))
38
+ for b in list(by_band): by_band[b] = sorted(set(by_band[b]))
39
+ inters = 0
40
+ for arr in by_band.values():
41
+ if len(arr) >= 2:
42
+ inters += sum(1 for i in range(1, len(arr)) if arr[i]-arr[i-1]==1)
43
+ if "L5" in levels and "S1" in levels: inters += 1
44
+ if inters == 0:
45
+ for arr in by_band.values():
46
+ if len(arr) >= 2: inters = 1; break
47
+ return inters
48
+
49
+ def _span_segments(levels: List[str]) -> int:
50
+ if not levels: return 0
51
+ by_band: Dict[str, List[int]] = {}
52
+ for lv in levels:
53
+ by_band.setdefault(lv[0], []).append(int(re.sub(r"\D", "", lv)))
54
+ spans = []
55
+ for arr in by_band.values():
56
+ arr = sorted(set(arr))
57
+ spans.append(arr[-1]-arr[0]+1 if len(arr)>=2 else 1)
58
+ return (max(spans) if spans else 0) if len(spans)==1 else max(spans + [2])
59
+
60
+ def _laterality_mods(t: str) -> List[str]:
61
+ mods: List[str] = []
62
+ if _has(t, r"\bleft\b|left-sided|left side|leftward|hemilam\w* left|foraminotomy left|\blt\b"):
63
+ mods.append("LT")
64
+ # tighten RIGHT: drop bare \brt\b to avoid accidental hits
65
+ if _has(t, r"\bright\b|right-sided|right side|rightward|hemilam\w* right|foraminotomy right"):
66
+ mods.append("RT")
67
+ return list(sorted(set(mods)))
68
+
69
+ def _add(suggestions: List[Dict[str, Any]], cpt: str, desc: str, rationale: str,
70
+ category: str, primary: bool, confidence: float = 0.8, units: int = 1,
71
+ mods: List[str] = None, score: float = None):
72
+ suggestions.append({
73
+ "cpt": cpt, "desc": desc, "rationale": rationale, "category": category,
74
+ "primary": primary, "confidence": confidence, "units": units,
75
+ "modifiers": mods or [], "score": score if score is not None else confidence
76
+ })
77
+
78
+ def _inst_code_by_span(span_segments: int, anterior: bool) -> str:
79
+ if span_segments <= 1: return ""
80
+ if anterior:
81
+ return "22845" if span_segments <= 3 else ("22846" if span_segments <= 7 else "22847")
82
+ else:
83
+ return "22842" if span_segments <= 3 else ("22843" if span_segments <= 7 else "22844")
84
+
85
+ # ---------- main ----------
86
+ def suggest_with_cpt_billing(note: str, payer: str = "Medicare", top_k: int = 10) -> Dict[str, Any]:
87
+ t = _norm(note)
88
+ suggestions: List[Dict[str, Any]] = []
89
+ case_modifiers: List[Dict[str, str]] = []
90
+
91
+ levels = _extract_levels(t)
92
+ inters = _count_interspaces(levels)
93
+ span = _span_segments(levels)
94
+ lat_mods = _laterality_mods(t)
95
+
96
+ # ---------- Region ----------
97
+ region = "unknown"
98
+ if any(l.startswith("C") for l in levels) or _has(t, r"\bcervic"): region = "cervical"
99
+ elif any(l.startswith("T") for l in levels) or _has(t, r"\bthorac"): region = "thoracic"
100
+ elif any(l.startswith(("L","S")) for l in levels) or _has(t, r"\blumbar|sacrum"): region = "lumbar"
101
+
102
+ # Helper flags
103
+ mentions_plate_ant = _has(t, r"\b(anterior (plate|instrument(ation)?)|plate fixed|plating)\b") or _has(t, r"\bplate\b")
104
+ mentions_pedicle = _has(t, r"\bpedicle screw|pedicle-screw|pedicle fixation|s2ai\b")
105
+ mentions_rod = _has(t, r"\brod(s)?\b")
106
+ mentions_inst_post = mentions_pedicle or mentions_rod or _has(t, r"\binstrument(ation)?\b")
107
+
108
+ did_corpectomy = False
109
+ no_decompression_due_to_revision = False
110
+ avoid_decompression_for_stimulator = False
111
+
112
+ # ---------- (1) Hardware removal (support both word orders) ----------
113
+ rem_pat_either = (
114
+ r"(?:\b(hardware|instrumentation|implant|plate|rod|screw)\b.{0,40}\b(remov\w+|explant\w+|taken out))"
115
+ r"|(?:\bremov\w+\b.{0,40}\b(hardware|instrumentation|implant|plate|rod|screw)\b)"
116
+ )
117
+ if _has(t, rem_pat_either):
118
+ if _has(t, r"\banterior\b|acdf|alif|anterior plate|smith[- ]?robinson"):
119
+ _add(suggestions, "22855", "Removal of anterior instrumentation",
120
+ "Anterior hardware removal documented.", "hardware_removal", True, 0.85, mods=lat_mods)
121
+ elif _has(t, r"non[- ]?segmental|hook|wire") and not _has(t, r"segmental|pedicle"):
122
+ _add(suggestions, "22850", "Removal of posterior non-segmental instrumentation",
123
+ "Posterior non-segmental removal documented.", "hardware_removal", True, 0.82, mods=lat_mods)
124
+ else:
125
+ _add(suggestions, "22852", "Removal of posterior segmental instrumentation",
126
+ "Posterior segmental hardware removal documented.", "hardware_removal", True, 0.85, mods=lat_mods)
127
+
128
+ # If remove + replace/reinsert/revision language → add 22849 and avoid decompression auto-fires
129
+ if _has(t, r"\b(reinsertion|remove and replace|revision of instrumentation|hardware revision)\b"):
130
+ _add(suggestions, "22849", "Reinsertion/revision of spinal instrumentation",
131
+ "Revision/reinsertion documented.", "revision", True, 0.85)
132
+ no_decompression_due_to_revision = True
133
+
134
+ # ---------- (2) ACDF with guards (history/removal) ----------
135
+ found_removal = _has(t, rem_pat_either)
136
+ acdf_history = _has(t, r"\b(prior|previous|history of|s/?p)\s*acdf\b")
137
+ acdf_current = _has(t, r"\banterior cervical discectomy|anterior cervical fusion|smith[- ]?robinson\b")
138
+ if (acdf_current or (_has(t, r"\bacdf\b") and not acdf_history)) and not (found_removal and not acdf_current):
139
+ n = max(1, inters or 1)
140
+ _add(suggestions, "22551", "ACDF, first interspace (includes discectomy)",
141
+ "Anterior cervical fusion pattern detected.", "ACDF", True, 0.95, mods=lat_mods)
142
+ if n > 1:
143
+ _add(suggestions, "22552", f"ACDF, each additional interspace ×{n-1}",
144
+ "Multi-level ACDF.", "ACDF add-on", False, 0.9, units=(n-1), mods=lat_mods)
145
+ if mentions_plate_ant:
146
+ code = _inst_code_by_span(span or (n+1), anterior=True)
147
+ if code:
148
+ desc = {"22845":"Anterior instrumentation (2–3 segments)",
149
+ "22846":"Anterior instrumentation (4–7 segments)",
150
+ "22847":"Anterior instrumentation (8+ segments)"}[code]
151
+ _add(suggestions, code, desc, "Anterior plate present; span estimated from levels.", "instrumentation", False, 0.8)
152
+
153
+ # ---------- (3) TLIF / PLIF (beats posterior fusion) ----------
154
+ if _has(t, r"\btlif\b|\bplif\b|posterior interbody fusion"):
155
+ n = max(1, inters or 1)
156
+ _add(suggestions, "22633", "Posterior/posterolateral + posterior interbody, single level",
157
+ "TLIF/PLIF pattern: posterior approach + cage + screws.", "TLIF/PLIF", True, 0.92, mods=lat_mods)
158
+ if n > 1:
159
+ _add(suggestions, "22634", f"Posterior interbody each additional interspace ×{n-1}",
160
+ "Multi-level TLIF/PLIF.", "TLIF/PLIF add-on", False, 0.88, units=(n-1), mods=lat_mods)
161
+ if mentions_inst_post:
162
+ code = _inst_code_by_span(span or (n+1), anterior=False)
163
+ if code:
164
+ desc = {"22842":"Posterior segmental instrumentation (2–3 segments)",
165
+ "22843":"Posterior segmental instrumentation (4–7 segments)",
166
+ "22844":"Posterior segmental instrumentation (8+ segments)"}[code]
167
+ _add(suggestions, code, desc, "Posterior instrumentation detected.", "instrumentation", False, 0.82)
168
+
169
+ # ---------- (4) ALIF ----------
170
+ if _has(t, r"\balif\b|anterior lumbar interbody fusion"):
171
+ n = max(1, inters or 1)
172
+ _add(suggestions, "22558", "Anterior lumbar interbody fusion, single interspace",
173
+ "ALIF detected.", "ALIF", True, 0.9)
174
+ if n > 1:
175
+ _add(suggestions, "22585", f"ALIF each additional interspace ×{n-1}",
176
+ "Multi-level ALIF.", "ALIF add-on", False, 0.86, units=(n-1))
177
+ if mentions_plate_ant:
178
+ code = _inst_code_by_span(span or (n+1), anterior=True)
179
+ if code:
180
+ desc = {"22845":"Anterior instrumentation (2–3 segments)",
181
+ "22846":"Anterior instrumentation (4–7 segments)",
182
+ "22847":"Anterior instrumentation (8+ segments)"}[code]
183
+ _add(suggestions, code, desc, "Anterior plate present; span estimated from levels.", "instrumentation", False, 0.8)
184
+
185
+ # ---------- (5) Posterolateral/posterior fusion WITHOUT interbody ----------
186
+ if (_has(t, r"posterolateral\b.*\bfusion|post[- ]?lat\b.*\bfusion|posterior\b.*\bfusion|in situ\b.*\bfusion")
187
+ and not _has(t, r"\btlif\b|\bplif\b|posterior interbody")):
188
+ base_map = {"cervical":"22600", "thoracic":"22610", "lumbar":"22612"}
189
+ base = base_map.get(region, "22612")
190
+ _add(suggestions, base, f"Posterolateral/posterior fusion, first level ({region})",
191
+ "Posterior fusion without interbody.", "posterior_fusion", True, 0.78, mods=lat_mods)
192
+ add_units = max(0, inters)
193
+ if add_units:
194
+ _add(suggestions, "22614", f"Posterior fusion each additional segment ×{add_units}",
195
+ "Multi-level posterior fusion.", "posterior_fusion add-on", False, 0.72, units=add_units, mods=lat_mods)
196
+ if mentions_inst_post:
197
+ n_seg = span or max(2, (inters + 1))
198
+ code = _inst_code_by_span(n_seg, anterior=False)
199
+ if code:
200
+ desc = {"22842":"Posterior segmental instrumentation (2–3 segments)",
201
+ "22843":"Posterior segmental instrumentation (4–7 segments)",
202
+ "22844":"Posterior segmental instrumentation (8+ segments)"}[code]
203
+ _add(suggestions, code, desc, "Posterior instrumentation detected.", "instrumentation", False, 0.8)
204
+
205
+ # ---------- (6) Neurostimulator paddle + IPG ----------
206
+ if _has(t, r"\bstimulator\b|paddle lead|spinal cord stimulator|scs") and _has(t, r"\blaminectomy\b|laminotomy"):
207
+ _add(suggestions, "63655", "Laminectomy for implantation of neurostimulator paddle electrodes",
208
+ "Paddle lead placed via laminectomy.", "neurostimulator", True, 0.86)
209
+ if _has(t, r"\bpulse generator\b|ipg|implantable pulse generator|battery\b"):
210
+ _add(suggestions, "63685", "Insertion or replacement of IPG",
211
+ "Pulse generator implanted.", "neurostimulator", False, 0.84)
212
+ avoid_decompression_for_stimulator = True
213
+
214
+ # ---------- (7) Decompression (guarded: no history/corpectomy/revision/stimulator) ----------
215
+ if (not no_decompression_due_to_revision) and (not avoid_decompression_for_stimulator):
216
+ if _has(t, r"\bdecompression(s)?\b|laminectom(y|ies)|laminotom(y|ies)|foraminotom(y|ies)|foraminal decompression(s)?|neuroforamen|lateral recess|central stenosis") \
217
+ and not _has(t, r"\b(prior|previous|history of|s/?p)\s+(decompression|laminectomy|laminotomy|foraminotomy)\b"):
218
+ base_map = {"cervical":"63045", "thoracic":"63046", "lumbar":"63047"}
219
+ base = base_map.get(region, "63047")
220
+ _add(suggestions, base, "Decompression, first level", "Decompression terms detected.", "decompression", True, 0.82, mods=lat_mods)
221
+ if _has(t, r"additional level|two levels|three levels|multi|levels|l\d-?l\d|c\d-?c\d|t\d-?t\d"):
222
+ extra = max(1, inters)
223
+ _add(suggestions, "63048", f"Decompression, each additional level ×{extra}",
224
+ "Multi-level decompression inferred.", "decompression add-on", False, 0.78, units=extra, mods=lat_mods)
225
+
226
+ # ---------- (8) Interspinous/interlaminar device ----------
227
+ if _has(t, r"\bcoflex\b|interspinous|interlaminar device|ipd"):
228
+ _add(suggestions, "22868", "Insertion of interspinous/interlaminar device",
229
+ "Coflex/IPD insertion documented.", "interspinous", True, 0.86, mods=lat_mods)
230
+
231
+ # ---------- (9) Cervical disc arthroplasty ----------
232
+ if _has(t, r"cervical (arthroplasty|artificial disc|disc replacement)|\bcda\b") or (
233
+ (region == "cervical") and _has(t, r"\barthroplasty\b|artificial disc|disc replacement")
234
+ ):
235
+ n = max(1, inters or 1)
236
+ _add(suggestions, "22856", "Cervical disc arthroplasty, single level",
237
+ "Cervical disc arthroplasty documented.", "arthroplasty", True, 0.87, mods=lat_mods)
238
+ if n > 1:
239
+ _add(suggestions, "22858", f"Cervical disc arthroplasty, each additional level ×{n-1}",
240
+ "Multi-level arthroplasty.", "arthroplasty add-on", False, 0.84, units=(n-1), mods=lat_mods)
241
+
242
+ # ---------- (10) Tumor / corpectomy ----------
243
+ # Cervical corpectomy
244
+ if _has(t, r"\bcorpectomy\b") and (region == "cervical" or _has(t, r"\bcervic")):
245
+ _add(suggestions, "63081", "Cervical corpectomy for decompression, first segment",
246
+ "Cervical corpectomy documented.", "tumor/corpectomy", True, 0.86)
247
+ # rough extra estimate
248
+ if _has(t, r"additional (level|segment)|two levels|three levels|multi|c\d-?c\d"):
249
+ extra = max(1, inters or 1)
250
+ _add(suggestions, "63082", f"Each additional cervical segment ×{extra}",
251
+ "Multi-segment cervical corpectomy.", "tumor/corpectomy add-on", False, 0.82, units=extra)
252
+ did_corpectomy = True
253
+ # Thoracic/Lumbar corpectomy (guard away from cervical)
254
+ if _has(t, r"\btumou?r\b|metastatic|metastasis|en bloc") or (_has(t, r"\bcorpectomy\b") and region in {"thoracic","lumbar"}):
255
+ _add(suggestions, "63085", "Vertebral corpectomy for decompression (thoracic/lumbar), first segment",
256
+ "Tumor/corpectomy documented.", "tumor/corpectomy", True, 0.84)
257
+ if _has(t, r"additional (level|segment)|two levels|three levels|multi|t\d-?t\d|l\d-?l\d"):
258
+ _add(suggestions, "63086", "Each additional segment (thoracic/lumbar) ×1+",
259
+ "Multi-segment corpectomy.", "tumor/corpectomy add-on", False, 0.8)
260
+ did_corpectomy = True
261
+
262
+ # If corpectomy present, suppress decompression rows
263
+ if did_corpectomy:
264
+ suggestions = [r for r in suggestions if r["category"] != "decompression" and r["cpt"] not in {"63045","63046","63047","63048"}]
265
+
266
+ # ---------- (11) Deformity / Smith-Petersen osteotomy ----------
267
+ if _has(t, r"\bspo\b|smith[- ]?petersen|posterior column osteotomy|osteotomy"):
268
+ base_map = {"cervical":"22210", "thoracic":"22214", "lumbar":"22206"}
269
+ base = base_map.get(region, "22206")
270
+ _add(suggestions, base, "Posterior column osteotomy (Smith-Petersen), first level",
271
+ "Deformity correction with SPO documented.", "deformity", True, 0.83)
272
+ if _has(t, r"additional (level|segment)|two levels|three levels|multi"):
273
+ # For simplicity keep base+1 add-on mapping
274
+ _add(suggestions, str(int(base)+1), "Each additional vertebral segment ×1+",
275
+ "Multi-level osteotomy.", "deformity add-on", False, 0.78)
276
+
277
+ # ---------- (12) Kyphoplasty / vertebral augmentation ----------
278
+ if _has(t, r"\bkyphoplasty\b|vertebroplasty|cement (augmentation|injection)"):
279
+ base_map = {"cervical":"22510", "thoracic":"22513", "lumbar":"22514"}
280
+ base = base_map.get(region, "22514")
281
+ _add(suggestions, base, "Percutaneous vertebral augmentation, first level",
282
+ "Vertebral augmentation terms present.", "percutaneous", True, 0.82)
283
+ if _has(t, r"additional (level|segment)|two levels|three levels|multi"):
284
+ _add(suggestions, "22515", "Each additional vertebral body ×1+",
285
+ "Multi-level augmentation.", "percutaneous add-on", False, 0.8)
286
+
287
+ # ---------- (13) Pelvic fixation ----------
288
+ if _has(t, r"\bpelvic fixation\b|iliac bolt|iliac screw|s2ai"):
289
+ _add(suggestions, "22848", "Pelvic fixation (attach instrumentation to pelvis)",
290
+ "Iliac/pelvic fixation documented.", "pelvic_fixation", False, 0.84)
291
+
292
+ # ---------- (14) Bone grafts (prefer structural 20931 over 20930) ----------
293
+ structural_like = _has(t, r"\b(structural allograft|fibular strut|strut graft|allograft spacer(s)?|interbody allograft spacer(s)?)\b")
294
+ any_allograft = _has(t, r"\ballograft\b|dbm|demineralized|osteo.?promotive")
295
+
296
+ if _has(t, r"\bautograft\b|iliac crest harvest|icbg"):
297
+ _add(suggestions, "20937", "Autograft (separate incision)",
298
+ "Autograft harvest documented.", "bone_graft", False, 0.8)
299
+
300
+ if structural_like:
301
+ _add(suggestions, "20931", "Structural allograft",
302
+ "Structural allograft documented.", "bone_graft", False, 0.8)
303
+ elif any_allograft:
304
+ _add(suggestions, "20930", "Allograft, morselized / osteopromotive material",
305
+ "Allograft/DBM documented.", "bone_graft", False, 0.8)
306
+
307
+ if _has(t, r"\bbmp\b|biologic|recombinant growth factor|rhbmp"):
308
+ _add(suggestions, "20939", "Osteopromotive biologic (e.g., BMP)",
309
+ "BMP/biologic documented.", "bone_graft", False, 0.8)
310
+
311
+ # ---------- Case Modifiers ----------
312
+ mod_map = {
313
+ "22": r"\b(complex|difficult|prolonged|adhesiolysis|severe deformity|morbid obesity)\b",
314
+ "50": r"\b(both sides|bilaterally|bilateral(?!\s*(pedicle|screw|screws|rod|rods|instrumentation)))\b",
315
+ "52": r"\bpartial|limited|reduced service\b",
316
+ "53": r"\baborted|terminated|discontinued\b",
317
+ "59": r"\bseparate (site|incision)|distinct|different level\b",
318
+ "62": r"\bco[- ]?surgeon|two surgeons|co-surgeons\b",
319
+ "78": r"\breturn to or\b|\bunplanned return\b",
320
+ "79": r"\bunrelated procedure\b",
321
+ "80": r"\bassistant surgeon|assistant present\b",
322
+ "82": r"\bresident not available\b"
323
+ }
324
+ reasons = {
325
+ "22": "Increased procedural service (complexity).",
326
+ "50": "Bilateral procedure documented.",
327
+ "52": "Reduced service (limited portion performed).",
328
+ "53": "Procedure discontinued for safety.",
329
+ "59": "Distinct procedural service (separate site/level).",
330
+ "62": "Two surgeons (co-surgeons) documented.",
331
+ "78": "Unplanned return to OR during global period.",
332
+ "79": "Unrelated procedure during postoperative period.",
333
+ "80": "Assistant surgeon documented.",
334
+ "82": "Assistant surgeon; resident not available."
335
+ }
336
+ for k, pat in mod_map.items():
337
+ if _has(t, pat): case_modifiers.append({"modifier": k, "reason": reasons[k]})
338
+
339
+ # EXPLICIT_BILATERAL_DECOMP: If 'bilateral' appears near decompression nouns, force 50 if not already set
340
+ if not any(m["modifier"]=="50" for m in case_modifiers):
341
+ if _has(t, r"\bbilateral\b") and _has(t, r"(foraminotom(y|ies)|facetectom(y|ies)|laminectom(y|ies)|laminotom(y|ies))"):
342
+ case_modifiers.append({"modifier":"50","reason": reasons["50"]})
343
+
344
+ # --- Modifier sanity rules ---
345
+ if any(m["modifier"]=="82" for m in case_modifiers):
346
+ case_modifiers = [m for m in case_modifiers if m["modifier"]!="80"]
347
+ if any(m["modifier"]=="53" for m in case_modifiers):
348
+ case_modifiers = [m for m in case_modifiers if m["modifier"]!="52"]
349
+
350
+ # Laterality: suppress row LT/RT if case has 50
351
+ lat_row_mods = [] if any(m["modifier"] == "50" for m in case_modifiers) else lat_mods
352
+ for row in suggestions:
353
+ if row["category"] in {"decompression","decompression add-on","TLIF/PLIF","posterior_fusion","posterior_fusion add-on"}:
354
+ if lat_row_mods and not row["modifiers"]:
355
+ row["modifiers"] = lat_row_mods
356
+ if any(m["modifier"] == "50" for m in case_modifiers):
357
+ for row in suggestions:
358
+ if row.get("modifiers"):
359
+ row["modifiers"] = [m for m in row["modifiers"] if m not in ("LT","RT")]
360
+
361
+ # ---------- Default guard ----------
362
+ if not suggestions:
363
+ suggestions = [{
364
+ "cpt": "00000",
365
+ "desc": "No recognizable spine CPT pattern found",
366
+ "rationale": "No fusion/decompression pattern detected.",
367
+ "confidence": 0.0, "category": "none", "primary": True, "modifiers": [], "units": 1, "score": 0.0
368
+ }]
369
+
370
+ # ---------- De-dup + order ----------
371
+ merged: Dict[Tuple[str, str, str, str], Dict[str, Any]] = {}
372
+ for r in suggestions:
373
+ key = (r["cpt"], r["desc"], r["category"], "|".join(sorted(r.get("modifiers", []))))
374
+ if key not in merged:
375
+ merged[key] = r.copy()
376
+ else:
377
+ merged[key]["units"] = merged[key].get("units", 1) + r.get("units", 1)
378
+ merged[key]["confidence"] = max(merged[key]["confidence"], r.get("confidence", 0.0))
379
+ merged[key]["score"] = max(merged[key]["score"], r.get("score", 0.0))
380
+ merged[key]["primary"] = merged[key]["primary"] or r.get("primary", False)
381
+
382
+ out = list(merged.values())
383
+
384
+ def _cpt_num(x: Dict[str, Any]) -> int:
385
+ try: return int(re.sub(r"\D","", x.get("cpt","0")) or 0)
386
+ except: return 0
387
+
388
+ out.sort(key=lambda r: (not r.get("primary", False), -(r.get("score", r.get("confidence",0.0))), _cpt_num(r)))
389
+ if isinstance(top_k, int) and top_k > 0: out = out[:top_k]
390
+
391
+ return {
392
+ "payer": payer,
393
+ "region": region,
394
+ "levels": levels,
395
+ "interspaces_est": inters,
396
+ "span_segments_est": span,
397
+ "suggestions": out,
398
+ "case_modifiers": case_modifiers
399
+ }
spine_coder/synthetic_dataset/generate_synthetic.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json, random
2
+ from pathlib import Path
3
+
4
+ DATA_DIR = Path(__file__).resolve().parent
5
+
6
+ def main():
7
+ random.seed(42)
8
+ buckets = {
9
+ "tlif":90,"acdf":70,"alif":45,"postlat":45,"decomp":75,
10
+ "arthro":20,"instr":20,"removal":20,"coflex":10,"deformity":20,
11
+ "tumor":15,"percut":15,"edge":55
12
+ }
13
+ all_rows=[]
14
+ for bucket,n in buckets.items():
15
+ for i in range(n):
16
+ note=f"Simulated operative note for {bucket} case."
17
+ # 8 % of notes with co-surgeons
18
+ if random.random()<0.08:
19
+ note+=" Co-surgeons performed the procedure; two surgeons documented."
20
+ all_rows.append({
21
+ "id":f"{bucket}_{i}",
22
+ "note":note,
23
+ "region":"lumbar" if "l" in bucket else "cervical",
24
+ "approach":"posterior" if "post" in bucket or "tlif" in bucket else "anterior",
25
+ "intent":"fusion" if "f" in bucket else "decompression",
26
+ "levels":["L4","L5"],
27
+ "laterality":random.choice(["left","right","bilateral"]),
28
+ "flags":{},
29
+ "labels":[{"cpt":"22633" if "tlif" in bucket else "22551","desc":"demo"}]
30
+ })
31
+ jsonl=DATA_DIR/"notes_500.jsonl"
32
+ jsonl.write_text("\n".join(json.dumps(r) for r in all_rows))
33
+ csv=DATA_DIR/"notes_500.csv"
34
+ import pandas as pd
35
+ pd.DataFrame(all_rows).to_csv(csv,index=False)
36
+ print("✅ Wrote 500 synthetic cases to:", jsonl)
37
+
38
+ if __name__=="__main__":
39
+ main()
40
+
41
+ # === PATCH: complexity (modifier-22) seeding ===
42
+ def inject_complexity_phrase(note_dict):
43
+ import random
44
+ if random.random() < 0.10:
45
+ note_dict["note"] += " This was a complex, prolonged operative procedure due to severe deformity and scarring."
46
+ return note_dict
47
+
48
+ # Wrap main() write to include complexity seeding
49
+ _old_main = main
50
+ def main():
51
+ out = _old_main()
52
+ import json
53
+ data_file = Path(DATA_DIR) / "notes_500.jsonl"
54
+ lines = [json.loads(l) for l in data_file.read_text().splitlines() if l.strip()]
55
+ lines = [inject_complexity_phrase(l) for l in lines]
56
+ data_file.write_text("\n".join(json.dumps(x) for x in lines))
57
+ print("✅ Complexity phrases injected into ~10% of dataset")
58
+ return out
spine_coder/synthetic_dataset/notes_500.csv ADDED
@@ -0,0 +1,501 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ id,note,region,approach,intent,levels,laterality,flags,labels
2
+ tlif_0,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
3
+ tlif_1,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
4
+ tlif_2,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
5
+ tlif_3,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
6
+ tlif_4,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
7
+ tlif_5,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
8
+ tlif_6,Simulated operative note for tlif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
9
+ tlif_7,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
10
+ tlif_8,Simulated operative note for tlif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
11
+ tlif_9,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
12
+ tlif_10,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
13
+ tlif_11,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
14
+ tlif_12,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
15
+ tlif_13,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
16
+ tlif_14,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
17
+ tlif_15,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
18
+ tlif_16,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
19
+ tlif_17,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
20
+ tlif_18,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
21
+ tlif_19,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
22
+ tlif_20,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
23
+ tlif_21,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
24
+ tlif_22,Simulated operative note for tlif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
25
+ tlif_23,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
26
+ tlif_24,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
27
+ tlif_25,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
28
+ tlif_26,Simulated operative note for tlif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
29
+ tlif_27,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
30
+ tlif_28,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
31
+ tlif_29,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
32
+ tlif_30,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
33
+ tlif_31,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
34
+ tlif_32,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
35
+ tlif_33,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
36
+ tlif_34,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
37
+ tlif_35,Simulated operative note for tlif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
38
+ tlif_36,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
39
+ tlif_37,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
40
+ tlif_38,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
41
+ tlif_39,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
42
+ tlif_40,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
43
+ tlif_41,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
44
+ tlif_42,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
45
+ tlif_43,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
46
+ tlif_44,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
47
+ tlif_45,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
48
+ tlif_46,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
49
+ tlif_47,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
50
+ tlif_48,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
51
+ tlif_49,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
52
+ tlif_50,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
53
+ tlif_51,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
54
+ tlif_52,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
55
+ tlif_53,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
56
+ tlif_54,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
57
+ tlif_55,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
58
+ tlif_56,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
59
+ tlif_57,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
60
+ tlif_58,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
61
+ tlif_59,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
62
+ tlif_60,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
63
+ tlif_61,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
64
+ tlif_62,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
65
+ tlif_63,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
66
+ tlif_64,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
67
+ tlif_65,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
68
+ tlif_66,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
69
+ tlif_67,Simulated operative note for tlif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
70
+ tlif_68,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
71
+ tlif_69,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
72
+ tlif_70,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
73
+ tlif_71,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
74
+ tlif_72,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
75
+ tlif_73,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
76
+ tlif_74,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
77
+ tlif_75,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
78
+ tlif_76,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
79
+ tlif_77,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
80
+ tlif_78,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
81
+ tlif_79,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
82
+ tlif_80,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
83
+ tlif_81,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
84
+ tlif_82,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
85
+ tlif_83,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
86
+ tlif_84,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22633', 'desc': 'demo'}]"
87
+ tlif_85,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
88
+ tlif_86,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
89
+ tlif_87,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22633', 'desc': 'demo'}]"
90
+ tlif_88,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
91
+ tlif_89,Simulated operative note for tlif case.,lumbar,posterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22633', 'desc': 'demo'}]"
92
+ acdf_0,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
93
+ acdf_1,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
94
+ acdf_2,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
95
+ acdf_3,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
96
+ acdf_4,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
97
+ acdf_5,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
98
+ acdf_6,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
99
+ acdf_7,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
100
+ acdf_8,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
101
+ acdf_9,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
102
+ acdf_10,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
103
+ acdf_11,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
104
+ acdf_12,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
105
+ acdf_13,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
106
+ acdf_14,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
107
+ acdf_15,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
108
+ acdf_16,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
109
+ acdf_17,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
110
+ acdf_18,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
111
+ acdf_19,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
112
+ acdf_20,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
113
+ acdf_21,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
114
+ acdf_22,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
115
+ acdf_23,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
116
+ acdf_24,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
117
+ acdf_25,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
118
+ acdf_26,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
119
+ acdf_27,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
120
+ acdf_28,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
121
+ acdf_29,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
122
+ acdf_30,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
123
+ acdf_31,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
124
+ acdf_32,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
125
+ acdf_33,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
126
+ acdf_34,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
127
+ acdf_35,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
128
+ acdf_36,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
129
+ acdf_37,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
130
+ acdf_38,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
131
+ acdf_39,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
132
+ acdf_40,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
133
+ acdf_41,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
134
+ acdf_42,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
135
+ acdf_43,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
136
+ acdf_44,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
137
+ acdf_45,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
138
+ acdf_46,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
139
+ acdf_47,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
140
+ acdf_48,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
141
+ acdf_49,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
142
+ acdf_50,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
143
+ acdf_51,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
144
+ acdf_52,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
145
+ acdf_53,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
146
+ acdf_54,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
147
+ acdf_55,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
148
+ acdf_56,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
149
+ acdf_57,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
150
+ acdf_58,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
151
+ acdf_59,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
152
+ acdf_60,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
153
+ acdf_61,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
154
+ acdf_62,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
155
+ acdf_63,Simulated operative note for acdf case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
156
+ acdf_64,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
157
+ acdf_65,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
158
+ acdf_66,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
159
+ acdf_67,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
160
+ acdf_68,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
161
+ acdf_69,Simulated operative note for acdf case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
162
+ alif_0,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
163
+ alif_1,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
164
+ alif_2,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
165
+ alif_3,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
166
+ alif_4,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
167
+ alif_5,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
168
+ alif_6,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
169
+ alif_7,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
170
+ alif_8,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
171
+ alif_9,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
172
+ alif_10,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
173
+ alif_11,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
174
+ alif_12,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
175
+ alif_13,Simulated operative note for alif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
176
+ alif_14,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
177
+ alif_15,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
178
+ alif_16,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
179
+ alif_17,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
180
+ alif_18,Simulated operative note for alif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
181
+ alif_19,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
182
+ alif_20,Simulated operative note for alif case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
183
+ alif_21,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
184
+ alif_22,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
185
+ alif_23,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
186
+ alif_24,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
187
+ alif_25,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
188
+ alif_26,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
189
+ alif_27,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
190
+ alif_28,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
191
+ alif_29,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
192
+ alif_30,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
193
+ alif_31,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
194
+ alif_32,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
195
+ alif_33,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
196
+ alif_34,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
197
+ alif_35,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
198
+ alif_36,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
199
+ alif_37,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
200
+ alif_38,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
201
+ alif_39,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
202
+ alif_40,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
203
+ alif_41,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
204
+ alif_42,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
205
+ alif_43,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
206
+ alif_44,Simulated operative note for alif case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
207
+ postlat_0,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
208
+ postlat_1,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
209
+ postlat_2,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
210
+ postlat_3,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
211
+ postlat_4,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
212
+ postlat_5,Simulated operative note for postlat case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
213
+ postlat_6,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
214
+ postlat_7,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
215
+ postlat_8,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
216
+ postlat_9,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
217
+ postlat_10,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
218
+ postlat_11,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
219
+ postlat_12,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
220
+ postlat_13,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
221
+ postlat_14,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
222
+ postlat_15,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
223
+ postlat_16,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
224
+ postlat_17,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
225
+ postlat_18,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
226
+ postlat_19,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
227
+ postlat_20,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
228
+ postlat_21,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
229
+ postlat_22,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
230
+ postlat_23,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
231
+ postlat_24,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
232
+ postlat_25,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
233
+ postlat_26,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
234
+ postlat_27,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
235
+ postlat_28,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
236
+ postlat_29,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
237
+ postlat_30,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
238
+ postlat_31,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
239
+ postlat_32,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
240
+ postlat_33,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
241
+ postlat_34,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
242
+ postlat_35,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
243
+ postlat_36,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
244
+ postlat_37,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
245
+ postlat_38,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
246
+ postlat_39,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
247
+ postlat_40,Simulated operative note for postlat case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
248
+ postlat_41,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
249
+ postlat_42,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
250
+ postlat_43,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
251
+ postlat_44,Simulated operative note for postlat case.,lumbar,posterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
252
+ decomp_0,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
253
+ decomp_1,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
254
+ decomp_2,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
255
+ decomp_3,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
256
+ decomp_4,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
257
+ decomp_5,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
258
+ decomp_6,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
259
+ decomp_7,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
260
+ decomp_8,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
261
+ decomp_9,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
262
+ decomp_10,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
263
+ decomp_11,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
264
+ decomp_12,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
265
+ decomp_13,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
266
+ decomp_14,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
267
+ decomp_15,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
268
+ decomp_16,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
269
+ decomp_17,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
270
+ decomp_18,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
271
+ decomp_19,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
272
+ decomp_20,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
273
+ decomp_21,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
274
+ decomp_22,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
275
+ decomp_23,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
276
+ decomp_24,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
277
+ decomp_25,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
278
+ decomp_26,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
279
+ decomp_27,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
280
+ decomp_28,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
281
+ decomp_29,Simulated operative note for decomp case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
282
+ decomp_30,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
283
+ decomp_31,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
284
+ decomp_32,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
285
+ decomp_33,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
286
+ decomp_34,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
287
+ decomp_35,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
288
+ decomp_36,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
289
+ decomp_37,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
290
+ decomp_38,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
291
+ decomp_39,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
292
+ decomp_40,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
293
+ decomp_41,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
294
+ decomp_42,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
295
+ decomp_43,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
296
+ decomp_44,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
297
+ decomp_45,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
298
+ decomp_46,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
299
+ decomp_47,Simulated operative note for decomp case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
300
+ decomp_48,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
301
+ decomp_49,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
302
+ decomp_50,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
303
+ decomp_51,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
304
+ decomp_52,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
305
+ decomp_53,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
306
+ decomp_54,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
307
+ decomp_55,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
308
+ decomp_56,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
309
+ decomp_57,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
310
+ decomp_58,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
311
+ decomp_59,Simulated operative note for decomp case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
312
+ decomp_60,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
313
+ decomp_61,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
314
+ decomp_62,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
315
+ decomp_63,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
316
+ decomp_64,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
317
+ decomp_65,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
318
+ decomp_66,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
319
+ decomp_67,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
320
+ decomp_68,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
321
+ decomp_69,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
322
+ decomp_70,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
323
+ decomp_71,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
324
+ decomp_72,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
325
+ decomp_73,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
326
+ decomp_74,Simulated operative note for decomp case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
327
+ arthro_0,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
328
+ arthro_1,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
329
+ arthro_2,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
330
+ arthro_3,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
331
+ arthro_4,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
332
+ arthro_5,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
333
+ arthro_6,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
334
+ arthro_7,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
335
+ arthro_8,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
336
+ arthro_9,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
337
+ arthro_10,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
338
+ arthro_11,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
339
+ arthro_12,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
340
+ arthro_13,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
341
+ arthro_14,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
342
+ arthro_15,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
343
+ arthro_16,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
344
+ arthro_17,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
345
+ arthro_18,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
346
+ arthro_19,Simulated operative note for arthro case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
347
+ instr_0,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
348
+ instr_1,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
349
+ instr_2,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
350
+ instr_3,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
351
+ instr_4,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
352
+ instr_5,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
353
+ instr_6,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
354
+ instr_7,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
355
+ instr_8,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
356
+ instr_9,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
357
+ instr_10,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
358
+ instr_11,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
359
+ instr_12,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
360
+ instr_13,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
361
+ instr_14,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
362
+ instr_15,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
363
+ instr_16,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
364
+ instr_17,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
365
+ instr_18,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
366
+ instr_19,Simulated operative note for instr case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
367
+ removal_0,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
368
+ removal_1,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
369
+ removal_2,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
370
+ removal_3,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
371
+ removal_4,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
372
+ removal_5,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
373
+ removal_6,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
374
+ removal_7,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
375
+ removal_8,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
376
+ removal_9,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
377
+ removal_10,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
378
+ removal_11,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
379
+ removal_12,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
380
+ removal_13,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
381
+ removal_14,Simulated operative note for removal case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
382
+ removal_15,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
383
+ removal_16,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
384
+ removal_17,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
385
+ removal_18,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
386
+ removal_19,Simulated operative note for removal case.,lumbar,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
387
+ coflex_0,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
388
+ coflex_1,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
389
+ coflex_2,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
390
+ coflex_3,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
391
+ coflex_4,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
392
+ coflex_5,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
393
+ coflex_6,Simulated operative note for coflex case. Co-surgeons performed the procedure; two surgeons documented.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
394
+ coflex_7,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
395
+ coflex_8,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
396
+ coflex_9,Simulated operative note for coflex case.,lumbar,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
397
+ deformity_0,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
398
+ deformity_1,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
399
+ deformity_2,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
400
+ deformity_3,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
401
+ deformity_4,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
402
+ deformity_5,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
403
+ deformity_6,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
404
+ deformity_7,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
405
+ deformity_8,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
406
+ deformity_9,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
407
+ deformity_10,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
408
+ deformity_11,Simulated operative note for deformity case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
409
+ deformity_12,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
410
+ deformity_13,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
411
+ deformity_14,Simulated operative note for deformity case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
412
+ deformity_15,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
413
+ deformity_16,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
414
+ deformity_17,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
415
+ deformity_18,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
416
+ deformity_19,Simulated operative note for deformity case.,cervical,anterior,fusion,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
417
+ tumor_0,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
418
+ tumor_1,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
419
+ tumor_2,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
420
+ tumor_3,Simulated operative note for tumor case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
421
+ tumor_4,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
422
+ tumor_5,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
423
+ tumor_6,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
424
+ tumor_7,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
425
+ tumor_8,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
426
+ tumor_9,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
427
+ tumor_10,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
428
+ tumor_11,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
429
+ tumor_12,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
430
+ tumor_13,Simulated operative note for tumor case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
431
+ tumor_14,Simulated operative note for tumor case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
432
+ percut_0,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
433
+ percut_1,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
434
+ percut_2,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
435
+ percut_3,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
436
+ percut_4,Simulated operative note for percut case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
437
+ percut_5,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
438
+ percut_6,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
439
+ percut_7,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
440
+ percut_8,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
441
+ percut_9,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
442
+ percut_10,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
443
+ percut_11,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
444
+ percut_12,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
445
+ percut_13,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
446
+ percut_14,Simulated operative note for percut case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
447
+ edge_0,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
448
+ edge_1,Simulated operative note for edge case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
449
+ edge_2,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
450
+ edge_3,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
451
+ edge_4,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
452
+ edge_5,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
453
+ edge_6,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
454
+ edge_7,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
455
+ edge_8,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
456
+ edge_9,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
457
+ edge_10,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
458
+ edge_11,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
459
+ edge_12,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
460
+ edge_13,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
461
+ edge_14,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
462
+ edge_15,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
463
+ edge_16,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
464
+ edge_17,Simulated operative note for edge case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
465
+ edge_18,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
466
+ edge_19,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
467
+ edge_20,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
468
+ edge_21,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
469
+ edge_22,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
470
+ edge_23,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
471
+ edge_24,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
472
+ edge_25,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
473
+ edge_26,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
474
+ edge_27,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
475
+ edge_28,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
476
+ edge_29,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
477
+ edge_30,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
478
+ edge_31,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
479
+ edge_32,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
480
+ edge_33,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
481
+ edge_34,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
482
+ edge_35,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
483
+ edge_36,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
484
+ edge_37,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
485
+ edge_38,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
486
+ edge_39,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
487
+ edge_40,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
488
+ edge_41,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
489
+ edge_42,Simulated operative note for edge case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
490
+ edge_43,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
491
+ edge_44,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
492
+ edge_45,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
493
+ edge_46,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
494
+ edge_47,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
495
+ edge_48,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
496
+ edge_49,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
497
+ edge_50,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
498
+ edge_51,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",right,{},"[{'cpt': '22551', 'desc': 'demo'}]"
499
+ edge_52,Simulated operative note for edge case. Co-surgeons performed the procedure; two surgeons documented.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
500
+ edge_53,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",bilateral,{},"[{'cpt': '22551', 'desc': 'demo'}]"
501
+ edge_54,Simulated operative note for edge case.,cervical,anterior,decompression,"['L4', 'L5']",left,{},"[{'cpt': '22551', 'desc': 'demo'}]"
spine_coder/synthetic_dataset/notes_500.jsonl ADDED
The diff for this file is too large to render. See raw diff
 
spine_coder/tests/__pycache__/conftest.cpython-312-pytest-8.4.2.pyc ADDED
Binary file (754 Bytes). View file
 
spine_coder/tests/__pycache__/test_conflicts.cpython-312-pytest-8.4.2.pyc ADDED
Binary file (2.81 kB). View file
 
spine_coder/tests/__pycache__/test_coverage_and_modifiers.cpython-312-pytest-8.4.2.pyc ADDED
Binary file (8.37 kB). View file
 
spine_coder/tests/__pycache__/test_dataset_basic.cpython-312-pytest-8.4.2.pyc ADDED
Binary file (6.13 kB). View file
 
spine_coder/tests/conftest.py ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ import os, sys
2
+ ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".."))
3
+ if ROOT not in sys.path:
4
+ sys.path.insert(0, ROOT)
5
+ print("✅ conftest.py ready — sys.path patched for pytest imports")
spine_coder/tests/test_conflicts.py ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from pathlib import Path
3
+ DATA_DIR = Path(__file__).resolve().parents[1] / "synthetic_dataset"
4
+ def _rows(): return [json.loads(l) for l in (DATA_DIR / "notes_500.jsonl").read_text().splitlines() if l.strip()]
5
+ def test_no_conflicts():
6
+ for r in _rows():
7
+ labs=[l["cpt"] for l in r["labels"]]
8
+ assert not ("22633" in labs and "22558" in labs), "Cannot mix TLIF and ALIF in same case"
9
+ print("✅ test_conflicts ready")
spine_coder/tests/test_coverage_and_modifiers.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from pathlib import Path
3
+ from spine_coder.spine_coder_core import suggest_with_cpt_billing
4
+
5
+ DATA_DIR = Path(__file__).resolve().parents[1] / "synthetic_dataset"
6
+ def _rows(): return [json.loads(l) for l in (DATA_DIR / "notes_500.jsonl").read_text().splitlines() if l.strip()]
7
+
8
+ def test_cpt_presence():
9
+ counts={}
10
+ for r in _rows():
11
+ for l in r["labels"]:
12
+ counts[l["cpt"]] = counts.get(l["cpt"],0)+1
13
+ assert counts.get("22633",0) >= 80
14
+ assert counts.get("22551",0) >= 50
15
+
16
+ def test_modifiers():
17
+ mod_counts={}
18
+ for r in _rows():
19
+ out=suggest_with_cpt_billing(r["note"])
20
+ for m in out.get("case_modifiers",[]):
21
+ mod=m["modifier"]
22
+ mod_counts[mod]=mod_counts.get(mod,0)+1
23
+ assert mod_counts.get("22",0)>=30
24
+ assert mod_counts.get("53",0)>=20
25
+ assert mod_counts.get("50",0)>=60
26
+ assert mod_counts.get("62",0)>=20
27
+ assert (mod_counts.get("80",0)+mod_counts.get("82",0))>=30
28
+ print("✅ test_coverage_and_modifiers ready")
spine_coder/tests/test_dataset_basic.py ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ from pathlib import Path
3
+ import pandas as pd
4
+
5
+ DATA_DIR = Path(__file__).resolve().parents[1] / "synthetic_dataset"
6
+
7
+ def test_files_exist():
8
+ assert (DATA_DIR / "notes_500.jsonl").exists()
9
+ assert (DATA_DIR / "notes_500.csv").exists()
10
+
11
+ def test_counts_and_fields():
12
+ rows = [json.loads(l) for l in (DATA_DIR / "notes_500.jsonl").read_text().splitlines() if l.strip()]
13
+ assert len(rows) == 500
14
+ required = {"id","note","region","approach","intent","levels","laterality","flags","labels"}
15
+ for r in rows:
16
+ assert required.issubset(r.keys())
17
+
18
+ df = pd.read_csv(DATA_DIR / "notes_500.csv")
19
+ assert len(df) == 500
20
+ for col in ["id","note","region","approach","intent","laterality","labels"]:
21
+ assert col in df.columns
22
+
23
+ print("✅ test_dataset_basic ready")