diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 4c9f13a..7147ba7 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -88,19 +88,7 @@ rm -f soa_builder_web_tests.db* ### Pre-commit Hooks ```bash pre-commit install -pre-commit run --all-files # runs black + pytest + flake8 -``` - -### CLI Commands -```bash -# Normalize wide CSV → relational tables -soa-builder normalize --input files/SoA.csv --out-dir normalized/ - -# Expand repeating rules → calendar instances -soa-builder expand --normalized-dir normalized/ --start-date 2025-01-01 - -# Validate imaging intervals -soa-builder validate --normalized-dir normalized/ +pre-commit run --all-files # runs ruff + pytest ``` ## Code Conventions diff --git a/README.md b/README.md index 2207ecf..8ec1180 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,8 @@ [](https://opensource.org/licenses/MIT) - - # SoA Workbench -This workspace provides a Python package `soa_builder` with APIs to: - -1. Normalize a wide Schedule of Activities (SoA) matrix into relational tables. -2. Expand repeating schedule rules into projected calendar instances. +This workspace provides a Python package `soa_builder` with APIs to create a Schedule of Activites for Clinical Studies. ## Installation @@ -15,8 +10,9 @@ Recommended: editable install for development. ```bash python3 -m venv .venv source .venv/bin/activate -pip install -e . +pip install -r requirements.txt pre-commit install +pre-commit run --all-files ``` ## Start web server @@ -30,13 +26,15 @@ uvicorn soa_builder.web.app:app --reload --port 8000 ``` HTML UI: - Open http://localhost:8000/ in a browser. -- Add visits and activities; click cells to toggle status (blank -> X -> blank). 'O' values are not surfaced in the UI; clearing removes the cell row. -- Use "Generate Normalized Summary" link to produce artifacts. - - Use export buttons (to be added) or hit endpoints directly for XLSX output. - - Delete a visit or activity using the ✕ button next to its name (confirmation dialog). Deletion cascades to associated cells and automatically reorders remaining items. - - View biomedical concepts via the "Concepts" navigation link (`GET /ui/concepts`): renders a table of concept codes, titles and API links (cached; force refresh per study using `POST /ui/soa/{id}/concepts_refresh`). - -Biomedical Concepts API Access: +- Create a new Schedule of Activities for a study or access an existing one. + - When a study is chosen, additional navigation links are available in the navigation menu that are unique to the Study context. + - More options and parameters for configuring the USDM classes are available through these navigation links. +- Add Scheduled Activity instances (columns) and activities (rows) to create an SoA matrix on the edit page for a Study; click cells to toggle status (blank -> X -> blank). 'O' values are not surfaced in the UI; clearing removes the cell row. + - Use export buttons (to be added) for XLSX output of the Matrix. +- View avialable biomedical concepts via the "Biomedical Concepts" navigation link to render a table of concept codes, titles and API links (cached; force refresh available). +- View available data set specializations via the "SDTM Dataset Specializations" navigation link to render a table of specializations and API links to view associated concepts (cached; force refresh available). + +CDISC Library API Access: - The concepts list and detail pages call the CDISC Library API. - Set one (or both) of: `CDISC_SUBSCRIPTION_KEY`, `CDISC_API_KEY`. - The server will send all of these headers when possible: diff --git a/src/soa_builder/web/templates/help.html b/src/soa_builder/web/templates/help.html index 74b3d0b..90770d0 100644 --- a/src/soa_builder/web/templates/help.html +++ b/src/soa_builder/web/templates/help.html @@ -2,39 +2,95 @@ {% block content %}
This only creates a rudimentary SOA Matrix. More detail can be added using the links in the navigation menu.
+Links are only available once a study SOA has been chosen.
Partial JSON can be generated for the different USDM classes.
+The full USDM JSON is not complete. Not all classes required for USDM conformance can be generated with the attributes set in the SOA Workbench
+