-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpull.py
More file actions
executable file
·40 lines (34 loc) · 1.35 KB
/
pull.py
File metadata and controls
executable file
·40 lines (34 loc) · 1.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env python3
"""Pull FHIR resources from a provider into the local database."""
import sys
from ehr_import.auth import load_tokens, load_all_tokens_for_provider
from ehr_import.pull import pull_for_patient
if len(sys.argv) < 2:
print("Usage: python pull.py <provider_name> [--patient <patient_id>] [--since YYYY-MM-DD]")
sys.exit(1)
provider_name = sys.argv[1]
since = None
target_patient = None
if "--since" in sys.argv:
since_idx = sys.argv.index("--since") + 1
if since_idx < len(sys.argv):
since = sys.argv[since_idx]
if "--patient" in sys.argv:
patient_idx = sys.argv.index("--patient") + 1
if patient_idx < len(sys.argv):
target_patient = sys.argv[patient_idx]
if target_patient:
tokens = load_tokens(provider_name, target_patient)
if not tokens:
print(f"No tokens for '{provider_name}' patient '{target_patient}'.")
print(f"Run: python auth.py \"{provider_name}\"")
sys.exit(1)
pull_for_patient(provider_name, tokens, since)
else:
all_tokens = load_all_tokens_for_provider(provider_name)
if not all_tokens:
print(f"No tokens for '{provider_name}'. Run: python auth.py \"{provider_name}\"")
sys.exit(1)
print(f"Found {len(all_tokens)} patient(s) for {provider_name}")
for tokens in all_tokens:
pull_for_patient(provider_name, tokens, since)