This commit is contained in:
2026-06-03 15:56:52 +02:00
parent ea9d611719
commit 61c6aeea23
3254 changed files with 126 additions and 13241 deletions
+33 -2
View File
@@ -187,12 +187,23 @@ def import_subject_summary(study, summary_path):
return import_id
DETAIL_FILENAME_RE = re.compile(r"(\d{4}-\d{2}-\d{2}) (\S+) (\S+) Subject Detail\.xlsx")
def parse_detail_filename(path):
"""Vrátí (date, study, subject) nebo None."""
m = DETAIL_FILENAME_RE.search(os.path.basename(path))
if not m:
return None
return m.group(1), m.group(2), m.group(3)
def import_visits(study, detail_files):
print(f" [{study}] visits z {len(detail_files)} detail souboru")
docs = []
for path in detail_files:
m = re.search(r"\d{4}-\d{2}-\d{2} \S+ (\S+) Subject Detail\.xlsx", os.path.basename(path))
subject = m.group(1) if m else "UNKNOWN"
parsed = parse_detail_filename(path)
subject = parsed[2] if parsed else "UNKNOWN"
visits = parse_detail_visits(path)
for v in visits:
docs.append(visit_to_doc(study, subject, v))
@@ -209,6 +220,26 @@ def import_visits(study, detail_files):
return import_id
def import_visits_single_file(study, subject, path):
"""Naimportuje vizity z JEDNOHO detail souboru (pro chronologické snapshoty)."""
visits = parse_detail_visits(path)
docs = []
seen = set()
for v in visits:
d = visit_to_doc(study, subject, v)
if d["_id"] in seen:
continue
seen.add(d["_id"])
docs.append(d)
import_id = log_import(study, os.path.basename(path), "visits", {"visits": len(docs), "subject": subject})
n = bulk_upsert_with_snapshot(
"iwrs_visits", "iwrs_visits_snapshots",
docs, import_id,
)
print(f" [{study}/{subject}] {os.path.basename(path)} import_id={import_id} vizit={n}")
return import_id
# ── main entry (volá se z run_all.py) ────────────────────────────────────────
def run(study, summary_path, details_dir, today):