Job Polling Mechanism

JobPoller waits for background jobs to finish. It repeatedly checks the job status until a terminal state is reached or a timeout occurs.

graph TD A["start run()"] --> B[get job status] B --> C{terminal state?} C -- Yes --> D[return status] C -- No --> E{timeout exceeded?} E -- Yes --> F[raise JobTimeoutError] E -- No --> G[sleep interval] G --> B

Using the SDK

ImednetSDK provides a convenience method poll_job that blocks until the job finishes. AsyncImednetSDK exposes async_poll_job for the same behavior in asynchronous code.

from imednet import ImednetSDK, AsyncImednetSDK

# synchronous
sdk = ImednetSDK()
status = sdk.poll_job("STUDY", "BATCH", interval=2, timeout=60)

# asynchronous
async def wait_async():
    async with AsyncImednetSDK() as sdk:
        status = await sdk.async_poll_job("STUDY", "BATCH", interval=2, timeout=60)