@@ -16,10 +16,8 @@ def basic_search() -> None:
1616 """Demonstrate basic concept search."""
1717 print ("=== Basic Search ===" )
1818
19- # ``search.basic`` returns a dict with a ``concepts`` list plus pagination
20- # metadata - read the list from ``result["concepts"]``.
21- result = client .search .basic ("heart attack" )
22- concepts = result ["concepts" ]
19+ # Simple text search - returns a flat list of concept dicts
20+ concepts = client .search .basic ("heart attack" )
2321 print (f"Found { len (concepts )} concepts for 'heart attack'" )
2422
2523 for c in concepts [:3 ]:
@@ -30,15 +28,14 @@ def filtered_search() -> None:
3028 """Demonstrate search with filters."""
3129 print ("\n === Filtered Search ===" )
3230
33- # Search in specific vocabularies. Same dict-shaped response as above.
34- result = client .search .basic (
31+ # Search in specific vocabularies
32+ concepts = client .search .basic (
3533 "myocardial infarction" ,
3634 vocabulary_ids = ["SNOMED" , "ICD10CM" ],
3735 domain_ids = ["Condition" ],
3836 standard_concept = "S" , # Only standard concepts
3937 page_size = 10 ,
4038 )
41- concepts = result ["concepts" ]
4239 print (f"Found { len (concepts )} standard condition concepts" )
4340
4441 for c in concepts [:5 ]:
@@ -48,15 +45,14 @@ def filtered_search() -> None:
4845def bulk_lexical_search () -> None :
4946 """Demonstrate bulk lexical search — multiple queries in one call.
5047
51- ``bulk_basic`` returns a dict with a ``results`` list (plus
52- ``total_searches`` / ``completed_searches`` / ``failed_searches``
53- counts). Each item in ``results`` has ``search_id``, ``query``,
54- ``results`` (a nested list of concepts), ``status``, and ``duration``.
48+ ``bulk_basic`` returns a list of per-query result objects. Each item
49+ has ``search_id``, ``query``, ``results`` (a nested list), ``status``,
50+ and ``duration``.
5551 """
5652 print ("\n === Bulk Lexical Search ===" )
5753
5854 # Search for multiple terms at once (up to 50)
59- response = client .search .bulk_basic (
55+ items = client .search .bulk_basic (
6056 [
6157 {"search_id" : "q1" , "query" : "diabetes mellitus" },
6258 {"search_id" : "q2" , "query" : "hypertension" },
@@ -65,13 +61,13 @@ def bulk_lexical_search() -> None:
6561 defaults = {"vocabulary_ids" : ["SNOMED" ], "page_size" : 5 },
6662 )
6763
68- for item in response [ "results" ] :
64+ for item in items :
6965 print (
7066 f" { item ['search_id' ]} : { len (item ['results' ])} results ({ item ['status' ]} )"
7167 )
7268
7369 # Per-query overrides — different domains per query
74- response = client .search .bulk_basic (
70+ items = client .search .bulk_basic (
7571 [
7672 {
7773 "search_id" : "conditions" ,
@@ -84,7 +80,7 @@ def bulk_lexical_search() -> None:
8480 )
8581
8682 print ("\n Per-query domain overrides:" )
87- for item in response [ "results" ] :
83+ for item in items :
8884 print (f" { item ['search_id' ]} :" )
8985 for c in item ["results" ][:3 ]:
9086 print (f" { c ['concept_name' ]} ({ c ['vocabulary_id' ]} /{ c ['domain_id' ]} )" )
@@ -128,8 +124,8 @@ def bulk_semantic_search() -> None:
128124def autocomplete_example () -> None :
129125 """Demonstrate autocomplete suggestions.
130126
131- ``concepts.suggest`` returns its own response shape (distinct from
132- ``search.basic``); read suggestion fields off each item directly.
127+ ``concepts.suggest`` returns a flat list of concept dicts - the same
128+ shape as ``search.basic`` - so you read ``concept_name`` directly.
133129 """
134130 print ("\n === Autocomplete ===" )
135131
0 commit comments