Initial commit

This commit is contained in:
Dom
2026-03-05 01:20:15 +01:00
commit c0c50e56f0
364 changed files with 62207 additions and 0 deletions

58
omop/src/api/main.py Normal file
View File

@@ -0,0 +1,58 @@
"""FastAPI application for OMOP Pipeline."""
from fastapi import FastAPI, WebSocket, WebSocketDisconnect
from fastapi.middleware.cors import CORSMiddleware
from contextlib import asynccontextmanager
import logging
from .routers import etl, schema, stats, logs, validation
from ..utils.config import Config
logger = logging.getLogger(__name__)
@asynccontextmanager
async def lifespan(app: FastAPI):
"""Application lifespan manager."""
logger.info("Starting OMOP Pipeline API")
yield
logger.info("Shutting down OMOP Pipeline API")
app = FastAPI(
title="OMOP Pipeline API",
description="API for managing OMOP CDM 5.4 ETL pipeline",
version="1.0.0",
lifespan=lifespan
)
# CORS middleware
app.add_middleware(
CORSMiddleware,
allow_origins=["http://localhost:4400", "http://localhost:3000", "http://localhost:5173"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Include routers
app.include_router(etl.router, prefix="/api/etl", tags=["ETL"])
app.include_router(schema.router, prefix="/api/schema", tags=["Schema"])
app.include_router(stats.router, prefix="/api/stats", tags=["Statistics"])
app.include_router(logs.router, prefix="/api/logs", tags=["Logs"])
app.include_router(validation.router, prefix="/api/validation", tags=["Validation"])
@app.get("/")
async def root():
"""Root endpoint."""
return {
"message": "OMOP Pipeline API",
"version": "1.0.0",
"docs": "/docs"
}
@app.get("/health")
async def health():
"""Health check endpoint."""
return {"status": "healthy"}