From 83ae0ed087b0c50fd56b3c66eb3f97c9975c2ed3 Mon Sep 17 00:00:00 2001 From: Killian <74175986+killianrochet@users.noreply.github.com> Date: Fri, 23 Jun 2023 15:31:21 +0200 Subject: [PATCH 1/4] Change release version --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 7e8ba83f..4e379d2b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.1-a.7 +0.0.2 From 5d72e842753a9df964a9e2096f9c9bb9c1183042 Mon Sep 17 00:00:00 2001 From: Killian <74175986+killianrochet@users.noreply.github.com> Date: Tue, 18 Jul 2023 14:15:09 +0200 Subject: [PATCH 2/4] New version of the creation of descriptors files The goal is to create descriptor files from a data csv file. Each line corresponds to a different descriptor file --- VERSION | 2 +- redcap_bridge/tests/test_utils.py | 8 +++++++- redcap_bridge/utils.py | 24 ++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/VERSION b/VERSION index 4e379d2b..7e8ba83f 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.2 +0.0.1-a.7 diff --git a/redcap_bridge/tests/test_utils.py b/redcap_bridge/tests/test_utils.py index 2965d68d..48d109b4 100644 --- a/redcap_bridge/tests/test_utils.py +++ b/redcap_bridge/tests/test_utils.py @@ -1,4 +1,4 @@ -from redcap_bridge.utils import compress_record +from redcap_bridge.utils import compress_record, conversion_to_odml_table_descriptor from diglab_utils.test_utils import test_directory, initialize_test_dir @@ -13,3 +13,9 @@ def test_compressedCSV(initialize_test_dir): exp = exp_file.read() assert res == exp + +def test_conversion_to_odml_table_descriptor(initialize_test_dir): + test_dir = test_directory / 'testfiles_redcap' / 'descriptors' + + conversion_to_odml_table_descriptor(test_dir / 'Vision4Action_DATA_2023-04-13_1110.csv', session_number=5) + diff --git a/redcap_bridge/utils.py b/redcap_bridge/utils.py index 32881b30..333f113d 100644 --- a/redcap_bridge/utils.py +++ b/redcap_bridge/utils.py @@ -81,3 +81,27 @@ def remove_columns(csv_file, compressed_file=None): def exportCSVtoXLS(csv_file, compressed_file=None): read_file = pd.read_csv(csv_file, na_filter=False, dtype='str') read_file.to_excel(r'Path', index=None, header=True) + +def conversion_to_odml_table_descriptor(full_elabbook_csv, session_number): + """ + Create odml descriptor file base on the full elabbook csv file + Args: + full_elabbook_csv: path to the full csv file + session_number: number of the session you want to create descriptor csv file + Returns: + descriptor_elabbook_csv: csv descriptor file of the specific session given + """ + + df = pd.read_csv(full_elabbook_csv) + + df_ses = df.loc[df['ses_number'] == session_number] + + cols_to_melt = df_ses.columns[df_ses.columns.get_loc('ethical_protocol_id'):] + + print(cols_to_melt) + + df_melted = df_ses.melt(id_vars='record_id', value_vars=cols_to_melt) + + df_melted = df_melted.rename(columns={'variable': 'Property name'}) + + print(df_melted.to_string()) \ No newline at end of file From 372c6b54a9d723231945e3c665acc1ca1d9786f9 Mon Sep 17 00:00:00 2001 From: Killian <74175986+killianrochet@users.noreply.github.com> Date: Tue, 18 Jul 2023 14:17:29 +0200 Subject: [PATCH 3/4] New version of the creation of descriptors files The goal is to create descriptor files from a data csv file. Each line corresponds to a different descriptor file --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index 7e8ba83f..a211f863 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.1-a.7 +0.0.3-a.1 From 6f593e5a8f276e31e01fbe5935604ee8f2da374b Mon Sep 17 00:00:00 2001 From: Killian <74175986+killianrochet@users.noreply.github.com> Date: Tue, 18 Jul 2023 15:49:23 +0200 Subject: [PATCH 4/4] Add of the type of the value in the descriptor files --- redcap_bridge/utils.py | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/redcap_bridge/utils.py b/redcap_bridge/utils.py index 333f113d..f4c3f7dd 100644 --- a/redcap_bridge/utils.py +++ b/redcap_bridge/utils.py @@ -84,24 +84,29 @@ def exportCSVtoXLS(csv_file, compressed_file=None): def conversion_to_odml_table_descriptor(full_elabbook_csv, session_number): """ - Create odml descriptor file base on the full elabbook csv file - Args: - full_elabbook_csv: path to the full csv file - session_number: number of the session you want to create descriptor csv file - Returns: - descriptor_elabbook_csv: csv descriptor file of the specific session given - """ - + Create odml descriptor file based on the full elabbook csv file + Args: + full_elabbook_csv: path to the full csv file + session_number: number of the session you want to create a descriptor csv file for + Returns: + descriptor_elabbook_csv: csv descriptor file of the specific session given + """ df = pd.read_csv(full_elabbook_csv) df_ses = df.loc[df['ses_number'] == session_number] - cols_to_melt = df_ses.columns[df_ses.columns.get_loc('ethical_protocol_id'):] - print(cols_to_melt) - df_melted = df_ses.melt(id_vars='record_id', value_vars=cols_to_melt) - df_melted = df_melted.rename(columns={'variable': 'Property name'}) - print(df_melted.to_string()) \ No newline at end of file + value_types = df_melted['value'].apply(type).astype(str) + + # Extract only type of the value + value_types = value_types.str.split("'").str[1] + + # Add the Type value corresponding to the type of the value + df_melted['Type'] = value_types + + print(df_melted.to_string()) + +