OHDSI Home | Forums | Wiki | Github

Can not find script needed to refresh cache

Dear ohdsiers,

I have been implemented Atlas since 1 month, i finally managed to understand what it is doing.

Could someone provide me where is this script

/resources/cdmresults/sql/report/refresh_cache/treemap.sql

?

Docker container logs complain about this script is not found so cache can not be refreshed.

Thank you in advance.

Strange, i can’t seem to locate that file in the sourcecode. This is the folder:

But there’s no refresh_cache folder.

i have seen in logs that i have WebAPI 2.13, if it is useful.

Maybe it would help to know how this error gets triggered? From the stack trace, I can see that it is from a URL that has the form @Path("{sourceKey}/{domain}/"), which could easily be matched if there was a URL call that looked something like /SOURCE_KEY/refresh_cache…but, I can’t find anywhere in the UI code that goes to an endpoing with refresh_cache. But, this error would be reported on the UI if it was the result of some javascript call (or button click). Can you check your browser console and see if there’s any matching error going to an endpoint refresh_cache?

I found on the configuration screen a ‘refresh cache’ button, which leads to this endpoint:
@Path("{sourceKey}/refreshCache").

But that’s not refresh_cache but it is close…

yeap, that’s the endpoint which is triggering this error.

I have just put this URL in the browser and the get the error from top.

{IP}:[port]/WebAPI/cdmresults/{source_key}/refresh_cache

Ah. That’s not a ‘valid’ endpoint, although it is received by WebAPI and it tries to resolve it to a report.

This is a ‘trick’ that the devs implemented in the route handling: there is a path described as: cdmresults/{sourcekey}/{domain}, and based on the values passed into the URL for sourcekey and domain, it will attempt to load a treeview report. You passed it a domain of ‘refresh_cache’ so it’s trying to load that domain report, which doesn’t exist, which leads to the error you’re getting.

There is also a cdmresults/{sourcekey}/refreshCache endpoint which is independent of the prior one with the {domain} part. Meaning: if you pass the url with refreshCache, it’s not going to the paramaterized endpoint because there is a literal endpoint refreshCache that will be routed first before passing in it as a paramater to the cdmresults/{sourcekey}/{domain} endpoint.

-Chris

t