IHTSDO / snowstorm

Scalable SNOMED CT Terminology Server using Elasticsearch
Other
205 stars 80 forks source link

Authoring of new SNOMED CT extensions #104

Closed liquid36 closed 4 years ago

liquid36 commented 4 years ago

Hi! i'm wondering if there is a guide or documentation of how start a new SNOMED-CT extensions? Maybe you could tell me the services( or repositories) that i need to set up.

Thanks.

kaicode commented 4 years ago

Hi @liquid36,

There is some documentation in this project for setting up Snowstorm for extension authoring. Unfortunately there is no overall documentation for setting up the Authoring Platform.

There is a diagram of the authoring platform architecture here (second diagram on the page) with links to each GitHub project. There are quite a few moving parts so anyone taking this on should be prepared to invest quite a lot of time.

We are working on putting the whole authoring platform into docker containers but it's on the slow burn.

Fee free to ask any specific questions you have here.

liquid36 commented 4 years ago

Hi @kaicode, Thanks for the replay. I was reading the Snowstorm code and also making some tries. Finally, I figured it out that is posible to make authoring of Snomed Concept and release an extension only with Snowstorm, is that right? Obviously, there is not any UI project for that but i can create a basic project for my purpose.

The main endpoints that I use are:

Let me know if I missing something important.

kaicode commented 4 years ago

Hey @liquid36, That's a good start!

If the concepts you are creating have any attributes (not just is a relationships) you should classify your concepts using an instance of the Classification Service. There are Snowstorm API endpoints to call that service once it is up and configured. You should create class axioms for your concepts manually and let the classification service create the inferred relationships - these are what clinical systems use.

You should consider using the Release Validation Framework which provides more rigorous validation across the whole extension including reference sets. The Drools validation endpoint you mentioned is great for instant validation feedback on a single concept when authoring, but running the RVF once a week and certainly before creating a release will prevent headaches later down the road.

Also note that at this time Snowstorm does not generate a Module Dependency reference set for your extension so you would need to create that manually. This informs the system importing your release which edition your extension is dependant on.

liquid36 commented 4 years ago

Yes, I know about the Classification Service, I missed to mention it. Is there any way to connect Snowstorm with Release Validation Framework like it is with Classification Service?

Very usefull your explanation, thanks a lot.

kaicode commented 4 years ago

Currently the RVF validation is kicked off via Authoring Services and goes through the Orchestration Service. This part of the architecture is a little over-complicated and wants simplifying at some point. There is no way to call the RVF from Snowstorm at the moment.

kaicode commented 4 years ago

Closing this due to inactivity.