PyVisualFields 2.0.4__py3-none-any.whl → 2.0.6__py3-none-any.whl

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.
@@ -311,11 +311,14 @@ def HAP2_part2_severity(row):
311
311
  l_cols = [f"l{i}" for i in range(1, 55) if f"l{i}" in row.index]
312
312
  pdp_cols = [f"pdp{i}" for i in range(1, 55) if f"pdp{i}" in row.index]
313
313
 
314
- if "md" not in row.index:
315
- return "Unknown"
314
+ # if "md" not in row.index:
315
+ # return "Unknown"
316
316
 
317
- md = pd.to_numeric(row["md"], errors="coerce")
318
- if pd.isna(md):
317
+ if "md" in row.index and pd.notna(row["md"]):
318
+ md = pd.to_numeric(row["md"], errors="coerce")
319
+ elif "tmd" in row.index and pd.notna(row["tmd"]):
320
+ md = pd.to_numeric(row["tmd"], errors="coerce")
321
+ else:
319
322
  return "Unknown"
320
323
 
321
324
  sens = pd.to_numeric(row[l_cols], errors="coerce")
@@ -371,9 +374,25 @@ def HAP2_part2_severity(row):
371
374
  return "Early"
372
375
 
373
376
  # -------------------------
374
- # Otherwise moderate
377
+ # Moderate defect
378
+ # At least one criterion
375
379
  # -------------------------
376
- return "Moderate"
380
+ only_one_hemifield_central_lt15 = (
381
+ (sup_lt15 and not inf_lt15)
382
+ or (inf_lt15 and not sup_lt15)
383
+ )
384
+
385
+ moderate = (
386
+ (-12 <= md <= -6)
387
+ or (only_one_hemifield_central_lt15 and not any_central_0)
388
+ or (13 <= n_pdp_5 <= 26)
389
+ or (5 <= n_pdp_1 <= 13)
390
+ )
391
+
392
+ if moderate:
393
+ return "Moderate"
394
+
395
+ return ""
377
396
 
378
397
 
379
398
  def Fn_HAP2_part2(df):
@@ -1 +1 @@
1
- __version__ = "2.0.4"
1
+ __version__ = "2.0.6"
@@ -1,19 +1,20 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyVisualFields
3
- Version: 2.0.4
3
+ Version: 2.0.6
4
4
  Summary: A python toolkit for visual field analysis
5
5
  Home-page: https://github.com/mohaEs/PyVisualField
6
6
  Author: Mohammad Eslami, Bharath Erusalagandi, Mousa Moradi
7
7
  Author-email: Mohammad_eslami@meei.harvard.edu
8
+ License: BSD-3-Clause
8
9
  Project-URL: Bug Tracker, https://github.com/mohaEs/PyVisualField/issues
9
10
  Project-URL: Demo Normalization, https://github.com/mohaEs/PyVisualField/blob/main/demo_2_Deviation_Analysis.ipynb
10
11
  Project-URL: Demo Plotting, https://github.com/mohaEs/PyVisualField/blob/main/demo_3_Plotting.ipynb
11
- Project-URL: Demo Prorgression Analysis, https://github.com/mohaEs/PyVisualField/blob/main/demo_4_Analysis.ipynb
12
+ Project-URL: Demo Progression Analysis, https://github.com/mohaEs/PyVisualField/blob/main/demo_4_ProgressionAnalysis.ipynb
12
13
  Project-URL: Demo Data, https://github.com/mohaEs/PyVisualField/blob/main/demo_1_Data.ipynb
13
14
  Project-URL: Demo Glaucoma Detection, https://github.com/mohaEs/PyVisualField/blob/main/demo5_PyGlaucoMetrics.ipynb
14
15
  Project-URL: Harvard Ophthalmology AI LAB, https://ophai.hms.harvard.edu/
15
16
  Classifier: Programming Language :: Python :: 3
16
- Classifier: License :: OSI Approved :: MIT License
17
+ Classifier: License :: OSI Approved :: BSD License
17
18
  Classifier: Operating System :: OS Independent
18
19
  Requires-Python: >=3.6
