Version 1.4 in testing #257
Closed
pendingintent
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
I am currently testing the next release of the SoA Workbench - release 1.4. Listed below is a summary of changes included in the latest release.
What
This release expands the SoA Workbench from a visit/activity scheduling tool into a full USDM study definition platform. v1.4 ships an MCP server for agent-driven workflows, a complete Define-JSON generator, CRF specialization assignment, and twelve new study entity domains (organizations, roles, persons, estimands, indications, study interventions, titles, identifiers, amendments extensions, geographic scopes, BC categories, and SoA bundle import/export).
Why
The workbench previously covered the Schedule of Activities core (visits, activities, arms, epochs) but lacked the surrounding USDM study metadata needed to produce a submission-ready USDM package or a Define-XML/JSON artifact. v1.4 closes those gaps and adds an MCP server so AI agents can drive the workbench programmatically.
How
src/soa_builder/mcp/server.py): 11 tools covering SoA CRUD, visit/activity management, matrix retrieval, and USDM/Define-JSON export — enables Claude and other agents to interact with the workbench via the Model Context Protocol.src/usdm/create_define_json.py,generate_define_json.py): Produces CDISC Define-JSON v2.1 from the workbench database, including concepts and conceptProperties; documented inhelp/DEFINE_JSON_GENERATOR_INTEGRATION.md.routers/activities.py+templates/crf_*.html): Assigns CRF specializations to activity instances with extensionAttributes in USDM export.routers/soa_bundle.py): Export/import of a complete SoA as a portable JSON bundle.templates/soa_matrix_export.html): Standalone HTML page of the SoA matrix for easy web deployment.audit.py): Centralised before/after audit logging extracted from inline router code.scripts/cleanup_bcp_response_codes.py): Fixes stale and mismatched BiomedicalConceptProperty response codes across all SoAs.Changes
src/soa_builder/mcp/package —server.pywith 11 tools;pyproject.tomlentry point addedsrc/usdm/create_define_json.py(4 501 lines),generate_define_json.py, UI attemplates/define_json.htmlbc_categories,estimands,indications,organizations,persons,roles,soa_bundle,study_identifiers,study_interventions,study_titlestemplates/crf_cell.html,crf_specialization_detail.html,crf_specializations.htmlgenerate_estimands,generate_indications,generate_organizations,generate_roles,generate_study_identifiers,generate_study_interventions,generate_study_titles,generate_bc_categoriesweb/audit.py(319 lines) extracted from inline router codemigrate_database.pyextended with all new entity tablesTesting
tests/test_mcp_server.py, 295 lines)tests/test_define_json_concepts.py,test_define_json_generator.py)tests/test_bcp_response_code_cleanup.py)tests/test_routers_activities_crf.py)tests/test_routers_soa_bundle.py)Notes for reviewers
src/usdm/create_define_json.pyfile is large (4 500+ lines) — it is a self-contained generator and can be skimmed structurally rather than line-by-line.migrate_database.pyis the source of truth for all schema changes; review the newALTER TABLE/CREATE TABLEblocks there.files/subject_data/NCT01797120/) were removed — they are no longer needed in the repo.files/D1_Master Protocol…pdf(38 MB) was added tofiles/as reference material; confirm this is intentional before merge if storage is a concern.All reactions