Project

General

Profile

Actions

Activity #4667

closed

Module #4443: Development

Backend setup

Added by Kiran Raj 5 months ago. Updated 3 months ago.

Status:
Closed
Priority:
Normal
Assignee:
Start date:
03/10/2026
Due date:
% Done:

100%

Estimated time:
Planned Due Date:
Actions #1

Updated by Bindhu L 5 months ago

  • Assignee set to Bindhu L
Actions #2

Updated by Bindhu L 5 months ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 20
Actions #3

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.

  1. Current status
  1. 1. Project Initialization
    - Node.js project structure created
    - TypeScript configuration completed
    - Package dependencies installed
    - ES Module system configured
  1. 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
  1. 3. Development Tools
    - tsx - TypeScript execution for development
    - nodemon - Auto-restart on file changes
    - Hot reload development environment configured
  1. 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
    ```
Actions #4

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.

Actions #5

Updated by Bindhu L 5 months ago

  • % Done changed from 40 to 50

Added WebCeph Keycloak credentials and created an API to fetch patient details by passing the patient ID

Actions #6

Updated by Bindhu L 5 months ago

working on the api call to fetch the files from webceph file server and correctly show in ui

Actions #7

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.

Actions #8

Updated by Bindhu L 5 months ago

  • % Done changed from 50 to 60

Added audit logging to track system activities and changes. Also removed unused authentication-related code files as part of cleanup and code optimization.

Actions #9

Updated by Bindhu L 5 months ago

working on the Dicom files fetching

Actions #10

Updated by Bindhu L 5 months ago

orthognathic integration url "http://localhost:5174/planning/new?patientId=P0022"

Actions #11

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');
}}
>
&lt;Zap size={18} /&gt;
Orthognathic
&lt;/button&gt;
Actions #12

Updated by Bindhu L 4 months ago

  • % Done changed from 60 to 70

Changed the local file server used for fetching patient files.
Removed direct backend file URLs.
Updated code has been committed to the backend branch `feature/fetch-public-files`.

Actions #13

Updated by Bindhu L 4 months ago

The current working version of both the UI and backend build (dist folders) and added the ZIP file to the following public location:

\10.176.15.120\health technology group\Employees\Bindhu L 348772\Orthognathic_Project

Actions #14

Updated by Bindhu L 4 months ago

Currently working on cephalometric points saving to the database and viewport rendering.

Actions #15

Updated by Bindhu L 4 months ago

  • % Done changed from 70 to 80

Cephalometric landmarks are saved and correctly fetched to the viewport. Updated code in UI & backend branch: "feature/4443-ceph-landmarks-save-fetch".

Actions #16

Updated by Bindhu L 4 months ago

Orthognathic live deployment has been completed.

Actions #17

Updated by Bindhu L 4 months ago

  • % Done changed from 80 to 90

The ZAR file load logic has changed, and now the file is fetched from the file server.

Actions #18

Updated by Bindhu L 4 months ago

Created production branches for both frontend and backend and updated credentials for deployment.

Actions #19

Updated by Bindhu L 4 months ago

Working on the task: model cast selection from the WebCeph backend; need to add a type field and verify it.

Actions #20

Updated by Bindhu L 4 months ago

Alignment phase cast fetching successfully implemented based on STL type validation

Actions #21

Updated by Bindhu L 3 months ago

  • Status changed from In Progress to Resolved
  • % Done changed from 90 to 100
Actions #22

Updated by Kiran Raj 3 months ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF