icdbot / main.py
oneilsh's picture
trying huggingface spaces...
c0aa211
raw
history blame
2.31 kB
from icdtree import ICDTree, get_tree
# run as e.g.
# poetry run python -c 'import main; main.test_semantic_search()'
def build_tree_cache():
icd_tree = get_tree()
print("Tree built and saved.")
def test_semantic_search():
icd10_tree = get_tree()
#icd10_tree.build_faiss_index()
# search for the term "Torus"
search_results = icd10_tree.semantic_search("pneumonia", limit=10)
for result in search_results:
print(result)
print("getting more")
search_results = icd10_tree.semantic_search("pneumonia", limit=10, offset=10)
for result in search_results:
print(result)
def test_search():
icd10_tree = get_tree()
search_nodes = icd10_tree.regex_search(r'Torus', max_depth=5)
if len(search_nodes) > 0:
# get the highest-level nodes (closest to 0)
search_nodes.sort(key=lambda x: x.level)
stack = [node for node in search_nodes if node.level == search_nodes[0].level]
# do a quick depth first search to print all nodes in order
while len(stack) > 0:
node = stack.pop()
print(node)
stack.extend(node.get_children())
if __name__ == '__main__':
print("Try running this file like `python -c 'import main; main.build_tree_cache()'` to build the tree cache.")
# s42 = icd10_tree.get_node_by_code('S42.001B')
# # index 0 is the yaml string, index 1 is the level
# print(s42.get_ancestors_yaml()[0])
# s42 = icd10_tree.get_node_by_code('S42')
# print(s42)
# for child in s42.get_children():
# print(child)
# for grandchild in child.get_children():
# print(grandchild)
# print(s42.get_descendants_yaml())
# res = icd10_tree.regex_search('.*', max_depth=0)
# for node in res:
# print(node)
# print("#######")
# focal = icd10_tree.get_node_by_code('M05.5')
# children = focal.get_children()
# for node in children:
# print(node)
# print("#######")
# focal = icd10_tree.get_node_by_code('M05.53')
# children = focal.get_children()
# for node in children:
# print(node)
# print("#######")
# focal = icd10_tree.get_node_by_code('M05.539')
# children = focal.get_children()
# for node in children:
# print(node)