19
20
  Description-Content-Type: text/markdown
@@ -29,6 +30,7 @@ Dynamic: classifier
29
30
  Dynamic: description
30
31
  Dynamic: description-content-type
31
32
  Dynamic: home-page
33
+ Dynamic: license
32
34
  Dynamic: license-file
33
35
  Dynamic: project-url
34
36
  Dynamic: requires-dist
@@ -1,6 +1,6 @@
1
1
  PyVisualFields/Deviation_Analysis.py,sha256=kgi0fJyF0wvJTDjswiD6F7DC78S0s4B1Siu8By3IjzA,28110
2
- PyVisualFields/PyGlaucoMetrics.py,sha256=SGKiihats2IU3sME3GdYyg2933U-sb7Jk1NwXzE6lCA,23432
3
- PyVisualFields/__init__.py,sha256=ZOg41aCgKEuObK5WhegikXektFWPJaeZ-TMDh0Ke95M,22
2
+ PyVisualFields/PyGlaucoMetrics.py,sha256=-Uj_pO9yxqY6-H4ZhrSRdE3zbMdnyy68wLo2i_kmvN0,23956
3
+ PyVisualFields/__init__.py,sha256=4Yxft_MNOtwQG58mZpa8eoM0XBHa8VNkTPH9_i0gDaM,22
4
4
  PyVisualFields/utils.py,sha256=z_jnJiLnbxTH1hkN-ZfVNmCQqpJwsuYXSl0wEYx7uRE,24626
5
5
  PyVisualFields/vfprogression.py,sha256=FjKtVZ3DRcS31CZRcAHMTfDxYYF3UWLTOjcr3YZdCRg,34215
6
6
  PyVisualFields/visualFields.py,sha256=aSZaKE5pc67TyuVtrMLYtKe7lbInzVWKnpP-6ezQwHA,61905
@@ -18,8 +18,8 @@ PyVisualFields/pkl_files/vfctrSunyiu24d2.pkl,sha256=e2hspPbpVYWXBDVn6fJ9KRK-JYIH
18
18
  PyVisualFields/pkl_files/vfpwgRetest24d2.pkl,sha256=WyWZ3mHr1JL4TCUVUu0WFpIFdqAiwvNyL_pd51duPKY,106683
19
19
  PyVisualFields/pkl_files/vfpwgSunyiu24d2.pkl,sha256=kYIreVpqaRX-Hkl9ZPZ7agnqJplu8DxFM08X17L_fTg,14598
20
20
  PyVisualFields/pkl_files/vfseries.pkl,sha256=aWkDkByTkgmCKH2nYZrB1hoHt-fi_FxY1gamZ6iqZu0,36363
21
- pyvisualfields-2.0.4.dist-info/licenses/LICENSE,sha256=m3BJDRLy-Xnz1WmgtnVniIpPIlwv0MYil80-tjCetYc,1570
22
- pyvisualfields-2.0.4.dist-info/METADATA,sha256=maBlo7s8o5CzOam3L2toNb1W35lrG5ALJgR7aTyL0-c,12778
23
- pyvisualfields-2.0.4.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
24
- pyvisualfields-2.0.4.dist-info/top_level.txt,sha256=r-Mpr1QBoJaRDJQ-POzcuukSnBCkNasixPj3P2UWWRw,15
25
- pyvisualfields-2.0.4.dist-info/RECORD,,
21
+ pyvisualfields-2.0.6.dist-info/licenses/LICENSE,sha256=m3BJDRLy-Xnz1WmgtnVniIpPIlwv0MYil80-tjCetYc,1570
22
+ pyvisualfields-2.0.6.dist-info/METADATA,sha256=CvqdCh02vVa8E-IxZlbz5rQJzOSBvCivXlvdzi9bfso,12829
23
+ pyvisualfields-2.0.6.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
24
+ pyvisualfields-2.0.6.dist-info/top_level.txt,sha256=r-Mpr1QBoJaRDJQ-POzcuukSnBCkNasixPj3P2UWWRw,15
25
+ pyvisualfields-2.0.6.dist-info/RECORD,,