IHTSDO / snowstorm

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

Prefered or Acceptable term #513

Open magui394 opened 1 year ago

magui394 commented 1 year ago

https://snowstorm.msal.gov.ar/MAIN/concepts?term=cancer%20mama&language=es&ecl=%3C%3C64572001%20OR%20%3C%3C387713003&offset=0&limit=50

Hi, I have problems with prefered an acccepteble terms. I search 'cancer de mama' and the results show me te preferred terms and not the acceptatble terms that included 'cancer de mama'

I tried with preferredOrAcceptableIn=450828004 but I cant.

I used like headers "Accept-Language": "es"

kaicode commented 1 year ago

The implementation advice for user interfaces for clinical systems is that all active descriptions (in the requested language or dialect) should be used to find the best concept, however the preferred term (in the requested language) should be presented back to the user. This is how the Snowstorm search works in most of the API functions including the native API and the FHIR API. In your example you should get the Spanish preferred terms in the response if the request has an Accept-Language header including "es".

The concept search in the SNOMED International browser presents both the matching term and the FSN. This is not how search in a clinical user interface should work. This search uses the Snowstorm "browser" descriptions search GET /browser/{branch}/descriptions. This search endpoint returns semantic tag aggregations before the actual "items" in the response so it can be a bit confusing to read at first. This search endpoint can filter by semantic tag but can not filter using ECL.

I would recommend using the FHIR API for search. For example /fhir/ValueSet/$expand?url=http://snomed.info/sct?fhir_vs=ecl/%3C%3C64572001%20OR%20%3C%3C387713003&displayLanguage=es&count=50&filter=cancer%20ma. This searches against Spanish terms and returns the Spanish preferred terms without needing to set the Accept Language header. It's possible to return all the terms of each matched concept by adding &includeDesignations=true. This way the client code could pick out the description that matched in addition to showing the preferred term, if needed.

I hope that is clear and helps you. Just let me know if I have said something that doesn't make sense.