Skip to content

Monailabel-Plugin in XNAT OHIF Viewer status code 500 #1837

@Ben-Herz

Description

@Ben-Herz

Describe the bug
Open Monailabel Plugin from XNAT OHIF Viewer shows a http status code 500. Debugging reveals a 401 when trying to get all XNAT projects over the XNAT api in xnat.py.

Server logs
OHIF error:

GET https://xnat.<...>.ch/info/ 500 (Internal Server Error)
(anonymous) @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
e.exports @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
e.exports @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
Promise.then
s.request @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
a.forEach.s.<computed> @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
(anonymous) @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
_E @ app.bundle.aef1aaedd2166485be4f.js:1
(anonymous) @ app.bundle.aef1aaedd2166485be4f.js:1
c @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
(anonymous) @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
(anonymous) @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
Ii @ app.bundle.aef1aaedd2166485be4f.js:1
E @ app.bundle.aef1aaedd2166485be4f.js:1
(anonymous) @ app.bundle.aef1aaedd2166485be4f.js:1
(anonymous) @ app.bundle.aef1aaedd2166485be4f.js:1
(anonymous) @ app.bundle.aef1aaedd2166485be4f.js:1
(anonymous) @ app.bundle.aef1aaedd2166485be4f.js:1
c @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
(anonymous) @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
(anonymous) @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
ti @ app.bundle.aef1aaedd2166485be4f.js:1
E @ app.bundle.aef1aaedd2166485be4f.js:1
(anonymous) @ app.bundle.aef1aaedd2166485be4f.js:1
(anonymous) @ app.bundle.aef1aaedd2166485be4f.js:1
(anonymous) @ app.bundle.aef1aaedd2166485be4f.js:1
c @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
(anonymous) @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
(anonymous) @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
so @ app.bundle.aef1aaedd2166485be4f.js:1
E @ app.bundle.aef1aaedd2166485be4f.js:1
(anonymous) @ app.bundle.aef1aaedd2166485be4f.js:1
(anonymous) @ app.bundle.aef1aaedd2166485be4f.js:1
value @ app.bundle.aef1aaedd2166485be4f.js:1
xu @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
t.unstable_runWithPriority @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
ja @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
Qu @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
Su @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
(anonymous) @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
t.unstable_runWithPriority @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
ja @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
Ka @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
qa @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
se @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2
En @ vendors~app.bundle.6ca4aaacffe42287ff12.js:2

Monai error log:

[MainThread] [ERROR] (uvicorn.error:412) - Exception in ASGI application
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/requests/models.py", line 974, in json
    return complexjson.loads(self.text, **kwargs)
  File "/usr/lib/python3.10/json/__init__.py", line 346, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.10/json/decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.10/json/decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/uvicorn/protocols/http/h11_impl.py", line 407, in run_asgi
    result = await app(  # type: ignore[func-returns-value]
  File "/usr/local/lib/python3.10/dist-packages/uvicorn/middleware/proxy_headers.py", line 69, in __call__
    return await self.app(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/fastapi/applications.py", line 1054, in __call__
    await super().__call__(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/applications.py", line 123, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/errors.py", line 186, in __call__
    raise exc
  File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/errors.py", line 164, in __call__
    await self.app(scope, receive, _send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/cors.py", line 85, in __call__
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/middleware/exceptions.py", line 65, in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/usr/local/lib/python3.10/dist-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 756, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 776, in app
    await route.handle(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 297, in handle
    await self.app(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 77, in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
  File "/usr/local/lib/python3.10/dist-packages/starlette/_exception_handler.py", line 64, in wrapped_app
    raise exc
  File "/usr/local/lib/python3.10/dist-packages/starlette/_exception_handler.py", line 53, in wrapped_app
    await app(scope, receive, sender)
  File "/usr/local/lib/python3.10/dist-packages/starlette/routing.py", line 72, in app
    response = await func(request)
  File "/usr/local/lib/python3.10/dist-packages/fastapi/routing.py", line 278, in app
    raw_response = await run_endpoint_function(
  File "/usr/local/lib/python3.10/dist-packages/fastapi/routing.py", line 191, in run_endpoint_function
    return await dependant.call(**values)
  File "/usr/local/lib/python3.10/dist-packages/monailabel/endpoints/info.py", line 33, in api_app_info
    return app_info()
  File "/usr/local/lib/python3.10/dist-packages/monailabel/endpoints/info.py", line 28, in app_info
    return instance.info()
  File "/usr/local/lib/python3.10/dist-packages/monailabel/interfaces/app.py", line 226, in info
    "datastore": self._datastore.status(),
  File "/usr/local/lib/python3.10/dist-packages/monailabel/datastore/xnat.py", line 204, in status
    "total": len(self.list_images()),
  File "/usr/local/lib/python3.10/dist-packages/monailabel/datastore/xnat.py", line 131, in list_images
    for p in response.json().get("ResultSet", {}).get("Result", []):
  File "/usr/local/lib/python3.10/dist-packages/requests/models.py", line 978, in json
    raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

To Reproduce
Setup Monai Plugin for XNAT OHIF viewer according to:
Integration-with-Xnat-Research-PACS

Expected behavior
Show Monai model selection

Environment

  • XNAT: 1.9.1.2 build 132
  • OHIF-XNAT Viewer: 3.7.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions