{"id":19713409,"url":"https://github.com/ctsit/redi-uniq","last_synced_at":"2025-04-29T18:31:13.640Z","repository":{"id":79003834,"uuid":"81580989","full_name":"ctsit/redi-uniq","owner":"ctsit","description":null,"archived":true,"fork":false,"pushed_at":"2017-02-16T15:13:58.000Z","size":28,"stargazers_count":0,"open_issues_count":4,"forks_count":2,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-02-27T20:32:32.089Z","etag":null,"topics":["redi","reviewphilip"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ctsit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-10T15:58:46.000Z","updated_at":"2023-11-07T12:44:35.000Z","dependencies_parsed_at":"2023-04-20T19:32:15.445Z","dependency_job_id":null,"html_url":"https://github.com/ctsit/redi-uniq","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctsit%2Fredi-uniq","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctsit%2Fredi-uniq/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctsit%2Fredi-uniq/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ctsit%2Fredi-uniq/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ctsit","download_url":"https://codeload.github.com/ctsit/redi-uniq/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251559856,"owners_count":21609089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["redi","reviewphilip"],"created_at":"2024-11-11T22:22:02.814Z","updated_at":"2025-04-29T18:31:13.635Z","avatar_url":"https://github.com/ctsit.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RED-I Uniq - A small version of the RED-I UniqueIds project\nDesigned to process RED-I data in individual files, the ability to run a single\nperson is operational, to run a group of people is not yet, but will be configurable\n\n## Contents of the Repository\n* The Makefile:\n\t* Pre RED-I Tasks\n\t\t* make - will show all available make targets\n\t\t* make emr - Get the EMR data (based on a RED-I settings.ini file)\n\t\t* make filter - Filter 'raw.txt' based on a configured rule list\n\t\t* make count - Count lines in 'raw.txt' and compare to per participant files\n\t\t* make uniq - Create the unique file based from a raw file\n\t* During RED-I Tasks\n\t\t* make lastlog - Get the last log for a particular subject (ID=000-0000)\n\t* Post RED-I Tasks\n\t\t* make watch - Watch the state of the current run for a specific site\n\t\t* make cprep - Copy reports files from complete runs\n\t\t* make merge - Merge the reports files into JSON for email report\n\t\t* make email - Send the reports to target recipient\n* All scripts:\n\t* Shell Scripts:\n\t\t* collect_reports.sh - Used by 'make cprep', this script goes through all the user_data participant files and looks for the report file that is set in the configuration (uniq.ini). These reports are generated by RED-I if the run actually completes\n\t\t* count_lines.sh - This is used by 'make count', this script goes through the participant files in user_data and compares the total line count with the raw files line count.\n\t\t* cron.sh - This is the script that is setup in a cron entry, which triggers get_emr.sh, filter_raw.sh, get_unique.sh, run_redi.sh, and collect_reports.sh (based on configuration in uniq.ini)\n\t\t* filter_raw.sh - Used by 'make filter', this script goes through the raw file and runs the python script filter_raw.py, using a rules.json file to clean the raw file.\n\t\t* get_config.sh - Used to be the traffic cop, this will collect the path to your uniq.ini file.\n\t\t* get_emr.sh - Used by 'make emr', this script uses a RED-I settings.ini file (emr_* variables) and collets a fresh copy of the EMR data for the configured site.\n\t\t* get_last_log.sh - Used by 'make lastlog', this script collects the latest log path from a particular participant (specified by ID=000-0000).\n\t\t* get_unique.sh - Used by 'make uniq', this script is the script that started the whole idea. It parses the raw.txt data and collects all subjects based on a column given in uniq.ini.\n\t\t* merge_reports.sh - Used by 'make merge', this script collects all the designated output XML files from RED-I and merges them into a single report JSON file\n\t\t* run_redi.sh - This is the script that actually triggers the RED-I process to run\n\t\t* send_email.sh - Used by 'make email', this script collects the output from 'make merge' and sends a customized email to the configured recipients\n\t\t* watch_run.sh - Used by 'make watch', this script looks at the latest RED-I run, based on configuration from uniq.ini for a specific site.\n\t* Python Scripts:\n\t\t* __init__.py - Um duh!\n\t\t* filter_raw.py - Used in the execution of 'make filter', which runs filter_raw.sh.\n\t\t* get_unique.py - Used in the execution of 'make uniq', which runs get_unique.sh.\n\t\t* merge_reports.py - Used in the execution of 'make merge', which runs merge_reports.sh\n\t\t* send_email.py - Used in the execution of 'make email', which runs send_email.sh\n\t\t* myrules.py - Yes, the only one not named something_somethingelse. This script is the 'decision.py' of this process, and sets the available rule types for the filter process.\n\t\t\n## Danger\nOnly tested with redi version 0.15.4\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctsit%2Fredi-uniq","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fctsit%2Fredi-uniq","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fctsit%2Fredi-uniq/lists"}