AI-powered orthopedic screw identification from x-ray images.
OrthoScrew ID was developed through a collaboration between medical and computer science researchers at Saint Louis University. The app addresses a real challenge in orthopedic revision surgeries: quickly and accurately identifying the manufacturer of previously implanted hardware. Upload AP and Lateral x-ray views, crop to the screw of interest, and the model returns ranked manufacturer predictions with confidence scores and similar reference cases.
OrthoScrew ID is a Progressive Web App built with Expo, designed to provide a near-native mobile experience in the browser. It auto-deploys and is hosted on GitHub Pages.
Live app: https://austin-carnahan.github.io/iris-orthopedic/
# Install dependencies
npm install
# Start for web
npm run webThe app will open at http://localhost:8081.
The app uses Google sign-in via Firebase Authentication. For login to work, you must configure whitelisting in both places:
- Firebase Console → Authentication → Settings → Authorized domains — add your
domain (e.g.,
localhost,austin-carnahan.github.io) - Google Cloud Platform → APIs & Services → Credentials → OAuth 2.0 Client → Authorized JavaScript origins and redirect URIs — add the same domains
Both must be configured or authentication will fail silently.
Firebase config is in firebase.js.
This app communicates directly with Hugging Face as its backend — there is no separate
server. The ML code lives in the ml/ directory.
| Resource | URL |
|---|---|
| Inference Space | austin-carnahan/orthopedic-screw-identification |
| Model Repo | austin-carnahan/orthopedic-screws-model |
| Dataset | austin-carnahan/orthopedic-screw-images |
The app sends cropped x-ray images to the HF Space via the Gradio client library and
receives manufacturer predictions with similar reference cases. See
ml/space/README.md for API details.
Basic EAS Build configuration is provided in eas.json. To create native
app builds:
eas build --platform ios # or androidSee the EAS Build introduction for setup and prerequisites.
Note: Native builds require additional setup before they will succeed:
- Add
ios.bundleIdentifierandandroid.packagetoapp.json- Camera and photo library permissions may need to be configured in
app.jsonplugins- An Apple Developer account (iOS) or Google Play Console (Android) is needed for distribution