Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
316ea49
Issue #153: Reviewed database operations and addressed identified issues
pendingintent Mar 10, 2026
5ea1556
Added lines for .scripts directory and interim USDM
pendingintent Mar 11, 2026
ece559e
Fixed 404 on activity save
pendingintent Mar 11, 2026
95ee796
Issue #164: Added new footnotes feature
pendingintent Mar 11, 2026
eea7f0b
Added cell superscript functionality to the SOA MAtrix to support foo…
pendingintent Mar 12, 2026
8b79937
Ignore more local files
pendingintent Mar 13, 2026
c6261ab
Issue #168: Added support for Biomedical Concept Surrogates
pendingintent Mar 16, 2026
1d0c2a9
Fixed USDM issues #176, #177, #178, #179
pendingintent Mar 17, 2026
9c38f19
Added cdisc-json-validation repository as a submodule
pendingintent Mar 17, 2026
8a03176
Added to support JSON validation against schema
pendingintent Mar 18, 2026
458a5c5
USDM JSON generated with version 2 beta
pendingintent Mar 18, 2026
27e4aaa
Schema validation of version 2.0 beta USDM JSON
pendingintent Mar 18, 2026
922f0c9
More explicit rules
pendingintent Mar 18, 2026
a95699b
Issue #180: fixed schedule timelines USDM
pendingintent Mar 18, 2026
f3c7115
Updated with latest instructions
pendingintent Mar 18, 2026
ff780c0
Added images and markdown to explain bc workflow
pendingintent Mar 25, 2026
60317d1
Updated to latest version of requests module
pendingintent Mar 30, 2026
51aa11c
Fixed Uncontrolled data used in path expression
pendingintent Mar 30, 2026
b260fc3
Fixed documentation syntax issues
pendingintent Mar 31, 2026
40e5826
Added pydantic request modesls for the JSON API routes
pendingintent Mar 31, 2026
1cd8a9d
Merge branch 'fix-footnotes' into fix-documentation-issues
pendingintent Mar 31, 2026
09c64ad
Merge branch 'fix-uncontrolled-data-security' into fix-documentation-…
pendingintent Mar 31, 2026
46179a1
Fixed syntax issues
pendingintent Mar 31, 2026
cc2ffb5
Fixed issues reported in the app.py;removed deprecated code
pendingintent Mar 31, 2026
ead3b4a
Removed activities reoreder from app.py
pendingintent Mar 31, 2026
62af511
Fixed potential XSS issue
pendingintent Mar 31, 2026
3a0545c
Merge branch 'fix-footnotes' into release-v-1.1
pendingintent Mar 31, 2026
73f087c
Fixed potential XSS issue
pendingintent Mar 31, 2026
1582b6e
Merge branch 'fix-app-scan-issues' into release-v-1.1
pendingintent Mar 31, 2026
ccf1b1f
Wrapped form tag in <td>
pendingintent Mar 31, 2026
9630bf4
Merge branch 'fix-edit-syntax' into release-v-1.1
pendingintent Mar 31, 2026
c83e8ad
_next_surrogate_uid now Scans both the live table and the audit trail…
pendingintent Mar 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,18 @@ old-tests/
*.db-corrupt
docs/~*
files/~*
output/*
output/*.xlsx
output/*.svg
SOA Workbench Wishlist.docx
NCT01750580_limited.json
CLAUDE.md
edit-column-collapse.html
.claude
api_test.py
.scripts
files/pilot_LZZT_narrative_2026MAR10.json
.help
files/NCT01797120.pdf
.mcp.json

# End of file
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "cdisc-json-validation"]
path = cdisc-json-validation
url = https://github.com/pendingintent/cdisc-json-validation.git
42 changes: 30 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,34 @@
This workspace provides a Python package `soa_builder` with APIs to create a Schedule of Activites for Clinical Studies.


## Cloning the repository
This project now includes a submodule for USDM JSON validation with the USDM_API_v4.0.0.json schema.

In order to clone the repository with the new submodule, use the command:

```bash
> git clone --recurse-submodules https://github.com/pendingintent/soa-workbench.git
```

Once the repository has been cloned locally, in order to ensure the submodule is up-to-date, use the commands:
```bash
> cd cdisc-json-validation
> git pull
# or use the command for updating all registered submodules
> git submodule update --remote
```

This will ensure the submodule is always up-to-date.


## Installation
Recommended: editable install for development.
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pre-commit install
pre-commit run --all-files
> python3 -m venv .venv
> source .venv/bin/activate
> pip install -r requirements.txt
> pre-commit install
> pre-commit run --all-files
```

## Start web server
Expand Down Expand Up @@ -66,22 +86,20 @@ rm -f soa_builder_web_tests.db soa_builder_web_tests.db-wal soa_builder_web_test
## USDM Export
Export USDM-compliant JSON for integration with external systems:
```bash

# Or use the USDM generator scripts directly
python -m usdm.generate_activities --soa-id 1 --output-file activities.json
python -m usdm.generate_encounters --soa-id 1 --output-file encounters.json
python -m usdm.generate_study_epochs --soa-id 1 --output-file epochs.json
# Use the USDM generator scripts directly
python -m usdm.generate_usdm 1 -o study_usdm.json
python -m usdm.generate_activities 1 -o activities.json
python -m usdm.generate_encounters 1 -o encounters.json
python -m usdm.generate_study_epochs 1 -o epochs.json
# See src/usdm/ for all generator scripts
```

---

## Architecture Notes
- **Web UI**: HTMX loaded via CDN; no build step required
- **Database**: SQLite with WAL mode (production) or DELETE mode (tests)
- **Test Isolation**: Tests use `soa_builder_web_tests.db` (set via `SOA_BUILDER_DB` env var)
- **Production Config**: Set `SOA_BUILDER_DB` environment variable for persistent DB path
- **USDM Generators**: Python scripts in `src/usdm/` transform database state → USDM JSON artifacts

For detailed architectural patterns, USDM entity relationships, and development workflows, see `.github/copilot-instructions.md`.

1 change: 1 addition & 0 deletions cdisc-json-validation
Submodule cdisc-json-validation added at 4abb84
Loading
Loading