Module minder_utils.formatting.map_utils

Expand source code
import pandas as pd
import json
from minder_utils.configurations import data_path
import importlib.resources as pkg_resources
import os


def map_raw_ids(p_id, df=False):
    '''
    Map the raw ids to numeric ids.
    Args:
        p_id:
        df:

    Returns:

    '''
    path_dir = data_path
    with open(path_dir, 'r') as file_read:
        path = file_read.read()

    json_file_path = os.path.join(path, "mappings.json")
    with open(json_file_path, 'r') as j:
        contents = json.loads(j.read())
    contents = {v: k for k, v in contents.items()}
    patient_ids = pd.read_csv(os.path.join(path, 'Patients.csv'))
    patient_ids = patient_ids[['subjectId', 'sabpId']].set_index('subjectId')['sabpId'].to_dict()
    if df:
        return list(map(patient_ids.get, list(map(contents.get, p_id))))
    return int(patient_ids[contents[p_id]])


def map_random_ids(p_id, df=False):
    '''
    Map random generated ids to raw ids
    Args:
        p_id:
        df:

    Returns:

    '''
    path_dir = data_path
    with open(path_dir, 'r') as file_read:
        path = file_read.read()

    cvssp_research_file_path = os.path.join(path, "mappings.json")
    with open(cvssp_research_file_path, 'r') as j:
        cvssp_research = json.loads(j.read())

    random_research_file_path = os.path.join(path, "random_id_to_research_id.json")
    with open(random_research_file_path, 'r') as j:
        random_research = json.loads(j.read())

    def map_ids(p_id):
        if p_id in cvssp_research:
            p_id_22 = cvssp_research[p_id]
        else:
            p_id_22 = p_id
        if p_id_22 in random_research:
            p_id_out = random_research[p_id_22]
        else:
            p_id_out = p_id_22
        
        return p_id_out

    if df:
        return p_id.apply(map_ids)
    return map_ids[p_id]


def map_numeric_ids(p_id, df=False):
    """
    map the numeric ids to raw ids
    :param p_id:
    :param df:
    :return:
    """
    path_dir = data_path
    with open(path_dir, 'r') as file_read:
        path = file_read.read()

    json_file_path = os.path.join(path, "mappings.json")
    with open(json_file_path, 'r') as j:
        contents = json.loads(j.read())
    # contents = {v: k for k, v in contents.items()}
    patient_ids = pd.read_csv(os.path.join(path, 'Patients.csv'))
    patient_ids = patient_ids[['subjectId', 'sabpId']].set_index('sabpId')['subjectId'].to_dict()
    if df:
        return list(map(contents.get, list(map(patient_ids.get, p_id))))
    return contents[patient_ids[p_id]]


def map_url_to_flag(urls):
    url_mapping = {
        'http://snomed.info/sct|260385009': False,
        'http://snomed.info/sct|10828004': True,
        'http://snomed.info/sct|82334004': None,
    }

    return list(map(url_mapping.get, urls))

Functions

def map_numeric_ids(p_id, df=False)

map the numeric ids to raw ids :param p_id: :param df: :return:

Expand source code
def map_numeric_ids(p_id, df=False):
    """
    map the numeric ids to raw ids
    :param p_id:
    :param df:
    :return:
    """
    path_dir = data_path
    with open(path_dir, 'r') as file_read:
        path = file_read.read()

    json_file_path = os.path.join(path, "mappings.json")
    with open(json_file_path, 'r') as j:
        contents = json.loads(j.read())
    # contents = {v: k for k, v in contents.items()}
    patient_ids = pd.read_csv(os.path.join(path, 'Patients.csv'))
    patient_ids = patient_ids[['subjectId', 'sabpId']].set_index('sabpId')['subjectId'].to_dict()
    if df:
        return list(map(contents.get, list(map(patient_ids.get, p_id))))
    return contents[patient_ids[p_id]]
def map_random_ids(p_id, df=False)

Map random generated ids to raw ids

Args

p_id: df: Returns:

Expand source code
def map_random_ids(p_id, df=False):
    '''
    Map random generated ids to raw ids
    Args:
        p_id:
        df:

    Returns:

    '''
    path_dir = data_path
    with open(path_dir, 'r') as file_read:
        path = file_read.read()

    cvssp_research_file_path = os.path.join(path, "mappings.json")
    with open(cvssp_research_file_path, 'r') as j:
        cvssp_research = json.loads(j.read())

    random_research_file_path = os.path.join(path, "random_id_to_research_id.json")
    with open(random_research_file_path, 'r') as j:
        random_research = json.loads(j.read())

    def map_ids(p_id):
        if p_id in cvssp_research:
            p_id_22 = cvssp_research[p_id]
        else:
            p_id_22 = p_id
        if p_id_22 in random_research:
            p_id_out = random_research[p_id_22]
        else:
            p_id_out = p_id_22
        
        return p_id_out

    if df:
        return p_id.apply(map_ids)
    return map_ids[p_id]
def map_raw_ids(p_id, df=False)

Map the raw ids to numeric ids.

Args

p_id: df: Returns:

Expand source code
def map_raw_ids(p_id, df=False):
    '''
    Map the raw ids to numeric ids.
    Args:
        p_id:
        df:

    Returns:

    '''
    path_dir = data_path
    with open(path_dir, 'r') as file_read:
        path = file_read.read()

    json_file_path = os.path.join(path, "mappings.json")
    with open(json_file_path, 'r') as j:
        contents = json.loads(j.read())
    contents = {v: k for k, v in contents.items()}
    patient_ids = pd.read_csv(os.path.join(path, 'Patients.csv'))
    patient_ids = patient_ids[['subjectId', 'sabpId']].set_index('subjectId')['sabpId'].to_dict()
    if df:
        return list(map(patient_ids.get, list(map(contents.get, p_id))))
    return int(patient_ids[contents[p_id]])
def map_url_to_flag(urls)
Expand source code
def map_url_to_flag(urls):
    url_mapping = {
        'http://snomed.info/sct|260385009': False,
        'http://snomed.info/sct|10828004': True,
        'http://snomed.info/sct|82334004': None,
    }

    return list(map(url_mapping.get, urls))