bdsa-react-components 0.1.21 → 0.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/CURSOR_INTEGRATION.md +25 -3
  3. package/INTEGRATION.md +0 -0
  4. package/README.md +0 -0
  5. package/dist/auth/DsaAuthProvider.d.ts +92 -0
  6. package/dist/auth/DsaAuthProvider.d.ts.map +1 -0
  7. package/dist/auth/DsaAuthStore.d.ts +5 -0
  8. package/dist/auth/DsaAuthStore.d.ts.map +1 -1
  9. package/dist/auth/index.d.ts +3 -1
  10. package/dist/auth/index.d.ts.map +1 -1
  11. package/dist/auth/types.d.ts +43 -0
  12. package/dist/auth/types.d.ts.map +1 -1
  13. package/dist/bdsa-schema.json +896 -0
  14. package/dist/components/DsaAuthManager/DsaAuthManager.d.ts +49 -4
  15. package/dist/components/DsaAuthManager/DsaAuthManager.d.ts.map +1 -1
  16. package/dist/components/DsaErrorBoundary/DsaErrorBoundary.d.ts +73 -0
  17. package/dist/components/DsaErrorBoundary/DsaErrorBoundary.d.ts.map +1 -0
  18. package/dist/components/DsaErrorBoundary/index.d.ts +3 -0
  19. package/dist/components/DsaErrorBoundary/index.d.ts.map +1 -0
  20. package/dist/components/FolderBrowser/FolderBrowser.d.ts.map +1 -1
  21. package/dist/components/FolderBrowser/FolderBrowser.types.d.ts +139 -2
  22. package/dist/components/FolderBrowser/FolderBrowser.types.d.ts.map +1 -1
  23. package/dist/components/FolderBrowser/useFolderBrowserDataFetching.d.ts +2 -0
  24. package/dist/components/FolderBrowser/useFolderBrowserDataFetching.d.ts.map +1 -1
  25. package/dist/components/FolderThumbnailBrowser/FolderThumbnailBrowser.d.ts +30 -0
  26. package/dist/components/FolderThumbnailBrowser/FolderThumbnailBrowser.d.ts.map +1 -1
  27. package/dist/components/ProtocolManager/ProtocolCard.d.ts +8 -0
  28. package/dist/components/ProtocolManager/ProtocolCard.d.ts.map +1 -0
  29. package/dist/components/ProtocolManager/ProtocolContext.d.ts +46 -0
  30. package/dist/components/ProtocolManager/ProtocolContext.d.ts.map +1 -0
  31. package/dist/components/ProtocolManager/ProtocolList.d.ts +8 -0
  32. package/dist/components/ProtocolManager/ProtocolList.d.ts.map +1 -0
  33. package/dist/components/ProtocolManager/ProtocolManager.d.ts +38 -0
  34. package/dist/components/ProtocolManager/ProtocolManager.d.ts.map +1 -0
  35. package/dist/components/ProtocolManager/ProtocolManager.types.d.ts +139 -0
  36. package/dist/components/ProtocolManager/ProtocolManager.types.d.ts.map +1 -0
  37. package/dist/components/ProtocolManager/ProtocolModal.d.ts +10 -0
  38. package/dist/components/ProtocolManager/ProtocolModal.d.ts.map +1 -0
  39. package/dist/components/ProtocolManager/ProtocolsTab.d.ts +10 -0
  40. package/dist/components/ProtocolManager/ProtocolsTab.d.ts.map +1 -0
  41. package/dist/components/ProtocolManager/adapters/DsaSyncAdapter.d.ts +76 -0
  42. package/dist/components/ProtocolManager/adapters/DsaSyncAdapter.d.ts.map +1 -0
  43. package/dist/components/ProtocolManager/storage/protocolStorage.d.ts +39 -0
  44. package/dist/components/ProtocolManager/storage/protocolStorage.d.ts.map +1 -0
  45. package/dist/components/ProtocolManager/testData.d.ts +23 -0
  46. package/dist/components/ProtocolManager/testData.d.ts.map +1 -0
  47. package/dist/components/ProtocolManager/utils/schemaValidator.d.ts +99 -0
  48. package/dist/components/ProtocolManager/utils/schemaValidator.d.ts.map +1 -0
  49. package/dist/components/SlideViewer/SlideViewer.d.ts +1 -1
  50. package/dist/components/SlideViewer/SlideViewer.d.ts.map +1 -1
  51. package/dist/components/SlideViewer/SlideViewer.types.d.ts +254 -21
  52. package/dist/components/SlideViewer/SlideViewer.types.d.ts.map +1 -1
  53. package/dist/components/SlideViewer/hooks/index.d.ts +2 -0
  54. package/dist/components/SlideViewer/hooks/index.d.ts.map +1 -1
  55. package/dist/components/SlideViewer/hooks/useAnnotationFetching.d.ts +2 -1
  56. package/dist/components/SlideViewer/hooks/useAnnotationFetching.d.ts.map +1 -1
  57. package/dist/components/SlideViewer/hooks/useOverlayTileSources.d.ts +9 -0
  58. package/dist/components/SlideViewer/hooks/useOverlayTileSources.d.ts.map +1 -0
  59. package/dist/components/SlideViewer/hooks/useViewportChange.d.ts +14 -0
  60. package/dist/components/SlideViewer/hooks/useViewportChange.d.ts.map +1 -0
  61. package/dist/components/ThumbnailGrid/ThumbnailGrid.d.ts +30 -0
  62. package/dist/components/ThumbnailGrid/ThumbnailGrid.d.ts.map +1 -1
  63. package/dist/index.cjs +55 -41
  64. package/dist/index.cjs.map +1 -1
  65. package/dist/index.d.ts +15 -1
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +19916 -17906
  68. package/dist/index.js.map +1 -1
  69. package/dist/style.css +1 -1
  70. package/dist/utils/apiErrorHandling.d.ts +44 -0
  71. package/dist/utils/apiErrorHandling.d.ts.map +1 -0
  72. package/dist/utils/patchOsdPaperjs.d.ts.map +1 -1
  73. package/package.json +3 -3
  74. package/patches/osd-paperjs-annotation+0.4.14.patch +0 -0
