File size: 835 Bytes
e39bf15
0d1ed61
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"""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}

---------------------------------------------------------------------