Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
53 changes: 53 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# ReportX

Documentation site for the ReportX annotation protocol, served as a static nginx container.

## Site contents

The site covers the ReportX annotation protocol across four pages:

- **index.html** — main protocol reference: tumor region legend and field definitions for the annotation template
- **clinicians.html** — annotators guide (available in both English and Italian)
- **dataset-release.html** — dataset release template with field definitions and tumor region legend
- **join.html** — recruitment page for new annotators

## Repository structure

```
├── .github/workflows/
│ └── deploy.yml # CI/CD pipeline (build → push → deploy)
├── Dockerfile
├── docker-compose.yml
├── *.html / *.css / *.js
└── assets/
```

## Branching flow

`dev-<username>` → `dev` → `production`

Work on your branch, then open a PR to `dev` for integration/staging. Once validated, `dev` is promoted to `production`.

## Environments

| Environment | URL | Availability |
|---|---|---|
| Dev | `http://services-host.ing.unimore.it:8096` | Unimore network only |
| Production | `https://reportx.unimore.it` | Public |

## Deploying

**Do not run `docker compose` manually.** Deploys are fully automated via GitHub Actions.

- Push/merge to `dev` → builds and pushes `ghcr.io/aimagelab-zip/reportx:dev`, then restarts the dev container.
- Push/merge to `production` → builds and pushes `ghcr.io/aimagelab-zip/reportx:latest`, then restarts the production container.

### Required GitHub secrets

| Secret | Description |
|---|---|
| `SSH_HOST` | Server hostname or IP |
| `SSH_USER` | SSH username on the server |
| `SSH_KEY` | Private SSH key for that user |

`GITHUB_TOKEN` is provided automatically by Actions and is used for GHCR authentication.
18 changes: 9 additions & 9 deletions clinicians.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>BraTS Reports Annotators Guide</title>
<title>ReportX Annotators Guide</title>
<meta
name="description"
content="Structured definition of BraTS Reports dataset fields and annotation protocol."
content="Structured definition of ReportX dataset fields and annotation protocol."
>
<link rel="stylesheet" href="styles.css">
</head>
<body class="page-clinicians" data-lang="it">
<header class="site-header">
<nav class="topbar" aria-label="Primary navigation">
<div class="brand-lockup">
<a class="brand" href="index.html">BraTS Reports</a>
<a class="brand" href="index.html">ReportX</a>
<a class="powered-by" href="https://aimagelab.unimore.it/" aria-label="Powered by AI Image Lab">
<span>Powered by</span>
<span class="aimagelab-wordmark" aria-hidden="true"><span class="ai-part">AI</span><span class="mage-part">mage</span><span class="lab-part">Lab</span></span>
Expand All @@ -28,7 +28,7 @@
</nav>
<section id="top" class="hero">
<div class="hero-copy">
<p class="eyebrow">BraTS Reports instructions hub</p>
<p class="eyebrow">ReportX instructions hub</p>
<h1>One template, three ways in.</h1>
<p>
Pick the documentation path you need: dataset release fields, the Italian
Expand All @@ -55,12 +55,12 @@ <h1>One template, three ways in.</h1>
<div class="section-heading">
<div class="lang-copy-it">
<p class="eyebrow">Guida per annotatori</p>
<h1>Guida BraTS Reports per gli Annotatori</h1>
<h1>Guida ReportX per gli Annotatori</h1>
<p>Scegli la lingua per il protocollo di annotazione e la guida ai campi di annotazione.</p>
</div>
<div class="lang-copy-en">
<p class="eyebrow">Annotator guide</p>
<h1>BraTS Reports Annotators Guide</h1>
<h1>ReportX Annotators Guide</h1>
<p>Choose the language for the annotation protocol and annotator field guide.</p>
</div>
</div>
Expand Down Expand Up @@ -323,7 +323,7 @@ <h2>Field Definitions</h2>
<section id="clinicians-en" class="section clinicians-en-content">
<div class="section-heading">
<p class="eyebrow">English version</p>
<h2>BraTS Reports Dataset Template</h2>
<h2>ReportX Dataset Template</h2>
<p>Structured definition of dataset fields for reporting on ToothFairy4M.</p>
</div>

Expand Down Expand Up @@ -712,7 +712,7 @@ <h2>Using the ToothFairy4M Platform</h2>
<section id="clinicians-it" class="section clinicians-it-content">
<div class="section-heading">
<p class="eyebrow">Versione italiana</p>
<h2>Template del Dataset BraTS Reports</h2>
<h2>Template del Dataset ReportX</h2>
<p>Definizione strutturata dei campi del dataset per la refertazione su ToothFairy4M.</p>
</div>

Expand Down Expand Up @@ -1100,7 +1100,7 @@ <h2>Utilizzo della piattaforma ToothFairy4M</h2>
</main>

