portfolio.
Back to Projects
Healthcare AI · RAGEnterprise projectEnterprise client · retail and specialty pharmacy

Clinical Review Intelligence System

Enterprise RAG for pharmacy policy review: every answer cited to the document and page, or an explicit abstention.

Problem

Pharmacists and clinical reviewers answer policy questions all day: drug interactions, dosing, prior authorization and step-therapy criteria, FDA label lookups. The sources were scattered across SharePoint, shared drives, PDFs and scans, so one answer meant searching several systems and cross-checking. The system had to answer only from approved sources, cite the exact document and page, and say clearly when the evidence does not exist. It does not dispense and does not make the clinical decision; the pharmacist does.

What I built

  • Owned the retrieval layer: the Knowledge Agent inside a LangGraph orchestrator, the MCP retrieval tools, the OpenSearch index and the evaluation harness.
  • Hybrid retrieval over Amazon OpenSearch Serverless: BM25 plus k-NN on Titan Text Embeddings V2, pre-filtered by line of business, document type and version, fused with Reciprocal Rank Fusion and reranked with a cross-encoder before the top chunks reach the model.
  • A stateless MCP server as the tool boundary. It re-validates the user's JWT on every call, intersects the requested lines of business with what that user may read, and fails closed, so an unauthorised document is never a candidate.
  • Offline ingestion: AWS Textract OCR with confidence thresholds and a quarantine queue, normalisation to Markdown with page markers, structural then semantic chunking with tables kept whole, drug entities normalised to RxNorm, and incremental sync that marks old versions superseded.
  • Grounded generation with Claude Sonnet on Amazon Bedrock at temperature 0: every claim cites a chunk, numbers are quoted verbatim, and a validation node checks each citation before the answer goes out. Otherwise the system abstains and says what it searched.
  • Shipped on Amazon EKS with Argo CD, Jenkins and GitHub Actions. A gold evaluation set written with pharmacists gates every retrieval and prompt change in CI; Langfuse, New Relic, Prometheus and Grafana for traces and metrics.

Stack

PythonLangGraphMCPFastAPIReactAmazon BedrockClaude SonnetOpenSearch ServerlessTitan EmbeddingsAWS TextractDynamoDBAmazon EKSArgo CDJenkinsGitHub ActionsLangfusePrometheusGrafanapytest