File size: 1,633 Bytes
a23d562
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/usr/bin/env python3
"""Fill empty patient IDs of a metadata export by grouping on identifying columns."""

import argparse

from auto_detect_breast_mri.config import column
from auto_detect_breast_mri.data.metadata import fill_nan_id_values_by_group


def main():
    """
    Fill missing patient IDs of a metadata export by grouping on identifying columns.

    The file to work on must be given explicitly; there are no built in paths:

        python scripts/data_utils/fill_missing_patient_ids.py <data_file.xlsx> <sheet> \
            --id-column PNR --grouping Firstname Lastname Birthdate --backup-table <metadata.csv>
    """
    parser = argparse.ArgumentParser(description="Fill empty patient IDs in a metadata export.")
    parser.add_argument("data_file", help="metadata export (.xlsx) to fill in place")
    parser.add_argument("sheet", help="name of the sheet holding the ID and grouping columns")
    parser.add_argument("--id-column", default=None,
                        help="name of the patient ID column. Default: the configured patient_id column")
    parser.add_argument("--grouping", nargs="+", required=True,
                        help="columns that identify a patient, e.g. Firstname Lastname Birthdate")
    parser.add_argument("--backup-table", default=None,
                        help="optional second table to take IDs from")
    args = parser.parse_args()

    fill_nan_id_values_by_group(args.data_file, args.sheet,
                                args.id_column or column("patient_id"),
                                args.grouping, args.backup_table)


if __name__ == '__main__':
    main()