Blog
How to Build: Semantic Search on Clinical Trials Data at the Point-of-Care using Clarion TM-7200-24 Medical AIO PC
Teguar Engineering Team · September 22, 2025
An engineering guide showing how to implement semantic search on clinical trials data at the point-of-care on Teguar's purpose-built Clarion TM-7200-24 Medical AIO PC with rag & llms.
In emergency and specialized care environments, clinicians often need to match patients with clinical trials or check eligibility criteria in real-time. Traditional keyword-based search systems fail to understand medical context, leading to missed opportunities or delayed treatments.
This guide demonstrates how to build a high-performance Semantic Search system for clinical trials using local vector databases on Teguar's Clarion TM-7200-24 Medical AIO PC.
Hardware Foundation: Clarion TM-7200-24 Medical AIO PC
Point-of-care medical workstations demand a spacious, high-fidelity screen combined with responsive local computing power.
- Stunning 24" Display: The Clarion TM-7200-24 provides an expansive, high-resolution viewing area perfect for split-screen layouts, letting doctors examine EHR data side-by-side with clinical trials metadata.
- Fully Sealed Bezel: With an IP65 rated front bezel, the display can be aggressively disinfected and wiped down with hospital-grade sanitizers.
- Compute Resilience: Equipped with powerful multi-core processing, it allows the vector search engine to execute similarity queries in milliseconds.
Semantic Search Architecture
+---------------------------------------------------------------------------------+
| Clarion TM-7200-24 Medical AIO PC |
| |
| +--------------------+ |
| | Doctor Input | |
| | "immunotherapy for | |
| | stage 4 melanoma" | |
| +---------+----------+ |
| | |
| v |
| +--------------------+ +--------------------+ +--------------------+ |
| | Local Embedding | ---> | Vector Similarity | --> | Local Clinical | |
| | Model (HF/Sentence)| | Search (FAISS DB) | | Trials Cache (DB) | |
| +--------------------+ +--------------------+ +---------+----------+ |
| | |
| v |
| +---------+----------+ |
| | Re-ranked Results | |
| | on 24" Clarion screen|
| +--------------------+ |
+---------------------------------------------------------------------------------+
Software Implementation
Step 1: Setup Libraries
We will use faiss-cpu for extremely fast, localized vector indexing and sentence-transformers for extracting high-dimensional semantic vectors.
pip install faiss-cpu sentence-transformers pandas
Step 2: Preparing and Indexing Clinical Trials
We preprocess clinical trial records (e.g., NCT descriptions) and index them in a local FAISS index.
import faiss
import numpy as np
import pandas as pd
from sentence_transformers import SentenceTransformer
# Load embedding model locally
model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
# Load clinical trial data (JSON format)
trials_df = pd.read_json("clinical_trials.json") # Contains fields: nct_id, title, criteria, treatment
trials_df["search_text"] = trials_df["title"] + " " + trials_df["criteria"]
# Generate embeddings
embeddings = model.encode(trials_df["search_text"].tolist(), show_progress_bar=True)
embedding_dim = embeddings.shape[1]
# Initialize FAISS Index
index = faiss.IndexFlatL2(embedding_dim)
index.add(np.array(embeddings).astype('float32'))
Step 3: Local Semantic Querying
Using the FAISS index, we compute the similarity of a doctor's clinical query against the indexed trials.
def search_clinical_trials(query, k=3):
# Encode query to semantic space
query_vector = model.encode([query]).astype('float32')
# Perform local vector search
distances, indices = index.search(query_vector, k)
results = []
for idx, dist in zip(indices[0], distances[0]):
trial = trials_df.iloc[idx]
results.append({
"nct_id": trial["nct_id"],
"title": trial["title"],
"score": float(dist),
"treatment": trial["treatment"]
})
return results
# Test run
matches = search_clinical_trials("late stage lung cancer patient with EGFR mutation")
for m in matches:
print(f"[{m['nct_id']}] {m['title']} (Distance: {m['score']:.4f})")
Optimization for Clinical Dashboards
- Index Choice: For larger datasets of >100,000 trials, switch from
IndexFlatL2to an IVF (Inverted File) index in FAISS. This speeds up retrieval times, keeping queries well below 50ms on the Clarion workstation. - Pre-fetching: Schedule local delta updates to sync clinical trial directories overnight, ensuring the local point-of-care index is always up to date.
Conclusion
Setting up semantic search on Teguar's Clarion TM-7200-24 AIO PC guarantees instant, context-aware information retrieval at the clinical workstation without relying on constant cloud connectivity or sacrificing data privacy rules.