MedSynapticGPT / api.py
mgbam's picture
Upload 5 files
0d1ed61 verified
raw
history blame
837 Bytes
"""FastAPI micro‑service for enterprise EHR integration"""
from fastapi import FastAPI, UploadFile, File, Form
import openai, pydicom, numpy as np, io
from PIL import Image
import os, tempfile
app = FastAPI()
openai.api_key = os.getenv("OPENAI_API_KEY")
@app.post("/radiology")
async def radiology(file: UploadFile = File(...)):
data = await file.read()
if file.filename.endswith(".dcm"):
ds = pydicom.dcmread(io.BytesIO(data))
arr = ds.pixel_array.tolist()
else:
img = Image.open(io.BytesIO(data))
arr = np.array(img).tolist()
rpt = openai.chat.completions.create(model="gpt-4o-mini", messages=[{"role":"user","content":"Analyze this study."}], images=[arr]).choices[0].message.content
return {"report": rpt}
---------------------------------------------------------------------