IHTSDO / snowstorm-x

Snowstorm-X, a beta version of Snowstorm with the latest implementation-focused features and enhancements. Please be aware these features have not yet been fully tested.
Other
4 stars 3 forks source link

Demonstrating postcoordination on SNOWSTORM-X. #9

Open MarkHummeluhr opened 1 year ago

MarkHummeluhr commented 1 year ago

Hello, We have a SNOWSTORM-X instance running in our environment. (for proof of concept purposes only). We have explored the specialist-API and the FHIR-API extensively and haven’t been able to resolve how to upload postcoordinations through the API’s. Can you point us in a direction on how to do this? The ideal solution would be if we could create a codesystem, patchable through FHIR API. Thanks -Mark

kaicode commented 1 year ago

Hi Mark.

The postcoordination functionality is available within the FHIR API of SnowstormX version 8.3.0 (and later). Please refer to the Postman collection on the release page for that version.

These operations are the relevant ones:

Once you have created some expressions they can be included in ECL results. To achieve this use an implicit value set url starting with the URI of your CodeSystem Supplement.

For example: ValueSet/$expand?url=http://snomed.info/xsct/11000003104?fhir_vs=ecl/<<125605004%7CFracture%20of%20bone%7C

This will include a mix of precoordinated and postcoordinated codes like this:

Screenshot 2023-09-18 at 14 48 59

Notes:

I hope that helps. Let me know how you get on. Please just ask if I have missed something.

Kai Kewley

MarkHummeluhr commented 1 year ago

Thank you for the quick reply Kai!

We will try to replicate this over the following days and return with an update.

-Mark

karoltech commented 1 year ago

Hi Kai, The server is now up and running and works fine with classification, with the first few predicates tested.

We now are trying to patch 30 000 items, and it seems to take some time, with no more logs after the following: "Update ReasonerTaxonomy"

The server is still running, since other calls still produce logs and sensible responses.

Do you have guidelines for running such a bulk?

kaicode commented 1 year ago

This solution has not been tested with a very large total amount of expressions. Try smaller batches! Maybe start with 10 then 100, then 500 to see how the performance goes.

Check if SnowstormX is memory bound, assigning more memory may help, like:

java -Xms10g -jar snowstorm-x-8.3.0.jar
karoltech commented 1 year ago

@kaicode, thank you for your quick answer. We will take is as you advise, with small steps, and check how it goes.

karoltech commented 1 year ago

@kaicode : Hei, FYI it went real fast, i.e. on average 1.56 sec/call. Meaning we can now use 32 050 postcoordinated concepts in the terminology binding, where we had 55 precoordinated from before.