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 @@ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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 %}

Steps to Create an SoA Matrix

+ +
  1. -

    Create a Schedule Timeline (container)

    +

    Create a new Schedule of Activties on the landing page.

  2. +
  3. -

    Create Encounters/Visits (Optional, but recommended)

    +

    Create Schedule of Activities Matrix on Study Landing Page

    +

    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.

  4. -

    Create Scheduled Activity Instances (Matrix Columns)

    +

    Create Study Timing

  5. +
  6. +

    Create Epochs

    + +
  7. +
  8. +

    Create Arms

    + +
  9. +
  10. +

    Create Elements

    + +
  11. +
  12. +

    Associate Study Epochs and Arms with Elements

    + +
  13. +
  14. +

    Create Encounters

    + +
  15. +
  16. +

    Transition Rules for Encounters and Elements can also be defined

    + +
  17. +
  18. +

    USDM JSON can also be generated

    + +

    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

    +
  19. Return to the Edit Page