Activity #4667
closedModule #4443: Development
Backend setup
100%
Updated by Bindhu L 5 months ago
- % Done changed from 20 to 30
currently in the initial setup phase with basic infrastructure configured but database integration is not yet active.
- Current status
- 1. Project Initialization
- Node.js project structure created
- TypeScript configuration completed
- Package dependencies installed
- ES Module system configured
- 2. Technology Stack Setup
- Express.js - Web framework configured
- TypeScript - Type safety and modern JavaScript features
- Sequelize ORM - Database abstraction layer installed
- PostgreSQL - Database driver (pg) installed
- CORS - Cross-origin resource sharing enabled
- dotenv - Environment variable management
- 3. Development Tools
- tsx - TypeScript execution for development
- nodemon - Auto-restart on file changes
- Hot reload development environment configured
- 4. Project Structure
```
Orthognatic_Backend/
├── src/
│ ├── config/
│ │ └── database.ts Database configuration
│ ├── controllers/ Empty
│ ├── models/ Empty
│ ├── routes/ Empty
│ ├── services/ Empty
│ └── index.ts Server entry point
├── .env Environment configuration
├── package.json Dependencies configured
└── tsconfig.json TypeScript configuration
```
Updated by Bindhu L 5 months ago
- % Done changed from 30 to 40
*Database connection established with PostgreSQL.
*Created users and patients tables in the database.
*Integrated authentication using Keycloak.
*Added authentication service, controller, and route files.
*Implemented and tested the login API successfully.
Updated by Bindhu L 5 months ago
Integrated the Orthognathic UI with the WebCeph patient worklist. When a patient is selected, the patientId is passed to the Orthognathic UI through URL parameters, which directly opens the Orientation phase loading page.
At this stage, the application fetches patient details from the Orthognathic backend API, including case records and associated STL files. These details are displayed in the workflow panel, and the STL files can be loaded into the viewer for visualization.
Updated by Bindhu L 5 months ago
This is how webceph ui connected with Orthognathic workflow
<button
className="px-4 py-2 bg-purple-50 text-purple-700 border border-purple-200 rounded-xl hover:bg-purple-100 hover:border-purple-300 transition-all duration-200 shadow-sm hover:shadow-md flex items-center gap-2 font-medium"
aria-label="Orthognathic"
onClick={() => {
// Store patient data in sessionStorage for Orthognathic UI to access
sessionStorage.setItem('ortho_patient_id', patient.patient_id);
sessionStorage.setItem('ortho_patient_name', patient.patient_name || '');
sessionStorage.setItem('ortho_patient_age', patient.age?.toString() || '');
sessionStorage.setItem('ortho_patient_gender', patient.gender || '');
// Open Orthognathic UI with patient ID
const url = `http://localhost:5174/planning/new?patientId=${patient.patient_id}`;
window.open(url, '_blank');
}}
>
<Zap size={18} />
Orthognathic
</button>