@@ -0,0 +1,896 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://example.com/product.schema.json",
4
+ "title": "BDSA Schema",
5
+ "description": "JSON Schema for the BDSA Project.",
6
+ "type": "object",
7
+ "required": [
8
+ "bdsaID",
9
+ "stainID",
10
+ "regionIDs"
11
+ ],
12
+ "properties": {
13
+ "bdsaID": {
14
+ "type": "string",
15
+ "title": "BDSA ID",
16
+ "pattern": "^BDSA\\d+\\.\\d+$",
17
+ "description": "Unique BDSA case identifier (example: \"BDSA1.33\")"
18
+ },
19
+ "stainIDs": {
20
+ "type": "array",
21
+ "items": {
22
+ "title": "Stain ID",
23
+ "description": "Stain used on tissue section, with potentially additional information.",
24
+ "properties": {
25
+ "TDP-43": {
26
+ "type": "object",
27
+ "title": "TDP-43",
28
+ "abbreviation": "TDP",
29
+ "required": [
30
+ "phospho-specific"
31
+ ],
32
+ "properties": {
33
+ "phospho-specific": {
34
+ "type": "string",
35
+ "title": "Phospho-specific",
36
+ "enum": [
37
+ "yes",
38
+ "no"
39
+ ]
40
+ },
41
+ "dilution": {
42
+ "type": "string",
43
+ "title": "Dilution",
44
+ "_comment": "Mapped to NCI CDE 'Laboratory Procedure Antibody Dilution Ratio Text' (CDE ID 2189728)",
45
+ "pattern": "^1:\\d+$",
46
+ "examples": [
47
+ "1:100",
48
+ "1:1000"
49
+ ]
50
+ },
51
+ "vendor": {
52
+ "type": "string",
53
+ "title": "Vendor"
54
+ },
55
+ "chromogen": {
56
+ "type": "string",
57
+ "title": "Chromogen",
58
+ "default": "DAB (brown)",
59
+ "enum": [
60
+ "DAB (brown)",
61
+ "AEC (red)",
62
+ "Fast Red (red)",
63
+ "NovaRED (red)",
64
+ "VIP (purple)",
65
+ "BCIP/NBT (blue)",
66
+ "Other"
67
+ ]
68
+ }
69
+ }
70
+ },
71
+ "aSyn": {
72
+ "type": "object",
73
+ "title": "Alpha Synuclein",
74
+ "abbreviation": "aSyn",
75
+ "required": [
76
+ "phospho-specific"
77
+ ],
78
+ "properties": {
79
+ "phospho-specific": {
80
+ "type": "string",
81
+ "title": "Phospho-specific",
82
+ "enum": [
83
+ "yes",
84
+ "no"
85
+ ]
86
+ },
87
+ "dilution": {
88
+ "type": "string",
89
+ "title": "Dilution",
90
+ "_comment": "Mapped to NCI CDE 'Laboratory Procedure Antibody Dilution Ratio Text' (CDE ID 2189728)",
91
+ "pattern": "^1:\\d+$",
92
+ "examples": [
93
+ "1:100",
94
+ "1:1000"
95
+ ]
96
+ },
97
+ "vendor": {
98
+ "type": "string",
99
+ "title": "Vendor"
100
+ },
101
+ "chromogen": {
102
+ "type": "string",
103
+ "title": "Chromogen",
104
+ "default": "DAB (brown)",
105
+ "enum": [
106
+ "DAB (brown)",
107
+ "AEC (red)",
108
+ "Fast Red (red)",
109
+ "NovaRED (red)",
110
+ "VIP (purple)",
111
+ "BCIP/NBT (blue)",
112
+ "Other"
113
+ ]
114
+ }
115
+ }
116
+ },
117
+ "HE": {
118
+ "type": "object",
119
+ "title": "Hematoxylin and Eosin",
120
+ "abbreviation": "HE",
121
+ "properties": {
122
+ "dilution": {
123
+ "type": "string",
124
+ "title": "Dilution",
125
+ "_comment": "Mapped to NCI CDE 'Laboratory Procedure Antibody Dilution Ratio Text' (CDE ID 2189728)",
126
+ "pattern": "^1:\\d+$",
127
+ "examples": [
128
+ "1:100",
129
+ "1:1000"
130
+ ]
131
+ },
132
+ "vendor": {
133
+ "type": "string",
134
+ "title": "Vendor"
135
+ }
136
+ }
137
+ },
138
+ "Silver": {
139
+ "type": "object",
140
+ "title": "Silver Stain",
141
+ "abbreviation": "Silver",
142
+ "required": [
143
+ "technique"
144
+ ],
145
+ "properties": {
146
+ "technique": {
147
+ "type": "string",
148
+ "title": "Silver Stain",
149
+ "enum": [
150
+ "Bielschowsky",
151
+ "Gallyas",
152
+ "Campbell-Switzer"
153
+ ]
154
+ },
155
+ "dilution": {
156
+ "type": "string",
157
+ "title": "Dilution",
158
+ "_comment": "Mapped to NCI CDE 'Laboratory Procedure Antibody Dilution Ratio Text' (CDE ID 2189728)",
159
+ "pattern": "^1:\\d+$",
160
+ "examples": [
161
+ "1:100",
162
+ "1:1000"
163
+ ]
164
+ },
165
+ "vendor": {
166
+ "type": "string",
167
+ "title": "Vendor"
168
+ }
169
+ }
170
+ },
171
+ "Thioflavin": {
172
+ "type": "object",
173
+ "title": "Thioflavin",
174
+ "abbreviation": "ThioS"
175
+ },
176
+ "Tau": {
177
+ "type": "object",
178
+ "title": "Tau",
179
+ "abbreviation": "Tau",
180
+ "required": [
181
+ "antibody"
182
+ ],
183
+ "properties": {
184
+ "antibody": {
185
+ "type": "string",
186
+ "title": "Antibody",
187
+ "enum": [
188
+ "AT8",
189
+ "PHF1",
190
+ "CP13",
191
+ "Total Tau",
192
+ "RD3",
193
+ "RD4"
194
+ ]
195
+ },
196
+ "vendor": {
197
+ "type": "string",
198
+ "title": "Vendor"
199
+ },
200
+ "dilution": {
201
+ "type": "string",
202
+ "title": "Dilution",
203
+ "_comment": "Mapped to NCI CDE 'Laboratory Procedure Antibody Dilution Ratio Text' (CDE ID 2189728)",
204
+ "pattern": "^\\d+:\\d+$"
205
+ },
206
+ "chromogen": {
207
+ "type": "string",
208
+ "title": "Chromogen",
209
+ "default": "DAB (brown)",
210
+ "enum": [
211
+ "DAB (brown)",
212
+ "AEC (red)",
213
+ "Fast Red (red)",
214
+ "NovaRED (red)",
215
+ "VIP (purple)",
216
+ "BCIP/NBT (blue)",
217
+ "Other"
218
+ ]
219
+ }
220
+ }
221
+ },
222
+ "aBeta": {
223
+ "type": "object",
224
+ "title": "Amyloid Beta",
225
+ "abbreviation": "Aβ",
226
+ "required": [
227
+ "antibody"
228
+ ],
229
+ "properties": {
230
+ "antibody": {
231
+ "type": "string",
232
+ "title": "Antibody",
233
+ "enum": [
234
+ "4G8",
235
+ "6E10"
236
+ ]
237
+ },
238
+ "vendor": {
239
+ "type": "string",
240
+ "title": "Vendor"
241
+ },
242
+ "dilution": {
243
+ "type": "string",
244
+ "title": "Dilution",
245
+ "_comment": "Mapped to NCI CDE 'Laboratory Procedure Antibody Dilution Ratio Text' (CDE ID 2189728)",
246
+ "pattern": "^\\d+:\\d+$"
247
+ },
248
+ "chromogen": {
249
+ "type": "string",
250
+ "title": "Chromogen",
251
+ "default": "DAB (brown)",
252
+ "enum": [
253
+ "DAB (brown)",
254
+ "AEC (red)",
255
+ "Fast Red (red)",
256
+ "NovaRED (red)",
257
+ "VIP (purple)",
258
+ "BCIP/NBT (blue)",
259
+ "Other"
260
+ ]
261
+ }
262
+ }
263
+ },
264
+ "LFB": {
265
+ "type": "object",
266
+ "title": "Luxol Fast Blue",
267
+ "abbreviation": "LFB",
268
+ "properties": {
269
+ "dilution": {
270
+ "type": "string",
271
+ "title": "Dilution",
272
+ "_comment": "Mapped to NCI CDE 'Laboratory Procedure Antibody Dilution Ratio Text' (CDE ID 2189728)",
273
+ "pattern": "^1:\\d+$",
274
+ "examples": [
275
+ "1:100",
276
+ "1:1000"
277
+ ]
278
+ },
279
+ "vendor": {
280
+ "type": "string",
281
+ "title": "Vendor"
282
+ }
283
+ }
284
+ },
285
+ "GFAP": {
286
+ "type": "object",
287
+ "title": "Glial Fibrillary Acidic Protein",
288
+ "abbreviation": "GFAP",
289
+ "properties": {
290
+ "dilution": {
291
+ "type": "string",
292
+ "title": "Dilution",
293
+ "_comment": "Mapped to NCI CDE 'Laboratory Procedure Antibody Dilution Ratio Text' (CDE ID 2189728)",
294
+ "pattern": "^1:\\d+$",
295
+ "examples": [
296
+ "1:100",
297
+ "1:1000"
298
+ ]
299
+ },
300
+ "vendor": {
301
+ "type": "string",
302
+ "title": "Vendor"
303
+ },
304
+ "chromogen": {
305
+ "type": "string",
306
+ "title": "Chromogen",
307
+ "default": "DAB (brown)",
308
+ "enum": [
309
+ "DAB (brown)",
310
+ "AEC (red)",
311
+ "Fast Red (red)",
312
+ "NovaRED (red)",
313
+ "VIP (purple)",
314
+ "BCIP/NBT (blue)",
315
+ "Other"
316
+ ]
317
+ }
318
+ }
319
+ },
320
+ "IBA1": {
321
+ "type": "object",
322
+ "title": "Ionized Calcium-Binding Adapter Molecule 1",
323
+ "abbreviation": "IBA1",
324
+ "properties": {
325
+ "dilution": {
326
+ "type": "string",
327
+ "title": "Dilution",
328
+ "_comment": "Mapped to NCI CDE 'Laboratory Procedure Antibody Dilution Ratio Text' (CDE ID 2189728)",
329
+ "pattern": "^1:\\d+$",
330
+ "examples": [
331
+ "1:100",
332
+ "1:1000"
333
+ ]
334
+ },
335
+ "vendor": {
336
+ "type": "string",
337
+ "title": "Vendor"
338
+ },
339
+ "chromogen": {
340
+ "type": "string",
341
+ "title": "Chromogen",
342
+ "default": "DAB (brown)",
343
+ "enum": [
344
+ "DAB (brown)",
345
+ "AEC (red)",
346
+ "Fast Red (red)",
347
+ "NovaRED (red)",
348
+ "VIP (purple)",
349
+ "BCIP/NBT (blue)",
350
+ "Other"
351
+ ]
352
+ }
353
+ }
354
+ },
355
+ "NeuN": {
356
+ "type": "object",
357
+ "title": "Neuronal Nuclei",
358
+ "abbreviation": "NeuN",
359
+ "properties": {
360
+ "dilution": {
361
+ "type": "string",
362
+ "title": "Dilution",
363
+ "_comment": "Mapped to NCI CDE 'Laboratory Procedure Antibody Dilution Ratio Text' (CDE ID 2189728)",
364
+ "pattern": "^1:\\d+$",
365
+ "examples": [
366
+ "1:100",
367
+ "1:1000"
368
+ ]
369
+ },
370
+ "vendor": {
371
+ "type": "string",
372
+ "title": "Vendor"
373
+ },
374
+ "chromogen": {
375
+ "type": "string",
376
+ "title": "Chromogen",
377
+ "default": "DAB (brown)",
378
+ "enum": [
379
+ "DAB (brown)",
380
+ "AEC (red)",
381
+ "Fast Red (red)",
382
+ "NovaRED (red)",
383
+ "VIP (purple)",
384
+ "BCIP/NBT (blue)",
385
+ "Other"
386
+ ]
387
+ }
388
+ }
389
+ },
390
+ "LFB-PAS": {
391
+ "type": "object",
392
+ "title": "Luxol Fast Blue - Periodic Acid-Schiff",
393
+ "abbreviation": "LFB-PAS",
394
+ "properties": {
395
+ "dilution": {
396
+ "type": "string",
397
+ "title": "Dilution",
398
+ "_comment": "Mapped to NCI CDE 'Laboratory Procedure Antibody Dilution Ratio Text' (CDE ID 2189728)",
399
+ "pattern": "^1:\\d+$",
400
+ "examples": [
401
+ "1:100",
402
+ "1:1000"
403
+ ]
404
+ },
405
+ "vendor": {
406
+ "type": "string",
407
+ "title": "Vendor"
408
+ }
409
+ }
410
+ }
411
+ },
412
+ "minProperties": 1,
413
+ "maxProperties": 1
414
+ },
415
+ "description": "List of stains used on the tissue section, each including the stain name and potentially additional information."
416
+ },
417
+ "regionIDs": {
418
+ "type": "object",
419
+ "title": "Region Information",
420
+ "required": [
421
+ "regions"
422
+ ],
423
+ "properties": {
424
+ "regions": {
425
+ "type": "object",
426
+ "title": "Regions",
427
+ "minItems": 1,
428
+ "additionalProperties": false,
429
+ "properties": {
430
+ "Olfactory Bulb": {
431
+ "type": "array",
432
+ "title": "Olfactory Bulb",
433
+ "abbreviation": "OB",
434
+ "items": {
435
+ "type": "string",
436
+ "enum": [
437
+ "Bulb",
438
+ "Tract"
439
+ ]
440
+ }
441
+ },
442
+ "Parietal Lobe": {
443
+ "type": "array",
444
+ "title": "Parietal Lobe",
445
+ "abbreviation": "Par",
446
+ "items": {
447
+ "type": "string",
448
+ "enum": [
449
+ "Super",
450
+ "Middle",
451
+ "Inferior",
452
+ "Angular gyrus",
453
+ "Supramarginal gyrus"
454
+ ]
455
+ }
456
+ },
457
+ "Temporal Pole": {
458
+ "type": "array",
459
+ "title": "Temporal Pole",
460
+ "abbreviation": "TempPole",
461
+ "items": {
462
+ "type": "string"
463
+ },
464
+ "maxItems": 0
465
+ },
466
+ "Frontal Lobe": {
467
+ "type": "array",
468
+ "title": "Frontal Lobe",
469
+ "abbreviation": "Frntl",
470
+ "items": {
471
+ "type": "string",
472
+ "enum": [
473
+ "Superior",
474
+ "Middle",
475
+ "Inferior"
476
+ ]
477
+ }
478
+ },
479
+ "Temporal Lobe": {
480
+ "type": "array",
481
+ "title": "Temporal Lobe",
482
+ "abbreviation": "Temp",
483
+ "items": {
484
+ "type": "string",
485
+ "enum": [
486
+ "Superior",
487
+ "Middle",
488
+ "Inferior"
489
+ ]
490
+ }
491
+ },
492
+ "Hippocampus": {
493
+ "type": "array",
494
+ "title": "Hippocampus",
495
+ "abbreviation": "Hipp",
496
+ "items": {
497
+ "type": "string",
498
+ "enum": [
499
+ "CA1-4 with dentate gyrus",
500
+ "Parahippocampal gyrus",
501
+ "Tail of caudate",
502
+ "Lateral geniculate nucleus",
503
+ "Occipital temporal gyrus"
504
+ ]
505
+ }
506
+ },
507
+ "Anterior Cingulate": {
508
+ "type": "array",
509
+ "title": "Anterior Cingulate",
510
+ "abbreviation": "ACg",
511
+ "items": {
512
+ "type": "string",
513
+ "enum": [
514
+ "Corpus callosum",
515
+ "Superior frontal"
516
+ ]
517
+ }
518
+ },
519
+ "Posterior Cingulate": {
520
+ "type": "array",
521
+ "title": "Posterior Cingulate",
522
+ "abbreviation": "PCg",
523
+ "items": {
524
+ "type": "string",
525
+ "enum": [
526
+ "Corpus callosum",
527
+ "Superior frontal"
528
+ ]
529
+ }
530
+ },
531
+ "Amygdala": {
532
+ "type": "array",
533
+ "title": "Amygdala",
534
+ "abbreviation": "Amyg",
535
+ "items": {
536
+ "type": "string",
537
+ "enum": [
538
+ "Entorhinal cortex"
539
+ ]
540
+ }
541
+ },
542
+ "Thalamus": {
543
+ "type": "array",
544
+ "title": "Thalamus",
545
+ "abbreviation": "Thal",
546
+ "items": {
547
+ "type": "string",
548
+ "enum": [
549
+ "Mammillary body",
550
+ "Subthalamic nucleus",
551
+ "Mammilo-thalmaic tract",
552
+ "Anterior nucleus of thalamus",
553
+ "Pulvinar"
554
+ ]
555
+ }
556
+ },
557
+ "White Matter": {
558
+ "type": "array",
559
+ "title": "White Matter",
560
+ "abbreviation": "WM",
561
+ "items": {
562
+ "type": "string",
563
+ "enum": [
564
+ "Frontal",
565
+ "Parietal",
566
+ "Temporal",
567
+ "Occipital"
568
+ ]
569
+ }
570
+ },
571
+ "Midbrain": {
572
+ "type": "array",
573
+ "title": "Midbrain",
574
+ "abbreviation": "MidBrn",
575
+ "items": {
576
+ "type": "string",
577
+ "enum": [
578
+ "3rd cranial nerve",
579
+ "Substantia nigra",
580
+ "Red nucleus",
581
+ "Superior colliculus"
582
+ ]
583
+ }
584
+ },
585
+ "Pons": {
586
+ "type": "array",
587
+ "title": "Pons",
588
+ "abbreviation": "Pons",
589
+ "items": {
590
+ "type": "string",
591
+ "enum": [
592
+ "Superior cerebellar peduncle",
593
+ "Inferior colliculus",
594
+ "Locus coeruleus",
595
+ "Pontine base / fibers"
596
+ ]
597
+ }
598
+ },
599
+ "Medulla": {
600
+ "type": "array",
601
+ "title": "Medulla",
602
+ "abbreviation": "Med",
603
+ "items": {
604
+ "type": "string",
605
+ "enum": [
606
+ "Dorsal motor nucleus of vagus",
607
+ "Hypoglossal nucleus",
608
+ "Inferior olive",
609
+ "Medullary velum",
610
+ "Pyramid"
611
+ ]
612
+ }
613
+ },
614
+ "Cerebellum": {
615
+ "type": "array",
616
+ "title": "Cerebellum",
617
+ "abbreviation": "Cblm",
618
+ "items": {
619
+ "type": "string",
620
+ "enum": [
621
+ "Dentate",
622
+ "Vermis",
623
+ "Cortex"
624
+ ]
625
+ }
626
+ },
627
+ "Basal Ganglia": {
628
+ "type": "array",
629
+ "title": "Basal Ganglia",
630
+ "abbreviation": "BG",
631
+ "items": {
632
+ "type": "string"
633
+ },
634
+ "maxItems": 0
635
+ },
636
+ "Occipital Lobe": {
637
+ "type": "array",
638
+ "title": "Occipital Lobe",
639
+ "abbreviation": "Occ",
640
+ "items": {
641
+ "type": "string"
642
+ },
643
+ "maxItems": 0
644
+ },
645
+ "Primary Motor Cortex": {
646
+ "type": "array",
647
+ "title": "Primary Motor Cortex",
648
+ "abbreviation": "M1",
649
+ "items": {
650
+ "type": "string"
651
+ },
652
+ "maxItems": 0
653
+ },
654
+ "Insula": {
655
+ "type": "array",
656
+ "title": "Insula",
657
+ "abbreviation": "Ins",
658
+ "items": {
659
+ "type": "string"
660
+ },
661
+ "maxItems": 0
662
+ },
663
+ "Frontal Pole": {
664
+ "type": "array",
665
+ "title": "Frontal Pole",
666
+ "abbreviation": "FtlPole",
667
+ "items": {
668
+ "type": "string"
669
+ },
670
+ "maxItems": 0
671
+ },
672
+ "Spinal Cord": {
673
+ "type": "array",
674
+ "title": "Spinal Cord",
675
+ "abbreviation": "SpnCd",
676
+ "items": {
677
+ "type": "string",
678
+ "enum": [
679
+ "Lower",
680
+ "Middle",
681
+ "Upper"
682
+ ]
683
+ }
684
+ },
685
+ "Hypothalamus": {
686
+ "type": "array",
687
+ "title": "Hypothalamus",
688
+ "abbreviation": "Hyp",
689
+ "items": {
690
+ "type": "string"
691
+ },
692
+ "maxItems": 0
693
+ }
694
+ }
695
+ },
696
+ "hemisphere": {
697
+ "type": "string",
698
+ "title": "Hemisphere",
699
+ "enum": [
700
+ "left",
701
+ "right"
702
+ ]
703
+ },
704
+ "sliceOrientation": {
705
+ "title": "Slice Orientation",
706
+ "type": "string",
707
+ "enum": [
708
+ "axial",
709
+ "coronal",
710
+ "sagittal"
711
+ ]
712
+ },
713
+ "damage": {
714
+ "type": "array",
715
+ "title": "Damage",
716
+ "description": "Specifies tissue damage in this region and the cause of it.",
717
+ "items": {
718
+ "type": "string",
719
+ "enum": [
720
+ "Infarct",
721
+ "Lacune",
722
+ "Microinfarct",
723
+ "CTE",
724
+ "TBI"
725
+ ]
726
+ }
727
+ },
728
+ "sliceThickness": {
729
+ "type": "number",
730
+ "title": "Slice Thickness",
731
+ "description": "Thickness of the tissue slice in microns (μm). This represents the physical thickness of the tissue section.",
732
+ "minimum": 0.1,
733
+ "maximum": 1000,
734
+ "multipleOf": 0.1
735
+ },
736
+ "landmarks": {
737
+ "type": "array",
738
+ "title": "Landmarks",
739
+ "description": "Multiple anatomical landmarks present in this region (allows for non-mutually exclusive landmarks)",
740
+ "items": {
741
+ "type": "string"
742
+ },
743
+ "uniqueItems": true
744
+ }
745
+ }
746
+ },
747
+ "slideComments": {
748
+ "type": "string",
749
+ "description": "Optional free text field for additional comments about the slide."
750
+ },
751
+ "slideIndex": {
752
+ "type": "integer",
753
+ "default": 1,
754
+ "description": "Index of the slide when multiple sections have the same stain and block information, or if there are replicates."
755
+ },
756
+ "otherCaseIdentifiers": {
757
+ "type": "array",
758
+ "items": {
759
+ "type": "object",
760
+ "properties": {
761
+ "caseID": {
762
+ "type": "string",
763
+ "description": "Other unique identifier for the case from other repositires."
764
+ },
765
+ "caseSource": {
766
+ "type": "string",
767
+ "description": "The source of the case identifier, e.g., NACC, NIGAD, dbGAP, ADNI.",
768
+ "enum": [
769
+ "NACC",
770
+ "NIGAD",
771
+ "dbGAP",
772
+ "ADNI"
773
+ ]
774
+ }
775
+ },
776
+ "required": [
777
+ "caseID",
778
+ "caseSource"
779
+ ],
780
+ "description": "An object containing both the caseID and the caseSource for other case identifiers associated with the case."
781
+ },
782
+ "description": "List of other case identifiers that may be associated with the case, each including a caseID and a caseSource."
783
+ },
784
+ "clinicalData": {
785
+ "type": "object",
786
+ "title": "Clinical Metadata",
787
+ "description": "The metadata fields that each case must have to include in the BDSA database, based on NACC fields.",
788
+ "required": [
789
+ "NPSEX",
790
+ "NACCDAGE",
791
+ "EDUC",
792
+ "HISPANIC",
793
+ "NACCUDSD",
794
+ "RACE",
795
+ "NPPMIH",
796
+ "NPADNC"
797
+ ],
798
+ "properties": {
799
+ "NACCID": {
800
+ "type": "string",
801
+ "title": "NACC ID",
802
+ "description": "NACCID is a unique identifier for each case in the NACC database."
803
+ },
804
+ "NPSEX": {
805
+ "type": "integer",
806
+ "title": "Sex",
807
+ "enum": [
808
+ 1,
809
+ 2
810
+ ],
811
+ "description": "1=male, 2=female. NACC variable.\nCDE: `sex`",
812
+ "cde": "sex"
813
+ },
814
+ "NACCDAGE": {
815
+ "type": "integer",
816
+ "title": "Age at Death",
817
+ "description": "Age at death in years. NACC variable.\nCDE: `age_at_death`",
818
+ "cde": "age_at_death"
819
+ },
820
+ "EDUC": {
821
+ "type": "integer",
822
+ "title": "Years of Education",
823
+ "description": "Number of years of formal education. NACC variable.\nCDE: `years_of_education`",
824
+ "cde": "years_of_education"
825
+ },
826
+ "HISPANIC": {
827
+ "type": "integer",
828
+ "title": "Hispanic Ethnicity",
829
+ "enum": [
830
+ 0,
831
+ 1
832
+ ],
833
+ "description": "0=no, 1=yes. NACC variable.\nCDE: `hispanic_ethnicity`",
834
+ "cde": "hispanic_ethnicity"
835
+ },
836
+ "NACCUDSD": {
837
+ "type": "integer",
838
+ "title": "NACC UDS Dementia Status",
839
+ "enum": [
840
+ 1,
841
+ 2,
842
+ 3,
843
+ 4,
844
+ 5,
845
+ 6,
846
+ 7,
847
+ 8,
848
+ 9
849
+ ],
850
+ "description": "NACC UDS Dementia Status. NACC variable.\nCDE: `dementia_status`",
851
+ "cde": "dementia_status"
852
+ },
853
+ "RACE": {
854
+ "type": "integer",
855
+ "title": "Race",
856
+ "enum": [
857
+ 1,
858
+ 2,
859
+ 3,
860
+ 4,
861
+ 5,
862
+ 6,
863
+ 7,
864
+ 8,
865
+ 9
866
+ ],
867
+ "description": "Race categories. NACC variable.\nCDE: `race`",
868
+ "cde": "race"
869
+ },
870
+ "NPPMIH": {
871
+ "type": "integer",
872
+ "title": "NACC PMI Hours",
873
+ "description": "Post-mortem interval in hours. NACC variable.\nCDE: `pmi_hours`",
874
+ "cde": "pmi_hours"
875
+ },
876
+ "NPADNC": {
877
+ "type": "integer",
878
+ "title": "NACC ADNC",
879
+ "enum": [
880
+ 1,
881
+ 2,
882
+ 3,
883
+ 4,
884
+ 5,
885
+ 6,
886
+ 7,
887
+ 8,
888
+ 9
889
+ ],
890
+ "description": "NACC ADNC (Alzheimer's Disease Neuropathologic Change) score. NACC variable.\nCDE: `adnc_score`",
891
+ "cde": "adnc_score"
892
+ }
893
+ }
894
+ }
895
+ }
896
+ }