## Technologies and Tools
- Programming Languages: R
- Frameworks/Libraries: sqldf, tidyverse, knitr, kableExtra, htmlTable, htmlwidgets, plotly, base64enc, AnalyticCodebase, QueryFunctions
- Tools: RStudio, roxygen2 (for documentation)
## Functionality
- The main functionality is to generate query reports, update the query database, and interact with study data for METRC Redcap studies.
- Key functions include:
- `query_report()`: Core function to build reports by running functions from the ReportingFunctions library.
- `update_query_database()`: Updates and maintains the query database.
- `get_query_data()`: Retrieves specified columns of Redcap data.
- Various visualization and table generation functions like `timeline_graph()`, `summary_graph()`, `followups_table()`, etc.
- Legacy versions of some functions are provided for backward compatibility.
## Relevant Skills
- Advanced R programming techniques:
- Package development using devtools and roxygen2 for documentation
- Utilization of multiple packages for data manipulation (dplyr, tidyr), SQL queries (sqldf), report generation (knitr, kableExtra), and visualizations (plotly)
- Custom function development for modular code organization
- Global environment management using new.env()
- S3 method dispatch for `print()` and subsetting
- Data manipulation and analysis:
- Querying and filtering data using dplyr and sqldf
- Reshaping data with tidyr functions like pivot_longer(), separate_rows()
- Joining datasets using left_join(), inner_join()
- Report generation:
- Dynamic report building by running functions based on templates
- Formatting and styling HTML reports using CSS
- Creating tables with kableExtra
- Interactive visualizations with plotly
- Database management:
- Updating and maintaining a query database
- Compressing and decompressing data for storage efficiency
## Example Code
- `query_report()` demonstrates building a comprehensive report by running a series of functions based on a template.
- `update_query_database()` shows updating the query database by calculating new queries and handling data compression.
- Table and graph generation functions like `summary_graph()` and `confirmations_table()` showcase data manipulation and visualization skills.
## Notable Achievements
- Development of a full-featured package for generating query reports and managing a query system for METRC Redcap studies.
- Implementation of efficient data compression techniques for the query database.
- Dynamic report generation system that allows customization via templates.
- Integration of multiple packages for a wide range of functionality from querying data to generating interactive visualizations.
The QuerySystem package demonstrates strong R programming skills, experience with package development best practices, utilization of various libraries for data analysis and visualization, and the ability to architect a cohesive system for generating query reports and managing study data. The dynamic report generation and query database management are notable features that showcase software engineering capabilities in an R environment.