|
"""
|
|
MediSync: Multi-Modal Medical Analysis System - Runner Script
|
|
============================================================
|
|
This script downloads sample data and launches the MediSync application.
|
|
"""
|
|
|
|
import logging
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
|
handlers=[logging.StreamHandler(), logging.FileHandler("mediSync.log")],
|
|
)
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def main():
|
|
"""
|
|
Main function to set up and run the MediSync application.
|
|
"""
|
|
logger.info("Starting MediSync setup")
|
|
|
|
|
|
current_dir = Path(__file__).resolve().parent
|
|
sys.path.append(str(current_dir))
|
|
|
|
|
|
try:
|
|
logger.info("Checking for sample data")
|
|
from mediSync.utils.download_samples import (
|
|
create_sample_info_file,
|
|
download_sample_images,
|
|
)
|
|
|
|
|
|
sample_dir = current_dir / "mediSync" / "data" / "sample"
|
|
sample_dir.mkdir(parents=True, exist_ok=True)
|
|
|
|
image_files = list(sample_dir.glob("*.jpg")) + list(sample_dir.glob("*.png"))
|
|
|
|
if not image_files:
|
|
logger.info("No sample images found. Downloading...")
|
|
download_sample_images()
|
|
create_sample_info_file()
|
|
else:
|
|
logger.info(f"Found {len(image_files)} existing sample images")
|
|
|
|
except Exception as e:
|
|
logger.error(f"Error setting up sample data: {e}")
|
|
print(f"Warning: Could not set up sample data: {e}")
|
|
|
|
|
|
try:
|
|
logger.info("Launching MediSync application")
|
|
from mediSync.app import create_interface
|
|
|
|
create_interface()
|
|
|
|
except Exception as e:
|
|
logger.error(f"Error launching application: {e}")
|
|
print(f"Error: Failed to launch MediSync application: {e}")
|
|
return 1
|
|
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
sys.exit(main())
|
|
|