SynThera SDK for Python developers
The SynThera Python SDK provides a comprehensive interface for integrating advanced clinical AI capabilities into your Python applications. Built for healthcare developers, data scientists, and researchers who need reliable, scalable access to medical AI services.
Get started immediately with pip installation and our comprehensive documentation.
from synthera import SynTheraClient
import asyncio
# Initialize the client
client = SynTheraClient(
api_key="your-api-key-here",
environment="production" # or "sandbox" for testing
)
async def analyze_patient_data():
# Clinical analysis example
patient_data = {
"demographics": {
"age": 45,
"gender": "F",
"medical_history": ["hypertension", "diabetes"]
},
"vitals": {
"blood_pressure": "140/90",
"heart_rate": 88,
"temperature": 98.6
},
"chief_complaint": "Chest pain and shortness of breath"
}
# Get clinical insights
analysis = await client.clinical.analyze(patient_data)
print(f"Risk Score: {analysis.risk_score}")
print(f"Recommendations: {analysis.recommendations}")
print(f"Differential Diagnosis: {analysis.differential_diagnosis}")
# Run the analysis
asyncio.run(analyze_patient_data())
This example demonstrates basic patient data analysis. The SDK supports both synchronous and asynchronous operations.
# Clinical decision support
result = await client.clinical.analyze({
"symptoms": ["fever", "cough"],
"labs": {"wbc": 12000, "crp": 15},
"imaging": "chest_xray_url"
})
# Access structured results
print(result.primary_diagnosis)
print(result.confidence_score)
print(result.treatment_recommendations)
# Medical speech-to-text
transcription = await client.voice.transcribe(
audio_file="consultation.wav",
language="en-US",
specialty="cardiology"
)
# Generate SOAP notes
soap_note = await client.voice.generate_soap(
transcription_id=transcription.id
)
print(soap_note.formatted_note)
client.clinical.analyze()
client.clinical.risk_score()
client.clinical.drug_interactions()
client.clinical.guidelines()
client.voice.transcribe()
client.voice.generate_soap()
client.voice.extract_entities()
client.voice.streaming_transcribe()
client.imaging.analyze()
client.imaging.detect_anomalies()
client.imaging.measure()
client.imaging.compare()
client.lab.interpret()
client.lab.trends()
client.lab.reference_ranges()
client.lab.critical_values()
client.fhir.patient()
client.fhir.observation()
client.fhir.condition()
client.fhir.medication()
client.utils.validate_data()
client.utils.anonymize()
client.utils.export_report()
client.utils.health_check()
# Process multiple patients efficiently
async def batch_analysis(patient_list):
tasks = []
for patient in patient_list:
task = client.clinical.analyze(patient)
tasks.append(task)
# Execute all analyses concurrently
results = await asyncio.gather(*tasks)
# Process results
for i, result in enumerate(results):
print(f"Patient {i+1}: Risk Score = {result.risk_score}")
return results
# Usage
patients = load_patient_data("patients.json")
results = await batch_analysis(patients)
# Real-time voice processing
async def stream_processing():
async with client.voice.streaming_session() as stream:
# Configure for real-time transcription
await stream.configure(
language="en-US",
specialty="emergency_medicine",
return_interim_results=True
)
# Process audio chunks
async for audio_chunk in get_audio_stream():
await stream.send_audio(audio_chunk)
# Get real-time results
if stream.has_result():
result = await stream.get_result()
print(f"Transcription: {result.text}")
if result.is_final:
# Extract clinical entities
entities = await client.voice.extract_entities(result.text)
print(f"Entities: {entities}")
await stream_processing()
from synthera.exceptions import (
SynTheraAPIError,
AuthenticationError,
RateLimitError,
ValidationError
)
async def robust_analysis(patient_data):
try:
# Validate data before sending
validated_data = client.utils.validate_data(patient_data)
# Perform analysis with retry logic
result = await client.clinical.analyze(
validated_data,
timeout=30,
retry_count=3
)
return result
except AuthenticationError:
print("Invalid API credentials")
except RateLimitError as e:
print(f"Rate limit exceeded. Retry after {e.retry_after} seconds")
await asyncio.sleep(e.retry_after)
return await robust_analysis(patient_data)
except ValidationError as e:
print(f"Data validation failed: {e.details}")
except SynTheraAPIError as e:
print(f"API error: {e.message}")
except Exception as e:
print(f"Unexpected error: {e}")
return None
# Using environment variables
import os
client = SynTheraClient(
api_key=os.getenv("SYNTHERA_API_KEY"),
environment=os.getenv("SYNTHERA_ENV", "production"),
region=os.getenv("SYNTHERA_REGION", "us-east-1")
)
# Using configuration file
client = SynTheraClient.from_config("config.yaml")
client = SynTheraClient(
api_key="your-key",
timeout=60,
max_retries=3,
rate_limit=100, # requests per minute
debug=True,
proxy="http://proxy:8080",
verify_ssl=True
)
Complete REST API reference
Source code and examples
Official Python package
Get help from other developers