33import logging
44import os
55
6+ from dotenv import load_dotenv
7+
68from services .dicom .dicom_uploader import DICOMUploader
79from services .dicom .upload_listener import UploadListener
810from services .dicom .upload_processor import UploadProcessor
911from services .storage import MWLStorage , PACSStorage
1012
13+ load_dotenv ()
14+
1115
1216def main ():
13- """Main entry point for upload listener service."""
17+ """
18+ Main entry point for upload listener service.
19+
20+ Environment variables:
21+ CLOUD_API_ENDPOINT: URL of the cloud API endpoint to upload to (default: http://localhost:8000/api/dicom/upload)
22+ CLOUD_API_KEY: API key for authenticating with the cloud API (default: none)
23+ MAX_UPLOAD_RETRIES: Maximum number of upload retries before giving up (default: 3)
24+ MWL_DB_PATH: Path to the MWL SQLite database file (default: /var/lib/pacs/worklist.db)
25+ PACS_DB_PATH: Path to the PACS SQLite database file (default: /var/lib/pacs/pacs.db)
26+ PACS_STORAGE_PATH: Path to the directory where DICOM files are stored (default: /var/lib/pacs/storage)
27+ UPLOAD_POLL_INTERVAL: Time in seconds between polling for new uploads (default: 2)
28+ UPLOAD_BATCH_SIZE: Number of pending uploads to process in each batch (default: 10)
29+ """
1430 logging .basicConfig (
1531 level = os .getenv ("LOG_LEVEL" , "INFO" ).upper (),
1632 format = os .getenv ("LOG_FORMAT" , "%(asctime)s - %(name)s - %(levelname)s - %(message)s" ),
@@ -20,8 +36,10 @@ def main():
2036 batch_size = int (os .getenv ("UPLOAD_BATCH_SIZE" , "10" ))
2137 max_retries = int (os .getenv ("MAX_UPLOAD_RETRIES" , "3" ))
2238
23- pacs_storage = PACSStorage ()
24- mwl_storage = MWLStorage ()
39+ pacs_storage = PACSStorage (
40+ os .getenv ("PACS_DB_PATH" , "/var/lib/pacs/pacs.db" ), os .getenv ("PACS_STORAGE_PATH" , "/var/lib/pacs/storage" )
41+ )
42+ mwl_storage = MWLStorage (os .getenv ("MWL_DB_PATH" , "/var/lib/pacs/worklist.db" ))
2543 uploader = DICOMUploader ()
2644
2745 processor = UploadProcessor (
0 commit comments