A lightweight, Streamlit-based web application for validating SDTM datasets using the official CDISC CORE rules engine.
Validating SDTM datasets using CDISC CORE is critical — but the CLI interface can be a barrier for non-programmers or teams needing a quick review cycle.
This GUI wrapper eliminates that friction by offering:
- A drag-and-drop upload interface
- Click-to-run validation with selectable SDTMIG version/output format
- One-click cache updates via CDISC Library API
- Clean result downloads
- Seamless integration with the official
cdisc-rules-engine
- 📤 Upload SDTM datasets (XPT or JSON format)
- 📚 Select SDTMIG standard and version
- 📄 Choose output format: XLSX or JSON
- ✅ Validate against CDISC CORE engine
- 🔄 Update rules cache using your CDISC API key
- 🧹 Auto-cleanup of old files (uploads/results older than 7 days)
- 🖥️ Simple Streamlit UI – run with a single command
cdisc-core-app/
│
├── app.py # Main Streamlit app
├── .env # Stores CDISC_API_KEY
├── .gitignore # Best practice exclusions
├── requirements.txt # Combined dependencies
├── LICENSE # MIT License
│
├── uploads/ # Temporary uploaded files
├── results/ # Validation result outputs
├── cdisc-rules-engine/ # Official CDISC CORE repo clone
├── venv/ # (Local virtual environment)
> 📝 Note: `uploads/` and `results/` are ignored via `.gitignore`.git clone --recurse-submodules https://github.com/trinath-eda/cdisc-core-app.git
cd cdisc-core-app# Windows
python -m venv venv
venv\Scripts\activate
# macOS/Linux
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtCreate a .env file in the root directory:
CDISC_API_KEY=your_cdisc_library_api_key
streamlit run app.py
Your default browser will open the app at http://localhost:8501.
- Upload a Dataset (XPT or Dataset-JSON).
- Choose standard (sdtmig), version (3-4, 3-3, etc.), and output format (XLSX or JSON).
- Click Validate to run the CDISC CORE rules engine.
- Download the generated report from the app.
- Use the 🔄 Update Cache button to fetch the latest rules from CDISC Library using your API key.
- ✅ Multi-file dataset validation
- 🧬 ADaM rules integration
- 🐳 Docker container support
- 🔐 Authentication & user role support
- 📝 Live validation logs and job queueing
- 📎 Integration with Define-XML, Dataset-JSON Viewer
- 🔑 Missing API Key: Make sure .env is present with a valid CDISC_API_KEY.
- 🐍 Python Version: Ensure you're using Python 3.10+.
- ❌ Validation Fails: Check logs shown in the Streamlit console or inside the app.
This project is licensed under the MIT License.
For questions, enhancements, or support, feel free to raise an issue or contact the maintainer.