<footer class="footer">
<p>BraTS Reports Dataset Template</p>
<p>ReportX Dataset Template</p>
<div class="footer-links">
<a href="mailto:omar.carpentiero@unimore.it?subject=BraTS%20Reports%20website%20feedback">Feedback / issues</a>
<a href="#top">Back to top</a>
Expand Down
12 changes: 6 additions & 6 deletions dataset-release.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>BraTS Reports Dataset Release</title>
<title>ReportX Dataset Release</title>
<meta
name="description"
content="Structured definition of BraTS Reports dataset fields and annotation protocol."
content="Structured definition of ReportX dataset fields and annotation protocol."
>
<link rel="stylesheet" href="styles.css">
</head>
<body class="page-dataset">
<header class="site-header">
<nav class="topbar" aria-label="Primary navigation">
<div class="brand-lockup">
<a class="brand" href="index.html">BraTS Reports</a>
<a class="brand" href="index.html">ReportX</a>
<a class="powered-by" href="https://aimagelab.unimore.it/" aria-label="Powered by AI Image Lab">
<span>Powered by</span>
<span class="aimagelab-wordmark" aria-hidden="true"><span class="ai-part">AI</span><span class="mage-part">mage</span><span class="lab-part">Lab</span></span>
Expand All @@ -28,7 +28,7 @@
</nav>
<section id="top" class="hero">
<div class="hero-copy">
<p class="eyebrow">BraTS Reports instructions hub</p>
<p class="eyebrow">ReportX instructions hub</p>
<h1>One template, three ways in.</h1>
<p>
Pick the documentation path you need: dataset release fields, the Italian
Expand Down Expand Up @@ -381,7 +381,7 @@ <h2>Annotators Version in English</h2>
<section id="clinicians-it" class="section clinicians-it-content">
<div class="section-heading">
<p class="eyebrow">Versione italiana</p>
<h2>Template del Dataset BraTS Reports</h2>
<h2>Template del Dataset ReportX</h2>
<p>Definizione strutturata dei campi del dataset per la refertazione su ToothFairy4M.</p>
</div>

Expand Down Expand Up @@ -749,7 +749,7 @@ <h2>Utilizzo della piattaforma ToothFairy4M</h2>
</main>

<footer class="footer">
<p>BraTS Reports Dataset Template</p>
<p>ReportX Dataset Template</p>
<div class="footer-links">
<a href="mailto:omar.carpentiero@unimore.it?subject=BraTS%20Reports%20website%20feedback">Feedback / issues</a>
<a href="#top">Back to top</a>
Expand Down
14 changes: 7 additions & 7 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>BraTS Reports Dataset Template</title>
<title>ReportX Dataset Template</title>
<meta
name="description"
content="Structured definition of BraTS Reports dataset fields and annotation protocol."
content="Structured definition of ReportX dataset fields and annotation protocol."
>
<link rel="stylesheet" href="styles.css">
</head>
<body class="home">
<header class="site-header">
<nav class="topbar" aria-label="Primary navigation">
<div class="brand-lockup">
<a class="brand" href="index.html">BraTS Reports</a>
<a class="brand" href="index.html">ReportX</a>
<a class="powered-by" href="https://aimagelab.unimore.it/" aria-label="Powered by AI Image Lab">
<span>Powered by</span>
<span class="aimagelab-wordmark" aria-hidden="true"><span class="ai-part">AI</span><span class="mage-part">mage</span><span class="lab-part">Lab</span></span>
Expand All @@ -29,8 +29,8 @@
<section id="top" class="hero">
<div class="hero-content">
<div class="hero-copy">
<p class="eyebrow">BraTS Reports instructions hub</p>
<h1>BraTS Reports</h1>
<p class="eyebrow">ReportX instructions hub</p>
<h1>ReportX</h1>
<p>
Advancing structured neuro-oncology reporting through standardized
annotation, machine-readable findings, and clear dataset documentation.
Expand Down Expand Up @@ -384,7 +384,7 @@ <h2>Annotators Version in English</h2>
<section id="clinicians-it" class="section clinicians-it-content">
<div class="section-heading">
<p class="eyebrow">Versione italiana</p>
<h2>Template del Dataset BraTS Reports</h2>
<h2>Template del Dataset ReportX</h2>
<p>Definizione strutturata dei campi del dataset per la refertazione su ToothFairy4M.</p>
</div>

Expand Down Expand Up @@ -752,7 +752,7 @@ <h2>Utilizzo della piattaforma ToothFairy4M</h2>
</main>

<footer class="footer">
<p>BraTS Reports Dataset Template</p>
<p>ReportX Dataset Template</p>
<div class="footer-links">
<a href="mailto:omar.carpentiero@unimore.it?subject=BraTS%20Reports%20website%20feedback">Feedback / issues</a>
<a href="#top">Back to top</a>
Expand Down
14 changes: 7 additions & 7 deletions join.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Join BraTS Reports</title>
<title>Join ReportX</title>
<meta
name="description"
content="Join the BraTS Reports annotation project."
content="Join the ReportX annotation project."
>
<link rel="stylesheet" href="styles.css">
</head>
<body class="join-page">
<header class="site-header">
<nav class="topbar" aria-label="Primary navigation">
<div class="brand-lockup">
<a class="brand" href="index.html">BraTS Reports</a>
<a class="brand" href="index.html">ReportX</a>
<a class="powered-by" href="https://aimagelab.unimore.it/" aria-label="Powered by AI Image Lab">
<span>Powered by</span>
<span class="aimagelab-wordmark" aria-hidden="true"><span class="ai-part">AI</span><span class="mage-part">mage</span><span class="lab-part">Lab</span></span>
Expand All @@ -31,11 +31,11 @@
<main>
<section class="section join-section">
<div class="join-panel">
<p class="eyebrow">Join BraTS Reports</p>
<p class="eyebrow">Join ReportX</p>
<h1>We are still recruiting.</h1>
<p>
If you would like to contribute to the BraTS Reports annotation effort,
contact the BraTS Reports team for more details.
If you would like to contribute to the ReportX annotation effort,
contact the ReportX team for more details.
</p>
<a class="join-mail" href="mailto:omar.carpentiero@unimore.it?subject=Joining%20BraTS%20Reports">
omar.carpentiero@unimore.it
Expand All @@ -45,7 +45,7 @@ <h1>We are still recruiting.</h1>
</main>

<footer class="footer">
<p>BraTS Reports Dataset Template</p>
<p>ReportX Dataset Template</p>
<div class="footer-links">
<a href="mailto:omar.carpentiero@unimore.it?subject=BraTS%20Reports%20website%20feedback">Feedback / issues</a>
<a href="index.html">Back home</a>
Expand Down